Documentation | Build Status | Coverage |
---|---|---|
This package is unregistered so you will need to Pkg.clone
it as follows:
Pkg.clone("https://github.com/odow/SDDP.jl.git")
This package is under development and some features may be changed or added. Most of the time, this will just be a renaming of minor parts of the code.
For a time line of features, see NEWS.md.
Items that require modification of existing codes are prefixed with !!
.
We need your examples! We're trying to collate a large array of examples to test the
correctness (and later, performance) of the package. Either make a PR or go to the
examples folder and click Upload Files
and Github will walk you through the process.
Bonus points for models where you know the optimal first stage objective value.
We need your bug reports! We've only stressed a few code paths on real-world models. If you run into any problems, file an issue here.
The documentation is still very incomplete, and the internals of the library need a tidy and a refactor, however the user-facing API from the examples should be stable enough to use.
However, you can find some documentation at https://odow.github.io/SDDP.jl/build/index.html
Or have a read of the draft tutorial/paper which goes into a bit more depth.
Q. How do I make the constraint coefficients random?
A. Due to the design of JuMP, it's difficult to efficiently modify constraint
coefficients. Therefore, you can only vary the right-hand-side of a constraint
using the @rhsnoise
macro.
As a work around, we suggest you either reformulate the model so the uncertainty appears in the RHS, or model the uncertainty as a markov process. Take a look at the asset management example to see an example of this. Make sure you keep in mind that a new value function is built at each markov state which increases the computation time and memory requirements.
SDDP.jl
isn't the only Julia package for solving multi-stage stochastic programs.
You may want to checkout StructDualDynProg.jl
or StochDynamicProgramming.jl
to see if they better suit your needs.
@lkapelevich wrote an extension for SDDP.jl to solve multi-stage stochastic programs with binary state variables. Check it out at https://github.com/lkapelevich/SDDiP.jl!