Vous êtes sur la page 1sur 96

Curso Bsico de Computacin

8.1 Indecibilidad

Feli Sagols Troncoso


Matemticas CINVESTAV-IPN <fsagols@math.cinvestav.mx>

2010

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

1 / 96

8.5 Indecibilidad en el problema de la correspondencia de Post

Los problemas indecidibles aparecen en varias reas. En las prximas tres secciones se analizarn algunos de los problemas ms interesantes en la teora de los lenguajes y se desarrollarn tcnicas para probar problemas indecidibles particulares. Se comenzar con el Problema de Correspondencia de Post, el cual constituye una valiosa herramienta para establecer la indecibilidad de otros problemas.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

2 / 96

Una instancia del Problema de la Correspondencia de Post (PCP) consiste de dos listas de cadenas, A = w1 , ..., wk y B = x1 , ..., xk , sobre algn alfabeto . Esta instancia del PCP tiene una solucin si existe una sucesin de enteros i1 , i2 , ..., im , con m 1, tal que wi1 , wi2 , ..., wim = xi1 , xi2 , ..., xim . La sucesin i1 , i2 , ..., im es una solucin a esta instancia de PCP.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

3 / 96

Ejemplo:
Sea = {0, 1}. Sean A y B listas de tres cadenas cada una, tal como se denen en la siguiente gura: Lista A Lista B i wi xi 1 1 111 10 2 10111 3 10 0 En este caso, el PCP tiene una solucin. Sea m = 4, i1 = 2, i2 = 1, i3 = 1 e i4 = 3. Entonces w2 w1 w1 w3 = x2 x1 x1 x3 = 101111110.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

4 / 96

Ejemplo:
Sea = {0, 1}. Sean A y B listas de tres cadenas cada una, tal como se muestran en la siguiente gura: i 1 2 3 Lista A Lista B wi xi 10 101 011 11 101 011

Supngase que esta instancia del PCP tiene una solucin i1 , i2 , ..., im . Claramente, i1 = 1, ya que ninguna cadena que comienza con w2 = 011 puede ser igual a una cadena que empieza con x2 = 11; ninguna cadena que comienza con

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

5 / 96

w3 = 101 puede ser igual a una cadena que empieza con x3 = 011. Se escribe la cadena de la lista A arriba de la cadena de la lista B correspondiente. Hasta ahora se tiene 10 101 La seleccin siguiente de A debe comenzar con un 1. As, i2 = 1 o i2 = 3. Pero i2 = 1 no servir, porque ninguna cadena que comience con w1 w1 = 1010 puede ser igual a una cadena que empiece con x1 x1 = 101101. Con i2 = 3, se tiene

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

6 / 96

10101 101011 Como la cadena de la lista B excede nuevamente a la cadena de la lista A por un smbolo 1, un argumento similar sirve para mostrar que i3 = i4 = = 3. As, existe slo una sucesin de elecciones que genera cadenas compatibles, y para esta sucesin B siempre es un caracter ms larga. As, esta instancia del PCP no tiene solucin.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

7 / 96

Una versin modicada del PCP


A continuacin se probar que el PCP es indecidible, mostrando que si fuera decidible, entonces se tendra un algoritmo para Lu . Primero se probar que, si el PCP fuese decidible, entonces una versin modicada del PCP sera tambin decidible. El Problema de Correspondencia de Post Modicado (PCPM) es el siguiente: Dadas las listas A y B, de k cadenas cada una, que estn en , por decir, A = w1 , w2 , ..., wk y B = x1 , x2 , ..., xk , existe una sucesin de enteros, i1 , i2 , ..., ir , tal que w1 wi1 wi2 wir = x1 xi1 xi2 xir ?

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

8 / 96

La diferencia entre el PCPM y el PCP es que en el PCPM, se requiere una solucin para empezar con la primer cadena de cada lista.

Lema (8.5)
Si el PCP fuera indecidible, entonces el PCPM sera indecidible. Esto es, el PCPM se puede reducir al PCP.

Demostracin:
Sean A = w1 , w2 , ..., wk y B = x1 , x2 , ..., xk una instancia del PCPM. Esta instancia del PCPM se puede convertir a una instancia del PCP que tenga solucin si y slo si la instancia del PCPM tiene solucin. Si el PCP fuera decidible, entonces se podra resolver el PCPM, lo que probara el lema.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

9 / 96

Sea el alfabeto ms pequeo que contiene todos los smbolos de las listas A y B, y sean y $ smbolos que no estn en . Sea yi la cadena que se obtiene a partir de wi al insertar el smbolo despus de cada caracter de wi y sea zi la cadena obtenida a partir de xi al insertar el smbolo adelante de cada caracter de xi . Crendose las nuevas palabras y0 = y1 , yk+1 = $, z0 = z1 , zk+1 = $.

Sean C = y0 , y1 , ..., yk+1 y D = z0 , z1 , ..., zk+1 . Por ejemplo, las listas C y D construidas a partir de las listas A y B del Ejemplo 8.6 se muestran en las siguientes guras:

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

10 / 96

PCPM Lista A Lista B i wi xi 1 1 111 2 10111 10 3 10 0

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

11 / 96

PCP i 0 1 2 3 4 Lista C yi 1 1 10111 10 $ Lista D zi 111 111 10 0 $

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

12 / 96

En general, las listas C y D representan una instancia del PCP. Se arma que esta instancia del PCP tiene una solucin si y slo si la instancia del PCPM representada por las listas A y B tiene solucin. Para ver esto, ntese que si 1, i1 , i2 , ..., ir es una solucin al PCPM con listas A y B, entonces 0, i1 , i2 , ..., ir , k + 1 es una solucin al PCP con listas C y D. Asimismo, si i1 , i2 , ..., ir es una solucin al PCP con listas C y D, entonces i1 = 0 y ir = k + 1 porque y0 y z0 son las nicas palabras con el mismo ndice que comienzan con el mismo smbolo, y yk+1 y zk+1 son las nicas palabras con el mismo ndice que terminan con el mismo smbolo.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

13 / 96

Sea j el entero ms pequeo tal que ij = k + 1. Entonces i1 , i2 , ..., ij es tambin una solucin porque el smbolo $ aparece slo como el ltimo smbolo de yk+1 y zk+1 , y, para ningn l, donde 1 l < j, es il = k + 1. Claramente, 1, i1 , i2 , ..., ij1 es una solucin al PCPM para las listas A y B.Si existe un algoritmo para decidir el PCP, se puede construir un algoritmo para decidir el PCPM convirtiendo cualquier instancia del PCPM a una instancia del PCP como se hizo previamente.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

14 / 96

Indecibilidad para el PCP Teorema (8.8)


