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")
```

The documentation is still very incomplete, however the user-facing API from the examples should be stable enough to use.

**If you are stuggling to figure out how to use something, raise a Github issue!**

However, you can find some documentation at https://odow.github.io/SDDP.jl/latest/

In addition, most functions are documented, and this can be accessed via the Julia help. e.g.:

```
julia>? @state
```

Some other resources include:

- many examples: https://github.com/odow/SDDP.jl/tree/master/examples
- a paper on Optimization-Online: http://www.optimization-online.org/DB_HTML/2017/12/6388.html
- an example of a large-scale model here: https://github.com/odow/MilkPOWDER

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.

**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!

If you use SDDP.jl, we ask that you please cite the following paper:

```
@article{dowson_sddp.jl,
title = {{SDDP}.jl: a {Julia} package for {Stochastic} {Dual} {Dynamic} {Programming}},
url = {http://www.optimization-online.org/DB_HTML/2017/12/6388.html},
journal = {Optimization Online},
author = {Dowson, Oscar and Kapelevich, Lea},
year = {2017}
}
```

04/10/2017

19 days ago

119 commits