La optimización combinatoria es un subcampo de la optimización matemática que consiste en encontrar un objeto óptimo a partir de un conjunto finito de objetos, [1] donde el conjunto de soluciones factibles es discreto o puede reducirse a un conjunto discreto. Los problemas típicos de optimización combinatoria son el problema del viajante ("TSP"), el problema del árbol de expansión mínimo ("MST") y el problema de la mochila . En muchos de estos problemas, como los mencionados anteriormente, la búsqueda exhaustiva no es factible, por lo que se debe recurrir en su lugar a algoritmos especializados que descartan rápidamente grandes partes del espacio de búsqueda o a algoritmos de aproximación.
Para problemas de optimización discreta NP-completos , la literatura de investigación actual incluye los siguientes temas:
Casos especiales del problema en cuestión que se pueden resolver exactamente en tiempo polinomial (por ejemplo, problemas manejables con parámetros fijos )
resolver instancias del mundo real que surgen en la práctica y no necesariamente exhiben el peor comportamiento en problemas NP-completos (por ejemplo, instancias TSP del mundo real con decenas de miles de nodos [5] ).
Los problemas de optimización combinatoria pueden considerarse como la búsqueda del mejor elemento de un conjunto de elementos discretos; por lo tanto, en principio, se puede utilizar cualquier tipo de algoritmo de búsqueda o metaheurística para resolverlos. Los enfoques ampliamente aplicables incluyen ramificación y acotación (un algoritmo exacto que se puede detener en cualquier momento para que sirva como heurística), ramificación y corte (utiliza la optimización lineal para generar acotamientos), programación dinámica (una construcción de solución recursiva con una ventana de búsqueda limitada) y búsqueda tabú (un algoritmo de intercambio de tipo voraz). Sin embargo, no se garantiza que los algoritmos de búsqueda genéricos encuentren primero una solución óptima, ni se garantiza que se ejecuten rápidamente (en tiempo polinomial). Dado que algunos problemas de optimización discretos son NP-completos , como el problema del viajante (decisión), [6] esto es de esperar a menos que P=NP .
Para cada problema de optimización combinatoria, existe un problema de decisión correspondiente que pregunta si existe una solución factible para alguna medida particular . Por ejemplo, si hay un gráfico que contiene vértices y , un problema de optimización podría ser "encontrar un camino desde a que use la menor cantidad de aristas". Este problema podría tener una respuesta de, digamos, 4. Un problema de decisión correspondiente sería "¿hay un camino desde a que use 10 o menos aristas?" Este problema se puede responder con un simple 'sí' o 'no'.
El campo de los algoritmos de aproximación se ocupa de algoritmos para encontrar soluciones casi óptimas a problemas difíciles. La versión de decisión habitual es entonces una definición inadecuada del problema, ya que sólo especifica soluciones aceptables. Aunque podríamos introducir problemas de decisión adecuados, el problema se caracterizaría entonces de forma más natural como un problema de optimización. [7]
Problema de optimización NP
Un problema de optimización NP (NPO) es un problema de optimización combinatoria con las siguientes condiciones adicionales. [8] Nótese que los polinomios a los que se hace referencia a continuación son funciones del tamaño de las entradas de las respectivas funciones, no del tamaño de algún conjunto implícito de instancias de entrada.
el tamaño de cada solución factible está acotado polinomialmente en el tamaño de la instancia dada ,
Esto implica que el problema de decisión correspondiente está en NP . En informática, los problemas de optimización interesantes suelen tener las propiedades anteriores y, por tanto, son problemas NPO. Un problema se denomina además problema de optimización P (PO) si existe un algoritmo que encuentra soluciones óptimas en tiempo polinomial. A menudo, cuando se trata de la clase NPO, uno está interesado en problemas de optimización para los que las versiones de decisión son NP-completas . Tenga en cuenta que las relaciones de dureza siempre son con respecto a alguna reducción. Debido a la conexión entre los algoritmos de aproximación y los problemas de optimización computacional, las reducciones que preservan la aproximación en algún aspecto son preferidas para este tema que las reducciones habituales de Turing y Karp . Un ejemplo de tal reducción sería la reducción L. Por esta razón, los problemas de optimización con versiones de decisión NP-completas no necesariamente se denominan NPO-completas. [9]
La NPO se divide en las siguientes subclases según su aproximabilidad: [8]
NPO(II) : es igual a PTAS . Contiene el problema de programación Makespan .
NPO(III) : La clase de problemas NPO que tienen algoritmos de tiempo polinomial que calculan soluciones con un costo como máximo c veces el costo óptimo (para problemas de minimización) o un costo al menos igual al costo óptimo (para problemas de maximización). En el libro de Hromkovič [ ¿cuál? ] , se excluyen de esta clase todos los problemas NPO(II) excepto si P=NP. Sin la exclusión, es igual a APX. Contiene MAX-SAT y TSP métrico .
NPO(IV) : La clase de problemas NPO con algoritmos de tiempo polinómico que aproximan la solución óptima mediante una razón que es polinómica en un logaritmo del tamaño de la entrada. En el libro de Hromkovič, todos los problemas NPO(III) están excluidos de esta clase a menos que P=NP. Contiene el problema de cobertura de conjuntos .
NPO(V) : la clase de problemas NPO con algoritmos de tiempo polinomial que aproximan la solución óptima mediante una relación limitada por alguna función en n. En el libro de Hromkovic, todos los problemas NPO(IV) están excluidos de esta clase a menos que P=NP. Contiene el problema TSP y el problema de camarilla .
Un problema NPO se denomina polinomialmente acotado (PB) si, para cada instancia y para cada solución , la medida está acotada por una función polinomial del tamaño de . La clase NPOPB es la clase de problemas NPO que están acotados polinomialmente.
^ Sbihi, Abdelkader; Eglese, Richard W. (2007). "Optimización combinatoria y logística verde" (PDF) . 4OR . 5 (2): 99–116. doi :10.1007/s10288-007-0047-3. S2CID 207070217. Archivado (PDF) desde el original el 26 de diciembre de 2019. Consultado el 26 de diciembre de 2019 .
^ Eskandarpour, Majid; Dejax, Pierre; Miemczyk, Joe; Péton, Olivier (2015). "Sustainable supply chain network design: An optimized-oriented review" (PDF) . Omega . 54 : 11–32. doi :10.1016/j.omega.2015.01.006. Archivado (PDF) desde el original el 2019-12-26 . Consultado el 2019-12-26 .
^ Hobé, Alex; Vogler, Daniel; Seybold, Martin P.; Ebigbo, Anozie; Settgast, Randolph R.; Saar, Martin O. (2018). "Estimación de caudales de fluidos a través de redes de fracturas mediante optimización combinatoria". Avances en recursos hídricos . 122 : 85–97. arXiv : 1801.08321 . Código Bibliográfico :2018AdWR..122...85H. doi :10.1016/j.advwatres.2018.10.002. S2CID 119476042. Archivado desde el original el 21 de agosto de 2020 . Consultado el 16 de septiembre de 2020 .
^ Cocinar 2016.
^ "Aproximación-TSP" (PDF) . Archivado (PDF) del original el 2022-03-01 . Consultado el 2022-02-17 .
^ Ausiello, Giorgio; et al. (2003), Complejidad y aproximación (edición corregida), Springer, ISBN978-3-540-65431-5
^ ab Hromkovic, Juraj (2002), Algoritmia para problemas difíciles , Textos en informática teórica (2.ª ed.), Springer, ISBN978-3-540-44134-2
^ Kann, Viggo (1992), Sobre la aproximabilidad de problemas de optimización NP-completos , Instituto Real de Tecnología, Suecia, ISBN91-7170-082-X
^ Tomemos una ciudad y tomemos todos los órdenes posibles de las otras 14 ciudades. Luego dividamos por dos, porque no importa en qué dirección en el tiempo aparezcan una después de la otra: 14!/2 = 43.589.145.600.
Referencias
Beasley, JE "Programación entera" (notas de clase).
Cook, William (2016). “Viajes óptimos de TSP”. Universidad de Waterloo . (Información sobre las instancias de TSP más grandes resueltas hasta la fecha).
Crescenzi, Pierluigi; Kann, Viggo; Halldórsson, Magnús; Karpinski, Marek ; Woeginger, Gerhard (eds.). "Un compendio de problemas de optimización de NP". (Este es un catálogo continuamente actualizado de resultados de aproximabilidad para problemas de optimización NP).
Das, Arnab; Chakrabarti, Bikas K , eds. (2005). Recocido cuántico y métodos de optimización relacionados . Apuntes de clase en física. Vol. 679. Springer. Bibcode :2005qnro.book.....D. ISBN 978-3-540-27987-7.
Lee, Jon (2004). Un primer curso de optimización combinatoria. Cambridge University Press. ISBN 0-521-01012-8.
Papadimitriou, Christos H.; Steiglitz, Kenneth (julio de 1998). Optimización combinatoria: algoritmos y complejidad . Dover. ISBN 0-486-40258-4.
Schrijver, Alexander (2003). Optimización combinatoria: poliedros y eficiencia. Algoritmos y combinatoria. Vol. 24. Springer. ISBN 9783540443896.
Schrijver, Alexander (2005). "Sobre la historia de la optimización combinatoria (hasta 1960)" (PDF) . En Aardal, K .; Nemhauser, GL; Weismantel, R. (eds.). Manual de optimización discreta . Elsevier. págs. 1–68.
Schrijver, Alexander (1 de febrero de 2006). Un curso de optimización combinatoria (PDF) .
Sierksma, Gerard; Ghosh, Diptesh (2010). Redes en acción: ejercicios de texto y computadora sobre optimización de redes . Springer. ISBN 978-1-4419-5512-8.
Gerard Sierksma; Yori Zwols (2015). Optimización lineal y entera: teoría y práctica . Prensa CRC. ISBN 978-1-498-71016-9.
Pintea, CM. (2014). Avances en computación bioinspirada para problemas de optimización combinatoria. Biblioteca de referencia de sistemas inteligentes. Springer. ISBN 978-3-642-40178-7.
Enlaces externos
Wikimedia Commons tiene medios relacionados con Optimización combinatoria .
Revista de optimización combinatoria
Taller de optimización combinatoria de Aussois
Plataforma de optimización combinatoria de Java (código fuente abierto)
¿Por qué es difícil programar personas?
Clases de complejidad para problemas de optimización / Stefan Kugele [ enlace roto ]