StochasticPrograms.jl
A modeling framework for stochastic programming problems
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 (EVPI) and value of the stochastic solution (VSS), 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, implemented by LShapedSolvers.jl and ProgressiveHedgingSolvers.jl. StochasticPrograms has parallel capabilities, implemented using the standard Julia library for distributed computing.
Features
- Flexible problem definition
- Deferred model instantiation
- Scenario data injection
- Natively distributed
- Interface to structure-exploiting solver algorithms
- Efficient parallel implementations of classical algorithms
Consider Quick start for a tutorial explaining how to get started using StochasticPrograms.
Some examples of models written in StochasticPrograms can be found on the Examples page.
See the Index for the complete list of documented functions and types.
Manual Outline
- Quick start
- Installation
- A simple stochastic program
- Scenario definition
- Stochastic program definition
- Deterministically equivalent problem
- Evaluate decisions
- Optimal first stage decision
- Wait-and-see models
- Stochastic performance
- Stochastic data
- Model definition
- Distributed stochastic programs
- Structured solvers
- Examples
Library Outline
Index
StochasticPrograms.AbstractSamplerStochasticPrograms.AbstractScenarioStochasticPrograms.ExpectedScenarioStochasticPrograms.ProbabilityStochasticPrograms.StochasticProgramStochasticPrograms.StochasticProgramStochasticPrograms.StochasticProgramStochasticPrograms.StochasticProgramStochasticPrograms.StochasticProgramStochasticPrograms.StochasticProgramStochasticPrograms.@decisionStochasticPrograms.@expectationStochasticPrograms.@first_stageStochasticPrograms.@sampleStochasticPrograms.@samplerStochasticPrograms.@scenarioStochasticPrograms.@second_stageStochasticPrograms.@zeroStochasticPrograms.DEPStochasticPrograms.EEVStochasticPrograms.EVStochasticPrograms.EVPStochasticPrograms.EVPIStochasticPrograms.EVP_decisionStochasticPrograms.EWSStochasticPrograms.SSAStochasticPrograms.SSAStochasticPrograms.VRPStochasticPrograms.VSSStochasticPrograms.WSStochasticPrograms.add_scenario!StochasticPrograms.add_scenario!StochasticPrograms.add_scenarios!StochasticPrograms.decision_lengthStochasticPrograms.deferredStochasticPrograms.distributedStochasticPrograms.evaluate_decisionStochasticPrograms.evaluate_decisionStochasticPrograms.expectedStochasticPrograms.expectedStochasticPrograms.first_stage_dataStochasticPrograms.first_stage_dimsStochasticPrograms.first_stage_nconstraintsStochasticPrograms.generate!StochasticPrograms.generatorStochasticPrograms.has_generatorStochasticPrograms.internal_modelStochasticPrograms.mastertermsStochasticPrograms.nscenariosStochasticPrograms.nstagesStochasticPrograms.nsubproblemsStochasticPrograms.optimal_decisionStochasticPrograms.optimal_decisionStochasticPrograms.optimal_decisionStochasticPrograms.optimal_decisionStochasticPrograms.optimal_valueStochasticPrograms.optimal_valueStochasticPrograms.optimize!StochasticPrograms.outcome_modelStochasticPrograms.probabilityStochasticPrograms.probabilityStochasticPrograms.probabilityStochasticPrograms.probabilityStochasticPrograms.recourse_lengthStochasticPrograms.sampleStochasticPrograms.sample!StochasticPrograms.samplerStochasticPrograms.scenarioStochasticPrograms.scenarioproblemsStochasticPrograms.scenariosStochasticPrograms.scenariotypeStochasticPrograms.second_stage_dataStochasticPrograms.set_first_stage_data!StochasticPrograms.set_probability!StochasticPrograms.set_second_stage_data!StochasticPrograms.set_spsolverStochasticPrograms.spsolverStochasticPrograms.stage_one_modelStochasticPrograms.stage_two_modelStochasticPrograms.subproblemStochasticPrograms.subproblems