Paso 1: ¿Qué es una máquina de estado finito?
Una máquina de estado finito o FSM para abreviar, es una máquina (de manera abstracta) que tiene un número definido y finito de posibles estados de que sólo uno está activo en un momento. Los Estados están conectados a través de transiciones. Estas transiciones tienen una cierta dirección y sólo pueden pasar en eso Dirección – piense en ello como una calle de sentido único. Además, una transición tiene ciertas entradas y salidas. Usted puede pensar de éstos como una condición que debes cumplir antes de que se puede utilizar la vía, y cuando usted lo utiliza, una señal es dada al mundo exterior – por ejemplo, tienes que pagar antes de que se puede utilizar la calle y entonces tu coche es contado.
Un ejemplo muy básico de un FSM se encuentra en muchas casas: apretar un botón activa la luz de la escalera. Después de cierto tiempo, la luz se apaga automáticamente. Podría de este modelo como un FSM con dos Estados: encendido y apagado. Hay una transición de un estado a otro y viceversa y la condición es pulsar el botón en una sola dirección y que ha pasado un cierto tiempo en la otra dirección. Podemos modelar este comportamiento en un diagrama, el diagrama de estado supuesto. Echa un vistazo al cuadro 1.
El círculo negro lleno marca el punto de entrada de la máquina del estado (todo tiene que empezar por alguna parte). Por lo tanto, si nuestra máquina comienza a funcionar, la luz está apagada. Permanece así, hasta que utilizamos un interruptor de la luz – la luz pasa entonces y se apaga después de 30 segundos. Presionar el botón cuando la luz está en hace nada, y después de 30 segundos, se apaga la luz. Este FSM no tiene ninguna salida. Desde una perspectiva matemática tradicional, el estado en la luz es equivalente con la luz se encienda, pero cuando realmente empezamos a programar nuestro sistema, por supuesto tendremos que añadir algún tipo de salida que realmente haga algo – como encender la luz.
¿Esta máquina funciona, pero es un buen sistema? ¿30 segundos de duración es suficiente? Para la mayoría de la gente, probablemente sí, pero la gente en el 10 piso no puede gustar a nuestro sistema. Puede ser que se necesite más de 30 segundos, vamos a decir que necesitan 40 segundos. Pero tienen que esperar los 30 segundos para pasar y la luz se apague para activar la luz otra vez, y entonces podrían ser en medio de una escalera. Así, lo que tenemos que hacer es permitir que el temporizador a restablecerse cuando la luz está encendida y el botón se presiona otra vez. Para eso, necesitamos remodelar nuestro sistema, el inicio del temporizador de modelado como una salida de nuestras transiciones y añadir otra transición, como se aprecia en el cuadro 2.
Aquí, puede ver dos cosas:
- Está perfectamente bien para una transición ir al estado de que vino
- Una transición puede tener un evento como una condición para que la transición ocurra así como asigna salidas. La información a la barra de la izquierda es el evento, la información de la derecha es la salida. Eventos también se consideran insumos para la máquina, y esto se llama un entrada-salida-autómata.