Professional Documents
Culture Documents
1 0 0,1
q 0 q0 0 q00 1 q001
1
AFD (CASO II)
• Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que
consiste de las palabras que terminan con ’10’, es decir, reconoce el lenguaje (0 + 1)*10.
0 1
A 1 B
0 C
1
2
Otro ejemplo
• Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que
consiste de las palabras que terminan con ’10’, es decir, reconoce el lenguaje (0 + 1)*10.
0 1
A 1 B
0 C
1
3
Equivalencia de autómatas finitos
4
¿Cuándo dos autómatas no son
equivalentes?
5
Ejemplo
0
0 1
q0 0 q1
q0 1 q1
1 0
1
0 q2
M1 1 M2
q0 0 q1
q0 1 q1
1 0
1
0 q2
M1 1 M2
8
Algoritmo de Moore
• Comparación de los autómatas M=(K, S, d, s0, F) y M’ = (K’, S, d’, s0’, F’).
Se construye la tabla de comparación con 1+|S| columnas. La primera columna ponemos (q, q’) como
encabezado. El encabezado de las columnas restantes son los símbolos del alfabeto.
– 1) Inicialmente escribimos (s0, s0’) en el primer renglón de la primera columna.
– 2) Completamos el renglón poniendo en cada columna a la pareja de estados donde el primer elemento
de la pareja es el estado a donde se transfiere el autómata M del estado en la primera columna después
de leer el símbolo que encabeza la columna correspondiente. El segundo elemento de la pareja es la
transición correspondiente a M’.
– 3) Cada pareja de estados generado en el punto 2) que no esté en la primera columna se escribe en esa
primera columna.
– 4) Se completa el renglón para la siguiente pareja de estados en la primera columna.
– 5) Si en la primera columna aparece una pareja de estados incompatible, entonces se termina el proceso
y se concluye que los autómatas no son equivalentes.
– 6) Si en la primera columna no aparecieron parejas de estados incompatibles y si ya no aparecen nuevas
parejas que no estén en la primera columna, entonces se concluye el proceso y decimos que los
autómatas son equivalentes.
9
Arbol de comparación
a a
3 4 5
(1,3)
b
b a
b b a
(2,4) b
a
1 a 2
(1,5)
a
a b
b b
(2,5) (1,4)
10
Determinar si los siguientes AFD’s son/no son equivalentes:
0 1 0,1
0 1
A:
1 2 3 4 0 5
1 1 0
0
0
0 7 8
B: 1 0,1
6 0 1 0
11 12
1 0
1 9 10 1
1 18 0,1
1 0
14
1 0,1
C: 16
13 1 0 17
1
0 15 0
11
Simplificación de autómatas
• Decimos que un autómata es una simplificación de otro
si tiene menos estados pero ambos aceptan el mismo
lenguaje.
• Decimos que en un AFD dos estados son equivalentes si
al tomar uno o el otro como estado inicial, los lenguajes
aceptados por los AFD’s resultantes son iguales. En otras
palabras, dado un AFD M = (K, S, d, s0, F) y dos estados
q0 y q1 Î K, decimos que q0 y q1 son equivalentes o
redundantes (q0 » q1) si (K, S, d, q0, F) » (K, S, d, q1, F).
• Una vez que sabemos que dos estados son equivalentes,
entonces podemos eliminar uno de ellos. Pero, ¿y las
flechas que entran y salen del estado eliminado?
– Las flechas que salen del estado eliminado son eliminadas.
– Las flechas que entraban al estado eliminado se redirigen al
estado equivalente.
12
Estados equivalentes
a
b
3 5
a (4’,3)
a a b
a b
4 b
(3’,4) b (5’,5) a, b
a
b
3’ 5’
a
a b
4’ b
13
Borrar transiciones
a
b
3 5
a
a b
4 b a
b
5
3
a b
4
14
Redirigir transiciones
a
b
3 5
a b a
4 b
3 5
a b
15
Obtención de AFD mínimo
eliminando estados equivalentes
• Teorema. Al eliminar estados redundantes de un AFD
se obtiene el único AFD mínimo que acepta el mismo
lenguaje que el original.
Algoritmo:
Para cada par de estados (p, q) del autómata
– Ver si son equivalentes.
– En caso de que sí, entonces eliminar uno de ellos y
volver a empezar con otros dos estados.
Hasta que no haya estados que eliminar.
16