|
9 | 9 | [](https://codecov.io/github/leclere/StochDynamicProgramming.jl?branch=master) |
10 | 10 |
|
11 | 11 |
|
12 | | -This is a Julia implementation of the *Stochastic Dual Dynamic Programming* (SDDP) algorithm. It is built upon [JuMP](https://github.com/JuliaOpt/JuMP.jl) |
| 12 | +This is a Julia package for optimizing controlled stochastic dynamic system (in discrete time). It offers three methods of resolution : |
13 | 13 |
|
| 14 | +- Extensive formulation |
| 15 | +- Stochastic Dynamic Programming. |
| 16 | +- *Stochastic Dual Dynamic Programming* (SDDP) algorithm. |
14 | 17 |
|
15 | | -## Why SDDP? |
16 | | - |
17 | | -SDDP is an algorithm to solve multistage stochastic optimization problems. |
18 | | -It return bounds on the value of the optimization problem and approximation |
19 | | -of Bellman function that are used to derive an optimal solution. |
| 18 | +It is built upon [JuMP](https://github.com/JuliaOpt/JuMP.jl) |
20 | 19 |
|
21 | | -These problems are modelled with: |
| 20 | +## What problem can we solve with this package ? |
22 | 21 |
|
23 | | -- stage-wise independent discrete noise |
| 22 | +- Stage-wise independent discrete noise |
| 23 | +- Linear dynamics |
| 24 | +- Linear or convex piecewise linear cost |
| 25 | +Extension to non-linear formulation are under development. |
24 | 26 |
|
25 | | -- Linear dynamic |
| 27 | +## Why Extensive formulation ? |
26 | 28 |
|
27 | | -- Linear or piecewise linear cost |
| 29 | +An extensive formulation approach consists in representing the problem in a linear |
| 30 | +problem solved by an external linear solver. Complexity is exponential in number of stages. |
28 | 31 |
|
| 32 | +## Why Stochastic Dynamic Programming ? |
29 | 33 |
|
30 | | -This algorithm could be applied to the following examples: |
| 34 | +Dynamic Programming is a standard tool to solve stochastic optimal control problem with |
| 35 | +independent noise. The method require discretisation of the state space, and is exponential |
| 36 | +in the dimension of the state space. |
31 | 37 |
|
32 | | -- Dams valley management |
33 | | - |
34 | | -- Newsvendor testcase |
| 38 | +## Why SDDP? |
35 | 39 |
|
| 40 | +SDDP is a dynamic programming algorithm relying on cutting planes. The algorithm require convexity |
| 41 | +of the value function but does not discretize the state space. The complexity is linear in the |
| 42 | +number of stage, and can accomodate higher dimension state than standard dynamic programming. |
| 43 | +The algorithm return exact lower bound and estimated upper bound as well as approximate optimal |
| 44 | +control strategies. |
36 | 45 |
|
37 | | -The documentation will be soon updated to explain how this algorithm work. |
38 | 46 |
|
39 | 47 |
|
40 | 48 | ## Installation |
|
0 commit comments