首页 > 解决方案 > Optaplanner:solver.getBestScore 和solver.explainBestScore 显示不同的结果?

问题描述

我正在运行我的 optaplannner 代码并收到了一些奇怪的结果。在我的整个求解过程终止之前的本地搜索过程的最后一步中,求解器更改了其“当前”分数。然而,“最好成绩”保持不变。

18:30:36.384 DEBUG [main] o.o.c.i.l.DefaultLocalSearchPhase DefaultLocalSearchPhase.java:133
>     LS step (205), time spent (200026), score (-250hard/-9soft),     best score (-240hard/-9soft), accepted/selected move count (0/2), picked move (roughplan.domain.Restock@508de524 {50 -> 30}).

18:30:36.384 INFO  [main] o.o.c.i.l.DefaultLocalSearchPhase DefaultLocalSearchPhase.java:151
> Local Search phase (5) ended: time spent (200026), best score (-240hard/-9soft), score calculation speed (35/sec), step total (206).

18:30:36.400 INFO  [main] o.o.c.i.s.DefaultSolver DefaultSolver.java:230
> Solving ended: time spent (200042), best score (-240hard/-9soft), score calculation speed (40/sec), phase total (8), environment mode (REPRODUCIBLE).

如果我想收到我的分数,solver.getBestScore 和solver.explainBestScore 会显示不同的结果。此外,solver.getBestSolution 显示与solver.explainBestScore 相同的分数。

> Explanation of score (-250hard/-9soft):

> Score: -240hard/-9soft

我反复遇到这个错误,与求解器终止的特定本地搜索阶段无关。在“FULL_ASSERT”上运行它不会引发任何异常,而且我还认为我的所有@DeepPlanningClone 注释都是正确的。

标签: optaplanner

解决方案


推荐阅读