我目前正在使用MIP求解器来解决Python的OR工具中的班次分配问题,一次只能一名员工。对于每个单独的问题,只有一名员工,大约需要轮班100次。有很多变量和约束(每个员工只有几千个)。我已经详细研究了如何改善每个约束,但是没有运气。由于性能确实很重要,因此我想进一步研究调整搜索策略的可能性,但也没有运气。文件似乎很稀疏。
有人可以给我一些选择来帮助我吗?
这是我正在使用的求解器:
pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING
先谢谢您。让我知道是否需要在此处添加任何信息。
答案 0 :(得分:1)
您不走运。没有可用于通过线性求解器包装程序进行搜索的自定义项。
我建议为此使用CP-SAT。 您可以看一下:
https://github.com/google/or-tools/blob/master/examples/python/shift_scheduling_sat.py