U .R.J .C. – Ingeniera Técnica en Informática de Sistemas Teorı́a de Autómatas y Lenguajes Formales Septiembre de 2009 2do. Parcial Normas : La duración del examen es de 2 horas. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total. 1. (2 puntos) Demuestre que el lenguaje i L = {a2 | i ≥ 1} no es independiente de contexto. Solución: Se asume que L es un lenguaje independiente de contexto con m smbolos no termin nales. Sea z = a2 ∈ L para n, donde |z| = 2n ≥ 2m−1 + 1. Podemos descomponer z = u.v.w.x.y con las condiciones del lema de bombeo. Ya que |vx| ≥ 1, podemos concluir que v = ap y x = aq , donde p + q ≥ 1. Adems, uv i wxi y ∈ L, |uv iwxi y| = 2n + (p + q)(i − 1) es una potencia de 2, por ejemplo 2j . Por tanto, (p + q)(i − 1) = 2j − 2n . Ya que esto tiene que cumplir cualquier entero i ≥ 0 concluimos que tiene que ser verdadero para una eleccin de i = 2n+1 + 1. (p + q)(i − 1) = 2j − 2n ⇔ (p + q)(i − 1) + 2n = 2j ⇔ 2n+1 (p + q) + 2n = 2j ⇔ 2n (2(p + q) + 1) = 2j La parte derecha de la ecuacin es una potencia de 2, pero la parte izquierda es mltiple de un entero impar, en concreto 2(p + q) + 1, que no puede ser una potencia de 2. Por tanto, L no es un lenguaje independiente de contexto. 2. (2 puntos) Definicin: Sea w = xy. Se dice que x es cabeza de w. Por ejemplo, la palabra abcd tiene las cabezas λ, a, ab, abc, abcd. ———————————————————————————— Página 1 de 2 Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) Dado el siguiente lenguaje sobre el alfabeto {a, b, c, d}. L = {w | nab (w) = ncd (w) y nab (x) ≥ ncd (x) para cualquier cabeza x de w}. Ejemplos: abcd ∈ L abcacd ∈ L abcdabc 6∈ L cdab 6∈ L abcdcdab 6∈ L aaabbccd ∈ L aabcbabcdbacd ∈ L Disee un autmata a pila que reconozca el lenguaje L. Su solucin no debe tener ms de cinco estados (1.5 puntos). Describe su funcionamiento (0.5 puntos). Solución: La solucin consiste en un autmata a pila con tres estados que reconoce por vaciado de pila: AP = ({a, b, c, d}, {S, X}, {q0, q1 , q2 }, q0 , S, f ) El autmata a pila AP funciona de la siguiente manera: Para cada ab se apila un smbolo X en la pila (estados q0 y q1 , y para cada cd se elimina dicho smbolo X de la pila (estados q0 y q2 ). Nunca se podra quitar un X de la pila que no apilado anteriormente, de esta forma est asegurado en cada momento que haya ms ab leidos que cd (segunda condicin). b, S/S b, X/X d, S/S d, X/X a, S/S a, X/X a, S/S a, X/X q0 q1 λ, S/λ λ, S/λ b, S/SX b, X/XX d, S/S d, X/X c, S/S c, X/X a, S/S a, X/X b, S/S b, X/X d, X/λ c, S/S c, X/X q2 c, S/S c, X/X Página 2 de 2 λ, S/λ Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) En el estado p0 no se ha leido ningn smbolo a ni c que son los comienzos de las cadenas ab y cd. Si AP lee un smbolo a, cambia al estado q1 atento por si viene un smbolo b para apilar la marca X. AP se mantiene en el estado q1 mientras llegan ms a. Con un c cambia al estado q2 y en el caso de un d vuelve al principio sin apilar nada (falsa alarma, despus del a no viene ningn smbolo b). Lo mismo pasa en el estado q2 , AP ha consumido el smbolo c y se encuentra a la espera de un smbolo d para quitar una marca X de la pila. Se mantiene en q2 mientras sigue consumiendo smbolos c, porque todava podra llegar un d. Si no viene ningn d otra vez es un falsa alarma y AP cambia al estado q1 al leer un smbolo a (comienzo de una cadena ab) o al estado inicial q0 al consumir un b. Finalmente, hay que aadir una transicin que elimina el smbolo inicial S de la pila a todos los estados, ya que se desconoce el ltimo smbolo de la entrada, y por tanto, el estado en que se encuentra AP despus de consumir toda la palabra. Página 3 de 2 Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) 3. (2 puntos) Dada la siguiente gramtica independiente de contexto: G = ({S, A, C, D, E, G, H, K, L}, {a, b, d, e, f, h}, S, P), donde P son las producciones siguientes: S ::= HAG | dGSK | L; A ::= aA | eA | ADG; C ::= f Sf | hH | aA; D ::= bH | H; E ::= abe | bHG | λ; G ::= dd | D; H ::= aaG | G; K ::= eb | Kf D | λ; L ::= dD | aH | EK; (a) (1.6 puntos) Convierte G en una gramtica bien formada. (b) (0.4 puntos) Convierte G en una gramtica equivalente en Forma Normal de Greibach (FNG). (Observacin: Para la conversin puede aprovechar la gramtica bien formada de la primera parte de este ejercicio.) Solución: Paso 1: Eliminacin de producciones λ Base: {E, K} son anulables, Paso inductivo: {L}, Paso inductivo: {S} =⇒ S ::= HAG | dGSK | dGS | dGK | dG | L [|λ]; A ::= aA | eA | ADG; C ::= f Sf | f f | hH | aA; D ::= bH | H; E ::= abe | bHG; G ::= dd | D; H ::= aaG | G; K ::= eb | Kf D | f D; L ::= dD | aH | EK | E | K; Paso 2: Eliminacin de producciones unitarias =⇒ S ::= HAG | dGSK | dGS | dGK | dG | dD | aH | EK | abe | | bHG | eb | Kf D | f D [|λ]; A ::= aA | eA | ADG; Página 4 de 2 Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) C ::= f Sf | f f | hH | aA; D ::= bH | aaG | dd; E ::= abe | bHG; G ::= dd | bH | aaG; H ::= aaG | dd | bH; K ::= eb | Kf D | f D; L ::= dD | aH | EK | abe | bHG | eb | Kf D | f D; Paso 3: Eliminacin de smbolos intiles: Paso 3.1: Smbolos generadores: Base: {a, b, d, e, f, h}, Paso inductivo: {S, C, D, E, G, H, K, L} ⇒ Smbolos no generadores: {A} S ::= dGSK | dGS | dGK | dG | dD | aH | EK | abe | bHG | eb | | Kf D | f D [|λ]; C ::= f Sf | f f | hH | aA; D ::= bH | aaG | dd; E ::= abe | bHG; G ::= dd | bH | aaG; H ::= aaG | dd | bH; K ::= eb | Kf D | f D; L ::= dD | aH | EK | abe | bHG | eb | Kf D | f D; Paso 3.2: Smbolos alcanzables: Base: {S}, Paso inductivo: {D, E, G, H, K, a, b, d, e, f }, Paso inductivo: {h} ⇒ Smbolos no alcanzables: {C, L} S ::= dGSK | dGS | dGK | dG | dD | aH | EK | abe | bHG | eb | | Kf D | f D [|λ]; D ::= bH | aaG | dd; E ::= abe | bHG; G ::= dd | bH | aaG; H ::= aaG | dd | bH; K ::= eb | Kf D | f D; La gramtica bien formada es: Ga = ({S, D, E, G, H, K}, {a, b, d, e, f, h}, S, Pa), donde Pa son las producciones de arriba. Para convertir la gramtica en Forma Normal de Greibach solo hay que convertir las siguientes producciones ’problemticas’: S ::= EK | Kf D Página 5 de 2 Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) K ::= eb | Kf D | f D; En un primer paso eliminamos la recursin de K: K ::= eb | f D | ebZ | f DZ; Z ::= f D | f dZ Para luego sustituir los smbolos en las producciones de S: S ::= dGSK | dGS | dGK | dG | dD | aH | abeK | bHGK | abe | | bHG | eb | ebf D | f Df D | ebZf D | f DZf D | f D [|λ]; D ::= bH | aaG | dd; E ::= abe | bHG; G ::= dd | bH | aaG; H ::= aaG | dd | bH; K ::= eb | f D | ebZ | f DZ; Z ::= f D | f dZ La gramtica bien formada es: Gb = ({S, D, E, G, H, K}, {a, b, d, e, f, h}, S, Pb), donde Pb son las producciones de arriba. 4. (2 puntos) Dada la siguiente mquina de Turing MT = ({1, B}, {1}, B, Q, q0, f ). En la cinta se encuentra la siguiente informacin (y con la cabeza lectora de MT encima del primer 1): . . . BBB 1B1B1B1B1 | {z. . . 1B1B1B1} BBB . . . n smbolos 1 Esta mquina de Turing tiene que transformar dicha informacin en el siguiente contenido de la cinta (con la cabeza lectora encima del primer 1): . . . BBB |1111 .{z . . 1111} BBB . . . n smbolos 1 donde la cantidad de smbolos 1 es exactamente la misma que en la configuracin inicial. (1.6 puntos) Define el conjunto finito de estados Q con sus correspondientes transiciones f de tal forma que MT resuelva el problema (no est permitido modificar los componentes dados de MT ). (0.4 puntos) Describe su funcionamiento. Página 6 de 2 Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.) Solución: Esta solucin no utiliza dos smbolos B como marca del prinicipio/final de la palabra, sino trabaja la palabra desde el principio hasta el final. La idea es la siguiente: La mquina de Turing, al principio situada en el primer smbolo 1, reemplaza este smbolo por un B (q0 − q1 ) y se mueve hacia la derecha hasta encontrar el primer smbolo B (q1 ) y lo reemplaza con el 1 (q1 − q2 ), que fue eliminado en el primer paso. De este forma esta asegurado que la cantidad de unos no vara. Despus de reemplazar el B por un 1, la mquina de Turing mira el siguiente smbolo a la derecha (q2 ). Si es el smbolo 1, es decir, todava no se ha procesado toda la palabra completa (q2 − q3 ), la mquina de Turing vuelva hacia el comienzo de la palabra (q3 ) y se sita en el primer smbolo 1 (q3 − q0 ) y el ciclo puede empezar desde el principio. En el caso de encontrar un smbolo B (en vez del 1) se ha terminado el procesamiento de la palabra (q2 − q4 ). Lo nico que falta, es mover la cabeza lectora al principio de la palabra (q4 ) hasta el smbolo blanco que se encuentra a la izquierda de la palabra. MT mueve la cabeza lectora un paso hacia la derecha para situar la cabeza lectora al primer smbolo de la palabra (q4 − q5 ). Observacin: Hay que cerciorarse que la palabra 1 ∈ L ser reconocida correctamente, con la mquina de Turing parada y con la cabeza lectora encima del smbolo 1. B/B, D 1/1, D q0 1/B, D q1 1/1, I B/1, D q2 1/1, I B/B, I q4 1/1, I B/B, D q5 Por tanto: Q = {q0 , q1 , q2 , q3 , q4 , q5 } con las transiciones f segn el grafo. Página 7 de 2 q3