Sei sulla pagina 1di 52

Captulo 5

Propiedades de los Lenguajes de Contexto Libre


Indice General
5.1. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 75 79 83

5.1.

Lema de Bombeo.

Al igual que al estudiar los lenguajes regulares, resulta interesante disponer de ciertas herramientas que permitan determinar cuando un lenguaje es de contexto libre, o bien qu conjunto de operaciones pueden ser aplicadas a un lenguaje de contexto libre para obe tener como resultado otro lenguaje de contexto libre. Una de las herramientas m s poderosas para determinar que un lenguaje no es de cona texto libre consiste en vericar que no cumple con las propiedades establecidas por el lema de bombeo para LCL.

Lema 5.1 (Lema de Bombeo) Para todo LCL L, existe una constante n, dependiente unicamente de L, tal que si z es una cadena de L, | z | n, entonces la cadena z se puede descomponer como z = uvwxy tal que: 1. | vx | 1, 2. | vwx | n, 3. Para todo i 0, las cadenas uv i wxi y son todas cadenas de L. 75

76

Captulo 5. Propiedades de los Lenguajes de Contexto Libre

El lema de bombeo resulta de utilidad para demostrar que un lenguaje no es de contexto libre, si no lo cumple. Ejemplo 1: Demostrar que el lenguaje {an bn cn | n 0} no es un lenguaje de contexto libre. Para poder comprobar si se cumplen las condiciones impuestas por el lema de bombeo, se debe localizar una cadena del lenguaje cuya longitud sea mayor que la constante del lema para este lenguaje. Sea k esa constante. La cadena z = ak bk ck , pertenece al lenguaje y su longitud es mayor que k, | z |= 3k; por lo tanto, z se puede escribir como uvwxy, pero cu les son los smbolos de z que forman parte de la cadena v y de la cadena a x?. Se deben analizar todos los casos posibles: si al menos uno de estos casos satisciera las tres condiciones del lema, no se podra demostrar que no se cumple el lema para esta cadena. 1. Si v y x est n compuestas s lo de smbolos as, entonces las cadenas a o uv i wxi y, con i 2 no pertenecen al lenguaje (contienen m s as que a bs y cs). aa . . . aab . . . bbcc . . . cc
uvwx y (k) (k) (k)

2. Si v y x est n compuestas s lo de smbolos bs, entonces las cadenas a o i wxi y, con i 2 no pertenecen al lenguaje (contienen m s bs que uv a as y cs).
(k) u (k) vwx (k) y

aa . . . aabb . . . bbcc . . . cc 3. Si v y x est n compuestas s lo de smbolos cs, entonces las cadenas a o uv i wxi y, con i 2 no pertenecen al lenguaje (contienen m s cs que a as y bs). aa . . . aabb . . . bccc . . . c
u vwxy (k) (k) (k)

4. Si v est compuesta por as y x por bs, entonces las cadenas uv i wxi y, a con i 2 no pertenecen al lenguaje (contienen m s as y bs que cs). a
(k) uv (k) wx (k) y

aa . . . aabb . . . bbcc . . . cc

5.1. Lema de Bombeo.

77

5. Si v est compuesta por bs y x por cs, entonces las cadenas uv i wxi y, a con i 2 no pertenecen al lenguaje (contienen m s bs y cs que as). a
(k) u (k) v (k) wxy

aa . . . aabb . . . bbcc . . . cc 6. No puede darse el caso que v sean smbolos as y x sean cs, pues entonces | vwx |> k (en w hay como mnimo k smbolos bs).
(k) uv (k) w (k) xy

aa . . . aabb . . . bbcc . . . cc 7. No pueden mezclarse smbolos en v ni en x pues si se hiciese entonces las cadenas uv i wxi y, con i 2 no perteneceran al lenguaje (habra smbolos descolocados con respecto al formato de las cadenas del len guaje) Como no hay m s opciones posibles para la asignaci n de smbolos a las caa o denas v y x y ninguna de ellas es v lida, entonces este lenguaje no cumple el a lema de bombeo y, por lo tanto, el lenguaje {an bn cn | n 0} no es un lenguaje de contexto libre. Ejemplo 2: Demostrar que el lenguaje {a2n b2m c2n | m > (100 + n) n 0} no es un lenguaje de contexto libre. Sea k la constante del lema de bombeo para este lenguaje . La cadena z = a2k b2(101+k) c2k , pertenece al lenguaje y su longitud es mayor que k; por lo tanto, z se puede escribir como uvwxy, y se considera, a continuaci n, cao da uno de los posibles casos para ver qu smbolos de z forman parte de la e subcadenas v y x. Como en el ejemplo anterior, si al menos uno de estos casos satisciera las tres condiciones del lema, no se podra demostrar que no se cumple el lema para esta cadena. 1. Si v y x est n compuestas s lo de smbolos as, entonces las cadenas a o uv i wxi y, con i 2 no pertenecen al lenguaje (contienen m s as que a cs). aa . . . aabbbb . . . bbcc . . . cc
uvwx y (2k) (2(101+k)) (2k)

78

Captulo 5. Propiedades de los Lenguajes de Contexto Libre

2. Si v y x est n compuestas s lo de smbolos cs, entonces las cadenas a o i wxi y, con i 2 no pertenecen al lenguaje (contienen m s cs que uv a as). aa . . . aabbbbb . . . bccc . . . c
u vwxy (2k) (2(101+k)) (2k)

3. El caso en que v y x est n compuestas s lo de smbolos bs, es distinto; a o i wxi y pertenecen al lenguaje (est aupuede parecer que las cadenas uv a mentando el n mero de bs), pero eso s lo ocurre si i 2. En el caso u o i = 0 la cadena uv i wxi y (= uwy) no pertenece al lenguaje (deja de cumplirse la restricci n en el n mero de bs) y con que haya un unico o u valor de i para el que no se satisfagan las tres condiciones del lema al mismo tiempo, es suciente.
(2k) u (2(101+k)) vwx (2k) y

aa . . . aabbbbb . . . bbbcc . . . cc 4. Si v est compuesta por smbolos as (al menos uno) y x por bs, entonces a las cadenas uv i wxi y, con i 2 no pertenecen al lenguaje (contienen m s a as que cs). En el caso de que v fuera la cadena vaca, se aplica el mismo razonamiento que en el caso (3): al bombear con i = 0, se pierden bs.
(2k) uv (2(101+k)) wx (2k) y

aa . . . aabbbbb . . . bbbcc . . . cc 5. Algo similar ocurre si v est compuesta por bs y x por smbolos cs (al a menos uno), entonces las cadenas uv i wxi y, con i 2 no pertenecen al lenguaje (contienen m s cs que as). Y si x fuera la cadena vaca, al a aplicar el razonamiento del caso (3) se llega tambi n a que no es posible e bombear con cualquier valor de i y mantenerse en el lenguaje: falla el valor i = 0.
(2k) u (2(101+k)) v (2k) wxy

aa . . . aabbbbb . . . bbbcc . . . cc 6. No puede darse el caso que v sean smbolos as y x sean cs, pues entonces | vwx |> k (en w hay como mnimo 202 + 2k smbolos bs).
(2k) uv (2(101+k)) w (2k) xy

aa . . . aabbbbb . . . bbbcc . . . cc 7. No pueden mezclarse smbolos en v ni en x pues si se hiciese entonces las cadenas uv i wxi y, con i 2 no perteneceran al lenguaje (habra smbolos descolocados con respecto al formato de las cadenas del len guaje) Como no hay m s opciones posibles y ninguna de las estudiadas es v lida, se a a concluye que el lenguaje no es de contexto libre.

5.2. Propiedades de Clausura.

79

5.2.

Propiedades de Clausura.

Las propiedades de clausura para LCL, son aquellas operaciones que, aplicadas sobre LCL, dan como resultado otro LCL. Tal y como ocurra al estudiar los lenguajes regulares, dichas propiedades pueden ayudar a determinar si un lenguaje es, o no es, de contexto libre. Teorema 5.1 Los LCL son cerrados bajo las operaciones de uni n, concatenaci n, o o clausura e inversi n. o

Teorema 5.2 Los LCL son cerrados bajo la operaci n de sustituci n. o o

Ejemplo: Sea = {a, b} y = {0, 1, 2}, tal que f (a) = La = {0n 1n | n 1}, y f (b) = Lb = {xx1 | x (0 + 2) }. Sea L = {x (a + b) | S(x, a) = S(x, b)}. Calcular una GCL que genere f(L). Sea Ga la GCL denida por las siguientes producciones: Sa 0Sa 1 | 01 Sea Gb la GCL denida por las siguientes producciones: Sb 0Sb 0 | 2Sb 2 | Sea G la GCL denida por las siguientes producciones: S aSbS | bSaS | SS | Entonces G = A , T , P , S , donde A = {S, Sa , Sb } T = {0, 1, 2} P = {S Sa SSb S | Sb SSa S | SS | ; Sa 0Sa 1 | 01; Sb 0Sb 0 | 2Sb 2 | } Con esta denici n, sea y=abab (por lo tanto, f(y)=f(a)f(b)f(a)f(b)) y sea x o f (y), tal que x=001102200122 con 0011 f (a), 0220 f (b), 01 f (a) y 22 f (b). La cadena x se puede generar en G mediante la secuencia S Sa SSb S Sa Sb S Sa Sb Sa SSb S Sa Sb Sa Sb S Sa Sb Sa Sb = 001102200122

80

Captulo 5. Propiedades de los Lenguajes de Contexto Libre

Corolario 5.1 Los LCL son cerrados bajo la operaci n de homomorsmo (caso paro ticular de la sustituci n). o

Teorema 5.3 Los LCL son cerrados bajo la operaci n de homomorsmo inverso. o

Teorema 5.4 Los LCL no son cerrados bajo la operaci n de intersecci n. o o Demostraci n: o Es suciente con encontrar un contraejemplo. Sea L1 = {an bn cm | n 1, m 1}, el LCL generado por el siguiente conjunto de producciones de contexto libre P1 = {S AB; A aAb | ab; B cB | c}. Sea L2 = {an bm cm | n 1, m 1}, el LCL generado por el siguiente conjunto de producciones de contexto libre P2 = {S CD; C aC | a; D bDc | bc}. El resultado de la intersecci n es el lenguaje L1 L2 = {an bn cn | n 1}, que por el o lema de bombeo se conoce que no es un LCL. c.q.d.

Corolario 5.2 Los LCL no son cerrados bajo la operaci n de complementaci n. o o Demostraci n: o Sean L1 y L2 LCL; entonces, si la complementaci n fuese una operaci n de clausura, o o tambi n seran LCL los lenguajes L1 y L2 . e Por lo tanto, como la uni n de LCL es una operaci n de clausura, tambi n L1 L2 es o o e un LCL y, por lo tanto, tambi n lo sera el lenguaje L1 L2 = L1 L2 , lo que se sabe que e es falso. c.q.d.

5.2. Propiedades de Clausura.

81

Teorema 5.5 Los LCL son cerrados bajo la operaci n de intersecci n con lenguajes o o regulares. Este teorema resulta de gran utilidad para determinar que un lenguaje no es de contexto libre. Ejemplo 1: Se considera el lenguaje L = {x (a+b+c) | S(x, a) = S(x, b) = S(x, c)} y se quiere estudiar si es o no es un LCL. Aplicar el lema de bombeo presenta el inconveniente de que, al no saber cu l a es la estructura -el patr n- del lenguaje (d nde est n as, bs y cs? smbolos o o a iguales agrupados, o intercalados, o...?), no se puede estudiar qu smbolos e formar n parte de cada una de las subcadenas que se pueden bombear ni se a puede asegurar, por lo tanto, si es posible o no realizar dicho bombeo. La intersecci n con la expresi n regular a b c puede ayudar. El lenguaje L o o b c tiene que ser un lenguaje en el que S(x, a) = S(x, b) = S(x, c) y, a adem s, primero presente todas las as, despu s todas las bs y, por ultimo, a e todas las cs. Es decir, L a b c = {an bn cn | n 0} Se sabe que dicho lenguaje no es de contexto libre (ejemplo 1 del lema de bombeo); por lo tanto, L tampoco puede serlo. Ejemplo 2: Determinar si el lenguaje L = {xx | x (a + b) } es un lenguaje de contexto libre. De nuevo, el lenguaje no permite establecer claramente cu l es el patr n a o de smbolos; por ello, se aplica la propiedad 5.5. El lenguaje a+ b+ a+ b+ es un lenguaje regular. Si L fuese un lenguaje de contexto libre, tambi n lo sera el lenguaje L a+ b+ a+ b+ . Pero este lenguaje e es, L a+ b+ a+ b+ = {an bm an bm | n, m 1} que se demuestra que no es de contexto libre al no cumplir el lema de bombeo para lenguajes de contexto libre. Sea k la constante del lema para L. Entonces z = ak bk ak bk pertenece a L y su longitud es mayor que k; por lo tanto, z se puede escribir como uvwxy, pero cu les son los smbolos de z que componen la subcadena v y cu les los que a a componen la subcadena x?. Se analizan todos los casos posibles: 1. Si v y x est n compuestas s lo de smbolos as del principio de z, entonces a o i wxi y, i 2 no pertenecen al lenguaje (contienen m s las cadenas uv a as en el primer bloque que en el segundo).

