0

我正在使用 COIN-OR 的 CLP 求解器和 Python 中的 PULP 求解一个最小化线性程序。

问题中包含的变量是可能变量总数的子集,有时我的定价启发式会选择导致不可行解决方案的变量子集。之后,我使用影子价格为新变量定价。

我的问题是,如果问题不可行,我仍然可以通过调用 prob.constraints[c].pi 获得值,但这些值本身似乎并不总是“有效”或“好”。

现在,像 Gurobi 这样的求解器甚至不允许我在求解不可行后调用影子价格。

4

1 回答 1

0

其实斯图,这可能行得通!- 在我的例子中,“虚拟变量”可能是源/汇节点,我可以放松对它的流量限制,允许无限流入/流出,但成本很高。这使得解决方案可行,具有非常糟糕的高最优成本;那么新变量的定价应该会起作用,并告诉我在下一次迭代中哪些变量要添加到问题中。我会试一试并报告。我唯一担心的是源/汇节点上的 bigM 成本系数可能会扭曲变量的定价,使所有变量看起来都相对有吸引力。这将适得其反,因为将大部分变量添加回问题中首先会破坏我的列生成的目的。我会测试它...

于 2018-02-09T17:27:31.520 回答