我使用的是optaplanner 8.4.1和约束流API。
optaplanner有没有办法根据简单的约束输出问题的最佳解决方案,然后将解决方案输入到复杂的约束中以找到最佳解决方案?这能加快实现最佳解决方案的速度吗?
约束太复杂且太慢,尤其是在使用groupby和toList方法时。我目前的逻辑涉及到对连续的子串的判断。
例如:有10个位置和10个带有序列号的球。球的颜色可以是白色、黑色或红色。此时,您需要将10个球排成10个位置。要求白球必须堆在一起。白球的范围是4到6;这里的位置是计划实体,球是计划变量。这里我们需要计算有多少个连续的白球。约束流目前仅支持4个bases,因此只能以groupBy和toList的形式进行判断
发布于 2021-04-26 19:28:45
目前,您不能作为单个解算器执行此操作,但您应该能够通过相继运行两个解算器(具有不同的SolverConfig)来执行此操作。例如,您可以使用具有硬约束的BasicConstraintProvider和一个扩展基本约束并添加软约束的FullConstraintProvider。
话虽如此,我首先会投入时间来提高分数计算速度(参见info日志或基准测试报告),以避免所有这些变通方法。这个数字应该在10000以上。
此外,FIRST_FEASIBLE_FIT可能会让人感兴趣。
https://stackoverflow.com/questions/67263222
复制相似问题