El PCP es indecidible.

Demostracin:
Con el Lema 8.5, basta mostrar que si el PCPM fuera decidible, entonces se podra decidir si una MT acepta una palabra dada. Esto es, Lu se reduce al PCPM, el cual por el Lema 8.5, se reduce al PCP. Para cada M y w se construye una instancia del PCPM que tiene una solucin si y slo si M acepta a w .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

15 / 96

Esto se hace construyendo una instancia del PCPM que, si tiene una solucin, dicha solucin comienza con #q0 w #1 q1 1 # #k qk k #, donde las cadenas entre #s consecutivos son descripciones instantneas consecutivas en un clculo de M con entrada w , y qk es un estado nal. Formalmente, las parejas de cadenas de las listas A y B de la instancia del PCPM se dan a continuacin. Como, salvo por la primera pareja, la cual debe usarse primero, el orden de las parejas es irrelevante para la existencia de una solucin, las parejas se darn sin ndices. Supngase que no hay movimientos a partir del estado nal. La primer pareja es: Lista A # Lista B # q0 w #

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

16 / 96

El resto de las parejas se agrupan como sigue: Grupo I Lista A Lista B X X # # para cada X en

Grupo II. Para cada q en Q F , p en Q, y X , Y y Z en : Lista A qX ZqX q# Zq# Lista B Yp pZY Yp# pZY # si (q, X ) = (p, Y , R) si (q, X ) = (p, Y , L) si (q, B) = (p, Y , R) si (q, B) = (p, Y , L)

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

17 / 96

Grupo III. Para cada q en F , y X e Y en : Lista A XqY Xq qY Grupo IV Lista A q## Lista B # para cada q en F . Lista B q q q

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

18 / 96

