在 Python 中搜索 MIP 求解器或工具的策略

Search Strategies for MIP solver OR-tools in Python

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

任何人都可以帮我提供一些选项供我研究吗?

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

pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING

提前谢谢你。如果我需要在此处添加任何信息,请告诉我。

你运气不好。没有可用于通过线性求解器包装器进行搜索的自定义。

我建议为此使用 CP-SAT。 你可以看看:

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