1 diseño de afns. 2 unión de lenguajes si m 1 = (k 1,, 1, s 1, f 1 ) y m 2 = (k 2,, 2, s 2, f 2 )...

30
1 Diseño de AFN’s

Upload: elvira-astorga

Post on 19-Feb-2015

7 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

1

Diseño de AFN’s

Page 2: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

2

Unión de lenguajes

• Si M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2) aceptan L1 y L2, respectivamente, la combinaciónM12 acepta L1 L2

F1

F2

s1

s2

i

M1

M2

M1 2

Page 3: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

3

En notación formal

• M1 = (K1, , 1, s1, F1)M2 = (K2, , 2, s2, F2)

• M1 2 = (K1 K2 {i}, ,1 2is1is2, i, F1 F2)

Page 4: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

4

Ejemplo

• Construir un AFD sobre {a, b} que reconoce palabras con un número impar de b’s o que contienen la cadena aab.

21b

b

a a0

3 a 6

a,b a,b

54a b

Page 5: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

5

Concatenación de lenguajes

• Si M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2) aceptan L1 y L2, respectivamente, la combinación M12 acepta L1L2

F1

s1

F2

s2

M1

M2

M12

Page 6: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

6

En notación formal

• M1 = (K1, , 1, s1, F1)M2 = (K2, , 2, s2, F2)

• M12 = (K1 K2, 1 2,12ps2pF1, s1, F2)

Page 7: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

7

Ejemplo: AFN que reconoce palabras que tienen grupos de aa’s (eventualmente separados por b’s) y después tienen

grupos de aaa’s (eventualmente separados por b’s)

},,{},4,3,2{}1,0({ ba)}0,,1(),0,,0(),1,,0{( aba

)}2,,4(),4,,3(),2,,2(),3,,2{( aaba})2{,0)},2,,0{(

1

b

aa

0 2

34

b

a

a

a

Page 8: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

8

Cerrradura de Kleene

• Si M = (K, , , s0, F) acepta el lenguaje L, M* acepta el lenguaje L*:

F1

s0i

M*

Page 9: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

9

Complemento de lenguajes

• Si AFD acepta L, es posible construir AFDc que acepta el lenguaje complemento de L, Lc.

• Si M = (K, , , s, F),entonces Mc = (K, , , s, K-F)

Page 10: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

10

Cerradura bajo intersección

• Si L1 y L2 son regulares, entonces L1 L2 también lo es.

• Para construir un AF que acepte L1 L2:

ccc LLLL )( 2121

Page 11: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

11

Ejercicio

• Obtener un AFD que acepte el lenguaje de las palabras en {a,b} que si no tienen la subcadena “aba”entonces tienen un número par de b’s.

• Utilizar equivalencia:Si A entonces B (no A) o B

Page 12: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

12

Ejercicio

• Obtener un AFD que acepte el lenguaje de las palabras en {0,1} que no contienen la subcadena “011” y además son de longitud impar.

• Utilizar equivalencia:

ccc LLLL )( 2121

Page 13: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

13

Lenguajes regulares y Autómatas finitos• Recordemos que los lenguajes regulares son los representados por expresiones regulares.• Teorema: Un lenguaje es regular si y solo si es aceptado por algún autómata finito.• Para convertir una expresión regular E en un autómata finito se inicia con la gráfica de transición:

y se aplican recursivamente las siguientes reglas de reemplazo hasta que no sea posible aplicar ninguna de estas reglas.

q0 q1E

Page 14: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

14

Ejemplos de ER AF• (a + ab)*

• (ba + a)*bb

• (0 + 1)*010

q0 q1 b b

a

b

a

q0 q1

bs

a

a

q0 q1 0 0

0

1

1

Page 15: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

15

AF ER

a1 2 8b

a,b a,b

¿Expresión regular?

Page 16: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

16

AF ER

¿Expresión regular?

(a + b)*ab*b(a + b)*

a1 2 8b

a,b a,bb

Page 17: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

17

AF ER

Eliminar el estado 5

a

a

b

b

a

b

a b

a

a1 2

3

4

5

6

7

8

Page 18: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

18

AF ER

Eliminar el estado 5

a

a

bb

a

1 2

3

4

6

7

8

ba*b

aa*aba *a

aa* b

Page 19: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

19

AF ER

1. Convertir el AF a uno en el que sólo haya un estado inicial al que no llegue ninguna transición, y un solo estado final del que no salga ninguna transición.

• Añadir un nuevo estado inicial i con una transición del que salga una transición vacía al antiguo estado inicial.

• Añadir un nuevo estado final f al que lleguen transiciones vacías desde los antiguos estados finales.

2. Eliminar nodos intermedios sin que se alteren las cadenas que hay que utilizar para pasar de un estado “origen”, vecino del eliminado, a un estado “destino”, vecino del eliminado.

3. Una vez que se hayan eliminado todos los nodos intermedios y sólo quede el inicial y el final, entonces fusionar todas las expresiones regulares entre ellos en una sola por medio de +’s.

Page 20: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

20

s1

AF ER• Paso 1:

• Paso 2:

• Paso 3:

F1

f

i

q

p1

pn

q1

qm

1

n

1

m… …

1

k

p1

pn

q1

qm

1(1 +...+ k)*1

n(1 +...+ k)*m

n(1 +...+ k)*11(1 +...+ k)*m

R1R2

Rn

R1 + R2 + ... + Rn

Page 21: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

21

Ejemplos de AF ER

q0 q1

a a,b

b a*b(a + b)*

q0 q1

b

a,ba

q2

ba(bb*a)*a(a + b)* + (bb*a)*bb*

q0 q1

ba

q2

bb

a

a

(a(aa + b)*ab + b)((ba + a)(aa + b)*

ab + bb)*((ba + a)(aa + b)* + ) +a(aa + b)*

Page 22: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

22

Otro ejemplo

4

2

3

1 0

0

1 11

0

0

1

Page 23: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

23

Solución al otro ejemplo

0 + (1 + 00)(0 + 10)*1 + (01 + (1 + 00)(0 + 10)*11)((0 + 10)*11)*((0 + 10)*1 + (0 + 10)+)

Page 24: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

24

Page 25: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

25

Lema de bombeo (Pumping lemma)

• Si L es un lenguaje regular, entonces existe un número n (la longitud de bombeo) tal que si w es cualquier cadena en L de longitud mayor o igual que n, entonces w puede ser dividido en tres partes, w = xyz, que satisfacen las siguientes tres condiciones:– 1) xyiz L para toda i 0.– 2) |y| > 0.– 3) |xy| ≤ n.

