En este artículo explico los entornos disponibles de modelamiento  algebraico para problemas de programación lineal entera mixta (MILP).  Explico una revisión de software disponible para resolver el problema  MILP a gran escala. Finalmente comento mi experiencia resolviendo el  problema de expansión de generación y transmisión de un sistema de  potencia.

Actualmente para resolver problemas de programación lineal  entera mixta (MILP) de gran escala se desarrolla en 2 pasos: modelar la  formulación matemática y resolver con un software de optimización. El  modelamiento de la formulación matemática puede ser empleando lenguajes  de programación o lenguajes de modelamiento algebraico (AML).

Las ventajas de emplear el lenguaje de modelamiento algebraico son:  el tiempo de implementación del modelo, la facilidad en la reformulación  del problema y el rápido desarrollo de prototipos. Kallrath (2012),  explica que los AML’s empleados frecuentemente son: AIMMS, AMPL,  Cplex-Studio, GAMS, LINGO, LPL, Mosel, ZIMPL. Adicional a ello se tienen  lenguajes no comerciales como Pyomo, FlopC++, OpenOpt, SCIP.

El software de optimización o comúnmente denominado solver matemático  puede ser comercial o libre. Linderoth y Lodi (2010), realiza una  revisión de software disponible para resolver problemas MILP. El autor  menciona dentro de los paquetes comerciales a CPLEX, Gurobi, LINDO,  Mosek y XPRESS-MP. Por otro lado, dentro de los paquetes no comerciales  se tiene paquetes como BLIS, CBC, GLPK, MINTO, SCIP y SYMPHONY.

En la Tabla 1, muestro una revisión personal sobre la compatibilidad  entre los lenguajes de modelamiento algebraico y los solvers. Se puede  apreciar que dentro de los solver CPLEX, Gurobi y SCIP pueden ser usados  por los diferentes lenguajes de modelamiento. Mientras que GAMS y LPL  pueden emplean la mayor cantidad de solvers.

Meindl y Templ (2012), demuestra experimentalmente que los solver  comerciales presentan un mejor rendimiento en tiempo de solución en  comparación a los no comerciales. Sin embargo, no siempre garantizan la  obtención de resultados para determinados problemas. En la Figura 1, se  muestra la comparativa mencionada.

Tabla 1- Compatibilidad entre lenguajes de modelamiento algebraico y software de optimización. Fuente: Elaboración propia
Figura 1- Comparativa de tiempo de solución de solvers matemáticos para un problema de referencia. Fuente: Meindl y Templ (2012)

El precio de obtener una licencia comercial es elevada y en gran  parte está sujeta a la cantidad de variables y restricciones que puede  resolver. Sin embargo, también existen las licencias académicas que son  asequibles e incluso gratuitas por un año. Por ejemplo, Gurobi ofrece  una licencia académica gratuita por un año, solo es necesario  registrarse en su página web y activar la licencia dentro de la  universidad.

Es importante mencionar el servidor NEOS, el cual es un servicio  ofrecido por la Universidad de Wisconsin. Este servidor NEOS pone al  servicio más de 60 solvers matemáticos, entre ellos software comercial  como software libre. Se puede enviar los problemas via e-mail, web o  https. Por contraparte, tiene restricciones en cuanto a memoria y tiempo  de solución.

Como experiencia personal, estuve resolviendo el problema de  expansión de generación y transmisión de un sistema de potencia. Este  problema puede ser planteado como un problema de programación lineal  entera mixa, este modelamiento es parte de la tesis que estoy  desarrollando. Para resolver este problema lo modele en python con la  librería pyomo y lo resolvi con el solver GLPK, CBC, CPLEX y Gurobi.  Proximamente, estare mostrando la comparativa en tiempo de ejecución de  los software de optimización para este problema en específico.

Referencias

  • Kallrath, J. (2012). Algebraic Modeling Systems: Modeling and Solving Real World Optimization Problems. Springer Science & Business Media.
  • Linderoth, J. T. & Lodi, A. (2010). MILP software. Wiley encyclopedia of operations research and management science.
  • Meindl, B. & Templ, M. (2012). Analysis of commercial and free and open source solvers for linear optimization problems. Eurostat and Statistics Netherlands within the project ESSnet on common tools and harmonised methodology for SDC in the ESS.