Se dice que (x , y ) es una solucin parcial al PCPM con listas A y B si x es un prejo de y , y x e y son la concatenacin de cadenas correspondientes de las listas A y B, respectivamente. Si xz = y , entonces z se conoce como el residuo de (x , y ). Supngase que a partir de la descripcin instantnea q0 w existe una sucesin de k DIs ms. Se arma que existe una solucin parcial
(x , y ) = (#q0 w #1 q1 1 # #k1 qk1 k1 #, #q0 w #1 q1 1 # #k qk k #).

Ms an, sta es la nica solucin parcial cuya cadena ms larga es tan grande como |y |. La armacin anterior resulta fcil de probar por induccin sobre k. Para k = 0, es trivial. ya que el par (#, #q0 w #) debe ser elegido primero.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

19 / 96

Supngase que la armacin es verdadera para algn k y que qk no est en F . Se puede demostrar fcilmente que el enunciado es verdadero para k + 1. El residuo de la pareja (x , y ) es z = k qk k #. Los siguientes pares deben escogerse de tal manera que sus cadenas a partir de la lista A formen z. No importa qu smbolos aparezcan a la derecha e izquierda de qk , existe a lo ms una pareja en el Grupo II que permitir a la solucin parcial continuar despus de haber pasado por qk . Esta pareja representa, de forma natural, el movimiento de M a partir de la DI k qk k .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

20 / 96

Los otros smbolos de z obligan a elegir elementos del Grupo I. Ninguna otra opcin permitir a z componerse de elementos en la lista A. As, se puede obtener una nueva solucin parcial, (y , y k+1 qk+1 k+1 #). Se ve directamente que k+1 qk+1 k+1 es la DI que M alcanza en un movimiento partiendo de k qk k . Tambin, no existe otra solucin parcial cuya longitud de la segunda cadena sea igual a |y k+1 qk+1 k+1 #|. Adems, si qk est en F , es sencillo encontrar parejas de los Grupos I y III las cuales al ser precedidas por la solucin parcial (x , y ) y seguidas por la pareja del Grupo IV, produzcan una solucin al PCPM con listas A y B.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

21 / 96

As, si M comenz con una DI q0 w , alcanza un estado de aceptacin, la instancia del PCPM con listas A y B tiene solucin. Si M no alcanza un estado de aceptacin, ninguna pareja de los Grupos III o IV podra utilizarse. Por lo tanto, podran existir soluciones parciales, pero la cadena de B debera exceder a la cadena de A en longitud, luego, ninguna solucin es posible. Se concluye que la instancia al PCPM tiene una solucin si y slo si M con entrada w termina en un estado de aceptacin. Como la construccin puede llevarse a cabo para M y w arbitrarias, se sigue que si existiera un algoritmo para resolver el PCPM, entonces existira un algoritmo para reconocer a Lu , lo que contradice el Teorema 8.5.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

22 / 96

Ejemplo:
Sea M = ({q1 , q2 , q3 }, {0, 1, B}, {0, 1}, , q1 , B, {q3 }), y esta denida como: qi q1 q2 q1 (qi , 0) (q2 , 1, R) (q3 , 0, L) (qi , 1) (q2 , 0, L) (q1 , 0, R) (qi , B) (q2 , 1, L) (q2 , 0, R)

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

23 / 96

Sea w = 01. Se construye una instancia del MPCP con listas A y B. EL primer par es # para lista A y #q1 01# para la lista B. El resto de los pares son: Grupo I Lista A 0 1 # Lista B 0 1 #

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

24 / 96

Grupo II Lista A q1 0 0q1 1 1q1 1 0q1 # 1q1 # 0q2 0 1q2 0 q2 1 q2 # Lista B 1q2 q2 00 q2 10 q2 01# q2 11# q3 00# q3 10# 0q1 0q2 # de de de de de de de de de (q1 , 0) = (q2 , 1, R) (q1 , 1) = (q2 , 0, L) (q1 , 1) = (q2 , 0, L) (q1 , B) = (q2 , 1, L) (q1 , B) = (q2 , 1, L) (q2 , 0) = (q3 , 0, L) (q2 , 0) = (q3 , 0, L) (q2 , 1) = (q1 , 0, R) (q2 , B) = (q2 , 0, R)

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

25 / 96

Grupo III Lista A 0q3 0 0q3 1 1q3 0 1q3 1 0q3 1q3 q3 0 q3 1 Lista B q3 q3 q3 q3 q3 q3 q3 q3

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

26 / 96

Grupo IV Lista A q3 ## Lista B #

Note que M acepta la entrada w = 01 por la secuencia de DIs: q1 01, 1q2 1, 10q1 , 1q2 01, q3 101.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

27 / 96

Veamos si existe una solucin para el MPCP. El primer par da una solucin parcial (#, #q1 01#). ... . El resultado de la solucin parcial es (#q1 0, #q1 01#1q2 ). Es resto es 1#1q2 . Los siguientes tres pares escogidos son (1, 1), (#,#) y (1,1). La solucin parcial se convierte en (#q1 01#1, #q1 01#1q2 1#1). El resto es q2 1#1. Continuando con el argumento, vemos que slo la solucin parcial, la longitud de la segunda cadena es 14, es (x , x 0q1 #1), donde x = #q1 01#1q2 1#1.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

28 / 96

Aqu, aparentemente se tiene una eleccin, porque el siguiente par a usar es (0,0) o (0q1 #, q2 01#). En el primer caso se tiene a (x 0, x 0q1 #10) como solucin parcial. Pero esta solucin parcial es un callejon sin salida". No hay pares que se puedan aadir para hacer otra solucin parcial, as, seguramente, esto no puede llevar a una solucin. De manera similar, continuamos forzando para alzanzar una solucin, escogemos un par particular para continuar cada solucin parcial.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

29 / 96

Finalmente, alcanzamos la solucin parcial (y , y 1#q3 10), donde y = #q1 01#1q2 1#10q1 #1q2 0. Ya que q3 es un estado nal, podemos ahora usar pares en los grupos I, III y IV para encontrar una solucin a la instancia del MPCP. Los pares escogidos son (1,1), (#,#), (q3 1, q3 ), (0,0), (1,1), (#,#), (q3 0, q3 ), (1, 1), (#, #), (q3 1, q3 ), (#, #), (q3 ##, #). As, la palabra ms corta que se puede componer con las correspondientes cadenas de la lista A y B, comenzando con el par 1 es #q1 01# 1q2 1# 10q1 # 1q2 01# q3 101# q3 01# q3 1# q3 ##.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

30 / 96

Una aplicacin del PCP


El PCP se puede usar para demostrar que una gran variedad de problemas son indecidibles. A continuacin, se da slo una aplicacin: la indecibilidad de la ambigedad para gramticas libres de contexto.

Teorema (8.9)
Es indecidible saber si una GLC arbitraria es ambigua.

Demostracin:
Sean A = w1 , w2 , ..., wn y B = x1 , x2 , ..., xn dos listas de palabras

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

31 / 96

LA = {wi1 wi2 wim aim aim1 ai1 |m 1}

sobre un alfabeto nito . Sean a1 , a2 , ..., an nuevos smbolos. Sean


LA = {wi1 wi2 wim aim aim1 ai1 |m 1}

y
LB = {xi1 xi2 xim aim aim1 ai1 |m 1}.

Sea G la GLC ({S, S1 , S2 }, {a1 , ..., an }, P, S),

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

32 / 96

donde P contiene las producciones S SA , S SB y para 1 i n, SA wi SA ai , SA wi ai , SB xi SB ai , y SB xi ai . La gramtica G genera LA LB . Si la instancia (A, B) del PCP tiene una solucin, por decir, i1 , i2 , ..., im , entonces existe una palabra xi1 xi2 xim aim aim1 ai1 en LA que es igual a la palabra wi1 wi2 wim aim aim1 ai1 en LB . Esta palabra tiene una derivacin ms a la izquierda que comienza con S SA , y otra que comienza con S SB . Por lo tanto, en este caso G es ambigua.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

33 / 96

Recprocamente, supngase que G es ambigua. Como las as imponen las producciones usadas, es fcil mostrar que cualquier palabra derivada a partir de SA tiene slo una derivacin ms a la izquierda a partir de SA . De manera similar, ninguna palabra derivada a partir de SB tiene ms de una derivacin ms a la izquierda a partir de SB . As, debe cumplirse que alguna palabra tenga derivaciones ms a la izquierda a partir de ambas, SA y SB . Si esta palabra es yaim aim1 ai1 , donde y est en , entonces i1 , i2 , ..., im es una solucin al PCP.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

34 / 96

As, G es ambigua si y slo si la instancia (A, B) del PCP tiene una solucin. Luego, el PCP se ha reducido al problema de ambigedad de las GLC. Esto es, si existiera un algoritmo para e l ltimo problema, se podra construir un algoritmo para el PCP, lo que por el Teorema 8.8 no existe. As, el problema de ambigedad para las GLCs es indecidible.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

35 / 96

8.6 Clculos vlidos e invlidos de las MT: una herramienta para probar problemas de los LLC indecidibles

Mientras el PCP puede reducirse fcilmente a la mayor parte de los problemas indecidibles conocidos acerca de los LLC, existe un mtodo ms directo que resulta instructivo. En esta seccin, se muestran reducciones directas del problema de pertenencia para MT a varios problemas acerca de LLC. Para hacer esto, es necesario introducir los conceptos de clculos vlidos e invlidos de una MT.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

36 / 96

Un clculo vlido en una MT M = (Q, , , , q0 , B, F ), es una cadena R R w1 #w2 #w3 #w4 # tal que: 1) cada wi es una DI de M, es decir, una cadena en Q que no termina con B, 2) w1 es una DI inicial de la forma q0 x con x , 3) wn es una DI nal, es decir, una en F , y 4) wi wi+1 para 1 i < n
M

Sin prdida de generalidad, se puede suponer que Q y son disjuntos, y que # no est ni en Q ni en .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

37 / 96

El conjunto de clculos invlidos en una MT es el complemento del conjunto de clculos vlidos con respecto al alfabeto Q {#}. Los conceptos de clculos vlidos e invlidos son tiles para probar muchas propiedades de los LLC candidatos a ser indecidibles. La razn es que el conjunto de clculos invlidos es un LLC y el conjunto de clculos vlidos es la interseccin de dos LLC.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

38 / 96

Lema (8.6)
El conjunto de clculos vlidos en una mquina de Turing M es la interseccin de dos LLC, L1 y L2 , las gramticas para estos LLC se pueden construir de manera efectiva a partir de M.

Demostracin
Sea M = (Q, , , , q0 , B, F ) una MT. Ambos LLC consistirn de cadenas de la forma x1 #x2 # #xm #. Se usa L1 para imponer la condicin de que xi (xi+1 )R para i impar y L2 para hacer que se cumpla la condicin xiR xi+1 para i par. Tambin, L2 impone la condicin de que x1 es una DI inicial. El hecho de que xm sea una DI nal o su inversa est determinado por L1 o L2 dependiendo de si m es impar o par, respectivamente. Entonces L1 L2 es el conjunto de clculos vlidos de M.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

39 / 96

Para empezar, sea L3 = y #z R |y z. Es sencillo construir una AP P que acepte L3 .


M

El autmata P lee y , la entrada hasta el smbolo #, vericando en su control nito que y sea de la forma Q . En el proceso, P coloca en el tope de su pila la DI z de tal forma que y z, donde y es la entrada hasta antes del smbolo #. Esto es, cuando la entrada a P es un smbolo de , P coloca dicho smbolo en el tope de la pila. Si la entrada es un estado q en Q, P almacena q en el control nito y lee el smbolo siguiente de la entrada, por decir X (si el smbolo siguiente es #, P toma X como B). Si (q, X ) = (p, Y , R), entonces P coloca Yp en el tope de la pila.
M

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

40 / 96

Si (q, X ) = (p, Y , L), sea Z el smbolo que est en el tope de la pila. Entonces P reemplaza Z por pZY (pero si el ltimo smbolo de la entrada que fue leido es #, y Y = B, slo se reemplaza Z por pZ , o por p si Z es tambin B). Despus de leer #, P compara cada smbolo de la entrada con el smbolo que est en el tope de la pila. Si son diferentes, P no tiene movimiento siguiente y ah queda. Si son iguales, P elimina el smbolo de la pila. Cuando la pila se ha vaciado, P acepta su entrada.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

41 / 96

Ahora, sea L1 = (L3 #) ({} F #). Por los Teoremas 5.4 y 6.1, existe un algoritmo que construye una GLC para L1 . De manera similar, un AP para L4 = y R #z|y z. La construccin de G2 para L2 = q0 #(L4 #) ( F #) es sencilla entonces, y por el Teorema 6.1, existe un algoritmo para construir una GLC G2 para L2 . Ahora, L1 L2 es el conjunto de los clculos vlidos para M.
M

Esto es, si x1 #x2 # #xm # est en L1 L2 , entonces L1 requiere que xi (xi+1 )R para i impar; L2 requiere que x1 sea inicial, y xiR xi+1 para i par. El que la ltima DI tenga un estado de aceptacin est determinado por L1 para m impar y por L2 para m par.
M M

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

42 / 96

Teorema (8.10)
Es indecidible saber si, para gramticas arbitrarias G1 y G2 , el conjunto L(G1 ) L(G2 ) es vaco.

Demostracin
Por el Lema 8.6, se pueden construir a partir de M gramticas G1 y G2 tales que L(G1 ) L(G2 ) es el conjunto de los clculos vlidos en M. Si existe un algoritmo A para decir si la interseccin de los lenguajes de dos GLC es vaca, se puede construir un algoritmo B para decir si L(M) = para una MT M arbitraria.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

43 / 96

Sencillamente, se disea B para construir G1 y G2 a partir de M, como en el Lema 8.6, luego se aplica el algoritmo A para decir si L(G1 ) L( G2 ) es vaca. Si la interseccin es vaca, entonces L(M) = . Si la interseccin es no vaca, entonces L(M) = . Esto es, el problema del vaco para conjuntos r.e. se reduce al problema de la interseccin para GLC. Sin embargo, el algoritmo B no puede existir, ya que L(M) = es indecidible por el Teorema 8.6. Por lo tanto, A no existe, y entonces es indecidible saber si la interseccin de dos LLC es vaca.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

44 / 96

Aunque se requieren dos LLC para representar los clculos vlidos de una mquina de Turing, el conjunto de clculos invlidos es en si un LLC. La razn es que ya no se necesita garantizar simultneamente para cada i que wi wi+1 . Slo se requiere adivinar dnde se produce un error. Es decir, se debe vericar para una i que wi wi+1 es falsa.

Lema (8.7)
El conjunto de clculos invlidos de una mquina de Turing M = (Q, , , , q0 , B, F ) es un LLC.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

45 / 96

Demostracin:
Si una cadena w es un clculo invlido, entonces una de las siguientes condiciones se cumple: 1) w no es de la forma x1 #x2 # #xm #, donde cada xi es una DI de M. 2) x1 no es inicial; esto es, x1 no est en q0 . 3) xm no es nal; es decir, xm no est en F . 4) xi (xi+1 )R es falso para algn i impar. 5) xiR xi+1 es falso para algn i par.
M M

El conjunto de cadenas que satisfacen (1), (2) y (3) es regular, y un AF que lo acepte es fcilmente construible.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

46 / 96

El conjunto de cadenas que satisfacen (4) y (5) son cada uno LLC. Esta contencin se prueba para (4); un argumento similar se usa para probar (5). Un ADP P para (4) selecciona algn xi , no determinsticamente, que sea precedido por un nmero par de #, y mientras lee xi , P almacena en su pila la DI z tal que xi z, con el extremo derecho de z en el tope de la pila. Despus de encontrar # sobre la entrada, P compara z con el siguiente xi+1 . Si z = xi+1 , entonces P lee el resto de su entrada y acepta. El conjunto de clculos invlidos es la unin de dos LLC y un conjunto regular. Por el Teorema 6.1, es un LLC, y una gramtica para este lenguaje se puede construir de manera efectiva.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

47 / 96

Teorema (8.11)
Es indecidible para cualquier GLC G arbitraria si L(G) = .

Demostracin
Dada una MT M arbitraria, se puede construir una GLC G de manera efectiva con alfabeto terminal , tal que L(G) = si y slo si L(M) = . Es decir, por el Lema 8.7, se puede construir una GLC G que genere los clculos invlidos de M, As, si para G arbitraria, L(G) = fuese decidible, entonces se podra decidir si para una M arbitraria, L(M) = , lo cual es una contradiccin.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

48 / 96

Otras consecuencias de la caracterizacin de los clculos para los LLC Teorema (8.12)
Sea G1 y G2 GLC arbitrarias y R un conjunto regular arbitrario. Los siguientes problemas son indecidibles. 1) 2) 3) 4) L(G1 ) = L(G2 ) L(G1 ) L(G2 ) L(G1 ) = R R L(G1 )

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

49 / 96

Demostracin:
Sea G2 una gramtica que genera , donde es el alfabeto terminal de G1 . Entonces (1) y (2) son equivalentes a L(G1 ) = . Fjese R = , y (3) y (4) son equivalentes a L(G1 ) = . As, el problema indecidible de si un LLC es se reduce a los problemas del (1) al (4), y cada uno de estos es indecidible a su vez.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

50 / 96

Ntese que por los Teoremas 5.3 y 5.4, se pueden convertir ADP en GLC, entonces los Teoremas 8.10, 8.11 y 8.12 siguen siendo vlidos si los LLC se representan como ADP en vez de GLC. Tambin, el conjunto regular en el Teorema 8.12 se puede representar por un AFD, AFN o una expresin regular. Debera observarse que L(G) R es decidible. La razn es que L(G) R si y slo si L(G) R = . Pero L(G) R es un LLC, y por lo tanto, se puede decidir si es vaco o no. Existen algunas propiedades adicionales de los lenguajes libres de contexto que se pueden probar como indecidibles al observar que si una MT tiene clculos vlidos sobre un conjunto innito de entradas, su conjunto de clculos vlidos no es, en general, un LLC.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

51 / 96

Sin embargo, primero se modica cada mquina de Turing M, en forma trivial, aadindole dos estados extras cuyo propsito es asegurar que M realice por lo menos dos movimientos en cada clculo. Esto se puede hacer sin alterar el clculo ejecutado por M. El propsito de la modicacin es obligar a que cada clculo vlido contenga por lo menos tres DI y as, asegurar que el conjunto de clculos vlidos sea un LLC si y slo si M acepta un conjunto nito.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

52 / 96

Lema (8.8)
Sea M una mquina de Turing que realiza por lo menos tres movimientos sobre cada entrada. El conjunto de clculos vlidos de M es un LLC si y slo si el conjunto aceptado por M es un conjunto nito.

Demostracin:
Si el conjunto aceptado por M es nito, el conjunto de clculos vlidos de M es nito y por lo tanto, un LLC. Supngase que el conjunto aceptado por M es innito y el conjunto L de clculos vlidos es un LLC. Como M acepta un conjunto innito, existe un clculo vlido
R w1 #w2 #w3 #

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

53 / 96

donde los wi s son DI, y |w2 | es ms grande que la constante n en el Lema de Ogden. Si se marcan los smbolos de w2 como distinguidos. Entonces se puede bombear w2 sin bombear ni w1 ni w3 , y as, obtener un clculo invlido que debe estar en L. Se concluye entonces que el conjunto de clculos vlidos no es un LLC.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

54 / 96

Teorema (8.13)
Es indecidible para GLC G1 y G2 arbitrarias si: 1) L(G1 ) es un LLC; 2) L(G1 ) L(G2 ) es un LLC.

Demostracin:
1) Dada una mquina de Turing M arbitraria, se modica M sin alterar el conjunto aceptado, para que M realice por lo menos dos movimientos en cada entrada. Despus se construye la GLC G que genere los clculos invlidos. Luego, L(G) es un LLC si y slo si M acepta un conjunto nito. 2) Se procede de la misma manera que en (1), pero construyendo GLC G1 y G2 tales que L(G1 ) L(G2 ) sea el conjunto de clculos vlidos de M.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

