I am using SDDP.jl for my research and want to know that at the very start of the execution, when there is no value function initialization and terminal state (for backward recursion), how cost-to-go function is initialized?

In other words, what cost-to-go function is optimized at the very first forward pass in SDDP.jl implementation.


1 Answer 1


It is initialized with theta >= lower_bound or theta <= upper_bound, where lower_bound or upper_bound is passed as the argument to SDDP.PolicyGraph(; lower_bound = 0) do sp, t ... end.

This tutorial explains the algorithm: https://sddp.dev/stable/explanation/theory_intro


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.