Curso Básico de Computación -...

58
Curso Básico de Computación 8 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN <[email protected]> 2010 Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 1 / 58

Transcript of Curso Básico de Computación -...

Page 1: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Curso Básico de Computación8 Indecibilidad

Feliú Sagols Troncoso

MatemáticasCINVESTAV-IPN

<[email protected]>

2010

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 1 / 58

Page 2: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

8 IndecibilidadAhora se considera la clase de lenguajes recursivos y recursivamenteenumerables. El aspecto más interesante de este estudio trata delenguajes cuyas cadenas son interpretadas como códigos de instanciasde problemas. Considere el problema de determinar si una MTarbitraria acepta la cadena vacía. Este problema se puede formularcomo un problema de lenguaje codificado por una MT con cadenasde 0’s y 1’s. El conjunto de todas las cadenas que codifican MT’s queaceptan la cadena vacía es un lenguaje que es recursivamenteenumerable pero no recursivo. De esto se concluye que no existenalgoritmos que decidan cuáles MT aceptan cadenas vacías y cualesno.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 2 / 58

Page 3: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

8.1 Problemas

Informalmente se usa la palabra problema para referirse a unapregunta tal como: “¿Es una GLC ambigua?” En el caso del problemade ambig’́uedad, una instancia del problema es una GLC particular.En general, una instancia de un problema es una lista de argumentos,un argumento por cada parámetro del problema. Restringimosnuestra atención a problemas con respuesta Si-No e instanciascodificadas por cadenas sobre algún alfabeto finito, podemostransformar la pregunta de si existe un algoritmo para resolver unproblema a si un lenguaje particular es o no recursivo.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 3 / 58

Page 4: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Considere el problema de ambiguedad para GLC. Llamemos a laversión Si-No del problema AMB. Una versión más general delproblema, llamada FIND, requiere producir una palabra con dos omás árboles de derivación y responde “no” en otro caso. Unalgoritmo para FIND se puede usar para resolver AMB. Si FINDproduce una palabra w , entonces la respuesta es “sí”; si FINDcontesta “no”, entonces AMB también. Recíprocamente, dado unalgoritmo para AMB se produce un algoritmo para FIND. Elalgoritmo primero aplica AMB a la gramática G . Si AMB responde“no” nuestro algoritmo responde “no”. Si AMB responde“sí”, elalgoritmo sistematicamente comienza a generar todas las palabrassobre el alfabeto terminal de G . Tan pronto como se genere unapalabra w , se examina para ver si tiene dos o más árboles dederivación. Note que el algoritmo no comienza a generar palabras amenos que G sea ambigua, de esta manera se encuentra alguna w yse imprime. Así en efecto se tiene un algoritmo.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 4 / 58

Page 5: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

El proceso por el cual se construye un algoritmo para un problema(como FIND), y usa un supuesto algoritmo para otro (AMB), sellama una reducción (de FIND a AMB). En general, cuando se reduceel problema A al problema B se demuestra que B es por lo menos tandifícil como A. Así, en este caso, como en muchos otros, el problemaSi-No AMB no es más fácil que la versión más general del problema.Más tarde se probará que no existe un algoritmo para AMB. Por lareducción de AMB a FIND se concluye que no existe un algoritmopara FIND, ya que la existencia de un algoritmo para FIND implicaríala existencia de un algoritmo para AMB, y sería una contradicción.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 5 / 58

Page 6: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Trabajemos con la codificación de la gramática G . Dado que cadamáquina de Turing tienen un alfabeto fijo, no podemos trabajardirectamente con la notación G = (V ,T ,P, S). Podemos codificareste tipo de 4-tupla utilizando cadenas binarias como sigue. A losmetasímbolos de la 4-tupla, esto es, los paréntesis izquierdo yderecho, los corchetes, la coma y el →, son codificados por 1, 10,100, ...,105, respectivamente. Al i-ésimo símbolo de la gramática sele codifica como 10i+5. En esta codificación, no se puede saber conexactitud cuáles son los símbolos usados por terminales onoterminales.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 6 / 58

Page 7: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Problemas decidibles e indecidiblesUn problema cuyo lenguaje es recursivo se dice decidible. En otrocaso, el problema es indecidible. Es decir, un problema es indecidiblesi no existe un algoritmo que tome como entrada una instancia de unproblema y determine si la respuesta a esa instancia es “sí” o “no”.

Una consecuencia no intuitiva de la definición de “indecidible” es queproblemas con sólo una instancia son trivialmente decidibles.

La teoría de la indecibilidad trata de la existencia o no existencia dealgoritmos para resolver problemas con un número infinito deinstancias.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 7 / 58

