S5 -equivalencia_y_minimizacion_af_ds

50
Equivalencia y minimización de AFDs Semana 5 Teoría de la Computación

description

El proceso de equivalencia de dos AFD, empleando algoritmo de Moore y Clases de equivalencia o conjunto partición. He dejado los ejercicios para que quien lo desee intente resolverlos. Si alguno de ustedes tuviera alguna dude puede escribirme al fb o aqui mismo.

Transcript of S5 -equivalencia_y_minimizacion_af_ds

Page 1: S5  -equivalencia_y_minimizacion_af_ds

Equivalencia y minimización de AFDs

Semana 5Teoría de la Computación

Page 2: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Definición

Decimos que dos autómatas M1 y M2 son equivalentes cuando que aceptan exactamente el mismo lenguaje, es decir L(M1) = L(M2)

Page 3: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

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

Cuando uno de los dos autómatasacepta una palabra que no es

aceptada por el otro autómata,podemos concluir que los dos

autómatas no son equivalentes

Page 4: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

¿Estos AFDs son equivalentes?

Page 5: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

¿Estos AFDs son equivalentes?

Son equivalentes

Page 6: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

b b

a a,b

a

q0 q1 q2

M1

b b

a a,b

a

q0 q1 q2

M2

¿Son M1 y M2 equivalentes?

Page 7: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

b b

a a,b

a

q0 q1 q2

M1

b b

a a,b

a

q0 q1 q2

M2

¿Son M1 y M2 equivalentes?

¿Por qué?

¡No!

Porque M1 no acepta λ y M2 sí.

Page 8: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

1

0 1

0

q0 q1

M1

0

0

q0 q1

q2M2

1 01

1

¿Son M1 y M2 equivalentes?

Page 9: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

1

0 1

0

q0 q1

M1

0

0

q0 q1

q2M2

1 01

1

¿Son M1 y M2 equivalentes?

¿Por qué?

¡No!

Porque M1 acepta 0 y M2 no.

Porque M2 acepta 01 y M1 no.

Page 10: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

1

0 1

0

q0 q1

M1

¿Ahora son M1 y M2 equivalentes?

0

0

q0 q1

q2M2

1 01

1

Page 11: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

1

0 1

0

q0 q1

M1

¿Ahora son M1 y M2 equivalentes?

¿Por qué?

¡SI!

Porque todas las palabras que sonaceptadas por M1 también lo sonpor M2 y viceversa..

0

0

q0 q1

q2M2

1 01

1

Page 12: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

¿TODAS las palabras?

Para poder decir que dos autómatas son equivalentes, debemos verificar que TODAS las palabras aceptas por uno de los autómatas son aceptadas por el otro y viceversa.

¿Cómo podemos verificar TODAS las palabras?¿Cómo podemos verificar TODAS las palabras?¿Cómo podemos encontrar una palabra que es ¿Cómo podemos encontrar una palabra que es aceptada por uno de los autómatas pero no por aceptada por uno de los autómatas pero no por

el otro?el otro?

Page 13: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

¿Cómo saber si 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.

Page 14: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Estados compatibles

q3

Compatibles

q4

Incompatibles

q3

Compatibles

q’4q3 q4

q’4q4q3

Page 15: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Teorema de moore

El teorema de moore nos permite crear un algoritmo para definir si dos autómatas son equivalentes o no.

Consiste en la construcción de un árbol de comparación de autómatas.

Este árbol permite convertir el problema de la comparación de los lenguajes aceptados en un problema de comparación de estados de los autómatas.

Page 16: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Teorema de Moore

Definición: Decimos que dos estados q y q’ son compatibles si ambos son finales o ninguno de los dos es final. En caso contrario, son estados incompatibles.

La idea del algoritmo de comparación de AFD1 y AFD2 consiste en averiguar si existe alguna secuencia de caracteres w tal que siguiéndola simultáneamente en AFD1 y AFD2 se llega a estados incompatibles. Si dicha secuencia no existe, entonces los autómatas son equivalentes.

