Search code examples
linear-programmingreductionamplcoefficientsoperations-research

Coefficients Reduction in Linear Programming lead to incoherent results


I'm a little bit confused about a result that I got after a coefficients reduction on a constraint of a linear programming problem.

The problem is:

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

After the coefficients reduction the contraints will be:

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

as stated in the Applied Integer Programming book (Der-San Chen - Robert G.Batson - Yu Dang) at page 96 (there is a little error at page 97. The x1 coefficient is 3 not 1).

After that I've tried to submit the problem to ampl with and without the coefficients reduction. But I got two different results:

[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

why? can the solution be considered correct anyway even if the result for x5 is a little different? I've used three different solver (minos, gurobi, cplex) but they output the same results on the problem.


Solution

  • If you are referring to the technique in 4.4.3, then it's clear what's the problem here.

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

    You are not allowed to use this technique, as your coefficients are continuous ( in [1,2]) and not binary as needed here!