Class UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_>
java.lang.Object
org.optaplanner.core.impl.solver.event.SolverLifecycleListenerAdapter<Solution_>
org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerAdapter<Solution_>
org.optaplanner.core.impl.solver.termination.AbstractTermination<Solution_>
org.optaplanner.core.impl.solver.termination.UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_>
- All Implemented Interfaces:
EventListener
,PhaseLifecycleListener<Solution_>
,SolverLifecycleListener<Solution_>
,Termination<Solution_>
public class UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_>
extends AbstractTermination<Solution_>
-
Field Summary
Fields inherited from class org.optaplanner.core.impl.solver.termination.AbstractTermination
logger
-
Constructor Summary
ModifierConstructorDescriptionUnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold) protected
UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold, Clock clock) -
Method Summary
Modifier and TypeMethodDescriptiondouble
calculatePhaseTimeGradient
(AbstractPhaseScope<Solution_> phaseScope) double
calculateSolverTimeGradient
(SolverScope<Solution_> solverScope) A timeGradient is a relative estimate of how long the search will continue.protected double
calculateTimeGradient
(long safeTimeMillis) createChildThreadTermination
(SolverScope<Solution_> solverScope, ChildThreadType childThreadType) long
boolean
isPhaseTerminated
(AbstractPhaseScope<Solution_> phaseScope) Called by thePhase
after every step and every move to determine if the search should stop.boolean
isSolverTerminated
(SolverScope<Solution_> solverScope) Called by theSolver
after every phase to determine if the search should stop.protected boolean
isTerminated
(long safeTimeMillis) void
phaseEnded
(AbstractPhaseScope<Solution_> phaseScope) void
phaseStarted
(AbstractPhaseScope<Solution_> phaseScope) void
solvingEnded
(SolverScope<Solution_> solverScope) void
solvingStarted
(SolverScope<Solution_> solverScope) void
stepEnded
(AbstractStepScope<Solution_> stepScope) toString()
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
Methods inherited from interface org.optaplanner.core.impl.solver.event.SolverLifecycleListener
solvingError
-
Constructor Details
-
UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
public UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination(long unimprovedTimeMillisSpentLimit, Score unimprovedScoreDifferenceThreshold) -
UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination
-
-
Method Details
-
getUnimprovedTimeMillisSpentLimit
public long getUnimprovedTimeMillisSpentLimit() -
getUnimprovedScoreDifferenceThreshold
-
solvingStarted
- Specified by:
solvingStarted
in interfaceSolverLifecycleListener<Solution_>
- Overrides:
solvingStarted
in classSolverLifecycleListenerAdapter<Solution_>
-
solvingEnded
- Specified by:
solvingEnded
in interfaceSolverLifecycleListener<Solution_>
- Overrides:
solvingEnded
in classSolverLifecycleListenerAdapter<Solution_>
-
phaseStarted
- Specified by:
phaseStarted
in interfacePhaseLifecycleListener<Solution_>
- Overrides:
phaseStarted
in classPhaseLifecycleListenerAdapter<Solution_>
-
phaseEnded
- Specified by:
phaseEnded
in interfacePhaseLifecycleListener<Solution_>
- Overrides:
phaseEnded
in classPhaseLifecycleListenerAdapter<Solution_>
-
stepEnded
- Specified by:
stepEnded
in interfacePhaseLifecycleListener<Solution_>
- Overrides:
stepEnded
in classPhaseLifecycleListenerAdapter<Solution_>
-
isSolverTerminated
Description copied from interface:Termination
Called by theSolver
after every phase to determine if the search should stop.- Parameters:
solverScope
- never null- Returns:
- true if the search should terminate.
-
isPhaseTerminated
Description copied from interface:Termination
Called by thePhase
after 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
Description copied from interface:Termination
A 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 cannot 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.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.
-
calculatePhaseTimeGradient
Description copied from interface:Termination
- Parameters:
phaseScope
- never null- Returns:
- timeGradient t for which
0.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.
-
calculateTimeGradient
protected double calculateTimeGradient(long safeTimeMillis) -
createChildThreadTermination
public UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_> createChildThreadTermination(SolverScope<Solution_> solverScope, ChildThreadType childThreadType) Description copied from interface:Termination
- Specified by:
createChildThreadTermination
in interfaceTermination<Solution_>
- Overrides:
createChildThreadTermination
in classAbstractTermination<Solution_>
- Parameters:
solverScope
- never nullchildThreadType
- never null- Returns:
- not null
-
toString
-