有没有办法让optaplanner继续上次的最优解进行下一次计算

Is there a way for optaplanner to continue the last best solution to the next calculation

我正在使用 optaplanner 8.4.1 和约束流 API。

optaplanner有没有办法根据简单的约束条件输出问题的最优解,然后将解输入到复杂的约束条件下,求出最优解?这可以加快找到最佳解决方案的时间吗?

约束过于复杂和缓慢,尤其是当您使用 groupby 和 toList 方法时。我现在的逻辑涉及到连续子串的判断

例如:有10个位置和10个带序号的球。球的颜色可以是白色、黑色或红色。此时,您需要将 10 个球排成 10 个位置。要求白球必须堆在一起。白球的范围是4到6;这里的position是planning entity,ball是planning variable。这里我们需要计算有多少个连续的白球。约束流目前只支持4基,所以只能通过groupBy和toList

的形式判断

你目前不能作为一个解算器来做到这一点,但你应该能够通过 运行 2 个解算器(具有不同的 SolverConfig)一个接一个地做到这一点。对于您的示例,您可以 BasicConstraintProvider 具有硬约束和 FullConstraintProvider 扩展基本约束并添加软约束。

话虽如此,我会首先花时间提高 分数计算速度 (请参阅信息日志或基准报告),以避免出现此类变通方法。这个数字应该在 10 000 以上。

此外,FIRST_FEASIBLE_FIT 可能很有趣。