Pyomo Documentation (DRAFT)

Pyomo is a Python-based, open-source optimization modeling language with a diverse set of optimization capabilities.

Getting Started

Installation, pyomo command, a simple example, etc



Pyomo includes a diverse set of optimization capabilities for formulating and analyzing optimization models. Pyomo supports the formulation and analysis of mathematical models for complex optimization applications. This capability is commonly associated with algebraic modeling languages (AMLs), which support the description and analysis of mathematical models with a high-level language. Although most AMLs are implemented in custom modeling languages, Pyomo’s modeling objects are embedded within Python, a full-featured high-level programming language that contains a rich set of supporting libraries.

Pyomo has also proven an effective framework for developing high-level optimization and analysis tools. It is easy to develop Python scripts that use Pyomo as a part of a complex analysis workflow. Additionally, Pyomo includes a variety of optimization solvers for stochastic programming, dynamic optimization with differential algebraic equations, mathematical programming with equilibrium conditions, and more! Increasingly, Pyomo is integrating functionality that is normally associated with an optimization solver library.

Concrete vs Abstract Models

Modeling Components

Pyomo Command

Core Pyomo Components

Detailed component descriptions...


Scripting examples...

Modeling Extensions

Bilevel Programming


Dynamic Optimization


Stochastic Programming


Generalized Disjunctive Programming


Stochastic Programming


Library Reference

Pyomo is being increasingly used as a library to support Python scripts. This section describes library APIs for key elements of Pyomo.

Problem Reference

Examples of Pyomo models for different types of problems ...

Indices and Tables

Pyomo Resources

The Pyomo home page provides resources for Pyomo users:

Pyomo development is hosted at GitHub:

See the Pyomo Forum for online discussions of Pyomo: