在线性规划公式中,如果其他变量值大于0,我们如何将变量值强制为0

时间:2017-11-08 16:05:13

标签: linear-programming linear operations-research

例如,如果系统约束是x1 + x2 + x3< = 1000.如果我希望一次只有三个变量中的一个大于0并强制其他变量为0.如何制定这样的约束?我正在使用excel求解器解决LP问题。

2 个答案:

答案 0 :(得分:0)

对此的标准配方是:

x(i) <= y(i)*1000
sum(i, y(i)) = 1
y(i) in {0,1}

是的,这可以通过Excel Solver完成(&#34; Simplex&#34;支持二进制约束)。

答案 1 :(得分:0)

欧文给出的解决方案是正确的。但是,由于您现在拥有二进制y_i变量,因此您不再拥有LP。此外,请注意由于系数(1000)在第一个附加约束中的大M效应,因此MILP公式的线性松弛可能较弱。

就像Sascha提到的那样,没有办法留在纯粹的&#39;简单的LP配方,afaik