55 / 96

8.7 Teorema de Greibach

Existe una destacada similitud entre las pruebas de indecibilidad en la Teora de los Lenguajes. Esto sugiere la existencia de un Teorema de Rice anlogo para clases de lenguajes tales como los LLC, y en efecto, lo existe. Considrese la clase de lenguajes C , tales como los LLC, y considrese un sistema particular (tales como los LLC o los ADP) para interpretar cadenas de longitud nita como nombres de lenguajes.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

56 / 96

Considrese una clase C de lenguajes con la propiedad de que, dados los nombres (e.g., gramticas) de lenguajes L1 y L2 en C y un nombre (e.g., un autmata nito) para un conjunto regular R, se pueden construir de manera efectiva nombres para RL1 , L1 R, y L1 L2 . Entonces se dice que la clase C es cerrrada efectivamente bajo concatenacin con conjuntos regulares y unin. Ms an, supngase que L = es indecidible para la clase C , como es el caso para los LLC. El teorema siguiente muestra que una amplia variedad de problemas son indecidibles para la clase C .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

57 / 96

Teorema (8.14 Teorema de Greibach)


Sea C una clase de lenguajes que es cerrada efectivamente bajo concatenacin con conjuntos regulares y unin, y para la cual = es indecidible para cualquier ja lo sucientemente grande. Sea P cualquier propiedad no trivial que es cierta para todos los conjuntos regulares y que se preserva bajo /a, donde a es un slo smbolo. (Esto es, si L tiene la propiedad P, entonces L/a = {w |wa est en L} tambin la tiene.) Entonces P es indecidible para C .

