Interface Termination<Solution_>
- 
- All Superinterfaces:
- EventListener,- PhaseLifecycleListener<Solution_>,- SolverLifecycleListener<Solution_>
 - All Known Implementing Classes:
- AbstractCompositeTermination,- AbstractTermination,- AndCompositeTermination,- BasicPlumbingTermination,- BestScoreFeasibleTermination,- BestScoreTermination,- ChildThreadPlumbingTermination,- OrCompositeTermination,- PhaseToSolverTerminationBridge,- ScoreCalculationCountTermination,- StepCountTermination,- TimeMillisSpentTermination,- UnimprovedStepCountTermination,- UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination,- UnimprovedTimeMillisSpentTermination
 
 public interface Termination<Solution_> extends PhaseLifecycleListener<Solution_> A Termination determines when aSolveror aPhaseshould stop.An implementation must extend AbstractTerminationto ensure backwards compatibility in future versions.- See Also:
- AbstractTermination
 
- 
- 
Method SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description doublecalculatePhaseTimeGradient(AbstractPhaseScope<Solution_> phaseScope)doublecalculateSolverTimeGradient(SolverScope<Solution_> solverScope)A timeGradient is a relative estimate of how long the search will continue.Termination<Solution_>createChildThreadTermination(SolverScope<Solution_> solverScope, ChildThreadType childThreadType)booleanisPhaseTerminated(AbstractPhaseScope<Solution_> phaseScope)Called by thePhaseafter every step and every move to determine if the search should stop.booleanisSolverTerminated(SolverScope<Solution_> solverScope)Called by theSolverafter every phase to determine if the search should stop.- 
Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerphaseEnded, phaseStarted, stepEnded, stepStarted
 - 
Methods inherited from interface org.optaplanner.core.impl.solver.event.SolverLifecycleListenersolvingEnded, solvingStarted
 
- 
 
- 
- 
- 
Method Detail- 
isSolverTerminatedboolean isSolverTerminated(SolverScope<Solution_> solverScope) Called by theSolverafter every phase to determine if the search should stop.- Parameters:
- solverScope- never null
- Returns:
- true if the search should terminate.
 
 - 
isPhaseTerminatedboolean isPhaseTerminated(AbstractPhaseScope<Solution_> phaseScope) Called by thePhaseafter every step and every move to determine if the search should stop.- Parameters:
- phaseScope- never null
- Returns:
- true if the search should terminate.
 
 - 
calculateSolverTimeGradientdouble calculateSolverTimeGradient(SolverScope<Solution_> solverScope) 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. - Parameters:
- solverScope- never null
- 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.
 
 - 
calculatePhaseTimeGradientdouble calculatePhaseTimeGradient(AbstractPhaseScope<Solution_> phaseScope) - Parameters:
- phaseScope- never null
- Returns:
- timeGradient t for which 0.0 <= t <= 1.0 or -1.0when it is not supported. At the start of a phase t is 0.0 and at the end t would be 1.0.
 
 - 
createChildThreadTerminationTermination<Solution_> createChildThreadTermination(SolverScope<Solution_> solverScope, ChildThreadType childThreadType) - Parameters:
- solverScope- never null
- childThreadType- never null
- Returns:
- not null
- Throws:
- UnsupportedOperationException- if not supported by this termination
 
 
- 
 
-