82

Captulo 5. Propiedades de los Lenguajes de Contexto Libre

aa . . . aab . . . bbb . . . baaab . . . bb


uvwx y

(k)

(k)

(k)

(k)

Algo similar sucedera si se escogieran as del segundo bloque. 2. Si v y x est n compuestas s lo de smbolos bs del principio de z, entonces a o las cadenas uv i wxi y, i 2 no pertenecen al lenguaje (contienen m s a bs en el primer bloque que en el segundo).
(k) u (k) vwx (k) y (k)

aa . . . aabb . . . bbaa . . . abb . . . bb Algo similar sucedera si se escogieran bs del segundo bloque. 3. Si v est compuesta por as y x por bs, ambas en la primera mitad de z, a entonces las cadenas uv i wxi y, i 2 no pertenecen al lenguaje (contienen m s as y bs en la primera mitad que en la segunda). a aa . . . a abb . . . bb aa . . . abb . . . bb
u v w x y (k) (k) (k) (k)

Algo similar sucedera si se escogieran as y bs de la segunda mitad; o bs de la primera mitad y as de la segunda mitad. 4. No puede darse el caso que v est formada por as de la primera mitad e y x por as de la segunda mitad, pues entonces | vwx |> k, ya que en w hay, como mnimo, k smbolos bs. aa . . . aabb . . . bbaa . . . aabb . . . bb
u v w x y (k) (k) (k) (k)

Algo similar sucedera si se escogieran bs de la primera mitad y de la segunda mitad. 5. No pueden mezclarse smbolos en v ni en x, pues, si se hiciese, enton ces las cadenas uv i wxi y, i 2 no perteneceran al lenguaje (habra smbolos descolocados respecto al formato de las cadenas del lenguaje) Como no hay m s opciones posibles para la asignaci n de smbolos a las caa o denas v y x, este lenguaje no cumple el lema de bombeo y, por lo tanto, el lenguaje {an bm an bm | n, m 1} no es un lenguaje de contexto libre. Tampoco lo ser el lenguaje L = {xx | x (a + b) }. a

5.3. Problemas Propuestos.

83

5.3.

Problemas Propuestos.

1. Demostrar que si L es un LCL entonces tambi n lo es L . e 2. Demostrar a qu clase de lenguajes (regular o de contexto libre) pertenecen cada uno e de los siguientes lenguajes: a) L1 = {(01) 0n (01) 1n | n 0} c) L3 = L1 L2 b) L2 = {(0 + 1) 0n (0 + 1) 1n | n 0} d) L4 = L1 L2 3. Identicar si los siguientes lenguajes son regulares, de contexto libre o no de contexto libre. Si un lenguaje es regular hay que construir el AF o la GR correspondiente; si es de contexto libre, hay que construir el AP o la GCL correspondiente: a) L1 = {0p 1q | pMOD4 = q}, 4. b) L2 = {0p 1q 0p | pMOD4 = q}. b) Demostrar que el complementario de L no es un LCL. a) Escribir una GCL que genere el lenguaje L = {ai bj ck | i = j j = k}

5. Determinar si los siguientes lenguajes son lenguajes regulares, lenguajes de contexto libre o no son lenguajes de contexto libre: a) L = {x (a + b + c) | S(x, c) = S(x, a) S(x, b)}. b) (
n n1 ((a b)

(ab )n )) a b .

6. Determinar si los siguientes lenguajes son o no son LCL a) L1 = {an bnn | n 0}. b) L2 = {x (a + b + c) | S(a, x) = S(b, x) = S(c, x)}. d) L4 = {an bm cnm | n m}. c) L3 = {ai | i es un n mero primo}. u

7. Identicar si cada uno de los siguientes lenguajes son o no son lenguajes de contexto libre a) {an bm cp | n = m m = 2 p}. b) (a + b + c) {an bm cn | n, m > 0}. 8. Identicar la clase m s restrictiva a la que pertenecen los siguientes lenguajes: a a) L1 = {(a + b)n (a + b)n | n 1}. c) L3 =
n n0 L

b) L2 = {xyx1 y 1 | x, y (a + b) }.

d) L = {xw | x, w (0 + 1) S(0, x) = n S(1, x) = m n}

| L = {xyy 1 x1 | x, y (a + b) }.

84

Captulo 5. Propiedades de los Lenguajes de Contexto Libre

9. Identicar la clase m s restrictiva a la que pertenecen los siguientes lenguajes: a a) L1 = {a2n b2m c2n | m 100 n 0}. b) L2 = {a2n b2m c2n | m > 100 + n n 0}. 10. Identicar a qu tipo pertenece el siguiente lenguaje: e L = {an bm cp aq bn | q = p + m n, m 1 p 0}. 11. Consid rese el lenguaje siguiente: e L = {an bn cm | m > n} . a) Es o no es un lenguaje regular? (justicar) b) Es o no es un lenguaje de contexto libre? (justicar) 12. a) Consid rese el lenguaje siguiente: L = {0i 1j | i = j i, j 0}. Es o no es e un lenguaje regular? (justicar) b) El lenguaje del apartado anterior, es o no es un lenguaje de contexto libre? (justicar)

Captulo 6

M quinas de Turing a
Indice General
6.1. Modelo de M quina de Turing. . . . . . . . . . . . . . . . . a 6.2. T cnicas para la Construcci n de M quinas de Turing. . . e o a 6.2.1. Almacenamiento en el Control Finito. . . . . . . . . . 6.2.2. Cintas con Sectores M ltiples y Marcaje de smbolos. u 6.2.3. Uso de Subrutinas. . . . . . . . . . . . . . . . . . . . 6.3. M quinas de Turing Modicadas. . . . . . . . . . . . . . . a 6.3.1. M quina de Turing Multicinta. . . . . . . . . . . . . . a 6.3.2. M quina de Turing con M ltiples Cabezales. . . . . . a u 6.3.3. M quina de Turing No Determinista. . . . . . . . . . a 6.3.4. M quinas de Turing Restringidas. . . . . . . . . . . . a 6.4. La M quina de Turing como Generador. . . . . . . . . . . a 6.4.1. Dos M quinas de Turing Generadoras B sicas. . . . . a a 6.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 . 91 . 91 . 92 . 93 . 94 . 94 . 96 . 97 . 98 . 100 . 101 . 102

6.1.

Modelo de M quina de Turing. a

La M quina de Turing es el ultimo modelo de m quina abstracta que se estudiar . Es un a a a aut mata que, a pesar de su simplicidad, es capaz de realizar cualquier c lculo que pueda o a ser realizado por un computador y no existe ning n otro modelo con mayor poder compuu tacional. Es por ello que se considera como modelo formal del concepto de Algoritmo, si bien es cierto que existen otros modelos que denen la misma clase de problemas, pudi ndose e establecer equivalencias entre todos ellos. 85

86

Captulo 6. M quinas de Turing a

Hay dos puntos de vista para estudiarla: 1. La clase de lenguajes que dene: es un reconocedor de lenguajes de tipo 0, seg n la u jerarqua de Chomsky. 2. La clase de funciones que computa: es el solucionador de problemas m s potente que a hay.

Como aut mata, la M quina de Turing responde al siguiente modelo mec nico: o a a
... B B a1 a2 a3 a4 a5 a6 B B ...

C. F.

1. Tiene una cinta innita. Sus celdas siempre est n llenas: o bien por caracteres fora mando un secuencia de entrada/salida o bien por el car cter especial blanco (B). a 2. Tiene un cabezal de lectura/escritura, que puede desplazarse tanto a la derecha como a la izquierda. 3. Su funcionamiento est basado en un paso elemental, transici n, que se compone a o siempre de tres acciones: a) Cambio de estado. b) Escritura de un smbolo en la celda de la cinta que examina, reemplazando al que hubiera antes. o c) Desplazamiento a izquierda (L) o derecha (R) una posici n. 4. En el control nito se controla el funcionamiento: cu l es el estado actual de la m quia a na y cu les son las posibles transiciones. El n mero de estados siempre es nito. a u La capacidad de escribir es su principal diferencia con otros aut matas, como el aut mao o ta nito o el aut mata de pilas, y es la que la dota de potencia para reconocer los lenguajes o de tipo 0 o para calcular funciones. Ejemplo 1: Dise ar una M quina de Turing para calcular la suma de dos n meros natun a u rales. Una forma simple de representar los n meros naturales es utilizando tantos u smbolos como indique su valor num rico. Es decir, si hay que sumar 2 y 3, e

6.1. Modelo de M quina de Turing. a

87

se podran representar, respectivamente, como 11 y 111. Para separar ambos sumandos se podra utilizar un 0. As, la cinta de entrada del aut mata podra o tener el siguiente aspecto, 0011011100000BBBBBBBBBB . . . Puesto que 11+111 = 11111, una posible forma de realizar el c lculo si el a cabezal estuviera sobre la primera celda sera: primero, localizar el primer sumando (es decir, localizar el primer 1) y, segundo, eliminar ese primer 1 del primer sumando con un 0 y avanzar hasta encontrar el 0 de la separaci n y o sustituirlo por un 1. Se obtendra como cadena de salida, 0001111100000BBBBBBBBBB . . . Para ello, el aut mata debe obedecer a la funci n de transici n: o o o q0 q1 q2 0 (q0 , 0, R) (q2 , 1, R) 1 (q1 , 0, R) (q1 , 1, R)

En esta tabla, hay tantas columnas como smbolos pueda leer el aut mata y o tantas las como estados. Para interpretarla, se asume que cada entrada es la transici n asociada al estado indicado por la la cuando se lee el smbolo o asociado a la columna. La tabla anterior es equivalente a la funci n o f(q0 , 0) = (q0 , 0, R) f(q0 , 1) = (q1 , 0, R) f(q1 , 1) = (q1 , 1, R) f(q1 , 0) = (q2 , 1, R) La primera transici n, por ejemplo, se lee: en el estado q0 , cuando se lee un o 0, se transita a q0 , se escribe 0 y se mueve el cabezal a la derecha. El estado q2 es un estado nal y no se le asocia ninguna transici n. o Ejemplo 2: Dise ar una M quina de Turing para determinar si dos n meros naturales son n a u iguales. En este caso, se puede representar el primer n mero mediante 0s y el segundo u mediante 1s. El problema se reducira a comprobar que haya tantos ceros como unos. La cinta de entrada podra tener este aspecto: 0000011111BBBBBB . . . Se asume que el cabezal est ajustado a la izquierda del primer n mero. A a u partir de esta posici n, movi ndose hacia la derecha, es f cil localizar el prio e a mer 1. Para poder comprobar que hay tantos ceros como unos, se deberan marcar de alguna forma las parejas que ya se hayan estudiado. Para ello se usar el smbolo X para marcar los ceros y el smbolo Y para marcar los unos. a As, el comportamiento del aut mata, en etapas sucesivas, debera producir el o siguiente contenido de la cinta:

88

Captulo 6. M quinas de Turing a

Inicial: Marcar primera pareja: Marcar segunda pareja: Marcar tercera pareja: Marcar cuarta pareja: Marcar quinta pareja:

0000011111BBBBBB... X0000Y1111BBBBBB... XX000YY111BBBBBB... XXX00YYY11BBBBBB... XXXX0YYYY1BBBBBB... XXXXXYYYYYBBBBBB...

De esta forma, si al acabar de marcar parejas, s lo quedan Xs e Ys en la cinta, o seguro que los n meros eran iguales. Este comportamiento queda descrito por u la siguiente funci n de transici n: o o 0 (q1 , X, R) (q1 , 0, R) (q2 , 0, L) 1 (q2 , Y, L) X Y (q3 , Y, R) (q1 , Y, R) (q2 , Y, L) (q3 , Y, R) B

q0 q1 q2 q3 q4

(q0 , X, R)

(q4 , B, L)

Como en el ejemplo anterior, no hay transici n asociada al estado q4 , que es o el nal (es al que se llega cuando efectivamente se ha comprobado que ambos n meros son iguales). N tese que en la tabla hay entradas, correspondientes u o a estados no nales, sin transici n asociada. En el caso de llegar a alguno o de estos huecos, la m quina parar , pero al no parar en el estado q4 , se debe a a concluir que los n meros no eran iguales. u Este ultimo ejemplo, adem s, permite comprender el doble punto de vista del a estudio de las M quinas de Turing. Al n y al cabo, el segundo ejemplo es una a M quina de Turing que reconoce el lenguaje 0n 1n . a

6.1. Modelo de M quina de Turing. a

89

Denici n 6.1 Una M quina de Turing es una s ptupla, o a e M = , Q, , f, q0 , B, F donde, es el alfabeto de entrada, Q es el conjunto de estados. Es nito y no vaco. Se ubica en el Control Finito. es el alfabeto de la cinta, {B}. f es la funci n de transici n, o o f : Q Q {L, R}.

