Articulo de referencia

Optimización global determinista

La optimización global determinista es una rama de la optimización matemática que se centra en encontrar las soluciones globales de un problema de optimización, proporcionando g...

La optimización global determinista es una rama de la optimización matemática que se centra en encontrar las soluciones globales de un problema de optimización, proporcionando garantías teóricas de que la solución obtenida es, efectivamente, la global, dentro de una tolerancia predefinida. El término "optimización global determinista" se refiere generalmente a métodos de optimización completos o rigurosos (véase más adelante). Los métodos rigurosos convergen al óptimo global en un tiempo finito. Los métodos de optimización global determinista se utilizan normalmente cuando es imprescindible encontrar la solución global (es decir, cuando el único estado que se da de forma natural descrito por un modelo matemático es el mínimo global de un problema de optimización), cuando es extremadamente difícil encontrar una solución factible o, simplemente, cuando el usuario desea encontrar la mejor solución posible a un problema.

Descripción general

Neumaier [ 1 ] clasificó los métodos de optimización global en cuatro categorías, dependiendo del grado de rigor con el que se aproximan al óptimo, de la siguiente manera:

  • Un método incompleto utiliza heurísticas intuitivas e ingeniosas para la búsqueda, pero carece de salvaguardas si la búsqueda se estanca en un mínimo local.
  • Un método asintóticamente completo alcanza un mínimo global con certeza o, al menos, con probabilidad uno si se le permite ejecutarse indefinidamente, pero no tiene forma de saber cuándo se ha encontrado un minimizador global.
  • Un método completo alcanza un mínimo global con certeza, suponiendo cálculos exactos y un tiempo de ejecución indefinidamente largo, y sabe, después de un tiempo finito, que se ha encontrado un minimizador global aproximado (dentro de las tolerancias prescritas).
  • Un método riguroso alcanza un mínimo global con certeza y dentro de las tolerancias dadas, incluso en presencia de errores de redondeo, excepto en casos casi degenerados, donde las tolerancias pueden excederse.

Los métodos de optimización global deterministas suelen pertenecer a las dos últimas categorías. Cabe destacar que desarrollar un software riguroso es extremadamente difícil, ya que el proceso exige que todas las dependencias también estén codificadas con rigor.

Los métodos de optimización global deterministas requieren formas de acotar rigurosamente los valores de las funciones en regiones del espacio. Podría decirse que una diferencia principal entre los métodos deterministas y no deterministas en este contexto es que los primeros realizan cálculos en regiones del espacio de soluciones, mientras que los segundos los realizan en puntos individuales. Esto se logra explotando formas funcionales particulares (por ejemplo, relajaciones de McCormick [ 2 ] ) o utilizando análisis de intervalos para trabajar con formas funcionales más generales. En cualquier caso, se requiere acotar, razón por la cual los métodos de optimización global deterministas no pueden proporcionar un resultado riguroso al trabajar con código de caja negra , a menos que dicho código esté escrito explícitamente para devolver también cotas de función. Por esta razón, es común que los problemas de optimización global determinista se representen mediante un grafo computacional , ya que es sencillo sobrecargar todos los operadores de manera que los valores o derivadas de la función resultante produzcan resultados de intervalo (en lugar de escalares).

Clases de problemas de optimización global deterministas

Los problemas de programación lineal constituyen una formulación muy conveniente para cualquier problema práctico. Esto se debe a que, gracias al auge de los algoritmos de punto interior, es posible resolver de manera eficiente problemas de gran tamaño (que involucran cientos de miles o incluso millones de variables) hasta alcanzar la optimalidad global. Los problemas de optimización mediante programación lineal se enmarcan estrictamente en la categoría de optimización global determinista.

Al igual que los problemas de programación lineal, los MILP son muy importantes para resolver modelos de toma de decisiones. Se conocen algoritmos eficientes para resolver problemas complejos de este tipo, y están disponibles en forma de solucionadores como CPLEX .

Los problemas de programación no lineal son extremadamente complejos en la optimización global determinista. Un solucionador moderno puede manejar aproximadamente entre 100 y unos pocos cientos de variables no lineales en un tiempo razonable. Al momento de escribir este texto, no existen solucionadores paralelos para la solución determinista de problemas de programación no lineal, lo que explica la diferencia de complejidad entre la programación lineal determinista y la programación no lineal.

Problemas de programación no lineal con variables enteras mixtas (MINLP)

