Stochastic programming computation and applications, INFORMS Journal on Computing 9(2): 111-133, 1997, by John R. Birge (PDF)

Stochastic Programming: Computational Issues and Challenges by Suvrajeet Sen (PDF)

Stochastic programming models: wait-and-see versus here-and-now by Roger J-B Wets

Tutorial talks prior to the 14th Int. Conf. on Stochastic Programming (Buzios, 2016):

     Videos of all tutorials, plenary talks, and special sessions at the 14th Int. Conf. on Stochastic Programming are available here.

Tutorial talks prior to the 13th Int. Conf. on Stochastic Programming (Bergamo, 2013):

Tutorial talks prior to the 12th Int. Conf. on Stochastic Programming (Halifax, 2010):

Tutorial talks prior to the 11th Int. Conf. on Stochastic Programming (Vienna, 2007):

Tutorial talks prior to the 10th Int. Conf. on Stochastic Programming (Tucson, 2004): 

Tutorial talks prior to the 9th Int. Conf. on Stochastic Programming (Berlin, 2001):

Stochastic Programming Lecture Notes by Willem K. Klein Haneveld and Maarten H. van der Vlerk. Available on request (only as hard copy; view Table of contents).

Lectures Notes on Stochastic Programming by Maarten H. van der Vlerk.

Optimization under Uncertainty by R.T. Rockafellar (PDF).

Optimización Estocástica by Andrés Ramos and Santiago Cerisola (PDF).

Stochastic Programming Lecture Notes by Jeff Linderoth (22 lectures, PDF).

Stochastic Programming Lecture Notes by Peter Kall.

G.Ch. Pflug, Alois Pichler. Multistage Stochastic Programming, Springer Series in Operations Research and Financial Engineering, Springer, New York, 2014.

Alan J. King and Stein W. Wallace. Modeling with Stochastic Programming, Springer Series in Operations Research and Financial Engineering, Springer, New York, 2012.

Alexander Shapiro, Topics in Stochastic Programming, CORE Lecture Series, Universite Catholique de Louvain, 2011.

Alexander Shapiro, Darinka Dentcheva and Andrzej Ruszczyski. Lectures on Stochastic Programming: Modeling and Theory, MOS-SIAM Series on Optimization 9, SIAM, Philadelphia, 2009.

G. Ch. Pflug, W. Roemisch. Modeling, measuring and managing risk. World scientific, 2007.

Peter Kall and Janos Mayer. Stochastic Linear Programming: Models, Theory, and Computation,   International Series in Operations Research & Management Science, Vol. 80, Springer, New York, 2005.

Kurt Marti. Stochastic Optimization Methods. Springer, New York, 2005.

Stein W. Wallace and William T. Ziemba (eds.). Applications of Stochastic Programming. MPS-SIAM Book Series on Optimization 5, SIAM, Philadelphia, 2005.

Andrzej Ruszczyński and Alexander Shapiro (eds.). Stochastic Programming. Handbooks in Operations Research and Management Science, Vol. 10, Elsevier, 2003.

John R. Birge and François V. Louveaux. Introduction to Stochastic Programming. Springer Verlag, New York, 1997. (Misprints and corrections).

Andras Prekopa. Stochastic Programming. Kluwer Academic Publishers, Dordrecht, 1995.

Peter Kall and Stein W. Wallace. Stochastic Programming. Wiley, Chichester, 1994. first edition, second edition

An overview of Books on Stochastic Programming can be found in the list compiled by J. Dupacová, which appeared in

R. J-B. Wets and W. T. Ziemba, editors. Stochastic programming. State of the art 1998. Papers from the 8th International Conference on Stochastic Programming held at the University of British Columbia, Vancouver, BC, August 8-16, 1998, Ann. Oper. Res. 85 (1999).

This page was originally compiled by Shabbir Ahmed.

The following is a brief description of some of the available stochastic programming software. The list is in no way complete or accurate. Please inform the webmaster of any deletions or discrepancies.

