Stochastic Dual Dynamic Programming (SDDP) is a widely used and fundamental
algorithm for solving multistage stochastic optimization problems. Although
SDDP has been frequently applied to solve risk-averse models with the
Conditional Value-at-Risk (CVaR), it is known that the estimation of upper
bounds is a methodological challenge, and many methods are computationally
intensive. In practice, this leaves most SDDP implementations without a
practical and clear stopping criterion. In this paper, we propose using the
information already contained in a multicut formulation of SDDP to solve this
problem with a simple and computationally efficient methodology.
The multicut version of SDDP, in contrast with the typical average cut,
preserves the information about which scenarios give rise to the worst costs,
thus contributing to the CVaR value. We use this fact to modify the standard
sampling method on the forward step so the average of multiple paths
approximates the nested CVaR cost. We highlight that minimal changes are
required in the SDDP algorithm and there is no additional computational burden
for a fixed number of iterations.
We present multiple case studies to empirically demonstrate the effectiveness
of the method. First, we use a small hydrothermal dispatch test case, in which
we can write the deterministic equivalent of the entire scenario tree to show
that the method perfectly computes the correct objective values. Then, we
present results using a standard approximation of the Brazilian operation
problem and a real hydrothermal dispatch case based on data from Colombia. Our
numerical experiments showed that this method consistently calculates upper
bounds higher than lower bounds for those risk-averse problems and that lower
bounds are improved thanks to the better exploration of the scenarios tree