Page 8: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Propiedades de lenguajes recursivos y recursivamenteenumerablesUna gran cantidad de teoremas sobre indecibilidad se han probadoreduciendo un problema a otro. Esta reducción involucra combinarvarias máquinas de Turing para formar una máquina compuesta.Ahora describimos informalmente cómo se hacen estasconstrucciones.

Dado un algoritmo (programa para MT que siempre para), se puedepermitir que la MT compuesta ejecute una acción si el algoritmoacepta y otra si rechaza su entrada. No se puede hacer esto si damosuna MT arbitraria en vez de un algoritmo, ya que si la MT rechaza suentrada, puede ser que corra por siempre, y la máquina compuestanunca inicie la siguiente tarea.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 8 / 58

Page 9: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

En los diagramas que usemos para representar máquinas compuestas,una flecha hacia dentro de una caja etiquetada con “inicio” indica laseñal de inicio. Cajas sin señal de inicio se asumen que comienzan afuncionar cuando la maquina compuesta lo hace. Los algoritmostienen dos salidas, “sí” y “no”, que se pueden usar como señal deinicio o como una respuesta para la máquina compuesta. Las MTarbitrarias tienen sólo la salida “sí”, que se usa para los mismospropósitos. Ahora se presentan propiedades básicas de cerradura de laclase de conjuntos recursivos y r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 9 / 58

Page 10: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.1)

El complemento de un lenguaje recursivo es recursivo.

Demostración:Sea L un lenguaje recursivo y M una Máquina de Turing que se paracon todas las entradas y acepta a L. Construya M ′ usando M de talmanera que si M entra en un estado final con la entrada w , entoncesM ′ se para sin aceptar la entrada. Si M se para sin aceptar laentrada, M ′ entra a un estado final. La máquina M ′ es un algoritmoporque siempre ocurre uno de estos eventos, M ′ es un algoritmo.Claramente L(M ′) es el complemento de L y así el complemento de Les un lenguaje recursivo. La construcción de M ′ a partir de M semuestra en la siguiente figura:

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 10 / 58

Page 11: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

MSiNow

Si

No

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 11 / 58

Page 12: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.2)

La unión de dos lenguajes recursivos es recursivo. La unión de doslenguajes recursivamente enumerables es recursivamente enumerable.

Demostración:Sea L1 y L2 lenguajes recursivos aceptados por los algoritmos M1 yM2. Se construye M de modo que primero simula a M1. Si M1 acepta,entonces M acepta. Si M1 rechaza, entonces M simula a M2 y aceptasi y sólo si M2 acepta. Ya que tanto M1 como M2 son algoritmos setiene la garantía que M siempre para. Claramente M acepta a L1∪L2.

Para lenguajes recursivamente enumerables la construcción anteriorno funciona, ya que M1 puede no parar. En cambio M puede simularsimultáneamente M1 y M2 sobre cintas separadas. Si cualquiera delas dos acepta, entonces M acepta. Las siguientes figuras muestranlas dos construcciones.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 12 / 58

Page 13: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

M1

M2

Inicio

Si

wSi

No

Si

(a)

No

M1

M2

Si

Si

Si

w

(b)

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 13 / 58

Page 14: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.3)

Si un lenguaje L y su complemento L̄ son ambos recursivamenteenumerables, entonces L (y por lo tanto L̄) son recursivos.

Demostración:

Sean M1 y M2 que aceptan a L y L̄, respectivamente. Se construye Mcomo en la siguiente figura para simular simultáneamente M1 y M2.

M1

M2

Si

Siw

Si

No

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 14 / 58

Page 15: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

M acepta a w si M1 acepta a w y rechaza a w si M2 acepta a w . Yaque w está en L o L̄, sabemos que exactamente una de las máquinasM1 o M2 la acepta. Así, M siempre dice “sí” o “no”, pero nuncadevuelve ambos resultados. Note que no existe un limite a priori deltiempo que pueden tardar M1 o M2 antes de aceptar, lo cierto que almenos uno de los dos lo hace. Dado que M es un algoritmo queacepta a L, se sigue que L es recursivo.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 15 / 58

Page 16: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Los Teoremas 8.1 y 8.3 tienen consecuencias importantes. Sea L y L̄un par de lenguajes complementarios. Entonces

1) Tanto L como L̄ son recursivos

2) Ninguno de L y L̄ son r.e. o

3) Uno de L y L̄ es r.e. pero no recursivo; el otro no es r.e.

Una técnica importante para demostrar que un problema esindecidible es demostrar por diagonalización que el complemento dellenguaje para el problema no es r.e. Así, se aplica el caso (2) o (3).

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 16 / 58

Page 17: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

8.3 La Máquina Universal de Turing y un problema

indecidible

