¿Es una regla que los problemas discretos son NP-hard y los problemas continuos no lo son?

27

En mi educación en ciencias de la computación, noto cada vez más que la mayoría de los problemas discretos son NP completos (al menos), mientras que la optimización de problemas continuos es casi siempre fácil de lograr, generalmente a través de técnicas de gradiente. ¿Hay excepciones a esto?

alekdimi
fuente
14
Seguramente hay muchos de ellos. La coincidencia bipartita y general, y los cortes mínimos son tres problemas discretos que se pueden resolver con tiempo polinómico clásico. Muchos problemas continuos de optimización no convexa son NP-difíciles: encontrar el diámetro de un conjunto convexo o calcular la norma inyectiva de un tensor tridimensional.
Sasho Nikolov
66
Aquí hay un problema simple de optimización continua que es NP-difícil de resolver: cstheory.stackexchange.com/questions/14630/…
Jukka Suomela
8
No estoy seguro de qué problemas tiene en mente, pero muchos problemas continuos que se "resuelven" mediante métodos de gradiente no se resuelven realmente: el método simplemente encuentra algún tipo de óptimo local.
Suresh Venkat
1
Todas las respuestas hasta ahora parecen ser contraejemplos, pero sería bueno ver algunos casos en los que esta regla parece ser cierta. Dos que vienen a la mente son la programación lineal versus la programación entera y la optimización convexa versus la maximización submodular.
usul
13
Creo que todo lo discreto vs continuo es un arenque rojo. Un problema tiene que tener una estructura muy especial para poder solucionarlo de manera eficiente. Creo que la verdadera diferencia aquí es que en el caso de problemas continuos fáciles, la estructura especial tiende a ser convexa, mientras que en el caso de problemas discretos fáciles, las cosas parecen más complicadas: a veces la estructura es submodularidad o intersección matroide, pero a menudo no lo es. Esto probablemente tenga más que ver con el hecho de que todavía no entendemos muy bien las matemáticas discretas.
Sasho Nikolov

Respuestas:

41

Un ejemplo que me encanta es el problema donde, dado distinto , deciden si: π - π cos ( a 1 z ) cos ( a 2 z ) ... cos ( a n z )una1,una2,...,unanortenorte

ππcos(a1z)cos(a2z)cos(anz)dz0

Al principio, esto parece un problema continuo para evaluar esta integral, sin embargo, es fácil demostrar que esta integral no es cero si existe una partición equilibrada del conjunto , por lo que este problema integral es en realidad NP-completo.{una1,...,unanorte}

Por supuesto, animo a jugar con algunas herramientas numéricas para convencerse de que la mayoría (si no todos) los trucos numéricos para evaluar esta integral están condenados al fracaso una vez que sea ​​lo suficientemente grande.norte

Joe Bebel
fuente
44
Ya que estamos en el tema, la referencia más temprana a este problema que puedo encontrar está en "La naturaleza de la computación" de Moore y Mertens. No proporcionan ninguna referencia, por lo que supongo que lo inventaron o provienen del folklore. Agradecería si alguien conoce la fuente de este problema.
Joe Bebel
Es de suponer que no sólo la mayoría, pero todas las técnicas numéricas escalará catastróficamente para lo suficientemente grande como ? Como el problema es NP-completo, una técnica numérica precisa para evaluar esa integral que se escala polinomialmente en n sería suficiente para mostrar P = NP. nortenorte
EP
1
Correcto, un algoritmo que siempre evalúa esa integral correctamente en el polinomio en el tiempo en sería suficiente para mostrar P = NP. Por otro lado, no puedo descartar al 100% la posibilidad de ciertas técnicas numéricas que no conozco que de alguna manera funcionen bien en instancias específicas de esta integral, incluso cuando n es grande, al igual que a menudo los solucionadores SAT para encontrar asignaciones satisfactorias para algunas fórmulas con miles de variables, a pesar de que el peor de los casos es malo. Entonces, incluso si dudo que existan tales métodos, he cubierto mi respuesta un poco. nortenorte
Joe Bebel
3
Aparentemente, la fuente original de este problema es: David Plaisted, Algunos problemas de divisibilidad de polinomios y enteros son NP-hard. SIAM Journal on Computing, 7 (4): 458–464, 1978. La referencia está en la parte posterior de Moore y Mertens, pero no en el cuerpo del texto en sí.
Joe Bebel
26

Hay muchos problemas continuos de la forma "prueba si esta entrada combinatoria puede realizarse como una estructura geométrica" ​​que están completos para la teoría existencial de los reales , un análogo continuo de NP. En particular, esto implica que estos problemas son NP-hard en lugar de polinomialmente solucionables. Los ejemplos incluyen probar si un gráfico dado es un gráfico de distancia unitaria, si un gráfico dado se puede dibujar en el plano con bordes de segmento de línea recta y como máximo un número dado de cruces, o si una disposición de pseudolina dada se puede estirar para formar una línea arreglo.

