Stopping Criterion
StructDualDynProg.stop
— Method.stop(s, stats, totalstats)
Returns whether the SDDP algorithm should stop. If totalstats.niterations
is 0, no iteration has already been done, otherwise, the niterations
th iteration has just finished. This iteration used stats.npaths
paths and generated stats.nfcuts
(resp. stats.nocuts
) new feasibility (resp. optimality) cuts. The lower bound is now totalstats.lowerbound
and the upper bound has mean totalstats.upperbound
and variance totalstats.σ_UB
.
type OrStoppingCriterion <: StructDualDynProg.AbstractStoppingCriterion
Stops if lhs
or rhs
want to stop.
type AndStoppingCriterion <: StructDualDynProg.AbstractStoppingCriterion
Stops if lhs
and rhs
want to stop.
StructDualDynProg.IterLimit
— Type.type IterLimit <: StructDualDynProg.AbstractStoppingCriterion
Stops if iter
≧ limit
.
StructDualDynProg.CutLimit
— Type.type CutLimit <: StructDualDynProg.AbstractStoppingCriterion
Stops if there was less than or equal to limit
cuts added in the iteration. For instance, CutLimit(0)
stops when there are no cuts added.
StructDualDynProg.Pereira
— Type.type Pereira <: StructDualDynProg.AbstractStoppingCriterion
Stops if z_UB - α * σ/√K - tol < z_LB < z_UB + α * σ/√K + tol
and σ / √K > β * max(1, |z_LB|))