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
2ndo. Parcial
Junio 2007
Normas :
La duración de esta parte del examen es de 2 horas y 15 minutos.
Todos los ejercicios se entregarán en hojas separadas.
El examen tipo test cuenta hasta 2 puntos sobre la nota total.
1. (a) (0,75 puntos) Construye una gramática en Forma Normal de Chomsky equivalente a la siguiente gramática:
G := ({S, A, B}, {a, b}, S, {S ::= AB ; A ::= Aaaa | a ; B ::= b | Ab}) .
(b) (0,75 puntos) Aplica el algoritmo visto en clase para decidir si la palabra aaaaab
pertenece al lenguaje generado por la gramática anterior.
2. (2,25 puntos) Dados dos números naturales a, b ∈ N, se define la operación módulo
como el resto de la división entera de a entre b; se denota como a mod b, y cumple
que 0 ≤ (a mod b) < b. Demuestra que el siguiente lenguaje no es independiente de
contexto:
L := {ap bq cr | p, q ∈ N , r = (p mod q)}.
3. (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.
(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.
(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”.
Página 1 de 2
Examen Teorı́a de Autómatas y Lenguajes Formales - 2ndo. Parcial (cont.)
4. (2,25 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 • ••
Página 2 de 2
Descargar