Disenio Del AF

43
1 Diseño de Autómatas Finitos

Transcript of Disenio Del AF

Page 1: Disenio Del AF

1

Diseño de Autómatas Finitos

Page 2: Disenio Del AF

2

Diseño de AFD’s• Definir un AFD que acepte palabras que cumplan

ciertas especificaciones.– Correcto: que las palabras aceptadas por el AFD cumplan las

especificaciones, es decir, que no “sobren” palabras.

– Completo: que toda palabra que cumpla las especificaciones sea aceptada por el AFD, es decir, que no “falten” palabras.

• Ejemplo: AFD que acepte palabras sobre {a, b} que no tengan varias a’s seguidas.El AFD de la figura no escorrecto porque acepta “baa”,pero no acepta “ba”.

> q0

q1

q2

a a

b

ba

b

Page 3: Disenio Del AF

3

¿Cómo diseñar un autómata finito

• Por “ensayo y error” no es adecuado.• “Póngase en los zapatos” del autómata que quiere

diseñar.– Para cada símbolo leído, saber si la cadena es aceptada o no,

por si la cadena termina ahí.

– Decida que información es crucial “recordar”, es decir, cuales serían los estados del autómata.

– Asignar transiciones, estado inicial y estado(s) final(es).

Page 4: Disenio Del AF

4

Ejemplo• Diseñar un AFD que acepte todas las palabras sobre {0, 1} que

tengan un número impar de 1’s.– No se requiere saber cuantos 1’s se han leído sino sólo si llevamos un número

par o impar de 1’s. Esta respuesta permanece igual si enseguida leemos un 0 y cambia si leemos un 1.

– Representar esto como una lista de posibilidades y asignar un estado a cada posibilidad: a) par hasta ahorita. B) impar hasta ahorita.

– Asignar las transiciones.

– Definir el estado inicial, el que corresponde a la palabra nula .

– Definir el estado final, el que corresponde a palabras de longitud impar.

qpar qimpar

1

1

0

0

Page 5: Disenio Del AF

5

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

q q0 q00 q001

1

1

0 0

0 0,1

1

Page 6: Disenio Del AF

6

Ejemplos

• Diseñar un AFD que acepte exactamente el lenguaje sobre {0, 1} en que las palabras no comienzan con 00.

q2

q3

0 0

1 1

0,1

0,1

q0 q1

Page 7: Disenio Del AF

7

EjemploPalabras sobre {a, b, c} en las cuales toda b es

inmediatamente seguida de al menos una c.

a,c

a,b,c

a,b

b

c

q0 q1

q2

a,c

a,b,c

a,b

b

b

q0 q1

q2

c

q3

a,c

Page 8: Disenio Del AF

8

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

00

01

11

10

i

0

1

0

1

0

1

0

1

0 1

0

1

1

0

Page 9: Disenio Del AF

9

Simplificación del “Otro ejemplo”

0 1

1 0

1

0

A B C

Page 10: Disenio Del AF

10

Un ejemplo más

• Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con 1, es decir, (0 + 1)*1.

A B

0

0

1

1

Page 11: Disenio Del AF

11

Y un ejemplo más• Construir un autómata finito determinsta que reconozca el lenguaje

sobre {0, 1} que consiste de las palabras cuyo penúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1).

A

C0

D

B

0

0

011

1

1

Page 12: Disenio Del AF

12

Y aún otro más• Construir un autómata finito determinista que reconozca el lenguaje sobre {0,

1} que consiste de las palabras cuyo antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)(0 + 1).

A

E

0

B1

1

1

F

G

H

C

D

0

0

0

0

0

0

0

1

1

1

1 1

Page 13: Disenio Del AF

13

Y varios más• ¿Cuántos estados tendría el autómata finito determinista que reconozca el

lenguaje sobre {0, 1} que consiste de las palabras cuyo ante-antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)3?– Resp: 24 = 16.

• ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo décimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)9?– Resp: 210 = 1024.

• ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)19?– Resp: 220 = 1M.

• ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo quinto símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)24?– Resp: 225 = 32M.

Page 14: Disenio Del AF

14

Tarea 3, Parte A (en equipo)

• Construir un AFD que reconozca números binarios múltiplos de 5.– Por ejemplo, debe reconocer:

0, 101, 1010, 1111, 10100.

• Fecha de asignación: 19/Febrero/2004

• Fecha de entrega: 01/Marzo/2004

Page 15: Disenio Del AF

15

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?

Page 16: Disenio Del AF

16

¿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 17: Disenio Del AF

17

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 acepta y M2 no.

Page 18: Disenio Del AF

18

Ejemplo

1

0 1

0

q0 q1

M1

