mÁquinas secuenciales - uhuuhu.es/francisco.moreno/talf/docs/tema4_1.pdf · 2011. 4. 12. · talf....
TRANSCRIPT
TALF. Tema 4 nº 1
MÁQUINAS SECUENCIALES
1. Máquinas secuenciales. Definición.
2. Máquina de Mealy.
3. Máquina de Moore.
4. Representación de MS
1. Dos Tablas
2. Una sola tabla
3. Diagramas de transición
5. Extensión a palabras.
6. MS Moore equivalente a una MS Mealy.
7. Equivalencia de máquinas secuenciales.
8. Minimización de MS
TALF. Tema 4 nº 2
1. MÁQUINA SECUENCIAL. DEFINICIÓN.
Se define mediante la quíntupla M = {E , S, Q, f, g} donde:
E : alfabeto de entrada.
S : alfabeto de salida.
Q: Conjunto finito no vacío de estados
f : Función de transición
f : Q x E Q , f (q,a) = q’
g : Función de salida
Es una máquina abstracta capaz de
adoptar distintos estados del conjunto Q .
recibir información del entorno, palabras E
actuar sobre el entorno, palabras S
el tiempo está cuantificado, en un instante t :
solo puede estar en un estado Q
recibir un estímulo, símbolo E
generar una salida, símbolo S
conocida la entrada y el estado actual se puede predecir la
salida y el estado siguiente
TALF. Tema 4 nº 3
1. MÁQUINA SECUENCIAL. DEFINICIÓN.
¿Cómo procesa entradas una MS?
La entrada es un conjunto de símbolos tomados del alfabeto
de entrada ∑E, no hay límite en tamaño de la cadena.
Existe un “puntero” que en cada momento apunta a una
posición de la cadena de entrada.
El autómata está siempre en un estado de Q, inicialmente se
encuentra en el estado q0.
q0
a a a b a b a c c ... b
TALF. Tema 4 nº 4
1. MÁQUINA SECUENCIAL. DEFINICIÓN.
¿Cómo procesa entradas una MS?
En cada paso el autómata lee un símbolo de la entrada y según el estado en el que se encuentre, cambia de estado (f); genera la salida correspondiente a ese instante y pasa a leer otro símbolo.
Así sucesivamente hasta que se terminen de leer todos los símbolos de la cadena de entrada.
En ese momento el autómata está en un estado qi de Q, y ha generado la cadena en la cinta de salida.
q0
a a a b a b a c c ... b
q3q2qi
0 1 1 1 0 1 1 0 1... 1
TALF. Tema 4 nº 5
2. MÁQUINA DE MEALY
Se define por la quíntupla M = {E , S, Q, f, g} donde:
E : alfabeto de entrada.
S : alfabeto de salida.
Q: Conjunto finito no vacío de estados
f : Función de transición
f : Q x E Q , f (q,a) = q’ / a E , q’ Q
g : Función de salida
g : Q x E S , g (q,a) = b / a E , b S
TALF. Tema 4 nº 6
3. MÁQUINA DE MOORE
Se define por la quíntupla M = {E , S, Q, f, g} donde:
E : alfabeto de entrada.
S : alfabeto de salida.
Q: Conjunto finito no vacío de estados
f : Función de transición
f : Q x E Q , f (q,a) = q’ / a E , q’ Q
g : Función de salida
f : Q S , g (q) = b / b S
TALF. Tema 4 nº 7
Comparación MS
MS de Mealy
g : Q x E S
g (q, a) = b
Infinita, la salida solo depende de la entrada.
MS de Moore
g : Q S
g (q) = b
Finita, la salida depende solo del estado.
MS de Moore; caso particular de MS de Mealy.
Velocidad de transmisión de la información dentro de la MS
TALF. Tema 4 nº 8
4. REPRESENTACIÓN DE LAS MS
Las máquinas secuenciales pueden representarse por:
1. Dos tablas:
Tabla de transiciones, tabla de f
Tabla de doble entrada
Tabla de salidas, tabla de g
MS de Mealy: Tabla de doble entrada
MS de Moore: Tabla de simple entrada
2. Una sola tabla de transiciones y de salidas, tabla de f y g
MS de Mealy: entrada de la tabla f(q,a)/s
MS de Moore: entrada de la tabla f(q,a)
3. Diagramas de Transición
TALF. Tema 4 nº 9
4.1. Dos tablas: TABLAS DE TRANSICIÓN Y DE SALIDA
Las funciones de transición (f) son las encargadas de dirigir a la máquina secuencial de un estado a otro. La estructura es la misma para las máquinas de Mealy y Moore:
Filas: estados posibles de la máquina, qiQ Columnas: símbolos del alfabeto de entrada,am E
Tabla de Transición f (q, a) = q’
fE
Qa1 …. am
q1 qi
….
qn
TALF. Tema 4 nº 10
4.1. Dos tablas: TABLAS DE TRANSICIÓN Y DE SALIDA
Las funciones de salida (g) se encargan de seleccionar la salida correspondiente para cada máquina secuencial:
En función del estado actual y la entrada que se reciba, en el caso de la máquina de Mealy.
Filas: estados posibles de la máquina, qiQ
Columnas: símbolos del alfabeto de entrada,am E
En función del estado en que se encuentren, en el caso de la máquina de Moore. Filas: estados posibles de la máquina, qiQ
qn
….
biq1
am….a1E
Q
Tabla de Salida g (q, a) = bMáquina de Mealy
…
qn
biq1
S
Q
Tabla de Salida g (q) = bMáquina de Moore
TALF. Tema 4 nº 11
4.1. TABLAS DE TRANSICIÓN Y DE SALIDA. Ejemplo.
Ejemplo: Obtener la tabla de transición y de salida para las
funciones de transición y de salida, respectivamente, de la siguiente máquina de Mealy:
f(q,a)=q g(q, a)=0f(q,b)=r g(q, b)=1f(r,a)=r g(r, a)=0f(r,b)=q g(r, b)=1
Ejemplo: Obtener la tabla de transición y de salida para las
funciones de transición y de salida, respectivamente, de la
siguiente máquina de Moore:
f(q,a)=q g(q)=0
f(q,b)=rf(r,a)=r g(r)=1f(r,b)=q
qrr
rqq
baf EQ
10r
10q
baEQg
qrr
rqq
baf EQ
1r
0q
SQg
TALF. Tema 4 nº 12
4.2. Una sola tabla: TRANSICIÓN Y DE SALIDA
Filas: estados posibles de la máquina, qiQ
Columnas: símbolos del alfabeto de entrada,am E
qn
….
qk/biq1
am….a1E
Q
MS de Mealy
f (q, a) = q’
g (q, a) = b
f,g
qn/bk
….
qiq1/bi
am….a1E
Q
MS de Mooref (q, a) = q’
g (q) = b
f,g
TALF. Tema 4 nº 13
4.3. DIAGRAMA DE TRANSICIÓN
Una MS puede ser representada a través de un grafo dirigido.
1. Máquina secuencial de Mealy
Las máquinas de Mealy tienen tantos estados como elementos tiene el conjunto Q y son etiquetados con el nombre de dicho elemento. Los cambios de estados se reflejan mediante una rama, de forma que si f(q,1)=r, dibujaremos una rama desde q hasta r. Si además g(q,1)=0, etiquetaremos dicha rama como 1/0.
Ejemplo: Diseñar el diagrama de transición asociado a la máquina de Mealy definida en el ejemplo del apartado anterior.
2. Máquina secuencial de Moore
Las máquinas de Moore tienen tantos estados como elementos tiene el conjunto Q y son etiquetados con el nombre de dicho elemento. Los cambios de estados se reflejan mediante una rama, de forma que si f(q,1)=r,dibujaremos una rama desde q hasta r etiquetada con 1. Si además g(q,1)=0, etiquetaremos el estado como r/0.
Ejemplo: Diseñar el diagrama de transición asociado a la máquina de Moore definida en el ejemplo del apartado anterior.
TALF. Tema 4 nº 14
4. Ejemplo. MÁQUINA DE MEALY
Dos Tablas:
Diagramas de transición.
qrr
rqq
baf EQ
f(q, a) = q g(q, a) = 0f(q, b) = r g(q, b) = 1f(r, a) = r g(r, a) = 0f(r, b) = q g(r, b) = 1
Una Tabla f y g:f, g
q/1r/0r
r/1q/0q
baQ
E
10r
10q
baEQg
q r
a/0b/1
a/0
b/1
TALF. Tema 4 nº 15
4. Ejemplo. MÁQUINA DE MOORE
Dos Tablas:
Diagramas de transición.
qrr
rqq
baf EQ
f(q, a) = q g(q) = 0
f(q, b) = r
f(r, a) = r g(r) = 1
f(r, b) = q
Una Tabla f y g:
f, g
qrr/1
rqq/0
baQ
E
q/0 r/1
ab
a
b
1r
0q
SQ
g
TALF. Tema 4 nº 16
5. EXTENSIÓN A PALABRAS. MÁQUINA DE MEALY
Extensión a palabras: Ampliación de la definición de f y g para que en lugar de aplicarse sobre letras de los alfabetos E y S actúen sobre palabras de E y de S
se define la función de transición y la de salida asociada
a palabras como las funciones:
f: Q ∑E* Q
g: Q ∑E* ∑S
*
Para tratar palabras hay que añadir:
f(q,λ)=q, g(q,λ)=λ, qQ
f(q,a)=f(f(q,a),)
g(q,a)= g(q,a)g(f(q,a),)
∑E* a∑E y qQ
TALF. Tema 4 nº 17
5. EXTENSIÓN A PALABRAS. MÁQUINA DE MOORE
Extensión a palabras: Ampliación de la definición de f y g para que en lugar de aplicarse sobre letras de los alfabetos E y S actúen sobre palabras de E y de S
se define la función de transición y la de salida asociada
a palabras como las funciones:
f: Q ∑E* Q
g’: Q ∑E* ∑S
* con g: Q ∑S
Para tratar palabras hay que añadir:
f(q,λ)=q, g’(q,λ)=λ, qQ
f(q,a)=f(f(q,a),)
g(q,a)= g(q,a)g’(f(q,a),)
∑E* a∑E y qQ
TALF. Tema 4 nº 18
5. EXTENSIÓN A PALABRAS. FUNCIÓN RESPUESTA.
Con El objetivo de unificar los dos tipos de MS se define la función respuesta a partir de las funciones de salida:
h(q,x), qQ, x ∑E*
MS de Mealy: g (q,x)
MS de Moore: g’(q,x)
Teoremas
|h(q,x)|=|x| qQ, x∑E*
f (q, xy) = f (f (q, x), y) qQ, x,y∑E*
h(q,xy)=h(q,x) h(f (q, x),y) qQ, x,y∑E*
TALF. Tema 4 nº 19
5. Máquinas Secuenciales. Definición.
Máquina Secuencial; Dispositivo de control
Con acceso a una cinta de entrada.
Con acceso a una cinta de salida
En cada unidad de tiempo puede realizar una operación de entrada y una de salida sobre un símbolo del alfabeto de entrada y de salida
El dispositivo puede tomar una serie de estados
La palabra x∑E* está en la cinta de entrada con la
cabeza de lectura sobre el primer símbolo
La cinta de salida está vacía con la cabeza de escritura dispuesta a escribir el primer símbolo
Sea q el estado inicial del dispositivo de control
Al leer la cinta de entrada, el dispositivo se para
El estado final será f (q,x)
En la cinta de salida estará grabada la palabra h(q,x)
TALF. Tema 4 nº 20
5. Simulación algorítmica de una MS
Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin de archivo (FDC).
Salida: cadena de salida y
Método: aplicar f al estado al cual hay una transición desde el estado q con un carácter de entrada c y generar h(q,x)
Función traducir()
q=q0
c= leer_carácter()
Mientras c != FDC
q=f(q,c)
s=h(q,c)
// escribir resultados(s,….)
c= leer_carácter()
fmientras
ffunción
TALF. Tema 4 nº 21
6. MS Moore equivalente a una MS Mealy
Dada M = {E , S, Q, f, g} siempre se puede definir MMO = {E , S, QMO, fMO, gMO} como:
QMO : dividir cada qQ en tantos qs como salidas
puedan asociarse a q
QMO ={qs / q’Q, e∑E} f(q’,e)=q, g(q’,e)=s
fMO: fMO(qs,e)= [fMO(qs,e)] g(q,e)
gMO: gMO(qs,e)= g(q,e)
A cada qQ se le asocia una sola salida, s con la
función de salida:
uMO : QMO S / gMO(qs,e)= uMO(fMO(qs,e))
TALF. Tema 4 nº 22
6. MS Moore equivalente a una MS Mealy. Ejemplo1.
Ejemplo1: detector de paridad
Mealy
f, g
q/0r/1r
r/1q/0q
10Q
E
q r
0/01/1
0/1
1/0
f, g
qrr/1
rqq/0
10Q
E
q/0 r/1
01
0
1
Moore
TALF. Tema 4 nº 23
6. MS Moore equivalente a una MS Mealy. Ejemplo2.
Ejemplo2: Sumador serie
Mealy
00 01 10 11
q q/0 q/1 q/1 r/0
r q/1 r/0 r/0 r/1
q r
00/0
01/1
10/1 11/0
01/0
10/0
11/1
00/1
Moore
00 01 10 11
q0/0 q0 q1 q1 r0
q1/1 q0 q1 q1 r0
r0/0 q1 r0 r0 r1
r1/1 q1 r0 r0 r1
q0/0
r0/0
q1/1
01
10 01
10
01
10
00
r1/1 1101, 10
11
0011
11
00
TALF. Tema 4 nº 24
7. Equivalencias de máquinas secuenciales.
Dadas las mismas palabras de entrada generan la misma salida
Relaciones de Equivalencia: Equivalencia entre estados
Verificar si dos estados de la misma MS son equivalentes: para todas las entradas, en los estados, estos realizan lasmismas salidas
Definiciónp,q Q son equivalentes pEq si cumplen:h(p,x) = h(q,x) xE
Lemas1. Si p,q Q , xE , pEq f(p,x)Ef(q,x)2. qEq q Q
Equivalencia entre estados de longitud n: pEnq
Verificar si dos estados de la misma MS son equivalentes en longitud n: para todas las entradas de longitud n, en los estados, estos realizan las mismas salidas.
Definiciónp,q Q son equivalentes de longitud n pEnq si cumplen:h(p,x) = h(q,x) con |x|=n , x ∑n
*
TALF. Tema 4 nº 25
7. Equivalencias de máquinas secuenciales.
Equivalencia entre Máquinas Secuenciales (M1EM2)
Verificar si dos Máquinas Secuenciales son equivalentes:
para todas las entradas posibles realizan las mismas salidas
Sean:
M1=(E, S, Q1, f1, g1), M2=(E, S, Q2, f2, g2)
h1, h2, pQ1 y q Q2
p y q son equivalentes, pEq
si h1(p,x)= h2(q,x) x E*
Definición:
p Q1 M1 q Q2 M2 / pEq
q Q2 M2 p Q1 M1 / qEpM1EM2
TALF. Tema 4 nº 26
7. Equivalencias de máquinas secuenciales.
Equivalencia de Máquinas Secuenciales
Se cumple:
pEp reflexiva
pEq qEp simétrica
pEq & qEr pEr transitiva
Es una relación de equivalencia se define
el conjunto sobre Q, conjunto cociente Q/En
La equivalencia entre estados es una relación de
equivalencia, luego existe un conjunto, conjunto cociente,
Q/E, de clases de equivalencia, subconjuntos de estados que
particiona al conjunto de estados en los estados
pertenecientes a una misma clase.
TALF. Tema 4 nº 27
7. Equivalencias de máquinas secuenciales.
Algoritmo para construir el conjunto cociente Q/En
1. Q/E1 se construye aplicando la regla:
p y q están en la misma clase si y solo si
h(p,a)=h(q,a) a E
2. Sea Q/Ei={c1, c2, ..., cj}. Q/Ei+1 se construye:
p y q están en la misma clase si y solo si p,qck y aE
se verifica que f (p,a) y f (q,a) están en la misma clase cm
de Q/Ei+1
3. Si Q/Ei=Q/Ei+1 entonces Q/Ei=Q/E , en caso contrario
aplicar el paso 2. partiendo de Q/Ei+1
TALF. Tema 4 nº 28
8. Minimización de Máquinas Secuenciales
Dada la MS
M=(E, S, Q, f, g)
existe una única MS equivalente mínima
(Máquina del conjunto cociente)
Mm=(E, S, Qm, fm, gm)
Donde
Qm=Q/E
f m(c,a)=cm si qc, f (q,a) cm donde c y cm Q/E
h m(c,a)=h ’(q,a) q c donde c Q/E
Teorema
Entre todas las máquinas equivalentes a una dada existe una
única (salvo isomorfismos) con el número mínimo de estados.
Esta máquina no contiene dos estados equivalentes
Esta máquina mínima es la del conjunto cociente de la máquina dada
TALF. Tema 4 nº 29
8. Minimización de Máquinas Secuenciales. Ejemplo.
Ejemplo: M=({0,1},{a,b},{q0,q1,q2,q3}, f, g)
g 0 1
q0 a b
q1 a b
q2 b a
q3 a b
f 0 1
q0 q3 q2
q1 q3 q1
q2 q0 q1
q3 q0 q2
q0
q2
q3
0/a
q1
1/b
0/a
1/b0/b
0/a
1/a 1/b
TALF. Tema 4 nº 30
8. Minimización de Máquinas Secuenciales. Ejemplo.
Máquina del conjunto cociente
1. Conjunto inicial
Q/E1=({q0,q1,q3},{q2})
2. Q/Ei
2.1. Q/E2=({q0,q3},{q1}, {q2})
3. Q/E2 Q/E1 paso 2
2.2. Q/E3=({q0,q3},{q1}, {q2})
3. Q/E3= Q/E2 = Q/E
f 0 1
q0 q3 q2
q1 q3 q1
q2 q0 q1
q3 q0 q2
g 0 1
q0 a b
q1 a b
q2 b a
q3 a b
TALF. Tema 4 nº 31
8. Minimización de Máquinas Secuenciales. Ejemplo.
Máqina mínima equivalente: Mm=({0,1},{a,b},{c0,c1,c2},fm,gm)
Qm=(c0={q0,q3}, c1={q1}, c2={q2})
gm 0 1
c0 a b
c1 a b
c2 b a
fm 0 1
c0 c0 c2
c1 c0 c1
c2 c0 c1
c2 c1
c0
0/a
1/b0/b
0/a
1/a1/b
f 0 1
q0 q3 q2
q1 q3 q1
q2 q0 q1
q3 q0 q2
g 0 1
q0 a b
q1 a b
q2 b a
q3 a b