Pyomo: An Open Source Library for Modeling and Solving Mathematical Programs

Wednesday, August 23, 2017 - 9:00am - 9:45am
Lind 305
Jean-Paul Watson (Sandia National Laboratories)
Pyomo ( is a mature and widely used Python library for expressing and solving a wide range of mathematical programs, i.e., algebraic optimization models. Pyomo allows users to specify optimization models with linear, non-linear (including differential algebraic and ordinary differential equations), mixed discrete-continuous, and stochastic components. These models can then be solved with a wide range of commercial and open source solvers, with varying capabilities. Transformations are a rapidly emerging focus area of Pyomo development, in which optimization models with non-standard mathematical programming constructs - including equilibrium constraints and differential algebraic equations - are re-written in a form that standard solvers can accept. Other active areas for Pyomo development include meta-algorithm development - e.g., high-level decomposition strategies for solving large-scale deterministic and stochastic optimization models - and efficient inclusion of matrix-vector constructs (Pyomo expressions are symbolic, and encoded as expression trees) to support direct integration with tools like Matlab and Sage. In this talk, we will provide an overview of Pyomo modeling and library capabilities, and outline the above active development areas - and the associated challenges - in detail.