Ahora usaremos diagonalización para demostrar que un problemaparticular es indecidible. El problema es: “¿La máquina de Turing Macepta la entrada w?” Aqui, tanto M como w son parámetros delproblema. Formalizando el problema como un lenguaje se restringe wsobre el alfabeto {0, 1} y M tiene como alfabeto de la cinta a{0, 1,B}. Como el problema restringido es indecidible, el problemamás general seguramente también es indecidible. Escogemos paratrabajar la versión más restringida para simplificar la codificación dela instancia del problema como cadenas.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 17 / 58

Page 18: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Forma de codificar una máquina de Turing

Para comenzar, codificamos las máquinas Turing con Σ = {0, 1}. Sea

M = (Q, {0, 1}, {0, 1,B}, δ, q1,B, {q2})

una máquina de Turing con el alfabeto entrada {0, 1} y el blancocomo el único símbolo adicional de la cinta. Además, asumimos queQ = {q1, q2, ..., qn} es el conjunto de estados, y que q2 es el únicoestado final. El Teorema 7.10 nos asegura que si L ⊆ (0 + 1)∗ esaceptado por alguna MT, entonces es aceptado por una con alfabeto{0, 1,B}.

Es conveniente denotar a los símbolos 0, 1, B con los sinónimosX1,X2,X3, respectivamente. También a las direcciones L y R por lossinónimos D1 y D2, respectivamente . Entonces un movimientogenérico δ(qi ,Xj) = (qk ,Xl ,Dm) se codifica por la cadena binaria

0i10j10k10l10m (8,1)Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 18 / 58

Page 19: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Un código binario para la máquina de Turing M es

111 código1 11 código2 11

· · ·11 códigor 111 (8,2)

donde cada códigoi es una cadena de la forma (8.1), y cadamovimiento de M se codifica por uno de los códigoi ’s. Losmovimientos no necesitan estar en un order en particular. Cualquiercódigo para M se denota por 〈M〉.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 19 / 58

Page 20: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Cada cadena binaria se puede interpretar como el código de a lo másuna MT; muchas cadenas binarias no son código de ninguna MT.Para ver que la decodificación es única, note que no hay cadenas dela forma (8.1) que tengan dos 1’s seguidos, de tal forma que loscódigoi ’s se pueden encontrar directamente. Si una cadena nocomienza ni termina con tres unos, tiene tres unos en una posicióndiferente del inicio o el final o tiene dos pares de unos que delimitanuna subcadena que no es de la forma 0i10j10k10l10m entonces lacadena no representa a una MT.

El par M y w se representa por una cadena de la forma (8.2) seguidade w . Tal cadena se denota por 〈M ,w〉.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 20 / 58

Page 21: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ejemplo:

Sea M = ({q1, q2, q3}, {0, 1}, {0, 1,B}, δ, q1,B, {q2}) con losmovimientos:

δ(q1, 1) = (q3, 0,R)

δ(q3, 0) = (q1, 1,R)

δ(q3, 1) = (q2, 0,R)

δ(q3,B) = (q3, 1, L)

Así, una cadena denotada por 〈M , 1011〉 es

111010010001010011000101010010011

000100100101001100010001000100101111011

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 21 / 58

Page 22: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Un lenguaje no r.e

Suponga que se tiene una lista de (0 + 1)∗ en orden canónico, dondewi es la i-ésima palabra y Mj es la MT cuyo código, como en (8.2) esel entero j escrito en binario. Imagine una tabla infinita que dice paratoda i y para toda j si wi ∈ L(Mj).La figura ilustra tal tabla, 0significa que wi /∈ L(Mj) y 1 significa wi ∈ L(Mj).

1

0

1

0

0

1

1

1

0

1

0

1

0

0

0

0

1

2 3 4

1

2

3

4 . . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .j

i

Diagonal

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 22 / 58

Page 23: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Construimos un lenguaje Ld usando las entradas de la diagonal de latabla para determinar la pertenencia en Ld . Para garantizar que nohay MT que acepte a Ld , insistimos en que wi ∈ Ld si y sólo si laentrada (i , i) es 0, es decir, si Mi no acepta a wi . Suponga quealguna MT Mj acepta a Ld . Entonces nos enfrentamos a la siguientecontradicción. si wj ∈ Ld , entonces la entrada (j , j) es 0, implica quewj /∈ L(Mj) y contradecimos Ld = L(Mj). Por otra parte, si wj /∈ Ld ,entonces la entrada (j , j) es 1, implica que wj ∈ L(Mj), lo cualtambién contradice Ld = L(Mj). Como wj pertenece o no pertenece aLd , se concluye que la suposición Ld = L(Mj) es falsa. Así, no hayMT en la lista que acepte a Ld , y por el Teorema 7.10, no hay MTque acepte a Ld . Así, se probó

Lema (8.1)

Ld no es r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 23 / 58

Page 24: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

