2

Je suis un peu confus au sujet d'un résultat que j'ai obtenu après une réduction de coefficients sur une contrainte d'un problème de programmation linéaire.La réduction des coefficients dans la programmation linéaire conduit à des résultats incohérents

Le problème est:

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 

Après la réduction des coefficients les contraintes seront:

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

comme indiqué dans le livre de programmation Integer appliquée (Der-San Chen - Robert G.Batson - Yu Dang) à la page 96 (il y a une petite erreur à la page 97. Le coefficient x1 est 3 et non 1). Après cela, j'ai essayé de soumettre le problème à l'amplification avec et sans réduction des coefficients. Mais j'ai obtenu deux résultats différents:

[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 

pourquoi? La solution peut-elle être considérée comme correcte même si le résultat pour x5 est un peu différent? J'ai utilisé trois solveurs différents (minos, gurobi, cplex) mais ils produisent les mêmes résultats sur le problème.

Répondre

2

Si vous faites référence à la technique dans 4.4.3, alors il est clair quel est le problème ici.

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

Vous pas autorisé à utiliser cette technique, que vos coefficients sont continues (en [1,2]) et non binaire au besoin ici!