problemas fáciles, difíciles e imposibles - ¿la computadora lo
TRANSCRIPT
![Page 1: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/1.jpg)
Problemas faciles, difıciles e imposibles¿La computadora lo resuelve todo?
Santiago Figueira
Departamento de ComputacionFCEyN, UBA
Semana de la Computacion 2015
1
![Page 2: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/2.jpg)
¿Que son los metodos efectivos?Intuitivamente son metodos que pueden ser resueltos por medio deun procedimiento mecanico.
Los metodos resuelven problemas. No cualquier tipo de problemas:funciones matematicas que reciben numeros naturales y devuelvennumeros naturales.
f : N→ N o g : N×N→ N o h : N×N×N→ N
2
![Page 3: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/3.jpg)
¿Que son los metodos efectivos?Intuitivamente son metodos que pueden ser resueltos por medio deun procedimiento mecanico.
Los metodos resuelven problemas. No cualquier tipo de problemas:funciones matematicas que reciben numeros naturales y devuelvennumeros naturales.
f : N→ N o g : N×N→ N o h : N×N×N→ N2
![Page 4: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/4.jpg)
Intento 1 para metodo efectivo: funciones recursivas
Podemos usar:
I 0: el cero que todos conocemos
I +1: sumarle 1 a un numero
I composicion de funciones. Por ejemplo 0 + 1 = 1. Tambienpuedo al 1 sumarle 1 y obtener el 2: (0 + 1) + 1 = 2
I recursion: una funcion que se llama a sı misma.
Por ejemplo, ala funcion suma se puede definir como:
suma(m, n) =
{n si m = 0
suma(m − 1, n) + 1 si m > 0
Entonces,
suma(2, 2) = suma(1, 2)+1 = suma(0, 2)+1+1 = 2+1+1 = 4
3
![Page 5: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/5.jpg)
Intento 1 para metodo efectivo: funciones recursivas
Podemos usar:
I 0: el cero que todos conocemos
I +1: sumarle 1 a un numero
I composicion de funciones. Por ejemplo 0 + 1 = 1. Tambienpuedo al 1 sumarle 1 y obtener el 2: (0 + 1) + 1 = 2
I recursion: una funcion que se llama a sı misma. Por ejemplo, ala funcion suma se puede definir como:
suma(m, n) =
{n si m = 0
suma(m − 1, n) + 1 si m > 0
Entonces,
suma(2, 2) = suma(1, 2)+1 = suma(0, 2)+1+1 = 2+1+1 = 4
3
![Page 6: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/6.jpg)
La funcion de Ackermann
A(m, n) =
n + 1 si m = 0
A(m − 1, 1) si m > 0 y n = 0
A(m − 1,A(m, n − 1)) si m > 0 y n > 0
I para valores chicos de m, como 1, 2, o 3, A crecerelativamente lento con respecto a n
4
![Page 7: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/7.jpg)
La funcion de Ackermann
A(m, n) =
n + 1 si m = 0
A(m − 1, 1) si m > 0 y n = 0
A(m − 1,A(m, n − 1)) si m > 0 y n > 0
I para valores chicos de m, como 1, 2, o 3, A crecerelativamente lento con respecto a n
4
![Page 8: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/8.jpg)
La funcion de Ackermann
A(m, n) =
n + 1 si m = 0
A(m − 1, 1) si m > 0 y n = 0
A(m − 1,A(m, n − 1)) si m > 0 y n > 0
I para valores chicos de m, como 1, 2, o 3, A crecerelativamente lento con respecto a n
4
![Page 9: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/9.jpg)
La funcion de Ackermann¿Cuanto valdra A(4,2)? Mas o menos10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
y 18 pantallas mas de ceros. 5
![Page 10: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/10.jpg)
Intento 2 para metodo efectivo: maquinas de Turing
6
![Page 11: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/11.jpg)
Las maquinas de TuringSupongamos que la chica del slide anterior quiere calcular:
2 3 1× 1 3
6 9 32 3 1 0
3 0 0 3
No es esencial:
I ¿mientras hace la cuenta esta tomando un cafe?I ¿escribe con lapiz o lapicera?I ¿importa el tamano del papel?
Lo importante es que:
I hace marcas en un papelI para saber que escribir en cada paso, le presta atencion a lo
que escribio antes
7
![Page 12: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/12.jpg)
Las maquinas de TuringSupongamos que la chica del slide anterior quiere calcular:
2 3 1× 1 3
6 9 32 3 1 0
3 0 0 3
No es esencial:
I ¿mientras hace la cuenta esta tomando un cafe?I ¿escribe con lapiz o lapicera?I ¿importa el tamano del papel?
Lo importante es que:
I hace marcas en un papelI para saber que escribir en cada paso, le presta atencion a lo
que escribio antes7
![Page 13: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/13.jpg)
Las maquinas de TuringSin perder nada esencial, podemos suponer:2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = 3 0 0 3
Empezamos con la multiplicacion2 3 1 × 1 3 = . . .
N NDespues de un tiempo, vamos a estar sumando2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = . . .
N N
I en cada paso de la computacion solo un pequeno numero desımbolos reciben atencion (en el ejemplo, 2). Hay unacantidad finita de sımbolos.
I la accion que se toma en cada paso depende solo de lossımbolos que estan recibiendo atencion y del estado actual dequien esta haciendo el calculo (en el ejemplo, la senoritaesta en estado multiplicando o sumando). Hay una cantidadfinita de estados.
I el procedimiento lleva una cantidad finita de pasos.
8
![Page 14: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/14.jpg)
Las maquinas de TuringSin perder nada esencial, podemos suponer:2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = 3 0 0 3
Empezamos con la multiplicacion2 3 1 × 1 3 = . . .
N NDespues de un tiempo, vamos a estar sumando2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = . . .
N NI en cada paso de la computacion solo un pequeno numero de
sımbolos reciben atencion (en el ejemplo, 2). Hay unacantidad finita de sımbolos.
I la accion que se toma en cada paso depende solo de lossımbolos que estan recibiendo atencion y del estado actual dequien esta haciendo el calculo (en el ejemplo, la senoritaesta en estado multiplicando o sumando). Hay una cantidadfinita de estados.
I el procedimiento lleva una cantidad finita de pasos.
8
![Page 15: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/15.jpg)
Las maquinas de TuringSin perder nada esencial, podemos suponer:2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = 3 0 0 3
Empezamos con la multiplicacion2 3 1 × 1 3 = . . .
N NDespues de un tiempo, vamos a estar sumando2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = . . .
N NI en cada paso de la computacion solo un pequeno numero de
sımbolos reciben atencion (en el ejemplo, 2). Hay unacantidad finita de sımbolos.
I la accion que se toma en cada paso depende solo de lossımbolos que estan recibiendo atencion y del estado actual dequien esta haciendo el calculo (en el ejemplo, la senoritaesta en estado multiplicando o sumando). Hay una cantidadfinita de estados.
I el procedimiento lleva una cantidad finita de pasos.
8
![Page 16: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/16.jpg)
Las maquinas de TuringSin perder nada esencial, podemos suponer:2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = 3 0 0 3
Empezamos con la multiplicacion2 3 1 × 1 3 = . . .
N NDespues de un tiempo, vamos a estar sumando2 3 1 × 1 3 = 6 9 3 + 2 3 1 0 = . . .
N NI en cada paso de la computacion solo un pequeno numero de
sımbolos reciben atencion (en el ejemplo, 2). Hay unacantidad finita de sımbolos.
I la accion que se toma en cada paso depende solo de lossımbolos que estan recibiendo atencion y del estado actual dequien esta haciendo el calculo (en el ejemplo, la senoritaesta en estado multiplicando o sumando). Hay una cantidadfinita de estados.
I el procedimiento lleva una cantidad finita de pasos.8
![Page 17: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/17.jpg)
Intento 3 (mas moderno) para metodo efectivo:lenguajes de programacion
I Java
I C
I C++
I C#
I PHP
I (Visual) Basic
I Python
I Perl
I JavaScript
I . . .
9
![Page 18: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/18.jpg)
Entonces... ¿que es un metodo efectivo?
Tesis de Church-Turing
I todos los lenguajes de programacion y todas las computadorasson equivalentes a una maquina de Turing
I no es posible construir un dispositivo de computo que sea maspoderoso que una computadora
= =
Entonces, lo efectivo es lo que se puede computar en lacomputadora que mas les guste y con el lenguaje de programacionque mas les guste.
10
![Page 19: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/19.jpg)
Problemas faciles y difıciles
Ahora sabemos que es un metodo efectivo para resolver unproblema.
Extendamos la nocion de problema:
f : N→ N f : texto → texto
Podemos calcular cuantas operaciones nos lleva calcular elresultado.
I los problemas faciles se resuelven con programas que ejecutanen pocas operaciones (rapidos)
I los problemas difıciles se resuelven con programas quenecesariamente requieren muchas operaciones (lentos)
11
![Page 20: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/20.jpg)
Ejemplos de problemas faciles
I buscar un elemento en una lista de numeros
entrada salida
“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 4” “sı”“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 3” “sı”“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 6” “no”
tiempo ' longitud de la entrada
I ordenar una lista
entrada salida
“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3]” “[1, 1, 1, 2, 3, 4, 5, 5, 7, 7]”
tiempo ' longitud de la entrada2
(aunque se puede hacer un poquito mas rapido)
12
![Page 21: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/21.jpg)
Ejemplos de problemas faciles
I buscar un elemento en una lista de numeros
entrada salida
“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 4” “sı”“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 3” “sı”“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3] 6” “no”
tiempo ' longitud de la entrada
I ordenar una lista
entrada salida
“[1, 4, 5, 2, 7, 7, 5, 1, 1, 3]” “[1, 1, 1, 2, 3, 4, 5, 5, 7, 7]”
tiempo ' longitud de la entrada2
(aunque se puede hacer un poquito mas rapido)
12
![Page 22: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/22.jpg)
Ejemplos de problemas difıciles
I coloreo de grafos¿hay un coloreo que usa a lo sumo x colores?
entrada salida
“1-2 1-3 1-5 1-6 2-3 ... 3” “sı”“1-2 1-3 1-5 1-6 2-3 ... 2” “no”
I el problema de la mochila¿podemos juntar al menos $x en una mochilaque carga hasta y Kg.?
entrada salida
“[4,12] [2,2] [2,1] [1,1] [10,4] 15 15” “sı”“[4,12] [2,2] [2,1] [1,1] [10,4] 100 15” “no”
13
![Page 23: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/23.jpg)
Ejemplos de problemas difıciles
I coloreo de grafos¿hay un coloreo que usa a lo sumo x colores?
entrada salida
“1-2 1-3 1-5 1-6 2-3 ... 3” “sı”“1-2 1-3 1-5 1-6 2-3 ... 2” “no”
I el problema de la mochila¿podemos juntar al menos $x en una mochilaque carga hasta y Kg.?
entrada salida
“[4,12] [2,2] [2,1] [1,1] [10,4] 15 15” “sı”“[4,12] [2,2] [2,1] [1,1] [10,4] 100 15” “no”
13
![Page 24: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/24.jpg)
Problemas faciles y difıciles
entrada salida
“zzzzzzzzzzzzzzzzzzzzzzzzzzzz”︸ ︷︷ ︸longitud=x
“sı” / ”no”
I P = conjunto de problemas que se resuelven en tiempo polinomial
I si la entrada tiene longitud x , entonces computar la salida lleva mas omenos xn pasos
I NP = conjunto de problemas que se resuelven en tiempo polinomialpero usando no determinismo
I si la entrada tiene longitud x , entonces verificar que una solucion consalida “sı” es buena lleva mas o menos xn pasos.
I todo problema de P esta en NP. Pero... ¿realmente hay problemas enNP que no esten en P o los dos conjuntos son iguales?¡Nadie lo sabe! Es un problema muy famoso en computacion.
14
![Page 25: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/25.jpg)
Problemas faciles y difıciles
entrada salida
“zzzzzzzzzzzzzzzzzzzzzzzzzzzz”︸ ︷︷ ︸longitud=x
“sı” / ”no”
I P = conjunto de problemas que se resuelven en tiempo polinomial
I si la entrada tiene longitud x , entonces computar la salida lleva mas omenos xn pasos
I NP = conjunto de problemas que se resuelven en tiempo polinomialpero usando no determinismo
I si la entrada tiene longitud x , entonces verificar que una solucion consalida “sı” es buena lleva mas o menos xn pasos.
I todo problema de P esta en NP. Pero... ¿realmente hay problemas enNP que no esten en P o los dos conjuntos son iguales?¡Nadie lo sabe! Es un problema muy famoso en computacion.
14
![Page 26: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/26.jpg)
Problemas faciles y difıciles
entrada salida
“zzzzzzzzzzzzzzzzzzzzzzzzzzzz”︸ ︷︷ ︸longitud=x
“sı” / ”no”
I P = conjunto de problemas que se resuelven en tiempo polinomial
I si la entrada tiene longitud x , entonces computar la salida lleva mas omenos xn pasos
I NP = conjunto de problemas que se resuelven en tiempo polinomialpero usando no determinismo
I si la entrada tiene longitud x , entonces verificar que una solucion consalida “sı” es buena lleva mas o menos xn pasos.
I todo problema de P esta en NP. Pero... ¿realmente hay problemas enNP que no esten en P o los dos conjuntos son iguales?¡Nadie lo sabe! Es un problema muy famoso en computacion.
14
![Page 27: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/27.jpg)
Problemas faciles y difıciles
entrada salida
“zzzzzzzzzzzzzzzzzzzzzzzzzzzz”︸ ︷︷ ︸longitud=x
“sı” / ”no”
I P = conjunto de problemas que se resuelven en tiempo polinomial
I si la entrada tiene longitud x , entonces computar la salida lleva mas omenos xn pasos
I NP = conjunto de problemas que se resuelven en tiempo polinomialpero usando no determinismo
I si la entrada tiene longitud x , entonces verificar que una solucion consalida “sı” es buena lleva mas o menos xn pasos.
I todo problema de P esta en NP. Pero... ¿realmente hay problemas enNP que no esten en P o los dos conjuntos son iguales?¡Nadie lo sabe! Es un problema muy famoso en computacion. 14
![Page 28: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/28.jpg)
Tiene muchas consecuencias practicas. Por ejemplo muchosmetodos de encriptar se volverıan faciles de romper.
15
![Page 29: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/29.jpg)
¿Una computadora puede resolver cualquier problema?
I Hay ∞ problemas, o sea, funciones
f : texto → texto
I Hay ∞ programas (no importa el lenguaje de programacion).
I Pero el primer infinito es mas grande que el segundo:I los programas se pueden enumerar, o listar:
Todos los programas de longitud 1Todos los programas de longitud 2Todos los programas de longitud 3...
I las funciones texto → texto no se pueden enumerar
16
![Page 30: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/30.jpg)
¿Una computadora puede resolver cualquier problema?
I Hay ∞ problemas, o sea, funciones
f : texto → texto
I Hay ∞ programas (no importa el lenguaje de programacion).I Pero el primer infinito es mas grande que el segundo:
I los programas se pueden enumerar, o listar:
Todos los programas de longitud 1Todos los programas de longitud 2Todos los programas de longitud 3...
I las funciones texto → texto no se pueden enumerar
16
![Page 31: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/31.jpg)
¿Una computadora puede resolver cualquier problema?
I Hay ∞ problemas, o sea, funciones
f : texto → texto
I Hay ∞ programas (no importa el lenguaje de programacion).I Pero el primer infinito es mas grande que el segundo:
I los programas se pueden enumerar, o listar:
Todos los programas de longitud 1Todos los programas de longitud 2Todos los programas de longitud 3...
I las funciones texto → texto no se pueden enumerar
16
![Page 32: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/32.jpg)
El argumento diagonal de CantorVeamos que las funciones
f : numero→ texto
no se pueden enumerar (estas son un subconjunto de las funcionestexto → texto).Por el absurdo. Supongamos que sı se pueden enumerar:
f0, f1, f2, . . .
Me defino una nueva funcion:
g : numero→ texto
del siguiente modo:
g(n) = “hola” seguido de fn(n)
Tenemos que g no esta en la lista. Absurdo.17
![Page 33: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/33.jpg)
Hay problemas que ninguna computadora resuelve
∞programas < ∞
problemas
I Hay mas problemas que programas
I Tiene que haber problemas que no tengan una solucionefectiva, o sea problemas que ninguna computadora puederesolver.
I Se llaman problemas indecidibles o incomputables.
I ¿Cuales?
18
![Page 34: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/34.jpg)
Hay problemas que ninguna computadora resuelve
∞programas < ∞
problemas
I Hay mas problemas que programas
I Tiene que haber problemas que no tengan una solucionefectiva, o sea problemas que ninguna computadora puederesolver.
I Se llaman problemas indecidibles o incomputables.
I ¿Cuales?
18
![Page 35: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/35.jpg)
A veces la computadora se cuelga
19
![Page 36: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/36.jpg)
A veces la computadora se cuelga
19
![Page 37: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/37.jpg)
A veces la computadora se cuelga
19
![Page 38: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/38.jpg)
A veces la computadora se cuelga
19
![Page 39: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/39.jpg)
El problema de la parada
Es el problema indecidible mas famoso
Tambien se lo llama problema de la detencion o halting problem,en ingles.
Tiene que ver con programas que se cuelgan y programas que no.
20
![Page 40: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/40.jpg)
El problema de la parada
Dado un programa p, ¿p se cuelga?
Supongamos que p(x) es el programa:
int i=1;
while (i>x) {i=i+1;
}I si x = 0 entonces p no para (se cuelga)
I si x = 1 entonces p para (no se cuelga)
21
![Page 41: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/41.jpg)
El problema de la parada es indecdible
entrada salida
“(int i=1; while (i>x) {i=i+1;})(0)” “sı”“(int i=1; while (i>x) {i=i+1;})(1)” “no”
¿Existe un programa que recibe un texto y devuelve “sı” cuando eltexto representa un programa que para y “no” en caso contrario?
No, no existe tal programa. El problema de la parada es indecidible.
I no importa en que lenguaje queramos programarlo
I es un lımite absoluto al poder de computo. Los metodosefectivos no llegan tan lejos.
22
![Page 42: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/42.jpg)
El problema de la parada es indecdible
entrada salida
“(int i=1; while (i>x) {i=i+1;})(0)” “sı”“(int i=1; while (i>x) {i=i+1;})(1)” “no”
¿Existe un programa que recibe un texto y devuelve “sı” cuando eltexto representa un programa que para y “no” en caso contrario?
No, no existe tal programa. El problema de la parada es indecidible.
I no importa en que lenguaje queramos programarlo
I es un lımite absoluto al poder de computo. Los metodosefectivos no llegan tan lejos.
22
![Page 43: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/43.jpg)
Un rompecabezas mu difıcil
I Eternity II
I 256 piezasI bordes adyacentes tienen el mismo dibujoI se pueden rotar
23
![Page 44: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/44.jpg)
Un rompecabezas mu difıcilI de 2007 a 2010 hubo 2 millones de dolares para el primero
que encuentre una solucion
I nadie encontro la solucionI hay mas o menos 1,115 · 10557 posibles configuraciones:
111500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
24
![Page 45: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/45.jpg)
Un rompecabezas mu difıcilI de 2007 a 2010 hubo 2 millones de dolares para el primero
que encuentre una solucionI nadie encontro la solucionI hay mas o menos 1,115 · 10557 posibles configuraciones:
111500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
24
![Page 46: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/46.jpg)
Otro problema indecidible: el tilingI dado un conjunto de piezas, por ejemplo
I reglas:I bordes adyacentes tienen el mismo dibujoI no se pueden rotarI hay infinitas copias de cada pieza
I ¿podemos ubicarlos de modo tal que cubran todo el plano?I no hay ningun programa que dado un conjunto finito de
azulejos, decida si se puede cubrir todo el plano o no(teniendo en cuenta las reglas).
25
![Page 47: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/47.jpg)
Otro problema indecidible: el tilingI dado un conjunto de piezas, por ejemplo
I reglas:I bordes adyacentes tienen el mismo dibujoI no se pueden rotarI hay infinitas copias de cada pieza
I ¿podemos ubicarlos de modo tal que cubran todo el plano?
I no hay ningun programa que dado un conjunto finito deazulejos, decida si se puede cubrir todo el plano o no(teniendo en cuenta las reglas).
25
![Page 48: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/48.jpg)
Otro problema indecidible: el tilingI dado un conjunto de piezas, por ejemplo
I reglas:I bordes adyacentes tienen el mismo dibujoI no se pueden rotarI hay infinitas copias de cada pieza
I ¿podemos ubicarlos de modo tal que cubran todo el plano?I no hay ningun programa que dado un conjunto finito de
azulejos, decida si se puede cubrir todo el plano o no(teniendo en cuenta las reglas).
25
![Page 49: Problemas fáciles, difíciles e imposibles - ¿La computadora lo](https://reader034.vdocuments.site/reader034/viewer/2022051507/58a039321a28ab724a8c635a/html5/thumbnails/49.jpg)
Resumen
I ahora es facil definir un metodo efectivo: es un programa.I pero se empezo a pensar en esto mucho antes de que
existieran las computadoras
I se sabe que hay problemas faciles (se resuelven rapido)
I el problema de buscar un elemento en una listaI el problema de ordenar una lista
I hay un monton de problemas mas difıciles para los que no seconoce una solucion rapida (puede que exista pero que nadiela haya encontrado; o puede que no exista)
I el problema del coloreo de grafosI el problema de la mochila
I hay problemas tan difıciles que ninguna computadora (niningun metodo efectivo) puede resolver
I el problema de la paradaI el problema del tiling
26