SDDP with Quasi Monte Carlo sampling

Hi Oscar (@odow),
I am working on a SDDP implementation of a capacity expansion problem using SDDP.jl. I suspect that convergence could be improved by using a type of stratified sampling scheme in the forward pass, such as Latin Hypercube Sampling. I saw that you discussed such methods, at least for the upper bound simulations, in your thesis. It does not seem straightforward to implement a QMC sampling scheme in SDDP.jl, especially in the parallel setup, since draws of different parallel passes would depend on each other. Have you or anyone else ever done this in SDDP.jl? Would you have any pointers on what to bear in mind?

Thank you very much,


1 Like

Hi @FelixSchmidt,

I implemented something like LHS at one point in a very old version of SDDP.jl, but it doesn’t exist in the current version.

The approach would be to define a new AbstractSamplingScheme:

That you could call via SDDP.train(model; sampling_scheme = LHSSamplingScheme()).

For the parallel passes, you’d likely need to initialize the scheme with a different starting point on each thread, or just ignore that for now.

1 Like

Hi Oscar,

thank you very much! I will give this a try!


1 Like