Estoy un poco confundido por alguna terminología que he encontrado con respecto a la complejidad de los problemas de optimización. En una clase de algoritmos, tuve el gran problema de parsimonia descrito como NP-completo. Sin embargo, no estoy exactamente seguro de lo que significa el término NP-complete en el contexto de un problema de optimización. ¿Esto solo significa que el problema de decisión correspondiente es NP-completo? ¿Y eso significa que el problema de optimización puede ser más difícil (quizás fuera de NP)?
En particular, me preocupa el hecho de que, si bien un problema de decisión de NP completo es verificable en tiempo polinómico, una solución a un problema de optimización correspondiente no parece ser verificable en tiempo polinómico. ¿Significa eso que el problema no está realmente en NP, o la verificabilidad del tiempo polinomial es solo una característica de los problemas de decisión de NP?
fuente
Respuestas:
Un intento de una respuesta parcial:
Los problemas de decisión ya se investigaron durante algún tiempo antes de que aparecieran los problemas de optimización , en el sentido en que se tratan desde la perspectiva de los algoritmos de aproximación.
Debe tener cuidado al trasladar los conceptos de problemas de decisión. Se puede hacer y se puede dar una noción precisa de integridad de NP para problemas de optimización. Mira esta respuesta . Por supuesto, es diferente de la integridad de NP para problemas de decisión, pero se basa en las mismas ideas (reducciones).
Si se enfrenta a un problema de optimización que no permite una verificación con una solución factible, entonces no hay mucho que pueda hacer. Es por eso que generalmente se supone que:
De lo contrario, no hay mucho que podamos esperar lograr.
Si desea verificar que una solución no solo es factible, sino también óptima, diría que esto es tan difícil como resolver el problema de optimización original porque, para refutar una solución factible y posiblemente óptima dada como no óptima, tiene que dar una mejor solución, lo que puede requerir que encuentre la verdadera solución óptima.
Pero eso no significa que el problema de optimización sea más difícil. Vea esta respuesta , que depende, por supuesto, de las definiciones precisas.
fuente
La razón por la cual la mayoría de los problemas de optimización se pueden clasificar como P, NP, NP-completo, etc., son las condiciones de Kuhn-Tucker. Hablaré en términos de problemas de programación lineal, pero el KTC se aplica en muchos otros problemas de optimización. Para cada problema de optimización hay un doble. Si el objetivo en el problema original es maximizar alguna función, entonces el dual (generalmente) tiene una función que debe minimizarse. * Soluciones viables, pero no óptimas para el problema original serán inviables / inválidas para el problema dual, y viceversa. -versa. Si, y solo si, una solución es factible para el primario y el dual, es una solución óptima para ambos. (Técnicamente, puede ser una de una gran cantidad de soluciones óptimas que dan el mismo resultado).
Por lo tanto, encontrar una solución óptima para un problema de optimización es equivalente a encontrar una solución válida para el primario y el dual. Puede usar algoritmos de optimización para encontrar esa solución, pero el proceso general es una prueba de existencia.
fuente