Anda di halaman 1dari 9

Ejercicios de Aut omatas, Lenguajes Formales y Gram aticas II

David Castro Esteban

1.

M aquinas de Turing

Problema 1 Demostrar que todo lenguaje L nito es recursivo, recursivamente enumerable y enumerable. Problema 2 Demostrar las siguientes armaciones: 1. Todo aut omata nito (determinista, no determinista o no determinista con transiciones vac as) puede simularse mediante una m aquina de Turing. 2. Todo aut omata a pila puede simularse mediante una m aquina de Turing con una u nica cinta. 3. Toda m aquina de Turing puede simularse mediante un aut omata con, u nicamente, dos pilas. Ejercicio 3 Describir m aquinas de Turing que lleven a cabo las siguientes tareas: Dados dos n umeros naturales m, n N, calcula su suma m + n. Dados dos n umeros enteros m, n N, decide si m n. Dados dos n umeros naturales m, n N, calcula su resta m n siempre y cuando m n. En caso contrario, i.e. m < n, la m aquina rechaza la entrada. Dados dos n umeros naturales m, n N, calcula su producto m n. Dados dos n umeros naturales m, n N, calcula el cociente y el resto de dividir m por n siempre y cuando m = 0. En caso contrario, i.e. si m = 0, la m aquina rechaza la entrada. En cualquiera de los casos anteriores se supondr a que los numeros vienen dados mediante su codicaci on binaria y est an escritos de izquierda a derecha, i.e. las unidades en primer lugar, luego las decenas,... y as sucesivamente. Ejercicio 4 Analizar, tanto en tiempo como en espacio, la complejidad de las m aquinas desarrolladas en el ejercicio anterior. Problema 5 Demostrar las siguientes armaciones: 1. Dado un natural k N no nulo, el conjunto Nk es enumerable.

2. El lenguaje nN Nn es enumerable 3. Dado un natural k N no nulo y un alfabeto nito , el conjunto ( )k es enumerable. Problema 6 Demostrar que el lenguaje de los subconjuntos nitos de cadenas sobre un alfabeto nito es enumerable. Problema 7 Demostrar que para todo lenguaje enumerable innito existe una m aquina de Turing M tal que calcula una biyecci on : N L, i.e. tomando como entrada un n umero natural produce como salida una cadena de L de manera biyectiva. Problema 8 Sea L un lenguaje. Demostrar la equivalencia de las siguientes armaciones: L es recursivamente enumerable, L es enumerable, y L es computable, donde L es la funci on caracter stica de L.

2.

Gram aticas generales y sensibles al contexto

Problema 9 Sean G1 = (N, T, P1 , S ) y G2 = (N, T, P2 , S ) gram aticas generales. Demostrar las siguientes armaciones: Concatenaci on: Existe una gram atica general G tal que L(G) = L(G1 )L(G2 ), i.e. tal que el lenguaje que genera se obtiene mediante concatenaci on de cadenas de L(G1 ) con cadenas de L(G2 ). Intersecci on: Existe una gram atica general G tal que el lenguaje que genera es L(G1 ) L(G2 ). Uni on: Existe una gram atica general G tal que el lenguaje que genera es L(G1 ) L(G2 ). Problema 10 (Formal normal de Kuroda) Una gram atica general G = (N, T, P, S ) se dice en forma normal de Kuroda si toda producci on p P es de alguno de los siguientes tipos AB DC , donde A, B, C, D N , A BC , donde A, B, C N , A a, donde A N y a T , y por u ltimo A , donde A N y denota la palabra vac a. Demostrar que para toda gram atica general G existe una gram atica G en forma normal de Kuroda tal que L(G) = L(G ). Problema 11 (Formal normal de Pentonnen) Una gram atica general G = (N, T, P, S ) se dice en forma normal de Pentonnen si toda producci on p P es de alguno de los siguientes tipos AB AC , donde A, B, C N , A BC , donde A, B, C N , A a, donde A N y a T , y por u ltimo A , donde A N y denota la palabra vac a. Demostrar que para toda gram atica general G existe una gram atica G en forma normal de Pentonnen tal que L(G) = L(G ). Cuesti on 1 Sea G = (N, T, P, S ) una gram atica general dada por su forma normal de Pentonnen y sea w L(G). Cu al es el n umero m nimo de derivaciones directas necesarias para derivar w de S .? 4

3.

Computabilidad
w R = wn . . . w1 .

Ejercicio 12 Dada una cadena w = w1 . . . wn , se dene w R como