Demostracin:
Sea L0 un miembro de C para el cual P(L0 ) es falsa donde es lo sucientemente grande para que = sea indecidible.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

58 / 96

Para cualquier L en C , se construye L1 = L0 # #L. El conjunto L1 est en C , pues C es cerrado efectivamente bajo concatenacin con conjuntos regulares y bajo unin. Ahora, si L = , entonces L1 = # , el cual es un conjunto regular, y por lo tanto, P(L1 ) es cierta. Si L = , entonces existe w que no est en L. Por lo tanto, L1 /#w = L0 . Como P se preserva bajo el cociente con un solo smbolo, tambin se preserva bajo el cociente con la cadena #w , mediante induccin sobre |w |. As, P(L1 ) debe ser falsa, o si no, P(L0 ) sera cierta, contrario a la suposicin inicial. Por lo tanto, P(L1 ) es cierta si y slo si L = . As, = para C se reduce a la propiedad P para C , y por lo tanto, P es indecidible para C .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

59 / 96

Aplicaciones del Teorema de Greibach


El Teorema 8.14 puede ser usado, por ejemplo, para mostrar que es indecidible si el lenguaje generado por una GLC es regular. Ntese que este cuestionamiento es diferente a preguntar si el lenguaje generado por dicha GLC es igual a algn conjunto regular R particular, tal y como se hace en el Teorema 8.12.

Teorema (8.15)
Sea G una GLC arbitraria. Es indecidible si L(G) es regular.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

60 / 96

Demostracin:
Los LLC son cerrados efectivamente bajo concatenacin con conjuntos regulares y bajo unin. Sea P la propiedad de que L sea regular. Por el Teorema 8.14, la propiedad de que P es no trivial para los LLC, resulta cierta para todos los conjuntos regulares y se preserva bajo el cociente con un solo smbolo. Ntese que los conjuntos regulares son cerrados efectivamente bajo el cociente con otro conjunto regular. As, por el Teorema 8.14, P es indecidible para LLC.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

61 / 96

El Teorema 8.15 permite demostrar que una propiedad es indecidible al probar que dicha propiedad se preserva bajo el cociente con un solo smbolo. Esto ltimo es a menudo relativamente sencillo de probar como, por ejemplo, la ambigedad inherente.

Lema (8.9)
Sea P la propiedad de que un LLC no es inherentemente ambiguo. Entonces P se preserva bajo el cociente con un solo smbolo.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

62 / 96

Demostracin:
Sea G = (V , T , P, S) una GLC no ambigua. Sea Ga = (V {[A/a]|A est en V }, T , Pa , [S/a]), donde Pa contiene 1) todas las producciones de P, 2) [A/a] si A a est en P, 3) [A/a] [B/a] si A B est en P y . Se arma que L(Ga ) = L(G)/a y que Ga no es ambigua. Para ver esto, primero se muestra con una sencilla induccin que 1) [S/a] si y slo si S a y 2) [S/a] [A/a] si y slo si S A.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

63 / 96

