MÁQUINAS DE ESTADOS
MÁQUINAS DE ESTADOS
FINITAS
FINITAS
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, …).
CONTINUO DISCRETO ESTADO Eventos discretos Sistemas Continuos o Analógicos Sistemas de Eventos Discretos Asíncronos N TINUO gTIEMPO Sistemas de Sistemas de
CO N E TO Tiempo Discreto o Muestreados Eventos Discretos Síncronos DISCR E
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
sólo puede adquirir un conjunto discreto de valores y puede ser
representado de forma simbólica en vez de numérica.
Ejemplo:
encendidaEjemplo:
accionamiento interruptor accionamiento interruptor•
Tiempo contínuo
(sistemas asíncronos)
apagada
El estado del sistema puede cambiar en cualquier instante ante la llegada de un evento. Ej.: accionamiento del interruptor.
•
Tiempo discreto
(sistemas síncronos)
•
Tiempo discreto
(sistemas síncronos)
El estado del sistema sólo cambia cada T sg en función del estado y entradas presentes en esos instantes de tiempo. Evento: señal de reloj. p p j Ej.: intermitente.
CONCEPTO DE AUTÓMATA. MODELOS
Modelo de MEALY
Má i d MEALY U á i i l d ti Máquina de MEALY: Una máquina secuencial de tipo MEALY es una 5-tupla M=(Q,I,O,δ,β) donde:
Q Ø es un conjunto finito de estados 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 → Q es la función de transición de estado
β: QxI → O es la función de salida
I
O
β
Q
β
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 …)
Q I Q l f ió d t i ió d t d
δ: QxI → Q es la función de transición de estado
λ: Q → O es la función de salida
I
O
I
O
λ
δ
Q
COMBINACIONALCONCEPTO DE AUTÓMATA. MODELOS
Ejemplo: Sumador binario serie de 1 bit
• Dos entradas binarias
x1
y
y
x2
• Una salida binaria
y
Modelo MEALY
x1 … 0 1 1 1 1Modelo MEALY
•
Q = {q0,q1} donde
0 t d d … y x 1 1 0 1 1+
q0 → estado de no acarreo q1 → estado de acarreo 2 x … 0 1 1 0 0•
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
CONCEPTO DE AUTÓMATA. MODELOS
Modelo MOORE
•
Q = {q00,q01,q10,q11} donde
{q
q
q
q
}
…0 1 1 1 1 q00 → estado de no acarreo con salida y=0 q01 → estado de no acarreo con salida y=1
… y x1 1 0 1 1 1 1 1 1 0 1
+
q y q10 → estado de acarreo con salida y=0 q11 → estado de acarreo con salida y=1
2 x
…0 1 1 0 0
q11 → estado de acarreo con salida y 1
•
Función de transición de estado:
δ(q00/q01 00) = q00 δ(q00/q01 11) = q10 δ(q00/q01 ,00) = q00 δ(q00/q01 ,11) = q10 δ(q10/q11 ,00) = q01 δ(q10/q11 ,11) = q11 δ(q00/q01 01/10) = q01 δ(q10/q11 01/10) = q10 δ(q00/q01 ,01/10) = q01 δ(q10/q11,01/10) = q10
•
Función de salida
:
( / ) ( / ) λ(q00/q10) = 0 λ(q01/q11) = 1REPRESENTACIÓN Y MODELADO
Tabla de transición
• Representación tabular de las funciones de transición de estado y
p
y
salida
SUMADOR EN SERIE DE 1 BIT
Modelo MEALY Modelo MOORE
q
q
00
01
11
10
00
01
11
10
O
q0
q0,
0
q0,
1
q1,
0
q0,
1
q00 q00 q01 q10 q01
0
q1
q0,
1
q1,
0
q1,
1
q1,
0
q01 q00 q01 q10 q01
1
Tq
q
Tq1
q0,
1
q1,
0
q1,
1
q1,
0
q01 q00 q01 q10 q01
1
q10 q01 q10 q11 q10
0
q11 q01 q10 q11 q10
1
T Tq
+Δ T Tq
+Δ Diseño: La salida se computa a partirDiseño: La salida se computa a partir del estado actual y las entradas
REPRESENTACIÓN Y MODELADO
Diagrama de transición
• Grafo cuyos nodos representan estados y los arcos cambios de
y
p
y
estado.
M d l MEALY 00/0 11/1 Modelo MEALY q0 q1 11/0 00/1 01,10/0 01,10/1 00 q00/0 11 q /0 10 01 SUMADOR EN SERIE DE 1 BIT Modelo MOORE 00 10,01 0 0 0 0 q00/0 q 10/0 0 0 01,10 11 00 11 01,1 0 00 11 01,10 q01/1 q11/1REDUCCIÓ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ónp 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
⇔ δ
(qi,e) =
(q , )
δ
(qj,e)
(qj, )
∀
e
∈
I y
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.
REDUCCIÓN DE AUTÓMATAS
Reconocedor de cadenas 101
x y
…10101 una sola secuencia
•
I: x={0 1}
Rec.(101) x y ...111011011 ...001001000 0/0 1/0 1/0•
I: x={0,1}
•
O: y={0,1}
NADA 1 10 101 1/0 1/0 0/0 1/1 0/0 0/0 Cadena no encontrada Cadena encontradaEstados:
NADA
nada reconocido
1
subcadena 1 reconocida
10
subcadena 10 reconocida
Mealy/Moore?101
cadena 101 reconocida
Análisis computacionalREDUCCIÓN DE AUTÓMATAS
Identificación de estados equivalentes
0/0 1/0 NADA 1 10 101 0/0 1/0 1/0 0/0 1/1 1/0 0/0 0/0 1/1 x=0 x=1 Qn Qn/0 Q1/0 Q Q /0 Q /0 0/0 Q1 Q10/0 Q1/0 Q10 Qn/0 Q101/1 Q101 Qn/0 Q1/0 Control secuencial
Conversión a Máquina de Moore
0 1 1 101 n 1 x=0 x=1 y Control secuencial Máquinas Síncronas NADA/0 1 1/0 0 10/0 1 101/1 0 Qn Qn Q1 0 Q1 Q10 Q1 0 Q Q Q 0 0 Q10 Qn Q101 0
REDUCCIÓN DE AUTÓMATAS
Autómatas incompletamente especificados
• Ejemplo: Detector de coches en sentido contrario
j
p
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 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. e1 e2 q1 q2 q3 q4 ¿MEALY o MOORE? ¿MEALY o MOORE? q5 q6 q7
REDUCCIÓN DE AUTÓMATAS
Estados compatibles: Dado un autómata de
estados finitos A=(Q,I,O,δ,λ) incompletamente
ifi d di d t d Transitiva?
especificado, se dice que dos estados qi, qj ∈ Q son compatibles qi ~ qj ⇔
(1) δ(qi e) δ(qj e) ∀e I en el dominio
Transitiva?
(1) δ(qi,e) = δ(qj,e) ∀e ∈ I en el dominio de especificación (2) λ(qi) λ(qj) en el dominio de (2) λ(qi) = λ(qj) en el dominio de especificación Condiciones de retención del estado? 00 01 11 10 S q1 q1 q5 X q2 1 q2 X X q3 q2 1 q q q q3 X q4 q3 X 1 q4 q1 q4 X X 1 q5 X q5 q6 X 0 q6 X X q6 q7 0 q7 q1 X X q7 0
REDUCCIÓN DE AUTÓMATAS
GRAFO DE COMPATIBILIDAD
Algoritmo para reducción
1)Construir el grafo de C 2 C1 q1 q2 compatibilidad binaria
2)Encontrar el mayor subgrafo
completo S en el grafo (estados
compatibles)
2
C1
q7 compatibles)
3)Borrar S y volver al paso 2 hasta que todos los vértices estén agrupados q6 q3 q5 q4 C3 Análisis de complejidad
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 01 11 10 S C1 C1 C3 X C2 1 C1 C1 C3 X C2 1 C2 C1 C2 C2 C2 1 C3 C1 C3 C3 C3 0 00,11 01,11,10 01,11,10 C1/1 C3/0 10 C2/1 01 00 00 Mealy/Moore? 01 00
IMPLEMENTACIÓN-
ENTRADAS
•
Eventos
-> espera a su llegada para que evolucione el sistema
Muestreo apagado encendido
Interrupción encendido encendido apagado
•
Entradas de nivel
Lectura asíncrona apagado Lectura asíncrona– Las entradas se leen conforme se vayan
necesitando en el control (ciclo de tratamiento) –
Aleatoriedades / Transitorios
L t í
Lectura síncrona
– Se leen todas las entradas a la vez
M i I
IMPLEMENTACIÓN-SALIDAS
•
Impulsionales
p
e
r/set(o
j)e
m/clear(o
j) Asociadas a cambios de estados / Modelo MEALY
•
De nivel o mantenidas
e
s/set(o
j)e
n/clear(o
j)q
iDe nivel o mantenidas
Asociadas a estados / Modelo MOORE
e
re
me
s/set(o
j)e
n/clear(o
j)e
mq
i/o
j•
Generación
e
se
n En el instante en que se calculan (asíncrona) Todas al final del tratamiento (síncrona)
IMPLEMENTACIÓN
Ejemplo: Detector sentido contrario
void main (void) {//... C1:
Genera (NO_ALARMA) ;
Entrada = Leer_Entrada () ;
if (Entrada == I01) goto C3 ;
if (Entrada == I10) gotog C2 ;
goto C1 ; C2:
Genera (NO_ALARMA) ;
Entrada = Leer Entrada () ;
00,11 01,11,10 10
00 01,11,10
_
if (Entrada == I00) goto C1 ;
goto C2 ; C3: Genera (ALARMA) ; C1/1 C3/0 C2/1 01 00 Entrada = Leer_Entrada () ;
if (Entrada == I00) goto C1 ;
goto C3 ; CÓDIGO NO ESTRUCTURADO
//...
return ; }
Difícil puesta a punto y mantenimiento
IMPLEMENTACIÓN
Ciclo de tratamiento
Ej.: Detección
j
void main (void)sentido contrario
MOORE { while (1) { Entrada = Leer_Entrada () ; Entradas nivel síncronas S lid _ Estado = Sig_Estado ; switch (Estado) {case C1 : Genera (NO_ALARMA) ; Salidas
asíncronas
_
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 ;
¿Salidas
case C3 : Genera (ALARMA) ;
if (Entrada == I00) Sig_Estado = C1 ;
break ; } ¿Salidas síncronas? } return ; }
IMPLEMENTACIÓN
Ej: Reconocedor de cadenas
void main (void)
0/0 1/0 { while (1) { [Espera_Sincronismo ();] d i () NADA 1/0 1 0/0 10 0/0 Entrada Entrada = Leer_Bit (); switch (Estado) {
case NADA : if (Entrada==0) {Salida=0; Estado=NADA;}
l if ( d 1) {S lid 0 d 1 }
1/1 Síncrona
else if (Entrada==1) {Salida=0; Estado=E1;}
break ;
case E1 : if (Entrada==0) {Salida=0; Estado=E10;}
else if (Entrada==1) {Salida=0; Estado=E1;}
b k
Máquina de Mealy
break ;
case E10 : if (Entrada==0) {Salida=0; Estado=NADA;}
else if (Entrada==1) {Salida=1; Estado=E101;}
break ;
E101 if (E t d 0) {S lid 0 E t d NADA }
Retención
case E101 : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=0; Estado=E1;} break ; } G (S lid ) Salidas Sincronas Genera (Salida) ; } return ; } Sincronas
IMPLEMENTACIÓN
Reconocedor de cadenas con entrada de validación
0 1
1
1 0 1
void main (void) { while (1) NADA/0 1 1/0 0 10/0 1 101/1 0 0 ( ) { Espera_Sincronismo () ; Entrada = Leer_Bit () ; switch (Estado) 0 Salida ( ) { case NADA : ... ... } 0 1 Genera (Salida) ; } return ; }