Relación de ejercicios hechos en clase en los últimos días previos al examen de febrero De acuerdo con la definición de APND, propón 5 ejemplos de autómata con pila que acepten: - el lenguaje Σ* ({f}, Σ, Σ, { ((f,a,ε), (f,ε)) | a∈Σ}, f, {f}) - ∅ ({f}, Σ, Σ, ∅, f, ∅) - un lenguaje finito no vacío L({f}, Σ, Σ, ∅, f, {f}) = {ε} - un lenguaje infinito diferente de Σ* L({s,f}, Σ, Σ, { ((s,a,ε), (f,ε)) | a∈Σ}, s, {f}) = Σ*−{ε} - y un lenguaje infinito no numerable. no existe tal lenguaje Siendo K = {s,f}, Σ = {a,b}, Γ={a,b} y F = {f}, propón ejemplos de transiciones que: - acepten aab de la entrada si hay bb en la cima y no escriban nada en la pila ((s,aab,bb),(s,ε)) - sustituyan la cima de la pila por abab si esta contiene baba, ((s,ε,baba),(s,abab)) - hagan transitar al estado f si se puede aceptar aba de la entrada y la cima es bba. ((s,aba,bba),(f,ε)) Con las definiciones anteriores, propón ejemplos de configuraciones que: - contengan la cadena aab en estado final y con la pila vacía, (f,aba,ε), f∈F - tengan en la pila el mismo contenido que en la cadena de entrada, (s,w,w), w∈Σ* y w∈Γ+ - no estén en estado final y no tengan la pila vacía. (s,ε,w), s∉F, w∈Γ+ EJEMPLO DE TEST Marcar “A”(Verdadero) o “B”(Falso) en la hoja anexa. Anotar el número del test en el recuadro titulado “Firma” de dicha hoja (junto a la firma). 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 1 F__ ∀ L⊆Σ* ∃ x,y∈Σ* | (x,y)∉IL . V__ Σ* cumple el lema de bombeo para lenguajes regulares. F__ Si un lenguaje L cumple la CBR, entonces L es regular. F__ La unión de los naturales y los reales del intervalo (1000, 2000) es numerable V__ Si un lenguaje L es regular entonces cumple la CBR. F__ En el algoritmo de conversión de GRD en GRI el número reglas obtenido siempre es impar. F__ Dado un AFD, no siempre existe un AFND equivalente V__ α+α(β*+ββ*)*+(α+β+ββ)* = (α*β*)* F__ Si todas las reglas de G son regulares terminales entonces ||L(G)||=1 V__ En el algoritmo de conversión de GRI a AFND, el resultado nunca es un AFD. F__ Los subconjuntos Ai de A son una partición de A si A1 ∪ A2 ∪ ... ∪ An=A. V__ L ∈ L(GCL) ⇒ L ∈ L(APND). V__ Dados dos lenguajes L1 y L2 sobre el alfabeto Σ, L1∪L2 ⊆ Σ* . V__ ∀x,y∈Σ* ΨΣ(xy) = ΨΣ(x) +ΨΣ(y). F__ Todo subconjunto de un lenguaje regular es regular. F__ Todo lenguaje regular es finito. V__ Sea s una sustitución. Entonces ∀ L1 , L2 ⊆ Σ1*, s(L1 ∪ L2) = s(L1) ∪ s(L2) . V__ Si f es una función biyectiva, entonces || Dom(f ) || = || Rg(f ) ||. V__ Si G es una GLI, entonces ∃ M AFD | L(M)=L(G) . V__ Toda GCL tiene al menos un símbolo terminable. V__ Existe al menos un AFND que acepta una cadena mediante infinitas computaciones completas F__ ∅100={ε}. V__ Un AFD tiene tantas configuraciones terminales como estados. F__ Si L es LCL entonces no cumple el lema de bombeo para lenguajes regulares. V__ Una gramática puede estar a la vez en FNG y en FNC. V__ Todo lenguaje generado por una GLI es regular y existe una GRD que lo genera. F__ Si G es una GLI, entonces ∃ G’ GRD | L(G’)=L(G)* V__ Si G es GCL entonces ∃M APND | L(M)−{ε}=L(G) F__ En el algoritmo de conversión de GCL a APND, siempre es cierto que || ∆ || ≤ 3 || P || . F__ x=y si y sólo si x es, a la vez, prefijo y sufijo de y. V__ Tras aplicar el algoritmo de eliminación de axioma a la derecha, se cumple que: || P1 || ≤ 2 || P || . V__ En el algoritmo de conversión de GRI en AFND, || P || = || ∆ || . F__ R− I es el cierre reflexivo de R. V__ Toda cadena generada por una gramática es una forma sentencial de la misma gramática. V__ Para eliminar símbolos inútiles primero eliminamos no terminables y después inaccesibles. F__ || {M | M es AFDM} || < || {M | M es AFD} || < || {M | M es AFND}|| . V__ Si a y b son símbolos, se verifica esta igualdad de lenguajes: (a+b)* = ((a+b)*)+ . V__ (α*β)*α* = (α+β)* F__ Cualquier GR está en FNC. V__ Dadas las ER α y β, L(α+ββ*αβα+β)∈L.3 GR: Gramática Regular. GRI/GRD: Gramática Regular Izquierda/Derecha. AF: Autómata Finito. GCL: Gramática de contexto libre. GLI/GLD: Gramática Lineal Izquierda/Derecha. AFD: Autómata Finito Determinista. AFND: Autómata Finito No Determinista . PRIMER EJEMPLO DE EXAMEN PRÁCTICO 1º) 1,25 Dado el siguiente AFD, y la partición Π = { Q0 = {q2 , q3} , Q1 = {q0 , q4} , Q2 = {q1} } > q0 b a q1 a b a q2 a q3 a b q4 b b rellenar las siguientes tablas: D Q0 Q1 Q2 a {Q1, Q2} {Q0, Q2} {Q0} b {Q0, Q1} {Q1} {Q1} DD Q0 Q1 Q2 a {{q2}, {q3}} {{q0}, {q4}} {{q1}} b {{q2}, {q3}} {{q0}, {q4}} {{q1}} 2º) 1,25 Sea G = (N,T,P,S) con N = {S,A,B,C,D} , T = {a,b,c,d} , P = { S→AASBB , S→AB , A→a , A→b , B→c , B→d , d→c , b→a }. ¿De qué tipos (0, 1, 2, RI, RD, L, LI, LD) es la gramática? Es de tipo 0. No es de ningún otro tipo. ¿Qué lenguaje genera la gramática? L(G) = (a+b) ( (a+b)(a+b) )* (c+d) ( (c+d)(c+d) )* ¿De qué tipos (0, 1, 2, 3, Lineal) es el lenguaje generado? L(G) es de tipos 0, 1, 2, 3 y lineal. 3º) 1,25 Demostrar formalmente que 2N no es un conjunto numerable, donde N es el conjunto de los números naturales. Visto en la teoría (Tema 1). 4º) 1,25 Aplicarle el algoritmo de conversión de GCL en APND visto en clase a la siguiente gramática G = ( N , T , P , S ) con: N = { S , A , B } , T = { a , b, c } , P = { S → ASBB , A → abAb | accb , B → cBSA | ca } Construimos M = ( K , Σ , Γ , ∆ , s , F ) con: K = { p, q } Σ = T = { a, b, c } Γ = V = N ∪ T = { S, A, B, a, b, c } ∆ = { ((p, ε , ε ), (q, S)) , ((q, ε , S), (q, ASBB)) , ((q, ε , A), (q,abAb)) , ((q, ε , A), (q,accb)) , ((q, ε , B), (q,cBSA)) , ((q, ε , B), (q,ca)) , ((q, a, a), (q, ε )) , ((q, b, b), (q, ε )) , ((q, c, c), (q, ε )) } s=p F={q} cumpliéndose que L(G) = L(M) . 5º) 1,25 Sea Σ = {a,b,c,d}. Demostrar usando el lema de bombeo que el lenguaje L = { w∈Σ* | w = a2n b2n c3n d4n con n ≥ 0 } no es regular. Sea n∈N, y sea x = a2n b2n c3n d4n ∈ L, |x|=11n ≥ n. Supongamos que ∃ u, v, w ∈ Σ* que cumplen conjuntamente todas las condiciones del lema del bombeo para lenguajes regulares. Entonces: 1) x=uvw 2) |uv| ≤ n ⇒ (por 1) uv=ak con 0≤k≤ n ⇒ (por 1) w = a2n–k b2n c3n d4n 3) |v| > 0 ⇒ (por 2) v=aj, u=ak–j con 0 < j < k, 4) ∀m≥0, uvmw∈L ⇒ Si m=0, uw∈L. Pero uw = ak–j a2n–k b2n c3n d4n = ak–j+2n–k b2n c3n d4n = an–j b2n c3n d4n ∉ L porque j>0. Por lo tanto hemos llegado a un absurdo, de donde L no es regular. 6º) 1,25 Sea Σ = {a,b,c} y L = { w∈Σ* | w=cvc, con v∈{a,b}* } . Calcular paso a paso, mostrando los lenguajes intermedios obtenidos, la expresión ( ( s(L) )2 )R donde: s(a) ={ b }, s(b) = { a }, s(c) = { cc } . s(L) = { w∈Σ* | w = ccvcc , con v∈{a,b}* } = cc (a+b)* cc (s(L))2 = cc (a+b)* cc cc (a+b)* cc ( ( s(L) )2 )R = (s(L))2 = cc (a+b)* cc cc (a+b)* cc 7º) 1,25 Sea Σ = {0,1}. Dar una Expresión Regular para el lenguaje: L = {w ∈ Σ* |w|>3 ∧ w(3)=0 ∧ w( |w| )=1 } (0+1) (0+1) 0 (0+1)* 1 8º) 1,25 Sea Σ = {a,b,c,d}. Demostrar, sin usar el lema de Parikh, que ΨΣ(L) es semilineal para L={bbb}{aaaa}+ ∪ {cc,dd}+ ΨΣ(L) = { v∈N4 | v = (4,3,0,0) + X1(4,0,0,0) con X1∈N } ∪ { v∈N4 | v = (0,0,2,0) + X1(0,0,2,0) + X2(0,0,0,2) con X1, X2∈N } ∪ { v∈N4 | v = (0,0,0,2) + X1(0,0,2,0) + X2(0,0,0,2) con X1, X2∈N } SEGUNDO EJEMPLO DE EXAMEN PRÁCTICO 1º) 1,25 Dada la gramática G=(N,T,P,S), con N={A, B, C, D, E} T={a, b, c, d} P={ A → bacE | adB | a | d, B → aC | a, C → adD | daA | b } S=A ¿De qué tipos es L(G) y de cuáles no (0, 1, 2, lineal, 3)? L(G) es de tipos 0, 1, 2, lineal y 3. ¿Qué cardinalidad tiene L(G) ? || L(G) || = ℵ0 Obtener una GRI equivalente aplicando el algoritmo visto en clase G=(N1,T,P1,S), donde: N1=N∪{ A6, A7, A8, A9, A10} , P1={ A → bA6 | aA8 | a | d, A6→aA7, A7→cE, A8→dB, B → aC | a, C → aA9 | dA10 | b, A9→ dD, A10→ aA } 2º) 1,25 Sea Σ = {a,b}. Dar una Expresión Regular para el lenguaje: L = {w ∈ Σ* w = xz , con (|x|=2n ∧ n∈N) ∨ (z ∈ {a,b}2 Σ*) } L = ((a+b)(a+b))* (a+b)* + (a+b)* (a+b)(a+b) (a+b)* = (a+b)* 3º) 1,25 Rellenar las siguientes tablas para el autómata presentado. c-ε c-a c-b q0 ∅ {q1} ∅ q1 ∅ {q2} {q0} q2 {q5} {q1} {q3} q3 {q0} {q2} ∅ q4 ∅ ∅ {q1, q5} q5 {q4} {q6} ∅ q6 ∅ {q5} {q3} b q1 b a a > q0 ε a a q3 { q1 , q6 } { q2 , q4 , q5 } C-ε ∅ {q4, q5} C-a {q2, q5} {q1, q6} C-b {q0, q3} {q1, q3, q5} b ε ε q2 b q4 q5 a b { q1 , q6 } { q2 , q4 , q5 } Cierre-ε {q1, q6} {q2, q4, q5} Cierre-a {q2, q4, q5} {q1, q6} Cierre-b {q0, q3} {q0, q1, q3, q5} a q6 4º) 1,25 Sea Σ = {a,b,c,d}. Demostrar, sin usar el lema de Parikh, que ΨΣ(L) es semilineal para L = { w∈Σ* | |w|a=3|w|b } ΨΣ(L) = { v∈N4 | v = (0,0,0,0) + X1(3,1,0,0) + X2(0,0,1,0) + X3(0,0,0,1) con X1, X2, X3∈N } 5º) 1,25 Sea Σ = {a,b,c,d}. Demostrar usando el lema de bombeo que el lenguaje L = { w∈Σ* | w = an bp cn+p d con n,p ≥ 0 } no es regular. Sea n∈N, y sea x = an bn c2n d ∈ L, |x|=4n+1≥n. Supongamos que ∃ u, v, w ∈ Σ* que cumplen conjuntamente todas las condiciones del lema del bombeo para lenguajes regulares. Entonces: 5) x=uvw 6) |uv| ≤ n ⇒ (por 1) uv=ak con 0≤k≤ n ⇒ (por 1) w = an–k bn c2n d 7) |v| > 0 ⇒ (por 2) v=aj, u=ak–j con 0 < j < k, 8) ∀m≥0, uvmw∈L ⇒ Si m=0, uw∈L. Pero uw = ak–j an–k bn c2n d=ak–j+n–k bn c2n d = an–j bn c2n d ∉ L porque j>0. Por lo tanto hemos llegado a un absurdo, de donde L no es regular. 6º) 1,25 Sea Σ = {a,b,c,d} y sea L = { w∈Σ* | w = vavR, con v∈{a,b}* }. Obtenga un APND M tal que L(M)=L . M=(K,Σ,Γ,∆,s,F), donde: K={p,q} Σ={a,b,c,d} Γ={a,b} s=p F={q} ∆={ ((p,a,ε),(p,a)) , ((p,b,ε),(p,b)) , ((p,a,ε),(q,ε)) , ((q,a,a),(q,ε)) , ((q,b,b),(q,ε)) } Nótese que la 1ª y 2ª transiciones sirven para introducir v en la pila (que se almacena como vR). La 3ª transición sirve para consumir la ‘a’ que hay en medio de w de manera no determinista. Las transiciones 4ª y 5ª sirven para ir comparando la cadena vR almacenada en la pila con el resto de w. 7º) 1,25 Sean Σ1 = {0,1} , Σ2 = {a,b,c,d} y L = 1*00 . a) Calcular paso a paso, mostrando los lenguajes intermedios obtenidos, la expresión ((s(L))*)2 donde: s(0) = {c,d} , s(1) = {aba, a, b} . b) ¿ abbdcdc ∈ ((s(L))*)2 ? Razona tu respuesta. a) s(L) = { w∈Σ* | w = v z , con v∈{a,b}* , z∈{c,d}2 } = (a+b)* (c+d) (c+d) (s(L))* = ( (a+b)* (c+d) (c+d) )* ((s(L))*)2 = ( ( (a+b)* (c+d) (c+d) )* ) 2 = ( (a+b)* (c+d) (c+d) )* b) abbdcdc ∈ ((s(L))*)2, dado que por una parte se tiene que abbdc∈ (a+b)* (c+d) (c+d), y por otro lado también tenemos que dc ∈ (a+b)* (c+d) (c+d), con lo cual se concluye que abbdcdc ∈ ( (a+b)* (c+d) (c+d) )* = ((s(L))*)2 8º) 1,25 Sea Σ un alfabeto. Demostrar formalmente el siguiente enunciado: ∀ M=(K, Σ, δ, s, F) AFD , ∃ M’=(K’, Σ, ∆’, s’, F’) AFND | ( ||K||=||K’||–3 ) ∧ ( L(M)=L(M’) ) Sea M=(K, Σ, δ, s, F) un AFD cualquiera. Sea entonces M’ el siguiente AFND que cumple la condición exigida: M’=(K’, Σ, ∆’, s’, F’) K’ = K ∪ {q, q’, q’’}, donde q, q’, q’’∉K s’=s F’=F ∆’={ (qi, σ, qj) ∈ K×Σ×K | δ(qi, σ)= qj} Nótese que M’ es como M, salvo que hemos añadido tres estados nuevos, llamados q, q’, q’’, de tal manera que dichos estados no tienen ninguna transición entrante ni saliente.