El único problema con esta idea estriba en que hay que garantizar que sean cubiertas todas las posibles cadenas de caracteres w, las cuales son infinitas en general. Por ello se pensó en explorar todas las posibles combinaciones de estados mediante un árbol.

Page 17: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Construcción del árbol de comparación

Para dos autómatas M = (Q, Σ, δ, q0, F) y M’ = (Q’,Σ’, δ’, q0’, F): Inicialmente la raíz del árbol es el par ordenado (q0, q0’) que

contiene los estados iniciales de M y M’ respectivamente. Para cada n ∈ Σ se calcula qn = δ(q,n) y q’n = δ(q’,n). Se forma el

par ordenado (qn, q’n) como hijos de (q, q’) para cada rama n, si no estuvieran ya.

Si aparece en el árbol un par (q, q’) de estados incompatibles, se interrumpe la construcción del mismo, concluyendo que los dos autómatas no son equivalentes. En caso contrario se continúa a partir del paso 2 para cada nuevo nodo hijo.

Si no aparecen nuevos pares (q, q’) que no estén ya en el árbol, se termina el proceso, concluyendo que los dos autómatas son equivalentes.

Page 18: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo 1

Árbol de comparación de AFD a y AFD b

Page 19: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo

Árbol de comparación de AFD a y AFD b

Page 20: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo 2

¿Son estos AFD equivalentes?

Page 21: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo 2

(q0, r0)

(q1, r1)

ab

b

(q2, r2)

a

a

(q0, r2)

¡incompatibles!

No son equivalentes

Page 22: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejercicio 1

s1 a

b b

s2 s3a

ab

q1 a

ab b

q2

Page 23: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejercicio 1

(q1,s1)

(q2,s2)

(q1,s3)

(q2,s3) (q1,s2)

ab

ab

a b

s1 a

b b

s2 s3a

ab

q1 a

ab b

q2

¡incompatibles! ¡incompatibles!

NO SON EQUIVALENTES

Page 24: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejercicio 2 ¿Son equivalentes?

(a) (b)

Page 25: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Page 26: S5  -equivalencia_y_minimizacion_af_ds

Determinar si los siguientes AFD’s son/no son equivalentes:

5

0

11

2 3 40

00

1

11 0,1

6

7 8

11

9 10

121

0

0 1

0

1

0,11

0

1

0

10

13

14

16

15

17

18

11

0

1

0

01

0,1

00,1

A:

B:

C:

Page 27: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Page 28: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Respuesta al ejercicio anterior

A y B sí son equivalentes. B y C no son equivalentes. A y C no son equivalentes.

Page 29: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Simplificación de AFD

Decimos que un autómata es una simplificación de otro si tiene menos estados pero acepta el mismo lenguaje.

Vamos a entender por simplificación la reducción en el número de estados, pero aceptando el mismo lenguaje que antes de la simplificación. Más aún, llamaremos minimización a la obtención de un autómata con el menor número posible de estados.

