SDDPIterationResult struct
#include <gtopt/sddp_types.hpp>
Result of a single SDDP iteration (forward + backward pass)
Public variables
- double backward_pass_s
- Wall-clock time in seconds for the backward pass (all scenes).
- bool converged
- int cuts_added
- Number of Benders cuts added this iteration.
- bool feasibility_issue
- True if elastic filter was activated.
- double forward_pass_s
- Wall-clock time in seconds for the forward pass (all scenes).
- double gap
- double gap_change
- int infeasible_cuts_added
- IterationIndex iteration
- Iteration number (0-based)
- double iteration_s
- Total wall-clock time in seconds for this iteration.
- double lower_bound
- Lower bound (phase 0 obj including a)
- std::vector<double> scene_lower_bounds
- std::vector<double> scene_upper_bounds
- Per-scene upper bounds (forward-pass costs). Size = num_scenes.
- bool stationary_converged
- bool statistical_converged
- double upper_bound
- Upper bound (sum of actual phase costs)
Variable documentation
double gtopt:: SDDPIterationResult:: gap_change
Relative change in gap vs. stationary_window iterations ago. Populated only when stationary_tol > 0 and enough iterations have elapsed; 1.0 otherwise (meaning "not yet checked / not applicable").
int gtopt:: SDDPIterationResult:: infeasible_cuts_added
Number of successful elastic-filter solves this iteration. Each elastic-filter solve corresponds to an LP infeasibility event; in the backward pass these become Benders feasibility cuts.
std::vector<double> gtopt:: SDDPIterationResult:: scene_lower_bounds
Per-scene lower bounds (phase-0 objective values). Size = num_scenes.
bool gtopt:: SDDPIterationResult:: stationary_converged
True when convergence was declared by the stationary-gap criterion (gap_change < stationary_tol) rather than the primary criterion.
bool gtopt:: SDDPIterationResult:: statistical_converged
True when convergence was declared by the statistical CI criterion (|UB - LB| <= z_{a/2} * s / sqrt(N)) rather than the primary criterion.