The booklet On Selected Software for Stochastic Programming (edited by Milos Kopa) deals with several software products for solving (multistage) stochastic programs. Each product is briefly described and applied to solving an investment problem formulated as three-stage linear stochastic program. The goal of the book is to introduce the basic ideas of these products and to give an example how these products can be used for solving real-life problems.
Further details and download instructions.


  • Description: AIMMS offers support for generating a stochastic LP/MIP recourse model from any given deterministic model, without the need to reformulate the deterministic model. By only supplying additional attributes for selected parameters, variables and constraints, AIMMS can generate both a deterministic and recourse model from the same formulation. Various user adaptable templates for generating a scenario tree and the corresponding stochastic input data for the recourse model are available in the form of a system module which can be imported into any AIMMS application.
  • Implemented algorithms: To solve the recourse model, AIMMS can generate and solve the corresponding deterministic equivalent. In addition, AIMMS includes an algorithm to solve stochastic models using a stochastic Benders approach and a module to visualize stochastic scenario trees.
  • Platform: Windows and Linux.
  • Availability: Commercial
  • Contact: AIMMS.


  • Description: An implementation of the nested Benders algorithm, written in C. Problem input is in the SMPS-format, although the program only supports the INDEP, BLOCKS, and SCENARIOS tags in the stoch-file. The program supports an arbitrary number of time periods and time periods may be aggregated arbitrarily. The number of subproblems which contribute to one cut in the algorithm may be set arbitrarily, in effect implementing single-cut, multi-cut and anything in between.
  • Implemented algorithms: Nested Benders decomposition
  • Platform: Tested on Sun Solaris, Linux and windows (via mingw), but should be portable across any UNIX. Features such as timing and memory information is not available on all platforms
  • Requirements: Flex and bison are required for compilation. An lp solver is needed, interfaces for CPLEX 6.5 GLPK 4.0 and SOPLEX 1.2.1 are implemented, although the SOPLEX interface does not work for all problems.
  • Availability: The code may be used for research and teaching at academic institutions, by staff or student. Note that an LP-solver must be obtained separately, and that the supported solvers may have other conditions for their use.
  • Contact: Fredrik Altenstedt


  • Description: DDSIP is a C implementation of a number of scenario-decomposition algorithms for solving two-stage stochastic mixed-integer programs with mixed-integer recourse. The dual decomposition algorithm solves a Lagrangian relaxation based on relaxing the non-anticipativity constraints, and then embeds this within a branch-and-bound algorithm to re-establish these constraints. The optimization of the Lagrangian dual is done with the ConicBundle code by Christoph Helmberg
  • DDSIP supports mean-risk models involving the risk measures expected shortfall below target, excess probabilities, absolute semideviation, worst-case-costs, tail value-at-risk, and standard deviation.
  • DDSIP was developed by Claus C. Carøe, Ralf Gollmer. Andreas Märkert, and Rüdiger Schultz.
  • A user's guide to DDSIP is available here.
  • DDSIP is one of the solvers available on the NEOS Server.


  • Description: FortSP is a solver for linear and mixed integer stochastic programming. The solver implements a wide range of algorithms for optimization under uncertainty. It supports two- and multistage linear and mixed integer SP problems, chance constraints and integrated chance constraints. FortSP may also evaluate Wait and See (WS) and Expected Value (EV) models and derive stochastic measures, such as Expected Value of Perfect Information (EVPI) and Value of Stochastic Solution (VSS). FortSP supports external linear and quadratic programming solvers such as CPLEX, FortMP and Gurobi through their library interfaces. These solvers are used to optimize the deterministic equivalent problem and also the subproblems in the decomposition methods.
  • Implemented algorithms: The FortSP solver supports the following classes of problems and algorithms:
    • Two-stage linear SP problems
      • Benders decomposition (L-shaped method)
      • Variant of the level decomposition of Fábián and Szöke (2007)
      • Trust region method of Linderoth and Wright (2003)
      • Regularized decomposition
      • Stochastic decomposition
      • Deterministic equivalent reformulation
    • Two-stage mixed integer SP problems
      • Integer L-shaped method
      • Deterministic equivalent reformulation
    • Multistage mixed integer SP problems
      • Deterministic equivalent reformulation
    • Multistage linear SP problems
      • Nested Benders decomposition
      • Deterministic equivalent reformulation
    • Chance constraints
      • Deterministic equivalent reformulation
    • Integrated chance constraints
      • Cutting-plane algorithm of Klein Haneveld and van der Vlerk (2006)
      • Deterministic equivalent reformulation
  • Platform: Linux, Windows
  • Availability: FortSP is a proprietary software developed by OptiRisk Systems
  • Contact:


  • Description: FORTRAN code for multistage stochastic programming. Supports an arbitrary number of time periods and various types of random structures for the input data. Problem input in SMPS format.
  • Implemented algorithms: Nested benders decomposition
  • Platform: Portable on Unix, DOS, Macintosh, VMAX.
  • Requirement: stand alone
  • Availability: The code is available to universities and academic institutions for reseach and teaching purposes. A version of the code is also running at the NEOS solver, see below.
  • Contact: Dr. H.I. Gassmann, Professor, School of Business Administration, Dalhousie University Halifax, Nova Scotia Canada. Email:

