Optimisation lin´
eaire: Applications
MTH8415S. Le Digabel, Polytechnique Montr´eal
H2020
Plan
1. Optimisation lin´eaire avec le solveur de Excel
2. Autres solveurs
3. Application : Approximations lin´eaires
4. Application : Jeux matriciels R´ef´erences
1. Optimisation lin´eaire avec le solveur de Excel
2. Autres solveurs
3. Application : Approximations lin´eaires 4. Application : Jeux matriciels
Introduction
I Outil int´egr´e dans Excel pour l’optimisation lin´eaire, non lin´eaire, et en nombres entiers
I Optimisation lin´eaire avec le simplexe
I Avantages :
I Simplicit´e d’utilisation. Bas´e sur Excel
I Efficace pour des probl`emes de taille raisonnable
I Outils pour l’analyse de sensibilit´e
I Inconv´enients :
I Pas adapt´e aux probl`emes de grande taille
I Difficilement int´egrable au sein d’autres applications
Principes de base
I Communication : Le fichier doit ˆetre clair (noms, couleurs,
commentaires, etc.)
I Fiabilit´e : Les sorties doivent ˆetre correctes et consistantes
I Compr´ehension : On devrait pouvoir comprendre le mod`ele
et v´erifier les r´esultats
I Flexibilit´e : Un mod`ele devrait ˆetre facilement modifiable le jour o`u les donn´ees changent
Trucs (1/2)
I Organiser le format des donn´ees puis construire le mod`ele `a partir des donn´ees
I Ne jamais mettre de constante dans une formule mais
l’adresse de la cellule contenant cette constante
I Les valeurs dont le sens est reli´e devraient ˆetre situ´ees proches les unes des autres
I Les formules identiques devraient ˆetre copi´ees/coll´ees I Le total d’une colonne devrait ˆetre au bas de la colonne I Le total d’une ligne devrait ˆetre `a droite de la ligne
Trucs (2/2)
I On lit habituellement de gauche `a droite et de haut en bas. Un mod`ele devrait respecter cet ordre
I Utiliser les caract´eristiques de Excel pour distinguer variables, param`etres, formules, etc.
I Utiliser des zones de textes et des commentaires pour faciliter la lecture du mod`ele
Variables d’optimisation
I Une cellule par variableI Les placer sur une mˆeme ligne dans des colonnes contigu¨es I Ajouter une particularit´e (couleurbleue) pour identification
rapide
I Placer le nom des variables dans les cellules juste au-dessus et `
a gauche (lecture facile des sorties)
Fonction objectif
I Placer les coefficients de mani`ere similaire aux variables
I Calculer avec la fonction Excel SOMMEPROD (SUMPRODUCT)
I Placer le nom juste au-dessus ou nommer la cellule
I Ajouter une particularit´e (couleurjaune) pour identification rapide
Contraintes
I Une contrainte par ligne
I Un seul nombre `a droite dans une cellule distincte I Toutes les variables `a gauche
I Placer les coefficients dans colonnes correspondant aux
variables
I Faire le calcul (avec SOMMEPROD) du membre de gauche et
placer le r´esultat dans une cellule I Placer le nom de la contrainte `a gauche
Ex´
ecution du solveur
I Lancer l’interface du solveur depuis le menu Outils ou
Donn´ees
I Cellule cible `a d´efinir : fonction objectif (min/max)
I Cellules variables : variables de d´ecision
I Contraintes : contraintes
I Via les Options du solveur :
I Suppos´e non-n´egatif : contraintes de non n´egativit´e
I Indiquer Mod`ele suppos´e lin´eaire
I Cocher ´Echelle automatique
I Cliquer sur R´esoudre, puis R´eponses (Sensibilit´e) et sur Ok
Exemple 1 : Oak Products
I [Weatherford, 1997]
I La compagnie Oak Products fabrique 6 types de chaises `a
partir de 11 composantes
I Chaque semaine on regarde l’inventaire des composantes et
on ´etablit le plan de production
I Chaque type de chaise induit un profit unitaire
Oak Products : Variables et objectif
I Une variable de d´ecision par type de chaise :x = (C, M, H, L, K, Q), avec :
I C : nombre de chaises Captain produites
I M (Mate)
I H (American High)
I L (American Low)
I K (Spanish King)
I Q (Spanish Queen)
I Profit : Fonction objectif `a maximiser :
Oak Products : Contraintes
I Une condition contrainte d’inventaire `a respecter pour chacune des composantes (contraintes ≤) :
I Nombre de grandes chevilles :
c1(x) = 8C + 12H + 8K + 4Q ≤ 1280 I Nombre de petites chevilles :
c2(x) = 4C + 12M + 12L + 4K + 8Q ≤ 1900 . . .
I Nombre de dossiers type Spanish : c11(x) = K + Q ≤ 85
I Finalement, il y a des imp´eratifs de production `a respecter : il faut produire des nombres positifs de chaises (contraintes ≥) : C ≥ 0, M ≥ 0, H ≥ 0, . . ., Q ≥ 0
Oak Products : Mod`
ele
max C,M,H,L,K,Q36C + 40M + 45H + 38L + 35K + 25Q s.c. 8C + 12H + 8K + 4Q ≤ 1280 4C + 12M + 12L + 4K + 8Q ≤ 1900 4C + 4M + 4H + 4L + 4K + 4Q ≤ 1090 C + K + Q ≤ 190 M + H + L ≤ 170 . . . K + Q ≤ 85 C, M, H, L, K, Q ≥ 0Oak Products : R´
esolution
Exemple 2 : Blue Ridge Hot Tubs (BRHT)
I [Ragsdale, 2010] I Mod`ele : Max. profit 350X1 + 300X2 Pompes X1 + X2 ≤ 200 Main d’œuvre 9X1 + 6X2 ≤ 1566 Tuyaux 12X1 + 16X2 ≤ 2880 non-n´egativit´e X1, X2 ≥ 0BRHT : Sensibilit´
e aux coefficients de l’objectif
I Les valeurs appel´ees “Augmentation admissible” et “R´eduction admissible” pour les cellules variables indiquent la taille maximale des variations du coefficient de l’objectif qui laissent la solution optimale inchang´ee (mˆeme point extrˆeme) en supposant que tous les autres coefficients restent inchang´es
I Un z´ero pour “Augmentation admissible” ou “R´eduction admissible” indique qu’il existe plus d’une solution optimale
I L’intervalle admissible de changement d´ecrit dans le rapport de sensibilit´e n’est valable que si tous les autres coefficients restent fixes (i.e. seulement un est chang´e)
I Si le changement sort de l’intervalle admissible, il faut r´esoudre le probl`eme `a nouveau pour en connaˆıtre l’impact sur la solution optimale (i.e. les nouvelles valeurs optimales des variables et de l’objectif)
BRHT : Interpr´
etation des coˆ
uts r´
eduits des
variables
I Pour une variable qui n’est pas `a sa borne sup´erieure ou inf´erieure, le coˆut r´eduit est de z´ero
I Pour une variable qui est `a sa borne sup. ou inf., le coˆut r´eduit indique l’impact sur la valeur optimale de l’objectif d’une augmentation d’une unit´e de cette variable
I Une variable dont la valeur optimale est `a son minimum a un
coˆut r´eduit reli´e au changement minimum du coefficient de l’objectif qui rend une augmentation de cette variable profitable
BRHT : Sensibilit´
e aux membres de droite des
contraintes
BRHT : Sensibilit´
e aux mdd des contraintes
I Changer le membre de droite d’une contrainte :
I Peut changer la valeur optimale de l’objectif
I Peut changer la solution optimale (un nouveau point extrˆeme)
I Le rapport de sensibilit´e associe un coˆut ombre(shadow price) `
a chacune des contraintes. Celui-ci indique de combien
l’objectif augmentera par unit´e d’augmentation du membre de
droite, en supposant que tous les autres param`etres restent constants
I Le coˆut ombre n’est valable que si le mdd reste dans
l’intervalle admissible, d´efini par les valeurs de “Augmentation admissible” et de “R´eduction admissible”
BRHT : Sensibilit´
e aux mdd des contraintes
I Si la variation du mdd est dans cet intervalle, la nouvellevaleur optimale de l’objectif se calcule comme suit :
Variation de l’obj. = variation du mdd × coˆut ombre
I Le coˆut ombre des contraintes inactives est toujours z´ero : Changer la valeur du mdd d’une contrainte inactive n’affecte pas la solution optimale
I Ces r`egles ne s’appliquent que si seulement un param`etre (mdd) est modifi´e
I Le coˆut ombre indique seulement la variation de la valeur optimale de l’objectif. Si la contrainte est active, changer son mdd affecte l’ensemble des solution admissibles et m`ene `a une nouvelle solution optimale. Pour trouver la nouvelle solution optimale, nous devons r´esoudre `a nouveau le probl`eme
BRHT : Autre usage des coˆ
uts ombre
I Supposons qu’un nouveau bain (le Typhoon-Lagoon) peut
ˆ
etre produit par BRHT. Son profit unitaire serait de 320$ et
requiert : 1 pompe (coˆut ombre = 200$), 8 heures de main
d’œuvre (coˆut ombre = 16.67$), 13 pieds de tuyaux (coˆut ombre = 0$)
I Est-il profitable de produire ce bain ?
I 320 − 200 × 1 − 16.67 × 8 − 0 × 13 = −13.33$ : Non
I Un produit dont le profit marginal est au dessous du coˆut marginal de sa production (mesur´e avec les coˆuts ombre des ressources) ne peut ˆetre produit dans une solution optimale (`a moins d’ajouter une contrainte de production minimale)
BRHT : Solution d´
eg´
en´
er´
ee
I La solution d’un POL est appel´ee d´eg´en´er´ee si une des variables de base est `a sa borne sup´erieure ou `a sa borne inf´erieure
I On d´etecte une solution d´eg´en´er´ee si l’augmentation ou la diminution admissible pour le mdd d’une contrainte est `a z´ero I Dans ce cas, le rapport de sensibilit´e est difficilement
Exemple 3 : Eastern Steel
I ES ach`ete du minerai provenant de 4 mines et m´elange ces
minerais pour obtenir de l’acier. La qualit´e de l’acier se mesure en fonction de la teneur du m´elange, selon 3 types d’´el´ement A, B et C. Par tonne d’acier, il faut au moins 5 kilos de A, 100 de B, 30 de C. A, B et C sont en quantit´es diff´erentes dans le minerai des 4 mines exploit´ees et `a des prix diff´erents :
Mine 1 Mine 2 Mine 3 Mine 4
A (kg/tonne) 10 3 8 2
B (kg/tonne) 90 150 75 175
C (kg/tonne) 45 25 20 37
$/tonne 800 400 600 500
ES : Mod`
ele
I Variables : M 1, M 2, M 3, M 4 : Quantit´e de minerai des mines 1 `a 4 dans une tonne d’acier
I Mod`ele : min 800M 1 + 400M 2 + 600M 3 + 500M 4 s.c. 10M 1 + 3M 2 + 8M 3 + 2M 4 ≥ 5 (1) 90M 1 + 150M 2 + 75M 3 + 175M 4 ≥ 100 (2) 45M 1 + 25M 2 + 20M 3 + 37M 4 ≥ 30 (3) M 1 + M 2 + M 3 + M 4 = 1 (4) M 1, M 2, M 3, M 4 ≥ 0
ES : Questions
I De combien au maximum la mine 2 peut-elle augmenter son
prix sans voir ses ventes aupr`es de ES baisser ?
R´eponse : 66.85$
I De combien la mine 4 doit-elle baisser son prix pour r´eussir `a vendre son minerai `a ES ?
R´eponse : 91.11$
I Sans ren´egocier le prix des minerais aupr`es des mines,
comment ES peut-elle baisser son coˆut de minerai `a 500$ par tonne ?
Possibilit´e 1 : Relaxer la contrainte (1) de 5 `a 4.75 (511.11 − 0.25 × 44.44 = 500)
Possibilit´e 2 : Relaxer la contrainte (3) de 30 `a 27.5 (511.11 − 2.5 × 4.444 = 500)
1. Optimisation lin´eaire avec le solveur de Excel
2. Autres solveurs
3. Application : Approximations lin´eaires 4. Application : Jeux matriciels
Optimisation lin´
eaire avec Matlab
I Pour r´esoudre min
x∈Rnf (x) = c >x s.c. Ax ≤ b Dx = e ` ≤ x ≤ u
I Ex´ecuter la commande :
[x f flag output lambda] = linprog(c, A, b, D, e, l, u)
I lambda.ineqlin et lambda.eqlin permettent d’acc´eder aux
CPLEX
I IBM CPLEX : Logiciel commercial
I Utilisation gratuite pour le monde acad´emique
I Deux fa¸cons de l’utiliser : Via la ligne de commande ou en
Autres solveurs
I Gurobi, Mosek
I AMPL / GAMS : Avec langage de mod´elisation
I GLPK, CLP (gratuits)
I Et beaucoup d’autres. Voir page Wikipedia de l’optimisation
1. Optimisation lin´eaire avec le solveur de Excel 2. Autres solveurs
3. Application : Approximations lin´eaires
4. Application : Jeux matriciels R´ef´erences
Introduction
I On cherche `a r´esoudre le syst`eme d’´equations lin´eaires Ax = b, c’est-`a-dire trouver x = (xj) ∈ Rn tel que
n
X
j=1
aijxj = bi pour i ∈ {1, 2, . . . , m}
avec A = (aij) ∈ Rm×n, b = (bi) ∈ Rm et m > n (plus
d’´equations que d’inconnues)
I On suppose que A est de plein rang colonne (r(A) = n)
I La plupart du temps, ce syst`eme ne poss`ede pas de solution
I On cherche donc une approximation, c’est-`a-dire un point
x∗∈ Rnqui minimise une erreur entre Pn
j=1aijx ∗
j et bi pour
Exemple
On veut trouver une approximation pour
x1 +x2 +x3 = 60 3x1 +2x2 +x3 = 100 x1 +x2 = 31 x2 +x3 = 49 ou encore Ax = b avec A = 1 1 1 3 2 1 1 1 0 0 1 1 et b = (60, 100, 31, 49)
R´
esidus
I On d´efinit le vecteur der´esidusassoci´e `a une solution x ∈ Rn par r = (r1, r2, . . . , rm) avec ri= bi− n X j=1 aijxj pour tout i = 1, 2, . . . , m
I La meilleure approximation lin´eaire est celle qui minimise la
Normes des r´
esidus
Norme p : krkp = kb − Axkp = (|r1|p+ |r2|p+ . . . + |rm|p)1/p Ce qui donne : I Pour p = 1 (norme `1) : krk1= |r1| + |r2| + . . . + |rm|I Pour p = 2 (norme euclidienne) :
krk2= q
r2
1 + r22+ . . . + rm2
I Pour p = ∞ (norme `inf) :
Comparaison de diff´
erentes solutions
x1 x2 x3 r1 r2 r3 r4 krk1 krk2 krk∞ 10 20 30 0 0 1 −1 2 1.4142 1 9 22 29 0 0 0 −2 2 2 2 11 18 31 0 0 2 0 2 2 2 11 20 29 0 −2 0 0 2 2 2 x∗` 1 10 21 28 1 0 0 0 1 1 1 x∗`2 10.1429 20.5714 28.7143 0.5714 −0.2857 0.2857 −0.2857 1.4286 0.7559 0.5714 x∗`∞ 10.2 20.4 29 0.4 −0.4 0.4 −0.4 1.6 0.8 0.4Solution pour p = 2
I Revient `a r´esoudre le probl`eme d’optimisation non lin´eaire sans contrainte min x∈Rn m X i=1 n X j=1 aijxj− bi 2
I Il s’agit de la r´egression au sens des moindres carr´es, pour laquelle on a une solution analytique donn´ee par
x∗ = (A>A)−1A>b
(preuve dans cours d’alg`ebre)
I Si r(A) = n, (A>A)−1 et x∗ existent
Solution pour p = 1 : Mod`
ele lin´
eaire
Avec A>= [a1 a2 . . . am] (i.e. ai : i`eme ligne de A), on veut
r´esoudre min x∈Rnkb − Axk1 = minx∈Rn m X i=1 bi− a > i x = min x∈Rn,τ ∈Rm m P i=1 τi s.c. τi≥ bi− a>i x , i = 1, 2, . . . , m = min x∈Rn,τ ∈Rm m P i=1 τi s.c. τi≥ bi− a>i x i = 1, 2, . . . , m τi≥ −bi+ a>i x i = 1, 2, . . . , m = min x∈Rn,τ ∈Rm1 >τ s.c. Ax + τ ≥ b −Ax + τ ≥ −b (avec 1 = (1, 1, . . . , 1))
Solution pour p = 1 : Dual
I Primal (n + m variables, 2m contraintes) :
min x∈Rn,τ ∈Rm1 >τ s.c. Ax + τ ≥ b (u) −Ax + τ ≥ −b (v)
I Dual (2m variables, m + n contraintes) :
max u,v∈Rmb >u − b>v s.c. A>u − A>v = 0 (x) u + v = 1 (τ ) u, v ≥ 0
Solution pour p = 1 : Dual simplifi´
e
I A partir du dual :` max u,v∈Rmb >u − b>v s.c. A>u − A>v = 0 u + v = 1 u, v ≥ 0I On pose v = 1 − u et le probl`eme devient
−b>1 + 2 max u∈Rmb >u s.c. A>u = 12A>1 0 ≤ u ≤ 1 (m variables, n contraintes)
Solution pour p = 1 : Pour l’exemple
I Il faut r´esoudremax
u1,...,u4
60u1+ 100u2+ 31u3+ 49u4
s.c. u1+ 3u2+ u3 = 5/2 u1+ 2u2+ u3+ u4 = 5/2 u1+ u2+ u4 = 3/2 0 ≤ u1, u2, u3, u4 ≤ 1
I La solution est u∗= (1, 1/4, 3/4, 1/4) qui permet de retrouver x∗ = x∗`1 = (10, 21, 28)
de valeur
Solution pour p = ∞ : Mod`
ele lin´
eaire
On veut r´esoudremin
x∈Rnkb − Axk∞= minx∈Rni=1,2,...,mmax
bi− a > i x = min x∈Rn,τ ∈ R τ s.c. τ ≥bi− a>i x , i = 1, 2, . . . , m = min x∈Rn,τ ∈Rτ s.c. τ ≥ bi− a>i x i = 1, 2, . . . , m τ ≥ −bi+ a>i x i = 1, 2, . . . , m = min x∈Rn,τ ∈Rτ s.c. Ax + τ 1 ≥ b −Ax + τ 1 ≥ −b
Solution pour p = ∞ : Dual
I Primal (n + 1 variables, 2m contraintes) :
min
x∈Rn,τ ∈Rτ s.c.
Ax + τ 1 ≥ b (u)
−Ax + τ 1 ≥ −b (v)
I Dual (2m variables, n + 1 contraintes) :
max u,v∈Rmb >u − b>v s.c. A>u − A>v = 0 (x) 1>u + 1>v = 1 (τ ) u, v ≥ 0
Solution pour p = ∞ : Pour l’exemple
I Il faut r´esoudremax
u1,...,v4
60(u1− v1) + 100(u2− v2) + 31(u3− v3) + 49(u4− v4)
s.c. u1− v1+ 3(u2− v2) + u3− v3 = 0 u1− v1+ 2(u2− v2) + u3− v3+ u4− v4 = 0 u1− v1+ u2− v2+ u4− v4 = 0 u1+ u2+ u3+ u4+ v1+ v2+ v3+ v4 = 1 u1, . . . , u4, v1, . . . , v4≥ 0
I La solution est (u∗, v∗) = (0.4, 0, 0.2, 0, 0, 0.2, 0, 0.2) qui permet de retrouver
x∗ = x∗`∞ = (10.2, 20.4, 29) de valeur
1. Optimisation lin´eaire avec le solveur de Excel 2. Autres solveurs
3. Application : Approximations lin´eaires
4. Application : Jeux matriciels
Introduction : Exemple
I Jeu du “roche, papier, ciseaux” pour deux joueurs
I Chaque joueur poss`ede trois strat´egies pures : {P, R, S}
I Matrice de profit A :
P R S
P 0 1 −1
R −1 0 1
Strat´
egies
I Strat´egie du joueur 1 : Tirer p au hasard dans [0; 1] et :
Si p ∈ [0; 1/2] → jouer P
Si p ∈]1/2; 5/6] → jouer R
Si p ∈]5/6; 1] → jouer S
I Cette strat´egie mixteest repr´esent´ee par levecteur stochastiquex = (1/2, 1/3, 1/6)
I Tout vecteur x ∈ R3 tel que x ≥ 0 et 1>x = 1 d´efinit une strat´egie mixte
I Similairement, le joueur 2 joue une strat´egie mixte y ∈ R3 avec y ≥ 0 et 1>y = 1
Profit moyen
I Le profit moyen du joueur 1 est donn´e par : X
i,j∈{P,R,S}
Ai,j×P (joueur 1 joue i)×P (joueur 2 joue j) = x>Ay
I Pour l’exemple : x>Ay = 1 2 1 3 1 6 > A y1 y2 y3 = − 1 6y1+ 1 3y2− 1 6y3 I Si le joueur 2 joue y = (1/3, 1/3, 1/3), alors le profit moyen
du joueur 1 est 0. Si y = (1/2, 1/4, 1/4), le profit devient −1/24 : Sur le long terme, le joueur 1 aura pay´e 1/24$ au joueur 2 par partie
Strat´
egie du joueur 2 en r´
eponse au joueur 1
I Si le joueur 2 connaˆıt la strat´egie du joueur 1, il devrait choisiry avec le mod`ele d’OL suivant : min y∈R3x >Ay = −1 6y1+ 1 3y2− 1 6y3 s.c. y1+ y2+ y3 = 1 y1, y2, y3 ≥ 0
dont la solution est de la forme y = (k, 0, 1 − k) avec k ∈ [0; 1] pour un profit moyen de −1/6
(`a montrer en exercice)
Strat´
egies d’´
equilibre
I (x, y) sont desstrat´egies d’´equilibre si x est la meilleure r´eponse `a y et si y est la meilleure r´eponse `a x
I C’est `a dire : x ∈ arg max x∈X x>Ay avec X =x ≥ 0 : 1>x = 1 et y ∈ arg min y∈Y x>Ay avec Y =y ≥ 0 : 1>y = 1
Chercher les strat´
egies d’´
equilibre
I Le joueur 1 doit anticiper la strat´egie du joueur 2 et r´esoudre max
x∈X x
>Ay o`u y r´esout min y∈Yx
>Ay
I Le joueur 1 doit donc r´esoudre max x∈X min y∈Yx >Ay
I Et le joueur 2 doit r´esoudre min y∈Y max x∈X x >Ay
Duaux des deux probl`
emes `
a r´
esoudre
(1) max x∈X min y∈Yx >Ay = max x∈Rn,z∈Rz s.c. 1>z − x>A ≤ 0 1>x = 1 x ≥ 0 (2) min y∈Y max x∈X x >Ay = min y∈Rn,w∈Rw s.c. 1w − Ay ≥ 0 1>y = 1 y ≥ 0 De plus (2) est le dual de (1)Th´
eor`
eme du minimax
Th´eor`eme max x∈X min y∈Yx >Ay = min y∈Y max x∈X x >Ay CorollaireIl existe toujours des strat´egies d’´equilibre
En effet, si (x, z) r´esout (1) et si (y, w) r´esout (2), alors (x, y) sont des strat´egies d’´equilibre
Strat´
egie d’´
equilibre pour roche, papier, ciseaux
I Le joueur 1 doit r´esoudremax z,x1,x2,x3 z s.c. z + x2− x3 ≤ 0 z − x1+ x3 ≤ 0 z + x1− x2 ≤ 0 x1+ x2+ x3 = 1 x1, x2, x3≥ 0
dont la solution est x = (1/3, 1/3, 1/3), qui correspond `a y = (1/3, 1/3, 1/3), le tout pour un profit moyen de 0 I Le jeu matriciel est dit juste
1. Optimisation lin´eaire avec le solveur de Excel 2. Autres solveurs
3. Application : Approximations lin´eaires 4. Application : Jeux matriciels
R´
ef´
erences I
Ragsdale, C. (2010).
Spreadsheet Modeling & Decision Analysis.
South-Western, Cengage Learning, 6th edition.
Weatherford, L. (1997).
Introductory Management Science : Decision Modeling with Spreadsheets.