Recuerde que |...| representa la longitud de la cadena, es decir, es el número de símbolos del alfabeto que integran la cadena.

Page 26: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

26

“Demostración” del Lema de bombeo• Sea M un AFD que reconoce L y sea n el número de estados de este

autómata. Demostraremos que cualquier cadena de longitud mayor o igual que n puede ser descompuesta en tres partes xyz que satisfacen las tres condiciones.

• Si el lenguaje no contiene cadenas de longitud mayor o igual que n, entonces el teorema es verdadero por vacuidad, es decir, no existen cadenas que lo contradigan, es decir, no existen cadenas que hagan que el teorema sea falso.

• Si una cadena aceptada por L tiene longitud mayor o igual que n y si denotamos por q1, q2, ..., qm, los estados visitados por el autómata conforme se procesa la cadena, iniciando en el estado inicial q1 y terminando en un estado final qm, entonces existe al menos un estado que se repite. Sean qj y qk los primeros que se repiten.

• Tomamos x = q1 ... qj-1, y = qj ... qk-1, z = qk ... qm. Nota: cualquierlenguaje finitoes regular.

Nota: cualquierlenguaje finitoes regular.

qj=qkq1

x

y zqm

Page 27: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

27

Ejemplos de lenguajes no regulares• B = {0i1i | i 0} no es regular.

Supongamos que sí. Sea M un autómata que acepta B. Sea n la longitud de bombeo.Consideremos la cadena w = 0n1n B. Bajo la suposición de que B es regular, entonces la cadena w puede ser descompuesta en tres partes w = xyz tal que xyiz pertenece a B para toda i 0, en particular, para i=2. Por lo tanto, xyyz debe ser parte del lenguaje. Hay tres casos para y:– y consiste solo de 0’s. En este caso xyyz tiene más 0’s que 1’s.

Contradicción.– y consiste solo de 1’s. En este caso xyyz tiene más 1’s que 0’s.

Contradicción.– y consiste de 0’s y 1’s. En este caso xyyz tiene algunos 1’s antes que 0’s.

Contradicción.

Page 28: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

28

...Ejemplos

• C = {w | w tiene el mismo número de 0’s y 1’s}Si C fuera regular, entonces C (0*1*) también lo sería, pero esta intersección es el lenguaje B del ejemplo anterior, por lo que C no puede ser regular.

• Ejercicio: Demuestre queD = {w | w tiene el mismo número de 01’s que de 10’s} es regular.101 D porque tiene un “01” y un “10”, pero 1010 D porque tiene dos “10” y un “01”.

Page 29: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

29

¿{w | w tiene el mismo número de 01’s que de 10’s}

= {w | símbolo inicial de w = símbolo final de w}?

Page 30: 1 Diseño de AFNs. 2 Unión de lenguajes Si M 1 = (K 1,, 1, s 1, F 1 ) y M 2 = (K 2,, 2, s 2, F 2 ) aceptan L 1 y L 2, respectivamente, la combinación M

30

Tarea 4 (en equipo)

• Parte 1: Obtenga el AFD mínimo equivalente al autómata M en la lámina 34 del TLarchivo05.ppt

• Parte 2: Ejercicios 3.17, 3.33, 4.10 (a, b, c e, f), 4.20, 4.29, 4.35 y 4.36 del texto de John Martin.

• Fecha de asignación: 01/Abril/2004

• Fecha de entrega: 19/Abril/2004

• NOTA IMPORTANTE: en el texto “FA” significa “Autómata Finito Determinista”