You are on page 1of 16

AFD (CASO I)

• Diseñar un AFD que reconozca palabras que contienen la cadena 001


como 0010, 1001, 11111110011111, pero no como 11, 0000, 1100,
10101.
Posibilidades:
– No hemos leído ningún símbolo. Estado q.
– Hemos leído un 0. Estado q0.
– Hemos leído 00. Estado q00.
– Hemos leído 001. Estado q001.

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

• Decimos que dos autómatas, M1 y M2, son


equivalentes cuando aceptan el mismo lenguaje, es
decir, L(M1) = L(M2).
En este caso escribimos M1 » M2.
• ¿Cómo saber que dos autómatas son equivalentes?
• ¿Cómo saber que dos autómatas no son
equivalentes?

4
¿Cuándo dos autómatas no son
equivalentes?

Cuando uno de los dos autómatas


acepta una palabra que no es
aceptada por el otro autómata,
podemos concluir que los 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

¿Son M1 y M2 equivalentes? ¡No!


¿Por qué? Porque M1 acepta 0 y M2 no.
Porque M2 acepta 01 y M1 no.
6
Ejemplo
0
0 1

q0 0 q1
q0 1 q1
1 0
1
0 q2
M1 1 M2

¿Son M1 y M2 equivalentes? ¡Sí!


¿Por qué? Porque todas las palabras que son
aceptadas por M1 también lo son
por M2 y viceversa. 7
¿Cómo saber que dos autómatas son equivalentes

• Teorema de Moore. Existe un algoritmo basado en la


comparación de estados para saber si dos autómatas
son equivalentes.
• Definición. Dos estados son compatibles si ambos
son finales o ninguno de los dos lo es. Si uno es final
y el otro no lo es, entonces se dice que son
incompatibles.

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

You might also like