Skip to content

Implementation of SDDP (Stochastic Dual Dynamic Programming) using the StructJuMP modeling interface

License

Notifications You must be signed in to change notification settings

JuliaStochOpt/StructDualDynProg.jl

Repository files navigation

StructDualDynProg

Documentation PackageEvaluator Build Status Social
Build Status Build Status Gitter
Coveralls branch Codecov branch

Generic interface for the Stochastic Dual Dynamic Programming (SDDP) algorithm as well as a generic implementation. The problem can either be provided using the StructJuMP modeling interface or using a lower level interface.

This package is used by the Entropic Cone package.

Documentation

  • STABLEmost recently tagged version of the documentation.
  • LATESTin-development version of the documentation.

Installation

The master branch is aimed at JuMP v0.19. To try this package with JuMP v0.19, do:

] add StructJuMP#master
] add StructDualDynProg#master

Note that this package has not been updated yet to JuMP v0.19, see here.

Notes for choice of solvers

This package should work with any linear programming (LP) solver supported by MathProgBase. If some subproblems are infeasible, an infeasibility ray will be asked to the solver. In this case, it is advised to turn presolve off in CPLEX (i.e. CPLEX.CplexSolver(CPX_PARAM_REDUCE=0)) and to avoid using Clp since it often cannot find the infeasibility ray. If some subproblems are unbounded, an unbounded ray and a feasible solution will be asked for the solver. Again, avoid using Clp in that case. Hopefully subproblems shouldn't be unbounded if detectlb is left at true when calling SOI.stochasticprogram.