Я действительно новичок в Optaplanner и пытаюсь решить проблему, которая явно не подходит ни к одному из примеров, представленных в документации.
У меня есть модель домена, для которой несколько ServiceProvider (s) (@PlanningEntity) нужно выбрать один из различных SPOption (ProblemFact).
Каждый SPOption имеет список контейнеров (другого @PlanningEntity), которые должны быть помещены в коллекцию сервера (еслиопция выбрана).
В настоящее время, когда солвер запускается, он перебирает все решение и изменяет переменную планирования chootedOption с помощью одной из опций, представленных в списке опций для каждого экземпляра SPOption.Тем не менее, он никогда не назначает каждому из экземпляров Контейнера в коллекции SPOption Сервер (еще одну переменную планирования в другом объекте планирования).
Я сообщаю здесь синтетическую диаграмму модели классов с аннотациями, которые я использовал.
Как получить итератор решателя также для переменной размещения сервера в контейнере?
А вот и пастбина конфигурации решателя:
<solver>
<!-- Define the model -->
<!--<scanAnnotatedClasses/>-->
<solutionClass>domain.Fog</solutionClass>
<entityClass>domain.Container</entityClass>
<entityClass>domain.ServiceProvider</entityClass>
<scoreDirectorFactory>
<easyScoreCalculatorClass>score.FogEasyScoreCalculator</easyScoreCalculatorClass>
</scoreDirectorFactory>
<constructionHeuristic>
<queuedEntityPlacer>
<entitySelector id="placerEntitySelector">
<cacheType>PHASE</cacheType>
<entityClass>domain.Container</entityClass>
</entitySelector>
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector"/>
</changeMoveSelector>
</queuedEntityPlacer>
</constructionHeuristic>
<constructionHeuristic>
<queuedEntityPlacer>
<entitySelector id="placerEntitySelector">
<cacheType>PHASE</cacheType>
<entityClass>domain.ServiceProvider</entityClass>
</entitySelector>
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector"/>
</changeMoveSelector>
</queuedEntityPlacer>
</constructionHeuristic>
</solver>