40
Minimización del AFD

10Minimización Del AFD

Embed Size (px)

DESCRIPTION

S

Citation preview

Page 1: 10Minimización Del AFD

Minimización del AFD

Page 2: 10Minimizació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.

Page 3: 10Minimización Del AFD

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).

Page 4: 10Minimización Del AFD
Page 5: 10Minimización Del AFD

• 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).

Page 6: 10Minimización Del AFD

• 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

Page 7: 10Minimización Del AFD

• 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

Page 8: 10Minimización Del AFD
Page 9: 10Minimización Del AFD

• 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

Page 10: 10Minimización Del AFD

• 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

Page 11: 10Minimización Del AFD

Ejemplo • Dado un AFD con su tabla de transición, encontrar su

autómata equivalente, aplicando algoritmo de minimización

Page 12: 10Minimización Del AFD

• 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}

Page 13: 10Minimización Del AFD

• Paso 2.

– Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD

• Primero para transición “a”

Page 14: 10Minimización Del AFD

• 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”

Page 15: 10Minimización Del AFD

• 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

Page 16: 10Minimización Del AFD

• Paso 5

– Aplicamos nuevamente los pasos 2 , 3 y 4, se obtiene a partir de ellos las siguientes tablas

Page 17: 10Minimización Del AFD

• Paso 6

– En este paso dibujamos el autómata obtenido después dela minimización, basándose en la tabla de transición.

Page 18: 10Minimización Del AFD

Ejemplo:

Page 19: 10Minimización Del AFD
Page 20: 10Minimización Del AFD
Page 21: 10Minimización Del AFD
Page 22: 10Minimización Del AFD

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

Page 23: 10Minimización Del AFD

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

Page 24: 10Minimización Del AFD

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

Page 25: 10Minimización Del AFD

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}

Page 26: 10Minimización Del AFD

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

Page 27: 10Minimización Del AFD

Ejercicio: minimizar el siguiente autómata

Page 28: 10Minimización Del AFD
Page 29: 10Minimización Del AFD

• Dados los siguientes AFD, crear una tabla de estadosdistinguibles para cada uno de los autómatas, y construir losAFD equivalentes mínimos

Page 30: 10Minimización Del AFD

1

0

0

1

0

10

1

0

1

Page 31: 10Minimización Del AFD
Page 32: 10Minimización Del AFD
Page 33: 10Minimización Del AFD
Page 34: 10Minimización Del AFD
Page 35: 10Minimización Del AFD

Ejemplo

Minimizar la siguiente maquina secuencial

Page 36: 10Minimización Del AFD

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.

Page 37: 10Minimización Del AFD

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.

Page 38: 10Minimización Del AFD

• 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.

Page 39: 10Minimización Del AFD

• 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

Page 40: 10Minimización Del AFD