线性规划中的系数降低导致不连贯的结果

时间:2016-10-16 14:06:23

标签: linear-programming reduction ampl coefficients operations-research

我对在线性规划问题的约束下系数降低后得到的结果有点困惑。

问题是:

maximize z = x1 + x2 + x3 + x4 + x5 + x6
subject to: 6*x1 + 3*x2 - 5*x3 + 2*x4 + 7*x5 - 4*x6 <= 15
where:
      1<=x1<=2 continuos
      1<=x2<=2 continuos
      1<=x3<=2 continuos
      1<=x4<=2 continuos
      1<=x5<=2 continuos
      1<=x6<=2 continuos

系数减少后,约束将是:

subject to: 3*x1 + 3*x2 - 3*x3 + 2*x4 + 3*x5 - 3*x6 <= 8

Applied Integer Programming book(Der-San Chen - Robert G.Batson - Yu Dang)所述(第97页有一点错误.x1系数为3不是1)。

之后,我尝试将问题提交给有和没有系数减少的放大器。但我得到了两个不同的结果:

[without coefficients reduction]
CPLEX 12.6.1.0: optimal integer solution; objective 11.57142857
display x;
x1  2
x2  2
x3  2
x4  2
x5  1.57
x6  2

[with coefficients reduction]
CPLEX 12.6.1.0: optimal integer solution; objective 11.33333333
display x;
x1  2
x2  2
x3  2
x4  2
x5  1.33
x6  2

为什么呢?即使x5的结果有点不同,无论如何都可以认为解决方案是正确的吗? 我使用了三种不同的解算器(minos,gurobi,cplex),但它们在问题上输出了相同的结果。

1 个答案:

答案 0 :(得分:2)

如果您指的是 4.4.3 中的技术,那么它就清楚了解这里的问题。

Suppose we are given a constraint of the form
    a1*y1+ a2*y2 + ... + ai*yi < b
    where yi = 0 or 1

不允许使用这种技术,因为你的系数是连续的(在[1,2]中),而不是这里需要的二进制!