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

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 /
Autómatas y Lenguajes Formales
Final
Junio 2007
Normas :
La duración de esta parte del examen es de 2 horas y 30 minutos.
Todos los ejercicios se entregarán en hojas separadas.
El examen tipo test cuenta hasta 2 puntos sobre la nota total.
Además de obtener un mı́nimo de 5 puntos en el global del examen, para poder aprobar es necesario obtener un mı́nimo de 1.5 puntos entre las tres primeras preguntas
y un mı́nimo de 1.5 puntos entre las dos últimas.
1. (1.25 puntos) Sea A el conjunto de los árboles binarios que verifican que cada nodo
está etiquetado con el número de hijos que tiene.
Ejemplos de árboles pertenecientes a A son los siguientes árboles :
1
2
1
2
2
1
2
0
0
2
0
1
0
0
0
1
2
1
0
1
0
0
Dado un árbol en A, podemos codificarlo dando su recorrido postorden (esto es,
imprimir el recorrido postorden del hijo izquierdo, imprimir el recorrido postorden
del hijo derecho e imprimir su raı́z). Este recorrido es una palabra en el alfabeto
{0, 1, 2}. Por ejemplo, la codificación de los anteriores ejemplos son 010211, 0020202,
y 010121012.
Definiremos LA de la manera siguiente :
LA = {x ∈ {0, 1, 2}∗ | x es la codificación de un árbol en A} .
Demuestra que LA no es un lenguaje regular.
Página 1 de 6
Examen Teorı́a de Autómatas y Lenguajes Formales - FINAL (cont.)
Solución:
Para demostrar que LA no es regular basta demostrar que no cumple el lema de
bombeo. Para ello se va a demostrar que para cualquier constante n existe una
palabra x ∈ LA con |x| ≥ n que no se puede dividir de forma u.v.w con |u.v| ≤ n,
|v| > 0 y tal que u.v i.w ∈ LA para i = 0, 1, 2, ....
Sea n la constante del lema. Elegimos la palabra x = 0n+1 2n . Es obvio que x ∈ LA
y |x| = 2n + 1 ≥ n.
Intentamos dividir x de forma u.v.w tal que |u.v| ≤ n y |v| > 0. La unica forma
posible es la siguiente:
x = 0n+1 2n = 0a ,0b ,0c 2n = u.v.w con a + b + c = n + 1 y b > 0.
Para cumplir el lema de bombeo, la palabra u.v 2 .w, es decir, 0a ,02b ,0c 2n = 0n+1+b 2n
con b > 0 debe pertenecer a LA . Sin embargo, esta palabra no puede pertenecer
al lenguaje ya que cualquier palabra del lenguaje que esté compuesta sólo por ’2’
y ’0’ tiene siempre un ’0’ más que ’2’es. Por tanto el lenguaje no cumple el lema
de bombeo y no es regular.
2. (1.25 puntos) Sean los siguientes lenguajes:
L1 = {xx−1 | siendo x ∈ {a, b}∗ } y
L2 = {ww | siendo w ∈ L1 }
Obtén una gramática formal que genere el lenguaje L2 .
Solución:
Una posible solución serı́a la siguiente gramática:
G = ({S, A, B, C, D}, {a, b}, S, P )
con
P ={ S
D
Aa
Ba
Ab
Bb
AC
BC
aC
bC
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
DC | λ,
aADAa | bBDBb | λ,
aA,
aB,
bA,
bB,
Ca,
Cb,
a,
b}
3. (a) (0.75 puntos) Obtén un autómata finito determinista equivalente al siguiente
autómata:
AF = ({a, b}, {p, q, r, s, t, u, v}, f, p, {s, u})
Página 2 de 6
Examen Teorı́a de Autómatas y Lenguajes Formales - FINAL (cont.)
f
a
→p {q,s}
q
r
*s {s}
t {q,u}
*u {v}
v
b
{p}
{q,r}
{p,s}
{q,r,s}
{p}
{t}
{u}
λ
{q,r}
{r}
{q,t}
{v}
Solución:
Para convertir este autómata finito no determinista en un determinista equivalente, primero hallaremos la clausura lambda de su estado inicial:
clausuraλ (p) = {p, q, r, t, v}
Esta clausura será el estado inicial de nuestro nuevo autómata finito determinista:
f
a
b
→{p, q, r, t, v} {q, r, s, t, u, v} {p, q, r, s, t, u, v}
*{q, r, s, t, u, v} {q, r, s, t, u, v} {p, q, r, s, t, u, v}
*{p, q, r, s, t, u, v} {q, r, s, t, u, v} {p, q, r, s, t, u, v}
(b) (0.75 puntos) Obtén un autómata finito determinista mı́nimo equivalente al siguiente autómata:
AF = ({0, 1}, {q0, q1 , q2 , q3 , q4 , q5 , q6 , q7 }, f, q0 , {q5 , q7 })
Donde f viene representada por la siguiente tabla de transiciones:
f
→q0
q1
q2
q3
q4
*q5
q6
*q7
0
q1
q2
q3
q2
q5
q5
q3
q1
1
q5
q4
q4
q4
q3
q1
q7
q5
Solución:
Primero eliminamos los estados inaccesibles q6 y q7 . Después, pasamos a
calcular el conjunto cociente Q/E:
Q/E0 = {{q0 , q1 , q2 , q3 , q4 }, {q5 }}
Q/E1 = {{q0 }, {q1 , q2 , q3 }, {q4 }, {q5 }}
Q/E2 = {{q0 }, {q1 , q2 , q3 }, {q4 }, {q5 }}
Página 3 de 6
Examen Teorı́a de Autómatas y Lenguajes Formales - FINAL (cont.)
Q/E2 = Q/E1
por lo tanto Q/E1 = Q/E
{q0 }, {q1 , q2 , q3 }, {q4 }, {q5 }
|{z} | {z } |{z} |{z}
A
B
C
D
f2′ a b
→A B D
B B C
C D B
*D D B
4. (a) (1,3 puntos) Diseñar un autómata de pila que reconozca el siguiente lenguaje L
sobre el alfabeto {0, 1, p}:
∗
L = {(0 + 1) x, donde x =
0,
p,
si el número de 1 es par
si el número de 1 es impar
Explica la construcción de dicho autómata.
Solución:
Construcción de un autómata de pila que reconoce por vaciado de pila:
APV AP = ({0, 1, p}, {1, Z0}, {p, q}, p0, Z0 , f ), donde f según la representación gráfica.
(b) (0,5 puntos) Transformar el autómata de la parte a) en un autómata de pila de
otro tipo. Es decir, convertir un AP que reconoce por vaciado de pila en un AP
que reconoce por estado final o viceversa.
Solución:
APF AP = ({0, 1, p}, {1, Z0, X0 }, {p0, p, q, pf }, p0, X0 , f ′), donde f ′ :
f′ = f∪
f ′ (p0 , X0 , λ) = {(p, Z0 X0 )}
f ′ (p, X0 , λ) = {(pf , λ)} (no necesario)
f ′ (q, X0 , λ) = {(pf , λ)}
Página 4 de 6
Examen Teorı́a de Autómatas y Lenguajes Formales - FINAL (cont.)
(c) (0,2 puntos) Señalar mediante el uso de descripciones instantáneas la secuencia
de movimientos que realiza el autómatas de la parte a) al leer las palabras
“0111p”, “0110”, “011” y “0111”.
Solución:
(p, 0111p, Z0) ⊢ (p, 111p, Z0) ⊢ (p, 11p, 1Z0) ⊢ (p, 1p, Z0) ⊢ (p, p, 1Z0) ⊢
(q, λ, Z0 ) ⊢ (q, λ, λ) (El autómata acepta la palabra)
(p, 0110, Z0) ⊢ (p, 110, Z0) ⊢ (p, 10, 1Z0) ⊢ (p, 0, Z0) ⊢ (q, λ, λ) (El
autómata acepta la palabra)
(p, 011, Z0) ⊢ (p, 11, Z0) ⊢ (p, 1, 1Z0) ⊢ (p, λ, Z0) (El autómata se para
sin reconocer)
(p, 0111, Z0) ⊢ (p, 111, Z0) ⊢ (p, 11, 1Z0) ⊢ (p, 1, Z0 ) ⊢ (p, λ, 1Z0 ) (El
autómata se para sin reconocer)
5. (2 puntos) Diseña una máquina de Turing que calcule la función “división entera de
dos números naturales”, que se define de la siguiente manera:
f :N×N→ N
f (x, y) = x div y
∀x, y ∈ N e y > 0
Explica su funcionamiento y el algoritmo que has utilizado para resolver la
función.
Se deberán tener en cuenta los siguientes aspectos:
La codificación a utilizar, para todos los números, será una codificación natural (es decir, cada número estará representado por tantos unos como su valor
natural). Ası́, la codificación del número 3 será: 111, la del 4: 1111, etcétera.
En la cinta tendremos como entrada el dividendo x, un asterisco y el divisor y.
Tanto el dividendo como el divisor serán siempre mayores o iguales a 1. En caso
de que el resultado de la división sea cero la cadena debe quedar vacı́a.
Al finalizar el cómputo en la cinta sólo quedará la solución y, además, el cabezal
de la máquina de Turing deberá apuntar al primer carácter de la misma.
Considérense los siguientes ejemplos:
•q0 111111 ∗ 11• ⊢∗ •qf 111•
•q0 11111 ∗ 11• ⊢∗ •qf 11•
•q0 11 ∗ 111• ⊢∗ •qf • ••
Solución:
Página 5 de 6
Examen Teorı́a de Autómatas y Lenguajes Formales - FINAL (cont.)
M = ({1, ∗, x, •}, {1, ∗}, •, {q0, q1 . . . q9 }, q0 , f, {q9 })
Donde la función de transición f , se define de la siguiente manera:
(1, 1, R)
(∗, ∗, R)
q0
(•, •, L)
(1, 1, L)
(∗, ∗, L)
q1
(1, x, L)
q2
(x, •, R)
(1, •, R)
(•, •, R)
q3
(∗, •, R)
q4
(x, x, L)
(∗, ∗, R)
(1, •, R)
(•, •, R)
(•, •, L)
q6
(x, 1, R)
(•, •, R)
q8
(•, 1, L)
q7
(1, 1, R)
(1, 1, L)
Página 6 de 6
q5
(1, 1, R)
(∗, ∗, R)
q9
Descargar