HOME

TheInfoList



OR:

Pyomo is a collection of
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
software packages for formulating optimization models. Pyomo was developed by William Hart and Jean-Paul Watson at
Sandia National Laboratories Sandia National Laboratories (SNL), also known as Sandia, is one of three research and development laboratories of the United States Department of Energy's National Nuclear Security Administration (NNSA). Headquartered in Kirtland Air Force Ba ...
and David Woodruff at
University of California, Davis The University of California, Davis (UC Davis, UCD, or Davis) is a public land-grant research university near Davis, California. Named a Public Ivy, it is the northernmost of the ten campuses of the University of California system. The institut ...
. Significant extensions to Pyomo were developed by Bethany Nicholson and John Siirola at
Sandia National Laboratories Sandia National Laboratories (SNL), also known as Sandia, is one of three research and development laboratories of the United States Department of Energy's National Nuclear Security Administration (NNSA). Headquartered in Kirtland Air Force Ba ...
, Carl Laird at
Purdue University Purdue University is a public land-grant research university in West Lafayette, Indiana, and the flagship campus of the Purdue University system. The university was founded in 1869 after Lafayette businessman John Purdue donated land and money ...
, and Gabriel Hackebeil. Pyomo is an open-source project that is freely available, and it is licensed with the
BSD The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
license. Pyomo is developed as part of the
COIN-OR Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical software what the open literature is for mathematical theory." The open literature (e.g., a research journal) provides the operat ...
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 Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
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
spreadsheet A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in cel ...
s,
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
s, 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
solver A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculates t ...
s, both open source and commercial, including many solvers supported by
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems). It was developed b ...
, PICO, CBC,
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
,
IPOPT IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a software library for large scale nonlinear optimization of continuous systems. It is written in Fortran and C and is released under the EPL (formerly CPL). IPOPT implemen ...
, and
GLPK The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the fo ...
. 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) nl is a file format for presenting and archiving mathematical programming problems. Initially, this format has been invented for connecting solvers to AMPL. It has also been adopted by other systems such as COIN-OR (as one of the input formats), ...
.


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. Pyomo is bundled with th
SolverStudio
software.
TEMOA
(Tools for Energy Model Optimization and Assessment) is an open source modeling framework for conducting energy system analysis. 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. MinPower uses Pyomo to formulate and optimize these power system models.
linopy project
offering similar functionality to Pyomo.


See also

*
Algebraic modeling language Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems). One particular advantage of ...


References


External links

* Articles from IBM's developerWorks: ** *
Linear optimization in Python, Part 2: Build a scalable architecture in the cloud
* *
APOPT APOPT (for Advanced Process OPTimizer) is a software package for solving large-scale optimization problems of any of these forms: * Linear programming (LP) * Quadratic programming (QP) * Quadratically constrained quadratic program (QCQP) * Nonl ...
Solver fo
LP, QP, MILP, NLP, and MINLP solutions in Pyomo
{{Mathematical optimization software Python (programming language) software Mathematical optimization software Software using the BSD license