ScholarGate
Asistente

NP-Completitud e Intratabilidad

La NP-completitud identifica los problemas más difíciles en la clase NP —aquellos a los que se reduce cada problema NP— y proporciona el marco estándar para reconocer problemas para los cuales no se conoce o es poco probable un algoritmo eficiente.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un problema de decisión es NP-completo si pertenece a NP (sus instancias afirmativas tienen certificados verificables eficientemente) y cada problema en NP se reduce a él en tiempo polinomial; tales problemas son los más difíciles en NP, y un algoritmo en tiempo polinomial para cualquiera de ellos produciría uno para todos.

Scope

Este tema cubre las clases de complejidad P y NP, las reducciones en tiempo polinomial, las definiciones de NP-dureza y NP-completitud, el teorema de Cook-Levin que establece la satisfacibilidad como NP-completa, el catálogo de problemas NP-completos de Karp y las consecuencias prácticas de la intratabilidad para el diseño de algoritmos. Aplica estos conceptos al reconocimiento y manejo de problemas difíciles; la teoría formal más amplia de las clases de complejidad computacional se trata en el subcampo de la teoría de la computación.

Core questions

  • ¿Qué distingue las clases de complejidad P y NP?
  • ¿Cómo transfiere una reducción en tiempo polinomial la dureza de un problema a otro?
  • ¿Qué establece el teorema de Cook-Levin y por qué es central la satisfacibilidad?
  • ¿Cómo se demuestra que un nuevo problema es NP-completo mediante la reducción de uno conocido?
  • Una vez que un problema se demuestra NP-difícil, ¿qué estrategias algorítmicas quedan?

Key concepts

  • clase de complejidad P
  • clase de complejidad NP
  • reducción en tiempo polinomial
  • NP-dureza
  • NP-completitud
  • teorema de Cook-Levin
  • satisfacibilidad booleana (SAT)
  • pregunta P versus NP

Key theories

Teorema de Cook-Levin
El teorema de Cook-Levin demuestra que la satisfacibilidad booleana (SAT) es NP-completa: cada problema en NP se reduce a ella en tiempo polinomial, proporcionando el primer problema NP-completo y el ancla para demostrar la dificultad de otros.
Reducibilidad entre problemas combinatorios
Karp demostró que las reducciones en tiempo polinomial vinculan muchos problemas naturales —clique, cobertura de vértices, ciclo hamiltoniano, partición y otros— en una red de problemas NP-completos, de modo que cada uno puede demostrarse difícil mediante la reducción de otro.

Clinical relevance

Reconocer que un problema es NP-completo es uno de los resultados más útiles en la computación: indica a los ingenieros que no deben esperar un algoritmo exacto rápido y que, en su lugar, deben implementar algoritmos de aproximación, heurísticas, solucionadores exactos ajustados para instancias típicas o restricciones a casos especiales tratables. Muchos problemas de programación, enrutamiento, empaquetamiento y diseño son NP-completos.

History

Stephen Cook introdujo la NP-completitud en 1971, demostrando que SAT es NP-completo; Leonid Levin obtuvo resultados similares de forma independiente. El artículo de Richard Karp de 1972 mostró 21 problemas naturales NP-completos, estableciendo el alcance del marco. El libro de Garey y Johnson de 1979 catalogó cientos de problemas NP-completos y se convirtió en la referencia estándar.

Debates

P versus NP
Si P es igual a NP —si cada problema eficientemente verificable es también eficientemente resoluble— es el problema abierto más importante en el campo; casi todos los investigadores conjeturan que P no es igual a NP, pero la pregunta no está resuelta y es un problema del Premio del Milenio.

Key figures

  • Stephen Cook
  • Richard Karp
  • Leonid Levin
  • Michael Garey
  • David Johnson

Related topics

Seminal works

  • cook1971
  • karp1972
  • cormen2009

Frequently asked questions

¿Cuál es la diferencia entre NP-difícil y NP-completo?
Un problema es NP-difícil si cada problema NP se reduce a él en tiempo polinomial, pero no necesita estar en NP ni ser un problema de decisión. Un problema es NP-completo si es NP-difícil y está en NP. Los problemas NP-completos son los problemas más difíciles que aún están en NP.
¿Significa la NP-completitud que un problema nunca puede resolverse?
No. Significa que no se conoce un algoritmo en tiempo polinomial para todas las entradas y es probable que no exista ninguno si P no es igual a NP. En la práctica, estos problemas se abordan con algoritmos de aproximación, heurísticas, solucionadores de tiempo exponencial que funcionan en instancias realistas o restringiéndose a casos especiales.

Methods for this concept

Related concepts