El lenguaje universalDefinimos Lu, el “lenguaje universal” como{〈M ,w〉 | M acepta a w}. Llamamos a Lu “universal” ya que lapregunta de si cualquier cadena particular w ∈ (0 + 1)∗ es aceptadapor cualquier MT particular M es equivalente a la pregunta de si〈M ′,w〉 ∈ Lu, donde M ′ es la MT cuyo alfabeto de la cinta es{0, 1,B} equivalente a M construido como en el Teorema 7.10.

Teorema (8.4)

Lu es recursivamente enumerable.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 24 / 58

Page 25: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Demostración:Vamos a exhibir una máquina de Turing M1 con tres cintas queacepta a Lu. La primera cinta de M1 es la cinta de entrada, y lacabeza de lectura de esa cinta se usa para buscar los movimientos dela MT M cuando recibe el código 〈M ,w〉 como entrada. Note que losmovimientos de M se localizan entre los dos primeros bloques de tres1’s. La segunda cinta de M1 será usada para simular la cinta de M .

El alfabeto de M es {0, 1,B}, de modo que cada símbolo de la cintade M puede ser almacenado en una celda de la segunda cinta de M1.Observe que si no restringieramos el alfabeto de M , tendríamos queusar muchas celdas de la cinta de M1 para simular una de las una delas celdas de M , pero la simulación podría ser llevada a cabo con unpoco más de trabajo. La Tercer cinta contiene el estado de M , con qi

representado por o i . El comportamiento de M1 puede inferirsefácilmente a partir de la codificación de la MT.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 25 / 58

Page 26: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

La existencia de M1 es suficiente para probar el Teorema 8.4. Sinembargo, por los Teoremas 7.2 y 7.10, se puede encontrar una MTcon una cinta semi-infinita y alfabeto {0, 1,B} que acepte a Lu.Llamamos a esta MT Mu, la máquina universal de Turing.

Por el Lema 8.1, el lenguaje diagonal Ld no es r.e. y por lo tanto noes recursivo. Así, por el Teorema 8.1, L̄d no es recursivo. Note queL̄d = {wi | Mi acepta a wi}. Podemos probar que el lenguajeuniversal Lu = {〈M ,w〉 | M acepta a w} no es recursivo reduciendoL̄d a Lu. Así Lu es un ejemplo de un lenguaje que es r.e. pero no esrecursivo. De hecho, L̄d es otro ejemplo de tal lenguaje.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 26 / 58

Page 27: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.5)

Lu no es recursivo.

Demostración:Suponga que A es un algoritmo que reconoce a Lu. Entonces puedereconocer a L̄d de la siguiente manera. Dada una cadenaw ∈ (0 + 1)∗, determine por un sencillo cálculo el valor de i tal quew = wi . El entero i en binario es el código para alguna MT Mi . Se dacomo entrada 〈Mi ,wi〉 al algoritmo A y se acepta a w si y sólo si Mi

acepta a wi . La construcción se muestra en la siguiente figura:

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 27 / 58

Page 28: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ld

LuA

Hipotetico

<M , w > i iSi

No No

w Convertir

Construir algoritmo para

Si

para

Es fácil verificar que el algoritmo construido acepta a w si y sólo siw = wi y wi ∈ L(Mi). Así, se tiene un algoritmo para L̄d . Ya que noexiste tal algoritmo, nuestra suposición, de que el algoritmo A paraLu existe, es falsa. Por lo tanto, Lu es r.e. pero no recursivo.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 28 / 58

Page 29: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

8.4 Teorema de Rice y algunos problemas

indecidibles

Ahora tenemos un ejemplo de un lenguaje r.e que no es recursivo. Elproblema asociado “M acepta a w” es indecidible, y podemos usareste hecho para demostrar que otros problemas son indecidibles.

Ejemplo:

Considérese el siguiente problema: “¿Es L(M) 6= ∅?” Sea 〈M〉 unacodificación de M como en (8.2). Defínanse

Lne = {〈M〉|L(M) 6= ∅} y Le = {〈M〉|L(M) = ∅}.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 29 / 58

Page 30: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Nótese que Le y Lne son complementos uno del otro, como cadacadena binaria denota alguna MT; aquellas con un mal formatodenotarán las MT’s sin movimientos. Todas estas cadenas están enLe. Se afirma que Lne es r.e. pero no recursivo y que Le no es r.e.

Primero se probará que Lne es r.e. construyendo una MT M quereconozca codificaciones de MT’s que aceptan conjuntos no vacíos.Dada una entrada 〈Mi〉, M adivina de manera no determinística unacadena x aceptada por Mi y verifica que, en efecto, Mi acepta a xsimulando Mi sobre la entrada x . Este paso también puede llevarse acabo determinísticamente si se usa la pareja generadora descrita en lasección 7.7. Para cada par (j , k) se simula Mi sobre la j-ésima cadenabinaria (en orden canónico) para k pasos. Si Mi acepta, entonces Macepta 〈Mi〉.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 30 / 58