Hay otros problemas continuos que son aún más difíciles: por ejemplo, encontrar un camino más corto entre los obstáculos poliédricos en 3D es completo para PSPACE (Canny & Reif, FOCS'87).

David Eppstein
fuente
1
El 'camino más corto entre obstáculos poliédricos' es continuo solo de nombre, ¿no? Podemos pensar en el espacio de configuración como una unión de una serie de piezas discretas correspondientes a caminos que "abrazan" un conjunto dado de obstáculos; entonces la optimización local dentro de cada pieza dada (es decir, dentro de cualquier conjunto de obstáculos) es sencillo, pero decidir cuál de los caminos tiene la mejor distancia global es la parte difícil del problema.
Steven Stadnicki
13

Si bien esto no responde exactamente a su pregunta original, es un ejemplo (conjetural) de una especie de contrapunto filosófico: un problema donde la presentación es discreta pero toda la dureza proviene del aspecto 'continuo' del problema.

El problema es el problema de la suma de las raíces cuadradas : dados dos conjuntos de enteros y B = { b 1 , b 2 , ... , b n } , es m i = 1UNA={una1,una2,...,unametro}si={si1,si2,...,sinorte}yo=1metrounayoj=1nortesijdifícil, se sospecha ampliamente que puede ser NP-duro y de hecho puede estar fuera de NP (hay, como se señaló en los comentarios, excelentes razones para creer que no es NP-completo); la única contención conocida hasta la fecha es varios niveles más arriba en la jerarquía polinómica. Obviamente, la presentación de este problema es lo más discreta posible (un conjunto de enteros y una pregunta de sí / no sobre ellos), pero el desafío surge porque si bien calcular las raíces cuadradas con cualquier precisión específica es un problema fácil, es posible que sea necesario calcularlas. a una precisión alta (potencialmente superpolinómica) para resolver la desigualdad de una forma u otra. Este es un problema 'discreto' que surge en un sorprendente número de contextos de optimización y ayuda a contribuir a su propia complejidad.

Steven Stadnicki
fuente
44
También me gusta mucho este ejemplo, aunque vale la pena señalar que existen fuertes razones para creer que no está completo para NP; ver ( cstheory.stackexchange.com/a/4010/8985 )
Joe Bebel el
@JoeBebel Muy buen punto: he revisado mi lenguaje ligeramente para reflejar eso. ¡Gracias!
Steven Stadnicki
6

Los problemas discretos generalmente tienden a ser más difíciles (por ejemplo, LP frente a ILP), pero no es la discreción en sí misma el problema ... es cómo las restricciones afectan cómo puedes buscar en tu dominio. Por ejemplo, puede pensar que optimizar un polinomio es algo que puede hacer eficientemente, pero decidir la convexidad de los cuartos (polinomios de grado 4) es NP-difícil .

Lo que significa que incluso si ya tiene el óptimo de alguna manera, simplemente demostrar que está en el óptimo ya es NP-hard.

Mehrdad
fuente
Creo que la discreción también es parte del problema. Digamos, por ejemplo, que tendría un ILP varant de LP. Por ejemplo, puede buscar la solución para la variante LP, pero aún hay 2^n" vecinos interesantes " que debe buscar.
Willem Van Onsem
@CommuSoft: No realmente ... la discreción no es el problema. Vea el problema de la ruta más corta , que es un problema discreto pero que, sin embargo, se reduce a un caso especial de programación lineal integral , que es solucionable en el tiempo P (no debe confundirse con la programación lineal entera , que obviamente es NP-hard).
Mehrdad
eso no es realmente una sorpresa: dado que la programación lineal entera es NP-completa, cada problema en P (que se puede resolver en tiempo poli), se puede transformar en tiempo poli en un problema ILP.
Willem Van Onsem
@CommuSoft: ¿Leíste el comentario completamente? No estoy hablando de ILP.
Mehrdad
lo siento, lee rápido. Pero aún así se debe a que las restricciones son totalmente unimodulares , por lo que solo por la "gracia" de restricciones bien estructuradas, estos problemas son fáciles de resolver. En general, la discretización es un aspecto problemático en los problemas.
Willem Van Onsem
5

Aunque para algunos problemas populares, es cierto, creo que ambos supuestos son, dependiendo de lo que defina como un problema de optimización, no son ciertos.

Primero algunas definiciones: la mayoría de los problemas de optimización no son parte de NP . Por ejemplo, para el problema de la mochila : no se puede explotar el no determinismo para construir la bolsa más valiosa, simple porque las diferentes ramas no deterministas no tienen memoria compartida. NP también se define como "polinomialmente verificable" (verificar un certificado) [1, p. 34]. En este caso, el certificado es, por ejemplo, una bolsa : una cadena de bits en la que si se establece el i -ésimo bit, implica que el ítem i -ésimo es parte de la bolsa. De hecho, puede verificar en el tiempo polinómico si dicha bolsa es más valiosa que un umbral dado (esta es la variante de decisión), pero, hasta donde sabemos, no puede, basándose en una sola bolsa (un número polinómico de bolsas), decidir si esa bolsa es la más valiosa de todas las bolsas posibles. Esa es una diferencia vital entre, por ejemplo, NP y EXP : en EXP , puede enumerar todas las bolsas posibles y llevar la contabilidad sobre cuál es la mejor bolsa.

La variante de decisión de los problemas de optimización es en algunos casos parte de NP , uno necesita hacer una distinción clara entre el sabor de maximización y el sabor de decisión . En el sabor de la decisión, la pregunta es: " Dado un problema de optimización y un límite de utilidad, ¿existe una solución con un límite mayor o igual a ese límite de utilidad " (o ligeramente modificado para un problema de minimización).

También supongo que por NP te refieres a la parte (hipotética) de NP que no es parte de P . Si P = NP , por supuesto, NP-complete todavía existe, pero será igual a P (solo coincide con P para algunas nociones de reducción, como reducciones de tiempo múltiple polinomial por @ AndrásSalamon), lo que no es tan impresionante ( y reduciría la " brecha " que está indicando en su pregunta).

Cada vez más noto que la mayoría de los problemas discretos son NP completos.

Ahora que lo hemos resuelto: hay muchos problemas de optimización en P : problema de ruta más corta , problema de flujo máximo (para capacidades integrales), árbol de expansión mínima y coincidencia máxima . Aunque estos problemas pueden parecerle "triviales de resolver", siguen siendo problemas de optimización y, en muchos casos, la construcción (y la prueba de su corrección) no es tan fácil. Por lo tanto, el reclamo no contiene todos los problemas discretos que son NP completos. Dado que P no es igual a NP , estos problemas no pueden ser NP completos .

ΣyoPAGS

Mientras que la optimización de problemas continuos es casi siempre fácil de lograr.

Un problema continuo popular que es NP-hard es la programación cuadrática .

X

XTQX2+doTX
se minimiza satisfactoriamente:

UNAXsi

En realidad, la programación lineal también se considera desde hace mucho tiempo NP-hard , pero con una heurística de muy buen rendimiento (el método Simplex ). Sin embargo, el algoritmo de Karmarkar está en P .

Desde el momento en que el problema de optimización se ocupa de objetos no convexos, en general será difícil, si no imposible, encontrar un algoritmo eficiente.

Bibliografía

[1] Complejidad computacional, un enfoque moderno , Sanjeev Arora y Boaz Barak

Willem Van Onsem
fuente
2
El párrafo de definiciones es, de hecho, algo confuso. La mochila es un problema de optimización de NP. No es cierto que "no se sabe" si la versión de optimización está en NP: no lo es, simplemente por definición. Además, no creo que conozcamos ningún problema que sea NP-completo condicional en NP que no sea igual a PIe-3-SAT será NP-completo incluso si P = NP (en realidad si P = NP cada problema en P es NP completo).
Sasho Nikolov
@ AndrásSalamon: punto tomado. Quité esa parte. De hecho fue un poco descuidado.
Willem Van Onsem
@ AndrásSalamon: evidentemente eso es cierto. Por lo tanto, dice: " Dado que P no es igual a NP, estos problemas, por lo tanto, no pueden completarse NP " .
Willem Van Onsem
@ AndrásSalamon: Bueno P=NP, si todos los problemas en NP-complete son, por definición, parte de NP y, por lo tanto, al extender P , ahora P significa que hay un algoritmo polinomial. El punto es que creo que la transformación no importa, porque para cada lenguaje en P debe existir un algoritmo polinómico. Si toma la transformación (como máximo polinomial) o no, es irrelevante. Queda polinomio, así en P . En otras palabras, debido a que el elemento original está en P , puede tomar todas las transformaciones de poli-tiempo de forma gratuita (lo que no resulta en una clase de complejidad más alta).
Willem Van Onsem
2
La mochila como un problema de optimización ciertamente no es NP completa, porque no es un problema de decisión, por lo tanto, no en NP. En cualquier caso, entiendo lo que está diciendo, pero este es el tipo de detalles de nivel universitario que creo que deberían darse por sentados en un foro de nivel de investigación como CStheory @ SE, así como no espero ver una explicación acerca de cómo la convergencia en la probabilidad no es lo mismo que una convergencia casi segura en Mathoverflow.
Sasho Nikolov