NEOS Solver

  • Description: Web based stochastic programming solvers. Accepts electronic problem submission in SMPS format.
  • Implemented algorithms: Implemented algorithms: Mehrotra's Augmented system LP solver, MSLiP, and DDSIP.
  • Platform: Web based.
  • More information: The NEOS server

Python-based Stochastic Programming (PySP)

  • Description: PySP is a modeling and solver library for stochastic programming. The development of PySP was initially motivated by the desire to create generic, database-driven decomposition-based solvers for addressing large-scale, multi-stage stochastic mixed-integer programs; previous implementations in the context of commercial algebraic modeling languages (AMLs) were necessarily problem-specific, and solver customization and parallelization required non-trivial effort. PySP is based on Sandia'a Pyomo (Python Optimization Modeling Objects) package, an open-source algebraic modeling tool based on the Python programming language. The combination of Pyomo and Python facilitate the development of generic stochastic programming solvers (primarily through Python's introspection facilities), in addition to providing access to the full range of high-level language features and extensive extension libraries.
  • Implemented algorithms: PySP provides two paths for the solution of a stochastic program. The first alternative involves writing the extensive form and invoking a deterministic (mixed-integer) linear solver. For more complex stochastic programs, we provide a generic implementation of Rockafellar and Wets' Progressive Hedging algorithm, with customizations that allow it to work as an effective heuristic on mixed-integer stochastic programs.
  • Platform: Linux, MacOS, Windows
  • Availability: PySP is open source under the BSD license. 
  • Contact: Jean-Paul Watson, Sandia National Laboratories and David Woodruff, University of California at Davis.


  • Description: SLP-IOR is an interactive model management system for stochastic linear programs. It includes support for two- and multistage programs with recourse, problems with individual and joint chance constraints, and problems with integrated chance constraints and CVaR constraints or objective. It handles the algebraic structure and scenario generation. Problems can be input via menus, through SMPS files, and via GAMS interface.
  • Implemented algorithms: Benders, Regularized and Stochastic Decomposition, Discrete Approximation, Interior point methods, Supporting hyperplane, Central cutting plane, etc.
  • Platform: Windows
  • Contact: Dr. Janos Mayer, Department of Business Administration, University of Zurich, Switzerland.

Stochastic Modeling Interface (SMI)

  • Description: SMI from COIN-OR provides various utilities for multi-stage stochastic programming model management.
  • Implemented utilities: The current release implements a multiperiod scenario stochastic programming object, supports an SMPS file reader method, a direct scenario generation method, a method to generate a deterministic equivalent, and several methods to get solution data by scenario.
  • Platform: Linux using g++ V3.1.1 and Windows using Microsoft Visual C++ V6.
  • Availability: SMI is open source under the Common Public License. Anyone can use the code for any purpose. Contributions are definitely encouraged!
  • Contact: Alan J. King.

The STochastic OPTimization library (StOpt)

  • Description: The STochastic OPTimization library (StOpt) aims at providing tools in C++ for solving some stochastic optimization problems encountered in finance or in the industry.
  • Implemented utilities: The SDDP module in StOpt provides a framework for optimizing and simulating a problem with the classical Stochastic Dual Dynamic Programming method in C++. MPI can be used on clusters or small computers to accelerate the resolution. Nonconcavities due to some uncertainties can be treated : the Monte Carlo method is used to sample these uncertainties and Benders cuts are generated conditionally to the uncertainty level using some regression methods based on local linear polynomials as described in "Monte-Carlo valorisation of American options: facts and new algorithms to improve existing methods" , B. Bouchard, X. Warin , Numerical Methods in Finance (2012)
  • Platform: C++, buildable on Linux, Mac, and Windows.
  • Availability: Gitlab
  • Contact: Xavier Warin

SMPS, a standard input format for multiperiod stochastic programs based on MPS, was introduced in 1987 by Birge et al.. See The SMPS format for stochastic linear programs for a current description, and the corresponding Fortran 90 implementation SMPS reader by Gus Gassmann.