gtopt::CascadeTransition struct

Transition configuration: how a cascade level receives information from the previous level.

Public functions

auto merge(const CascadeTransition& opts) -> void

Public variables

OptInt inherit_feasibility_cuts
OptInt inherit_optimality_cuts
OptInt inherit_targets
OptReal optimality_dual_threshold
OptReal target_min_atol
Minimum absolute tolerance for target band. Default: 1.0.
OptReal target_penalty
Elastic penalty cost per unit violation of target. Default: 500.
OptReal target_rtol
Relative tolerance for target band. Default: 0.05 (5%).

Variable documentation

OptInt gtopt::CascadeTransition::inherit_feasibility_cuts

Carry forward feasibility cuts from previous level. Same semantics as inherit_optimality_cuts.

OptInt gtopt::CascadeTransition::inherit_optimality_cuts

Carry forward optimality cuts (Benders cuts) from previous level. The value controls when inherited cuts are dropped ("forgotten"):

  • absent or 0: do not inherit
  • -1: inherit and keep forever
  • N > 0: inherit but forget after N training iterations, then re-solve with only self-generated cuts

OptInt gtopt::CascadeTransition::inherit_targets

Add elastic state variable target constraints from previous solution. Same semantics as inherit_optimality_cuts:

  • absent or 0: do not inherit
  • -1: inherit and keep forever
  • N > 0: inherit but remove target constraints after N training iterations

OptReal gtopt::CascadeTransition::optimality_dual_threshold

Minimum |dual| threshold for transferring cuts. Cuts with |dual| < threshold are considered inactive and skipped. Default: 0.0 (transfer all cuts regardless of dual).