Está en la página 1de 4

TEORíA DE AUTÓMATAS

Y LENGUAJES FORMALES
Convocatoria de enero 09/01/2018
Modelo A 1 h 15'

Nombre: Apellidos:
DNI: Titulación:

Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 Ejercicio 5 Total

1. [3,5 puntos] Diseñe un Autómata a Pila, reconocedor por vaciado o


por estado final, que reconozca el siguiente lenguaje:

L = {w ∊ {a, b, c}* | na(w) < nb(w)}

Compruebe que las siguientes palabras pertenecen al lenguaje:


aaccabbbbccbc, cbbccbbcaacc, accbbbcaaccbc, bbbb, ccccbcc.
Solución:

S ( λ, B, λ)
p q

(a, S, AS) ( λ, B, λ)
(a, B, λ ) ( λ, S, λ)
(a, A, AA)
(b, S, BS)
(b, B, BB)
(b, A, λ )
(c, S, S)
(c, A, A)
(c, B, B )
2. [1 punto] Dada la siguiente gramática independiente del contexto
G = {{a,b,c}, {S, A, B, C}, S, P}, donde P:
S ::= A | aA | bB
A ::= λ | bC | ABC
B ::= bB | aC
C ::= c | cC | C
Construya una gramática equivalente bien formada, siguiendo el
algoritmo estudiado en el tema 6. Para que la respuesta sea valorada es
necesario identificar todos los pasos del algoritmo indicando qué reglas
se eliminan y cuáles se añaden.
Solución:
Paso 0. Eliminar símbolos inútiles
- no generativos: no hay S ::= A | aA | bB

- no accesibles: no hay A ::= λ | bC | ABC

Paso 1. Eliminar reglas innecesarias B ::= bB | aC

Eliminamos C ::= C C ::= c | cC

Paso 2. Eliminar reglas no generativas


S ::= A | aA | bB | λ | a
Eliminamos Añadimos
A ::= bC | ABC | BC
A :: = λ S :: = λ | a; A::= BC
B ::= bB | aC
Tratamos
C ::= c | cC
S ::= λ nada
Paso 3. Eliminar reglas unitarias S ::= aA | bB | λ | a | bC
Eliminamos Añadimos | ABC | BC
S ::= A S ::= bC | ABC | BC A ::= bC | ABC | BC
Paso 4. Eliminar símbolos inútiles B ::= bB | aC
- no generativos: no hay C ::= c | cC
- no accesibles: no hay
Gramática equivalente bien formada:
G = {{a,b,c}, {S, A, B, C}, S, P}, donde P:
S ::= aA | bB | λ | a | bC | ABC | BC
A ::= bC | ABC | BC
B ::= bB | aC
C ::= c | cC
3. [1 punto] Dada la siguiente gramática independiente del contexto en
Forma Normal de Chomsky G = {{a,b,c}, {S, A, B, C, D, E, F, G}, S,
P}, donde P:
S ::= λ | EA | ED D ::= AB
A ::= a | EG | FC E ::= c
B ::= b | FB F ::= b
C::= a | FC G ::= AC
Determine, utilizando el algoritmo CYK, si la palabra ccabba pertenece
al lenguaje generado por dicha gramática.
Solución:

c c a b b a

E E A, C B, F B, F A, C

∅ S D B A, C

∅ S D A, C

∅ S G

∅ A

S ccabba ∊ L(G)

4. [1 punto] Aplicando el algoritmo estudiado en el tema 5 obtenga el


Autómata a Pila reconocedor por vaciado equivalente a la gramática
independiente del contexto G = {{a,b}, {S, A, B}, S, P}, donde P:
S ::= aA | bB | a | b
A ::= a | AB
B ::= b | BA
Solución:

( λ, S, aA)

S (λ, S, bB) (λ, B, b)


p (λ, S, a) (λ, B, BA)
(λ, S, b) (a, a, λ)
(λ, A, a) (b, b, λ)
(λ, A, AB)
5. [3,5 puntos] Diseñe una máquina de Turing DETERMINISTA, y
explique su funcionamiento, que calcule la siguiente función:
si x mod 4 = 0, x
f(x,y) = si x mod 4 = 1, y
si x mod 4 = 2, x + y
si x mod 4 = 3, 0
Los parámetros x e y estarán codificados en unario y separados
por un *. La salida debe estar codificada en unario.
Ejemplos de funcionamiento:
∙q0111111*111∙ ⊢* ∙qf111∙
∙q011111*111∙ ⊢* ∙qf11111∙
∙q01111111*111∙ ⊢* ∙qf111111111∙
∙q011111111*111∙ ⊢* ∙qf1∙

q0 a q3: se encargan de decidir el valor de x mod 4.


q13 a q7: calcula x+y.
q4 a q7: elimina todos los 1's de x e y, el * y devuelve 0 en unario.
q8 a q7: elimina los 1's de x y el *, para devolver y.
q10 a q7: elimina los 1's de y y el *, para devolver x.

También podría gustarte