Professional Documents
Culture Documents
2. Programmation linaire
b. Mthode du simplexe c. Dualit d. Analyse de sensibilit
2. Programmation linaire
Critre doptimalit
Exprimons lobjectif en fonction des variables horsbase dans la solution optimale Rappelons que dans cette solution, on a :
x x
1
1 + x 2 1 x 3
= 1 + x 3
5
6 2
2. Programmation linaire
2. Programmation linaire
Les coefficients des variables hors-base dans lobjectif sont appels cots rduits (ou cots relatifs)
2. Programmation linaire
Variable dentre
Si au moins un cot rduit est positif pour la solution de base ralisable courante :
On na pas encore atteint une solution optimale Il faut donc effectuer au moins un pivot Quelle variable doit-on faire entrer dans la base?
On propose de choisir celle dont le cot rduit est le plus grand parmi toutes les variables hors-base Cette variable fournit la plus grande augmentation marginale (par unit) de la valeur de lobjectif Attention : ce nest peut-tre pas la plus grande augmentation globale!
2. Programmation linaire 6
Variable de sortie
Lorsquon effectue un pivot, il faut choisir la variable qui va sortir de la base en tentant de garder toutes les variables non ngatives Supposons que xj est la variable dentre Chaque variable de base xi sexprime alors en fonction de la variable dentre (puisque les autres variables hors-base sont nulles) :
x =b a x
i i ij
Dans cette expression, les coefficients b i , a ij sont obtenus suite plusieurs pivots On a ncessairement b i 0 (pourquoi?)
2. Programmation linaire 7
Si cette condition est satisfaite pour tous les i , on peut donc augmenter indfiniment xj : lobjectif est non born Si a ij > 0, lingalit limite laugmentation de xj
i
b min | a > 0 a
ij ij
ij
5. Effectuer un pivot et dterminer une nouvelle solution de base ralisable; retourner ltape 2 Voir lexemple dans le OR Tutor
2. Programmation linaire 9
Forme augmente
Tout modle de PL peut se ramener la forme suivante:
max
cx
j
j =1
ax
ij
+ xn
+ i
= bi
i = 1, 2 ,..., m
j =1
xj 0 xn + i 0
j = 1, 2 ,..., n i = 1, 2 ,..., m
min
cx
j
= max
cx
j
j =1
j =1
On rsout le problme de maximisation en changeant les signes des coefficients dans lobjectif La valeur optimale du problme de minimisation est loppos de celle du problme de maximisation
2. Programmation linaire
11
Transformation du en =
Si
i
a x b , il y a deux cas :
ij j i j =1
a x + x
ij j j =1
i
n + i
=b
2. Programmation linaire
12
Transformation du en =
Si a ijxj
j =1
i
, il y a deux cas :
ax x =b
ij j 0i j =1
2. Programmation linaire
13
2. Programmation linaire
16
Transformations
Systme initial
0.3 x1 + 0.1 x2 2.7 0.5 x1 + 0.5 x2 = 6 0.6 x1 + 0.4 x2 6
Systme dquations
0.3 x1 + 0.1 x2 + xs1 = 2.7 0.5 x1 + 0.5 x2 =6 0.6 x1 + 0.4 x2 - xs2 = 6 xs1 0, xs2 0
2. Programmation linaire
17
2. Programmation linaire
18
Mthode du grand M
min 0.4 x1 + 0.5 x2 + M xa2 + M xa3
2. Programmation linaire 19
2. Programmation linaire
20
Pour exprimenter
Pour des petits modles (moins de 6 variables et 6 contraintes fonctionnelles) : essayer le IOR Tutorial Pour des modles plus gros, modliser et rsoudre avec Excel Solver Revoir le cas Wyndor Glass Pour des modles encore plus gros, essayer Lindo/Lingo et CPLEX/MPL (CD)
2. Programmation linaire
21
2. Programmation linaire
22
Modle dual
Variables de dcision : yi = prix ($/h) pour louer du temps lusine i Dual Glass cherche minimiser le prix total quelle devra payer pour le temps lou aux trois usines Le prix total pour chaque usine peut tre exprim comme le temps de production maximum (h) * prix pour louer du temps ($/h) Objectif : min W = 4 y1 + 12 y2 + 18 y3
2. Programmation linaire
23
Glass
Le prix total associ un produit peut tre exprim comme le temps consacr la production de chaque lot (h/lot) * le prix pour louer du temps ($/h) Contrainte associe au produit 1 : y1 + 3 y3 3 Contrainte associe au produit 2 : 2y2 + 2 y3 5
2. Programmation linaire
24
Rappel : modle pour Wyndor Glass, dit modle primal Max Z = 3 x + 5 x x 4 2 x 12 3 x + 2 x 18 x,x 0
1 2 1 2 1 2 1 2
2. Programmation linaire
25
Couple primal-dual
On remarque les relations suivantes entre les deux modles
Primal Variable Contrainte Max Profit unitaire Terme de droite Ligne Colonne Contrainte
2. Programmation linaire
Dual Contrainte Variable Min Terme de droite Cot unitaire Colonne Ligne Contrainte
26
Cots rduits
Rappelons que pour la solution de base optimale du problme Wyndor Glass, lobjectif scrit :
Z= 36 (3/2) x4 x5 x4 et x5 sont les variables hors base et les coefficients -3/2 et -1 sont leurs cots rduits Si on augmente la valeur de x4 de 1 unit, le profit
diminue de 3/2 Mais x4 est la variable dcart associe la contrainte de ressource pour lusine 2 : augmenter x4 de 1 veut dire diminuer le terme de droite correspondant de 1
2. Programmation linaire
27
Multiplicateurs optimaux
Si Wyndor Glass loue Dual Glass une heure de temps de production lusine 2 :
La capacit lusine 2 diminue de 1 h (diminution de 1 unit du terme de droite) La valeur de lobjectif diminue de 3/2 Pour retrouver un profit total gal, il faudra donc demander un prix de 3/2 (1500$) pour chaque heure de temps loue lusine 2
De manire gnrale, la solution optimale du dual est donne par: cots rduits des variables dcart (aussi appels multiplicateurs optimaux) Dans notre exemple : y1 = 0, y2 = 3/2, y3 = 1
2. Programmation linaire 28
carts complmentaires
Le prix de la variable y1 est fix 0
Wyndor Glass nexige rien pour une heure loue lusine 1
Bien sr, puisquil lui reste du temps de production non utilis (la variable dcart x3 est > 0) Un prix > 0 ferait augmenter le profit, et la solution ne serait plus quitable
Analyse de sensibilit
En gnral, le cot rduit dune variable hors-base indique le changement dans lobjectif apport par une augmentation de 1 unit de la valeur de cette variable Pour les variables dcart, ce principe peut se formuler ainsi : le cot rduit dune variable dcart hors-base indique le changement dans lobjectif apport par une diminution de 1 unit du terme de droite associ Ceci est un exemple danalyse de sensibilit : un paramtre (ici, un terme de droite) est modifi et on mesure la sensibilit de la solution optimale ce changement
2. Programmation linaire 30