Optaplanner、ChangeProblem 与重启求解器

问题描述 投票:0回答:1

在飞行中更改 Optaplanner 问题,需要使用 ProblemChange 来让求解器实时排队更改并纠正解决方案。但是,这种行为与停止求解器、保存并更改 BestSolution 并使用修改后的解决方案重新启动求解器有很大不同 - 假设工作解决方案比上一个 Bestsolution 好不了多少?

问题的原因是是否最好将解决方案保留在内存中,因为我知道会发生新的实时变化,以便能够快速处理它们。但另一方面,它们并不经常发生,因此保存解决方案并在更改后重新启动它会是一个更简单的解决方案。

optaplanner
1个回答
0
投票

OptaPlanner 和 Timefold 的当前实现实际上会在每次问题更改时重新启动求解器。

ProblemChange
可能仍然比自己重新启动求解器更有效,但差异可能可以忽略不计。

不过,我仍然建议使用

ProblemChange
,因为没有什么是一成不变的。未来的某一天,我们可能会真正实现完全增量
ProblemChange
,你将获得免费的性能。通过为您的命令提供一些额外的语义来帮助求解器帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.