Dado un lenguaje L , se dene LR como LR := {w : v tal que v R = w }. Demostrar que dado un lenguaje recursivamente enumerable L , LR es recursivamente enumerable. Ejercicio 13 Sean y dos alfabetos nitos, y sea h : un homomorsmo. Dada una cadena cualquiera w = w1 . . . wn , se dene h(w ) mediante la expresi on: h(w ) := h(w1 ) . . . h(wn ). Obviamente, dado un lenguaje L , se dene h(L) como h(L) := {w : v tal que h(v ) = w }. Demostrar que, siendo L un lenguaje recursivamente enumerable, h(L) es recursivamente enumerable. Rec procamente, dado un lenguaje recursivamente enumerableL , demostrar que h1 (L ) es recursivamente enumerable. Ejercicio 14 Sean L1 , . . .n una familia nita de lenguajes recursivamente enumerables satisfaciendo: dados i = j , con 1 i, j n, se tiene Li Lj = , y
n i=1 Li = .

Demostrar que todo Li , para 1 i n, es recursivo. Ejercicio 15 Demostrar que la uni on enumerable de lenguajes recursivamente enumerables es recursivamente enumerable. Demostrar que esto no ocurre si la uni on no es enumerable. Ejercicio 16 Construir un ejemplo que muestre que la intersecci on innita de lenguajes recursivamente enumerables no tiene por que ser recursivamente enumerable.

Ejercicio 17 Demostrar que las siguientes propiedades de lenguajes recursivamente enumerables son recursivamente enumerables: L = . Fijada una cadena w , w L. Fijado un natural k N, L contiene al menos k cadenas. L Lu = . Ejercicio 18 Demostrar que las siguientes propiedades de lenguajes recursivamente enumerables no son recursivamente enumerables: L = . Existe un w tal que L = {w }. Fijado un natural k N, L contiene exactamente k cadenas. L \ Lu = . Ejercicio 19 Sea L el lenguaje formado por cadenas de la forma (M, M , k ), donde M y M son c odigos de maquinas de Turing y k es un entero, tales que L(M ) L(M ) tiene al menos k cadenas. Demostrar que L es recursivamente enumerables pero no es recursivo. Ejercicio 20 Demostrar que son decidibles los siguientes conjuntos: El conjunto de las descripciones de m aquinas de Turing que, tomando como entrada la cadena vac a, escriben un s mbolo no blanco en alg un momento. El conjunto de c odigos de una m aquina de Turing que nunca desplazan su unidad de control a la izquierda. El conjunto de pares (M, w ) tales que la m aquina de Turing, al tomar como entrada w , nunca lee una casilla de la cinta m as de una vez. Ejercicio 21 Demostrar que no son recursivamente enumerables los siguientes conjuntos: (M, w ) tales que M (w ) =, (M1 , M2 ) tales que L1 L2 = , y 6

(M1 , M2 , M3 ) tales que L1 = L2 L3 . Ejercicio 22 Indicar si son recursivos, recursivamente enumerables o no recursivamente enumerables los siguientes conjuntos: {M : M para en cualquier entrada}, y {M : M no para en ninguna entrada}.

4.

Funciones recursivas

Ejercicio 23 Sea f : Nn+1 N una funci onn recursiva. Demostrar que las siguientes funciones son recursivas: 1.
y z

f (x, y ), f (x, y ),
y<z

2. 3.
y z

f (x, y ), y f (x, y ),
y<z

4.

Deducir que si f es recursiva parcial entonces, las funciones anteriores son recursivas parciales. Ejercicio 24 Sean P1 , . . . , pn predicados recursivos. Demostrar que los siguientes predicados son recursivos: P1 . . . Pn , P1 . . . Pn ,, y Pi para 1 i n. Ejercicio 25 Dada P un predicado recursivo, demostrar que son recursivos: (y z )P (x, z )), y yz P (x, y ) = y P (X, y ) si (y z )P (x, y ) . 0 en caso contrario

Ejercicio 26 (Funci on de Ackermman) Demostrar que la funci on A : 2 N N denida por las ecuaciones A(0, y ) = y + 1, A(x + 1, 0) = A(x, 1), y A(x + 1, y + 1) = A(x, A(x + 1, y )), es computable (recursiva) y total pero no recursiva primitiva. 8

m Ejercicio 27 (Sn Teorema) Sea g : D Nn+m N una funci on parm cial recursiva. Demostrar que existe una funci on total Sn (x1 , . . . , xn ) tal que m (x ,...,x ) (y1 , . . . , ym ) = g (x1 , . . . , xn , y1 , . . . , ym ). fSn n 1

Ejercicio 28 (Teorema del punto jo) Sea : N N una funci on total recursiva y sea f : N N una funci on que a cada entero le hace corresponder una codicaci on mediante un entero de la i esima m aquina de Turing. Demostrar que existe un i0 tal que f (i0 )(x) = f(i0 ) (x).