1

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. Filtered selection) によると、FilterClass は ValueSelector でも動作するはずです。

...apply it on a lower levels, such as a filterClass on the entitySelector or valueSelector:

 <changeMoveSelector>
  <entitySelector>
    <filterClass>...EntityFilter</filterClass>
  </entitySelector>
</changeMoveSelector>

これは Planner のバグですか? または、計画変数のフィルタリング クラスを持つ他の方法はありますか? 事前にお時間をいただき、ご提案いただきありがとうございます。

以下は私の構成です:

<changeMoveSelector>
                <entitySelector mimicSelectorRef="placerEntitySelector">
                </entitySelector>
                <valueSelector>
                    <variableName>room</variableName>
                    <cacheType>PHASE</cacheType>
                    <selectionOrder>SORTED</selectionOrder>
      <filterClass>..SelectionFilter</filterClass>
                    </valueSelector>
            </changeMoveSelector>
4

1 に答える 1

0

<valueSelector>はまだフィルターをサポートしていません(TODO を参照ValueSelectorConfig.java)。それが役に立つかどうかは議論の余地があります.良いユースケースがあれば、共有してください.

周囲<moveSelector>はフィルタリングをサポートしていないことに注意してください。その場合、値の代わりに動き (この場合は a) をフィルタリングしているChangeMoveため、値だけでなく、エンティティと値の両方というより多くの情報があります。

于 2014-11-06T15:34:06.617 に答える