Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

PySP : modeling and solving stochastic mixed-integer programs in Python.

Conference ·
OSTI ID:1022972

Although stochastic programming is a powerful tool for modeling decision-making under uncertainty, various impediments have historically prevented its widespread use. One key factor involves the ability of non-specialists to easily express stochastic programming problems as extensions of deterministic models, which are often formulated first. A second key factor relates to the difficulty of solving stochastic programming models, particularly the general mixed-integer, multi-stage case. Intricate, configurable, and parallel decomposition strategies are frequently required to achieve tractable run-times. We simultaneously address both of these factors in our PySP software package, which is part of the COIN-OR Coopr open-source Python project for optimization. To formulate a stochastic program in PySP, the user specifies both the deterministic base model and the scenario tree with associated uncertain parameters in the Pyomo open-source algebraic modeling language. Given these two models, PySP provides two paths for solution of the corresponding stochastic program. The first alternative involves writing the extensive form and invoking a standard deterministic (mixed-integer) solver. For more complex stochastic programs, we provide an implementation of Rockafellar and Wets Progressive Hedging algorithm. Our particular focus is on the use of Progressive Hedging as an effective heuristic for approximating general multi-stage, mixed-integer stochastic programs. By leveraging the combination of a high-level programming language (Python) and the embedding of the base deterministic model in that language (Pyomo), we are able to provide completely generic and highly configurable solver implementations. PySP has been used by a number of research groups, including our own, to rapidly prototype and solve difficult stochastic programming problems.

Research Organization:
Sandia National Laboratories
Sponsoring Organization:
USDOE
DOE Contract Number:
AC04-94AL85000
OSTI ID:
1022972
Report Number(s):
SAND2010-5411C
Country of Publication:
United States
Language:
English

Similar Records

Pyomo : Python Optimization Modeling Objects.
Conference · Mon Nov 01 00:00:00 EDT 2010 · OSTI ID:1035667

COOPR: A COmmon Optimization Python Repository v. 1.0
Software · Thu Aug 14 00:00:00 EDT 2008 · OSTI ID:1231210

COOPR: A COmmon Optimization Python Repository v. 1.0
Software · Tue Aug 12 20:00:00 EDT 2008 · OSTI ID:code-6472