Documentos de Académico
Documentos de Profesional
Documentos de Cultura
computable
¿Hay problemas indecidibles?
El problema de parada
El problema de parada es indecidible:
Demostraciones por diagonalización
Significado de indecidible
Siginificado de decidible
Otro problema indecidible
¿Cómo encontramos más problemas indecidibles?
Teorema de Rice
Consecuencias del Teorema de Rice
Teoremas de incompletiud de Gödel
1
Problemas semidecidibles
Tema 9: ¿Hay problemas indecidibles?
INPUT OUTPUT
INPUT OUTPUT
2
Tema 9: ¿Hay problemas indecidibles?
Hay que recordar que la noción de problema para nosotros es decidir un
lenguaje sobre alfabeto ∑.
w ∈ ∑* SI/NO
3
Tema 9: The Halting Problem
El problema de parada
☐ ☐ ☐
4
Tema 9: El problema de parada
Algoritmo halt
SI
M, x
NO
5
Tema 9: Demostraciones por diagonalización
Teorema: El problema de parada es indecidible
Demostración: Se hace por diagonalización, un tipo de prueba
por reducción al absurdo.
4- Ejecuta halt_inverso(halt_inverso)
6
Tema 9: Demostraciones por diagonalización
QUIZ ¿Qué ocurre si halt_inverso(halt_inverso) para?
halt(halt_inverso, halt_inverso) = SI ☐
halt(halt_inverso, halt_inverso) = NO
1- Supón que el problema de parada es decidible.
☐
SI
4- Ejecuta halt_inverso(halt_inverso)
7
Tema 9: Demostraciones por diagonalización
QUIZ ¿Qué ocurre si halt_inverso(halt_inverso) NO para?
halt(halt_inverso, halt_inverso) = SI ☐
halt(halt_inverso, halt_inverso) = NO
1- Supón que el problema de parada es decidible.
☐
SI
4- Ejecuta halt_inverso(halt_inverso)
8
Tema 9: Demostraciones por diagonalización
4- Ejecuta halt_inverso(halt_inverso)
9
Tema 9: Demostraciones por diagonalización
Otra manera de ver la contradicción en la demostración:
Programa halt(programa,programa) Significado halt_inverso(programa)
P1 SI P1 para con ↑
input P1
P2 NO P2 no para SI
con input P2
... ... ... ...
10
Tema 9: Demostraciones por diagonalización
https://www.youtube.com/watch?v=92WHN-pAFCs&t=12s
https://www.youtube.com/watch?v=wGLQiHXHWNk
11
Tema 9: Significado de indecidible
QUIZ
¿Qué significa que un problema sea indecidible?
12
Tema 9: Significado de indecidible
Puede parecer que la indecibilidad del problema de parada depende
de instancias muy complicadas. Pero esto no es real.
def collatz(x):
Pre: x >= 1
while x != 1:
if x % 2 == 0:
x = x / 2
else:
x = x * 3 + 1
SI cuando P(x) = NO
complementario(P)(x) =
NO cuando P(x) = SI
halt(M, x) halt_general(M)
Decide si M para Decide si existe una instancia x de
sobre x. forma que M para sobre x.
16
Tema 9: ¿Cómo encontramos más problemas
indecidibles?
Dicho de otra forma,
halt(M, x) halt_general(M)
Decide si M para Decide si existe una instancia x de
sobre x. forma que M para sobre x.
17
Tema 9: ¿Cómo encontramos más problemas
indecidibles?
halt_general(M) equivalencia(M,M’)
Decide si existe una instancia x de Decide si ambos programas
forma que M para sobre x. se comportan igual sobre
todas las instancias.
18
Tema 9: ¿Cómo encontramos más problemas
indecidibles?
Dicho de otra forma,
halt_general(M) equivalencia(M,M’)
Decide si existe una instancia x de Decide si ambos programas
forma que M para sobre x. se comportan igual sobre
todas las instancias.
Teorema: complementario(halt_General)≤ equivalencia
Demostración: f(M),devuelve el par (M,nunca). Donde nunca
es el código de un programa que cicla siempre, para cualquier
entrada. La función f es computable y
complementario(halt_general)(M) <==> equivalencia(M,nunca)
Sin demostración.
20
Tema 9: Teorema de Rice
21
Tema 9: Teorema de Rice
22
Tema 9: Teorema de Rice
QUIZ
¿Cuáles son propiedades funcionales?
☐ “Siempre devuelve 1”
☐ “Resuelve Vertex-Cover”
☐ “Es un virus”
CIERTO FALSO
☐ ☐
24
Tema 9: Teorema de Rice
QUIZ
Sea el programa def nunca(x):
i = 0
while True:
i = i + 1
halt_particular(M) DPFA(M)
Decide si M para sobre M Decide si M cumple A.
27
Tema 9: Teorema de Rice
Ejecuta M sobre M;
M -----> Borra la memoria usada;
f Ejecuta el programa P sobre la entrada;
f es computable.
halt_particular(M) <==> DFPA(f(M))
halt_particular(M) ===>
el programa M sobre M para ===>
el programa f(M) se comporta exactamente como el programa P,
que cumple la propiedad A ===>
f(M) cumple la propiedad A ===>
DFPA(f(M)) 28
Tema 9: Teorema de Rice
Ejecuta M sobre M;
M -----> Borra la memoria usada;
f Ejecuta el programa P sobre la entrada;
┓halt_particular(M) ===>
el programa M sobre M no para ===>
el programa f(M) se comporta exactamente como el programa
nunca, que no cumple la propiedad A ===>
f(M) no cumple la propiedad A ===>
┓DFPA(f(M)) 29
Tema 9: Teorema de Rice
QUIZ
30
Tema 9: Consecuencias del
Teorema de Rice
QUIZ
¿Cuáles son propiedades funcionales de un programa?
QUIZ
¿Qué afirmaciones son ciertas cuando hablamos de
detección automática de malware?
☐ Problema NP-completo
☐ Problema indecidible
33