This book provides a complete and comprehensive reference/guide to Pyomo
(Python Optimization Modeling Objects) for both beginning and advanced
modelers, including students at the undergraduate and graduate levels,
academic researchers, and practitioners. The text illustrates the
breadth of the modeling and analysis capabilities that are supported by
the software and support of complex real-world applications. Pyomo is an
open source software package for formulating and solving large-scale
optimization and operations research problems. The text begins with a
tutorial on simple linear and integer programming models. A detailed
reference of Pyomo's modeling components is illustrated with extensive
examples, including a discussion of how to load data from data sources
like spreadsheets and databases. Chapters describing advanced modeling
capabilities for nonlinear and stochastic optimization are also
included. The Pyomo software provides familiar modeling features within
Python, a powerful dynamic programming language that has a very clear,
readable syntax and intuitive object orientation. Pyomo includes Python
classes for defining sparse sets, parameters, and variables, which can
be used to formulate algebraic expressions that define objectives and
constraints. Moreover, Pyomo can be used from a command-line interface
and within Python's interactive command environment, which makes it easy
to create Pyomo models, apply a variety of optimizers, and examine
solutions. The software supports a different modeling approach than
commercial AML (Algebraic Modeling Languages) tools, and is designed for
flexibility, extensibility, portability, and maintainability but also
maintains the central ideas in modern AMLs.