JuMP es un lenguaje de modelado algebraico y una colección de paquetes de soporte para la optimización matemática integrados en el lenguaje de programación Julia . [1] [2] JuMP es utilizado por empresas, agencias gubernamentales, instituciones académicas, proyectos de software y personas para formular y enviar problemas de optimización a solucionadores externos. JuMP se ha aplicado específicamente a problemas en el campo de la investigación de operaciones . [3]
Características
JuMP es un paquete de Julia y un lenguaje específico de dominio que proporciona una API y una sintaxis para declarar y resolver problemas de optimización. Las macros sintácticas y las características de metaprogramación de Julia facilitan la sintaxis especializada para declarar variables de decisión, agregar restricciones y establecer funciones objetivo . JuMP admite programación lineal , programación entera mixta, programación semidefinida , optimización cónica , programación no lineal y otras clases de problemas de optimización. JuMP proporciona acceso a más de 50 solucionadores , incluidos solucionadores comerciales y de código abierto de última generación. [4]
Historia
JuMP fue desarrollado por primera vez por Miles Lubin, Iain Dunning y Joey Huchette mientras eran estudiantes en el Instituto Tecnológico de Massachusetts . En la actualidad, los desarrolladores principales de JuMP son Miles Lubin, Benoît Legat, Joaquim Dias Garcia, Joey Huchette y Oscar Dowson. Miles Lubin también ostenta el título de BDFL . [5] JuMP es un proyecto patrocinado por NumFOCUS. [6]
Reconocimiento
JuMP y sus autores han sido reconocidos en la Copa COIN-OR 2015 , el Premio de la Sociedad de Computación INFORMS 2016 y el Premio Beale – Orchard‑Hays 2021 de la Sociedad de Optimización Matemática . [7] [8] [9]
Véase también
- Solucionador de optimización HiGHS
- Lista de solucionadores de optimización gratuitos y de código abierto
- Optimización matemática
- PuLP – un proyecto similar para Python
- Pyomo – Paquetes de Python para formular problemas de optimización
Referencias
- ^ Dunning, Iain; Huchette, Joey; Lubin, Miles (2017). "JuMP: un lenguaje de modelado para la optimización matemática" (PDF) . SIAM Review . 59 (2): 295– 320. doi :10.1137/15M1020575. ISSN 0036-1445 . Consultado el 25 de julio de 2022 .
- ^ Lubin, Miles; Dowson, Oscar; Dias Garcia, Joaquim; Huchette, Joey; Legat, Benoît; Vielma, Juan Pablo (2023). «JuMP 1.0: Mejoras recientes en un lenguaje de modelado para optimización matemática». Mathematical Programming Computation . 15 : 581– 589. arXiv : 2206.03866 . doi :10.1007/s12532-023-00239-3 . Consultado el 2024-10-09 .
- ^ Kwon, Changhyun (marzo de 2019). Programación de Julia para la investigación de operaciones (2.ª ed.). (Publicado de forma independiente). ISBN 978-1798205471. Edición de bolsillo.
- ^ "Solucionadores compatibles". Comunidad JuMP . Consultado el 9 de octubre de 2024 .
- ^ "Estructura de gobernanza". Comunidad JuMP . Consultado el 30 de julio de 2022 .
- ^ "JuMP". NumFOCUS . Consultado el 30 de julio de 2022 .
- ^ "Mención del premio Beale — Orchard-Hays 2021". Sociedad de Optimización Matemática . Consultado el 30 de julio de 2022 .
- ^ "Ganadores de la Copa COIN-OR 2015". COIN-OR . Consultado el 30 de julio de 2022 .
- ^ "Premio ICS 2012-2016". INFORMS Computing Society . Consultado el 30 de julio de 2022 .
Enlaces externos
- Documentación de JuMP
- Repositorio JuMP