Partiendo de un estado y de un smbolo, indica la transici n a otro estado, el o smbolo a escribir en la cinta y el movimiento del cabezal. q0 es el estado inicial, q0 Q. B es un smbolo especial que se denomina BLANCO, B . F es el conjunto de estados nales (aceptadores), F Q.

En el primer ejemplo se tendra: = {0, 1}, = {0, 1, B}, Q = {q0 ,q1 ,q2 }, F = {q2 } y f, funci n de transici n, o o seg n queda descrita en la tabla, u y, en el segundo, = {0, 1}, = {0, 1, X, Y, B}, Q = {q0 ,q1 ,q2 ,q3 ,q4 } , F = {q4 } y f, funci n o de transici n, seg n queda descrita en la tabla. o u

Denici n 6.2 (Descripci n Instant nea) Una descripci n instant nea es una cadeo o a o a na que pertenece a Q . Las descripciones instant neas, DI, se utilizan para describir el estado de la m quina. a a En el contexto del modelo de M quina de Turing una DI representa la cadena que en un a momento dado se encuentra en la cinta y un identicador de estado que, adem s de indicar a en qu estado se halla la m quina, indica la posici n del cabezal de L/E: el cabezal siempre e a o est sobre el smbolo inmediatamente a la derecha del identicador de estado. Como la cinta a es innita, s lo se representar n los smbolos signicativos. o a

90

Captulo 6. M quinas de Turing a

Convenios para interpretar las DI: 1. Si la transici n es del tipo f (q, xi ) = (p, Y, L), la evoluci n se representa o o x1 x2 xi1 qxi xi+1 xn x1 x2 xi2 pxi1 Y xi+1 xn

2. Si la transici n es del tipo f (q, xi ) = (p, Y, R), la evoluci n se representa o o x1 x2 xi1 qxi xi+1 xn x1 x2 xi2 xi1 Y pxi+1 xn

En el primer ejemplo, la evoluci n de la MT dise ada (con la entrada indicada) o n queda descrita por la siguiente secuencia de DIs, q0 0011011100000B 0q0 011011100000B 00q0 11011100000B 000q1 1011100000B 0001q1 011100000B 00011q2 11100000B

Denici n 6.3 Dos Descripciones Instant neas de la M quina de Turing M, I1 e I2 , o a a est n en relaci n si desde I1 se puede alcanzar I2 en un s lo paso (I1 I2 ). a o o

El cierre reexivo-transitivo de una relaci n se representa como I1 o sitivo, como I1


+

I2 ; el cierre tran-

I2 .

Las deniciones anteriores permiten denir formalmente qu lenguaje reconoce una e M quina de Turing: a Denici n 6.4 Dada la M quina de Turing, o a M = , Q, , f, q0 , B, F el lenguaje asociado a esta m quina, al que se denomina L(M ) se dene como, a L(M ) = {x | q0 x

1 p2 , p F, 1 , 2 }

Es decir, L(M ) es el conjunto de cadenas de entrada que llevan a la m quina a un estado a nal, independientemente de la posici n que ocupe el cabezal. o

6.2. T cnicas para la Construcci n de M quinas de Turing. e o a

91

6.2.

T cnicas para la Construcci n de M quinas de Turing. e o a

El objetivo de esta secci n es estudiar t cnicas que facilitan la construcci n de M quinas o e o a de Turing, pero que no afectan a la potencia computacional del modelo ya que siempre se puede simular la soluci n obtenida mediante el modelo formal. o

6.2.1.

Almacenamiento en el Control Finito.

Consiste en asociar a determinados estados (o a todos) campos nitos de informaci n o adicional sobre las transiciones en el control nito. Por lo tanto, un estado no s lo queda denido por su identicador, sino tambi n por un o e n mero nito de campos de informaci n (normalmente asociado a smbolos del alfabeto de u o la cinta). La idea es frenar un crecimiento excesivo de identicadores de estado, que pueda dicultar el entendimiento del comportamiento de la m quina. Suele ser util en aquellos a casos en los que se debe recordar qu smbolo se ha ledo (y en los que la alternativa e a usar esta t cnica es realizar transiciones a distintos estados, dependiendo de que se lean e distintos smbolos). Ejemplo 3: Construir una M quina de Turing capaz de reconocer el lenguaje a L = {x + | x = ay, a y, a } es decir, un lenguaje en el que el primer smbolo de la cadena no puede volver a aparecer en el resto. Sup ngase que = {0,1}. Una posible idea es dise ar o n una MT tal que del estado inicial al leer un 0 pase al estado q1 y a leer un 1 pase a q2 . . . , pero lo unico que motiva esta diferencia entre los estados es el smbolo ledo, es decir, la distinci n de estados est motivada por la necesidad o a de poder distinguir de alguna forma entre leer primero un 1 o un 0 para saber que posteriormente no se va a poder repetir. Entonces, por qu no realizar e una transici n a un estado que sirva para recordar cu l fue el smbolo ledo o a en primer lugar? Por ejemplo, f([q0 , B], 0) = ([q1 , 0], 0, R) f([q0 , B], 1) = ([q1 , 1], 1, R) f([q1 , 0], 1) = ([q1 , 0], 1, R) f([q1 , 1], 0) = ([q1 , 1], 0, R) f([q1 , 0], B) = ([q1 , B], B, R) f([q1 , 1], B) = ([q1 , B], B, R) Con esto se tendra que Q = {[q0 , B], [q1 , 0], [q1 , 1], [q1 , B]}; el estado inicial es [q0 , B] y el estado nal es [q1 , B]. Este ejemplo puede parecer muy simple; para apreciar realmente la utilidad de esta t cnica, se aconseja resolver el mismo problema cuando coincide con e el alfabeto latino, por ejemplo.

92

Captulo 6. M quinas de Turing a

En un M quina de Turing as dise ada, el conjunto de estados Q se puede ver como el a n resultado de realizar el producto cartesiano entre un conjunto de identicadores de estados y el conjunto de smbolos que sean signicativos a la hora de realizar transiciones. Si se guarda un unico campo de informaci n se obtendran pares [id estado, inf]; si se guardan o dos campos de informaci n se obtendran triplas [id estado, inf1, inf2], y as sucesivamente. o Si se quiere obtener una M quina de Turing est ndar bastar con renombrar los pares a a a (o triplas, etc.) obtenidos al realizar el dise o mediante la t cnica descrita. n e En el ejemplo anterior, de Q = {[q0 , B], [q1 , 0], [q1 , 1], [q1 , B]} se puede obtener el conjunto Q = {q0 , q1 , q2 , q3 } en el que el estado inicial es q0 y el estado nal es q3 . Es importante tener en cuenta que la informaci n que se almacena en el control nito o siempre ser nita. a

6.2.2.

Cintas con Sectores Multiples y Marcaje de smbolos.

