Teor´ıa de Aut´ omatas y Lenguajes Formales Soluci´

Anuncio
U.R.J .C.
Ingenierı́a Técnica en Informática de Sistemas
Ingenierı́a Informática
Teorı́a de Autómatas y Lenguajes
Formales
Curso 2005/06
Solución Segundo Parcial
Normas :
La duración de esta parte del examen es de 2 horas y 15 minutos.
Todos los ejercicios se entregarán en hojas separadas.
1. (2 puntos) Sea Σ el alfabeto finito Σ := {if , then, else, comando, {, }, true, false}.
Consideremos la gramática independiente del contexto siguiente :
G := ({S, E, C}, Σ, S, {S ::= if E then S else S|comando|{S}; E ::= true | false}).
Se pide :
Calcular una Forma Normal de Chomksy para la gramática G.
Utilizando la Forma Normal previamente calculada, y usando el algoritmo visto
en el curso, comprueba si la palabra
if true then comando else { false }
está en el lenguaje generado por la gramática.
Solución
La gramática en Forma Normal de Chomsky es
({S, E, T, R1 , R2 , A1 , A2 , A3 , C1 , C2 , C3 } , {true, false, if , else, then, {, }, comando} , S, P),
donde P son las producciones siguientes :
S
E
T
R1
R2
A1
A2
A3
C1
C2
C3
C4
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
C1 C2 | comando | R1 T
true | false
SR2
{
}
if
then
else
A1 E
C3 C4
A2 S
A3 S
Pagina 1 de 4
U.R.J .C.
Ingenierı́a Técnica en Informática de Sistemas
Ingenierı́a Informática
Teorı́a de Autómatas y Lenguajes
Formales
Solución Segundo Parcial
Curso 2005/06
Para saber si la palabra x = if true then comando else {false} pertenece al
lenguaje generado por la gramática, aplicaremos el algoritmo visto durante el curso.
Para ello, construı́mos la tabla correspondiente :
if
A1
C1
∅
∅
∅
∅
∅
∅
true
E
∅
∅
∅
∅
∅
∅
then
A2
C3
∅
∅
∅
∅
comando
S
∅
∅
∅
∅
else
A3
∅
∅
∅
{
R1
∅
∅
false
E
∅
}
R2
Como la última casilla no contiene el axioma, podemos deducir que la palabra x no
está en el lenguaje generado por la gramática.
2. (2,5 puntos) Diseña un autómata a pila que reconozca el siguiente lenguaje:
L = {an+m bm+t at bn | n, t > 0, m ≥ 0}
Solución
A = ({a, b}, {S, A, B, C}, S, {q0 , q1 , q2 , q3 }, q0 , f, {})
f (q0 , a, S)
f (q0 , a, A)
f (q0 , a, B)
f (q0 , b, B)
f (q0 , b, A)
f (q1 , b, B)
f (q1 , b, A)
f (q1 , b, C)
f (q1 , a, C)
f (q2 , a, C)
f (q2 , b, A)
f (q3 , b, A)
=
=
=
=
=
=
=
=
=
=
=
=
{(q0 , A)}
{(q0 , AA), (q0 , BA)}
{(q0 , BB)}
{(q1 , λ)}
{(q1 , CA)}
{(q1 , λ)}
{(q1 , CA)}
{(q1 , CC)}
{(q2 , λ)}
{(q2 , λ)}
{(q3 , λ)}
{(q3 , λ)}
Pagina 2 de 4
U.R.J .C.
Ingenierı́a Técnica en Informática de Sistemas
Ingenierı́a Informática
Teorı́a de Autómatas y Lenguajes
Formales
Curso 2005/06
Solución Segundo Parcial
3. (2,5 puntos) Diseña una máquina de Turing que reconozca el siguiente lenguaje:
L = {an bn+m am | n, m ≥ 0}
Solución
M = ({a, b}, {a, b, •}, •, {q0 , . . . , q7 }, q0 , f, {q7 })
f (q0 , •)
f (q0 , a)
f (q0 , b)
f (q1 , a)
f (q1 , b)
f (q1 , •)
f (q2 , a)
f (q2 , b)
f (q2 , •)
f (q3 , a)
f (q3 , b)
f (q3 , •)
f (q4 , a)
f (q5 , a)
f (q5 , b)
f (q5 , •)
f (q6 , •)
f (q6 , b)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
(q7 , •, R)
(q1 , •, R)
(q3 , •, R)
(q1 , a, R)
(q1 , b, R)
(q2 , a, L)
(q2 , a, L)
(q2 , b, L)
(q0 , •, R)
(q3 , a, R)
(q3 , b, R)
(q4 , •, L)
(q5 , •, L)
(q5 , a, L)
(q5 , b, L)
(q6 , •, R)
(q7 , •, R)
(q3 , •, R)
4. (2 puntos) Sea Σ = {0, 1, 2} un alfabeto finito, y consideremos el lenguaje L ⊆ Σ∗ ,
definido por la igualdad siguiente :
L := {0p 1q 2r | 0 ≤ 2p + 3 ≤ 3q + 2 ≤ r + 1} ⊆ Σ∗ .
Demuestra que el lenguaje L no es un lenguaje independiente del contexto.
Solución
Supongamos que el lenguaje L es independiente del contexto. Entonces debe verificar
el Lema de Bombeo. Sea N ∈ N la constante del enunciado del Lema de Bombeo. Definamos x := 03N +1 12N +1 26N +4 . Se tiene que x ∈ L. Adems, |x| ≥ N . Sea x = yzuvw
una descomposición cualquiera cumpliendo las propiedades del Lema de Bombeo.
Esto es,
Pagina 3 de 4
U.R.J .C.
Ingenierı́a Técnica en Informática de Sistemas
Ingenierı́a Informática
Teorı́a de Autómatas y Lenguajes
Formales
Curso 2005/06
Solución Segundo Parcial
i) |zuv| ≤ N .
ii) |zv| > 0.
iii) ∀i ≥ 0, yz i uv i w ∈ L.
Estudiemos todas las posibilidades para dicha descomposición.
Supongamos que la cadena zv contiene algún 2. Entonces, por la propiedad i) se
tiene que no puede contener ningún 0. Ahora, por la propiedad iii) para i = 0,
se tiene que α := yz 0 uv 0 w ∈ L. Pero eso es imposible, pues
n2 (α) + 1 ≤ 6N + 4 < 6N + 5 = 2n0 (α) + 3.
Supongamos que la cadena zv no contiene ningún 2. Entonces, como dicha cadena no puede ser vacı́a (por la propiedad ii) ), se tiene que debe contener algún
0 o algún 1. Estudiemos ambas opciones.
• Supongamos que la cadena zv contiene algún 0. Entonces, por la propiedad
iii) para i = 2, se tiene que α := yz 2 uv 2 w ∈ L. Pero eso es imposible, pues
2n0 (α) + 3 ≥ 6N + 6 > 6N + 5 = n2 (α) + 1.
• Supongamos que la cadena zv contiene algún 1. Entonces, por la propiedad
iii) para i = 2, se tiene que α := yz 2 uv 2 w ∈ L. Pero eso es imposible, pues
3n1 (α) + 2 ≥ 6N + 6 > 6N + 5 = n2 (α) + 1.
En todos los casos llegamos a una contradicción, que parte de suponer que L es un
lenguaje independiente del contexto. Concluı́mos que el lenguaje L no es un lenguaje
independiente del contexto.
Pagina 4 de 4
Descargar