Page 31: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ahora se mostrará que Le no es recursivo. Supóngase que lo fuera.Entonces se podría construir un algoritmo para Lu, lo que violaría elTeorema 8.5. Sea A un algoritmo que acepta Le. Existe un algoritmoB que, dada 〈M ,w〉, construye una MT M ′ que acepta ∅ si M noacepta w y que acepta (0 + 1)∗ si M acepta a w . El diagrama de M ′

se muestra en la siguiente figura. La máquina M ′ ignora su entrada x ,y en su lugar, simula M sobre la entrada w , aceptando si M acepta aw .

Si

M

M’

Si

x

w

Nótese que M ′ no es B. En vez de esto, B es como un compiladorque toma 〈M ,w〉 como un ”programa fuente” y produce M ′ como un”programa objeto”. Hasta aquí se ha descrito lo que B debe hacer,pero no cómo lo hace.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 31 / 58

Page 32: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

La construcción de B es sencilla, toma 〈M ,w〉 y aisla w . La cadenaw tiene longitud n, por decir, w = a1a2 · · · an. El algoritmo B crean + 3 estados q1, q2, · · · , qn+3 con movimientos

δ (q1,X ) = (q2, $,R) para cualquier X

(imprime el marcador),

δ (qi ,X ) = (qi+1, ai−1,R) para cualquier X y

2 ≤ i ≤ n + 1 (imprime w),

δ (qn+2,X ) = (qn+2,B,R) para X 6= B

(borra sobre la cinta),

δ (qn+2,B) = (qn+3,B, L) ,

δ (qn+3,X ) = (qn+3,X , L) para X 6= B

(encuentra el marcador).

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 32 / 58

Page 33: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Después de producir las codificaciones para estos movimientos, Bsuma n + 3 a los índices de los estados de M e incluye el movimiento

δ(qn+3, $) = (qn+4, $,R)/*comienza M*/

y todos los movimientos de M en su MT generada. La MT resultantetiene un símbolo extra en la cinta $, pero por el Teorema 7.10 sepuede construir M ′ con el alfabeto de cinta {0, 1,B}, y sonseguridad, se puede hacer que q2 sea el estado de aceptación. Estepaso completa el algoritmo B, y su salida es la MT M ′ de la figuraanterior.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 33 / 58

Page 34: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ahora supóngase que el algoritmo A que acepta Le existe. Entoncesse construye un algoritmo C para Lu como en la figura siguiente:

< >M, wSi

ABNo

C

M’ Si

No

Si M acepta a w , entonces L(M ′) 6= ∅; así A dice “no” y C dice “si”.Si M no acepta a w , entonces L(M ′) = ∅, A dice “si” y C dice “no”.Por el Teorema 8.5, C no existe, luego, A tampoco existe. Así, Le noes recursivo. Si Lne fuera recursivo, por el Teorema 8.1, Le lo seríatambién. De esta manera, Lne es r.e. pero no recursivo. Si Le fueser.e., entonces por el Teorema 8.3, Le y Lne serían recursivos. Luego,Le no es r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 34 / 58

Page 35: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ejemplo:Considere el lenguaje

Lr = {〈M〉 | L(M) es recursivo}

yLnr = {〈M〉 | L(M) no es recursivo}

Note que Lr no es {〈M〉 | M se para con todas las entradas}, aunqueéste incluye el último lenguaje. Una MT M puede aceptar un lenguajerecursivo aún cuando M pueda ciclarse con algunas palabras que noestán en L(M); algunas otras MT equivalentes a M deben pararsiempre. Afirmamos que ni Lr ni Lnr son r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 35 / 58

Page 36: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Suponga que Lr fue r.e. Entonces podemos construir una MT para L̄u

la cual sabemos que no existe. Sea Mr la MT que accepta a Lr .Podemos construir un algoritmo A que tome como entrada a 〈M ,w〉y produzca como salida una MT M ′ tal que

L(M ′) =

