Optaplanner:不满足所有约束条件时的终止策略

时间:2019-01-13 13:50:44

标签: optaplanner

我正在使用optaplanner解决与员工分配相似的问题。我的所有约束可能都无法满足-我只想要最好的解决方案。

有什么好的终止策略?

如果我使用unimprovedSecondsSpentLimit,则会损害解决方案的可重复性。

我正在考虑使用unimprovedSecondsSpentLimit,但不知道该使用什么价值?另外,我在文档中看到这也可以用于一个阶段。这意味着什么?我自己没有定义任何阶段。

1 个答案:

答案 0 :(得分:1)

您可以将求解器配置为存在于多个层中,这些层通常称为阶段。每个阶段都是一个单独的优化步骤,您可以根据自己的需要进行配置(例如,在30秒后停止,在200个未改进的步骤后停止,等等)。因此,每个阶段可以有自己的终止标准。 (除了sovler终止条件之外)

关于找到一个好的终止策略,您应该使用Optaplanner的基准测试器模块。加载多个数据集并为unimprovedSecondsSpentLimit尝试不同的值。查看哪种配置始终如一地返回最理想的解决方案。希望这可以帮助。

相关问题