如何将阶段终止设置为最大未改进步数?

How to set a phase termination to maximum Unimproved Step Count?

我想在本地搜索阶段使用 maximumUnimprovedStepCount 终止条件。

solverConfigResourceunmarshalling 失败并出现错误

No such field org.optaplanner.core.config.solver.termination.TerminationConfig.maximumUnimprovedStepCount

文档说这个终止对求解器不起作用,只对一个阶段起作用,所以我猜测正确的资源应该是 org. ... .config.termination. ...(中间没有 solver)。

但是为什么不能直接得到正确的class?

这是我的最小求解器配置文件:

<solver>
    <scanAnnotatedClasses/>

    <scoreDirectorFactory>
        <scoreDefinitionType>HARD_SOFT</scoreDefinitionType>
        <scoreDrl>solver/rules.drl</scoreDrl>
    </scoreDirectorFactory>

    <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
    </constructionHeuristic>

    <termination>
        <secondsSpentLimit>60</secondsSpentLimit>
    </termination>

    <localSearch>
        <termination>
            <maximumUnimprovedStepCount>100</maximumUnimprovedStepCount>
        </termination>
    </localSearch>

</solver>

因为现在叫<unimprovedStepCountLimit>,见TerminationConfig.java:

<solver>
  ...
  <localSearch>
    <termination>
      <unimprovedStepCountLimit>...</>
    </>
  </>
</>

IIRC 在 public API 和 6.1 的配置完成之前重命名。