Class UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
- java.lang.Object
-
- org.optaplanner.core.impl.solver.event.SolverLifecycleListenerAdapter<Solution_>
-
- org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerAdapter
-
- org.optaplanner.core.impl.solver.termination.AbstractTermination
-
- org.optaplanner.core.impl.solver.termination.UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
-
- All Implemented Interfaces:
EventListener,PhaseLifecycleListener,SolverLifecycleListener,Termination
public class UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination extends AbstractTermination
-
-
Field Summary
-
Fields inherited from class org.optaplanner.core.impl.solver.termination.AbstractTermination
logger
-
-
Constructor Summary
Constructors Modifier Constructor Description UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold)protectedUnimprovedTimeMillisSpentScoreDifferenceThresholdTermination(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold, Clock clock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecalculatePhaseTimeGradient(AbstractPhaseScope phaseScope)doublecalculateSolverTimeGradient(DefaultSolverScope solverScope)A timeGradient is a relative estimate of how long the search will continue.protected doublecalculateTimeGradient(long safeTimeMillis)UnimprovedTimeMillisSpentScoreDifferenceThresholdTerminationcreateChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)ScoregetUnimprovedScoreDifferenceThreshold()longgetUnimprovedTimeMillisSpentLimit()booleanisPhaseTerminated(AbstractPhaseScope phaseScope)Called by thePhaseafter every step and every move to determine if the search should stop.booleanisSolverTerminated(DefaultSolverScope solverScope)Called by theSolverafter every phase to determine if the search should stop.protected booleanisTerminated(long safeTimeMillis)voidphaseEnded(AbstractPhaseScope phaseScope)voidphaseStarted(AbstractPhaseScope phaseScope)voidsolvingEnded(DefaultSolverScope solverScope)voidsolvingStarted(DefaultSolverScope solverScope)voidstepEnded(AbstractStepScope stepScope)StringtoString()-
Methods inherited from class org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerAdapter
stepStarted
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListener
stepStarted
-
-
-
-
Constructor Detail
-
UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
public UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold)
-
-
Method Detail
-
getUnimprovedTimeMillisSpentLimit
public long getUnimprovedTimeMillisSpentLimit()
-
getUnimprovedScoreDifferenceThreshold
public Score getUnimprovedScoreDifferenceThreshold()
-
solvingStarted
public void solvingStarted(DefaultSolverScope solverScope)
- Specified by:
solvingStartedin interfaceSolverLifecycleListener- Overrides:
solvingStartedin classSolverLifecycleListenerAdapter
-
solvingEnded
public void solvingEnded(DefaultSolverScope solverScope)
- Specified by:
solvingEndedin interfaceSolverLifecycleListener- Overrides:
solvingEndedin classSolverLifecycleListenerAdapter
-
phaseStarted
public void phaseStarted(AbstractPhaseScope phaseScope)
- Specified by:
phaseStartedin interfacePhaseLifecycleListener- Overrides:
phaseStartedin classPhaseLifecycleListenerAdapter
-
phaseEnded
public void phaseEnded(AbstractPhaseScope phaseScope)
- Specified by:
phaseEndedin interfacePhaseLifecycleListener- Overrides:
phaseEndedin classPhaseLifecycleListenerAdapter
-
stepEnded
public void stepEnded(AbstractStepScope stepScope)
- Specified by:
stepEndedin interfacePhaseLifecycleListener- Overrides:
stepEndedin classPhaseLifecycleListenerAdapter
-
isSolverTerminated
public boolean isSolverTerminated(DefaultSolverScope solverScope)
Description copied from interface:TerminationCalled by theSolverafter every phase to determine if the search should stop.- Parameters:
solverScope- never null- Returns:
- true if the search should terminate.
-
isPhaseTerminated
public boolean isPhaseTerminated(AbstractPhaseScope phaseScope)
Description copied from interface:TerminationCalled 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.
-
isTerminated
protected boolean isTerminated(long safeTimeMillis)
-
calculateSolverTimeGradient
public double calculateSolverTimeGradient(DefaultSolverScope solverScope)
Description copied from interface:TerminationA 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 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.
- 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.
-
calculatePhaseTimeGradient
public double calculatePhaseTimeGradient(AbstractPhaseScope phaseScope)
Description copied from interface:Termination- 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.
-
calculateTimeGradient
protected double calculateTimeGradient(long safeTimeMillis)
-
createChildThreadTermination
public UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
Description copied from interface:Termination- Specified by:
createChildThreadTerminationin interfaceTermination- Overrides:
createChildThreadTerminationin classAbstractTermination- Parameters:
solverScope- never nullchildThreadType- never null- Returns:
- not null
-
-