public class UnimprovedTimeMillisSpentTermination extends AbstractTermination
logger
Constructor and Description |
---|
UnimprovedTimeMillisSpentTermination(long unimprovedTimeMillisSpentLimit) |
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 bestSolutionTimeMillis) |
UnimprovedTimeMillisSpentTermination |
createChildThreadTermination(DefaultSolverScope solverScope,
ChildThreadType childThreadType)
|
long |
getUnimprovedTimeMillisSpentLimit() |
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 bestSolutionTimeMillis) |
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 UnimprovedTimeMillisSpentTermination(long unimprovedTimeMillisSpentLimit)
public long getUnimprovedTimeMillisSpentLimit()
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 bestSolutionTimeMillis)
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 bestSolutionTimeMillis)
public UnimprovedTimeMillisSpentTermination createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
Termination
createChildThreadTermination
in interface Termination
createChildThreadTermination
in class AbstractTermination
solverScope
- never nullchildThreadType
- never nullCopyright © 2006–2018 JBoss by Red Hat. All rights reserved.