340 likes | 423 Views
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. Torres de Hanoi.
E N D
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
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
Torres de Hanoi • ¿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
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?
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
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
Tiempo razonable/irrazonable N Función Polinomial Exponencial 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
Problemas intratables Problemas tratables Tiempo razonable/irrazonable No admiten algoritmos razonables • 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 Admiten algoritmos razonables
ProblemasNP_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.
ProblemasNP_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.
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.
Problemas NP_completos • El problema del ciclo Hamiltoniano: dado un grafo, existe un camino que pase por todos los puntos exactamente una vez?
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))
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
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
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? 1 2 • La respuesta a la primera pregunta es si, precisamente cuando las respuesta a la segunda es si.
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?
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!!!
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.
NO COMPUTABILIDAD E INDECIBILIDAD Los problemas que veremos, no tienensolución algorítmica ni con mucho dinero, tiempo o cerebro.
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?
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 entradaT para el que el algoritmo no termine o de una respuesta errónea
Problemas que no admiten soluciones Indecidibles Problemas que no admiten algoritmos razonables Intratables Tratables Problemas con soluciones razonables 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
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. Existe algún algoritmo para resolver e este problema? Correspondencia 2,1,1,4,1,5 El problema es indecidible
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
Programa R Potencial entrada X Para R con X? Si R(X) ! Si R(X)¡ si no 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.
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.
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
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?
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?
Problemas indecidibles • Qué ocurre cuando un problema tiene dos certificados? Entrada X Todos los posibles certificados si Generar y chequear un nuevo certificado C C no certifica X Todos los posibles certificados no SI NO
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
Niveles de comportamiento algorítmico Altamente indecidibles Problemas indecidibles Problemas intratables Problemas tratables