【发布时间】:2020-02-07 21:35:04
【问题描述】:
我目前正在尝试在 Windows 上的 Python 分支和价格框架中实现一个通用护士排班问题 (NRP)。
我尝试使用 Gurobi,但显然不可能,请参阅讨论: https://support.gurobi.com/hc/en-us/community/posts/360043240312-Branch-and-price-example
我正在搜索一个关于如何在 Python 中使用 SCIP 设置分支和价格框架的小示例 - 开始使用。我只能在 C 和 C++ 中找到示例,这些都是我不熟悉的语言。
【问题讨论】:
-
您需要使用分店和价格方法吗?现代求解器通常可以直接解决广泛(完整)形式的问题,而无需使用像这样的迭代方法。您能详细介绍一下您要解决的问题吗?
-
不一定,但我想。一个优点是我可以自己确定分支规则,而我不知道在不同的求解器中使用了哪些启发式和切割规则。本文描述了我试图解决的问题:sciencedirect.com/science/article/abs/pii/S0377221713002464 但我想添加额外的约束(我还没有决定哪些约束)
-
我的第一个猜测是您不会从标准求解器中获得细粒度的控制。您可能需要用 Python 或 C 编写整个算法。但您可以通过在 Python 中添加列然后让求解器运行完成(其正常模式)(可能是热启动)来获得类似的结果。或者,您可以通过创建一个在基础中包含新列的热启动来更接近您想要的结果,然后运行求解器并限制迭代次数。我之前尝试过,但没有检查它是否确定性地旋转新列。