08.05.2013 Views

Problemas NP-Completos

Problemas NP-Completos

Problemas NP-Completos

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Fundamentos de la Computación<br />

TC4001<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

Centro de Manufactura / Centro de Sistema Inteligentes<br />

ITESM<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 1/11


Introducción<br />

■ Hasta ahora se han abordado problemas que en<br />

su mayoría pueden resolverse en tiempo<br />

polinomial.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 2/11


Introducción<br />

■ Hasta ahora se han abordado problemas que en<br />

su mayoría pueden resolverse en tiempo<br />

polinomial.<br />

■ Sin embargo, hay problemas, como el de<br />

encontrar en un grafo un ciclo de Hamilton, en el<br />

cual la única solución en apariencia es<br />

resolverlos en forma casi exhaustiva.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 2/11


Introducción<br />

■ Hasta ahora se han abordado problemas que en<br />

su mayoría pueden resolverse en tiempo<br />

polinomial.<br />

■ Sin embargo, hay problemas, como el de<br />

encontrar en un grafo un ciclo de Hamilton, en el<br />

cual la única solución en apariencia es<br />

resolverlos en forma casi exhaustiva. En el caso<br />

del ciclo de Hamilton da una complejidad<br />

factorial.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 2/11


Introducción<br />

■ Hasta ahora se han abordado problemas que en<br />

su mayoría pueden resolverse en tiempo<br />

polinomial.<br />

■ Sin embargo, hay problemas, como el de<br />

encontrar en un grafo un ciclo de Hamilton, en el<br />

cual la única solución en apariencia es<br />

resolverlos en forma casi exhaustiva. En el caso<br />

del ciclo de Hamilton da una complejidad<br />

factorial.<br />

■ Lejos de intentar encontrar un algoritmo<br />

polinomial para el problema específico o para los<br />

problemas que vengan, se ha optado por una<br />

postura más radical:<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 2/11


Introducción<br />

■ Hasta ahora se han abordado problemas que en<br />

su mayoría pueden resolverse en tiempo<br />

polinomial.<br />

■ Sin embargo, hay problemas, como el de<br />

encontrar en un grafo un ciclo de Hamilton, en el<br />

cual la única solución en apariencia es<br />

resolverlos en forma casi exhaustiva. En el caso<br />

del ciclo de Hamilton da una complejidad<br />

factorial.<br />

■ Lejos de intentar encontrar un algoritmo<br />

polinomial para el problema específico o para los<br />

problemas que vengan, se ha optado por una<br />

postura más radical: pensar en lo que se podrá<br />

alguna vez llegar a hacer en lugar de lo que<br />

ahora se puede hacer.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 2/11


Agenda Clase P<br />

■ Definir el concepto de problema de decisión y<br />

contrastarlo contra el problema de optimización<br />

(cuando hay lugar).<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 3/11


Agenda Clase P<br />

■ Definir el concepto de problema de decisión y<br />

contrastarlo contra el problema de optimización<br />

(cuando hay lugar). Mostrar algunos ejemplos:<br />

◆ Coloreo de Grafos<br />

◆ Calendarización de trabajos<br />

◆ Empacamiento<br />

◆ Subconjuntos<br />

◆ Satisfactibilidad<br />

◆ Agente viajero<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 3/11


Agenda Clase P<br />

■ Definir el concepto de problema de decisión y<br />

contrastarlo contra el problema de optimización<br />

(cuando hay lugar). Mostrar algunos ejemplos:<br />

◆ Coloreo de Grafos<br />

◆ Calendarización de trabajos<br />

◆ Empacamiento<br />

◆ Subconjuntos<br />

◆ Satisfactibilidad<br />

◆ Agente viajero<br />

■ Definición de la clase P<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 3/11


■ Contrastrar entre resolver y verificar.<br />

Agenda Clase <strong>NP</strong><br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 4/11


■ Contrastrar entre resolver y verificar.<br />

■ Algoritmo no determinista.<br />

Agenda Clase <strong>NP</strong><br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 4/11


■ Contrastrar entre resolver y verificar.<br />

■ Algoritmo no determinista.<br />

■ Ejemplo<br />

Agenda Clase <strong>NP</strong><br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 4/11


■ Contrastrar entre resolver y verificar.<br />

■ Algoritmo no determinista.<br />

■ Ejemplo<br />

■ Definición de la clase <strong>NP</strong><br />

Agenda Clase <strong>NP</strong><br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 4/11


■ Contrastrar entre resolver y verificar.<br />

■ Algoritmo no determinista.<br />

■ Ejemplo<br />

■ Definición de la clase <strong>NP</strong><br />

■ P ⊆ <strong>NP</strong><br />

Agenda Clase <strong>NP</strong><br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 4/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

■ Teorema de Cook: El problema de la<br />

satisfactibilidad es <strong>NP</strong>-Completo<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

■ Teorema de Cook: El problema de la<br />

satisfactibilidad es <strong>NP</strong>-Completo<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

■ Teorema de Cook: El problema de la<br />

satisfactibilidad es <strong>NP</strong>-Completo<br />

■ Lista de Karp<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

■ Teorema de Cook: El problema de la<br />

satisfactibilidad es <strong>NP</strong>-Completo<br />

