Introducción a la NP_Completitud

Slides:



Advertisements
Presentaciones similares
Representación del conocimiento
Advertisements

Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Tema 4. Juegos simultáneos con información incompleta.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Problemas Algorítmicos
Tema: Decibilidad Integrantes: Ileana Rdguez Soto
LÓGICA DE PROGRAMACIÓN
Introducción a la máquina
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Introducción a los Algoritmos
Analisis deAlgoritmos
Resolución de Problemas Algoritmos y Programación
5. Propiedades de los Lenguajes Recursivamente
UNIVERSIDAD LATINA (UNILA) II.- ANALISIS DE ALGORITMOS
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
INTELIGENCIA ARTIFICIAL
Tratabilidad y NP-Completitud
Introducción a la NP_Completitud Ineficiencia e Intratabilidad No Computablidad e Indecibilidad.
CLASIFICACION DE LAS MAQUINAS DE TURING
METODOLOGIA DE LA PROGRAMACION
Matemáticas Discretas y Algoritmos
PROGRAMACIÓN LÓGICA.
Complejidad Roberto Moriyón.
Complejidad Problemas NP-Completos
Problemes de Viatjants
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Programación de Computadores
Ecuaciones de recurrencia
Teoria de grafos.-clase 4
Inteligencia Artificial
1 Planteamiento del problema ¿Tenemos los humanos la capacidad de percibir si nos miran desde atrás? O, más exactamente: ¿Es defendible que existen otras.
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.


ESTRUCTURA DE DATOS ESD-243
(Organización y Manejo de Archivos)
PROGRAMACIÓN DE RECURSOS.
4.  Métodos matemáticos.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Operaciones con Cadenas
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
I. Complejidad de Problemas
Gramáticas Formales Cadenas y Lenguajes.
Teoría de Trafico en Redes
Problemas de grafos y Tratabilidad Computacional
Agustín J. González ELO320: Estructura de Datos y Algoritmos
ALGORITMO QUE ES ??.
Elaboración de algoritmos usando lógica de programación
Combinación y Permutación
Escuela de Ciencias Basicas, Tecnología e Ingeniería
“CURSO PROPEDÉUTICO PARA EL MEJORAMIENTO DEL PENSAMIENTO MATEMÁTICO”
Matemáticas II. Profesor: Ing. Yadhira M. Rangel Carrillo.
Lic. Carla Aguirre Montalvo
Control Estadístico de Procesos
Inteligencia Artificial
Resolución de problemas
La clase P juega un papel importante en la teoría de la complejidad computacional debido a que: 1. P es invariante para todos los modelos de cómputo que.
Mini-video 2 de 5 Materia: Límites de funciones Continuidad de funciones Prácticas con Introducción a Funciones de una variable.
Problemas P, NP y NP-Completos CLASE P Los algoritmos de complejidad polinómica se dice que son tratables en el sentido de que suelen ser abordables en.
Hernández Camacho Víctor Jesus Islas Sánchez Karla Vanessa
PROBLEMAS ALGORITMICOS.  Los programadores deben ser capaces de diseñar una solución de tal manera que puedan resolver los problemas planteados.  Estos.
Ing. Haydeli del Rosario Roa Lopez
A la compu… ¿se le escapa la tortuga? Dra. Isabel Méndez-Díaz.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Ing. José David Ortiz Salas
Transcripción de la presentación:

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 10 50 100 300 1000 5N 250 500 1500 5000 NlogN 33 282 665 2469 9966 N2 2500 10000 90000 1 m. N3 125000 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 “ 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

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 No admiten algoritmos razonables Problemas intratables Problemas tratables Admiten algoritmos razonables

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.

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.

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? El vendedor solo puede viajar entre algunos pares de ciudades

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 tienen solució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 entrada T para el que el algoritmo no termine o de una respuesta errónea

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 Intratables Tratables Indecidibles Problemas que no admiten algoritmos razonables Problemas con soluciones razonables

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? 1 2 3 4 5 X abb a bab baba aba Y bbab aa ab Correspondencia 2,1,1,4,1,5 El problema es indecidible 1 2 3 4 5 X bb a bab baba aba Y aa ab

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

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

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