我在ConstructionHeuristic阶段使用ConstructionHeuristic配置。它可以很好地在filterClass和comparatorClass中配置EntitySelector。
但是,在"ValueRangeType.FROM_PLANNING_ENTITY_PROPERTY“会话中,我无法使用ValueSelector计划变量。它抛出这个异常:java.lang.IllegalArgumentException:valueSelectorConfig (ValueSelectorConfig(行))和resolvedCacheType (位相)和resolvedSelectionOrder (排序)需要基于EntityIndependentValueSelector (FromEntityPropertyValueSelector(行))。检查您的@ValueRangeProvider注释。
示例NQueen Config:.
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector">
</entitySelector>
<valueSelector>
<variableName>row</variableName>
<cacheType>PHASE</cacheType>
<selectionOrder>SORTED</selectionOrder>
<sorterComparatorClass>..RowWeightStrength</sorterComparatorClass>
</valueSelector>
</changeMoveSelector>……
**我需要使用的valueRange取决于我的计划实体,以便为每个女王使用PossibleRowList (为了表演),请有什么建议?提前谢谢。
发布于 2014-11-07 17:10:35
valueSelector被排序了,所以它需要缓存(以便能够对它们进行排序)。但是,如果我正确地回忆起来,就不支持使用@ValueRangeProvider实体进行缓存。
这意味着带有@ValueRangeProvider实体的CH只支持FIRST_FIT和FIRST_FIT_DECREASING,而不支持WEAKEST_FIT或STRONGEST_FIT。我相信这里已经有了一个jira (如果您找到它,请在这里链接它)。我们得解决这个问题。
同时:解决方法是不使用排序,但已经在每个实体的值范围列表中对它们进行排序。
https://stackoverflow.com/questions/26794063
复制相似问题