Class CachingMoveSelector<Solution_>
java.lang.Object
ai.timefold.solver.core.impl.heuristic.selector.AbstractSelector<Solution_>
ai.timefold.solver.core.impl.heuristic.selector.move.AbstractMoveSelector<Solution_>
ai.timefold.solver.core.impl.heuristic.selector.move.decorator.AbstractCachingMoveSelector<Solution_>
ai.timefold.solver.core.impl.heuristic.selector.move.decorator.CachingMoveSelector<Solution_>
- All Implemented Interfaces:
SelectionCacheLifecycleListener<Solution_>,IterableSelector<Solution_,,Move<Solution_>> MoveSelector<Solution_>,Selector<Solution_>,PhaseLifecycleListener<Solution_>,SolverLifecycleListener<Solution_>,Iterable<Move<Solution_>>,EventListener
A
MoveSelector that caches the result of its child MoveSelector.
Keep this code in sync with CachingEntitySelector and CachingValueSelector.
-
Field Summary
FieldsFields inherited from class ai.timefold.solver.core.impl.heuristic.selector.move.decorator.AbstractCachingMoveSelector
cachedMoveList, cacheType, childMoveSelectorFields inherited from class ai.timefold.solver.core.impl.heuristic.selector.AbstractSelector
logger, phaseLifecycleSupport, workingRandom -
Constructor Summary
ConstructorsConstructorDescriptionCachingMoveSelector(MoveSelector<Solution_> childMoveSelector, SelectionCacheType cacheType, boolean randomSelection) -
Method Summary
Modifier and TypeMethodDescriptionbooleanIs true ifSelector.isCountable()is false or if this selector is in random order (for most cases).iterator()toString()Methods inherited from class ai.timefold.solver.core.impl.heuristic.selector.move.decorator.AbstractCachingMoveSelector
constructCache, disposeCache, getCacheType, getChildMoveSelector, getSize, isCountableMethods inherited from class ai.timefold.solver.core.impl.heuristic.selector.AbstractSelector
phaseEnded, phaseStarted, solvingEnded, solvingStarted, stepEnded, stepStartedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ai.timefold.solver.core.impl.heuristic.selector.IterableSelector
spliteratorMethods inherited from interface ai.timefold.solver.core.impl.heuristic.selector.move.MoveSelector
supportsPhaseAndSolverCachingMethods inherited from interface ai.timefold.solver.core.impl.phase.event.PhaseLifecycleListener
phaseEnded, phaseStarted, stepEnded, stepStartedMethods inherited from interface ai.timefold.solver.core.impl.solver.event.SolverLifecycleListener
solvingEnded, solvingError, solvingStarted
-
Field Details
-
randomSelection
protected final boolean randomSelection
-
-
Constructor Details
-
CachingMoveSelector
public CachingMoveSelector(MoveSelector<Solution_> childMoveSelector, SelectionCacheType cacheType, boolean randomSelection)
-
-
Method Details
-
isNeverEnding
public boolean isNeverEnding()Description copied from interface:SelectorIs true ifSelector.isCountable()is false or if this selector is in random order (for most cases). Is never true when this selector is in shuffled order (which is less scalable but more exact).- Returns:
- true if the
Iterator.hasNext()of theIteratorcreated byIterable.iterator()never returns false (except when it's empty).
-
iterator
-
toString
-