Pyomo
# Pyomo

Pyomo es una colección de paquetes de software de Python para formular modelos de optimización.

Pyomo fue desarrollado por William Hart y Jean-Paul Watson en el Laboratorio Nacional de Sandia y por David Woodruff en Universitarios de California, Davis. Significativas extensiones fueron desarrolladas por John Siirola en Laboratorio nacional de Sandia y por Carl Laird en la Universidad Purdue. Pyomo es un proyecto de código abierto libremente disponible, y está licenciado con la licencia BSD. Pyomo es desarrollado como parte del proyecto COIN-OR. Es además un paquete de software de código abierto muy popular que es usado por gran variedad de agencias gubernamentales e instituciones académicas.

## Características

Pyomo permite al usuario formular problemas de optimización en Python, en una manera similar a la notación usual en optimización matemática. Admite un estilo orientado a objetos para formular modelos de optimización, los cuales son definidos a través de gran variedad de componentes de modelacion: conjuntos, parámetros escalares y multidimensionales, variables de decisión, objetivos, restricciones, ecuaciones y más. Los modelos de optimización pueden ser inicializados con datos de Python, y fuentes externas de datos pueden ser definidas usando hojas de cálculo, bases de datos y variados formatos de archivos de texto. Pyomo admite a los modelos abstractos, los cuales son definidos sin datos, y los concretos, definidos con datos. En ambos casos, permite la separación del modelo y los datos.

Pyomo admite docenas de resolventes, algunos comerciales y otros de código abierto, incluyendo muchos de los admitidos por AMPL, PICO, CBC , CPLEX, IPOPT, Gurobi y GLPK. El resolvente puede ser llamado directamente, o asincronicamente con un administrador de resolventes. Los administradores de resolventes admiten la ejecución remota y asincronica de resolventes, lo cual permite la ejecución paralela de scripts de Pyomo. La interacción de resolventes es realizada con variedad de interfaces, dependiendo del resolvente utilizado. Una interfaz de resolvente muy genérica es admitida con AMPL's nl (formato).

## Software relacionado

Los siguientes paquetes de software contienen a Pyomo como una librería para admitir modelos de optimización y análisis:

* SolverStudio permite usar Excel para editar, guardar y solucionar modelos de optimización construidos usando variedad de lenguajes de modelacion, incluyendo Pyomo. .
* TEMOA(Tools for Energy Model Optimization and Assessment) es un framework de modelacion de código abiertopara analizar sistemas energéticos. El componente núcleo de TEMOA es un modelo de optimización de economizacion de energía. Este modelo es formulado y optimizado usando PYOMO. .
* MinPower es un kit de herramientas de código abierto para estudiantes e investigadores en sistemas de potencia. Está diseñado para hacer el trabajo con modelos de sistemas de potencia estándar, simple e intuitivo. Minpower usa Pyomo para formular y optimizar estos modelos de sistemas de potencia.
