public class TimeMillisSpentTermination extends AbstractTermination
logger
Constructor and Description |
---|
TimeMillisSpentTermination(long timeMillisSpentLimit) |
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(long timeMillisSpent) |
TimeMillisSpentTermination |
createChildThreadTermination(DefaultSolverScope solverScope,
ChildThreadType childThreadType)
|
long |
getTimeMillisSpentLimit() |
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(long timeMillisSpent) |
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 TimeMillisSpentTermination(long timeMillisSpentLimit)
public long getTimeMillisSpentLimit()
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(long timeMillisSpent)
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(long timeMillisSpent)
public TimeMillisSpentTermination 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.