Aún más desafiantes que sus contrapartes de PLN, resolver de forma determinista un problema MINLP puede ser muy difícil. Se suelen utilizar técnicas como cortes de enteros o ramificar un problema en función de sus variables enteras (creando así subproblemas de PLN que a su vez pueden resolverse de forma determinista).

Métodos de orden cero

Los métodos de orden cero consisten en métodos que utilizan aritmética de intervalos de orden cero . [ 3 ] Un ejemplo representativo es la bisección de intervalos.

Métodos de primer orden

Los métodos de primer orden consisten en métodos que utilizan información de primer orden, por ejemplo, gradientes de intervalo o pendientes de intervalo.

Métodos de segundo orden

Los métodos de segundo orden utilizan información de segundo orden, generalmente límites de valores propios derivados de matrices hessianas de intervalo . Una de las metodologías de segundo orden más generales para abordar problemas de tipo general es el algoritmo αBB .

solucionadores de optimización global deterministas

  • ANTIGONE : Algoritmos para la optimización global continua/entera de ecuaciones no lineales). [ 4 ] Es un software propietario, disponible a través de ANTIGONE, la plataforma de modelado GAMS . [ 5 ]
  • BARON : BARON está disponible bajo los lenguajes de modelado AIMMS , AMPL y GAMS y en el servidor NEOS. [ 6 ] Es un software propietario. [ 7 ]
  • Couenne : Convex Over and Under ENvelopes for Nonlinear Estimation (Couenne) es una biblioteca de código abierto [ 8 ].
  • EAGO: Easy-Advanced Global Optimization (EAGO) [ 9 ] es un solucionador de código abierto en Julia (lenguaje de programación) . Fue desarrollado por la Universidad de Connecticut. [ 10 ]
  • LINDO (Optimizador Lineal, Interactivo y Discreto) incluye capacidades de optimización global. [ 11 ]
  • MAiNGO: Algoritmo basado en McCormick para optimización global no lineal de enteros mixtos (MAiNGO) [ 12 ] es un paquete de C++ con paralelización MPI y openMP y se proporciona como código abierto [ 13 ] bajo la Licencia Pública de Eclipse - v 2.0.
  • Octeract Engine es un solucionador propietario con capacidades de paralelización. Es desarrollado y licenciado por Octeract [ 14 ].
  • SCIP : SCIP es un conjunto de solucionadores de optimización de código abierto que, entre otros, resuelve programación no lineal de enteros mixtos (MINLP) [ 15 ].

Referencias

  1. Búsqueda completa en optimización global continua y satisfacción de restricciones, Acta Numerica 2004 (A. Iserles, ed.), Cambridge University Press 2004
  2. Computabilidad de soluciones globales para programas no convexos factorizables: Parte I – Problemas de subestimación convexa, Programación Matemática, 1976, 1(10), 147–175
  3. ^ Hansen, ER Optimización global mediante análisis de intervalos, Marcel Dekker Inc, Nueva York 1992
  4. Misener, Ruth ; Floudas, Christodoulos A. (2014). "ANTIGONE: Algorithms for conTinuous / Integer Global Optimization of Nonlinear Equations". Journal of Global Optimization . 59 ( 2–3 ): 503–526 . doi : 10.1007/s10898-014-0166-2 . hdl : 10044/1/15506 . S2CID 41823802 . 
  5. Documentación de ANTÍGONA en GAMS , 16 de abril de 2013 , consultado el 27 de julio de 2019.
  6. "BARON en el servidor NEOS" . Archivado del original el 29/06/2013 . Consultado el 26/01/2016 .
  7. "La empresa de optimización" .
  8. P. Belotti, C. Kirches, S. Leyffer , J. Linderoth, J. Luedtke y A. Mahajan (2013). Optimización no lineal de enteros mixtos. Acta Numérica, 22, págs. 1-131. doi:10.1017/S0962492913000032. http://journals.cambridge.org/abstract_S0962492913000032
  9. Wilhelm, ME ; Stuber, MD (2020). "EAGO.jl: optimización global avanzada y sencilla en Julia" . Optimization Methods and Software . 37 (2): 425–450 . doi : 10.1080/10556788.2020.1786566 . S2CID 225503302 . 
  10. "Código fuente de EAGO" . GitHub .
  11. Linus E. Schrage, Programación lineal, entera y cuadrática con Lindo, Scientific Press, 1986, ISBN 0894260901
  12. "Algoritmo basado en McCormick para la optimización global no lineal de enteros mixtos (MAiNGO)" .
  13. "Código fuente de MAiNGO" .
  14. "Octeract" .
  15. "Paquete de optimización SCIP" .