StochDynamicProgramming¶
This package implements the Stochastic Dual Dynamic Programming (SDDP) algorithm with Julia. It relies upon MathProgBase and JuMP.
A complete overview of this algorithm could be found here.
At the moment the plan is to create a type such that :
- you can fix linear time \(t\) cost function (then convex piecewise linear)
- you can fix linear dynamic (with a physical state \(x\) and a control \(u\))
- the scenarios are created by assuming that the noise \(\xi_t\) is independent in time, each given by a table (value, probability)
Then it is standard SDDP :
- fixed number of forward passes
- iterative backward passes
- no clearing of cuts
- stopping after a given number of iterations / computing time
Once solved the SDDP model should be able to :
- give the lower bound on the cost
- simulate trajectories to evaluate expected cost
- give the optimal control given current time state and noise
We have a lot of ideas to implement further :
- spatial construction (i.e : defining stock one by one and then their interactions)
- noise as AR (eventually with fitting on historic datas)
- convex solvers
- refined stopping rules
- cut pruning
- paralellization