{∅ si M no acepta a wLu si M acepta a w

Note que Lu no es recursivo, de esta manera M ′ acepta un lenguajerecursivo si y sólo si M no acepta a w . El plano de M ′ se muestra enla siguiente figura:

SiuM

InicioM

M’

Si

x

w

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 36 / 58

Page 37: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Dado A y Mr se puede construir una MT que acepte a L̄u, en lasiguiente figura se muestra el comportamiento.

SiM, w rMA

M’ Si< >

Con la entrada 〈M ,w〉 la MT usa A para producir M ′, usa Mr paradeterminar si el conjunto aceptado por M ′ es recursivo, y acepta si ysólo si L(M ′) es recursivo. Pero L(M ′) es recursivo si y sólo siL(M ′) = ∅, lo que significa que M no acepta a w . Así la MT de lafigura anterior acepta a 〈M ,w〉 si y sólo si 〈M ,w〉 está en L̄u.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 37 / 58

Page 38: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Para Lnr , suponga que tiene una MT Mnr que acepta a Lnr . Entoncesse puede usar Mnr y un algoritmo B, para aceptar L̄u. B toma comoentrada a 〈M ,w〉 y produce como salida una MT M ′ tal que

L(M ′) =

{Σ∗ si M acepta a wLu si M no acepta a w

Así M ′ acepta un lenguaje recursivo si y sólo si M acepta a w . M ′, lacual debe producir B, se muestra en la siguiente figura

Si

(a)

w

x

Si

M

uMM’

Si

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 38 / 58

Page 39: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Y una MT que acepte a L̄u dados B y Mnr se muestra en

(b)

M, w M nr

M’ Si SiB< >

La MT anterior acepta 〈M ,w〉 si y sólo si L(M ′) no es recursivo, oequivalentemente, si y sólo si M no acepta a w . Es decir, la MTacepta a 〈M ,w〉 si y sólo si 〈M ,w〉 está en L̄u. Como ya tenemosdemostrado que no existe tal MT, la suposición de que Mnr existe esfalsa. Y se concluye que Lnr no es r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 39 / 58

Page 40: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema de Rice para conjuntos de índice recursivoEn el ejemplo anterior se demostró que no se puede decidir si elconjunto aceptado por una MT es vacío o recursivo. La técnica de lademostración también se puede usar para demostrar que no se puededecidir si el conjunto aceptado es finito, infinito, regular, libre decontexto, si tiene un número par de cadenas, etc. Entonces ¿quépodemos decidir acerca del conjunto aceptado por una MT?

Sea L un conjunto de lenguajes r.e., cada uno de los cuales es unsubconjunto de (0 + 1)∗. Se dice que L es una propiedad de loslenguajes r.e. Un conjunto L tiene la propiedad L si L es un elementode L. L es una propiedad trivial si L es vacío o si L consiste de todoslos lenguajes r.e. Sea LL el conjunto {〈M〉 | L(M) ∈ L}

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 40 / 58

Page 41: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.6 Teorema de Rice)

Cualquier propiedad no trivial L de los lenguajes r.e. es indecidible.

Demostración:Sin pérdida de generalidad asumimos que ∅ no está en L (en otrocaso considere L). Como L es no trivial, existe L con la propiedad L.Sea ML una MT que acepta a L. Suponga que L es decidible.Entonces existe un algoritmo ML que acepta a LL. Usamos ML y MLpara construir un algoritmo para Lu. Primero construya un algoritmoA que tome 〈M ,w〉 como entrada y produzca como salida a 〈M ′〉,donde L(M ′) está en L si y sólo si M acepta a w .El diseño de M ′ se muestra en la siguiente figura:

MSi

LSiw

x

Si

M’

MInicio

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 41 / 58

Page 42: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Primero M ′ ignora todas las entradas y simula M en w . Si M noacepta a w , entonces M ′ no acepta a x . Si M acepta a w , entoncesM ′ simula a ML en x , aceptando a x si y sólo si ML acepta a x . Así,M ′ acepta a ∅ o L dependiendo de si M acepta w o no.

Podemos usar la máquina ML hipotética para determinar si L(M ′)está en L. Como L(M ′) está en L si y sólo si 〈M ,w〉 está en Lu, setiene un algoritmo que reconoce a Lu, lo cual es una contradicción.Así, L debe ser indecidible.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 42 / 58

Page 43: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

El Teorema 8.6 tiene una gran variedad de consecuencias, algunas seresumen en el siguiente corolario.

CorolarioLas siguientes propiedades de los conjuntos r.e. no son decidibles :a) vacuidadb) finitudc) regularidadd) libertad de contexto

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 43 / 58

Page 44: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema de Rice para conjuntos de índice recursivamenteenumerableLa condición bajo la cual un conjunto LL es r.e. es mucho máscomplicada. Se debe demostrar que LL es r.e. si y sólo si L satisfacelas siguientes condiciones:

1) Si L está en L y L ⊆ L′, para algún L′ r.e., entonces L′ estáen L (la propiedad de contención).

2) Si L es un lenguaje infinito en L, entonces existe unsubconjunto finito de L en L.

3) El conjunto de lenguajes finitos en L es enumerable, en elsentido que existe una MT que genera la (posible) cadenainfinita código1#código2#..., donde códigoi es un código para eli-ésimo lenguaje infinito en L (en cualquier orden). El códigopara el lenguaje finito {w1,w2, ...,wn} es justo w1,w2, ...,wn.

