10minimización del afd
Post on 30-Jan-2016
245 Views
Preview:
DESCRIPTION
TRANSCRIPT
Minimización del AFD
Minimización de AFD• Para cada AFD existe un AFD con cantidad mínima de estados
que acepta el mismo lenguaje.
• El algoritmo de minimización divide el conjunto de estados delAFD en clases de
• equivalencia. Los pasos a seguir son los siguientes:1. Eliminar los estados no alcanzables desde el estado inicial.
2. Eliminar los estados desde los cuales no es posible alcanzar un estado final.
3. Construir una partición P0 del conjunto de estados, que consiste en dosgrupos: estados finales y estados no finales.
4. Sea K = 0.
5. Definir PK+1 de la siguiente manera: para cada grupo G de una partición PK,dividir a G en subgrupos tales que dos estados s y t están en el mismo gruposí y sólo sí para todo símbolo a del alfabeto de entrada, los estados s y t van almismo grupo de PK.
6. K = K + 1.
7. Si PK PK-1 volver al paso 5. En caso contrario, terminar.
Ejemplo• Minimizar el AFD M dado por la tabla
• Vamos a minimizarlo. Primeroobservamos que no es conexo y que 'u'es un estado inaccesible. Eliminamosdicho estado y sus transiciones y nosqueda
Cuidamos de que estén todas las transiciones(el AFD debe estar completo antes deminimizarlo).
• Primero observamos que no es conexo y que 'u' es un estadoinaccesible. Eliminamos dicho estado y sus transiciones y nosqueda
Cuidamos de que estén todas las transiciones (el AFDdebe estar completo antes de minimizarlo).
• Paso 1.
– Crear dos subconjuntos:
• uno formado por estados no finales -X={p, q, t} y
• otro de los estados de aceptación (ofinales) Y= {r, s}
a b
p Y X
q Y X
t X X
*r Y X
*s Y X
X
Y
• Formamos los nuevos subconjuntos de estados
a b
p Y X
q Y X
t Z X
*r Y Z
*s Y Z
X
Y
Z
• Ejemplo de minimización de AFD para (a|b)* abb.
– Inicialmente, P = (ABCD) (E).
EstadoSímbolo de Entrada
a b
A
B
C
D
E
B
B
B
B
B
C
D
C
E
C
B DA E
Cb
b
a
a b
a
b
a
b
a
• Ejemplo de minimización de AFD para (a|b)* abb.
– Inicialmente, P = (ABCD) (E).
EstadoSímbolo de Entrada
a b
A
B
D
E
B
B
B
B
A
D
E
A
B DA E
b
a b
a
b
a
b
a
Ejemplo • Dado un AFD con su tabla de transición, encontrar su
autómata equivalente, aplicando algoritmo de minimización
• Paso 1.
– Crear dos subconjuntos:
• uno formado por estados no finales - {1, 2, 3, 4} y
• otro de los estados de aceptación (o finales) - {5}
• Paso 2.
– Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD
• Primero para transición “a”
• Paso 3– Si al realizar el paso 2 con la primera transición no hay cambios en los
subconjuntos, entonces continuamos con el siguiente símbolo detransición, si nuevamente no hay cambios en los subconjuntos,utilizamos el siguiente símbolo de transición y realizamos esto hastaobtener cambios en los subconjuntos o agotar todos los símbolos detransición
– Como se ve en el paso anterior todos los subconjuntos secomportaron igual al aplicar la transición “a”, por lo tanto no seseparan y continuamos con el siguiente símbolo de transición – eneste caso “b”
• Paso 4
– Como regla se separan los estados de un subconjunto queal aplicarle una transición se comportan de formadiferente al resto de los estados de su subconjunto,formando un nuevo subconjunto de estados
• Paso 5
– Aplicamos nuevamente los pasos 2 , 3 y 4, se obtiene a partir de ellos las siguientes tablas
• Paso 6
– En este paso dibujamos el autómata obtenido después dela minimización, basándose en la tabla de transición.
Ejemplo:
Minimización
a
q0
q2
bq3q1
q4
b
b
aa
a
b
q5
q6
q7
a
b
b
b
a
a
b
a
q6 se elimina porque no es accesible.
La partición inicial es
p0 = {{q0, q1, q2, q3, q5, q7},{q4}}.
Llamamos
B1 = {q0, q1, q2, q3, q5, q7} y B2 = {q4}.
a b
q0 B1 B1
q1 B1 B1
q2 B1 B2
q3 B2 B1
q5 B1 B1
q7 B1 B2
q4 B1 B2
De tabla anterior se obtiene p1
La partición es
p1 = {{q0, q1, q5}, {q2, q7}, {q3}, {q4}}.
Llamamos
B1 = {q0, q1, q5}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4}.
a b
q0 B2 B3
q1 B2 B3
q5 B1 B1
q2 B1 B4
q7 B1 B4
q3 B4 B1
q4 B1 B2
De tabla anterior se obtiene p2
La partición es
p2 = {{q0, q1}, { q5}, {q2, q7}, {q3}, {q4}}.
Llamamos
B1 = {q0, q1}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4} y B5 =
{q5}.
Puede verse que p3 es igual a p2. Por lo tanto el AFD ya
está minimizado.
a b
q0 B2 B3
q1 B2 B3
q2 B5 B4
q7 B5 B4
q3 B4 B5
q4 B1 B4
q5 B5 B1
Diagrama de transiciones
B1
b
B5ba
a
b
ba
ba
B2
B3
a b
B1 B2 B3
B2 B5 B4
B3 B4 B5
B4 B1 B4
B5 B5 B1
B4
a
a b
5 x x
4 x x
3 x y
2 x y
1 y y
X = {5, 4, 3, 2}Y = {1}
X = {5, 4}Z = {3, 2}
Y = {1}
a b
5 x z
4 x z
3 x y
2 x y
1 y y
X = {5, 4}Z = {3, 2}
Y = {1}
X Z Y
a
b
a b
a, b
Ejercicio: minimizar el siguiente autómata
• Dados los siguientes AFD, crear una tabla de estadosdistinguibles para cada uno de los autómatas, y construir losAFD equivalentes mínimos
1
0
0
1
0
10
1
0
1
Ejemplo
Minimizar la siguiente maquina secuencial
Creamos dos clases de equivalencia, por un lado los estadosfinales y por otro el resto de estados.
Q/E1={{A,D,E},{B,C}} c1={A,D,E} y c2={B,C}
Q/E2 = {{A,D,E},{B,C}} = Q/E1
Como no se ha producido ningún cambio, paramos y reescribimosla tabla nuevamente.
Minimización de autómatas
• El algoritmo de minimización consiste en cinco pasos, aunque éstosa veces deben ser repetidos:1. Partición inicial2. Partición de nuevos conjuntos3. Verificar la nueva partición4. Eliminar los estados que se encuentren en el mismo grupo5. Remover estados sumidero y no alcanzables desde símbolo inicial
• De los pasos anteriores, el segundo y el tercero forman un ciclo,mientras que los demás son procesos mecánicos que sólo se debenaplicar una vez. A continuación, detallaremos cada uno de estospasos.
• A partir de un autómata determinista (AFD), ya sea una tabla conlos valores o su dibujo, se determinan dos conjuntos: uno quecontiene a todos los estados finales y otro que contiene a los demásestados.
• Dos estados de un autómata finito determinista son estados equivalentessi al unirse en un sólo estado, pueden reconocer el mismo lenguaje regularque si estuviesen separados. Esta unión de estados implica la unión tantode sus transiciones de entrada como de salida. Si dos estados no sonequivalentes, se dice que son estados distinguibles. Un estado final con unestado no-final nunca serán equivalentes
• Un AFD está minimizado, si todos sus estados son distinguibles yalcanzables. Un algoritmo de minimización de AFD es el siguiente:– Eliminar los estados inaccesibles del autómata.– Construir una tabla con todos los pares (p, q) de estados restantes.– Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-
final, es decir, aquellos pares de estados que son claramente distinguibles.– Para cada par (p, q) y cada símbolo a del alfabeto, tal que r = δ(p,a) y s =
δ(q,a):• Si (r, s) ya ha sido marcado, entonces p y q también son distinguibles, por lo tanto marcar
la entrada (p, q).• De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s).• Agrupar los pares de estados no marcados.
– Luego del tercer paso, si la tabla creada queda completamente marcada,entonces el AFD inicial ya era mínimo.
• En la primera figura del ejemplo, se muestra un autómata con el estado inaccesible d, elcual puede eliminarse inmediatamente. Luego se construye la tabla de pares de estados,y a continuación se marcan, de acuerdo a la tercera línea del algoritmo, las filas ycolumnas correspondientes a los estados finales c y g, salvo la celda que representa elpar (c,g), puesto que al ser ambos estados finales, pueden ser estados equivalentes.Posteriormente, se marcan las celdas restantes de acuerdo a la cuarta línea delalgoritmo, notando que el par (b, f) queda asociado con el par (c, g), y así finalmente seobtiene el autómata final, agrupando los estados b y f, así como c y g, tal y como semuestra en la segunda figura
top related