# 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