首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OptaPlanner : ValueSelector不能使用ValueRangeType.FROM_PLANNING_ENTITY_PROPERTY

OptaPlanner : ValueSelector不能使用ValueRangeType.FROM_PLANNING_ENTITY_PROPERTY
EN

Stack Overflow用户
提问于 2014-11-07 04:29:22
回答 1查看 335关注 0票数 0

我在ConstructionHeuristic阶段使用ConstructionHeuristic配置。它可以很好地在filterClass和comparatorClass中配置EntitySelector。

但是,在"ValueRangeType.FROM_PLANNING_ENTITY_PROPERTY“会话中,我无法使用ValueSelector计划变量。它抛出这个异常:java.lang.IllegalArgumentException:valueSelectorConfig (ValueSelectorConfig(行))和resolvedCacheType (位相)和resolvedSelectionOrder (排序)需要基于EntityIndependentValueSelector (FromEntityPropertyValueSelector(行))。检查您的@ValueRangeProvider注释。

示例NQueen Config:.

代码语言:javascript
复制
<changeMoveSelector>
    <entitySelector mimicSelectorRef="placerEntitySelector">
    </entitySelector>
    <valueSelector>
       <variableName>row</variableName>
       <cacheType>PHASE</cacheType>
       <selectionOrder>SORTED</selectionOrder>
       <sorterComparatorClass>..RowWeightStrength</sorterComparatorClass>
    </valueSelector>
</changeMoveSelector>

……

**我需要使用的valueRange取决于我的计划实体,以便为每个女王使用PossibleRowList (为了表演),请有什么建议?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 17:10:35

valueSelector被排序了,所以它需要缓存(以便能够对它们进行排序)。但是,如果我正确地回忆起来,就不支持使用@ValueRangeProvider实体进行缓存。

这意味着带有@ValueRangeProvider实体的CH只支持FIRST_FIT和FIRST_FIT_DECREASING,而不支持WEAKEST_FIT或STRONGEST_FIT。我相信这里已经有了一个jira (如果您找到它,请在这里链接它)。我们得解决这个问题。

同时:解决方法是不使用排序,但已经在每个实体的值范围列表中对它们进行排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26794063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档