Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introducción a las Máquinas de Estado Finito - Coggle Diagram
Introducción a las Máquinas de Estado Finito
¿Qué es?
Es una abstracción computacional que describe el comportamiento de un sistema reactivo mediante un número determinado de Estados y un número determinado de Transiciones entre dicho Estados.
se generan en respuesta a eventos de entrada externos e internos
pueden generar otros eventos de salida
Esta dependencia de las acciones (respuesta) del sistema a los eventos de entrada hace que las Máquinas de Estado Finito (MEF) sean una herramienta adecuada para el diseño de Sistemas Reactivos y la Programación Conducida por Eventos
Las MEF se describen gráficamente mediante los llamados Diagramas de Estado Finito (DEF), llamados también Diagramas de Transición de Estados
.
Sistemas Reactivos
es aquel que interactúa constantemente con su medio ambiente, tiene la característica de ser conducido por eventos, la respuesta de tiempo es crítica y una vez que el sistema se activa permanece en ese estado de manera indefinida.
llegan en tiempos impredecibles y el sistema debe tener la capacidad de responder de manera inmediata, en el orden de los milisegundos o microsegundos, sobre todo en sistemas donde la seguridad es crítica
Sistemas Transformacionales
es aquel que recibe cierta información de entrada, realiza una cierta cantidad de cómputo, produce cierta información de salida y luego termina.
Diagrama de Estado Finito o Diagrama de Transición de Estados
es un gráfico que representa los diferentes estados de una MEF y todas las transiciones posibles entre los estados.
Estados
está formado por tres estados: DETENIDO, YENDO_ARRIBA y YENDO_ABAJO. Los diferentes estados se los representa mediante bloques cuadrados (como en este caso) o círculos.
Transiciones
se las representa mediante flechas que indican la dirección de transición de un estado a otro.
Eventos
Seleccion_piso
evento externo que se genera toda vez que un usuario selecciona un piso o llama al ascensor desde otro piso.
arribo_nuevo_piso
evento interno que se genera cada vez que los sensores detectan que se ha arribado al nuevo piso seleccionado por el usuario.
Condiciones de Transición
piso_nuevo>piso_actual
Es la condición necesaria para que se produzca una transición del estado DETENIDO al estado YENDO_ARRIBA.
piso_nuevo<piso_actual
Es la condición necesaria para que se produzca una transición del estado DETENIDO al estado YENDO_ABAJO.
Tipos de Máquinas de Estado Finito
Reconocedoras o Detectoras
realizan básicamente la detección de patrones o secuencias determinadas en respuesta a las entradas recibidas.
este tipo de sistema no proveen señales de salida (acciones), simplemente transicionan desde un estado inicial a un estado final de "Éxito", en cuyo caso se entiende que un patrón o secuencia ha sido reconocida exitosamente.
son útiles en aplicaciones en las que se necesita verificar contraseñas, códigos o la validación de paquetes de datos en transmisión digital
Transductoras
se caracterizan por generar acciones o salidas dependiendo de las entradas y/o estados
se implementan en sistemas embebidos típicamente para aplicaciones de control
Ventajas y desventajas
Ventajas
Son intuitivas y fáciles de entender.
Abstraen convenientemente detalles secundarios que no son necesarios para el análisis del sistema a un alto nivel y se centran en aspectos claves del mismo.
Aportan un componente visual que facilita el análisis y diseño del sistema.
.
Su uso es común un sistemas de transmisión de datos y el uso de protocolos de comunicación.
En programación minimiza grandemente la tendencia a escribir "código espagueti" y puede ayudar a reducir la cantidad de variable globales necesarias, aumentando al mismo tiempo la confiabilidad del sistema.
Son universalmente aplicables
Desventajas
No son aplicables a todos los problemas de diseño.
Funcionan bien en sistemas pequeños con una cantidad de estados en el orden de las decenas.
No funcionan bien en sistemas con una cantidad de estados en el orden de las centenas o miles de estados, aunque en estos casos es posible la estructuración mediante una combinación de MEFs más pequeñas.
La adición de funcionalidad es un poco inflexible.
Son "planas" por naturaleza, no poseen estructura definida y no permiten una jerarquización de los componentes que minimize la repetición innecesaria de ciertos estados. Una mejor alternativa en este caso es el uso de las Cartillas de Estado (Statecharts) y el uso de UML (Unified Modelling Language).
Es fácil caer en el error de definir demasiados estados para el sistema, lo cual minimiza la eficiencia, o de definir menos estados de lo que es necesario, lo cual contradice al propósito de las MEFs de reducir la cantidad de código convolucionado (demasiadas sentencias condicionales del tipo "if - then - else").