La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 1 Diseño de AFNs

2 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 2 acepta L 1 L 2 F1F1 F2F2 s1s1 s2s2 i M1M1 M2M2 M 1 2

3 3 En notación formal M 1 = (K 1,, 1, s 1, F 1 ) M 2 = (K 2,, 2, s 2, F 2 ) M 1 2 = (K 1 K 2 {i},, 1 2 i s 1 i s 2, i, F 1 F 2 )

4 4 Ejemplo Construir un AFD sobre {a, b} que reconoce palabras con un número impar de bs o que contienen la cadena aab. 21 b b aa 0 3 a 6 a,b 54 ab

5 5 Concatenació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 acepta L 1 L 2 F1F1 s1s1 F2F2 s2s2 M1M1 M2M2 M12M12

6 6 En notación formal M 1 = (K 1,, 1, s 1, F 1 ) M 2 = (K 2,, 2, s 2, F 2 ) M 12 = (K 1 K 2, 1 2, 1 2 p s 2 p F 1, s 1, F 2 )

7 7 Ejemplo: AFN que reconoce palabras que tienen grupos de aas (eventualmente separados por bs) y después tienen grupos de aaas (eventualmente separados por bs) 1 b a a b a a a

8 8 Cerrradura de Kleene Si M = (K,,, s 0, F) acepta el lenguaje L, M * acepta el lenguaje L * : F1F1 s0s0 i M*M*

9 9 Complemento de lenguajes Si AFD acepta L, es posible construir AFD c que acepta el lenguaje complemento de L, L c. Si M = (K,,, s, F), entonces M c = (K,,, s, K-F)

10 10 Cerradura bajo intersección Si L 1 y L 2 son regulares, entonces L 1 L 2 también lo es. Para construir un AF que acepte L 1 L 2 :

11 11 Ejercicio Obtener un AFD que acepte el lenguaje de las palabras en {a,b} que si no tienen la subcadena abaentonces tienen un número par de bs. Utilizar equivalencia: Si A entonces B (no A) o B

12 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:

13 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. q0q0 q1q1 E

14 14 Ejemplos de ER AF (a + ab) * (ba + a) * bb (0 + 1) * 010 q0q0 q1q1 b b a b a q0q0 q1q1 b s a a q0q0 q1q

15 15 AF ER a 12 8 b a,b ¿Expresión regular?

16 16 AF ER ¿Expresión regular? (a + b) * ab * b(a + b) * a 12 8 b a,b b

17 17 AF ER Eliminar el estado 5 a a b b a b a b a a

18 18 AF ER Eliminar el estado 5 a a b b a ba * b aa * a ba * a aa * b

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

20 20 s1s1 AF ER Paso 1: Paso 2: Paso 3: F1F1 f i q p1p1 pnpn q1q1 qmqm 1 n 1 m …… 1 k p1p1 pnpn q1q1 qmqm … 1 ( k ) * 1 n ( k ) * m n ( k ) * 1 1 ( k ) * m … … R1R1 R2R2 RnRn R 1 + R R n

21 21 Ejemplos de AF ER q0q0 q1q1 a a,b b a * b(a + b) * q0q0 q1q1 b a,b a q2q2 ba (bb * a) * a(a + b) * + (bb * a) * bb * q0q0 q1q1 b a q2q2 bb a a (a(aa + b) * ab + b)((ba + a)(aa + b) * ab + bb) * ((ba + a)(aa + b) * + ) + a(aa + b) *

22 22 Otro ejemplo

23 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) + )

24 24

25 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) xy i z 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.

26 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 q 1, q 2,..., q m, los estados visitados por el autómata conforme se procesa la cadena, iniciando en el estado inicial q 1 y terminando en un estado final q m, entonces existe al menos un estado que se repite. Sean q j y q k los primeros que se repiten. Tomamos x = q 1... q j-1, y = q j... q k-1, z = q k... q m. Nota: cualquier lenguaje finito es regular. Nota: cualquier lenguaje finito es regular. qj=qkqj=qk q1q1 x y z qmqm

27 27 Ejemplos de lenguajes no regulares B = {0 i 1 i | 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 = 0 n 1 n B. Bajo la suposición de que B es regular, entonces la cadena w puede ser descompuesta en tres partes w = xyz tal que xy i z 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 0s. En este caso xyyz tiene más 0s que 1s. Contradicción. –y consiste solo de 1s. En este caso xyyz tiene más 1s que 0s. Contradicción. –y consiste de 0s y 1s. En este caso xyyz tiene algunos 1s antes que 0s. Contradicción.

28 28...Ejemplos C = {w | w tiene el mismo número de 0s y 1s} 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 que D = {w | w tiene el mismo número de 01s que de 10s} es regular. 101 D porque tiene un 01 y un 10, pero 1010 D porque tiene dos 10 y un 01.

29 29 ¿ {w | w tiene el mismo número de 01s que de 10s} = {w | símbolo inicial de w = símbolo final de w} ?

30 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google