El hecho de que L(Ga ) = L(G)/a se sigue inmediatamente. Supngase que Ga es ambigua. Entonces deben existir dos derivaciones ms a la izquierda 1) [S/a] x y 2) [S/a] x donde = . Pero entonces se tienen en G dos derivaciones ms a la izquierda de la cadena xa, lo cual es una contradiccin. As, Ga no es ambigua. Se concluye entonces que la no ambigedad se preserva bajo el cociente con un solo smbolo.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

64 / 96

Teorema (8.16)
La ambigedad inherente para los LLC es indecidible.

Demostracin:
Por el Teorema 4.7, P es no trivial. Por el Lema 8.9, P se preserva bajo el cociente con un slo smbolo. Es fcil mostrar que P es cierto para todos los conjuntos regulares. Esto es, cada conjunto regular tiene una GLC no ambigua. As, por el Teorema 8.14, la ambigedad inherente para los LLC es indecidible.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

65 / 96

8.8 Introduccin a la Teora de las Funciones Recursivas

Cada mquina de Turing puede pensarse como un medio para calcular una funcin de los enteros a enteros, o bien como un reconocedor de lenguajes. Para toda mquina de Turing M y toda k, existe una (k) funcin fM (i1 , i2 , ..., ik ) que toma k enteros como argumentos y produce una salida entera o no est denida para dichos argumentos. Si M comenz con 0i1 10i2 1 0ik sobre su cinta y termina con 0j k sobre su cinta, entonces se dice que fM (i1 , ..., ik ) = j.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

66 / 96

Si M no para con una cinta que consiste de un bloque de 0s con el (k) resto de las celdas en blanco, entonces fM (i1 , ..., ik ) no est denido. Ntese que la misma mquina de Turing puede pensarse como un reconocedor de lenguajes, un calculador de una funcin con un argumento, un calculador de una funcin diferente con dos argumentos, etc. Si i es una codicacin entera de una MT M, como la descrita en la seccin 8.3, y k se sobreentiende, entonces se escribir fi en lugar de (k) fM .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

67 / 96

Recurdese que una funcin calculada por una mquina de Turing se llama funcin recursiva (parcial). Si est denida para todos los posibles valores de sus argumentos, entonces tambin se conoce como una funcin recursiva total. Las construcciones sobre mquinas de Turing dadas previamente en este captulo y el anterior pueden expresarse como funciones recursivas totales de una sola variable. Esto es, un algoritmo A que toma como entrada la codicacin binaria de una MT M y produce como salida la codicacin binaria de otra MT M puede verse como una funcin g de una variable.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

68 / 96

En particular, sea i el entero que representa a M y j el entero que representa a M . Entonces g(i) = j. Tcnicamente, la MT B que calcula g no es A, pero si en una que convierte su entrada unaria en binaria, simula A y entonces convierte su salida binaria en unaria.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

69 / 96

El Teorema Smn
El Teorema Smn dice que dada una funcin recursiva parcial g(x , y ) de dos variables, existe un algoritmo que se usa para construir, a partir de una MT para g y un valor de x , otra MT la cual, con entrada y , calcula g(x , y ).

Teorema (8.17)
Sea g(x , y ) una funcin recursiva parcial. Entonces existe una funcin recursiva total de una variable, tal que f(x ) (y ) = g(x , y ) para todo x e y . Esto es, si (x ) se entiende como el entero que 1 representa alguna MT Mx , entonces fMx (y ) = g(x , y ).

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

70 / 96

Demostracin:
Sea M la MT que calcula g. Sea A una MT que a partir de la entrada x , escrita en unario, construye una MT Mx que al recibir como entrada a y corre sta a la derecha y escribe 0x 1 a la izquierda; entonces Mx regresa su cabeza hacia el nal izquierdo y simula M. La salida de A es la representacin unaria de un entero Mx que representa a Mx . Entonces A calcula una funcin recursiva total y f(x ) (y ) = g(x , y ). Como prueba de esto, ntese que para cada x , (x ) es un entero que representa a Mx , y para cada x , Mx se disea para producir g(x , y ) cuando se da la entrada y . Como f(x ) es la funcin calculada por Mx , la igualdad f(x ) (y ) = g(x , y ), se sigue.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

71 / 96

El Teorema de recursin
El segundo teorema, llamado el teorema de recursin, arma que toda funcin recursiva total que mapea ndices (enteros que denotan mquinas de Turing) de una funcin recursiva parcial en ndices de funciones recursivas parciales, tiene un punto jo x0 tal que fx0 (y ) = f(x0 ) (y ) para toda y . En otras palabras, si se modican todas las mquinas de Turing, en cierta forma, siempre existe una mquina de Turing Mx0 para la cual la mquina de Turing modicada M(x0 ) calcula la misma funcin que la no modicada. En principio, esto parece imposible, ya que se puede modicar cada mquina de Turing para sumar 1 a la funcin calculada originalmente, entonces se podra decir que f (y ) + 1 = f (y ). Pero ntese que si f (y ) no est denida en ninguna parte, entonces f (y ) + 1 s es igual a f (y ) para toda y .
Curso Bsico de Computacin (Matemticas) 8.1 Indecibilidad 2010 72 / 96

Teorema (8.18)
Para cualquier funcin recursiva total existe un punto x0 tal que fx0 (x ) = f(x0 ) (x ) para toda x .

Demostracin:
Para cualquier entero i se construye una MT que, sobre la entrada x , calcula fi (i) y entonces simula, por medio de la MT universal, la fi (i)-sima MT sobre x . Sea g(i) el ndice de la MT construida. As, para todo i y x , fg(i) (x ) = ffi (i) (x ). (8,3)

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

73 / 96

Obsrvese que g(i) es una funcin total an si fi (i) no est denida. Sea j un ndice de la funcin g. Esto es, j es una codicacin entera para una MT que, dada la entrada i, calcula g(i) y entonces aplica a g(i). Entonces para x0 = g(j) se tiene fx0 (x ) = fg(j) (x ) = ffj (j) (x ) = f(g(j)) (x ) = f(x0 ) (x ). As, x0 es un punto jo del mapeo . Esto es, la MT x0 y la MT (x0 ) calculan la misma funcin.

por (8,3) ya que fj es la funcin g

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

74 / 96

Aplicaciones de los Teoremas de recursin y Smn Ejemplo 8.9


Sea M1 , M2 , ... cualquier enumeracin de todas las mquinas de Turing. No es necesario que sea la enumeracin estndar introducida en la seccin 8.3, pero s que cualquier representacin sea usada por una MT. Mediante un algoritmo se puede convertir aquella representacin en la notacin de 7-tupla introducida en la seccin 7.2, y viceversa. Luego, se puede usar el Teorema de Recursin para mostrar que para algn i, las mquinas Mi y Mi+1 calculan ambas la misma funcin.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

