Máquinas de estados finitas 1 MÁQUINAS DE ESTADOS FINITAS Máquinas de estados finitas 2 INTRODUCCIÓN Evento discreto: ocurrencia de una característica en la evolución de una señal (flanco de subida, paso por un cierto nivel, pulso, llegada de un dato …). dato, ) ESTADO CON NTINUO TIEMPO Eventos discretos DISCRETO Sistemas Continuos o Analógicos g Sistemas de Eventos Discretos Asíncronos DISCRE ETO CONTINUO Sistemas de Tiempo Discreto o Muestreados Sistemas de Eventos Discretos Síncronos Máquinas de estados finitas 3 INTRODUCCIÓN Sistemas de eventos discretos: sistemas dinámicos que cambian de estado ante la ocurrencia de eventos discretos. Generalmente el estado sólo puede adquirir un conjunto discreto de valores y puede ser representado de forma simbólica en vez de numérica. Ejemplo: encendida accionamiento interruptor accionamiento interruptor apagada • Tiempo contínuo (sistemas asíncronos) El estado del sistema puede cambiar en cualquier instante ante la llegada de un evento. Ej.: accionamiento del interruptor. • Tiempo discreto (sistemas síncronos) El estado del sistema sólo cambia cada T sg en función del estado y presentes en esos instantes de tiempo. p Evento: señal de reloj. j entradas p Ej.: intermitente. O bien con un evento de sincronización -> validación Máquinas de estados finitas 4 CONCEPTO DE AUTÓMATA. MODELOS Modelo de MEALY Máquina Má i de d MEALY: MEALY Una U máquina á i secuencial i ld de titipo MEALY es una 5-tupla M=(Q,I,O,δ,β) donde: Q ≠ Ø es un conjunto finito de estados I ≠ Ø es un conjunto finito de entradas (símbolos de …) O ≠ Ø es un conjunto finito de salidas (símbolos de …) δ: QxI → Q es la función de transición de estado β: QxI → O es la función de salida I δ β Q O COMBINACIONAL Máquinas de estados finitas 5 CONCEPTO DE AUTÓMATA. MODELOS Modelo MOORE Máquina de MOORE: Una máquina secuencial de tipo MOORE es una 5-tupla M=(Q,I,O,δ,λ) donde: Q ≠ Ø es un conjunto finito de estados I ≠ Ø es un conjunto finito de entradas (símbolos de …) O ≠ Ø es un conjunto finito de salidas (símbolos de …) δ: QxI Q I → Q es la l función f ió d de ttransición i ió d de estado t d λ: Q → O es la función de salida I COMBINACIONAL δ Q λ O Máquinas de estados finitas 6 CONCEPTO DE AUTÓMATA. MODELOS Ejemplo: Sumador binario serie de 1 bit • Dos entradas binarias x1 y x2 • Una salida binaria y … 0 1 1 1 1 x1 Modelo MEALY + • Q = {q0,q1} donde q0 0 → estado t d d de no acarreo … 0 1 1 0 0 q1 → estado de acarreo • Función de transición de estado: δ(q0,11) = q1 δ(q0,00/01/10) = q0 δ(q1,00) = q0 δ(q1,10/01/11) = q1 • Función de salida: β(q0,00/11) = 0 β(q0,01/10) = 1 β(q1,00/11) = 1 β(q1,01/10) = 0 x2 y … 1 1 0 1 1 Máquinas de estados finitas 7 CONCEPTO DE AUTÓMATA. MODELOS Modelo MOORE • Q = {q {q00,q01,q10,q11} q q q } donde …0 1 1 1 1 q00 → estado de no acarreo con salida y=0 x1 + q q01 → estado de no acarreo con salida yy=1 q10 → estado de acarreo con salida y=0 q11 → estado de acarreo con salida y=1 y 1 • Función de transición de estado: δ(q00/q01 ,00) 00) = q00 δ(q00/q01 ,11) 11) = q10 δ(q10/q11 ,00) = q01 δ(q10/q11 ,11) = q11 δ(q00/q01 ,01/10) 01/10) = q01 δ(q10/q11,01/10) δ(q10/q11 01/10) = q10 • Función de salida: λ(q00/q10) ( / )=0 λ(q01/q11) ( / )=1 …0 1 1 0 0 x2 y …1 1 0 1 1 Máquinas de estados finitas 8 REPRESENTACIÓN Y MODELADO Tabla de transición • Representación p tabular de las funciones de transición de estado y salida SUMADOR EN SERIE DE 1 BIT qT q0 q1 Modelo MEALY 00 01 11 10 q0,0 q0,1 q1,0 q0,1 q0,1 q1,0 q1,1 q1,0 qT +ΔT qT q00 q01 q10 q11 Modelo MOORE 00 q00 q00 q01 q01 01 q01 q01 q10 q10 11 q10 q10 q11 q11 qT +ΔT Diseño: La salida se computa a partir del estado actual y las entradas 10 q01 q01 q10 q10 O 0 1 0 1 Máquinas de estados finitas 9 REPRESENTACIÓN Y MODELADO Diagrama de transición • Grafo cuyos y nodos representan p estados y los arcos cambios de estado. 00/0 Modelo M d l MEALY 11/1 11/0 01,10/1 q0 q1 01,10/0 00/1 SUMADOR EN SERIE DE 1 BIT 00 01,10 0 000 10 01 10,01 11 q01 /1 q10 /0 00 01,10 0 01,10 Modelo MOORE 11 q00 /0 11 00 q11/1 11 Máquinas de estados finitas 10 REDUCCIÓN DE AUTOMATAS Autómatas completamente especificados • Una vez construido un modelo: ¿Es posible reducir el número de estados? – ↓ coste de implementación/ejecución p j – ↑ manejabilidad del modelo RELACION DE EQUIVALENCIA Estados equivalentes: Dado un autómata de estados finitos A=(Q,I,O,δ,λ), dos estados qi, qj ∈ Q se dicen equivalentes q ⇔ δ(q (qi,e) , ) = δ(qj, (qj,e)) ∀e ∈ I y λ(q (qi)) =λ(qj) (qj). (MEALY β(qi,e) = β(qj,e) ∀e ∈ I) • Dos estados equivalentes son INDISTINGUIBLES • El comportamiento del autómata a partir de cualquiera de los dos estados es el mismo. Máquinas de estados finitas 11 REDUCCIÓN DE AUTÓMATAS Reconocedor de cadenas 101 x 0/0 • I: x={0 x={0,1} 1} ...001001000 1/0 • O: y={0,1} NADA 1/0 1 1/0 0/0 10 1/1 101 0/0 Cadena encontrada Estados: y Rec.(101) ...111011011 Cadena no encontrada …10101 una sola secuencia 0/0 NADA nada reconocido 1 subcadena 1 reconocida 10 subcadena 10 reconocida 101 cadena 101 reconocida Mealy/Moore? Análisis computacional Máquinas de estados finitas 12 REDUCCIÓN DE AUTÓMATAS Identificación de estados equivalentes 0/0 1/0 1/0 NADA 1/0 0/0 1 10 1/1 101 x=0 x=1 Qn Qn/0 Q1/0 Q1 Q10/0 Q1/0 Q10 Qn/0 Q101/1 Q101 Qn/0 Q1/0 0/0 1/1 0/0 Conversión a Máquina de Moore x=0 Control secuencial Máquinas Síncronas 0 1 1 x=1 y Qn Qn Q1 0 Q1 Q10 Q1 0 Q10 Qn Q101 0 Q101 Qn Q1 1 NADA/0 1 1/0 0 10/0 1 0 0 No hay estados equivalentes 101/1 Máquinas de estados finitas 13 REDUCCIÓN DE AUTÓMATAS Autómatas incompletamente especificados • Ejemplo: j p Detector de coches en sentido contrario Especificar un sistema que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que la longitud del vehículo y la separación entre vehículos. e2 e1 q1 q2 q3 q4 q5 q6 q7 ¿MEALY o MOORE? Máquinas de estados finitas 14 REDUCCIÓN DE AUTÓMATAS Estados compatibles: Dado un autómata de estados finitos A=(Q,I,O,δ,λ) incompletamente especificado, ifi d se dice di que d dos estados t d qi, qj ∈ Q son compatibles qi ~ qj ⇔ Transitiva? (1) δ(qi,e) (qi e) = δ(qj,e) (qj e) ∀e ∈ I en el dominio de especificación (2) λ(qi) = λ(qj) en el dominio de especificación q1 q2 q q3 q4 q5 q6 q7 00 q1 X X q1 X X q1 01 q5 X q4 q4 q5 X X 11 X q3 q q3 X q6 q6 X Condiciones de retención del estado? 10 q2 q2 q X X X q7 q7 S 1 1 1 1 0 0 0 Máquinas de estados finitas 15 REDUCCIÓN DE AUTÓMATAS Algoritmo GRAFO DE COMPATIBILIDAD Algoritmo para reducción 1)Construir el grafo de compatibilidad binaria C2 C1 q1 2)Encontrar el mayor subgrafo completo S en el grafo (estados compatibles) 3)Borrar S y volver al paso 2 hasta que todos los vértices estén agrupados q2 q7 q3 q6 Análisis de complejidad C3 q4 q5 Máquinas de estados finitas 16 REDUCCIÓN DE AUTÓMATAS Reducción de estados q1 -> C1 (sistema en reposo) q2,q3,q4 -> C2 (coche en sentido permitido) q5,q6,q7 -> C3 (coche en sentido contrario) 00 C1 C1 C1 C1 C2 C3 01,11,10 C3/0 01 C3 C2 C3 11 X C2 C3 00,11 00 01 C1/1 10 C2 C2 C3 S 1 1 0 01,11,10 10 00 Mealy/Moore? C2/1 Máquinas de estados finitas 17 IMPLEMENTACIÓN-ENTRADAS • Eventos -> espera a su llegada para que evolucione el sistema Muestreo apagado encendido Interrupción encendido • Entradas de nivel apagado Lectura asíncrona – – Las entradas se leen conforme se vayan necesitando en el control (ciclo de tratamiento) Aleatoriedades / Transitorios Lectura L t síncrona í – Se leen todas las entradas a la vez – M Memoria i IImagen Máquinas de estados finitas 18 IMPLEMENTACIÓN-SALIDAS em/clear( oj) er/set( oj) • Impulsionales p Asociadas a cambios de estados / Modelo MEALY • De nivel o mantenidas es/set( oj) Asociadas a estados / Modelo MOORE er em qi/ oj es • Generación En el instante en que se calculan (asíncrona) Todas al final del tratamiento (síncrona) en qi en/clear( oj) Máquinas de estados finitas 19 IMPLEMENTACIÓN Ejemplo: Detector sentido contrario 01,11,10 C3/0 00,11 00 01 C1/1 01,11,10 10 C2/1 00 CÓDIGO NO ESTRUCTURADO Difícil puesta a punto y mantenimiento Tipo de Entradas? void main (void) { //... C1: Genera (NO_ALARMA) ; Entrada = Leer_Entrada () ; if (Entrada == I01) goto C3 ; if (Entrada == I10) g goto C2 ; goto C1 ; C2: Genera (NO_ALARMA) ; Entrada = Leer_Entrada () ; if (Entrada == I00) goto C1 ; goto C2 ; C3: Genera (ALARMA) ; Entrada = Leer_Entrada () ; if (Entrada == I00) goto C1 ; goto C3 ; //... return ; } Tipo de Salidas? Máquinas de estados finitas 20 IMPLEMENTACIÓN Ciclo de tratamiento Ej.: j Detección sentido contrario MOORE Entradas nivel síncronas S Salidas lid asíncronas ¿Salidas síncronas? void main (void) { while (1) { Entrada = Leer_Entrada _ () ; Estado = Sig_Estado ; switch (Estado) { case C1 : Genera (NO_ALARMA) _ ; switch (Entrada) { case I01 : Sig_Estado = C3 ; break case I10 : Sig_Estado = C2 ; break default : ;} break ; case C2 : Genera (NO_ALARMA) ; if (Entrada == I00) Sig_Estado = C3 break ; case C3 : Genera (ALARMA) ; if (Entrada == I00) Sig_Estado = C1 break ; } } return ; } ; ; ; ; Máquinas de estados finitas 21 IMPLEMENTACIÓN Ej: Reconocedor de cadenas 0/0 1/0 void main (void) { 1/0 0/0 while (1) NADA 1 10 { [Espera_Sincronismo ();] 0/0 Entrada Entrada d = Leer_Bit i () (); Síncrona 1/1 switch (Estado) { case NADA : if (Entrada==0) {Salida=0; Estado=NADA;} else l if (Entrada==1) ( d 1) {S {Salida=0; lid 0 Estado=E1;} d 1 } Máquina de break ; Mealy case E1 : if (Entrada==0) {Salida=0; Estado=E10;} else if (Entrada==1) {Salida=0; Estado=E1;} b break k ; Retención case E10 : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=1; Estado=E101;} break ; case E101 : if (Entrada==0) (E t d 0) {Salida=0; {S lid 0 E Estado=NADA;} t d NADA } else if (Entrada==1) {Salida=0; Estado=E1;} break ; Salidas } Sincronas G Genera (S lid ) ; (Salida) } return ; } Máquinas de estados finitas 22 IMPLEMENTACIÓN Reconocedor de cadenas con entrada de validación 0 NADA/0 1 1 1/0 1 0 10/0 0 0 Salida 0 1 1 101/1 void main (void) { while ( (1) ) { Espera_Sincronismo () ; Entrada = Leer_Bit () ; switch ( (Estado) ) { case NADA : ... ... } Genera (Salida) ; } return ; } Máquinas de estados finitas 23 FIN