PySP: modeling and solving stochastic programs in Python. Although stochastic programming is a powerful tool for modeling decision-making under uncertainty, various impediments have historically prevented its wide-spread use. One factor involves the ability of non-specialists to easily express stochastic programming problems as extensions of their deterministic counterparts, which are typically formulated first. A second factor relates to the difficulty of solving stochastic programming models, particularly in the mixed-integer, non-linear, and/or multi-stage cases. Intricate, configurable, and parallel decomposition strategies are frequently required to achieve tractable run-times on large-scale problems. We simultaneously address both of these factors in our PySP software package, which is part of the Coopr open-source Python repository for optimization; the latter is distributed as part of IBM’s COIN-OR repository. To formulate a stochastic program in PySP, the user specifies both the deterministic base model (supporting linear, non-linear, and mixed-integer components) and the scenario tree model (defining the problem stages and the nature of 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 passing an extensive form to a standard deterministic 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 obtaining approximate solutions to multi-stage 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.

References in zbMATH (referenced in 18 articles , 2 standard articles )

Showing results 1 to 18 of 18.
Sorted by year (citations)

  1. Mildebrath, David; Gonzalez, Victor; Hemmati, Mehdi; Schaefer, Andrew J.: Relating single-scenario facets to the convex hull of the extensive form of a stochastic single-node flow polytope (2020)
  2. Li, Can; Grossmann, Ignacio E.: A finite (\epsilon)-convergence algorithm for two-stage stochastic convex nonlinear programs with mixed-binary first and second-stage variables (2019)
  3. Munguía, Lluís-Miquel; Oxberry, Geoffrey; Rajan, Deepak; Shinano, Yuji: Parallel PIPS-SBB: multi-level parallelism for stochastic mixed-integer programs (2019)
  4. Valicka, Christopher G.; Garcia, Deanna; Staid, Andrea; Watson, Jean-Paul; Hackebeil, Gabriel; Rathinam, Sivakumar; Ntaimo, Lewis: Mixed-integer programming models for optimal constellation scheduling given cloud cover uncertainty (2019)
  5. Kim, Kibaek; Zavala, Victor M.: Algorithmic innovations and software for the dual decomposition method applied to stochastic mixed-integer programs (2018)
  6. Barnett, Jason; Watson, Jean-Paul; Woodruff, David L.: BBPH: using progressive hedging within branch and bound to solve multi-stage stochastic mixed integer programs (2017)
  7. Dunning, Iain; Huchette, Joey; Lubin, Miles: JuMP: a modeling language for mathematical optimization (2017)
  8. Eckstein, Jonathan; Eskandani, Deniz; Fan, Jingnan: Multilevel optimization modeling for risk-averse stochastic programming (2016)
  9. Feng, Yonghan; Ryan, Sarah M.: Solution sensitivity-based scenario reduction for stochastic unit commitment (2016)
  10. Gade, Dinakar; Hackebeil, Gabriel; Ryan, Sarah M.; Watson, Jean-Paul; Wets, Roger J.-B.; Woodruff, David L.: Obtaining lower bounds from the progressive hedging algorithm for stochastic mixed-integer programs (2016)
  11. Guo, Ge; Hackebeil, Gabriel; Ryan, Sarah M.; Watson, Jean-Paul; Woodruff, David L.: Integration of progressive hedging and dual decomposition in stochastic integer programs (2015)
  12. Munoz, Francisco D.; Watson, Jean-Paul: A scalable solution framework for stochastic transmission and generation planning problems (2015)
  13. Veliz, Fernando Badilla; Watson, Jean-Paul; Weintraub, Andres; Wets, Roger J.-B.; Woodruff, David L.: Stochastic optimization models in forest planning: a progressive hedging solution approach (2015)
  14. Held, Harald; Martinez, Gabriela; Stelzig, Philipp Emanuel: Stochastic programming approach for energy management in electric microgrids (2014)
  15. Hart, William E.; Laird, Carl; Watson, Jean-Paul; Woodruff, David L.: Pyomo -- optimization modeling in Python (2012)
  16. Perez, Ruben E.; Jansen, Peter W.; Martins, Joaquim R. R. A.: PyOpt: a python-based object-oriented framework for nonlinear constrained optimization (2012)
  17. Watson, Jean-Paul; Woodruff, David L.; Hart, William E.: PySP: modeling and solving stochastic programs in Python (2012)
  18. Hart, William E.; Watson, Jean-Paul; Woodruff, David L.: Pyomo: modeling and solving mathematical programs in python (2011) ioport