Page 30: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Método de simplificación por estados equivalentes

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, Σ, δ, s0, F) y dos estados q0 y q1 ∈ K, decimos que q0 y q1 son equivalentes o redundantes (q0 ≈ q1) si (K, Σ, δ, q0, F) ≈ (K, Σ, δ, 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.

Page 31: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

31

Estados equivalentes

3

a

b

b4

5

a

a

b

3’

a

b

b4’

5’

a

a

b

Si el AFD inicia con el estado 3 o con 4,

¿aceptará el mismo lenguaje?

Page 32: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

32

Estados equivalentes

3

a

b

b4

5

a

a

b

3’

a

b

b4’

5’

a

a

b

(4’,3)

(3’,4)

a b

(5’,5)ba, b

a

¿Son equivalentes?

Lo son, entonces se puede eliminar uno de ellos.

Escogemos eliminar el estado 4’.

Page 33: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

33

Borrar transiciones

3

a

b

b4

5

a

ab

3

a

b

4

5

a

b

Se borra toda transición que sale del estado 4’.

Page 34: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

34

Redirigir transiciones

3

a

b

4

5

a

b

3

a

b5

a

b

Toda transición que llega al estado 4’ se redirige a su

estado equivalente, 3.

AFD simplificado.

Page 35: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

35

Algoritmo de minimización por 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.

Page 36: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejercicio: Minimizar

Minimizar el siguiente AFD usando el método de los estados equivalentes.

Page 37: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

37

Obtención de AFD mínimo utilizando clases de equivalencia

Dado un AFD M = (K, Σ, δ, s0, F), el procedimiento para simplificarlo es:

Definimos dos clases de equivalencia, F y K − F. Para cada clase

• Sea q un estado en la clase. Poner en una misma clase a todos los estados q’ que tienen transiciones “iguales” a las de q, es decir, q y q’ pertenecen a la misma clase si para cada símbolo σ ∈ Σ, δ(q’, σ) “cae” en la misma clase que δ(q, σ). Ponemos en otra clase a los que tienen transiciones “distintas” a las de q.

• Si todos los estados de la clase tienen transiciones iguales, entonces la clase no se divide y analizamos otra clase.

• Continuar analizando clases hasta que ninguna se divida.

Page 38: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejemplo: Minimizar

Page 39: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Es conveniente organizar la información de las clases de equivalencia en árboles, en donde cada nodo contiene los estados de una clase de equivalencia.

Inicialmente están todos los estados del AFD en una clase, como en la raíz del árbol. Inmediatamente se dividen en finales y en no finales.

Todos los estados

Finales / No finales

Page 40: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Luego, para el nodo {2, 3, 4, 5} examinamos si las transiciones con los caracteres de entrada, en este caso a y b, llevan a las mismas clases y verificamos que en el caso de b los estados 2 y 3 van a un no final, mientras que 4 y 5 van a un final, por lo que ese nodo se divide en dos, como se aprecia en el tercer nivel de la figura.

Page 41: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Luego, para el nodo {2, 3, 4, 5} examinamos si las transiciones con los caracteres de entrada, en este caso a y b, llevan a las mismas clases y verificamos que en el caso de b los estados 2 y 3 van a un no final, mientras que 4 y 5 van a un final, por lo que ese nodo se divide en dos, como se aprecia en el tercer nivel de la figura.

El estado 2 y 3 con la letra b caen en la clase B (no final)

Page 42: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Luego, para el nodo {2, 3, 4, 5} examinamos si las transiciones con los caracteres de entrada, en este caso a y b, llevan a las mismas clases y verificamos que en el caso de b los estados 2 y 3 van a un no final, mientras que 4 y 5 van a un final, por lo que ese nodo se divide en dos, como se aprecia en el tercer nivel de la figura.

El estado 4 y 5 con la letra bcaen en A (estados finales)

Page 43: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Ahí también se puede apreciar un símbolo b bajo el nodo {2, 3, 4, 5}, indicando a causa de qué carácter la clase de equivalencia se dividió.

Examinando las transiciones en las clases de equivalencia que quedan en las hojas del árbol, vemos que ya no hay razón para dividirlas más.

Finalmente, las clases de equivalencia resultantes son {1}, {2, 3} y {4,5}, que corresponden a los 3 estados que tendrá el AFD minimizado.

Page 44: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Graficamente

Clase A: Terminales, Clase B: No terminales. Note que en B para cada σ ∈ Σ siempre “cae” en la

misma clase.

Page 45: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Partición de Clase A en A y C. Nótese que ahora todas las transiciones de A, B y C caen en las mismas clases.

Page 46: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Clase de equivalencia organizada en árbol

Podemos ver el árbol de partición de clase final:

Page 47: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Ejercicio: Minimizar

Minimizar el siguiente AFD usando el método de las clases de equivalencia.

Page 48: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Solución

Page 49: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

49

Ejercicio: simplificar

Page 50: S5  -equivalencia_y_minimizacion_af_ds

Teoría de la computación - UPNORTE

David Wong Aitken

Solución