public interface Termination extends PhaseLifecycleListener
Solver
or a Phase
should stop.
An implementation must extend AbstractTermination
to ensure backwards compatibility in future versions.
AbstractTermination
Modifier and Type | Method and Description |
---|---|
double |
calculatePhaseTimeGradient(AbstractPhaseScope phaseScope)
|
double |
calculateSolverTimeGradient(DefaultSolverScope solverScope)
A timeGradient is a relative estimate of how long the search will continue.
|
Termination |
createChildThreadTermination(DefaultSolverScope solverScope,
ChildThreadType childThreadType)
|
boolean |
isPhaseTerminated(AbstractPhaseScope phaseScope)
Called by the
Phase after every step and every move to determine if the search should stop. |
boolean |
isSolverTerminated(DefaultSolverScope solverScope)
Called by the
Solver after every phase to determine if the search should stop. |
phaseEnded, phaseStarted, stepEnded, stepStarted
solvingEnded, solvingStarted
boolean isSolverTerminated(DefaultSolverScope solverScope)
Solver
after every phase to determine if the search should stop.solverScope
- never nullboolean isPhaseTerminated(AbstractPhaseScope phaseScope)
Phase
after every step and every move to determine if the search should stop.phaseScope
- never nulldouble calculateSolverTimeGradient(DefaultSolverScope solverScope)
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 can not 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.
solverScope
- never null0.0 <= t <= 1.0 or -1.0
when it is not supported.
At the start of a solver t is 0.0 and at the end t would be 1.0.double calculatePhaseTimeGradient(AbstractPhaseScope phaseScope)
phaseScope
- never null0.0 <= t <= 1.0 or -1.0
when it is not supported.
At the start of a phase t is 0.0 and at the end t would be 1.0.Termination createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
solverScope
- never nullchildThreadType
- never nullUnsupportedOperationException
- if not supported by this terminationCopyright © 2006–2018 JBoss by Red Hat. All rights reserved.