Fundamentos de Ciencias de la Computación – Cursos Diego C. Martinez y María Laura Cobo – Primer Cuatrimestre de 2005 Problema de la Detención de MT Un problema de decisión de especial importancia es el “problema de detención de la máquina de Turing” (Halting Problem) Fundamentos de Ciencias de la Computación Problema de Detención de MT (The Halting Problem): Dada una MT T y una cadena α, ¿existe un algoritmo para decidir si T se detendrá comenzando en el estado inicial con α en la cinta? Clase 16: Problema de la detención Primer Cuatrimestre de 2005 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina ¡Problema Insoluble! 1 2 Problema de la Detención de MT Problema de la Detención de MT Alan Turing, a fines de 1930, enunció y demostró que este problema es insoluble. .... # α # MT T Teorema: El problema de la detención de la máquina de Turing no es algorítmicamente soluble. .... Algoritmo DetenciónMT Dato de Entrada: T, α Dato de Salida: Estado Comienzo ..... Devolver Estado con valor “se detiene” o “cicla” Fin Resultados auxiliares a utilizar: Si L es recursivo, entonces su complemento también lo es Turing ha demostrado que este algoritmo NO EXISTE 3 Problema de la Detención de MT En un lenguaje de alto nivel (ej: Pascal) podríamos escribir un simulador de máquinas de Turing. Dada una MT T y una cadena α, podrán ocurrir tres situaciones 4 Intuición de la demostración de Turing Supongamos que el problema es soluble, y el procedimiento EjecYSiempreParar(P,E,Res) recibe una MT P y una entrada E, y simula P sobre E. 1. El cómputo de T es exitoso; el simulador dará como salida el resultado de la evaluación y se detendrá. Si P se detiene con la entrada E, devuelve “Sí”. Si P entra en ciclo infinito, retorna “No”. 2. T no puede computar el valor para α, y se detendrá (ej: imprimiendo un mensaje). P es una descripción codificada de una Máquina de Turing 3. T no se detiene y cicla. El simulador también lo hará. ¡He aquí donde el problema de la detención se hace presente! 5 6 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Fundamentos de Ciencias de la Computación – Transparencias de Clase”. Dr. Chesñevar, Mg. Martínez , Mg. Cobo - Universidad Nacional del Sur 2002-2005. Fundamentos de Ciencias de la Computación – Cursos Diego C. Martinez y María Laura Cobo – Primer Cuatrimestre de 2005 Intuición de la demostración de Turing Intuición de la demostración de Turing En particular, si la entrada es la misma descripción, es válido invocar a: Procedure Diagonal(X): Repetir EjecYSiempreParar(X,X,Res) Hasta Res=No EjecYSiempreParar(P,P,Res) En este caso nos dice si la MT P se detiene o no comenzando con la cadena P en la cinta. El procedimiento Diagonal para EjecYSiempreParar responde “No” (X cicla) sssi El procedimiento Diagonal cicla infinitamente sssi EjecySiempreParar responde “Si” (X se detiene) Consideremos el siguiente algoritmo, que cicla infinitamente en un caso en particular... 7 Intuición de la demostración de Turing 8 Intuición de la demostración de Turing ¿Qué pasa si ejecutamos Diagonal(Diagonal)? Procedure Diagonal(X): Repetir EjecYSiempreParar(X,X,Res) Hasta Res=No Procedure Diagonal(Diagonal): Repetir EjecYSiempreParar(Diagonal,Diagonal, Res) Hasta Res=No Diagonal se detiene si X cicla El procedimiento EjecYSiempreParar cicla) Diagonal cicla infinitamente si X se detiene Diagonal para sssi responde “No” (Diagonal El procedimiento Diagonal cicla infinitamente sssi EjecySiempreParar responde “Si” (Diagonal se detiene) 9 Intuición de la demostración de Turing Formalizando la intuición de Turing ¿Qué pasa si ejecutamos Diagonal(Diagonal)? Sea el lenguaje H={“Mw” | la máquina de Turing M se detiene sobre el input w}. Procedure Diagonal(Diagonal): Repetir EjecYSiempreParar(Diagonal,Diagonal, Res) Hasta Res=No H es recursivo enumerable (pues la MUT justamente se detiene cuando w es aceptado por M). Diagonal se detiene si Diagonal cicla ¿Será H recursivo? Si lo fuera, existiría una MT M0 que decide si M se detiene al procesar w (esta máquina M0 resolvería el problema de la detención). Si H es recursivo, ent. el lenguaje H1={“M” | la MT M para sobre el input M} también lo es. Diagonal cicla si Diagonal se detiene Esto es absurdo, y proviene de asumir que existe el algoritmo para resolver el problema de la detención. Luego el problema de la detencion es insoluble. 10 11 12 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Fundamentos de Ciencias de la Computación – Transparencias de Clase”. Dr. Chesñevar, Mg. Martínez , Mg. Cobo - Universidad Nacional del Sur 2002-2005. Fundamentos de Ciencias de la Computación – Cursos Diego C. Martinez y María Laura Cobo – Primer Cuatrimestre de 2005 Formalizando la Intuición de Turing Formalizando la Intuición de Turing Si Supongamos que hubiera solución para el problema de la detención H1={“M” | la máquina de Turing M para sobre el input M} Puedo definir un lenguaje recursivo H={“Mw” | M para con input w}. es recursivo también lo es su complemento CH1 (por teorema antes visto): El lenguaje H1 ⊂H , con H1={“M” | M para con input M} también sería recursivo... CH1={w | o bien w no codifica una MT, o bien w=Cod(M) tal que w∉L(M)}. Casualmente, el lenguaje CH1 es análogo a nuestro procedimiento Diagonal, y el último paso de nuestra prueba. ... ¿Puede CH1 ser recursivo? 13 Formalizando la Intuición de Turing El complemento de H1 es CH1 = Σ* - H1. CH1={w | o bien w no codifica una MT, o bien w=Cod(M) tal que w∉L(M)}. Si H1 es recursivo, entonces CH1 debería serlo (por propiedad) 14 Formalizando la Intuición de Turing ¿ Cod(M*)∈ CH1 ? CH1={w| w no codifica una MT, o bien w=Cod(M) tal que la MT M no se detiene con input w}. •Por def. de CH1 , ¿Puede CH1 ser recursivo? Veamos que CH1 no es recursivo, ¡ni siquiera r.e.! •Por def. de r.e., si M* la aplicamos a Cod(M*), se tiene que Cod(M*)∈CH1 sssi M* no acepta Cod(M*). Cod(M*)∈CH1 sssi M* acepta Cod(M*). Supongamos que M* es una MT que hace que CH1 sea r.e. M* para si w∈ CH1, M* no necesariamente para si w ∉ CH1 Este absurdo partió de suponer que M0 existe. Luego M0 no existe, y el problema de la detención es insoluble. Entonces ¿ Cod(M*)∈ CH1 ? 15 Funciones Recursivas Parciales y Maq. de Turing Funciones TuringComputable Funciones Recursivas Parciales Problema de la Detención Función de Inmortalidad 16 Reducibilidad: PD1 ∈ PD2 - Repaso Dados dos problemas de decisión PD1 y PD2, diremos que PD1 se reduce a PD2 si un algoritmo usado para solucionar PD2 puede usarse para construir la solución para PD1 (notación PD1 PD2). PD1 PD2 (Ver Apunte) ***#...#*** Existe un equivalente al problema de la detención en todos los formalismos equivalentes mencionados en la teoría. 17 ***#...#*** 18 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Fundamentos de Ciencias de la Computación – Transparencias de Clase”. Dr. Chesñevar, Mg. Martínez , Mg. Cobo - Universidad Nacional del Sur 2002-2005. Fundamentos de Ciencias de la Computación – Cursos Diego C. Martinez y María Laura Cobo – Primer Cuatrimestre de 2005 Reducibilidad: PD1 Teorema de Reducibilidad - Repaso PD2 - Repaso Formalmente: PD1 ∈ PD2 si ∃ MT M que toma como entrada una codificación de una instancia I1∈D1 de PD1 y devuelve I2 ∈D2, instancia de PD2, tq. si I1 ∈SI1 ent. I2 ∈SI2 y si I1 ∈NO1 ent. I2 ∈NO2 Teorema: Sean PD1 y PD2 prob. de decisión: (1) Si PD1 ∈ PD2, también es soluble. y PD2 es soluble, ent. PD1 (2) Si PD1∈PD2, y PD1 es insoluble, ent. PD2 también es insoluble. insoluble ***#I1#** ***#I2#** ***#R#** insoluble PD2 PD1 soluble soluble 19 Corolario del Teorema Anterior 20 Prob. Detención con Cinta en Blanco PBlanco: Dada una MT T, ¿existe un algoritmo para decidir si T se detiene comenzando con la cinta en blanco? Corolario: Sea PDet = problema de la detención de la Máquina de Turing, y sea Pi un problema de decisión arbitrario. Entonces si PDet ∈ Pi , entonces el problema Pi es insoluble. ¿T se detiene sobre la cinta en blanco? ... Este resultado será de utilidad para resolver distintos problemas de decisión. # ... # MT T ¿Es este problema soluble? 21 Prob. Detención con Cinta en Blanco Prob. Detención para Impresión PPrint: ¿existe un algoritmo para decidir si una MT TPrint se detiene tras escribir ‘s’ habiendo comenzado con una cadena α sobre la cinta? Supongamos que es soluble... Dada esta situación: **#T#** Probaremos que PDet ∈ PPrint y por ser PDet insoluble, también lo es PPrint Podemos decidir si se detiene sobre α T’ T **#T#α#** ***#Tb#*** 22 .... Absurdo, pues el problema de la detención es insoluble .... Luego PBlanco es insoluble 23 # # α .... # MT TPrint s α’ # .... TPrint se detiene 24 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Fundamentos de Ciencias de la Computación – Transparencias de Clase”. Dr. Chesñevar, Mg. Martínez , Mg. Cobo - Universidad Nacional del Sur 2002-2005. Fundamentos de Ciencias de la Computación – Cursos Diego C. Martinez y María Laura Cobo – Primer Cuatrimestre de 2005 Prob. Detención para Impresión Síntesis demostración por reducibilidad Supongamos que es soluble... Para demostrar que un problema es insoluble: Dada esta situación: 1. Suponer que el problema es soluble. *#T#α#s#* *#T#α#* 2. Tomar un problema que ya se conozca, o pueda demostrarse, insoluble, para plantear la reducción. Podemos decidir si T se detiene tras escribir ‘s’, comenzando con α en la cinta *#T’#α#s#* T’ hace lo mismo que T, pero imprime s antes de detenerse. 3. Es importante recordar que debe reducirse el problema elegido en el punto 2 al problema que supusimos soluble (demostración por el absurdo) Absurdo, pues el problema de la detención es insoluble 4. Demostrar la reducción. No olvidar la conclusión de la demostación. Luego PPrint es insoluble 25 26 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Fundamentos de Ciencias de la Computación – Transparencias de Clase”. Dr. Chesñevar, Mg. Martínez , Mg. Cobo - Universidad Nacional del Sur 2002-2005.