Máquina de estados

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

Se denomina máquina de estados a un modelo de comportamiento de un sistema con entradas y salidas en donde las salidas dependen no solo de las señales de entradas actuales, sino también de las anteriores.

Las máquinas de estados se definen como un conjunto de estados que sirven de intermediarios en esta relación de entradas y salidas, haciendo que el historial de señales de entrada determine, para cada instante, un estado para la máquina de forma tal que la salida depende únicamente del estado y las entradas actuales.

Una máquina de estados se denomina máquina de estados finitos (FSM por finite state machine) si el conjunto de estados de la máquina es finito y es el único tipo de máquinas de estados que podemos modelar en un computador en la actualidad. Debido a esto se suelen utilizar los términos «máquina de estados» y «máquina de estados finitos» de forma intercambiable. Sin embargo un ejemplo de una máquina de estados infinitos sería un computador cuántico. Esto se debe a que los cúbit que utilizaría este tipo de computadores toma valores continuos. En contraposición los bits toman valores discretos (0 o 1). Otro ejemplo de una máquina de estados infinitos es una máquina universal de Turing, la cual se puede definir teóricamente con una cinta o memoria infinita.

La representación de una máquina de estados se realiza mediante un diagrama de estados. Sin embargo también es posible utilizar un diagrama de flujo.

Es posible clasificar las máquinas de estados en aceptoras o transductoras:

  • Aceptoras (también llamadas reconocedoras o discriminadoras). Son aquellas en donde la salida es binaria (sí-no), depende únicamente del estado y existe un estado inicial. Puede decirse, entonces, que cuando la máquina produce una salida positiva (es decir, un si) es porque ha reconocido o aceptado la secuencia de entrada. En las máquinas de estados aceptoras, los estados con salida positiva se denominan estados finales.
  • Transductoras. Son las más generales. Convierten una secuencia de señales de entrada en una secuencia de salida, pudiendo esta ser binaria o más compleja, según la entrada actual (no solo del estado) y pudiendo también prescindirse de un estado inicial.

La bibliografía a veces llama autómata finito a las aceptoras, mientras que en otros casos se emplea autómata como sinónimo de máquina de estados sin importar su tipo.

Las aceptoras son los de mayor interés en la teoría de la computación, más precisamente en la teoría de autómatas, siendo estas ramas de la matemática. Las transductoras, en cambio, lo son en la electrónica digital y la computación práctica. Por eso en los textos sobre matemática y ciencias de la computación se suele hablar de autómatas (y se refieren a las aceptoras) mientras que los de electrónica y computación práctica hablan de máquinas de estados (y se refieren a los transductoras).

En UML (lenguaje unificado de modelado), dice que una máquina de estado es aquel comportamiento que permite hacer un seguimiento de la vida de un objeto en el transcurso de un tiempo finito.