Interface PhaseTermination<Solution_>
- All Superinterfaces:
Termination<Solution_>
- All Known Subinterfaces:
UniversalTermination<Solution_>
- All Known Implementing Classes:
BasicPlumbingTermination,ChildThreadPlumbingTermination
@NullMarked
public sealed interface PhaseTermination<Solution_>
extends Termination<Solution_>
permits UniversalTermination<Solution_> (not exhaustive)
Determines when a
Phase should stop.-
Method Summary
Modifier and TypeMethodDescriptionstatic <Solution_>
PhaseTermination<Solution_>bridge(SolverTermination<Solution_> termination) doublecalculatePhaseTimeGradient(AbstractPhaseScope<Solution_> phaseScope) A timeGradient is a relative estimate of how long the search will continue.default booleanisApplicableTo(Class<? extends AbstractPhaseScope> phaseScopeClass) booleanisPhaseTerminated(AbstractPhaseScope<Solution_> phaseScope) Called by thePhaseafter every step and every move to determine if the search should stop.voidphaseEnded(AbstractPhaseScope<Solution_> phaseScope) voidphaseStarted(AbstractPhaseScope<Solution_> phaseScope) voidstepEnded(AbstractStepScope<Solution_> stepScope) voidstepStarted(AbstractStepScope<Solution_> stepScope)
-
Method Details
-
isApplicableTo
- Returns:
- false if the termination should be skipped on the given phase,
when used as part of
AbstractCompositeTermination.
-
isPhaseTerminated
Called by thePhaseafter every step and every move to determine if the search should stop.- Returns:
- true if the search should terminate.
-
calculatePhaseTimeGradient
A timeGradient is a relative estimate of how long the search will continue.Clients that use a timeGradient should cache it at the start of a single step because some implementations are not time-stable.
If a timeGradient cannot be calculated, it should return -1.0. Several implementations (such a
SimulatedAnnealingAcceptor) require a correctly implemented timeGradient.A Termination's timeGradient can be requested after they are terminated, so implementations should be careful not to return a timeGradient above 1.0.
- Returns:
- timeGradient t for which
0.0 <= t <= 1.0 or -1.0when it is not supported. At the start of a solver t is 0.0 and at the end t would be 1.0.
-
phaseStarted
-
stepStarted
-
stepEnded
-
phaseEnded
-
bridge
-