Class PhaseToSolverTerminationBridge
- 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.PhaseToSolverTerminationBridge
-
- All Implemented Interfaces:
EventListener
,PhaseLifecycleListener
,SolverLifecycleListener
,Termination
public class PhaseToSolverTerminationBridge extends AbstractTermination
-
-
Field Summary
-
Fields inherited from class org.optaplanner.core.impl.solver.termination.AbstractTermination
logger
-
-
Constructor Summary
Constructors Constructor Description PhaseToSolverTerminationBridge(Termination solverTermination)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
calculatePhaseTimeGradient(AbstractPhaseScope phaseScope)
double
calculateSolverTimeGradient(DefaultSolverScope solverScope)
A timeGradient is a relative estimate of how long the search will continue.Termination
createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
boolean
isPhaseTerminated(AbstractPhaseScope phaseScope)
Called by thePhase
after every step and every move to determine if the search should stop.boolean
isSolverTerminated(DefaultSolverScope solverScope)
Called by theSolver
after every phase to determine if the search should stop.void
phaseEnded(AbstractPhaseScope phaseScope)
void
phaseStarted(AbstractPhaseScope phaseScope)
void
solvingEnded(DefaultSolverScope solverScope)
void
solvingStarted(DefaultSolverScope solverScope)
void
stepEnded(AbstractStepScope stepScope)
void
stepStarted(AbstractStepScope stepScope)
String
toString()
-
-
-
Constructor Detail
-
PhaseToSolverTerminationBridge
public PhaseToSolverTerminationBridge(Termination solverTermination)
-
-
Method Detail
-
solvingStarted
public void solvingStarted(DefaultSolverScope solverScope)
- Specified by:
solvingStarted
in interfaceSolverLifecycleListener
- Overrides:
solvingStarted
in classSolverLifecycleListenerAdapter
-
phaseStarted
public void phaseStarted(AbstractPhaseScope phaseScope)
- Specified by:
phaseStarted
in interfacePhaseLifecycleListener
- Overrides:
phaseStarted
in classPhaseLifecycleListenerAdapter
-
stepStarted
public void stepStarted(AbstractStepScope stepScope)
- Specified by:
stepStarted
in interfacePhaseLifecycleListener
- Overrides:
stepStarted
in classPhaseLifecycleListenerAdapter
-
stepEnded
public void stepEnded(AbstractStepScope stepScope)
- Specified by:
stepEnded
in interfacePhaseLifecycleListener
- Overrides:
stepEnded
in classPhaseLifecycleListenerAdapter
-
phaseEnded
public void phaseEnded(AbstractPhaseScope phaseScope)
- Specified by:
phaseEnded
in interfacePhaseLifecycleListener
- Overrides:
phaseEnded
in classPhaseLifecycleListenerAdapter
-
solvingEnded
public void solvingEnded(DefaultSolverScope solverScope)
- Specified by:
solvingEnded
in interfaceSolverLifecycleListener
- Overrides:
solvingEnded
in classSolverLifecycleListenerAdapter
-
isSolverTerminated
public boolean isSolverTerminated(DefaultSolverScope solverScope)
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
public boolean isPhaseTerminated(AbstractPhaseScope phaseScope)
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.
-
calculateSolverTimeGradient
public double calculateSolverTimeGradient(DefaultSolverScope solverScope)
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 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.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
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.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.
-
createChildThreadTermination
public Termination createChildThreadTermination(DefaultSolverScope solverScope, ChildThreadType childThreadType)
Description copied from interface:Termination
- Specified by:
createChildThreadTermination
in interfaceTermination
- Overrides:
createChildThreadTermination
in classAbstractTermination
- Parameters:
solverScope
- never nullchildThreadType
- never null- Returns:
- not null
-
-