Class ValueSelectorFactory<Solution_>
java.lang.Object
ai.timefold.solver.core.impl.AbstractFromConfigFactory<Solution_,SelectorConfig_>
ai.timefold.solver.core.impl.heuristic.selector.AbstractSelectorFactory<Solution_,ValueSelectorConfig>
ai.timefold.solver.core.impl.heuristic.selector.value.ValueSelectorFactory<Solution_>
public class ValueSelectorFactory<Solution_>
extends AbstractSelectorFactory<Solution_,ValueSelectorConfig>
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class ai.timefold.solver.core.impl.AbstractFromConfigFactory
config -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ValueSelector<Solution_>applyFiltering(ValueSelector<Solution_> valueSelector, ClassInstanceCache instanceCache) protected ValueSelector<Solution_>applyInitializedChainedValueFilter(HeuristicConfigPolicy<Solution_> configPolicy, GenuineVariableDescriptor<Solution_> variableDescriptor, ValueSelector<Solution_> valueSelector) protected ValueSelector<Solution_>applyProbability(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder, ValueSelector<Solution_> valueSelector, ClassInstanceCache instanceCache) static <Solution_>
ValueSelector<Solution_>applyValueRangeFiltering(HeuristicConfigPolicy<Solution_> configPolicy, ValueSelector<Solution_> valueSelector, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder selectionOrder, boolean randomSelection, String entityValueRangeRecorderId, boolean assertBothSides) protected ValueSelector<Solution_>buildMimicReplaying(HeuristicConfigPolicy<Solution_> configPolicy) buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder) buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean applyReinitializeVariableFiltering, ValueSelectorFactory.ListValueFilteringType listValueFilteringType) buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean applyReinitializeVariableFiltering, ValueSelectorFactory.ListValueFilteringType listValueFilteringType, String entityValueRangeRecorderId, boolean assertBothSides) static <Solution_>
ValueSelectorFactory<Solution_>create(ValueSelectorConfig valueSelectorConfig) protected booleandetermineBaseRandomSelection(GenuineVariableDescriptor<Solution_> variableDescriptor, SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder) protected EntityDescriptor<Solution_>downcastEntityDescriptor(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor) extractVariableDescriptor(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor) protected voidvalidateProbability(SelectionOrder resolvedSelectionOrder) protected 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
-
ValueSelectorFactory
-
-
Method Details
-
create
public static <Solution_> ValueSelectorFactory<Solution_> create(ValueSelectorConfig valueSelectorConfig) -
extractVariableDescriptor
public GenuineVariableDescriptor<Solution_> extractVariableDescriptor(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor) -
buildValueSelector
public ValueSelector<Solution_> buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder) -
buildValueSelector
public ValueSelector<Solution_> buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean applyReinitializeVariableFiltering, ValueSelectorFactory.ListValueFilteringType listValueFilteringType) -
buildValueSelector
public ValueSelector<Solution_> buildValueSelector(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder, boolean applyReinitializeVariableFiltering, ValueSelectorFactory.ListValueFilteringType listValueFilteringType, String entityValueRangeRecorderId, boolean assertBothSides) - Parameters:
configPolicy- never nullentityDescriptor- 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 nullapplyReinitializeVariableFiltering- the reinitialization flaglistValueFilteringType- the list filtering typeentityValueRangeRecorderId- the recorder id to be used to create a replaying selector when enabling entity value rangeassertBothSides- a flag used by the entity value range filtering select to enable different types of validations- Returns:
- never null
-
buildMimicReplaying
protected ValueSelector<Solution_> buildMimicReplaying(HeuristicConfigPolicy<Solution_> configPolicy) -
downcastEntityDescriptor
protected EntityDescriptor<Solution_> downcastEntityDescriptor(HeuristicConfigPolicy<Solution_> configPolicy, EntityDescriptor<Solution_> entityDescriptor) -
determineBaseRandomSelection
protected boolean determineBaseRandomSelection(GenuineVariableDescriptor<Solution_> variableDescriptor, SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder) -
applyFiltering
protected ValueSelector<Solution_> applyFiltering(ValueSelector<Solution_> valueSelector, ClassInstanceCache instanceCache) -
applyInitializedChainedValueFilter
protected ValueSelector<Solution_> applyInitializedChainedValueFilter(HeuristicConfigPolicy<Solution_> configPolicy, GenuineVariableDescriptor<Solution_> variableDescriptor, ValueSelector<Solution_> valueSelector) -
validateSorting
-
validateProbability
-
applyProbability
protected ValueSelector<Solution_> applyProbability(SelectionCacheType resolvedCacheType, SelectionOrder resolvedSelectionOrder, ValueSelector<Solution_> valueSelector, ClassInstanceCache instanceCache) -
applyValueRangeFiltering
public static <Solution_> ValueSelector<Solution_> applyValueRangeFiltering(HeuristicConfigPolicy<Solution_> configPolicy, ValueSelector<Solution_> valueSelector, EntityDescriptor<Solution_> entityDescriptor, SelectionCacheType minimumCacheType, SelectionOrder selectionOrder, boolean randomSelection, String entityValueRangeRecorderId, boolean assertBothSides)
-