Solución del control celebrado los días 22 y 23 de enero

Anuncio
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
TEST (3 puntos)
Responda si los siguientes enunciados - precedidos por una letra - son verdaderos o
falsos utilizando las tablas que figuran al final. Al rellenar la tabla, coloque una cruz en
la fila V si considera que el enunciado de la correspondiente columna es verdadero. De
forma excluyente, coloque una cruz en la fila F cuando considere que es falso. Las
respuestas correctas sumarán 0.2 puntos, las incorrectas restarán 0.2 puntos y las
respuestas en blanco no serán evaluadas. Manifieste nítidamente qué tabla considera su
respuesta final, tachando completamente las demás tablas utilizadas.
•
Sea un homomorfismo h(a)=“00” y h(b)=“0”.
A. Sea G=({a,b},{S,B},S,{S→BBa,B→ab|ba}). Si L=L(G) entonces se tiene que
H(L)={“00000000”}
B. Para todo L⊆Σ* se cumple |L|≥|H(L)|
C. Para todo L⊆Σ* se cumple |L|≤|H(L)|
D. Para toda cadena u tal que u=h*(v) se cumple que |u|≥|v|
E. Para toda cadena u tal que u=h*(v) se cumple que |u|≤|v|
Sea M un AF=(Σ,Q,q0,F, δ) tal que L=L(M). Sean u,v dos cadenas de Σ*
F. Si no existen dos estados distintos p,q∈Q tales que ∀z∈Σ* se cumple que
δ*(p,z)∈F sii δ*(q,z)∈F, entonces u≡Lv sii u≡Mv
G. Si u≡Mv entonces u≡Lv
H. Si u≡Lv entonces u≡Mv
I. Si u∈L y v∈L ⇒ u≡Lv
J. Sea L1⊆Σ* y sean i,j dos números naturales. Si ai≡L1aj entonces L1 es regular
Sobre el Teorema de Kleene
K. Define un método de paso de expresiones regulares a AFD
L. Define un método de paso de expresiones regulares a AF
M. Define un método de paso de expresiones regulares a λ-AFND
N. La expresión regular Rijk se define como Rijk = Rijk −1 + Rikk −1 ( Rkkk −1 ) * Rkjk −1
O. Utiliza los AF de Thompson que se caracterizan por tener un único estado final
y por no tener arcos que terminan en el estado inicial ni salen del estado final
•
•
V
F
A
X
B
X
C
D
X
X
E
F
X
G
X
X
H
I
J
K
X
X
X
X
L
X
M
X
N
O
X
X
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
V
F
V
F
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
Ejercicio 1. (1 punto)
Diseña una máquina secuencial de Moore que imprima en la cinta de salida la letra ‘p’
si la suma parcial de los dígitos introducidos es par, o la letra ‘i’ si es impar. La
máquina sólo recibirá dígitos del 1 al 4 y tendrá una tecla ‘C’ que sirve de ‘reset’ (pone
a 0 la suma). Podemos asumir que al iniciar o al pulsar la tecla ‘C’ la máquina
imprimirá una p.
Solución:
MO 1 2 3 4 C
→q0/p q1 q0 q1 q0 q0
q1/i q0 q1 q0 q1 q0
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
Ejercicio 2. (1 punto)
Escriba la función de transición del AP equivalente a la siguiente gramática.
S → AAa
A→ BbB
B→ a
Solución:
δ(q, λ, S) = {(q, AAa)}
δ(q, λ, A) = {(q, BbB)}
δ(q, λ, B) = {(q, a)}
δ(q, a, a) = {(q, λ)}
δ(q, b, b) = {(q, λ)}
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
Ejercicio 3 (2 puntos).
Dada la gramática G=({a,b},{S,A,B},S,{ S → AAa, A → BbB, B → a}):
a) Desarrolle el algoritmo CYK para la cadena “abaab”.
b) Marque con un circulo las casillas que habría que reevaluar si cambiamos el
último símbolo de la cadena del apartado a) (analizando la cadena “abaaa”).
Escriba el nuevo valor para las casillas que hayan cambiado.
c) ¿Pertenecen las cadenas “abaab” y “abaaa” a L(G)? (Razone su respuesta).
Solución:
Paso a FNC:
Lexicalización
Binarización
S → AACa
A → BCbB
B →a
Ca → a
Cb → b
S → AD1
D1 → ACa
A → BD2
D2 → CbB
B →a
Ca → a
Cb → b
CYK:
a) Tabla de análisis:
j=i+4
j=i+3
j=i+2
j=i+1
j=i
D1
A
B,Ca
a
D2
Cb
b
B,Ca
a
B,Ca
a
Cb
b
b) La única casilla que cambia es la T[5,5]={B,Ca} (antes {Cb}).
c) Ninguna de las dos cadenas pertenece al lenguaje ya que en ambos casos el
axioma de la gramática NO está presente en la casilla T[1, 5], por lo que NO es
capaz de derivar la cadena completa (desde la posición 1 hasta la 4).
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
Ejercicio 4 (1 puntos).
Mostrar la salida del siguiente programa en Perl:
$_="[43] [abc] [410]";
print "1- $1\n"
print "2- $1\n"
print "3- $1\n"
print "4- $1\n"
while /(\B\w\B)/g;
if /(\d+)\D/;
if /(\d+?)\D/;
if /([\w+])/;
s/(\d+).*?(\d+)/$1+$2/eg;
print "5- $_\n";
SOLUCIÖN:
112345-
b
1
43
43
4
[453]
AMPLIACIÓN DE LENGUAJES FORMALES Y AUTÓMATAS
CONTROL 22-01-2007
Apellidos:_______________________________________________
Nombre: _______________________________________________
Ejercicio 5 (2 puntos).
Un fichero de entrada contiene rangos formados por dos numeros naturales. Diseña un
programa en Perl que identifique todos los rangos cuyos dos números coinciden en la
ultima cifra (por ejemplo, [9-29]) y muestre por pantalla su diferencia.
Ejemplo de entrada y salida
Entrada.in
Salida
[23-23] [12-4] [12-122]
[35-5]
[256-67]
[10-0]
Rango
Rango
Rango
Rango
[23-23] Diferencia:0
[12-122] Diferencia:-110
[35-5] Diferencia:30
[10-0] Diferencia:10
SOLUCIÓN
$in="entrada.in";
open(IN,$in) or die("No puedo abrir $in\n");
while (<IN>) {
while (/(\[(\d*(\d))\-(\d*\2)\])/g) {
"Rango $1 Diferencia:",$2-$4,"\n";
}
}
close(IN);
Descargar