En el dise o de algunas M quinas de Turing puede resultar interesante considerar que n a la cinta est dividida en varios sectores; n tese que se tiene una cinta, pero es como si a o cada celda tuviera distintos compartimentos. En este caso se asume que el cabezal tiene capacidad para leer/escribir todos los sectores a la vez: cada sector puede tener un smbolo y el cabezal los interpreta todos juntos (sera similar a interpretar que 000000101 es 5). La ventaja de esta t cnica es disminuir el n mero de smbolos del alfabeto de la cinta: con e u s lo dos smbolos y k sectores se podra representar lo mismo que con 2k smbolos, por o ejemplo. Dependiendo del sector, puede variar la interpretaci n. o En general, para describir las M quinas de Turing as dise adas se realizan tantos proa n ductos cartesianos del alfabeto como sectores aparezcan. El cabezal lee una k tupla, por lo que el alfabeto de la cinta toma la forma, = {[1 , 2 , . . . , k ] | [1 , 2 , . . . , k ] 1 2 . . . k } lo que lleva a que escribir las transiciones como f (qi , [1 , 2 , . . . , k ] = (qj , [1 , 2 , . . . , k ], L/R). Evidentemente, para obtener una M quina de Turing est ndar, basta con renombrar cada a a una de las k tuplas, eligiendo el n mero adecuado de smbolos. u Hay un caso particular de esta t cnica, que suele utilizarse muy frecuentemente: la e M quina de Turing tiene dos sectores, de los cuales uno se utiliza para almacenar la caa dena de entrada (y obtener la cadena de salida, si es el caso) y el segundo s lo admite una o B. La t cnica permite marcar smbolos sin borrarlos. marca especial ( ) o e

6.2. T cnicas para la Construcci n de M quinas de Turing. e o a

93

Al utilizar esta t cnica hay que redenir el alfabeto de entrada y el de cinta, como el e producto cartesiano entre el alfabeto original y el conjunto {B, }. Como ejemplo de aplicaci n, consid rese el problema propuesto en el segundo o e ejemplo, pero, en este caso, se marcar n los smbolos en lugar de sobreescria birlos con X e Y. De acuerdo a lo visto, se tendra = {[B, d] | d {0, 1}}, = {[X, d] | X {B, }, d {0, 1, B}} [B,0] (q1 , [ ,0], R) (q1 , [B,0], R) (q2 , [B,0], L) [B,1] (q2 , [ ,1], L) [ ,0] (q0 , [ ,0], R) [ ,1] (q3 , [ ,1], R) (q1 , [ ,1], R) (q2 , [ ,1], L) (q3 , [ ,1], R) [B,B]

q0 q1 q2 q3 q4

(q4 , [B,B], L)

6.2.3.

Uso de Subrutinas.

La idea es la misma que cuando se trabaja en un lenguaje de alto nivel: aprovechar las ventajas del dise o modular para facilitar el dise o de la M quina de Turing. n n a La base ser la descomposici n de la tarea a realizar en tareas m s simples; cada una a o a de estas subtareas se describir en una tabla de transici n propia (la subrutina). En la a o tabla de transici n que describe a la M quina de Turing que resuelve el problema completo o a habr estados de llamada a subrutina, qll , caracterizados por que suponen la transici n al a o estado inicial de una subrutina. El estado nal de esta ser realmente un estado de salida a que permite transitar hacia un estado de return en la M quina de Turing principal. a Subrutina: (qj ,...) MT Principal: (qs ,...) ... ...

qi qf

(qr ,...)

qr qll

(qj ,...)

(qi ,...)

Para obtener una M quina de Turing est ndar, bastara con reescribir todas las funciones a a de transici n como una unica funci n de transici n m s grande. o o o a

94

Captulo 6. M quinas de Turing a

6.3.

M quinas de Turing Modicadas. a

La M quina de Turing es un aut mata de denici n y funcionamiento muy sencillo. a o o El objetivo de esta secci n es estudiar si es posible aumentar su poder computacional o a adi ndole nuevos elementos o si esto simplemente reportar ventajas desde el punto de n e a vista de una mayor rapidez en los c lculos o una mayor facilidad para realizarlos. a

6.3.1.

M quina de Turing Multicinta. a

En este modelo, la m quina de Turing tiene k cintas y k cabezales de L/E, a


... ... ... ...
...

... ...

...

C. F.

S lo hay una entrada de informaci n, en la primera cinta. Los tres pasos asociados a o o cada transici n son ahora: o 1. transici n de estado, o 2. escribir un smbolo en cada una de las celdas sobre las que est n los cabezales de L/E, a 3. el movimiento de cada cabezal es independiente y ser R, L o NADA (Z). a

Teorema 6.1 El lenguaje L es reconocido por una M quina de Turing Multicinta a L es reconocido por una M quina de Turing de una sola cinta. a
(Ambos modelos tienen el mismo poder computacional)

Demostraci n:(Idea Intuitiva) o 1. Si L es reconocido por una M quina de Turing de una sola cinta, L es reconocido a por una M quina de Turing Multicinta. Basta con hacer funcionar una sola cinta de a la M quina de Turing multicinta, la que se utiliza para realizar la entrada de informaa ci n. o 2. Si L es reconocido por una M quina de Turing Multicinta, L es reconocido por una a M quina de Turing de una sola cinta. La idea b sica ser pasar de un M quina de a a a a Turing multicinta con k cintas a una M quina de Turing de una sola cinta pero con a

6.3. M quinas de Turing Modicadas. a

95

2k sectores. As, por cada cinta de la M quina de Turing multicinta se tendr en un a a sector, la informaci n, y en el otro, una marca que indique la posici n del cabezal de o o L/E de la m quina original. a

...

x1 x2 x3 x4 x5 y3 ... y4 y5

... ...

x1 x2 x3 x4 x5 y1 y2
z2

... ...

... y1 y2 ...

y3 ...

y4 y5

z1 z2

z3 z4 z5
...

...

z1

z3 z4 z5

...

C. F. M1

C. F. M2

La m quina M2 simula el funcionamiento de la m quina M1 por barridos. Se necesia a tar un contador de valor inicial k y, suponiendo que el cabezal de M2 est ajustado a a sobre la marca situada m s a la izquierda, se comienza un movimiento hacia la derea cha. Cada vez que se detecte una marca de cabezal de L/E, se decrementa el contador y se almacena el smbolo asociado en el control nito. El barrido acaba cuando el contador valga 0. Habr k smbolos almacenados en el CF de M2 . Se realizara la a misma transici n que se realizara en M1 . Para poder llevar a cabo los movimientos, o habr que realizar un nuevo barrido hacia la izquierda, trasladando las marcas hacia a donde haya que trasladarlas (L, R o Z) y sobreescribiendo los smbolos que haya que reescribir; una vez completado el barrido, se cambia de estado. N tese que un movimiento de M1 equivale a varios movimientos de M2 . Este modelo o tiene el mismo poder computacional, pero suele ser m s eciente que el modelo con una a sola cinta. Ejemplo: Si se calcula el n mero de movimientos necesarios para reconocer una cadena u del lenguaje L = {ww1 | w } con respecto a su longitud, en una m quina con 2 cintas el resultado sera a lineal y en una m quina con una cinta, cuadr tico. a a

96

Captulo 6. M quinas de Turing a

... ...

x1 x2 x1 x2

... x2 x1 ... x2 x1

... ...

...

x1 x2

... ...

x2 x1

...

C. F. M1: lineal

C. F.

M2: cuadrtico

6.3.2.

M quina de Turing con Multiples Cabezales. a

Tiene k cabezales de L/E, como la multicinta, pero con una sola cinta. Los cabezales operan todos de forma independiente. Como en las M quinas de Turing multicinta, se a admiten movimientos L, R o Z.
...
...

...

C. F.

Teorema 6.2 Un lenguaje L es reconocido por una M quina de Turing de m ltiples a u cabezales L es reconocido por una M quina de Turing de un cabezal. a
(Ambos modelos tienen el mismo poder computacional)

Demostraci n:(Idea Intuitiva) o 1. Si L es reconocido por una M quina de Turing unicabezal, L es reconocido por una a M quina de Turing multicabezal. Basta con trabajar con un s lo cabezal en la de a o m ltiples cabezales. u 2. Si L es reconocido por una M quina de Turing multicabezal, L es reconocido por a una M quina de Turing unicabezal. La simulaci n es similar a la realizada para las a o M quinas de Turing multicinta: se utiliza una cinta con k+1 sectores, k para marcar a las posiciones de los distintos cabezales y uno para la informaci n de la cinta. o

6.3. M quinas de Turing Modicadas. a

97

6.3.3.

M quina de Turing No Determinista. a

Es una M quina de Turing con cinta limitada a la izquierda, que se caracteriza por tener a asociada m s de una transici n desde alg n estado con el mismo smbolo, a o u f(qi , a) = {(qi , b, L), (qi , a, R), (qj , a, R), (qj , b, R)} f(qi , b) = {(qi , b, R)} f(qj , a) = {(qj , b, L), (qj , a, R)} . . . El n mero de transiciones asociado a cada par estado/smbolo siempre es nito. u Teorema 6.3 El lenguaje L es reconocido por una M quina de Turing No Determia nista L es reconocido por una M quina de Turing Determinista. a
(Ambos modelos tienen el mismo poder computacional)

Demostraci n:(Idea Intuitiva) o 1. Si L es reconocido por una M quina de Turing Determinista, L es reconocido por a una M quina de Turing No Determinista. Las M quinas de Turing deterministas son a a M quina de Turing no deterministas en las que s lo hay una transici n por cada par a o o estado/smbolo. 2. Si L es reconocido por una M quina de Turing No Determinista, L es reconocido a por una M quina de Turing Determinista. La demostraci n consiste en determinar a o c mo una M quina de Turing determinista puede simular el comportamiento de una o a M quina de Turing no determinista. Para ello, en primer lugar, y ya que el n mero de a u transiciones asociadas a cada par estado/smbolo es nito, se determina r, el n me u ro m ximo de opciones asociadas a las transiciones (en el ejemplo anterior, r=4). a Adem s, se necesita disponer de una M quina de Turing determinista con 3 cintas, a a limitadas a la izquierda. La primera cinta, recoge la informaci n de entrada, la cadena a reconocer. La seguno da cinta sirve para llevar la cuenta de qu opciones se van tomando. Para ello, sobre e esa cinta hay que ir generando cadenas del alfabeto {1, 2, .., r} por orden num rico: e - primero, todas las cadenas de longitud 1, 1, 2, 3, ..., r - segundo, todas las cadenas de longitud 2, 11, 12, 13, ..., 1r, 21, 22, 23, ..., 2r, ..., r1, r2, r3, ..., rr - tercero, todas las cadenas de longitud 3, 111, 112, 113, ..., 11r, 121, 122, 123 ..., 12r, ..., 1r1, 1r2, ..., 1rr, ..., rr1, rr2, rr3, ..., rrr

98

Captulo 6. M quinas de Turing a

- y, en general, en el paso i- simo se generaran todas las cadenas de longitud i, e 11..1, 11..2, ..., 11..r, 11..21, 11..22, ..., 11..r1, .. etc. Sobre la tercera cinta se desarrolla la simulaci n propiamente dicha. Cada vez que o se genera una secuencia en la cinta 2, se copia la cadena de entrada en la cinta 3. La secuencia de la cinta 2 indica qu transici n concreta se elige cada vez. Si, por e o ejemplo, en la cinta 2 est la secuencia a 11231.. quiere decir que la primera vez que aplique la funci n de transici n se aplica la prio o mera transici n de entre las posibles. La segunda tambi n se aplica la primera; la o e tercera, se debe aplicar la segunda, la cuarta se debe aplicar la tercera, la quinta se debe aplicar la primera1 . . . Con este chivato, la m quina operara sobre la cinta 3. Cada vez que se prueba una a secuencia y no se llega a un estado de aceptaci n, se genera la siguiente y se vuelve o a comenzar la simulaci n. Cuando se encuentra una secuencia que permite aceptar la o cadena, la m quina para y acepta. a Si la cadena es aceptada por la M quina de Turing no determinista, es porque existe a una secuencia de aplicaciones de la funci n de transici n que conducen a un estado o o nal. Como en la cinta 2 se van generando todas las posibles secuencias, esta nueva M quina de Turing determinista alguna vez tendr que encontrar la correcta y parar a a aceptando.

6.3.4.

M quinas de Turing Restringidas. a

El objetivo de las subsecciones anteriores era poner de relieve que diferentes mejoras fsicas sobre el modelo de M quina de Turing, no se traducen en un mayor poder compu a tacional, sino en una mayor eciencia en el c lculo o en una mayor simplicidad de dise o. a n De la misma forma que podra creerse que introduciendo mejoras fsicas en el modelo tendra que aumentar su poder computacional, puede parecer que si se considera un modelo m s restringido, este debe disminuir. Sin embargo, es posible establecer restricciones sobre a el modelo sin que esto ocurra. Por ejemplo, el modelo original propuesto por Turing usaba una cinta innita pero limitada a la izquierda. Y se puede demostrar que esta limitaci n no o supone cambiar el poder computacional del modelo.
N tese que se producir n secuencias imposibles. Se debe tener en cuenta que r es un m ximo y no todas o a a las transiciones tendr n tantas opciones. Al generar todas las secuencias del alfabeto {1,2,..,r}, es posible que a una secuencia obligue, por ej., a tomar la tercera opci n en un par estado/smbolo que s lo tiene dos. Entonces, o o se desecha la secuencia y se pasa a la siguiente.
1

6.3. M quinas de Turing Modicadas. a

99

Pero no es la unica, tambi n se puede restringir el n mero de estados o el n mero de e u u 2. smbolos del alfabeto de la M quina de Turing, sin variar el poder computacional a En concreto, una M quina de Turing sin restricciones sobre el alfabeto, con una cinta y a s lo tres estados puede simular el comportamiento de cualquier M quina de Turing. Si lo o a que se restringe es el n mero de smbolos, se puede probar el siguiente resultado: u

Teorema 6.4 Si un lenguaje L, L (0 + 1) , es reconocido por una M quina de Tua ring, entonces L es aceptado por una M quina de Turing con una sola cinta y alfabeto a de cinta restringido a los smbolos {0, 1, B}. Demostraci n:(Idea intuitiva) o Sea L = L(M1 ), con M1 = {0, 1}, Q, , f, q0 , B, F . Bajo el supuesto de que tiene entre 2k1 + 1 y 2k smbolos, son sucientes k bits para codicar cualquier smbolo3 de . La M quina de Turing M2 , con alfabeto de cinta restringido a {0,1,B}, debe simular el a comportamiento de M1 . Para ello, la cinta de M2 consistir en una secuencia de c digos representando los a o smbolos de M1 . El control nito de M2 debe recordar tanto el estado de M1 como la po sici n de su cabezal de L/E, m dulo k, de forma que sepa cuando se encuentra al principio o o de un c digo de un smbolo de M1 . o Al comenzar la simulaci n de un movimiento de M1 , el cabezal de M2 debe estar situao do al comienzo del c digo binario de un smbolo de M1 . Movi ndose hacia la derecha, M2 o e lee los k-1 smbolos siguientes para determinar la transici n que debe realizar M1 . o Una vez que se sabe qu smbolo escribira M1 , M2 reemplaza los k smbolos ledos e para reemplazarlos por el c digo del nuevo smbolo, movi ndose hacia la izquierda; se o e colocara sobre el comienzo del siguiente c digo binario a interpretar (dependiendo de que o el movimiento de M1 sea L o R) y realizara la misma transici n de estado. Si el estado es o nal, M2 acepta y, si no, pasa a simular el siguiente movimiento de M1 . Hay un caso especial en esta simulaci n, que sera el caso en el que M1 alcanzara un o blanco en la cinta (por ejemplo, llegar a la posici n donde se acaba la cadena). La m quina o a M2 tambi n alcanzara una celda en blanco, pero para realizar elmente la simulaci n, debe e o escribir en esa celda y en las k-1 siguientes el c digo binario correspondiente al smbolo B o de M1 . Es preciso puntualizar, adem s, que la entrada de M2 y M1 no pueden ser la misma a cadena. Es decir, la cadena w, w (0 + 1) , que es la entrada de M1 , debe codicarse tambi n para ser una cadena de entrada que M2 acepte. Por lo tanto, antes de la simulaci n e o
No simult neamente: si se restringe el alfabeto de cinta, el n mero de cintas y el n mero de estados sia u u mult neamente, el resultado sera un n mero nito de posibles MT que, evidentemente, no pueden tener el a u mismo poder que el modelo general, con un n mero innito de posibles MT. u 3 Hay que tener en cuenta que ; es decir, sobre 0, 1 y B tambi n se realizar la codicaci n. e a o
2

100

Captulo 6. M quinas de Turing a

se debe proceder a reescribir w, codicando cada uno de sus smbolos en k bits. Puesto que la misma t cnica de codicaci n se puede aplicar sobre cualquier alfabeto, e o se establece el siguiente corolario: Corolario 6.1 Si un lenguaje L, sobre cualquier alfabeto, es reconocido por una M quina de Turing, entonces L es aceptado por una M quina de Turing con alfabeto a a de cinta restringido a los smbolos {0, 1, B}.

6.4.

La M quina de Turing como Generador. a

Las M quinas de Turing no s lo tienen capacidad para reconocer las cadenas de un a o lenguaje, sino que tambi n tienen capacidad para generar lenguajes. e La denici n formal de la m quina es la misma, con dos salvedades. En un generador o a el alfabeto debe entenderse como el alfabeto sobre el que se formar n las cadenas del a lenguaje. Y, al hablar de las M quinas de Turing como generadoras, se suele considerar a una m quina multicinta con una cinta especial, la Cinta de Salida (lo cual es l gico: en una a o m quina reconocedora cobra especial importancia la entrada, la cadena a reconocer; en una a m quina generadora, lo importante es la salida, las cadenas que genera). a En la cinta de salida, la m quina ir produciendo todas las cadenas que pertenecen al a a lenguaje que tiene que generar. Sobre esta cinta s lo se puede escribir. Y, una vez escrito un o smbolo, no se puede reescribir. El cabezal asociado tiene restringido el movimiento en un sentido, de izquierda a derecha. La imagen m s gr ca de esta cinta sera una impresora. a a Como ya se ha dicho, las cadenas se formar n a partir del alfabeto , y aparecen en a la cinta de salida separadas por un smbolo especial que no pertenezca a dicho alfabeto (normalmente, se utilizar el smbolo #). a
... ... ... ...
...

... ...

...

C. F.

...

x1

x2

x3

...

6.4. La M quina de Turing como Generador. a

101

Sea M la M quina de Turing que genera el lenguaje L, L = {x1 , x2 , x3 , ...}. A M se a le denomina Generador de L y se utiliza la notaci n L = G(M) para representar a dicho o lenguaje. Cuando se estudia la M quina de Turing como generador las siguientes armaciones a son ciertas: Si M para, G(M) es nito. El recproco no es cierto, en general. Las cadenas pueden aparecer repetidas varias veces en la cinta de salida. No se asume ning n tipo de orden en la generaci n de cadenas. u o Una cadena pertenece a G(M) si antes o despu s aparece en la cinta de salida entre e dos smbolos #.

6.4.1.

Dos M quinas de Turing Generadoras B sicas. a a

Se describen, a continuaci n, dos generadores b sicos para la asignatura y que intervieo a nen en varias construcciones y demostraciones. El Generador Can nico Se llama Generador Can nico del alfabeto , Gc ( ), a la M quio o a na de Turing capaz de generar todas las cadenas de , siguiendo el Orden Can nico, o que se dene de la siguiente forma4 : 1. Se generan las cadenas por orden creciente de tama o, n 2. Las cadenas del mismo tama o se generan en orden num rico creciente; para n e ello, si = {a0 , a1 , a2 , ..., ak1 },

se supone que el smbolo ai es el i- simo dgito en base k. Por lo tanto, las e cadenas de longitud n son los n meros del 0 al k n 1. u Ejemplo: Si = {0, 1}, entonces se ir generando en el siguiente orden: , 0, a 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, 0000, ... etc. N tese que 0, 00, 000, 0000, ... son distintas cadenas (igual que lo seran o a, aa, aaa, aaaa, ... si = {a, b}).

En el orden can nico, cada cadena ocupa una posici n determinada, pudi ndose cao o e racterizar cada cadena por dicha posici n. o
Este sera el generador necesario para poder realizar la simulaci n de una M quina de Turing No Determi o a nista, tal y como se vio en el teorema 6.3.
4

102

Captulo 6. M quinas de Turing a

El Generador de Pares Se llama Generador de Pares a la M quina de Turing capaz de a generar todos los pares (i, j) N N , G(M ) = {(i, j) | i, j N }. Si hay que generar todos los pares, la poltica de generaci n no puede ser del tipo o for i in range(1, ): for j in range(1, ): generar (i,j) ya que nunca se llegara a generar el par (2,1). Para asegurar que todos los pares se generan en tiempo nito, se recurre al orden que proporciona el Tri ngulo de Tartaa glia: (1, 1) (1, 2)(2, 1) (1, 3)(2, 2)(3, 1) (1, 4)(2, 3)(3, 2)(4, 1) (1, 5)(2, 4)(3, 3)(4, 2)(5, 1) ... En este tri ngulo, los pares (i,j) se generan por orden creciente de sumas, y se podra a utilizar la secuencia algortmica,

for s in range(2, ): i = 1 j = s - i while (i<s): generar (i,j) i++ j--

De esta forma, se puede asegurar que el n mero de pares generado antes de generar u el par (i,j) es i+j2 (i + j 2)(i + j 1) ( k) + i = +i, 2 k=1 por lo tanto, nito. Por lo tanto, el n mero de pasos necesario para calcular cualquier u par (i,j) es nito.

6.5.

Problemas Propuestos.

1. Sea la M quina de Turing M, M = , Q, , f, q1 , B, F , con cinta innita en a ambos sentidos y en la que = {a, b}, = {a, b, B}, Q = {q1 , q2 , q3 , q4 , q5 , q6 }, F = {q5 } y f es la funci n de transici n seg n esta tabla, o o u

6.5. Problemas Propuestos.

103

q1 q2 q3 q4 q5 q6

a (q1 , a, R) (q3 , a, L) (q2 , a, L)

b (q2 , b, L)

B (q5 , B, L) (q6 , B, R) (q4 , B, L) (q4 , B, L)

a) Describir el funcionamiento de M, realizando secuencias de descripciones instant neas con las cadenas: aababbb, aaabaabb, aaa. a b) Cu l es el lenguaje L(M )? a c) Si llamamos LP al conjunto de cadenas que hacen que una M quina de Turing a pare cu l es el lenguaje LP (M )? a d) De qu tipo es L(M ), LR o LRE? Por qu ? e e 2. Sea la M quina de Turing M, M = , Q, , f, q1 , B, F , que es no determinista a y en la que = {a, b}, = {a, b, B}, Q = {q1 , q2 }, F = {q2 } y f es la funci n de o transici n seg n esta tabla, o u a {(q1 , b, Z), (q1 , a, R)} b {(q1 , a, Z), (q1 , b, R)} B (q2 , B, R)

