Этап создания OptaPlanner — есть ли способ определить фильтры?

На этапе локального поиска вы можете настроить фильтры для сущностей, значений и перемещений. Вы даже можете предоставить собственную фабрику перемещений, если хотите.

Однако я не могу найти никакой документации о том, как сделать то же самое на этапе строительства. Единственная конфигурация — это эвристический тип и собиратель: Глава 8. Эвристика построения

Я хочу реализовать некоторые из моих очень жестких правил в фильтрах, однако без возможности фильтрации на этапе построения я должен также определить их как правила подсчета очков, чтобы избежать плохого построения.

Есть ли способ определить фильтры для этапа строительства?


person Shatz    schedule 12.11.2013    source источник


Ответы (1)


Да, есть (требуется как минимум 6.0.0.CR1, но лучше самая последняя и лучшая), но это еще не задокументировано.

Следуйте по кроличьей дыре вниз от ConstructionHeuristicSolverPhaseConfig и QueuedEntityPlacerConfig. Это что-то вроде:

   <constructionHeuristic>
     <queuedEntityPlacer>
       <entitySelector id="a"/>
       <changeMoveSelector>
         <mimicEntitySelector refId="a"/>
         <valueSelector>
       </changeMoveSelector>
     </queuedEntityPlacer>
   </constructionHeuristic>
person Geoffrey De Smet    schedule 12.11.2013
comment
Спасибо, это глубокая дыра. Мне удалось настроить это с помощью исходного селектора объектов. Тем не менее, мне все еще интересно, работает ли настроенный селектор перемещения изменений так же, как автоматически сгенерированный, создает россыпь объектов в очереди. - person Shatz; 14.11.2013