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
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
Descargar