Probemos estás caracterizaciones con una serie de lemas.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 44 / 58

Page 45: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Lema (8.2)

Si L no tiene la propiedad de contención, entonces LL no es r.e.

Demostración:Generalizamos la demostración que Lnr no es r.e. Sea L1 en L,L1 ⊆ L2, de modo que L2 no está en L. Se construye el algoritmo Aque toma como entrada 〈M ,w〉 y produce como salida la MT M ′ conel comportamiento que se muestra en la siguiente figura:

Inicio

2M

M 1

Si

Si

Si

wx Si

M’

M

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 45 / 58

Page 46: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

donde M1 y M2 aceptan a L1 y L2 respectivamente. Si M acepta a w ,entonces se inicia M2, y M ′ acepta a x si x está en L1 o L2. Si M noacepta a w , entonces M2 nunca empieza, de esta manera M ′ aceptaa x si y sólo si x está en L1. Como L1 ⊆ L2,

L(M ′) =

{L2 si M acepta a wL1 si M no acepta a w

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 46 / 58

Page 47: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Así, L(M ′) está en L si y sólo si M no acepta a w . Se deja al lector eldiseño del compilador A que toma a 〈M ,w〉 como entrada y lasconecta con la máquina de Turing fija M1 y M2 para construir M ′. Yaconstruido A, se puede usar a MT ML de LL para aceptar a L̄u, comose muestra en la siguiente figura:

M, w< >SiSiM’

A ML

Esta MT acepta a 〈M ,w〉 si y sólo si M ′ acepta un lenguaje en L, oequivalentemente, si y sólo si M no acepta a w . Así L̄u sería r.e.Como esto último no es cierto concluimos que LL no es r.e.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 47 / 58

Page 48: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Lema (8.3)

Si L tiene un lenguaje infinito L tal que no hay subconjuntos finitosde L que estén en L, entonces LL no es r.e.

Demostración:

Bajo el supuesto que LL es r.e vamos a probar que L̄u es r.e. Sea M1

una MT que acepta a L. Construya el algoritmo A que toma el par〈M ,w〉 como entrada y produce como salida una MT M ′ que aceptaa L si w no está en L(M) y acepta algún subconjunto finito de L enotro caso. El diseño de L′ se muestra en la siguiente figura:

1

x

xde | | movimientosNo "Si" después

Si

wxSi

M’

M M

Inicio, simular para | | movimientos

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 48 / 58

Page 49: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

M ′ simula a M1 con la entrada x . Si M1 acepta a x , entonces M ′

simula a M con w durante |x | movimientos. Si M no acepta a wdespués de |x | movimientos, entonces M ′ acepta a x .

Si w está en L(M), entonces M acepta a w después de algún númerode movimientos, digamos j . Entonces L(M ′) = {x | x ∈ L y |x | < j},el cual es un subconjunto finito de L. Si w no está en L(M), entoncesL(M ′) = L. Por lo tanto, si M no acepta a w , L(M ′) está en L, y siM acepta a w , L(M ′), es un subconjunto finito de L, que no está enL por hipótesis del lema. Con el argumento estandar que hemosvenido manejando se puede probar que si LL es r.e., también lo es L̄u.Como el último no es r.e., se concluye que el primero tampoco loes.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 49 / 58

Page 50: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Lema (8.4)

Si LL es r.e., entonces la lista de códigos binarios para el conjuntofinito en L es enumerable.

Demostración:Usamos el par generador descrito en la Sección 7.7. Cuando (i , j) segenera, tomamos a i como el código binario de un conjunto finito,asumimos que 0 es el código para la coma, 10 es el código para elcero, y 11 es el código para 1. Podemos construir de manera directaa la MT M (i) que acepta exactamente las palabras en el lenguajefinito representado por i . Entonces simula el enumerador para LL conj pasos. Si se tiene impreso a M (i), se imprime el código para elconjunto finito representado por i , es decir, la representación binariade i mismo, seguido de un símbolo delimitador #. En cualquier caso,después la simulación regresa el control al par generador, el cualgenera el siguiente par (i , j).

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 50 / 58

Page 51: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Teorema (8.7)

LL es r.e. si y sólo si

1) Si L está en L y L ⊆ L′, para algún L′ r.e., entonces L′ estáen L.

2) Si L es un lenguaje infinito en L, entonces existe unsubconjunto finito L′ en L que está en L.

3) El conjunto de lenguajes finitos en L es enumerable.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 51 / 58

