Fundamentos de Ciencias de la Computación

Anuncio
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.
Descargar