我目前正在使用MIP求解器在Python中的OR工具中解决班次分配问题,一次只有一名员工。对于每个单独的问题,只有一名员工,大约需要轮班100次。有很多变量和约束(每个员工只有几千个)。我已经详细研究了如何改善每个约束,但是没有运气。由于性能确实很重要,因此我想进一步研究调整搜索策略的可能性,但也没有运气。看来该文档是稀疏的。

有人可以给我一些选择来帮助我吗?

这是我正在使用的求解器:

pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING

先感谢您。让我知道是否需要在此处添加任何信息。

最佳答案

你真倒霉。没有可用于通过线性求解器包装程序进行搜索的自定义设置。

我建议为此使用CP-SAT。
您可以看一下:

https://github.com/google/or-tools/blob/master/examples/python/shift_scheduling_sat.py

10-02 10:40