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.