Pyomo is a collection of Python software packages for formulating optimization models.[1][2]
Pyomo was developed by William Hart and Jean-Paul Watson at Sandia National Laboratories and David Woodruff at University of California, Davis. Significant extensions to Pyomo were developed by Bethany Nicholson and John Siirola at Sandia National Laboratories, Carl Laird at Purdue University, and Gabriel Hackebeil. Pyomo is an open-source project that is freely available, and it is licensed with the BSD license. Pyomo is developed as part of the COIN-OR project. Pyomo is a popular open-source software package that is used by a variety of government agencies and academic institutions.
Features
Pyomo allows users to formulate optimization problems in Python in a manner that is similar to the notation commonly used in mathematical optimization. Pyomo supports an object-oriented style of formulating optimization models, which are defined with a variety of modeling components: sets, scalar and multidimensional parameters, decision variables, objectives, constraints, equations, disjunctions and more. Optimization models can be initialized with python data, and external data sources can be defined using spreadsheets, databases, various formats of text files. Pyomo supports both abstract models, which are defined without data, and concrete models, which are defined with data. In both cases, Pyomo allows for the separation of model and data.
Pyomo supports dozens of solvers, both open source and commercial, including many solvers supported by AMPL, PICO, CBC, CPLEX, IPOPT, Gurobi and GLPK. Pyomo can either invoke the solver directly or asynchronous with a solver manager. Solver managers support remote, asynchronous execution of solvers, which supports parallel execution of Pyomo scripts. Solver interaction is performed with a variety of solver interfaces, depending on the solver being used. A very generic solver interface is supported with AMPL's nl (format).
Related software
The following software packages integrate Pyomo as a library to support optimization modeling and analysis:
SolverStudio lets you use Excel to edit, save and solve optimisation models built using a variety of modeling languages, including Pyomo.[3] Pyomo is bundled with the SolverStudio software.
TEMOA (Tools for Energy Model Optimization and Assessment) is an open source modeling framework for conducting energy system analysis.[4] The core component of TEMOA is an energy economy optimization model. This model is formulated and optimized using Pyomo.
MinPower is an open source toolkit for students and researchers in power systems. It is designed to make working with standard power system models simple and intuitive.[5] MinPower uses Pyomo to formulate and optimize these power system models.
See also
Algebraic modeling language
References
William E. Hart; Carl D. Laird; Jean-Paul Watson; David L. Woodruff; Gabriel A. Hackebeil; Bethany L. Nicholson; John D. Siirola (2017). Pyomo — Optimization Modeling in Python. Springer. ISBN 978-3-319-58821-6.
Hart, William; Jean-Paul Watson; David L. Woodruff (2011). "Pyomo: modeling and solving mathematical programs in python". Mathematical Programming Computation. 3 (3). doi:10.1007/s12532-011-0026-8.
Mason, Andrew (2013). "SolverStudio: A New Tool for Better Optimisation and Simulation Modelling in Excel". INFORMS Transactions on Education. 14 (1). pp. 45–52. doi:10.1287/ited.2013.0112.
DeCarolis, Joseph; Kevin Hunter; Sarat Sreepathi (2010). "The TEMOA Project: Tools for Energy Model Optimization and Analysis" (PDF). Stockholm, Sweden.
Greenhall, Adam; Rich Christie; Jean-Paul Watson (2012). "Minpower: A power systems optimization toolkit" (PDF).
External links
Articles from IBM's developerWorks:
Gift, Noah (5 February 2013). "Linear optimization in Python, Part 1: Solve complex problems in the cloud with Pyomo".
Linear optimization in Python, Part 2: Build a scalable architecture in the cloud
"Pyomo Meets Fantasy Football". 2015-01-27.
APOPT Solver for LP, QP, MILP, NLP, and MINLP solutions in Pyomo
Mathematical optimization software
Data formats
Mathematica MPS nl sol
Modeling tools
AIMMS AMPL APMonitor ECLiPSe-CLP GEKKO GAMS GNU MathProg JuMP LINDO OPL Mathematica OptimJ PuLP Pyomo TOMLAB Xpress-Mosel ZIMPL
LP, MILP∗ solvers
APOPT∗ ANTIGONE∗ Artelys Knitro∗ BCP∗ CLP CBC∗ CPLEX∗ FortMP∗ GCG∗ GLPK/GLPSOL∗ Gurobi∗ LINDO∗ Lp_solve LOQO Mathematica MINOS MINTO∗ MOSEK∗ SCIP∗ SoPlex Octeract Engine∗ SYMPHONY∗ Xpress-Optimizer∗
QP, MIQP∗ solvers
APOPT∗ ANTIGONE∗ Artelys Knitro∗ CBC∗ CLP CPLEX∗ FortMP∗ Gurobi∗ IPOPT LINDO∗ Mathematica MINOS MOSEK∗ Octeract Engine∗ SCIP∗ Xpress-Optimizer∗
QCP, MIQCP∗ solvers
APOPT∗ ANTIGONE∗ Artelys Knitro∗ CPLEX∗ Gurobi∗ IPOPT LINDO∗ Mathematica MINOS MOSEK∗ SCIP∗ Octeract Engine∗ Xpress-Optimizer∗ Xpress-SLP∗
SOCP, MISOCP∗ solvers
Artelys Knitro∗ CPLEX∗ Gurobi∗ LINDO∗ LOQO Mathematica MOSEK∗ SCIP∗ Xpress-Optimizer∗
SDP, MISDP∗ solvers
Mathematica MOSEK
NLP, MINLP∗ solvers
AOA∗ APOPT∗ ANTIGONE∗ Artelys Knitro∗ BARON∗ Couenne∗ Galahad library IPOPT LINDO∗ LOQO MIDACO∗ MINOS NLPQLP NPSOL SCIP∗ SNOPT∗ Octeract Engine∗ WORHP Xpress-SLP∗
GO solvers
ANTIGONE∗ BARON Couenne∗ Mathematica LINDO SCIP Octeract Engine
CP solvers
Comet CPLEX CP Optimizer Gecode Mathematica JaCoP
Metaheuristic solvers
OptaPlanner
Undergraduate Texts in Mathematics
Graduate Studies in Mathematics
Hellenica World - Scientific Library
Retrieved from "http://en.wikipedia.org/"
All text is available under the terms of the GNU Free Documentation License