Teor´ ıa de Aut´ omatas y Lenguajes Formales 2do. Parcial

Anuncio
U .R.J .C. – Ingeniera Técnica en Informática de Sistemas
Teorı́a de Autómatas y Lenguajes Formales
2do. Parcial
Mayo 2010
Normas :
La duración del examen es de 2 horas y 15 minutos.
Todos los ejercicios se entregarán en hojas separadas.
El examen tipo test cuenta hasta 2 puntos sobre la nota total.
1. (2.1 puntos) Gramáticas independientes de contexto:
(a) (0.7 puntos) Dada la siguiente gramática
G1 = ({S, A, B, C, D, E, F, G, H}, {a, b, c, f, g}, S, P ):
S ::= AHa | BGH | agD
A ::= C | f aBG
B ::= D | ac | F G
C ::= S | λ | BabD
D ::= F | bcSa
E ::= aB | SF ca | Sf ca
F ::= B | gacAH
G ::= agbcDG | AH
H ::= λ | ADba | AHd
Convierte la gramática G1 en una gramática bien formada.
Solución:
1. Base: Sı́mbolos anulables: C, H; Paso inductivo: A; Paso inductivo: G
S
A
B
C
D
E
F
G
H
::=
::=
::=
::=
::=
::=
::=
::=
::=
AHa | Aa | Ha | a | BGH | B | BG | BH | agD
C | f aBG | f aB
D | ac | F G | F
S | BabD
F | bcSa
aB | SF ca | Sf ca
B | gacAH | gacA | gacH | gac
agbcDG | agbcD | AH | A | H
ADba | Dba | AHd | Ad | Hd | d
2. Base: (S, S), (A, A), (B, B), (C, C), (D, D), (E, E), (F, F ), (G, G), (H, H)
Pasos inductivos:
(S, S) y S ::= B ⇒ (S, B)
(S, B) y B ::= D ⇒ (S, D)
Página 1 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
(S, D) y D ::= F ⇒ (S, F )
(A, A) y A ::= C ⇒ (A, C)
(A, C) y C ::= S ⇒ (A, S)
(A, S) y S ::= B ⇒ (A, B)
(A, B) y B ::= D ⇒ (A, D)
(A, D) y D ::= F ⇒ (A, F )
(B, B) y B ::= D ⇒ (B, D)
(B, D) y D ::= F ⇒ (B, F )
(C, C) y C ::= S ⇒ (C, S)
(C, S) y S ::= B ⇒ (C, B)
(C, B) y B ::= D ⇒ (C, D)
(C, D) y D ::= F ⇒ (C, F )
(D, D) y D ::= F ⇒ (D, F )
(D, F ) y F ::= B ⇒ (D, B)
(F, F ) y F ::= B ⇒ (F, B)
(F, B) y B ::= D ⇒ (F, D)
(G, G) y G ::= A ⇒ (G, A)
(G, A) y A ::= C ⇒ (G, C)
(G, C) y C ::= S ⇒ (G, S)
(G, S) y S ::= B ⇒ (G, B)
(G, B) y B ::= D ⇒ (G, D)
(G, D) y D ::= F ⇒ (G, F )
(G, G) y G ::= H ⇒ (G, H)
⇒
(S, S) : S ::= AHa | Aa | Ha | a | BGH | BG | BH | agD
(S, B) : S ::= ac | F G
(S, D) : S ::= bcSa
(S, F ) : S ::= gacAH | gacA | gacH | gac
(A, A) : A ::= f aBG | f aB
(A, C) : A ::= BabD
(A, S) : A ::= AHa | Aa | Ha | a | BGH | BG | BH | agD
(A, B) : A ::= ac | F G
(A, D) : A ::= bcSa
(A, F ) : A ::= gacAH | gacA | gacH | gac
(B, B) : B ::= ac | F G
(B, D) : B ::= bcSa
(B, F ) : B ::= gacAH | gacA | gacH | gac
(C, C) : C ::= BabD
(C, S) : S ::= AHa | Aa | Ha | a | BGH | BG | BH | agD
(C, B) : C ::= ac | F G
(C, D) : C ::= bcSa
(C, F ) : C ::= gacAH | gacA | gacH | gac
(D, D) : D ::= bcSa
(D, F ) : D ::= gacAH | gacA | gacH | gac
(D, B) : D ::= ac | F G
Página 2 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
(E, E) : E ::= ab | SF ca | Sf ca
(F, F ) : F ::= gacAH | gacA | gacH | gac
(F, B) : F ::= ac | F G
(F, D) : F ::= bcSa
(G, G) : G ::= agbcDG | agbcD | AH
(G, A) : G ::= f aBG | f aB
(G, C) : G ::= BabD
(G, S) : G ::= AHa | Aa | Ha | a | BGH | BG | BH | agD
(G, B) : G ::= ac | F G
(G, D) : G ::= bcSa
(G, F ) : G ::= gacAH | gacA | gacH | gac
(G, H) : G ::= ADba | Dba | AHd | Ad | Hd | d
(H, H) : H ::= ADba | Dba | AHd | Ad | Hd | d
⇒
S ::= AHa | Aa | Ha | a | BGH | BG | BH | agD |
| ac | F G | bcSa | gacAH | gacA | gacH | gac
A ::= f aBG | f aB | BabD |
| AHa | Aa | Ha | a | BGH | BG | BH | agD |
| ac | F G | bcSa | gacAH | gacA | gacH | gac
B ::= ac | F G | bcSa | gacAH | gacA | gacH | gac
C ::= BabD | AHa | Aa | Ha | a | BGH | BG | BH | agD |
| ac | F G | bcSa | gacAH | gacA | gacH | gac
D ::= bcSa | gacAH | gacA | gacH | gac | ac | F G
E ::= ab | SF ca | Sf ca | gacAH | gacA | gacH | gac
F ::= ac | F G | bcSa
G ::= agbcDG | agbcD | AH | f aBG | f aB | BabD |
| AHa | Aa | Ha | a | BGH | BG | BH | agD |
| ac | F G | bcSa | gacAH | gacA | gacH | gac |
| ADba | Dba | AHd | Ad | Hd | d
H ::= ADba | Dba | AHd | Ad | Hd | d
3.
a) Base: a, b, c, d, f, g; Paso inductivo: S, A, B, C, D, E, F, G, H
⇒ Sı́mbolos no generadores: ∅
La gramática no varı́a.
b) Base: Sı́mbolos alcanzables: S;
Paso inductivo: A, B, D, F, G, H, a, b, c, g; Paso inductivo: d, f
⇒ Sı́mbolos no alcanzables: C, E
Se quitan de la gramática las dos producciones con las cabezas C y
E.
(b) (0.7 puntos) Dada la siguiente gramática
G2 = ({S, A, B, C}, {a, b}, S, P ):
Página 3 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
S ::= ABa | ab
A ::= BCS | b
B ::= BCS | b | a | BS | AB
C ::= CB | aa
Indica si la palabra baabb pertenece al lenguaje generado por G2 o no. Utiliza el
algoritmo CYK.
Solución:
Antes de aplicar el algorı́tmo CYK, hay que convertir la gramática G2 en FNC:
G2 ya es una gramática bien formada.
1. Conversión de producciones: X ::= a, Y ::= b
S ::= ABX | XY
A ::= BCS | b
B ::= BCS | b | a | BS | AB
C ::= CB | XX
2. Conversión de cadenas α, α ∈ Σ∗N , |α| ≥ 3
ABX : T1 ::= BX
BCS : T2 ::= CS
⇒ X ::= a
Y ::= b
S ::= AT1 | XY
A ::= BT2 | b
B ::= BT2 | b | a | BS | AB
C ::= CB | XX
T1 ::= BX
T2 ::= CS
Apliacación del algoritmo CYK:
Fila 5:
X11 (b) = {A, B, Y } = X44 = X55
X22 (a) = {B, X} = X33
Fila 4:
X12 (ba) = X11 X22 : {A, B, Y }{B, X} = {AB, AX, BB, BX, Y B, Y X}
⇒ X12 (ba) = {B, T1 }
X23 (aa) = X22 X33 : {B, X}{B, X} = {BB, BX, XB, XX}
⇒ X23 (ba) = {C, T1 }
X34 (ab) = X33 X44 : {B, X}{A, B, Y } = {BA, BB, BY, XA, XB, XY }
⇒ X34 (ab) = {S}
X45 (bb) = X44 X55 : {A, B, Y }{A, B, Y } = {AA, AB, AY, BA, BB, BY, Y A, Y B, Y Y }
⇒ X45 (ab) = {B}
Fila 3:
X13 (baa) = X11 X23 ∪ X12 X33 : {A, B, Y }{C, T1} ∪ {B, T1 }{B, X}
= {AC, AT1 , BC, BT1 , Y C, Y T1 , BB, BX, T1 B, T1 X}
⇒ X13 (baa) = {S, T1 }
Página 4 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
X24 (aab) = X22 X34 ∪ X23 X44 : {B, X}{S} ∪ {C, T1 }{A, B, Y }
= {BS, XS, CA, CB, CY, T1 A, T1 B, T1 Y }
⇒ X24 (aab) = {B, C}
X35 (abb) = X33 X45 ∪ X34 X55 : {B, X}{B} ∪ {S}{A, B, Y }
= {BB, XB, SA, SB, SY }
⇒ X35 (abb) = {}
Fila 2:
X14 (baab) = X11 X24 ∪ X12 X34 ∪ X13 X44 :
{A, B, Y }{B, C} ∪ {B, T1 }{S} ∪ {S, T1 }{A, B, Y }
= {AB, AC, BB, BC, Y B, Y C, BS, T1 S, SA, SB, SY, T1A, T1 B, T1 Y }
⇒ X14 (baab) = {B}
X25 (aabb) = X22 X35 ∪X23 X45 ∪X24 X55 : {B, X}{}∪{C, T1}{B}∪{B, C}{A, B, Y } =
{CB, T1 B, BA, BB, BY, CA, CB, CY }
⇒ X25 (aabb) = {C}
Fila 1:
X15 (baabb) = X11 X25 ∪X12 X35 ∪X13 X45 ∪X14 X55 : {A, B, Y }{C}∪{B, T1}{}∪
{S, T1 }{B} ∪ {B}{A, B, Y } = {AC, BC, Y C, SB, T1 B, BA, BB, BY }
⇒ X15 (baabb) = {}
El axioma S no se encuentra dentro del conjunto X15 , por tanto, la palabra
baabb no pertenece al lenguaje generado por la gramática G2 .
(c) (0.7 puntos) Dada la siguiente gramática
G3 = ({S, A, B, C}, {a, b}, S, P ):
S ::= ABa | ab
A ::= BCS | b
B ::= BaS | b | a | Bb
C ::= CB | aa
Convierte la gramática G3 en una gramática en Forma Normal de Greibach.
Solución:
La gramática G3 ya es una gramática bien formada.
Sustituir el sı́mbolo A por los cuerpos de A en la primera producción de S.
S ::= BCSBa | bBa | ab
A ::= BCS | b
B ::= BaS | b | a | Bb
C ::= CB | aa
Eliminar la recursión en las producciones de B.
S ::= BCSBa | bBa | ab
A ::= BCS | b
B ::= b | a | bD | aD
C ::= CB | aa
D ::= aS | b | aSD | bD
Sustituir los sı́mbolos B en los cuerpos de las producciones de S y A.
Página 5 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
S ::= bCSBa | aCSBa | bDCSBa | aDCSBa | bBa | ab
A ::= bCS | aCS | bDCS | aDCS | b
B ::= b | a | bD | aD
C ::= CB | aa
D ::= aS | b | aSD | bD
Eliminar la recursión en las producciones de C.
S ::= bCSBa | aCSBa | bDCSBa | aDCSBa | bBa | ab
A ::= bCS | aCS | bDCS | aDCS | b
B ::= b | a | bD | aD
C ::= aa | aaE
D ::= aS | b | aSD | bD
E ::= B | BE
Sustituir el sı́mbolo B por los cuerpos de B en las producciones de E.
S ::= bCSBa | aCSBa | bDCSBa | aDCSBa | bBa | ab
A ::= bCS | aCS | bDCS | aDCS | b
B ::= b | a | bD | aD
C ::= aa | aaE
D ::= aS | b | aSD | bD
E ::= b | a | bD | aD | bE | aE | bDE | aDE
Página 6 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
2. (2.2 puntos) Gramáticas independientes de contexto:
(a) (1.5 puntos) Diseña una gramática independiente de contexto que genere el
siguiente lenguaje
L = {ax by cz | x ≥ y − z; y ≥ z; x, y, z ≥ 0}
Ten en cuenta las siguientes pistas:
Por la definición del lenguaje, las b’s que hay en la palabra están “compensadas” por c’s y por a’s. Es decir, se puede considerar que las b’s se parten
en dos grupos: 1) un grupo de b’s coincide en número con las c’s al final de
la palabra y 2) para el otro grupo de b’s hay por lo menos el mı́smo número
de a’s al principio de la palabra.
Aparte de las a’s que “compensan” b’s, puede haber más a’s al principio.
Solución:
La pista 1 lleva directamente a las producciones:
Q ::= bc | bQc
La pista 2 y la pista 3 llevan directamente a las producciones:
P ::= Ab | AP b y A ::= a | aA
Se unen estas producciones mediante el axioma S:
S ::= A | P | Q | AQ | P Q | λ
G = ({abc}, {S, P, Q, A}, S, P ), P contiene las producciones de arriba.
(b) (0.1 puntos) Comprueba mediente derivaciones que las siguientes palabras pertenecen a L:
aaa, aabb, abbc, aaabb, aaabbbccc, bbbccc
Solución:
aaa : S ⇒ A ⇒ aA ⇒ aaA ⇒ aaa
aabb : S ⇒ P ⇒ AP b ⇒ aP b ⇒ aAbb ⇒ aabb
abbc : S ⇒ P Q ⇒ AbQ ⇒ abQ ⇒ abbc
aaabb : S ⇒ P ⇒ AP b ⇒ aAP b ⇒ aaP b ⇒ aaabb
aaabbbccc : S ⇒ AQ ⇒ aAQ ⇒ aaAQ ⇒ aaaQ ⇒ aaabQc ⇒ aaabbQcc ⇒
aaabbbccc
bbbccc : S ⇒ Q ⇒ bQc ⇒ bbQcc ⇒ bbbccc
(c) (0.3 puntos) Escribe tu gramática en forma normal de Greibach (FNG).
Solución:
La gramática G no está bien formada (contiene producciones unitarias). La
siguiente gramática G está bien formada.
G = ({abc}, {S, P, Q, A}, S, P ), P contiene las siguientes producciones:
Q ::= bc | bQc
P ::= Ab | AP b
Página 7 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
A ::= a | aA
S ::= a | aA | Ab | AP b | bc | bQc | AQ | P Q | λ
G no contiene recursiones, por tanto, es suficiente reemplazar las variables en
los cuerpos de las producciones, primero en P y, posteriormente, en S.
GG = ({abc}, {S, P, Q, A}, S, P ), P contiene las siguientes producciones:
Q ::= bc | bQc
P ::= ab | aAb | aP b | aAP b
A ::= a | aA
S ::= a | aA | ab | aAb | aP b | aAP b | bc | bQc | aQ | aAQ | abQ | aAbQ | aP bQ | aAP bQ | λ
(d) (0.3 puntos) Escribe tu gramática en forma normal de Chomsky (FNC).
Solución:
La gramática G del ejercicio anterior está bien formada.
GC = ({abc}, {S, P, Q, A, A1, B, C}, S, P ), P contiene las siguientes producciones:
Q ::= BC | BT2
P ::= AB | AT1
A ::= a | A1 A
S ::= a | A1 A | AB | AT1 | BC | BT2 | AQ | P Q | λ
A1 ::= a
B ::= b
C ::= c
T1 ::= P B
T2 ::= QC
3. (2.3 puntos) Dado el siguiente autómata a pila:
AP = ({a, b, c}, {A, B, C}, {p, q}, p, C, f ), donde f según el grafo
c, C/AB
a, A/λ
p
c, A/ABA
q
b, B/λ
(a) (1.7 puntos) Convierte el autómata a pila en una gramática independiente de
contexto.
Solución:
Construimos la siguente gramática independiente de contexto
G = (ΣN , {a, b, c}, C, P ), donde el conjunto de variable ΣN consta de
ΣN = {C ∪ {[pCq]}|p, q ∈ Q; X ∈ Γ}.
Las producciones P de G son como sigue:
Página 8 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
C ::= [pCp] | [pCq].
f (p, c, C) = {p, AB} ⇒ [pCr2 ] ::= c[pAr1 ][r1 Br2 ]
[pCp] ::= c[pAp][pBp]
[pCp] ::= c[pAq][qBp]
[pCq] ::= c[pAp][pBq]
[pCq] ::= c[pAq][qBq]
f (p, c, A) = {p, ABA} ⇒ [pCr3 ] ::= c[pAr1 ][r1 Br2 ][r2 Ar3 ]
[pAp] ::= c[pAp][pBp][pAp]
[pAp] ::= c[pAq][qBp][pAp]
[pAp] ::= c[pAp][pBq][qAp]
[pAp] ::= c[pAq][qBq][qAp]
[pAq] ::= c[pAp][pBp][pAq]
[pAq] ::= c[pAq][qBp][pAq]
[pAq] ::= c[pAp][pBq][qAq]
[pAq] ::= c[pAq][qBq][qAq]
f (p, a, A) = {q, λ} ⇒ [pAr1 ] ::= a[qλr1 ]
[pAp] ::= a[qλp] ⇐ No existe
[pAq] ::= a[qλq] = a
f (q, b, B) = {p, λ} ⇒ [qBr1 ] ::= b[pλr1 ]
[qBp] ::= b[pλp] = b
[qBq] ::= b[pλq] ⇐ No existe
(b) (0.1 puntos) Demuestra el reconocimiento de la palabra ccabcabab por el autómata a pila mediante una secuencia de descripciones instantáneas.
Solución:
(p, ccabcabab, C) (p, cabcabab, AB) (p, abcabab, ABAB) (q, bcabab, BAB) (p, cabab, AB) (p, abab, ABAB) (q, bab, BAB) (p, ab, AB) (q, b, B) (p, λ, λ)
(c) (0.4 puntos) Demuestra la generación de la misma palabra ccabcabab por la
gramática generada en la primera parte de este ejercicio.
Solución:
C ⇒ [pCp] ⇒ c[pAq][qBp] ⇒ cc[pAq][qBp][pAq][qBp] ⇒ cca[qBp][pAq][qBp] ⇒
ccab[pAq][qBp] ⇒ ccabc[pAq][qBp][pAq][qBp] ⇒ ccabca[qBp][pAq][qBp] ⇒
ccabcab[pAq][qBp] ⇒ ccabcaba[qBp] ⇒ ccabcabab
(d) (0.1 puntos) Convierte el autómata a pila AP en un autómata a pila reconocedor
por estado final.
Página 9 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
Solución:
APF = ({a, b, c}, {A, B, C, S}, {p, q, p0, pf }, p0 , S, f, {pf }), donde f consta de
las siguientes transiciones:
f (p0 , λ, S) = {(p, CS)}
Incluir todas las transiciones de AP
f (p, λ, S) = {pf , λ}
Página 10 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
4. (1.4 puntos) Una anécdota que se le asocia a Carl Friedrich Gauss es la siguiente:
Una mañana en un salón de clases. El profesor, ante un grupo de niños de alrededor
de 10 años de edad, estaba molesto por algún mal comportamiento del grupo y les
puso un problema en el pizarrón que según él les tomarı́a un buen rato terminar; ası́,
de paso, podrı́a descansar. En esos tiempos los niños llevaban una pequeña pizarra
en la cual hacı́an sus ejercicios.
Y el profesor dijo que mientras fueran acabando pusieran las pizarras en su escritorio
para que luego las revisara. El problema consistı́a en sumar los primeros cien números
enteros, es decir, encontrar la suma de todos los números del 1 al 100. A los pocos
segundos de haber planteado el problema se levantó un niño y depositó su pizarra boca
abajo sobre el escritorio del maestro. Éste, convencido de que aquel niño no querı́a
trabajar, ni se molestó en ver el resultado; prefirió esperar a que todos terminaran.
Al final de la clase, el profesor dio por acabado el examen y volvió las pizarras hacia
arriba. La primera, la del joven Gauss, sólo contenı́a un número. Cuando el profesor
lo leyó, para su sorpresa y la de todos los presentes, resultó que la respuesta del joven
Gauss era correcta. Muchos de sus compañeros, sin embargo, habı́an obtenido una
respuesta errónea.
Dada la siguiente progresión aritmética:
1 (=1)
3 (=1+2)
6 (=1+2+3)
10 (=1+2+3+4)
15 (=1+2+3+4+5)
21 (=1+2+3+4+5+6)
28 (=1+2+3+4+5+6+7)
etc.
5050 (=1+2+3+4+5+6+. . .+100) (El problema de Gauss)
etc.
Dado un lenguaje L sobre el alfabeto a.
Todas las palabras de L tienen una longitud que corresponde con los resultados de
la progresión aritmética.
Es decir, L consta de las palabras a, aaa, aaaaaa, a10 , a15 , a21 , a28 , etc.
Demuestra que L no es un lenguaje independiente de contexto usando el lema de
bombeo.
Solución:
Supongamos que L fuera un lenguaje independiente de contexto. Sea n la constante
n
del lema de bombeo. Entonces existe una palabra z = a i=1 i , tal que |z| ≥ n, z ∈ L.
Existe una descomposición de z = uvwxy con las condiciones:
Página 11 de 12
Examen Autómatas y Lenguajes Formales - 2do. Parcial (cont.)
1. |vwx| ≤ n
2. |vx| ≥ 1
3. ∀i : uv i wxi y ∈ L
n
Si z = a
i=1
i
n+1
∈ L, la siguiente palabra de L es: z = a
2
2
|z |−|z| = |uv wx y|−|uvwxy| =
n+1
i=1
i−
n
i=
i=1
n
i=1
i=1
i
.
i+(n+1)−
n
i = n+1 ≤ |vx|
i=1
Es decir, la distance entre |z | y |z| es n + 1, que es una contradicción a la regla
|vwx| ≤ n.
Podemos concluir que la suposición L independiente de contexto es erróneo y, ‘por
tanto, L no es independiente de contexto.
Página 12 de 12
Descargar