About Pyomo

Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating, solving, and analyzing optimization models.

A core capability of Pyomo is modeling structured optimization applications.  Pyomo can be used to define general symbolic problems, create specific problem instances, and solve these instances using commercial and open-source solvers.  Pyomo's modeling objects are embedded within a full-featured high-level programming language providing a rich set of supporting libraries, which distinguishes Pyomo from other algebraic modeling languages like AMPL, AIMMS and GAMS.

Pyomo supports a wide range of problem types, including:

  • Linear programming

  • Quadratic programming

  • Nonlinear programming

  • Mixed-integer linear programming

  • Mixed-integer quadratic programming

  • Mixed-integer nonlinear programming

  • Stochastic programming

  • Generalized disjunctive programming

  • Differential algebraic equations

  • Bilevel programming

  • Mathematical programs with equilibrium constraints

Pyomo also supports iterative analysis and scripting capabilities within a full-featured programming language.  Further, Pyomo has also proven an effective framework for developing high-level optimization and analysis tools.  For example, the PySP package provides generic solvers for stochastic programming.  PySP leverages the fact that Pyomo's modeling objects are embedded within a full-featured high-level programming language, which allows for transparent parallelization of subproblems using Python parallel communication libraries.

Pyomo was formerly released as the Coopr software library.


Pyomo was originally developed by researchers in the Center for Computing Research at Sandia National Laboratories and is a COIN-OR project.