在使用PULP从COIN进行不可行的求解后,影子价格是否有效

时间:2018-02-06 17:42:39

标签: python pulp coin-or-cbc

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

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

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

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

1 个答案:

答案 0 :(得分:0)

实际上Stu,这可能会奏效! - "虚拟变量"在我的情况下可能是源/汇节点,我可以放松流量约束,允许无限流量输入/输出,但成本很高。这使得解决方案可行,并且具有非常差的高最优成本;那么新变量的定价应该起作用,并向我展示在下一次迭代中要添加到问题中的变量。我试一试并报告。我唯一担心的是源/汇节点上的bigM成本系数可能会扭曲变量的定价,使得它们看起来都相对具有吸引力。这将是适得其反的bc将大部分变量添加回问题将首先打败我的列生成的目的。我会测试它......