Class AbstractCachingMoveSelector<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_>
- All Implemented Interfaces:
SelectionCacheLifecycleListener<Solution_>,IterableSelector<Solution_,,Move<Solution_>> MoveSelector<Solution_>,Selector<Solution_>,PhaseLifecycleListener<Solution_>,SolverLifecycleListener<Solution_>,Iterable<Move<Solution_>>,EventListener
- Direct Known Subclasses:
CachingMoveSelector,ShufflingMoveSelector,SortingMoveSelector
public abstract class AbstractCachingMoveSelector<Solution_>
extends AbstractMoveSelector<Solution_>
implements SelectionCacheLifecycleListener<Solution_>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SelectionCacheTypeprotected final MoveSelector<Solution_>Fields inherited from class ai.timefold.solver.core.impl.heuristic.selector.AbstractSelector
logger, phaseLifecycleSupport, workingRandom -
Constructor Summary
ConstructorsConstructorDescriptionAbstractCachingMoveSelector(MoveSelector<Solution_> childMoveSelector, SelectionCacheType cacheType) -
Method Summary
Modifier and TypeMethodDescriptionvoidconstructCache(SolverScope<Solution_> solverScope) voiddisposeCache(SolverScope<Solution_> solverScope) Unless this selector itself caches, this returnsSelectionCacheType.JUST_IN_TIME, even if a selector child caches.longgetSize()A random JITSelectorwithSelector.isNeverEnding()true should return a size as if it would be able to return each distinct element only once, because the size can be used inSelectionProbabilityWeightFactory.booleanIf false, thenSelector.isNeverEnding()is true.Methods 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, toString, 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.heuristic.selector.Selector
isNeverEndingMethods inherited from interface ai.timefold.solver.core.impl.solver.event.SolverLifecycleListener
solvingEnded, solvingError, solvingStarted
-
Field Details
-
childMoveSelector
-
cacheType
-
cachedMoveList
-
-
Constructor Details
-
AbstractCachingMoveSelector
public AbstractCachingMoveSelector(MoveSelector<Solution_> childMoveSelector, SelectionCacheType cacheType)
-
-
Method Details
-
getChildMoveSelector
-
getCacheType
Description copied from interface:SelectorUnless this selector itself caches, this returnsSelectionCacheType.JUST_IN_TIME, even if a selector child caches.- Specified by:
getCacheTypein interfaceSelector<Solution_>- Overrides:
getCacheTypein classAbstractSelector<Solution_>- Returns:
- never null
-
constructCache
- Specified by:
constructCachein interfaceSelectionCacheLifecycleListener<Solution_>
-
disposeCache
- Specified by:
disposeCachein interfaceSelectionCacheLifecycleListener<Solution_>
-
isCountable
public boolean isCountable()Description copied from interface:SelectorIf false, thenSelector.isNeverEnding()is true.- Specified by:
isCountablein interfaceSelector<Solution_>- Returns:
- true if all the
ValueRanges are countable (for example a double value range between 1.2 and 1.4 is not countable)
-
getSize
public long getSize()Description copied from interface:IterableSelectorA random JITSelectorwithSelector.isNeverEnding()true should return a size as if it would be able to return each distinct element only once, because the size can be used inSelectionProbabilityWeightFactory.
-