Las Máquinas de Estados Finitos (FSM), también conocidas como autómatas finitos, son una abstracción computacional fundamental que describe el comportamiento de un sistema reactivo mediante un número determinado de estados y transiciones. Una máquina de estado finito es un modelo de computación que solo puede estar en uno de un número finito de estados en un momento dado. El cálculo de la FSM cambia o transita de un estado a otro en respuesta a entradas externas.
Fundamentos de las máquinas de estados
Para comprender mejor una máquina de estados finitos, primero debemos definir el concepto de "estado". Un estado es una pieza única de información dentro de un programa computacional más amplio. Los estados son el ADN de la FSM, que dicta el comportamiento interno o las interacciones con el entorno, como la aceptación de entradas o la producción de salidas, lo que puede provocar que el sistema cambie de estado.
Una FSM se define mediante una lista u orden lógico de sus estados: su estado inicial y las condiciones para cada transición, culminando con un estado final. En comparación con alternativas basadas en texto, el carácter visual de una state machine permite apreciar cómo los diferentes estados de un sistema se relacionan entre sí y qué condiciones generan una transición o acción.
Tipos de máquinas de estados
Existen principalmente dos tipos de Máquinas de Estado Finito, diferenciadas por cómo gestionan sus salidas:
- Máquina de Moore: La salida en un momento dado solo depende de su estado en ese momento.
- Máquina de Mealy: Las salidas de cada estado dependen tanto del estado actual como de sus valores de entrada.
Comparativa de semántica
| Característica | Máquina de Moore | Máquina de Mealy |
|---|---|---|
| Dependencia de salida | Solo del estado actual | Estado actual y entrada |
| Diagrama de estados | Señales de salida dentro del estado | Señales de salida en la transición |
Diagramas de estados y su importancia
Cualquier FSM debe describirse antes de codificarse mediante un diagrama de estados. El diagrama de estados, o diagrama de transición de estados, es una representación gráfica del número finito de estados, transiciones de estados y reglas que rigen las transiciones de una máquina. Normalmente, se dibujan mediante burbujas para describir los estados y flechas para las transiciones.
Lea también: Diagrama de Gantt para implementar ISO 9001:2015
Los componentes clave de estos diagramas incluyen:
- Estados: Representan las diferentes condiciones en las que puede encontrarse el sistema.
- Transiciones: Muestran los caminos entre estados.
- Eventos: Desencadenantes que hacen que el sistema pase de un estado a otro.
- Acciones: Lo que sucede cuando un evento provoca un cambio de estado.
Aplicaciones prácticas en sistemas embebidos
Las FSM son una solución más "eléctrica y electrónica" para resolver problemas de hardware que los paradigmas clásicos de programación secuencial. Muchos desarrolladores profesionales de sistemas embebidos recomiendan enfáticamente su uso, ya que permiten una abstracción del sistema que resulta natural, segura y fácil de entender. Al ejecutar múltiples tareas, la FSM permite un almacenamiento mínimo de datos en la memoria local del dispositivo, además de que las funciones de estado pueden realizar tareas inmediatas basadas en los valores de entrada.
Las máquinas de estados finitos se utilizan en una amplia variedad de sistemas, desde una simple aplicación de calculadora hasta piezas complejas de software como un compilador, sistemas de control de ascensores, industria automotriz y control de semáforos. En el ámbito del IoT, el FSM es el primer paso hacia la computación Edge a nivel de dispositivo único.
Lea también: Auditoría Interna en Financorp S.A.
Lea también: ¿Qué es un Diagrama de Flujo Contable?