¿Son M1 y M2 equivalentes?

¿Por qué?

¡No!

Porque M1 acepta 0 y M2 no.

0

0

q0 q1

q2M2

1 01

1

Porque M2 acepta 01 y M1 no.

Page 19: Disenio Del AF

19

Ejemplo

1

0 1

0

q0 q1

M1

¿Son M1 y M2 equivalentes?

¿Por qué?

¡Sí!

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

0

0

q0 q1

q2M2

1 01

1

Page 20: Disenio Del AF

20

¿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 TODASlas palabras?

¿Cómo podemos encontrar unapalabra que es aceptada por unode los autómatas pero no por el

otro?

Page 21: Disenio Del AF

21

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

Page 22: Disenio Del AF

22

Algoritmo de Moore• Comparación de los autómatas M=(K, , , s0, F) y M’ = (K’, , ’, s0’, F’).

Se construye la tabla de comparación con 1+|| 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.

Page 23: Disenio Del AF

23

Arbol de comparación

(1,3)

(2,4)

(1,5)

(2,5) (1,4)

ab

ab

a b

3 a

b b

4 5a

ab

1 a

ab b

2

Page 24: Disenio Del AF

24

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 25: Disenio Del AF

25

Respuesta al ejercicio de la lámina anterior

• A y B sí son equivalentes.

• B y C no son equivalentes.

• A y C no son equivalentes.

Page 26: Disenio Del AF

26

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, , , 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 27: Disenio Del AF

27

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

Page 28: Disenio Del AF

28

Borrar transiciones

3

a

b

b4

5

a

ab

3

a

b

4

5

a

b

Page 29: Disenio Del AF

29

Redirigir transiciones

3

a

b

4

5

a

b

3

a

b

5

a

b

Page 30: Disenio Del AF

30

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.

Page 31: Disenio Del AF

31

Ejercicio.- simplificar:

6

7 8

11

9 10

121

0

0 1

0

1

0,11

0

1

0

1

0

Page 32: Disenio Del AF

32

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 33: Disenio Del AF

33

Operaciones entre autómatas• Sean

– M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2) dos AFDs que aceptan los lenguajes L1 y L2, respectivamente.

• Cómo obtener autómatas que reconozcan– L1L2

– L1L2

– L1L2

– L1L2

– L1*

– L1C

Page 34: Disenio Del AF

34

Respuesta• Definamos el autómata M = (K, , , s0, F) donde

– K = K1 × K2

– s0 = (s1, s2)

((p, q), a) = (1(p, a), 2(q, a)) para pK1, qK2 y a

– Si F = {(p, q) | pF1 o qF2}, entonces M acepta al lenguaje L1L2.

– Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.

– Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.

• ¿Y L1L2, L1*, L1

C?

Page 35: Disenio Del AF

35

Ejemplo

• Consideremos los lenguajes sobre el alfabeto ={0, 1}:– L1 = {x | 00 no es una subcadena de x}– L2 = {x | x termina con 01}

A B C00

1

1 0,1

L1 P Q R01

0

1 0

1

L2

Page 36: Disenio Del AF

36

K1 × K2

AP

AQ

AR

BP

BQ

BR

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Page 37: Disenio Del AF

37

L1 L2

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Page 38: Disenio Del AF

38

L1 L2

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Page 39: Disenio Del AF

39

L1 L2

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Page 40: Disenio Del AF

40

Ejercicio

• Ya que L1C = *L1, el AFD que acepta

L1C se obtiene:

– Cambiando los estados finales a no-finales y los no-finales a finales.

A B C00

1

1 0,1

L1 A B C00

1

1 0,1

L1C

Page 41: Disenio Del AF

41

Obtenga un AF que acepte (11+110)*0

q0

r

s

p

t

u

1

0

0

0,1

0,1

1

1

10

0

q0 q4

q1

q2q3

1

1 0

0

1 1

Page 42: Disenio Del AF

42

Autómatas Finitos No Deterministas (AFN)

• En los Autómatas Finitos Deterministas, para cada estado y símbolo existe uno y sólo un estado al cual se hace la transición.

• ¿Y si se quita esta restricción? Es decir, si estando en un estado, hay símbolos para los que puede no existir transición o símbolos para los que puede haber más de una.

• Este tipo de autómatas son llamados Autómatas Finitos No Deterministas (AFN).

¿Cómo analizar los AFN’s?

Page 43: Disenio Del AF

43

Tarea 3, Parte B (en equipo)

• Ejercicios 3.10(a, b), 3.12, 3.19(b, e, h), 3.20(b, d, f), 5.16(a, e, g) del texto.– Fecha de asignación: 19/Febrero/2004

– Fecha de entrega: 01/Marzo/2004