¿Son los problemas NP completos también problemas NP difíciles? ¿Por qué?

Recapitulemos la definición de NP: un problema de decisión está en NP si existe una máquina de Turing no determinista que decide el problema en tiempo polinómico .

(Si alguna de las palabras anteriores es confusa o poco clara, entonces debe revisar los conceptos básicos de las máquinas de Turing y el no determinismo).

En general, una clase de complejidad (como NP ) es una colección (o conjunto) de problemas de decisión que se pueden resolver en un determinado límite de recursos (en este caso, tiempo polinómico) en un modelo específico (en este caso, TM no determinista ) Ahora, echemos un vistazo a este conjunto NP .

Ahora, supongamos que hay un problema especial (llámelo A) con una propiedad muy especial. Cada problema B en NP es poli-tiempo reducible al problema A. Dicho en términos generales, significa que si puede resolver A en un determinado límite de tiempo (podría ser exponencial, polinomial, poli-log, super-exponencial, cualquier cosa), entonces puede usarlo (solo con tiempo extra polinómico) para decidir una instancia en B. Básicamente, cada instancia de SÍ en B se asigna a una instancia de SÍ en A y cada instancia de NO en B se asigna a una instancia de NO en A y esta asignación se puede calcular en polytime. Por lo tanto, en polytime, puede reducir cualquier instancia de B a una instancia de A y decimos que resolver B es tan difícil como resolver A. Esto tiene sentido intuitivo ya que resolver A me da una solución a B (a través del mapeo polytime). Recuerde que dijimos que B es cualquier problema en NP , por lo que el problema A es tal que cualquier problema en NP es politemporalmente reducible. Decimos que A es NP-duro .

Observe un hecho extraño sobre A arriba: ¡no necesita estar en NP ! Piénselo, solo porque pueda resolver cualquier problema en NP usando A no significa que A esté en NP . Por lo tanto, el conjunto de problemas NP-hard no necesita ser un subconjunto de NP .

Supongamos que tomo una intersección de estos dos conjuntos: NP-hard y NP . Esto me da un conjunto de problemas tales que para cada problema en este conjunto,

  1. Está en NP.
  2. Todos los problemas en NP son politemporales reducibles a este problema (es decir, estos problemas son NP-hard ).

Llamamos a este conjunto de problemas NP-complete .

Espero que esto ayude 🙂

More Interesting

¿Cuál es el algoritmo para el deporte de fantasía diario?

¿Cómo calculamos la complejidad espacio-temporal de un algoritmo?

Dada la matriz a [n + 1] de elementos 1 <= a [i] <= n, ¿de cuántas maneras podemos elegir k de n + 1 sin repetición?

Un árbol binario completamente equilibrado tiene 187 hojas. ¿Cuál es la altura del árbol?

¿Cuál es la forma más eficiente para que un programador principiante entienda las tablas hash y los intentos?

¿Cuál es la diferencia entre hashing perceptual y hashing local sensible?

¿Un cerebro humano tiene un algoritmo? Si se descifran los algoritmos del cerebro humano, ¿qué sucede? ¿Se usa en inteligencia artificial?

Cómo agregar dos matrices en Java e inicializar la tercera matriz con la suma de los dos elementos correspondientes de las dos matrices

Cómo usar el caso del interruptor en Java

¿Qué haces si la resolución de un problema de algoritmo lleva demasiado tiempo?

¿Cuáles son los algoritmos para determinar si un punto está dentro de una forma cerrada arbitraria o no?

Una función de densidad de probabilidad, f, no es cero cuando a <x 0. ¿Cuáles son las restricciones en a, by k?

¿Qué tipo de algoritmo es efectivo (95-100%) para detectar hasta 15 dentro de una habitación?

¿Por qué muchos elementos utilizados en la función objetivo de un algoritmo de aprendizaje asumen todas las características centradas en cero y tienen una varianza en el mismo orden?

¿Cuál es el algoritmo de la suma de los primeros 20 números naturales?