q1 q2

a) Presentar completamente al menos 4 de las posibles secuencias de descripciones instant neas que se pueden obtener cuando la entrada es la cadena aba. Indicar a qu hace la m quina. e a b) De acuerdo al apartado anterior, justicar cu l o cu les ser n las secuencias con a a a menor complejidad temporal y cu l o cu les las de mayor complejidad temporal. a a 3. Dise ar una MT capaz de calcular la resta propia de dos enteros, que se dene como n mn=

m n si m > n 0 si m n

4. Dise ar una MT capaz de reconocer el lenguaje 0n 1n 2n , n 1. n 5. Dise ar una MT capaz de calcular el producto de dos enteros, m n. n 6. Dise ar una MT capaz de realizar la divisi n entera de dos enteros, m % n y m / n. n o 7. Dise ar una MT con capacidad para reconocer el lenguaje {ww1 | w }. n 8. Dise ar una MT con capacidad para reconocer el lenguaje {w$w | w }. n 9. Dise ar una MT con capacidad para reconocer el lenguaje {ww | w }. n 10. Dise ar una MT capaz de calcular el mnimo de k n meros enteros, min(m1 , m2 , . . . , mk ). n u 11. Dise ar una MT capaz de calcular el m ximo de k n meros enteros, max(m1 , m2 , . . . , mk ). n a u

104

Captulo 6. M quinas de Turing a

12. Dise ar una MT capaz de determinar si k n meros enteros son o no son iguales. n u 13. Dise ar una MT que, dado un n mero en binario, calcule su complemento a 2. n u 14. Dise ar una MT que reconozca las cadenas del lenguaje n L = {ai bj ai bj | i, j > 0}. 15. El ADN cromos mico es bicatenario: se compone de dos cadenas de nucle tidos o o enlazados entre s y dispuestos en forma de h lice. Estos nucle tidos se denominan e o Adenina (A), Guanina (G), Timina (T) y Citosina (C) y en la h lice del ADN s lo se e o enlazan Adenina con Guanina y Timina con Citosina. Dado el alfabeto {A, G, T, C}, dise ar una MT que, dadas dos cadenas sobre dicho n alfabeto, determine si es posible o no formar con ellas una cadena de ADN. Por ejemplo, la cadenas GATTACA y AGCCGTG podran formar una h lice. e 16. Sea = {0, 1}. Construir una MT que dado un entero k construya la k- sima cadena e de la serie denida como a) La primera cadena es 0, b) La cadena i- sima se obtiene a partir de la i-1 de acuerdo al siguiente procedie miento: si al recorrer la cadena i-1 se encuentra el smbolo 0, se substituye por el smbolo 1y si se encuentra el smbolo 1, se a ade al nal de la cadena un n 0. Cu l es la longitud de la cadena obtenida? a 17. Dada M, una MT con dos cintas; sea = {0, 1, B} su alfabeto de cinta y sea una de sus transiciones de la forma, f (qi , 0, 1) = (qj , {1, L}, {1, R}) Dar las ideas b sicas sobre c mo simular la aplicaci n de dicha transici n en una MT a o o o de una sola cinta. 18. Sup ngase que se dispone de un conjunto de k M quinas de Turing, de forma que o a cada una de ellas tiene su propio cabezal de lectura/escritura, su propio conjunto de estados y su propia funci n de transici n, pero que trabajan en paralelo compartiendo o o una unica cinta de entrada, as como los alfabetos de entrada y de cinta. Aumentara este nuevo modelo el poder computacional de las M quinas de Turing? Justicar la a respuesta. 19. Se tiene la idea de realizar una MT con dos cintas. Sobre la primera el cabezal s lo o puede leer y en la segunda el cabezal s lo puede escribir. Esta nueva MT tendra o menor, mayor o igual poder computacional que el modelo est ndar?Por qu ?. a e 20. Para cada uno de los lenguajes propuestos, justicar qu modelo modicado propore cionara m s ventajas con respecto al est ndar en una implementaci n: a a o a) L = {x (0 + 1) | x = x1 }

6.5. Problemas Propuestos.

105

b) L = {x (0 + 1) | x = zyzy, y, z (0 + 1) } 21. a) Dise ar una M quina de Turing cl sica que reconozca las cadenas del lenguan a a je L = {0N 10M 10N +M | N, M 1}. b) De los distintos modelos modicados de M quinas de Turing, cu l crees que a a permitira una implementaci n m s r pida de ese lenguaje? Por qu ?. o a a e 22. a) Dise ar una M quina de Turing cl sica que reconozca las cadenas del lenguan a a je L = {v#w | v, w {a + b} S(a, w) = 2 S(a, v)}. Es decir, en L est n cadenas de la forma v#w sabiendo que v y w est n fora a madas por as y bs y que en w hay el doble de as que en v. Por ejemplo: abba#baaaba, aabb#bbabbbbbbbabaa, aaa#aaaaaa, b#bbbbbbbb, aba#aaaa, . . . b) De los distintos modelos modicados de M quinas de Turing, cu l crees que a a permitira una implementaci n m s r pida de ese lenguaje? Por qu ?. o a a e 23. a) Dise ar una M quina de Turing cl sica que ante la siguiente entrada: n a a ...BBxByBB... en la que x e y son cadenas de (0 + 1) , obtenga como salida ...BBxyBB... b) Hemos estudiado distintos modelos modicados de M quinas de Turing, cu l a a crees que permitira una implementaci n m s r pida de ese lenguaje? Por o a a qu ?. e 24. a) Dise ar una M quina de Turing cl sica que ante la siguiente entrada: n a a ...BBxByBB... en la que x e y son cadenas de (0 + 1)+ , obtenga como salida ...BByBxBB... b) Hemos estudiado distintos modelos modicados de M quinas de Turing, cu l a a crees que permitira una implementaci n m s r pida de ese lenguaje? Por o a a qu ?. e 25. a) Dise ar una M quina de Turing cl sica que, dada una cadena de (0+1) , haga n a a la siguiente operaci n: la cadena estar formada por bloques de 0s separados o a por 1s (vamos, una entrada que sigue el convenio habitual sobre los argumentos de una funci n de enteros). La m quina debe indicar cu ntos bloques de 0s hay. o a a Por ejemplo, ante la siguiente entrada: ...B0001001001000100B... debe obtener como salida ...B00000B...

106

Captulo 6. M quinas de Turing a

ya que se le han pasado 5 argumentos en la cadena de entrada. b) Qu modelo modicado elegiras para una implementaci n m s r pida? Por e o a a qu ?. e 26. a) Dise ar una M quina de Turing cl sica que, dada una cadena de (0+1) , haga n a a la siguiente operaci n: la cadena estar formada por bloques de 0s separados o a por 1s (vamos, una entrada que sigue el convenio habitual sobre los argumentos de una funci n de enteros). La m quina debe indicar si los bloque de ceros est n o a a ordenados por orden creciente. Por ejemplo, debe aceptar la siguiente entrada: ...B00100100010000001000000000B... y rechazar la siguiente: ...B000001000000100B... ya que el segundo bloque tiene 6 ceros y el tercero tiene menos, s lo 2 ceros. o e o a a b) Qu modelo modicado elegiras para una implementaci n m s r pida? Por qu ?. e 27. Dise ar una M quina de Turing cl sica que, dada una cadena de (0 + 1) , que n a a interpretaremos como un n mero en binario, le a ada un bit de paridad impar; esto u n es, si el n mero de bits 1 es par, el de paridad ser 1 y si el n mero de bits 1 es impar, u a u el de paridad ser 0 (en ambos casos, el n mero nal de 1s siempre es impar). Ojo, a u que el bit de paridad siempre es el bit m s signicativo. a Por ejemplo, la MT debe transformar la cadena ...BB00101011B... en la cadena ...B100101011B.... 28. Dise ar una M quina de Turing que genere las cadenas del lenguaje n a L = {an b2n an | n 0}. 29. Construir una MT M, tal que G(M ) = {0n 1n | n 0}. 30. Construir el generador can nico de , siendo = {0, 1}. o 31. Dise ar una M quina de Turing que genere las cadenas del lenguaje n a L = {an b2n an | n 0}. 32. Teniendo en cuenta la construcci n del Generador Can nico de (0 + 1) , dar la ideas o o b sicas para la construcci n del Generador Can nico de (a + b + c) . a o o 33. Modicar Gc ( ), de forma que ante una entrada i, devuelva wi , i- sima cadena en e orden can nico. o 34. Supuesto que se conoce la funci n de transici n de una MT M, construir M de forma o o que se comporte como M pero s lo durante j pasos. o

Captulo 7