75 / 96

Sea (i) la funcin recursiva total denida como sigue. Se enumeran las MT M1 , M2 , ... hasta encontrar una con codicacin entera como en (8.2). Ntese que los estados de la MT deben considerarse en todos los rdenes posibles para ver si i es una codicacin para esta MT, ya que en la notacin introducida en la seccin 8.3, el orden en el cual los movimientos de los distintos estados est escrito afecta la codicacin. Habiendo encontrado que Mj tiene codicacin i, se enumera una MT ms, Mj+1 , y sea (i) la codicacin para Mj+1 . Entonces el Teorema de Recursin aplicado a esta dice que existe algn x0 para el cual Mx0 y Mx0 +1 denen la misma funcin de una variable.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

76 / 96

Ejemplo 8.10
Dado un sistema formal F , tal como la Teora de Conjuntos, se puede exhibir una mquina de Turing M tal que no existe prueba alguna en F de que M comience con cualquier entrada en particular y pare, y ninguna prueba de que no pare. Se construye M, una mquina de Turing que calcula una funcin de dos entradas g(i, j), tal que
1,

g(i, j) =

si existe prueba en F de que fi (j) no est denida No est denida, en otro caso.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

77 / 96

La mquina M enumera las pruebas en F en algn orden, imprimiendo 1, si una prueba de que la i-sima MT no para con la entrada j se puede encontrar. Ms an, se puede construir M para que si g(i, j) = 1, entonces M para, y M no para, en otro caso. Por el Teorema Smn , existe tal que f(i) (j) = g(i, j). Por el Teorema de recursin, se puede encontrar de manera efectiva un entero i0 tal que fi0 (j) = f(i0 ) (j) = g(i0 , j).

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

78 / 96

Pero g(i0 , j) = 1, y por lo tanto, est denido, si y slo si existe una prueba en F de que fi0 no est denida. As, si F es consistente (i.e., no pueden existir pruebas de una armacin y su negacin), no puede existir una prueba en F en que la i0 -sima MT pare o no pare con una entrada particular cualquiera j.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

79 / 96

8.9 Clculos con Orculos


Es fcil preguntarse que pasara si el problema del vaco, o algn otro problema indecidible, fuera decicidible? Se podra calcular todo entonces? Se debe tener cuidado al tratar de responder la primera pregunta. Si se supone que el problema del vaco es decidible, se cae en un conjunto de suposiciones contradictorio y se puede concluir cualquier cosa. Este problema se evita al denir una mquina de Turing con orculo. Sea A un lenguaje, A . Una mquina de Turing con orculo A es una mquina de Turing con una sla cinta y con tres estados especiales q? , qs y qn . El estado q? se usa para preguntar si una cadena est en el conjunto A.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

80 / 96

Cuando la mquina de Turing entra al estado q? , solicita una respuesta a la pregunta: Est la cadena de smbolos no blancos a la derecha de la cabeza de la cinta en A? La respuesta se da al hacer que el estado de la mquina de Turing cambie, en el siguiente movimiento, a uno de los dos estados qs o qn , dependiendo de si la respuesta es si o no. El calculo contina de manera normal hasta la prxima vez que se entre en el estado q? , cuando el orculo tenga que contestar otra pregunta. Obsrvese que si A es un conjunto recursivo, entonces el orculo puede simularse por otra mquina de Turing, y el conjunto aceptado por la mquina con orculo A es recursivamente enumerable.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

81 / 96

Por otro lado, si A no es un conjunto recursivo y un orculo puede proporcionar la respuesta correcta, entonces la MT con orculo A puede aceptar un conjunto que no es recursivamente enumerable. La mquina de Turing M con orculo A se denota por M A . Un conjunto L es recursivamente enumerable con respecto a A si L = L(M A ) para alguna MT M. Un conjunto L es recursivo con respecto a A si L = (M A ) para alguna MT M A que siempre pare. Dos orculos son equivalentes si cada uno es recursivo con respecto al otro.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

82 / 96

Una jerarqua de los problemas indecidibles


Ahora se puede replantear la pregunta del inicio de la seccin como Cules conjuntos se pueden reconocer dado un orculo para el problema del vaco? Claramente, no todos los conjuntos pueden ser r.e. con respecto al problema del vaco porque existe un nmero incontable de conjuntos y slo un nmero contable de MT. Considrese el orculo S1 = { M |L(M) = }, el cual no es un conjunto r.e. (recurdese que M es la codicacin binaria de una MT M). Ahora considrense las MT con orculo S1 . Estas mquinas tienen un problema de paro que no es recursivo en S1 .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

83 / 96

Despus de denir un orculo para los problemas del vaco de las MT con orculo S1 , se puede desarrollar una jerarqua innita de problemas indecidibles. Ms especcamente, defnase Si+1 = { M |LSi = }. Si+1 es un orculo para resolver el problema del vaco para clculos con respecto a Si . Ahora se pueden clasicar algunos problemas indecidibles (pero no todos) mostrando su equivalencia a un conjunto Si para algn i particular.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

84 / 96

Teorema (8.19)
El problema de pertenencia de las MT sin orculo es equivalente a S1

Demostracin:
Se crea M S1 tal que, dada M como su entrada, construye la codicacin de una MT M que acepta si w no est en L(M) y acepta (0 + 1) en otro caso. La construccin de M se da en el Ejemplo 8.2. La mquina M S1 entra entonces en el estado q? con la codicacin de M a la derecha de su cabeza y acepta si y slo si se entra en qn . As, el problema de pertenencia de las MT sin orculo es recursivo en S1 . Recprocamente, se puede mostrar que existe una mquina de Turing con el problema de pertenencia como orculo, que reconoce S1 .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

85 / 96

Estrictamente hablando, el orculo es Lu . Para mostrar que S1 es recursivo en Lu , se crea una MT M2 que, dada M , construye una nueva MT M que opera como sigue: M ignora su entrada; en vez de esto, M utiliza el par generador para crear todas las parejas (i, j). Cuando se genera (i, j), M simula M para i pasos sobre la j-sima palabra de entrada para M, con las palabras numeradas en el orden habitual. Si M acepta, M acepta su propia entrada. Si L(M) = , entonces L(M ) = . Si L(M) = , entonces M acepta todas sus L propias entradas, en particular. As, M2 u puede preguntarle a su orculo si M acepta , es decir, si M , est en Lu . Si es as, M2 rechaza M. En otro caso, M2 acepta M. As, S1 es recursivo en Lu .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

86 / 96

