交替构造启发式和本地搜索阶段

Alternate Construction heuristic and Local Search phases

我有一个基于 MeetingScheduling 示例的案例。 结果很好。 调度从构造启发式阶段开始。 然后是本地搜索阶段。 CH 阶段减少了硬约束和中等约束惩罚,而 LS 似乎减少了软约束惩罚。

我发现当我重新运行调度时,CH阶段再次减少了硬约束和中约束惩罚。 那么,我们能否将求解器配置为多次交替 CH 和 LS 阶段?

当前求解器配置:

<?xml version="1.0" encoding="UTF-8"?>
<solver>
  <solutionClass>org.optaplanner.examples.meetings.domain.MeetingSchedule</solutionClass>
  <entityClass>org.optaplanner.examples.meetings.domain.Meeting</entityClass>

  <scoreDirectorFactory>
    <scoreDrl>org/optaplanner/examples/meetings/solver/meetingsScoreRules.drl</scoreDrl>
  </scoreDirectorFactory>

  <termination>
    <minutesSpentLimit>20</minutesSpentLimit>
  </termination>
</solver>

这应该有效:

<solver>
  ...
  <constructionHeuristic/>
  <localSearch>
    <termination>...stepCountLimit or calculateCountLimit?...</termination>
  </localSearch>
  <constructionHeuristic/>
  <localSearch>
    <termination>...stepCountLimit or calculateCountLimit?...</termination>
  </localSearch>
  <constructionHeuristic/>
  <localSearch>
    <termination>...stepCountLimit or calculateCountLimit?...</termination>
  </localSearch>
</solver>

并且通过编程 API 您可以将其动态化为 n。

话虽如此,这可能不是最佳解决方案。正确的解决方案是重新加热(尚不支持)。