Computabilidad
Indice General
7.1. Lenguajes Recursivos y Funciones Computables. . . . . . . . . . . . 107 7.1.1. Introducci n. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 o 7.1.2. La M quina de Turing como Reconocedor de Lenguajes. . . . . 110 a 7.1.3. La M quina de Turing como Calculador de Funciones. . . . . . 111 a 7.2. La Tesis de Church. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.2.1. El Modelo RAM. . . . . . . . . . . . . . . . . . . . . . . . . . 113 7.3. Caracterizaci n de L.R. y L.R.E. . . . . . . . . . . . . . . . . . . . . 114 o 7.3.1. Caracterizaci n de los L.R.E. mediante Generadores. . . . . . . 115 o 7.3.2. Caracterizaci n de los L.R. mediante Generadores. . . . . . . . 117 o 7.4. Propiedades de L. R. y L. R. E. . . . . . . . . . . . . . . . . . . . . . 119 7.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.1.
7.1.1.

Lenguajes Recursivos y Funciones Computables.


Introducci n. o

En 1900, el matem tico David Hilbert propuso el llamado Problema de la Decisi n a o (Entscheidungsproblem), formulado como Descubrir un m todo general para determinar e si una f rmula de l gica formal puede o no satisfacerse. El inter s que poda tener tal o o e problema se deba al trabajo desarrollado desde 1879 por Gottlob Frege, para reducir los enunciados matem ticos a enunciados de la l gica formal: si los enunciados matem ticos a o a se reducen a f rmulas l gicas y hay un m todo general para determinar si una f rmula se o o e o puede satisfacer o no, entonces habra un m todo general para determinar si un enunciado e (teorema) es cierto o no. Enunciados como la Conjetura de Goldbach o la Conjetura de los N meros Perfectos, dejaran de ser conjeturas: al aplicarles este m todo, pasaran a ser u e teoremas. Bastara con aplicar tal m todo mec nicamente para determinar si un enunciado e a 107

108

Captulo 7. Computabilidad

es o no es un teorema. Ese fue el inicio del formalismo, escuela matem tica que pretenda a convertir todas las matem ticas en un gran sistema formal, un sistema formado por axiomas a y reglas, en el que las expresiones se representan mediante smbolos y s lo se puede operar o usando las reglas del sistema. Se abri as una va de investigaci n que, 36 a os m s tarde, llev a la demostraci n de o o n a o o que tal problema, la determinaci n de ese m todo general, era imposible de resolver. Sin o e embargo, los resultados obtenidos hasta llegar a esta conclusi n son de gran importancia. o El primer resultado de inter s surge en 1901, cuando Bertrand Russell descubri una e o paradoja irrefutable en la teora elemental de los conjuntos, que se puede formular como El conjunto de los conjuntos que no pertenecen a s mismos, pertenece a s mismo?. Es ta paradoja consigui anular una de las reglas b sicas instituidas por Frege para reducir los o a enunciados matem ticos a enunciados l gicos. Russell era un gran admirador del trabajo de a o Frege, y consigui salvar su trabajo cuando public , junto a Whitehead, su obra Principia o o Mathematica en la que introduce una teora de conjuntos axiom tica que elimina su para a doja (introduce restricciones en cuanto a c mo denir un conjunto, en concreto a conjuntos o que se denan a s mismos). En 1928, Hilbert y Ackermann denieron el c lculo de predicados de primer orden y a en 1931, Kurt G del demostr en su tesis doctoral el llamado Teorema de la Completitud: o o el c lculo de predicados de primer orden es completo, es decir, cada predicado v lido o es a a cierto o es falso. Pero, como consecuencia de su trabajo, tambi n pudo demostrar que un sise tema axiom tico no es completo ya que no puede contener todos los enunciados verdaderos a de la teora que pretende formalizar1 . Cualquier sistema consistente de l gica formal lo bastante potente para abaro car los enunciados de toda la aritm tica ordinaria tiene que contener enunciae dos verdaderos que no pueden ser demostrados dentro del sistema. La consecuencia inmediata de este teorema fue que la propuesta de Hilbert se elimin de o un plumazo: no puede existir un m todo que permita decidir si un enunciado arbitrariamente e dado es cierto o falso, ya que si lo hubiera demostrara todos los enunciados ciertos y tal demostraci n es imposible en un sistema incompleto. o A partir de ah, la investigaci n continu por un problema menos ambicioso, el Proble o o ma de la Demostrabilidad. No es posible encontrar un m todo que permita decidir si un e enunciado es cierto o no, pero existe un unico m todo que permita demostrar, a partir de e un sistema de axiomas l gicos, los enunciados matem ticos demostrables?. o a Esta lnea de trabajo llev a Alonzo Church, junto con Kleene y Rosser a denir el o calculus, un lenguaje formal que permite expresar funciones matem ticas (y en el que a se basa el lenguaje LISP). Kleene demostr que todas las funciones utilizadas por G del, o o las funciones recursivas, pueden expresarse en calculus. Esto llev a Church a enuno ciar que si una funci n matem tica es computable (se puede calcular su valor para todo o a
1 Exponer, y entender, el trabajo de G del no es sencillo. Una idea aproximada de sus resultados sera saber o que lleg en el sistema a construir una cadena que era la formulaci n equivalente a este teorema no se puede o o demostrar. Pero G del pudo demostrarlo saliendo fuera del sistema. o

7.1. Lenguajes Recursivos y Funciones Computables.

109

n mero perteneciente a su dominio de denici n), se puede expresar en calculus. Esta u o suposici n se conoce como la Tesis de Church y se suele enunciar como o Toda funci n efectivamente calculable es recursiva. o Church, adem s, demostr que en el caso de que hubiera una funci n matem tica expresable a o o a en calculus pero no computable, entonces no habra m todo alguno para determinar si e un enunciado matem tico dado es o no demostrable (y, si no sabemos si un enunciado es o a no demostrable, sobre qu se aplicara el m todo unico de demostraci n de los enunciados e e o demostrables? ;-). En 1936 public una f rmula con esas caractersticas, poniendo punto o o nal a la propuesta de Hilbert. Estos resultados se produjeron de forma paralela al trabajo desarrollado por Alan Turing. Familiarizado con el Problema de la Decisi n, lo atac desde otro punto de vista, o o intentando formalizar el concepto de m todo. Su denici n de m todo coincide con el cone o e cepto actual de algoritmo, un procedimiento que puede ser ejecutado mec nicamente sin a intervenci n creativa alguna. o De esta idea surgi el modelo de computaci n que se conoce como M quina de Tuo o a ring, que permite la descomposici n de cualquier algoritmo en una secuencia de pasos muy o simples. Del modelo se desprende la denici n formal de computabilidad dada por Turing, o Una funci n es computable si existe una M quina de Turing que la calcule en o a un n mero nito de pasos. u Trabajando de forma independiente a otros autores, Turing comprendi que haba una reo laci n entre el problema de Hilbert y el hecho de asegurar que una funci n es computable. o o Gracias a su modelo, Turing pudo llegar a las mismas conclusiones que Church, de una forma m s directa. Para ello se bas en los resultados de Georg Cantor sobre conjuntos a o contables. Cantor haba denido un conjunto contable, como un conjunto innito en el que cada objeto se puede asociar, de forma biunvoca, a un elemento del conjunto de los enteros positivos. Abstrayendo el modelo mec nico, la M quina de Turing se puede identicar con la a a funci n que calcula, lo que permite denirla como una funci n de enteros sobre enteros. o o Una M quina de Turing acepta un conjunto nito de caracteres de entrada, tiene un n mero a u nito de estados y, si la funci n es computable, acaba sus c lculos en un n mero nito de o a u pasos. Por lo tanto, cualquier M quina de Turing se puede describir mediante una cadena a nita de caracteres, lo que lleva a la conclusi n de que el n mero de m quinas de Turing o u a (por lo tanto, el n mero de funciones computables) es innito pero contable. u Pero del trabajo de Cantor tambi n se deduce que hay innitos conjuntos no contables e (el de los n meros reales, por ejemplo). Entre estos, est el conjunto de todas las funciones u a de enteros sobre enteros. Por lo tanto, si el n mero de funciones de enteros sobre enteros es u no contable y el n mero de m quinas de Turing es contable, es evidente que es imposible u a que existan sucientes m quinas de Turing para calcularlas todas. Y s lo son funciones a o computables las que se pueden calcular mediante una M quina de Turing. a

110

Captulo 7. Computabilidad

El objetivo de este tema es, precisamente, formalizar el concepto de funci n compuo table. Para ello, primero se denir n las clases de lenguajes (y de funciones) que dene a la M quina de Turing seg n su comportamiento. A continuaci n, se enunciar la Tesis de a u o a Church ( de Turing-Church), adem s de presentar otros modelos equivalentes tanto al de o a M quina de Turing como al de funci n recursiva. Para nalizar, se ver la caracterizaci n de a o a o estas clases mediante M quinas de Turing Generadoras, adem s de ver algunas propiedades a a de clausura. Lo que sigue son las deniciones b sicas de las clases denidas por el modelo de M quia a na de Turing, bien desde el punto de vista de reconocedor de lenguajes, bien desde el punto de vista de calculador de funciones.

7.1.2.

La M quina de Turing como Reconocedor de Lenguajes. a

Se recuerda la denici n de L(M), lenguaje reconocido por una M quina de Turing, M: o a Denici n 7.1 Dada la M quina de Turing, o a M = , Q, , f, q0 , B, F el lenguaje asociado a esta m quina, al que llamaremos L(M ) se dene como, a L(M ) = {x | q0 x

1 p2 , p F, 1 , 2 }

(L(M) es el conjunto de cadenas de entrada que llevan a la m quina a un estado nal, a independientemente de la posici n que ocupe el cabezal). o Si la cadena de entrada en una m quina M pertenece a L(M), la m quina M siempre se a a detiene. Pero lo que ocurre cuando la cadena no pertenece al lenguaje da pie a la clasicaci n de los lenguajes en Recursivos y Recursivamente Enumerables. o

Denici n 7.2 (Lenguaje Recursivamente Enumerable) Se M una M quina de Tuo a ring; se dice que L = L(M) es un Lenguaje Recursivamente Enumerable si - x L, M se detiene en q F , - x L, M se detiene en q F o bien M no se detiene.

x M

SI

(x

L(M))

7.1. Lenguajes Recursivos y Funciones Computables.

111

Denici n 7.3 (Lenguaje Recursivo) Se dice que L es un Lenguaje Recursivo si exiso te al menos una M quina de Turing M, tal que L = L(M) y a - x L, M se detiene en q F , - x L, M se detiene en q F .

x M

SI

(x

L(M)) L(M))

