Skip to content

Commit 8a3bbd5

Browse files
committed
Merge pull request #47 from leclere/readme-update
Update README.md
2 parents 7105116 + 8d5f7cc commit 8a3bbd5

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

README.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,40 @@
99
[![codecov.io](https://codecov.io/github/leclere/StochDynamicProgramming.jl/coverage.svg?branch=master)](https://codecov.io/github/leclere/StochDynamicProgramming.jl?branch=master)
1010

1111

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 :
1313

14+
- Extensive formulation
15+
- Stochastic Dynamic Programming.
16+
- *Stochastic Dual Dynamic Programming* (SDDP) algorithm.
1417

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)
2019

21-
These problems are modelled with:
20+
## What problem can we solve with this package ?
2221

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.
2426

25-
- Linear dynamic
27+
## Why Extensive formulation ?
2628

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.
2831

32+
## Why Stochastic Dynamic Programming ?
2933

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.
3137

32-
- Dams valley management
33-
34-
- Newsvendor testcase
38+
## Why SDDP?
3539

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.
3645

37-
The documentation will be soon updated to explain how this algorithm work.
3846

3947

4048
## Installation
@@ -47,7 +55,7 @@ Pkg.clone("https://github.com/leclere/StochDynamicProgramming.jl.git")
4755
## Usage
4856

4957
IJulia Notebooks will be provided to explain how this package work.
50-
A first example on a two dams valley [here.] (http://nbviewer.jupyter.org/github/leclere/StochDynamicProgramming.jl/blob/master/notebooks/damsvalley.ipynb)
58+
A first example on a two dams valley [here.] (https://github.com/leclere/StochDP-notebooks/blob/master/notebooks/damsvalley.ipynb)
5159

5260

5361
## Documentation

0 commit comments

Comments
 (0)