Máquinas de Mealy y Moore - ELAI-UPM

Anuncio
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
Descargar