NO (x

Con esta denici n, el conjunto de todos los lenguajes queda de la siguiente forma o

L. L. Reg. L.C.L. Recursivos L.R.E.

lenguajes no reconocidos por MT

7.1.3.

La M quina de Turing como Calculador de Funciones. a

Formalmente, la denici n de la M quina de Turing como calculador de funciones, o a toma la forma de una funci n k-aria f, con argumentos enteros y que devuelve un valor o entero, f : Z k Z, f (i1 , i2 , . . . , ik ) = i. Para normalizar su funcionamiento como calculador, se toma el convenio de representar los argumentos enteros como cadenas de 0s (n 0n ), utilizando el 1 como separador entre los argumentos: f (i1 , i2 , . . . , ik ) f (0i1 10i2 1 . . . 0ik ). El mismo convenio sirve para representar el resultado de la computaci n. o Denici n 7.4 (Funci n Parcial) Una funci n f, f : A B se dice que es una o o o Funci n Parcial si C A, C = , tal que x C, f (x) (existe un subconjunto o no vaco de A en el que todos los elementos tienen imagen calculable).

112

Captulo 7. Computabilidad

Denici n 7.5 (Funci n Total) Una funci n f, f : A B se dice que es una Funo o o ci n Total si x A, f (x) (se puede calcular la imagen para cualquier elemento o de A).

El modelo de M quina de Turing dene las funciones recursivas parciales ya que, es a posible suministrarle argumentos con los cuales la M quina de Turing no se detenga. De a ah que se establezca un paralelismo entre la denici n de funci n parcial y la de lenguaje o o recursivamente enumerable: ambos establecen un funcionamiento de la M quina de Turing a que queda indeterminado, bien sea porque un argumento no tiene imagen, bien sea porque se proporciona a la m quina una cadena que no pertenece al lenguaje. . a Una M quina de Turing que se detiene ante cualquier entrada dene una funci n recura o siva total, ya que para cualquier argumento hay una imagen. En t rminos de lenguajes, una e funci n total se puede asimilar a un lenguaje recursivo. o Nota: todas las operaciones aritm ticas habituales (+, *, /, n!, log(n), 2n ) son funciones e recursivas totales.

7.2.

La Tesis de Church.

Al estudiar en el captulo 6 el modelo de M quina de Turing y sus posibles extensiones, a se demostr que cualquier posible mejora introducida no aumenta el poder computacional o del modelo b sico. Lo mismo se puede aplicar al estudio de otros aut matas que trabajan a o sobre el mismo principio: el desarrollo de un c lculo mediante la aplicaci n repetida de a o pasos nitos y completamente denidos. De ah que la M quina de Turing sea un modelo formal de la noci n de algoritmo: s lo a o o se puede considerar como un algoritmo lo que sea posible realizar mediante una M quina de a Turing. Lo que G del demostr en 1931 es que en cualquier sistema de axiomas matem tico o o a hay enunciados que son ciertos pero cuya veracidad no se puede probar dentro del sistema. Church demostr en 1936 que no hay un m todo mec nico general para decidir si un enuno e a ciado es o no es demostrable. Ello hizo necesario disponer de un substituto matem tico y a exacto para la noci n, intuitiva e informal, de computabilidad mec nica; Church utiliz su o a o propio sistema, el calculus. Turing lleg de forma independiente a los mismos resultao dos al mismo tiempo. A n m s: su explicaci n l gica del concepto de funci n computable u a o o o en t rminos de una m quina abstracta, es superior y m s simple que la de Church. Este moe a a delo ha permitido probar los resultados sobre la incomputabilidad y desarrollar el teorema de incompletitud de G del, y sus consecuencias, en su totalidad. o El principio de que las M quinas de Turing son versiones formales de algoritmos y a que ning n procedimiento computacional se puede considerar un algoritmo salvo que sea u posible presentarlo como una M quina de Turing, es la versi n inform tica de la Tesis de a o a Church, o Tesis de Turing-Church, que ya se coment en la Introducci n: o o

7.2. La Tesis de Church.

113

La noci n intuitiva de funci n computable puede identicarse con las funcioo o nes recursivas parciales. Las M quinas de Turing tienen el poder suciente a para calcular cualquier funci n recursiva parcial. o En esta tesis, la noci n de funci n computable no pone lmites ni al n mero de pasos o o u necesarios, ni a la cantidad de espacio de almacenamiento necesario, para desarrollar la computaci n. No hay que confundir computable con efectivamente computable. o Esta es una tesis, no un teorema ni un resultado matem tico: s lo establece la corresa o pondencia entre un concepto informal (la computabilidad) y un concepto matem tico (las a funciones recursivas parciales). Es, por lo tanto, te ricamente posible que la Tesis de Churo ch pueda quedar obsoleta en el futuro, si se propone un modelo alternativo para la noci n o de computabilidad que pueda desarrollar c lculos que no pueden realizarse mediante la a M quina de Turing. Pero no se considera probable. a De hecho, hay una serie de modelos l gicos desarrollados ( calculus, Sistemas de o Post, M quinas de Turing,...) y todos denen la misma clase de funciones, las funciones a recursivas parciales. De entre estos modelos, hay uno m s cercano al punto de vista de los a programadores, el modelo RAM.

7.2.1.

El Modelo RAM.

El modelo RAM (Random Access Machine), consiste en un n mero innito de palabras u de memoria, numeradas (0, 1, 2, ...), cada una de las cuales puede almacenar cualquier n mero entero, y un n mero nito de registros aritm ticos capaces de almacenar cualquier u u e entero. Los enteros podran entenderse como las instrucciones (codicadas en binario) de un computador. Eligiendo correctamente el conjunto de instrucciones y el tama o del m ximo entero n a representable en memoria, el modelo RAM puede simular cualquier computador existente. Veremos a continuaci n, que la M quina de Turing tiene el mismo poder computacional o a que el modelo RAM. Teorema 7.1 Una M quina de Turing puede simular una RAM, supuesto que las insa trucciones RAM pueden ser simuladas (las conocemos y sabemos interpretar cada una de ella) por una M quina de Turing. a Demostraci n: (Idea Intuitiva) o La M quina de Turing necesaria para la simulaci n ser una M quina de Turing multia o a a cinta. En una cinta, se almacenan las palabras de memoria de la RAM que tienen valores. El formato para almacenarlas podra ser donde con vi se representa el contenido, en binario, de la palabra i de memoria de la RAM. N tese que, en un momento dado, s lo se est usando un n mero nito de palabras de o o a u B#0 v0 #1 v1 #10 v2 #...#i vi #...

114

Captulo 7. Computabilidad

memoria; por lo tanto, el n mero de celdas ocupadas en la M quina de Turing tambi n u a e ser nito. a Para almacenar los contenidos de los registros de la RAM, la M quina de Turing utilia zar tantas cintas como registros haya (el n mero de registros es nito) . Adem s, en otras a u a dos cintas se almacenar el valor del Contador de Posici n, que contiene el n mero de la a o u palabra en la que est la pr xima instrucci n, y el valor del Registro de Direcciones de a o o Memoria, en el cual puede colocarse el n mero de una palabra de memoria. u C mo podra funcionar? Se asume, por ejemplo, que en cada palabra 10 bits indican o una instrucci n standard (LOAD, STORE, ADD,. . . ) y los dem s son la direcci n de un opeo a o rando. En un momento dado, el contador de posici n contiene el valor i, en binario. Habra que o buscar, en la primera cinta, la secuencia #i. Si no la encuentra, no hay instrucci n y la o M quina de Turing para (la RAM tambi n parara, en este caso). a e Si la encuentra, se examina la informaci n entre el smbolo * y el siguiente smbolo o #. Sup ngase que es el equivalente a ADD reg 2 y un n mero j en binario (sumar al o u registro 2 el contenido de la posici n j). Se copia el valor de j en la cinta usada como o registro de direcciones de memoria. A continuaci n, se busca la secuencia #j en la primera o cinta. Si no se encuentra, se asume el valor 0; si se encuentra se suma el valor de vj a los contenidos de la cinta que se usa como registro 2. Se incrementa el valor de la cinta usada como contador de posici n. Y se pasara a la siguiente instrucci n. o o

7.3.

Caracterizaci n de L.R. y L.R.E. o

Si una funci n computable se identica con una funci n recursiva parcial o, lo que es lo o o mismo, queda descrita por un lenguaje recursivamente enumerable, es sencillo comprender la importancia de poder clasicar a un lenguaje dentro de esta clase. Para demostrar que un lenguaje es recursivamente enumerable, basta con construir una M quina de Turing capaz a de reconoce sus cadenas; si, adem s, dicha M quina tiene la parada garantizada, es decir, a a rechaza las cadenas que no pertenecen al lenguaje, se habr demostrado que el lenguaje es a recursivo. Existe otra forma de caracterizar el car cter recursivo o recursivamente enumerable de a un lenguaje, utilizando generadores. Al n y al cabo, los lenguajes recursivamente enumerables reciben este nombre por inuencia del idioma ingl s (en este idioma, un generador e se conoce como enumerator).

7.3. Caracterizaci n de L.R. y L.R.E. o

115

7.3.1.

Caracterizaci n de los L.R.E. mediante Generadores. o

El objetivo de este apartado es llegar a demostrar que se puede armar que todo lenguaje que se pueda generar mediante una M quina de Turing es un L.R.E.; adem s, cualquier a a L.R.E. podr ser generado por una M quina de Turing. a a Lema 7.1 Si un lenguaje L es generado por una M quina de Turing M1 , L = G(M1 ), a entonces L es un L.R.E. ( M2 | L = L(M2 )). Demostraci n: o Idea b sica: si se puede garantizar la construcci n de M2 que reconozca L, entonces L a o es un L.R.E. Para demostrar que L es L.R.E., hay que construir una M quina de Turing M2 con una a cinta m s que M1 , que ser una cinta de entrada. Para reconocer una cadena introducida a a en la cinta de entrada, el comportamiento de M2 sera el siguiente: M2 se construye para simular el comportamiento de M1 ; adem s, llegado el momento en que M1 imprime el a smbolo # sobre la cinta de salida (es decir, despu s de producir una nueva cadena de L), e se compara la cadena generada con la cadena de entrada. Si son iguales, M2 acepta; si no, contin a la simulaci n, pasando a generar la siguiente cadena. u o

w M1 ##w1#w2#w3#...#wk#

SI =? NO

M2

Esta construcci n asegura que M2 s lo acepta la cadena de entrada cuando es igual a o o una cadena generada por M1 , es decir, una cadena que pertenece a G(M1 ); por lo tanto, se sigue que L(M2 ) = G(M1 ). Adem s, el lenguaje reconocido por M2 es recursivamente a enumerable, ya que s lo se puede asegurar que la m quina acepta la cadena si pertenece al o a lenguaje. c.q.d. Tambi n es posible demostrar el recproco, es decir, si L es reconocido por alguna e M quina de Turing, entonces L se puede generar mediante una M quina de Turing. La a a idea b sica, en este caso, es la siguiente: conocido el alfabeto sobre el que se forman las a cadenas de L, se podran generar todas las cadenas sobre ese alfabeto. Puesto que se dispo ne de una M quina de Turing que reconoce, entre todas, las que pertenecen al lenguaje, se a puede generar este completamente.

116

Captulo 7. Computabilidad

Para desarrollar esta idea, se utiliza el Generador Can nico, ya que, dado un alfabeto o . Pero hay que tener en cuenta que el len, genera todas las cadenas que pertenecen a guaje es recursivamente enumerable: por lo tanto, si wi no perteneciera a L, es posible que la M quina de Turing que reconoce L no pare nunca al trabajar sobre dicha cadena. Esto a supondra que nunca se llegara a trabajar sobre wi+1 , wi+2 , ... que puede que s pertenez can. Esta dicultad se puede solventar gracias al Generador de Pares, tal y como se ver a a continuaci n. o Teorema 7.2 Un lenguaje L es L.R.E. ( M2 | L = L(M2 )) L se puede generar ( M1 | L = G(M1 )). Demostraci n: o : Lema 7.1 : Por construcci n de la M quina de Turing M1 de la siguiente forma: o a

GP

Gc( *)

wi j M2

SI

M1 ##w1#w2#w3#...#

Cada vez que el Generador de Pares produce un par (i,j), el valor de i se introduce como entrada al Generador Can nico para que produzca wi , la i- sima cadena en oro e den can nico. Esta cadena se suministra a M2 , junto con el valor de j. Si M2 reconoce o la cadena wi en exactamente j pasos, entonces M1 , genera la cadena wi (la imprime en la cinta de salida). Si una determinada cadena w pertenece a L, ocupar una determinada posici n en a o y ser reconocida en un n mero determinado y orden can nico en el lenguaje o a u nito de pasos; es decir, w se corresponder con alg n par (i,j). Como cualquier par a u es generado en un n mero nito de pasos por el generador de pares, si w L se u generar en un n mero nito de pasos. Por lo tanto, cualquier cadena del lenguaje a u puede ser generada por M1 en tiempo nito. c.q.d.

Corolario 7.1 Si L es un L.R.E., entonces hay un generador de L que produce cada cadena exactamente una vez (M1 , por ejemplo).

7.3. Caracterizaci n de L.R. y L.R.E. o

117

7.3.2.

Caracterizaci n de los L.R. mediante Generadores. o

Tal y como se ha visto, cualquier lenguaje que se puede generar mediante una M quina a de Turing es un L.R.E. (y viceversa). A continuaci n se ver que si, adem s, se puede o a a generar en orden can nico entonces es un L.R. (y viceversa: cualquier L.R. se puede generar o en orden can nico). o Lema 7.2 Si L es recursivo ( M1 | L = L(M1 ) y M1 siempre para), entonces existe un generador de L ( M2 | L = G(M2 )) que imprime las cadenas de L en orden can nico. o Demostraci n: o Idea b sica: Construcci n de M2 a partir de la MT M1 . a o El lenguaje L ser un subconjunto de todas las cadenas que se puedan construir a para tir de un cierto alfabeto, . Se construye M2 , cuyo comportamiento queda descrito en el siguiente diagrama de bloques:

Gc( *)

wi

SI M1
NO

M2

##w1#w2#w3#...#

Se generan las cadenas de en orden can nico. Despu s de generar cada cadena, M2 o e simula el comportamiento de M1 con la cadena generada. Si M1 la acepta, M2 la escribe en la cinta de salida. Ya que M1 siempre para, M2 podr generar cada cadena en tiempo a nito. Y puesto que las cadenas se producen en orden can nico, aparecer n tambi n en o a e orden can nico en la cinta de salida. o c.q.d. Para demostrar el recproco, es decir, dado un lenguaje L, tal que L es generado por una M quina de Turing M2 en orden can nico, L=G(M2 ), entonces L es un L.R., se podra sea o guir la misma pauta que en las demostraciones anteriores: construir una M quina de Turing a M1 , basada en M2 , que acepte las cadenas de L y rechace las cadenas que no pertenezcan a dicho lenguaje. La construcci n se podra basar en el esquema mostrado en la gura 7.1. o La m quina M1 simulara el comportamiento de M2 : cada cadena que se genere en la a cinta de salida de M2 , se compara con la cadena que hay en la cinta de entrada de M1 . Si ambas son iguales, la cadena es aceptada. Si son distintas, se comprueba que la ultima cadena generada no sea superior, en orden can nico, a la cadena de la cinta de entrada; en o

118

Captulo 7. Computabilidad

w=wk? w<wk?

NO SI

SI NO

M2 ##w1#w2#w3#...#wk#

NO

M1

Figura 7.1: M quina de Turing para reconocer un lenguaje generado en orden can nico. a o este caso, dicha cadena pude ser rechazada, ya que se tiene la seguridad de que no pertenece al lenguaje puesto que, si as fuera, ya habra aparecido en la cinta de M2 . Pero esta construcci n presenta un problema o - Si L es un lenguaje innito, est garantizado que M1 para, tal y como se ha hecho la a construcci n. o - Pero si L es nito, no se sabe cu l ser el comportamiento de M2 cuando acabe de a a generar cadenas, puede parar o puede seguir funcionando. En este ultimo caso, la construcci n no permite garantizar que M1 pare siempre. o Pero cualquier lenguaje nito tiene asociado una M quina de Turing con parada asegua rada (un Aut mata Finito). Por lo tanto, se garantiza que, en cualquiera de los dos casos, o tanto si L es nito como innito, existe una M quina de Turing que siempre para (aunque a no se pueda dar una receta unica para su construcci n). Seg n esto, se puede enunciar el o u siguiente teorema,

Teorema 7.3 Un lenguaje L es L.R. ( M1 | L = L(M1 ) y M1 siempre para) L se puede generar ( M2 | L = G(M2 )) en orden can nico. o

Demostraci n: o : Lema 7.2 : Si L es innito, entonces L es reconocido por la M quina de Turing M1 descrita a anteriormente. Si L es nito, entonces hay alg n aut mata nito que acepta L; por lo u o tanto, en cualquiera de los dos casos, existe una M quina de Turing que acepta L y a siempre para. c.q.d.

7.4. Propiedades de L. R. y L. R. E.

119

7.4.

Propiedades de Lenguajes Recursivos y Lenguajes Recursivamente Enumerables.

El objetivo de esta secci n es estudiar propiedades que pueden ayudar a determinar o cu ndo un lenguaje es o no es un lenguaje recursivo o recursivamente enumerable. El primer a teorema muestra c mo estudiar una propiedad de clausura. Siguiendo el mismo modelo se o pueden estudiar la intersecci n, la diferencia, la clausura transitiva, etc. o Teorema 7.4 1. La uni n de dos lenguajes recursivos es un lenguaje recursivo. o 2. La uni n de dos lenguajes recursivamente enumerables es un lenguaje recursio vamente enumerable. Demostraci n: o 1. Sean L1 y L2 , L.R. M1 , M2 | L1 = L(M1 ), L2 = L(M2 ) y M1 y M2 siempre paran: - si x L1 , M1 acepta la cadena x y si x L1 , M1 rechaza la cadena x. - si x L2 , M2 acepta la cadena x y si x L2 , M2 rechaza la cadena x. Sea L = L1 L2 , M | L = L(M ) y M siempre para? S, construyendo la m quina a que se presenta en la gura:
x M1
SI (x NO (x L1) L1)

SI

M
La construcci n es correcta puesto que o

M2

NO

- si x L1 OR x L2 x L1 L2 = L (M1 o M2 aceptan M acepta)

- si x L1 AN D x L2 x L1 L2 = L (M1 y M2 rechazan M rechaza). Por lo tanto, M siempre para y si x L, M acepta y si x L, M rechaza. 2. Sean L1 y L2 , L.R.E. M1 , M2 | L1 = L(M1 ), L2 = L(M2 ), es decir, si x L1 , M1 acepta y si x L2 , M2 acepta. Sea L = L1 L2 , M | L = L(M )? S, construyendo M de la siguiente forma:

120

Captulo 7. Computabilidad

x M1

SI (x

L1)

SI

M2

SI (x

L2)

La construcci n es correcta puesto que si x L1 OR x L2 x L1 L2 = L o (M1 o M2 aceptan M acepta) por lo tanto, si x L, M acepta. El comportamiento de M queda indeterminado si x L1 AND x L2 x L1 L2 = L, pero se intenta caracterizar un lenguaje recursivamente enumerable. c.q.d. Los dos siguientes teoremas se reeren a la operaci n complemento: o Teorema 7.5 El complemento de un lenguaje recursivo es un lenguaje recursivo. Demostraci n: o Sea L un L.R. M | L = L(M) y M siempre para: si x L, M acepta la cadena x y si x L, M rechaza la cadena x. Sea L = - L, M | L = L(M ) y M siempre para? S, construyendo la m quina M a de la siguiente forma:

SI (x

L) L)

