public class ScoreCalculationCountTermination extends AbstractTermination
logger
Constructor and Description |
---|
ScoreCalculationCountTermination(long scoreCalculationCountLimit) |
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.
|
protected double |
calculateTimeGradient(InnerScoreDirector scoreDirector) |
ScoreCalculationCountTermination |
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. |
protected boolean |
isTerminated(InnerScoreDirector scoreDirector) |
String |
toString() |
phaseEnded, phaseStarted, stepEnded, stepStarted
solvingEnded, solvingStarted
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
phaseEnded, phaseStarted, stepEnded, stepStarted
solvingEnded, solvingStarted
public ScoreCalculationCountTermination(long scoreCalculationCountLimit)
public boolean isSolverTerminated(DefaultSolverScope solverScope)
Termination
Solver
after every phase to determine if the search should stop.solverScope
- never nullpublic boolean isPhaseTerminated(AbstractPhaseScope phaseScope)
Termination
Phase
after every step and every move to determine if the search should stop.phaseScope
- never nullprotected boolean isTerminated(InnerScoreDirector scoreDirector)
public double calculateSolverTimeGradient(DefaultSolverScope solverScope)
Termination
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.public double calculatePhaseTimeGradient(AbstractPhaseScope phaseScope)
Termination
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.protected double calculateTimeGradient(InnerScoreDirector scoreDirector)
public ScoreCalculationCountTermination createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
Termination
createChildThreadTermination
in interface Termination
createChildThreadTermination
in class AbstractTermination
solverScope
- never nullchildThreadType
- never nullCopyright © 2006–2019 JBoss by Red Hat. All rights reserved.