Software & Test Sets
This page was originally compiled by Shabbir Ahmed.
Software
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.
AIMMS
- 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; Download a
free trial
license of AIMMS
- Contact:
Paragon.
BNBS
- 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
FortSP
- 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: info@optirisk-systems.com
MSLiP
- 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: Horand.Gassmann@dal.ca
NEOS Solver
- Description:
Web based stochastic programming solvers. Accepts electronic problem
submission in SMPS format.
- Implemented algorithms:
Mehrotra's Augmented system LP solver and MSLiP.
- 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. The Coopr software is developed with an open source model to encourage contributions from researchers.
- Contact:
Jean-Paul Watson, Sandia National Laboratories and David Woodruff, University of California at Davis.
SLP-IOR
- 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: Prof.
Peter Kall
or 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.
SPInE
- Description:
An integrated modelling and solver system based on extended language
constructs designed to facilitate the formulation of scenario based
recourse problems (two-stage and multistage). Produces model instances
in SMPS format and integrates a stochastic solver based on Benders
decomposition. Available also as an add-in to the MPL modelling
system.
- Implemented algorithms:
Benders decomposition, deterministic equivalent solved via Interior
Point Method or Sparse Simplex.
- Platform: Windows.
- Requirement: (MPL or OptiMax component library).
- More information: Technical Report on SPInE.
- Contact: Prof. Gautam Mitra, Mr Patrick
Valente,
or Dr Chandra A. Poojari,
Centre for the Analysis of Risk and Optimisation Modelling Application
(CARISMA),
Brunel University, United Kingdom.
Data Formats
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.
Test Sets
|