SI (x M' NO (x

L)

M NO (x

L)

La construcci n es correcta puesto que o - si x L x L (M acepta M rechaza)

- si x L x L (M rechaza M acepta) por lo tanto, M siempre para y si x L, M acepta y si x L, M rechaza. Y dado que es es un L.R. posible construir M , L c.q.d.

7.4. Propiedades de L. R. y L. R. E.

121

Teorema 7.6 Si un lenguaje L y su complementario L son L.R.E., entonces L y L son lenguajes recursivos. Demostraci n: o Sea L un L.R.E. M1 | L=L(M), es decir, si x L, M1 acepta. Sea L = - L, un = L(M ), es decir, si x L, M2 acepta. L.R.E. M2 | L M | L = L(M) y M siempre para? S, construyendo la m quina M de la siguiente a forma:

x M1

SI (x

L)

SI

M2

SI (x

L)

NO (x

L)

La construcci n es correcta puesto que o - x L M1 acepta M acepta,

- x L x L M2 acepta M rechaza. por lo tanto, M siempre para y si x L, M acepta y si x L, M rechaza. Por lo tanto, L es un lenguaje recursivo; y, por el teorema 7.5, L tambi n es un lenguaje recursivo. e c.q.d.

Adem s, de los teoremas 7.5 y 7.6 se desprenden las siguientes relaciones: Dado el a o lenguaje L y su complementario L, s lo se puede cumplir una de estas cuatro armaciones, 1. L y L son lenguajes recursivos, 2. L es recursivamente enumerable (no recursivo) y L NO es recursivamente enumerable, 3. L NO es recursivamente enumerable y L es recursivamente enumerable (no recursivo), 4. L y L NO son lenguajes recursivamente enumerables.

122

Captulo 7. Computabilidad

7.5.

Problemas Propuestos.

1. El sistema MIU es un sistema sobre el alfabeto = {M, I, U}. Las cadenas de este sistema se forman siguiendo las cuatro reglas siguientes, en las que x representa una subcadena gen rica sobre : e a) Si xI es una cadena del sistema, tambi n lo ser xIU, e a b) Si Mx es una cadena del sistema, tambi n lo ser Mxx, e a c) En cualquier cadena, la subcadena III puede ser reemplazada por la subcadena U, d) En cualquier cadena, la subcadena UU puede ser reemplazada por la cadena . Se sabe que la cadena MI pertenece al sistema. a) Para cada una de las cadenas siguientes, MIIU, MIIUU, MU, indicar si se pueden derivar o no partiendo de la cadena MI. Justicar las respuestas. b) Relacionar la respuesta obtenida en el apartado anterior con alg n resultado, u bien conocido, estudiado en la asignatura. 2. Las siguientes armaciones, consideradas por separado, pueden ser, cada una de ellas, ciertas o falsas: L es un lenguaje regular, L es un lenguaje de contexto libre, L es un lenguaje recursivo, L es un lenguaje recursivamente enumerable. Sin embargo, si las 4 armaciones se reeren al mismo lenguaje, de las 24 combinaciones que se pueden formular a priori, no todas ser n posibles. Cu ntas y cu les a a a ser n v lidas y por qu ? a a e 3. Sea L un lenguaje nito, puede ser L un lenguaje recursivamente enumerable no recursivo?. 4. Sea M una MT, tal que L(M) = L, siendo L un lenguaje nito. Puede ser que M no pare nunca ante entradas x L? 5. Sea L un lenguaje recursivamente enumerable no recursivo, sobre el alfabeto y sea M la MT que reconoce a L. Sea L1 , L1 = {x | f (q0 , x) = qi en menos de k pasos, qi F } L1 es recursivo o no? 6. Sea L un lenguaje recursivamente enumerable no recursivo sobre el alfabeto y sea M la MT que reconoce a L. Sea Lk el lenguaje formado por aquellas cadenas de tales que M no las ha reconocido en k pasos. Lk es recursivo, recursivamente enumerable no recursivo o no recursivamente enumerable?

7.5. Problemas Propuestos.

123

7. Sea L un lenguaje recursivamente enumerable no recursivo sobre el alfabeto y sea M la MT que reconoce a L. Sea Lk el lenguaje formado por aquellas cadenas de L tales que M no las ha reconocido en k pasos. Lk es recursivo, recursivamente enumerable no recursivo o no recursivamente enumerable? 8. Sea L1 un lenguaje recursivamente enumerable no recursivo y sea L2 un lenguaje recursivo. Indicar c mo ser n (L.R., L.R.E. no recursivo, L. no R.E.) los lenguajes, o a a) L1 L2 , b) L1 L2 . 9. Se considera el lenguaje L, L = L1 L2 . Utilizando diagramas de bloques de M quia nas de Turing, deducir si L sera recursivo o recursivamente enumerable no recursivo en los supuestos, a) L1 y L2 son lenguajes recursivos. b) L1 es recursivamente enumerable y L2 es recursivo. c) L1 es recursivo y L2 es recursivamente enumerable. 10. Justicar si el conjunto de los lenguajes recursivamente enumerables es o no cerrado, con respecto a las siguientes propiedades: a) uni n, o b) intersecci n, o c) complemento, y d) diferencia. 11. Se sabe que los lenguajes L1 y L2 son lenguajes recursivos. Se dene la diferencia sim trica de dos lenguajes como e L = dif f sim(L1 , L2 ) = {x L1 x L2 } {x L1 x L2 } a) Estudiar si es o no es una operaci n de clausura. o b) Qu ocurre si L1 es un lenguaje recursivamente enumerable pero no recursivo? e y si L2 es un lenguaje recursivamente enumerable no recursivo? 12. Se considera el lenguaje Lpar = {x L | x | es par}. Indicar si Lpar es un lenguaje recursivo, recursivamente enumerable pero no recursivo o no recursivamente enumerable si: a) L es un lenguaje recursivo. b) L es un lenguaje recursivamente enumerable pero no recursivo. 13. Indicar para cada uno de los siguientes lenguajes si son recursivos, recursivamente enumerables no recursivos o no recursivamente enumerables, justicando el porqu : e

124

Captulo 7. Computabilidad

a) Sabiendo que L1 es un lenguaje recursivo, L = {x L1 | x1 L1 } b) Sabiendo que L1 es un lenguaje recursivamente enumerable no recursivo, L = {x L1 | x1 L1 } c) Sabiendo que L1 es un lenguaje recursivo y que L2 es un lenguaje recursivamente enumerable no recursivo, L = {x | x = x1 x2 x1 L1 x2 L2 } d) Sabiendo que L1 es un lenguaje recursivamente enumerable no recursivo, L = {x | x = yy 1 (y L1 y 1 L1 ) x1 L} 14. Consid rese el lenguaje e L = {0I 10J 10I+J | I, J N }. a) Determinar si es un Lenguaje Recursivo o un Lenguaje Recursivamente Enumerable. b) En cualquiera de los dos casos, L se puede generar. Dar las ideas b sicas para a la construcci n de un generador, que, adem s, garantice que cualquier x L se o a puede generar en un n mero nito de pasos. u 15. a) Esquematizar mediante bloques la construcci n de una MT capaz de generar el o lenguaje L = L1 L2 , sabiendo que L1 y L2 son lenguajes recursivos. Explicar brevemente su funcionamiento. b) Esquematizar mediante bloques la construcci n de una MT capaz de generar o el lenguaje L = L1 L2 , sabiendo que L1 y L2 son lenguajes recursivamente enumerables no recursivos. Explicar brevemente su funcionamiento. c) Justicar, atendiendo al tipo y modo de funcionamiento de los generadores dise ados en los apartados (a) y (b), si los lenguajes correspondientes son recurn sivos o recursivamente enumerables no recursivos. 16. Dadas M1 y M2 , indicar c mo habra que construir la MT M, que reconoce L = o L(M1 ) L(M2 ):
x M1
SI (x NO (x L1) L1)

SI

M2

NO

7.5. Problemas Propuestos.

125

17. Sup ngase que los lenguajes L1 , L2 , . . . , Lk forman una partici n de ; es decir, la o o y todos son disjuntos dos a dos, uni n de todos ellos es igual a o
k i=1

Li = Li Lj = , i, j i = j.

(nota: de ah se desprende que para cualquier cadena s construida con smbolos de , s s lo pertenecer a un unico Li , o a s , ! Li | s Li .) Discutir la siguiente armaci n: Si cada Li es un lenguaje recursivamente enumeo rable cada Li es un lenguaje recursivo.

126

Captulo 7. Computabilidad

Potrebbero piacerti anche