¿Cómo va NP-hard dentro de NP-complete? Si encontramos un algoritmo no determinista para NP-hard, ¿sería un NP-complete?

Es importante recordar la definición de NP-completo. Una forma común de definirlo es que es un problema de decisión si está NP completo si es NP-duro y está en NP. Entonces, todo lo que tiene que hacer es demostrar que su problema de decisión tiene un algoritmo de tiempo polinomial no determinista para ser NP completo.

NP-hard significa que el problema es al menos tan difícil como los problemas más difíciles en NP. Por lo tanto, mostrar que pertenece a NP los convierte en NP completos, ya que deben ser los problemas más difíciles en NP. Eso significa que puede haber problemas que son NP-hard pero no NP-complete.

Muchos problemas que estudiamos son NP-hard, pero no necesitan (técnicamente) NP-complete ya que no son problemas de decisión; Tales ejemplos tienden a ser problemas de optimización. La variante de decisión de un problema de optimización NP-hard será NP-complete. Esto no es cierto para todos los problemas NP-hard, es solo la estructura de los problemas de optimización NP (NPO) típicamente. Por lo general, entre los investigadores, la forma en que los investigadores estudian estos problemas hace que esta diferencia sea generalmente un punto técnico, ya que normalmente sabemos cómo resolver este tipo de problemas de optimización si tuviéramos un algoritmo de tiempo múltiple para la variante de decisión (por ejemplo, usando la búsqueda binaria).

Ahora, para mostrar que un problema NP-difícil no está en NP, todo lo que necesita hacer es mostrar que no puede estar en NP (si lo fuera, entonces obtenemos que el problema es NP-completo). Los problemas que son problemas de NPO simplemente no encajan en el NP establecido, ya que generalmente no son problemas de decisión (es por eso que usamos el término variante de decisión ), pero que yo sepa, esto no es algo trivial. con cualquier problema dado y será específico del problema. Por ejemplo, sabemos que el problema de detención definitivamente no está en NP (ni siquiera pertenece a RE), pero es NP-hard (ver ¿Por qué es difícil detener el problema de NP?) Porque es al menos tan difícil como Todos los problemas en NP. También hay más discusión sobre otros enfoques: ¿Cómo demostrar que un problema NO es NP-Complete?

Aquí hay un poco más de discusión sobre esto: ¿Los problemas difíciles de NP que no son NP completos son más difíciles?

¡Espero que esto ayude!

Hay tres tipos de problemas NP-hard:

  1. NP-completo;
  2. Optimización, construcción o cualquier versión que no sea la versión de decisión de un problema NP-completo; y
  3. Problemas que se encuentran en una clase de mayor complejidad que NP.

El caso 2 es inútil ya que no son problemas de decisión.

Para un problema de decisión en el caso 3, simplemente dar un algoritmo no determinista no es suficiente para completar NP. El algoritmo debe ejecutarse en tiempo polinómico. Existen problemas de decisión en clases de mayor complejidad para los cuales no se conoce ningún algoritmo no determinista de tiempo polinómico hasta la fecha (por ejemplo, cualquier problema NPSPACE / PSPACE-complete).