Optaplanner:Meta启发式和暴力解决方案即使有足够的时间给MH也不匹配

时间:2018-02-04 09:24:53

标签: optaplanner drools-planner

我的理解是Brute Force将始终提供最佳解决方案,但不会扩展。虽然元启发式将在一定的时间限制内提供最佳可能性。含义如果给出足够的时间,它应该与暴力解决方案匹配。

但是,在我的实施中,它没有发生。我正在通过Brute Force算法获得最佳解决方案,但即使我给了足够的时间,也与MH不一样。可能是什么原因。我之所以能想到MH是陷入局部最大值。但是,我试图从我的理解中避免这种情况。

我不是在分享实施,因为它很复杂。如果需要,将共享代码。

更新:

我的MoveSelector配置 -

<?xml version="1.0" encoding="UTF-8"?>
<solver>
  <!-- Domain model configuration -->
  <solutionClass>com.example.CutSolution</solutionClass>
  <entityClass>com.example.Size</entityClass>


  <!-- Score configuration -->
  <scoreDirectorFactory>
    <easyScoreCalculatorClass>com.example.CutplanEasyScoreCalculator</easyScoreCalculatorClass>
  </scoreDirectorFactory>

  <constructionHeuristic>
    <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
  </constructionHeuristic>
  <localSearch>
    <termination>
      <unimprovedSecondsSpentLimit>10</unimprovedSecondsSpentLimit>
    </termination>
    <unionMoveSelector>
      <changeMoveSelector/>
      <swapMoveSelector/>
      <pillarChangeMoveSelector/>
      <pillarSwapMoveSelector/>
    </unionMoveSelector>
    <acceptor>
      <entityTabuRatio>0.02</entityTabuRatio>
    </acceptor>
    <forager>
      <acceptedCountLimit>1000</acceptedCountLimit>
    </forager>
  </localSearch>
</solver>

我只有一个规划实体和一个规划变量。

感谢。

1 个答案:

答案 0 :(得分:1)

可能确实陷入了当地的最佳状态。添加额外的移动选择器以帮助它解开通常是最好的解决方案。

这种卡住更多地发生在小型数据集(缩减版)上。 Metaheuristics在升级方面表现优异,但是 - 只有香草移动选择器 - 它在某些情况下不会很好地缩小。