Pyomo es una colección de paquetes de software Python para formular modelos de optimización. [1] [2]
Pyomo fue desarrollado por William Hart y Jean-Paul Watson en Sandia National Laboratories y David Woodruff en la Universidad de California, Davis . Bethany Nicholson y John Siirola en Sandia National Laboratories , Carl Laird en la Universidad de Purdue y Gabriel Hackebeil desarrollaron extensiones significativas de Pyomo . Pyomo es un proyecto de código abierto que está disponible de forma gratuita y tiene licencia BSD . Pyomo se desarrolló como parte del proyecto COIN-OR . Pyomo es un popular paquete de software de código abierto que utilizan diversas agencias gubernamentales e instituciones académicas.
Características
Pyomo permite a los usuarios formular problemas de optimización en Python de una manera similar a la notación que se usa comúnmente en la optimización matemática. Pyomo admite un estilo orientado a objetos para formular modelos de optimización, que se definen con una variedad de componentes de modelado: conjuntos, parámetros escalares y multidimensionales, variables de decisión, objetivos, restricciones, ecuaciones, disyunciones y más. Los modelos de optimización se pueden inicializar con datos de Python y se pueden definir fuentes de datos externas utilizando hojas de cálculo , bases de datos y varios formatos de archivos de texto. Pyomo admite tanto modelos abstractos, que se definen sin datos, como modelos concretos, que se definen con datos. En ambos casos, Pyomo permite la separación de modelo y datos.
Pyomo admite docenas de solucionadores , tanto de código abierto como comerciales, incluidos muchos solucionadores compatibles con AMPL , PICO, CBC , CPLEX , IPOPT y GLPK . Pyomo puede invocar el solucionador directamente o de forma asincrónica con un administrador de solucionadores. Los administradores de solucionadores admiten la ejecución asincrónica remota de solucionadores, lo que admite la ejecución paralela de scripts de Pyomo. La interacción del solucionador se realiza con una variedad de interfaces de solucionador, según el solucionador que se utilice. Se admite una interfaz de solucionador muy genérica con nl (format) de AMPL .
Software relacionado
Los siguientes paquetes de software integran Pyomo como una biblioteca para respaldar el análisis y el modelado de optimización:
- SolverStudio le permite usar Excel para editar, guardar y resolver modelos de optimización creados con una variedad de lenguajes de modelado, incluido Pyomo. [3] Pyomo se incluye con el software SolverStudio.
- TEMOA (Tools for Energy Model Optimization and Assessment) es un marco de modelado de código abierto para realizar análisis de sistemas energéticos. [4] El componente principal de TEMOA es un modelo de optimización de la economía energética. Este modelo se formula y optimiza utilizando Pyomo.
- MinPower es un conjunto de herramientas de código abierto para estudiantes e investigadores en sistemas de energía. Está diseñado para que trabajar con modelos de sistemas de energía estándar sea simple e intuitivo. [5] MinPower utiliza Pyomo para formular y optimizar estos modelos de sistemas de energía.
- Proyecto linopy, que ofrece una funcionalidad similar a Pyomo. [6]
Véase también
Referencias
- ^ William E. Hart; Carl D. Laird; Jean-Paul Watson; David L. Woodruff; Gabriel A. Hackebeil; Bethany L. Nicholson; John D. Siirola (2017). Pyomo: modelado de optimización en Python. Springer. ISBN 978-3-319-58821-6.
- ^ Hart, William; Jean-Paul Watson; David L. Woodruff (2011). "Pyomo: modelado y resolución de programas matemáticos en Python". Computación de programación matemática . Vol. 3, núm. 3. doi :10.1007/s12532-011-0026-8.
- ^ Mason, Andrew (2013). "SolverStudio: una nueva herramienta para mejorar la optimización y el modelado de simulación en Excel". INFORMS Transactions on Education . Vol. 14, núm. 1. págs. 45–52. doi :10.1287/ited.2013.0112.
- ^ DeCarolis, Joseph; Kevin Hunter; Sarat Sreepathi (2010). El proyecto TEMOA: herramientas para la optimización y el análisis de modelos energéticos (PDF) . Taller internacional sobre energía. Estocolmo, Suecia.
- ^ Greenhall, Adam; Rich Christie; Jean-Paul Watson (2012). Minpower: Un kit de herramientas para la optimización de sistemas de energía (PDF) . Asamblea General de la Power and Energy Society.
- ^ "linopy: Optimización lineal con variables etiquetadas ND". PyPSA . Consultado el 22 de febrero de 2022 .
Enlaces externos
- Artículos de developerWorks de IBM:
- Gift, Noah (5 de febrero de 2013). "Optimización lineal en Python, parte 1: resolver problemas complejos en la nube con Pyomo".
- Optimización lineal en Python, parte 2: Construya una arquitectura escalable en la nube
- "Pyomo se encuentra con el Fantasy Football". 27 de enero de 2015.
- Solucionador APOPT para soluciones LP, QP, MILP, NLP y MINLP en Pyomo