终止并重新启动求解器后,OptaPlanner会立即产生更好的解决方案

时间:2018-08-28 15:15:19

标签: optaplanner

我根据OptaPlanner的任务分配示例创建了一个解决方案,并在原始示例和我自己的解决方案中都观察到一种特定的行为:

解决100个任务5名员工的问题在半分钟左右后几乎不会产生新的更好成绩,但是终止求解器并再次重新启动它确实会带来更好的解决方案。

为什么会这样?以我的理解,重复的构造试探法不会更改任何计划实体,因为它们都已经初始化。然后再次开始本地搜索。为什么它立即找到新的更好的解决方案,而只继续执行第一个执行而不会中断呢?至少不会慢很多?

1 个答案:

答案 0 :(得分:2)

通过终止并重新启动求解器,可以有效地导致 Late Acceptance 进行 reheating 。一旦this jira is prioritized and implemented,OptaPlanner就会自动进行加热。

这在少数用例中发生。但是,如果它发生在用例上,则倾向于在所有数据集上发生。

在某些情况下,我可以通过使用<localSearch>终止配置多个<unimprovedSecondsSpentLimit>阶段来解决此问题,但是我不喜欢这样。修复jira是唯一真正的解决方案。