¿Cuáles son algunos problemas de NP que no son NP-hard?

Recuerde que P [math] \ subseteq [/ math] NP. Tenga en cuenta que, por razones pragmáticas, supongo que P! = NP, por lo tanto, debe mirar la imagen que vinculé a continuación para obtener la imagen completa si desea si P = NP. Si no hace esta distinción, creo que la respuesta de Dave Buchfuhrer a ¿Cuáles son algunos problemas de NP que no son NP-hard? esto cubre bien esa base.

Fuente: NP-hardness – Wikipedia

Claro, así es como puede mostrar que la variante de decisión del problema del Árbol de expansión mínimo está en NP. Suponiendo que P! = NP, entonces este es un problema que no es NP-hard.

Expresaré el problema MST de la siguiente manera:

Dado un gráfico conectado [matemática] G [/ matemática], ¿existe un árbol de expansión mínimo con un peso total como máximo [matemática] k [/ matemática]?

Sabemos cómo resolver este problema en tiempo polinómico (el problema de optimización y la versión de decisión de este problema), por lo tanto, se encuentra en P. No es NP-hard.

Demostremos que está en NP dada una posible solución al problema. A continuación se explica cómo puede verificar si es una respuesta SÍ / NO en tiempo polinómico.

  • Primero verifique que el gráfico proporcionado es un árbol de expansión. Si no es un árbol de expansión, rechace y diga NO. No es difícil ver cómo puedes comprobar esto.
  • Verifique la suma de los pesos en el árbol de expansión, si excede [math] k [/ math], luego diga NO.

Si ninguno de los pasos anteriores devuelve NO, entonces debe ser una instancia SÍ.

Muchos de los problemas de optimización solucionable de tiempo polinómico que generalmente encuentra en los cursos de pregrado son problemas de NP que satisfacen lo que está buscando bajo los supuestos que he hecho. Cosas como el problema del camino más corto, el problema del flujo máximo, entre muchos otros.

Por definición, P está contenido en NP. Si P [math] \ ne [/ math] NP, cualquier problema que esté en P (también en NP) no puede ser NP-hard. Entonces toda la clase P será un candidato positivo para esta pregunta.

Si P = NP, entonces todos los problemas de NP serán NP-duros bajo reducciones de tiempo polinomiales. Entonces no hay candidato positivo.

Además, si P [matemáticas] \ ne [/ matemáticas] NP, entonces, según el Teorema de Ladner, habrá problemas en la clase NP que no estarán en la clase P ni en la clase NP-hard. Pero a partir de ahora no sabemos si alguno de estos problemas tiene alguna descripción natural. Para obtener más información, consulte la página “NP-intermedio – Wikipedia”.

Otro caso interesante es cuando ETH (hipótesis de tiempo exponencial) es verdadera, es decir, no solo NP [matemática] \ nsubseteq [/ matemática] P, también NP [matemática] \ nsubseteq [/ matemática] sub-exponencial. El hecho de que ETH sea cierto implicará que ningún problema que pueda resolverse en un tiempo cuasi polinomial ([math] n ^ {poly (\ log n)} [/ math]) puede ser NP-hard. GI (Graph isomorphism – Wikipedia) es un problema interesante y se cree que es un candidato positivo para esta pregunta debido a las siguientes dos razones:

i) A pesar de que muchos grupos de investigación lo intentaron durante años, hasta hoy GI no tiene ningún algoritmo de tiempo polinómico.

ii) Recientemente, Laszlo Babai dio un algoritmo de tiempo cuasi-polinomial para IG (que aún no ha sido examinado).

Como se señaló en la respuesta de Jens Oliver Gutsfeld, los dos idiomas triviales [matemáticas] \ Sigma ^ * [/ matemáticas] (el idioma que contiene todos los elementos) y [matemáticas] \ conjunto vacío [/ matemáticas] (el idioma que no contiene elementos) están en NP pero no NP-hard. Esto es necesariamente cierto porque no se puede reducir a un lenguaje que no tiene elementos y elementos que no están en él. Entonces, incluso si P es igual a NP, estos dos lenguajes (que están claramente en NP) no son NP-hard. Si P es igual a NP, son los únicos dos lenguajes de este tipo.

Si P no es igual a NP, entonces todos los problemas en P están en NP pero no NP-hard. Los ejemplos incluyen probar si una lista está ordenada, probar si un gráfico está conectado y probar si dos cadenas son anagramas entre sí. La mayoría de los problemas que encuentras están en P.

No existen tales problemas probados, porque la existencia de un problema NP que no es NP-hard implicaría P ≠ NP (de hecho, si P = NP, cada problema NP es NP-hard).

Pero se sospecha que varios problemas están en NP sin ser NP-Hard. Un buen ejemplo es el problema del isomorfismo gráfico.

Problema de isomorfismo gráfico – Wikipedia

ISPRIME fue durante un tiempo sospechoso de estar en NP sin ser NP-Hard. Pero de hecho fue en P.

[math] \ Sigma ^ * [/ math] y [math] \ emptyset [/ math]. Además, si P = NP, todos los problemas son NP-hard y si P [math] \ not = [/ math] NP, la pregunta es mucho más difícil de responder. En primer lugar, todos los problemas en P no serían NP-hard entonces, pero también habría otros problemas que no son NP-hard debido al teorema de Ladner.

More Interesting

¿Podemos realizar criptografía utilizando inteligencia artificial?

¿Por qué se usan computadoras en los aeropuertos?

¿Cómo convierte Quora la URL en texto legible?

Informática: ¿Cuál es la relación entre el modelo tópico y el modelo de inclusión de palabras, algún ejemplo?

Mis auriculares no reproducen sonido de alta frecuencia, parece estar con un cableado defectuoso. Pero, ¿por qué solo se bloquean los sonidos de alta frecuencia? ¿Es esto físicamente posible?

¿Cómo crear documentación para un proyecto de software? ¿Qué debo escribir en la documentación?

Mi profesor piensa que para construir una función de salida de regresión de 9 espacios de estado dimensionales y = f (X), ¿solo se necesitan 18 puntos para construir esta función?

¿El estudio de algoritmos es relevante para el desarrollo actual?

¿Por qué Wikipedia no tiene una función de texto a voz?

¿Qué implica una prueba de sistema no funcional?

¿Qué hago si Skype muestra "No se puede iniciar una videollamada"? ¿Intenta cerrar otros programas que podrían estar usando su cámara web?

¿Por qué es importante XOR en criptografía?

¿Cómo aprendo matemáticas del nivel cero? Soy un graduado en informática y bastante decente en mi función de programación. Extraño el contexto del uso de las matemáticas en la vida; No puedo visualizarlo.

¿Hay alguna diferencia entre float * a y float * a?

Usando la potencia de procesamiento de todas las supercomputadoras más potentes del mundo, ¿cuánto tiempo y energía se necesitaría para renderizar cada imagen posible dentro de un lienzo de 500 × 500 píxeles con una profundidad de color de 8 bits?