2do.Parcial

Transcripción

2do.Parcial
Teorı́a de Autómatas y Lenguajes Formales
Ing. Informática e Ing. Informática + LADE
Segundo Parcial
Mayo 2013
Apellidos y Nombre:
Normas :
La duración de esta parte del examen es de 1 hora y 30 minutos. No se permite
el uso de libros, apuntes ni teléfonos móviles. Las respuestas se redactarán en el
espacio reservado a tal fin en esta misma hoja.
1. (3 puntos) Resuelva las siguientes cuestiones:
(a) (1 puntos) Obtenga una gramática en Forma Normal de Chomsky a partir de
la gramática bien formada G2 = ({S, A}, {0, 1}, S, P2 ), con P2 :
P2 ={ S
A
::=
::=
A0A1 | AAA | AA | A0 | 0 | λ
A0 | 0 }
Solución:
Una gramática en Forma Normal de Chomsky equivalente a
finida por las siguientes producciones:
S ::= AD3 | AD1 | AA | AC0 | 0 | λ
D3 ::=
A ::= AC0 | 0
C0 ::=
D1 ::= AA
C1 ::=
D2 ::= AC1
G2 vendrı́a deC 0 D2
0
1
(b) (2 puntos) Dada la gramática G1 = ({S, P, Q, R, T }, {a, b, c}, S, P1 ), con P1 :
P1 ={S
P
Q
::=
::=
::=
bSP | cT | Q
bP Q | P | λ
QP a | P
R
T
::=
::=
cR | T b
Ra | T c
}
Obtenga una gramática bien formada equivalente. Describa brevemente cada uno
de los pasos que siga para solucionar el problema.
Solución:
La gramática G1 del problema no se encuentra bien formada. Una gramática
bien formada equivalente es la siguiente:
S ::= bSP | bS | bP | b | QP a | Qa | P a | a | bP Q | bQ | bP | λ
P ::= bP Q | bQ | bP | b
Q ::= QP a | Qa | P a | a | bP Q | bQ | bP | b
2. (3 puntos) Diseñe un autómata a pila, con un máximo de 6 estados, que reconozca el lenguaje L = {(01)n 1m 0p | m, n ≥ 1, p ≥ n + m}. Explique brevemente su
funcionamiento.
Página 1 de 3
Examen Segundo Parcial – Mayo 2013 (cont.)
Solución:
AP = ({0, 1}, {S, A}, {q0 , q1 , q2 , q3 }, S, q0 , f, ∅)
Donde la función de transición f , se define de la siguiente manera:
(1, A, AA)
q2
(1, A, AA)
S
(λ, S, λ)
(0, S, S)
(0, A, λ)
(0, A, λ)
q3
(0, A, A)
(0, S, S)
q0
q1
(1, S, AS)
(1, A, AA)
3. (4 puntos) Diseñe una máquina de Turing que reconozca el siguiente lenguaje:
L = {x ∗ y | x, y ∈ {a, b}∗ , numab (x) = numba (y)}.
Esto es, el número de subcadenas “ab” en x debe ser igual al número de subcadenas
“ba” en y. Ası́, algunas palabras válidas podrı́an ser:
•bbbaabbabba*aaaaabaaabaaab•
•*•
•bbbbaaa*aaaaaabb•
•ababa*babbaa•
Como restricción, la máquina de Turing no podrá contener más de 15 estados.
Explique brevemente el algoritmo implementado y el funcionamiento de la máquina.
Solución:
La máquina de Turing que reconoce el lenguaje es la siguiente:
Página 2 de 3
Examen Segundo Parcial – Mayo 2013 (cont.)
M = ({a, b, ∗, •}, {a, b, ∗}, •, {q0 , q1 . . . q8 }, q0 , f, {q8 })
Donde la función de transición f , se define de la siguiente manera:
(b, b, R)
(a, a, R)
(a, •, R)
(b, •, R)
q1
q2
(∗, ∗, R)
(a, •, R)
(a, a, R)
(B, B, R)
(A, A, R)
(∗, •, R)
(b, •, R)
q0
(∗, •, R)
q6
(b, b, R)
q7
q3
(b, b, R)
(•, •, R)
q8
(B, B, R)
(A, A, R)
(a, A, R)
(•, •, R)
(•, •, R)
(b, B, R)
q5
(a, A, L)
(a, a, L) (b, b, L)
(A, A, L) (B, B, L)
(∗, ∗, L)
q4
(b, B, R)
La máquina de Turing va tratando elementos de la cadena x. Como no necesitamos recordarlos, los eliminamos según los leemos. Cuando nos encontramos
una secuencia “ab” recorremos toda la cadena hasta encontrar el separador “*”
(estados q0 , q1 , q2 , q3 ). Ahora se recorre la cadena y teniendo en cuenta que buscamos una secuencia “ba”. Los elementos que vamos leyendo los marcamos para no
dejar blancos entre la palabra. Cuando hemos encontrado una sencuencia “ba”,
volvemos hacia atrás, hasta el principio de x (estados q4 , q5 , q0 ). Las condiciones
de parada se darán cuando haya finalizado de leer x completamente sin haber
encontrado una cadena “ab” (estados q0 y q1 ). En ese momento, debo comprobar
que todos los caracteres de y o están marcados o no contienen una subcadena
“ba” (estados q6 , q7 ). Si no existen tal subcadena “ba” en y, hemos finalizado
(q8 ).
Página 3 de 3

Documentos relacionados