■ Lista de Karp<br />

■ Teorema: Si un problema <strong>NP</strong>-Completo<br />

cualquiera está en P, entonces P = <strong>NP</strong> .<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Agenda: <strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong><br />

■ El concepto de reducción polinómica y<br />

reducibilidad<br />

■ Definición de problema <strong>NP</strong>-Completo y de<br />

<strong>NP</strong>-Hard.<br />

■ Teorema de Cook: El problema de la<br />

satisfactibilidad es <strong>NP</strong>-Completo<br />

■ Lista de Karp<br />

■ Teorema: Si un problema <strong>NP</strong>-Completo<br />

cualquiera está en P, entonces P = <strong>NP</strong> .<br />

■ Conjetura del millón de dolares: P = <strong>NP</strong> .<br />

http://www.claymath.org/<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 5/11


Algoritmos de Aproximación<br />

■ Enfoque: La solución exacta a un problema de<br />

optimización es para fines prácticos inalcanzable<br />

en un tiempo razonable, pero una solución<br />

aproximada y rápida tiene sentido en el<br />

problema y tiene un valor práctico.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 6/11


Algoritmos de Aproximación<br />

■ Enfoque: La solución exacta a un problema de<br />

optimización es para fines prácticos inalcanzable<br />

en un tiempo razonable, pero una solución<br />

aproximada y rápida tiene sentido en el<br />

problema y tiene un valor práctico.<br />

■ El concepto de Heurísticas de solución.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 6/11


Algoritmos de Aproximación<br />

■ Enfoque: La solución exacta a un problema de<br />

optimización es para fines prácticos inalcanzable<br />

en un tiempo razonable, pero una solución<br />

aproximada y rápida tiene sentido en el<br />

problema y tiene un valor práctico.<br />

■ El concepto de Heurísticas de solución.<br />

■ Heurísticas ejemplo para:<br />

◆ TSP<br />

◆ Apareamiento mínimo<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 6/11


Algoritmos de Aproximación<br />

■ Enfoque: La solución exacta a un problema de<br />

optimización es para fines prácticos inalcanzable<br />

en un tiempo razonable, pero una solución<br />

aproximada y rápida tiene sentido en el<br />

problema y tiene un valor práctico.<br />

■ El concepto de Heurísticas de solución.<br />

■ Heurísticas ejemplo para:<br />

◆ TSP<br />

◆ Apareamiento mínimo<br />

■ Garantía de calidad de una heurística<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 6/11


Referencias Clásicas<br />

■ La clase P fue introducida por Alan Cobham en:<br />

Cobham A: The intrinsic computational<br />

difficulty of functions. In Proceedings of the<br />

Congress for Logic, Methodology, and the<br />

Philosophy of Science, pages 24-30.<br />

North-Holland. 1964.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 7/11


■ La clase P también fue independientemente<br />

definida por Jack Edmonds que también<br />

introdujo la definición de <strong>NP</strong> y conjeturó que<br />

P = <strong>NP</strong> .<br />

Edmonds, J: Paths, trees, and Flowers.<br />

Canadian Journal of Mathematics.<br />

17:449-467, 1965.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 8/11


El concepto de problema <strong>NP</strong>-<br />

Completo fue introducida por Stephen<br />

Arthur Cook (Turing Award<br />

1982) dió la demostración de que el<br />

problema de satisfactibilidad de expresiones<br />

3-CNF era <strong>NP</strong>-Completo.<br />

Cook, S: The complexity of<br />

the theorem proving procedures.<br />

Proceedings of the Third<br />

Annual ACM Symposium on<br />

Theory of Computing. pages<br />

151-158. 1971.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 9/11


Richard Manning Karp (Turing<br />

Award 1985) introdujo una metodología<br />

para reducción de problemas<br />

a otros y demostró una variedad de<br />

problemas <strong>NP</strong>-<strong>Completos</strong> en:<br />

Karp, R: Reducibility among<br />

combinatorial problems. Complexity<br />

of Computer Computations,<br />

pages 85-103. Plenum<br />

Press, 1972.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 10/11


Manindra Agrawal was born in May 1966,<br />

and since 2001 he has been a full professor at<br />

the Indian Institute of Technology in Kanpur, In-<br />

dia. For some years he has been interested in<br />

finding a polynomial time algorithm to test whet-<br />

her a given number is prime. Although random<br />

algorithms can solve this problem with high cer-<br />

tainty in polynomial time, it remained a long-<br />

standing challenge to find a method that works<br />

in every case.<br />

To the great surprise of the experts, Agrawal<br />

solved this problem in August 2002, working to-<br />

gether with two undergraduate students: Neeraj<br />

Kayal and Nitin Saxena. Their proof establishes<br />

the correctness of a conjecture made in 1999<br />

by Agrawal and Biswas.<br />

Introducción<br />

Agenda: Clase P<br />

Agenda: Clase <strong>NP</strong><br />

Agenda:<br />

<strong>Problemas</strong><br />

<strong>NP</strong>-<strong>Completos</strong><br />

Agenda:<br />

Algoritmos de<br />

Aproximación<br />

Referencias<br />

<strong>Problemas</strong> <strong>NP</strong>-<strong>Completos</strong> TC4001 - p. 11/11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!