En seguida, considrese el problema de si L(M) = , donde es el alfabeto de entrada de una MT M. En algn sentido, este problema es ms difcil que el de pertenencia o vaco, porque, como se ver, el problema = es equivalente a S2 , mientras que los problemas del vaco y el de pertenencia son equivalentes a S1 . En tanto que esta diferencia no tiene signicado alguno en trminos prcticos ya que todos estos problemas son indecidibles, los resultados en orden comparativo de dicultad sugieren que cuando se consideren versiones retringidas de los problemas, el problema = es, en realidad, ms difcil que los de pertenencia o vaco.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

87 / 96

Para GLC, los problemas de pertenencia o vaco son decidibles, mientras que, por el Teorema 8.11, el problema de si L(G) = es indecidible. Como otro ejemplo, considrense las expresiones regulares. Los problemas del vaco y de pertenencia son cada uno decidibles ecientemente, en tiempo polinomial sobre la longitud de la expresin, mientras que el problema de si una expresin regular dada r es equivalente a ha sido probado que, casi ciertamente, requiere tiempo exponencial sobre la longitud de r .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

88 / 96

Teorema (8.20)
El problema de si L(M) = es equivalente a S2 .

Demostracin:
S Se crea una MT M3 2 que toma una MT M arbitraria y a partir de ella construye M S1 , sta es una MT con orculo S1 que se comporta S1 como sigue: M enumera las palabras x , para cada x usa el orculo S1 para decir si M acepta a x . La tcnica donde S1 puede usarse para responder la pregunta de la pertenencia fue cubierta en el Teorema 8.19. La mquina M S1 acepta su propia entrada si alguna x no es aceptada por M. As,

L(M S1 ) =

si L(M) = , en otro caso.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

89 / 96

S La mquina M3 2 con entrada M construye M S1 , luego le pregunta a S1 ) = . Si es as, M S2 acepta M, y M S2 su propio orculo, S2 , si L(M 3 3 S rechaza en otro caso. As, M3 2 acepta { M |L(M) = }.

Ahora se debe probar que S2 es recursivo en el problema = . Esto es, sea L el conjunto de codicaciones de mquinas de Turing ordinarias que aceptan todas las cadenas sobre su alfabeto de L entrada. Entonces existe una MT M4 que acepta S2 .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

90 / 96

L Antes de construir M4 , primero se denir un clculo vlido de una MT M S1 usando el orculo S1 . Un clculo vlido es una sucesin de DI, tal como en las mquinas de Turing ordinarias. Sin embargo, si una DI tiene el estado q? , y la siguiente DI tiene el estado qn , entonces M S1 le ha preguntado al orculo si alguna MT N acepta y ha recibido la respuesta no. Para demostrar que esta respuesta es correcta, se inserta un clculo vlido de la MT ordinaria N, mostrando que N acepta alguna entrada particular. Si el siguiente estado es qs , no se inserta clculo alguno de N.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

91 / 96

L Ahora, se describir cmo se comporta M4 con la entrada M S1 . La L mquina M4 crea una MT M ordinaria que acepta todos los clculos invlidos de M S1 . Para vericar que una cadena no es un clculo vlido, M verica si el formato es invlido (como en el Lema 8.7), o si una DI de M S1 no se sigue de un slo movimiento a partir de la DI previa de M S1 en la sucesin, o si un clculo de una MT ordinaria N insertado entre las DI de M con estados q? y qn no es vlido.

La nica parte difcil de vericar es cuando una DI de M S1 tiene el estado q? y la siguiente DI tiene el estado qy . Entonces M debe determinar si si no es la respuesta correcta, entonces estas dos DI no son consecutivas en la sucesin.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

92 / 96

Sea N la MT sobre la cual se hace la pregunta. La mquina M usa el par generador y, cuando se genera (i, j), simula N para i pasos sobre la j-sima entrada. Si N acepta, M determina que L(N) = , entonces si es la respuesta incorrecta. As, dicho clculo no es vlido, y M acepta este clculo. Ahora, M acepta todas las cadenas sobre su alfabeto de entrada si y slo si L(M S1 ) = , esto es, M S1 no tiene clculos vlidos. La L mquina M4 podra preguntar a su orculo si M acepta . La codicacin de M S1 est en S2 si y slo si L(M ) = . As, S2 es recursivo en L .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

93 / 96

Reducibilidad de Turing
A lo largo del captulo, se ha abordado el concepto de reducibilidad, en el cual se ha reducido el lenguaje L1 a L2 encontrando un algoritmo que mapeaba cadenas en L1 en cadenas de L2 y cadenas que no estaban en L1 en cadenas que no estaban en L2 . Este concepto de reducibilidad es a menudo llamado reducibilidad muchos a uno, Una tcnica ms general, se conoce como reducibilidad de Turing, y sencillamente consiste en mostrar que L1 es recursivo en L2 . Si L1 es reducible muchos a uno en L2 , entonces seguramente L1 es Turing-reducible en L2 . Como prueba de esto, supngase que f es una funcin calculable por una MT que siempre para, tal que f (x ) est en L2 si y slo si x est en L1 .

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

94 / 96

Entonces considrese el orculo M L2 que, dada la entrada x , calcula f (x ) y luego, entra en el estado q? con f (x ) a la derecha de su cabeza. La mquina M L2 acepta si y slo si sta entra en qs . Seguramente, L(M L2 ) = L1 , as, L1 es Turing-reducible en L2 . El recproco es falso. Si L1 es Turing-reducible en L2 , y L1 es indecidible, entonces L2 tambin lo es. Si L2 fuese recursivo, entonces el orculo M L2 tal que L(M L2 ) = L1 puede simularse con una MT ordinaria que siempre para. As, se podra usar una reduccin de Turing para mostrar que L2 es indecidible, dado que L1 resultaba indecidible, incluso en circunstancias donde una reduccin muchos a uno no existiera o fuese difcil de encontrar.

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

95 / 96

A pesar de todo, el concepto de reducibilidad muchos a uno tiene sus virtudes. Si L1 es reducible muchos a uno a L2 , y L1 no es r.e., se puede concluir que L2 no es r.e. Sin embargo, esta conclusin no es vlida en la reducibilidad de Turing. Por ejemplo, Lu es un lenguaje no r.e. que sea Turing-reducible al lenguaje r.e. Lu . Se puede reconocer Lu dado Lu como orculo, preguntando si M, w est en Lu y aceptando si y slo si la respuesta es no. Se puede observar que mientras la forma de reducibilidad ms difcil (muchos a uno) permite sacar conclusiones, esto no se puede hacer con la forma ms fcil de reducibilidad (Turing).

Curso Bsico de Computacin (Matemticas)

8.1 Indecibilidad

2010

96 / 96

Vous aimerez peut-être aussi