Page 52: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Demostración:La parte del “sólo sí” son los Lemas 8.2, 8.3 y 8.4. Para la parte del“sí”, suponga que se tiene (1), (2) y (3). Se construye la MT M1 quereconoce a 〈M〉 si y sólo si L(M) está en L. M1 genera pares (i , j)usando el generador de pares. En respuesta a (i , j), M1 simula a M2,que es un enumerador de un conjunto finito en L, para i pasos.Sabemos que M2 existe por la condición (3). Sea L1 el últimoconjunto completamente impreso en la salida de M2. Entonces sesimula a M durante j pasos en cada palabra de L1. Si M aceptatodas las palabras en L1, entonces M1 acepta a 〈M〉 . Si no, M1

genera el siguiente par (i , j).

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 52 / 58

Page 53: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Usamos la condición (1) y (2) para demostrar que L(M1) = LL.Suponga que L está en LL, y sea M cualquier MT con L(M) = L. Porla condición (2), existe un conjunto finito L′ ⊆ L en L. Sea L′ ellenguaje generado después i pasos por M2, y sea j el número máximode pasos que requiere M para aceptar una palabra en L′. Entoncescuando M1 genera (i , j) acepta 〈M〉.

Recíprocamente, suponga que M1 acepta 〈M〉. Entonces existe algún(i , j) tal que dentro de j pasos M acepta cada palabra en algúnlenguaje finito L′ tal que M2 genera a L′ dentro de los primeros ipasos. Entonces L′ está en L, y L′ ⊆ L(M). Por la condición (1),L(M) está en L. De tal manera 〈M〉 está en LL. Concluimos queL(M1) = LL.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 53 / 58

Page 54: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

El Teorema 8.7 tiene una gran variedad de consecuencias. Se resumenalgunas de ellas como corolarios.

Corolario (1)

Las siguientes propiedades de los conjuntos r.e. no son r.e.

a) L = ∅.

b) L = Σ∗.

c) L es recursivo.

d) L no es recursivo.

e) L es un singleton (tiene exactamente un miembro).

f) L es un conjunto regular.

g) L− Lu 6= ∅.

Demostración:En cada caso la condición 1 se viola, excepto para (b), donde (2) seviola, y (g), donde (3) se viola.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 54 / 58

Page 55: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Corolario (2)

Las siguientes propiedades de las conjuntos r.e. son r.e

a) L 6= ∅.

b) L contiene al menos 10 miembros.

c) w ∈ L para alguna palabra fija w.

d) L ∩ Lu 6= ∅.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 55 / 58

Page 56: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Problemas acerca de las máquinas de Turing¿El Teorema 8.6 dice todo sobre si la MT es indecidible? Larespuesta es no. Este teorema tiene que ver con propiedades dellenguaje aceptado, no propiedades de la máquina de Turing misma.Por ejemplo, la pregunta “¿Dada una MT tiene un número par deestados?” es claramente decidible.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 56 / 58

Page 57: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ejemplo:

No se puede decidir si una máquina de Turing con alfabeto {0, 1,B}imprime alguna vez tres 1’s consecutivos sobre su cinta. Para cadamáquina de Turing Mi se construye una máquina M̂i , la cual simulasobre cinta en blanco Mi sobre cinta en blanco. Sin embargo, M̂i usa01 para codificar un 0 y 10 para codificar un 1. Si la cinta de Mi

tiene un 0 en la celda j , entonces M̂i tiene 01 en las celdas 2j − 1 y2j . Si Mi cambia un símbolo, entonces M̂i cambia el correspondiente1 a 0, luego el respectivo 0 a 1. Se puede diseñar M̂i para que nuncatenga tres 1’s consecutivos sobre su cinta. Más aún, M̂i puedemodificarse para que si Mi acepta, M̂i imprima tres 1’s consecutivos ypare. Así, M̂i imprime tres 1’s consecutivos si y sólo si Mi acepta ǫ.Por el Teorema 8.6, no se puede decidir si una MT acepta ǫ, ya queel enunciado “ǫ está en L” no es trivial. Así, la pregunta de saber siuna MT arbitraria imprime alguna vez tres 1’s consecutivos no esdecidible.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 57 / 58

Page 58: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/ocho.pdf · aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero

Ejemplo:¿Es decidible si una MT que inicia sobre una cinta en blanco, visitacualquier celda cuatro o más veces?. Si la máquina de Turing nuncavisita una celda cuatro o más veces, entonces cada secuencia decruce (secuencia de estados en los cuales la frontera entre celdas esatravezada, asumiendo cambio de estados antes de que la cabeza semueva) es de longitud a lo más tres. Pero hay un número finito desecuencias de cruce de longitud tres o menos. Así puede suceder quela máquina de Turing permanezca dentro de una cantidad fija deceldas de cinta, en cuyo caso las técnicas de autómatas finitosresponden la pregunta, o se repite alguna secuencia de cruce. Pero sialguna secuencia de cruce se repite, entonces la MT se mueve a laderecha con algún patrón facilmente detectable, y la pregunta denuevo es decidible.

Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 58 / 58