How to represent delay between actions in SDDP?

To pass information between stages, you must add the information as a state variable.

See Access variables from a previous stage · SDDP.jl

You could do something like:

SDDP.LinearPolicyGraph() do sp, t
    l = 3
    @variable(sp, y_state[1:l], SDDP.State, Bin, initial_value = 0)
    @constraint(sp, [i in 2:l], y_state[i].out == y_state[i-1].in)
    @constraint(sp, sum(y_state[i].out for i in 1:l) <= 1)
    y_t = y_state[1].out
end

is there some “library” of common (I assume) modeling motifs like this that are used across SDDP (or these sequential decision problems in general)?

Nope. I’ve put some effort into the documentation at https://sddp.dev, but it leaves a lot to be desired.

1 Like