我正在使用OptaPlanner 6.1.0.Final。当我尝试在ValueSelector配置中使用FilterClass时,我遇到了这个异常:
由引起:com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ UnknownFieldException:没有这样的字段org.optaplanner.core.config.heuristic.selector.value.ValueSelectorConfig.filterClass
根据OptaPlanner文档(在7.2.4。过滤选择中),FilterClass也应该在ValueSelector上工作。
...apply it on a lower levels, such as a filterClass on the entitySelector or valueSelector:
<changeMoveSelector>
<entitySelector>
<filterClass>...EntityFilter</filterClass>
</entitySelector>
</changeMoveSelector>
这是规划师的错误吗?或者任何其他方式为Planning Variables提供Filtering类? 提前感谢您的时间和建议。
以下是我的配置:
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector">
</entitySelector>
<valueSelector>
<variableName>room</variableName>
<cacheType>PHASE</cacheType>
<selectionOrder>SORTED</selectionOrder>
<filterClass>..SelectionFilter</filterClass>
</valueSelector>
</changeMoveSelector>
答案 0 :(得分:0)
<valueSelector>
尚不支持过滤器(请参阅TODO ValueSelectorConfig.java
)。这是否有用是值得商榷的:如果你有一个好的用例,请分享。
请注意,周围的<moveSelector>
支持过滤。在这种情况下,你要过滤移动(在这种情况下为ChangeMove
),而不是值 - 所以有更多信息,即实体和值,而不仅仅是值。