Skip to content

Julia package for formulating and analyzing stochastic recourse models.

License

Notifications You must be signed in to change notification settings

jandelmi/StochasticPrograms.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StochasticPrograms

A modeling framework for stochastic programming problems

Build Status Coverage Status codecov.io

Installation

pkg> add StochasticPrograms

Summary

StochasticPrograms models recourse problems where an initial decision is taken, unknown parameters are observed, followed by recourse decisions to correct any inaccuracy in the initial decision. The underlying optimization problems are formulated in JuMP.jl. In StochasticPrograms, model instantiation can be deferred until required. As a result, scenario data can be loaded/reloaded to create/rebuild the recourse model at a later stage, possibly on separate machines in a cluster. Another consequence of deferred model instantiation is that StochasticPrograms.jl can provide stochastic programming constructs, such as expected value of perfect information and value of the stochastic solution, to gain deeper insights about formulated recourse problems. A good introduction to recourse models, and to the stochastic programming constructs provided in this package, is given in Introduction to Stochastic Programming. A stochastic program has a structure that can be exploited in solver algorithms. Therefore, StochasticPrograms provides a structured solver interface. Furthermore, a suite of solvers based on L-shaped and progressive-hedging algorithms that implements this interface are included. StochasticPrograms has parallel capabilities, implemented using the standard Julia library for distributed computing.

Project Status

The package is tested against Julia 1.0, 1.1, 1.2, and 1.3 branch on Linux, macOS, and Windows. See NEWS for release notes.

An older version for Julia 0.6 is available on the compat-0.6 branch, but backwards compatibility can not be promised.

Citing

If you use StochasticPrograms, please cite the following preprint:

@Article{spjl,
  title     = {Efficient Stochastic Programming in {J}ulia},
  author    = {Martin Biel and Mikael Johansson},
  journal   = {arXiv preprint arXiv:1909.10451},
  year      = {2019}
}

About

Julia package for formulating and analyzing stochastic recourse models.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%