Class AbstractMoveSelectorFactory<Solution_,MoveSelectorConfig_ extends MoveSelectorConfig<MoveSelectorConfig_>>
java.lang.Object
ai.timefold.solver.core.impl.AbstractFromConfigFactory<Solution_,SelectorConfig_>
ai.timefold.solver.core.impl.heuristic.selector.AbstractSelectorFactory<Solution_,MoveSelectorConfig_>
ai.timefold.solver.core.impl.heuristic.selector.move.AbstractMoveSelectorFactory<Solution_,MoveSelectorConfig_>
- All Implemented Interfaces:
MoveSelectorFactory<Solution_>
- Direct Known Subclasses:
CartesianProductMoveSelectorFactory,ChangeMoveSelectorFactory,KOptListMoveSelectorFactory,KOptMoveSelectorFactory,ListChangeMoveSelectorFactory,ListRuinRecreateMoveSelectorFactory,ListSwapMoveSelectorFactory,MoveIteratorFactoryFactory,MoveListFactoryFactory,PillarChangeMoveSelectorFactory,PillarSwapMoveSelectorFactory,RuinRecreateMoveSelectorFactory,SubChainChangeMoveSelectorFactory,SubChainSwapMoveSelectorFactory,SubListChangeMoveSelectorFactory,SubListSwapMoveSelectorFactory,SwapMoveSelectorFactory,TailChainSwapMoveSelectorFactory,UnionMoveSelectorFactory
public abstract class AbstractMoveSelectorFactory<Solution_,MoveSelectorConfig_ extends MoveSelectorConfig<MoveSelectorConfig_>>
extends AbstractSelectorFactory<Solution_,MoveSelectorConfig_>
implements MoveSelectorFactory<Solution_>
-
Field Summary
Fields inherited from class ai.timefold.solver.core.impl.AbstractFromConfigFactory
config -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected MoveSelector<Solution_>applySorting(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder, MoveSelector<Solution_> moveSelector) protected abstract MoveSelector<Solution_>buildBaseMoveSelector(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, boolean randomSelection) Builds a baseMoveSelectorwithout any advanced capabilities (filtering, sorting, ...).buildMoveSelector(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean skipNonDoableMoves) BuildsMoveSelectorfrom theMoveSelectorConfigand provided parameters.protected MoveSelectorConfig<?>buildUnfoldedMoveSelectorConfig(HeuristicConfigPolicy<Solution_> configPolicy) To provide unfolded MoveSelectorConfig, override this method in a subclass.protected static <T> TcheckUnfolded(String configPropertyName, T configProperty) protected booleandetermineBaseRandomSelection(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder) protected booleanprotected voidvalidateSorting(SelectionOrder resolvedSelectionOrder) Methods inherited from class ai.timefold.solver.core.impl.heuristic.selector.AbstractSelectorFactory
validateCacheTypeVersusSelectionOrderMethods inherited from class ai.timefold.solver.core.impl.AbstractFromConfigFactory
deduceBasicVariableDescriptorList, deduceEntityDescriptor, deduceEntitySortManner, deduceGenuineVariableDescriptor, deduceVariableDescriptorList, getDefaultEntitySelectorConfigForEntity, getTheOnlyEntityDescriptor, getTheOnlyEntityDescriptorWithBasicVariables, getTheOnlyEntityDescriptorWithListVariable, getTheOnlyVariableDescriptor, getVariableDescriptorForName
-
Constructor Details
-
AbstractMoveSelectorFactory
-
-
Method Details
-
buildBaseMoveSelector
protected abstract MoveSelector<Solution_> buildBaseMoveSelector(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, boolean randomSelection) Builds a baseMoveSelectorwithout any advanced capabilities (filtering, sorting, ...).- Parameters:
configPolicy- never nullminimumCacheType- never null, If caching is used (different fromSelectionCacheType.JUST_IN_TIME), then it should be at least thisSelectionCacheTypebecause an ancestor already uses such caching and less would be pointless.randomSelection- true is equivalent toSelectionOrder.RANDOM, false is equivalent toSelectionOrder.ORIGINAL- Returns:
- never null
-
buildMoveSelector
public MoveSelector<Solution_> buildMoveSelector(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean skipNonDoableMoves) BuildsMoveSelectorfrom theMoveSelectorConfigand provided parameters.- Specified by:
buildMoveSelectorin interfaceMoveSelectorFactory<Solution_>- Parameters:
configPolicy- never nullminimumCacheType- never null, If caching is used (different fromSelectionCacheType.JUST_IN_TIME), then it should be at least thisSelectionCacheTypebecause an ancestor already uses such caching and less would be pointless.inheritedSelectionOrder- never null- Returns:
- never null
-
buildUnfoldedMoveSelectorConfig
protected MoveSelectorConfig<?> buildUnfoldedMoveSelectorConfig(HeuristicConfigPolicy<Solution_> configPolicy) To provide unfolded MoveSelectorConfig, override this method in a subclass.- Parameters:
configPolicy- never null- Returns:
- null if no unfolding is needed
-
checkUnfolded
-
determineBaseRandomSelection
protected boolean determineBaseRandomSelection(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder) -
isBaseInherentlyCached
protected boolean isBaseInherentlyCached() -
validateSorting
-
applySorting
protected MoveSelector<Solution_> applySorting(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder, MoveSelector<Solution_> moveSelector)
-