Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

34
Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad

Transcript of Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Page 1: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Introducción a la NP_Completitud

Ineficiencia e Intratabilidad

No Computablidad e Indecibilidad

Page 2: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Ineficiencia e Intratabilidad

• Problemas algorítmicos para los que no existe una solución satisfactoria

• Ejemplos– Torres de Hanoi– Puzzle del mono

Page 3: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Torres de Hanoi• Dadas tres estacas y N anillos, secuencia de

movimientos para transferir los anillos de una a otra siguiendo ciertas reglas

• El procedimiento recursivo implica un movimiento de aro y dos llamadas recursivas

Page 4: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

•¿Cuántos movimientos son necesarios?

•2N-1

•Si fuéramos capaces de mover un millón de anillos cada segundo, para N=64. ¿cuánto tiempo tardaríamos?

•Medio millón de años

Torres de Hanoi

Page 5: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El puzzle del mono • Nos limitamos a problemas de decisión

• N cartas, N=M*M, con orientación fija, ¿existe alguna combinación que forme un cuadrado de M*M en el que todas las mitades estén casadas?

Page 6: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El puzzle del mono

• Con N=25 y un computador capaz de construir y evaluar un millón de posibilidades por segundo. Cuanto tiempo tardaría el algoritmo en el caso peor?

• Para colocar la primera, 25 posibilidades, para la segunda 24, .... 25!, resultaría que nuestro computador tardaría 490 billones de años en calcular todas las posibilidades

Page 7: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El puzzle del mono• Existen conjuntos de cartas para los que la

solución siempre existe, para otros nunca.

• ¿Existe una manera mejor de resolver el problema?

• Probablemente no, pero no estamos seguros

Page 8: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Tiempo razonable/irrazonable

10 50 100 300 1000

5N 50 250 500 1500 5000

NlogN 33 282 665 2469 9966

N2 100 2500 10000 90000 1 m.

N3 1000 125000 1 m. 27 m 1 b.

2N 1024 16 dig. 31 dig 91 dig. 302 dig

N! 3.6 m. 65 dig 161 dig 623 dig. inimaginable

NN 10 b. 85 dig 201 dig 744 dig “

NFunción

Polinom

ialE

xponencial

El número de protones en el universo tiene 79 dígitos. El número de microsegundos desde el “Big Bang” tiene 24 dígitos

Page 9: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Admiten algoritmos razonables

No admiten algoritmos razonables

Problemas intratables

Problemas tratables

Tiempo razonable/irrazonable

• Una función polinomial en N es aquella que esta limitada por Nk, para algún k.

• Un algoritmo cuyo tiempo de ejecución esta acotado por una función polinomial lo consideramos razonable. En otro caso irrazonable.

• En términos de problemas algorítmicos diremos que son problemas tratables o intratables

Page 10: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_Completos

• El problema del puzzle, que hemos visto, es realmente un problema intratable?

- Quizá es cuestión de esperar que lo computadores sean mas rápidos

- Puede ser causa de nuestra incompetencia para idear buenos algoritmos?

- No tiene valor el esfuerzo, este problema es un problema especifico, no es importante.

Page 11: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_Completos

• Existen cerca de 1000 problemas algorítmicos con características parecidas

• Sus limites inferiores son lineales y sus limites superiores exponenciales.

• La clasificación de estos problemas es desconocida no sabemos a que lado de la línea están.

• Vamos a denotar esta clase como NPC, significando NP-completos.

Page 12: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_completos

• Problemas de encontrar caminos– Problema del viajante de comercio: El viajante tiene que visitar N ciudades, hallar el

camino mas corto que conecta todas ellas sin que se visite dos veces la misma ciudad.

Page 13: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_completos

• El problema del ciclo Hamiltoniano: dado un grafo, existe un camino que pase por todos los puntos exactamente una vez?

Page 14: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_completos

• Problema de la satisfactibilidad: dada una fórmula lógica, con los operadores, or, and, y not, y una serie de variable lógicas, existe una combinación de valores de las variables que hacen la formula verdadera?

• (x1 or x2 or x3) and (x1 or not(x2))

Page 15: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas NP_completos• Si la respuesta a alguno de estos problemas es si ¿se

puede probar fácilmente?• “Certificado”• ¿De que orden seria un algoritmo de certificado?• Imaginemos una máquina que ante varias

alternativas, puede elegir la que quiera, y si una de ellas lleva a la solución de una manera “mágica” elegirá esa. Es una máquina no determinista.

• NP conjunto de problemas que se pueden resolver en tiempo polinómico por una máquina no determinista

Page 16: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Reducción• ¿A que se refiere el término completo?• O todos los problemas NPC son tratables, o todos son

intratables. • El concepto que se usa es la reducción en tiempo polinomial• Dados dos problemas NP_completos una reducción en un

tiempo polinomial es un algoritmo que se ejecuta en tiempo polinomial y reduce un problema a otro en el siguiente sentido. Si alguien da una entrada X al primer algoritmo y quiere una respuesta si o no , usamos el algoritmo para transformar X en una entrada Y para el segundo problema, de manera que la respuesta del segundo problema para Y es precisamente la respuesta del primer problema para la entrada X

Page 17: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Reducción del camino Hamiltoniano al problema del Agente

•Dado el grafo G, de 5 nodos, tiene un camino Hmiltoniano?

•Dado el grafo G’ , tiene el agente un camino de longitud N+1?

•La respuesta a la primera pregunta es si, precisamente cuando las respuesta a la segunda es si.

1

2

Page 18: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Reducción

• ¿Qué indica la transformación anterior?

• En términos de tratabilidad el problema del camino Hamiltoniano no es peor que el problema del viajante

• ¿Cómo demostramos que un nuevo problema esta en NPC?

Page 19: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Reducción

• P es el nuevo problema, Q un problema conocido en NPC

• Se reduce P a Q, por tanto P no puede ser peor que Q

• Reducimos Q a P, por tanto P no puede ser mejor que Q

• Si Q es tratable, P es tratable, y si P es tratable, Q es tratable

• !!Es necesario un primer problema!!!

Page 20: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Reducción

• En 1971 Cook´s demostró que el problema de la satisfacibilidad para el calculo proposicional era NP_completo. Este resultado se conoce como el teorema de Cook´s.

• Cook’s se valió de la primera propiedad de los problemas NP-completos, son resolubles por un algoritmo no determinista

• Desarrolló una máquina formal, un modelo de computadora de propósito general “Maquina de Turing” dotada con la potencia del no determinismo.

Page 21: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

NO COMPUTABILIDAD E INDECIBILIDAD

Los problemas que veremos, no tienen solución algorítmica ni con mucho dinero,

tiempo o cerebro.

Page 22: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El problema del embaldosado o domino

• Tenemos baldosas cuadradas divididas en cuatro por dos diagonales, cada división de un color. Las baldosas tiene una orientación fija

• ¿Dado un conjunto T de baldosas, se puede embaldosar cualquier área de cualquier tamaño?

Page 23: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El problema del embaldosado o domino

• Este tipo de razonamiento no puede ser mecanizado. No existe un algoritmo ni lo habrá para solucionar el problema del embaldosado.

• Cualquier algoritmo que podamos diseñar habrá siempre un conjunto de entrada T para el que el algoritmo no termine o de una respuesta errónea

Page 24: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Intratables

Tratables

Indecidibles

Clasificación de los problemas

• Un problema algorítmico que no admite algoritmo se llama no computable, si el problema es de decisión se dice que es indecidible

Problemas que no admiten soluciones

Problemas con soluciones razonables

Problemas que no admiten algoritmos razonables

Page 25: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Correspondencia de palabras

• Tenemos como entrada dos grupos de palabras de los alfabetos finitos X e Y. El problema pregunta si es posible concatenando palabras de X formar una nueva palabra, Z, tal que concatenando las palabras correspondientes del grupo Y se forme la misma palabra.

1 2 3 4 5

X abb a bab baba aba

Y bbab aa ab aa a

1 2 3 4 5

X bb a bab baba aba

Y bab aa ab aa a

Correspondencia 2,1,1,4,1,5

Existe algún algoritmo para resolver e este problema?

El problema es indecidible

Page 26: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Verificación de programas• Nos gustaría obtener un algoritmo que dada la

descripción de un problema y un algoritmo, indique si este algoritmo resuelve el problema o no

• Queremos que la respuesta sea si, si para cada entrada legal del algoritmo este termina y da la respuesta correcta y no si existen entradas para las que el algoritmo falla o da respuestas erróneas.

• Se puede determinar algorítmicamente si dado un problema y un algoritmo el algoritmo resuelve el problema?

Este problema es indecidible

Page 27: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

El problema de la parada

• El problema tiene dos entradas, el texto de un programa R en un lenguaje L y una entrada para el X. El problema de la parada pregunta si R termina con la entrada X.

Si R(X)¡

Programa

R

Potencial entrada X

Para R con X?

Si R(X) !

si no

Page 28: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Probando la indecibilidad

• Como puedo probar que un problema es indecidible?

• La indecibilidad de otro problema se establecerá mostrando la reducción de un problema conocido inecidible al que estamos examinando.

• Primero necesito un problema inicial cuya indecibilidad este probada. En este caso es el problema de la Parada.

Page 29: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Probando la indecibilidad

• La reducción de un problema P a otro Q no tiene que ser necesariamente limitada; puede tomar cualquier cantidad de tiempo o de espacio. Todo lo que se requiere es una forma algorítmica de transformar una P_entrada en una Q_entrada de manera que la respuesta si/ no de P para una entrada es precisamente la respuesta de Q a la entrada transformada

• Si sabemos que P es indecidible Q debe ser también indecidible. La razón es que de otra manera nosotros podríamos resolver P por un algoritmo que tomara cualquier entrada, transfórmala en una entrada para Q y preguntar al algoritmo Q por la respuesta.

Semejante hipotético algoritmo se llama oráculo

Page 30: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Probando la indecibilidad

• Asumimos que el problema de la parada es indecidible

• <R X>una entrada del problema de la parada, ¿para el programa R con la entrada X?

• Transformamos

• <P R> entrada del problema de la verificación, P es un problema algorítmico que solo tiene una entrada legal X y su salida no importa. ¿Cuándo es correcto R?

• La respuesta del problema de la verificación a la entrada <P R> es si, si y solo si la respuesta del problema de la parada a la entrada <R X> es si. ¿Qué implica esto?

Page 31: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas indecidibles

• Como convencerías a alguien que en el problema de la correspondencia de palabras la respuesta es si? y de que un programa para?

• Problemas indecidibles tienen certificados finitos

• El problema del embaldosado, que certificado tendría?

Page 32: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas indecidibles

Generar y chequear un nuevo certificado C

C no certifica X

Todos los posibles certificados si

Todos los posibles certificados no

Entrada X

SINO

• Qué ocurre cuando un problema tiene dos certificados?

Page 33: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Problemas menos decidibles

• Los problemas con un certificado decimos que son parcialmente decidibles, y son algorítmicamente equivalentes.

• ¿Se puede reducir el problema de la verificación al problema de la parada?¿Tiene algún certificado?

• El problema de la totalidad es menos decidible• Problemas altamente indecidibles. Dominós

recurrentes

Page 34: Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.

Niveles de comportamiento algorítmico

Altamente indecidibles

Problemas indecidibles

Problemas intratables

Problemas tratables