IFT1575 Modèles de recherche opérationnelle (RO)
2. Programmation linéaire
b. Méthode du simplexe
Programmation linéaire – Méthode du Simplexe 2
IFT1575 Professeur B. Jaumard
Méthode du simplexe: préliminaires
Méthode algébrique basée sur la résolution de systèmes d’équations linéaires
Revoir la méthode d’élimination de Gauss-Jordan
On s’intéresse uniquement aux systèmes d’équations linéaires avec un nombre de variables supérieur au nombre d’équations
Dans ce cas, il y a deux possibilités :
il n’y a pas de solution
il y a une infinité de solutions
On suppose que toutes les variables sont ≥ 0
Programmation linéaire – Méthode du Simplexe 3
IFT1575 Professeur B. Jaumard
Méthode du simplexe: préliminaires
Dans le cas où il y a une infinité de solutions, la méthode d’élimination de Gauss-Jordan permet d’identifier trois types de variables :
variables fixées
variables dépendantes
variables indépendantes
Exemple :
x1+ x2 + x3 + x4= 4 x1 + 2 x4= 1 x1 + x3 + x4= 3 ⇔ x2 = 1 x1+ x2 + 2x4= 2 x3 - x4 = 2
x2 : fixée; x4 : indépendante; x1 , x3: dépendantes
Programmation linéaire – Méthode du Simplexe 4
IFT1575 Professeur B. Jaumard
Solution de base
Solution obtenue en fixant toutes les variables indépendantes à 0
Variables hors-base: variables indépendantes fixées à 0
Variables de base: les autres variables
Solution de base réalisable: lorsque toutes les variables de base ont une valeur ≥ 0
Solution de base réalisable dégénérée: lorsqu’au moins une variable de base a la valeur 0
Dans l’exemple, la solution de base est : x1= 1, x2= 1, x3= 2
Elle est réalisable et non dégénérée
Programmation linéaire – Méthode du Simplexe 5 IFT1575
Professeur B. Jaumard
Pivot
Il est facile de changer le statut des variables par des opérations élémentaires :
Dans cette nouvelle solution de base, on a :
Variable hors-base : x3
Variables de base : x1, x2, x4
Solution de base non réalisable: x1= 5, x2= 1, x4= -2
Pivot: opération consistant à remplacer une variable de base par une variable hors base pour obtenir une nouvelle solution de base, dite adjacente
−
= +
−
=
= +
⇔
=
−
=
= +
2 1 5 2
2 1 1 2
4 3 2
3 1
4 3 2
4 1
x x x
x x
x x x
x x
Programmation linéaire – Méthode du Simplexe 6
IFT1575 Professeur B. Jaumard
Retour à l’exemple Wyndor Glass
Les contraintes fonctionnelles sont :
On ajoute des variables d’écart≥ 0 pour transformer ces inégalités en système d’équations :
Variables hors-base :
18 2
3
12 2
4
5 2
1
4 2
3 1
= + +
= +
= +
x x
x
x x
x x
18 2
3
12 2
4
2 1
2 1
≤ +
≤
≤ x x
x x
2 1
, x x
Programmation linéaire – Méthode du Simplexe 7
IFT1575 Professeur B. Jaumard
Exemple Wyndor Glass (suite)
Solution de base : (x1, x2, x3, x4, x5) = (0, 0, 4, 12, 18)
On veut effectuer un pivot : remplacer la variable hors-basex2 par une des variables de base actuelles
Laquelle?...
On veut que la nouvelle solution de base soit réalisable
Dans cette solution de base, on aura toujours x1= 0et une des variables d’écart deviendra une variable hors-base, donc prendra la valeur 0
0 2 18
0 2 12
0 4
0 2 3 18
0 2 12
0 4
2 2 2
1 5
2 4
1 3
≥
− ≥
−
≥
⇔
≥
−
−
=
≥
−
=
≥
−
=
x x x
x x
x x
x x
Programmation linéaire – Méthode du Simplexe 8
IFT1575 Professeur B. Jaumard
Exemple Wyndor Glass (suite)
En exploitant les inégalités
x4= 12 – 2 x2 ≥ 0 x5= 18 – 2 x2 ≥ 0on obtient : x2 ≤ 12/2 = 6 x2 ≤ 18/2 = 9
Donc, en posant x
2= 6 , on obtient x
4= 0 , alors que si on augmente davantage x
2, la solution devient non réalisable
On effectue un pivot: remplacer la variable de
base x
4(qui deviendra hors-base) par x
2Programmation linéaire – Méthode du Simplexe 9 IFT1575
Professeur B. Jaumard
Exemple Wyndor Glass (suite)
On obtient alors le système suivant :
Solution de base :
On effectue un pivot pour que la variable x1entre dans la base (devienne variable de base)
Puisque :
) 6 , 0 , 4 , 6 , 0 ( ) , , , ,
( x
1x
2x
3x
4x
5= 6 3
6 5
. 0
4
5 4 1
4 2
3 1
= +
−
= +
= +
x x x
x x
x x
0
4
=
x
2 4 0
3 6
0 4
1 1 1
5
1 3
≤
⇔ ≤
≥
−
= − ≥
=
x x x
x
x x
Programmation linéaire – Méthode du Simplexe 10
IFT1575 Professeur B. Jaumard
Exemple Wyndor Glass (suite)
En posant , on obtient
Pivot : remplacer la variable de base par
Le système obtenu est alors :
Solution de base :
0
5
= x 2
1
= x
x
5x
13 2 1 3 1 2 6 1
3 2 1 3 1
5 4 1
4 2
5 4 3
= +
−
= +
=
− +
x x x
x x
x x x
) 0 , 0 , 2 , 6 , 2 ( ) , , , ,
( x
1x
2x
3x
4x
5=
Programmation linéaire – Méthode du Simplexe 11
IFT1575 Professeur B. Jaumard
Interprétation géométrique
Programmation linéaire – Méthode du Simplexe 12
IFT1575 Professeur B. Jaumard
Interprétation géométrique
Une solution de base réalisable correspond à un point extrême du domaine réalisable
Un pivot correspond à un déplacement d’un point extrême à un autre qui lui est adjacent
La méthode du simplexe :
Démarre avec une solution de base réalisable initiale (un point extrême)
Effectue à chaque itération un pivot, passant ainsi à une solution de base réalisable adjacente (un point extrême adjacent)
S’arrête lorsqu’elle identifie une solution de base réalisable optimale (un point extrême correspondant à une solution optimale)
Programmation linéaire – Méthode du Simplexe 13 IFT1575
Professeur B. Jaumard
Interprétation des variables d’écart
Dans la solution optimale du problème Wyndor Glass, on a x3= 2, x4= x5 = 0
Cela indique que les deux dernières ressources (temps aux usines 2 et 3) sont pleinement utilisées
Une partie de la première ressource (temps à l’usine 1) n’est pas utilisée: 2 heures
Voir l’exemple dans le OR Tutor
Programmation linéaire – Méthode du Simplexe 14
IFT1575 Professeur B. Jaumard
Critère d’optimalité
Exprimons l’objectif en fonction des variables hors- base dans la solution optimale
Rappelons que dans cette solution, on a :
3 2 1 3
1 2 6 1
5 4
1
4 2
= +
−
= +
x x
x
x x
Programmation linéaire – Méthode du Simplexe 15
IFT1575 Professeur B. Jaumard
Critère d’optimalité (suite)
Après substitution dans l’objectif, on obtient : z = 3 x1+ 5 x2= 3 (2 + (1/3) x4– (1/3) x5)+ 5 (6 – (1/2)x4)
= 36 - (3/2) x4– x5
Toute solution réalisable (x1, x2, x3, x4, x5) satisfait z = 36 + 0 x1+ 0 x2+ 0 x3 - (3/2) x4 - x5≤ 36
La valeur optimale est donc 36
Programmation linéaire – Méthode du Simplexe 16
IFT1575 Professeur B. Jaumard
Critère d’optimalité (suite)
Le critère d’optimalité s’énonce ainsi comme suit :
Étant donné que l’objectif s’exprime uniquement en fonction des variables hors-base de la solution de base réalisable courante
Si les coefficients de ces variables dans l’objectif sont tous négatifs ou nuls, alors la solution de base réalisable courante est optimale
Les coefficients des variables hors-base dans l’objectif sont appelés coûts réduits(ou coûts relatifs)
Programmation linéaire – Méthode du Simplexe 17 IFT1575
Professeur B. Jaumard
Variable d’entrée
Si au moins un coût réduit est positif pour la solution de base réalisable courante :
On n’a 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 coût réduit est le plus grand parmi toutes les variables hors-base
Cette variable fournit la plus grande augmentation marginale (par unité) de la valeur de l’objectif
Attention : ce n’est peut-être pas la plus grande augmentation globale
Programmation linéaire – Méthode du Simplexe 18
IFT1575 Professeur B. Jaumard
Variable de sortie
Lorsqu’on effectue un pivot, il faut choisir la variable qui va sortir de la base en tentant de garder toutes les variables non négatives
Supposons que xj est la variable d’entrée
Alors, chaque variable de base xis’exprime ainsi en fonction de la variable d’entrée (puisque les autres variables hors-base sont nulles) :
Dans cette expression, les coefficients sont obtenus suite à plusieurs pivots
On a nécessairement (pourquoi?)
j ij i
i
b a x
x = −
ij
i
a
b
,≥ 0 b
iProgrammation linéaire – Méthode du Simplexe 19
IFT1575 Professeur B. Jaumard
Variable de sortie (suite)
Pour que toutes les variables demeurent non négatives suite au pivot, on doit avoir :
Si , l’inégalité ne limite pas l’augmentation de
Si cette condition est satisfaite pour tousles i, on peut donc augmenter indéfiniment : l’objectif est non borné
Si , l’inégalité limite l’augmentation de
Variable de sortie : celle qui atteint
i j ij j
ij i
i
b a x a x b
x = − ≥ 0 ⇔ ≤
≤ 0 a
ijx
jx
j> 0
a
ijx
j
| > 0 min
ijij
i
a
a b
Programmation linéaire – Méthode du Simplexe 20
IFT1575 Professeur B. Jaumard
Méthode du simplexe: résumé
1. Obtenir une solution de base réalisable initiale 2. Vérifier le critère d’optimalité: si les coûts réduits de
toutes les variables hors-base sont négatifs ou nuls, arrêter
3. Choisir la variable d’entrée xj, celle qui a le coût réduit le plus élevé
4. Déterminer la variable de sortie:
5. Effectuer un pivot et déterminer une nouvelle solution de base réalisable; retourner à l’étape 2 Voir l’exemple dans le OR Tutor
| >0 min ij
ij
i a
a b
Programmation linéaire – Méthode du Simplexe 21 IFT1575
Professeur B. Jaumard
Forme augmentée
Tout modèle de PL peut se ramener à la forme suivante :
Hypothèse: bi ≥ 0, i=1,2,…,m
But: obtenir une solution de base initiale m i x
n j x
m i b x x a
x c
i n j
i i n j ij
j j
n
j
n
j
,..., 2 , 1 0
,..., 2 , 1
0
,..., 2 , 1 max
1
1
=
≥
=
≥
=
= +
+
∑
+∑
=
=
Programmation linéaire – Méthode du Simplexe 22
IFT1575 Professeur B. Jaumard
Transformation du min au max
Supposons qu’on doit minimiser l’objectif au lieu de le maximiser
On utilise alors la propriété suivante:
On résout le problème de maximisation en changeant les signes des coefficients dans l’objectif
La valeur optimale du problème de minimisation est l’opposé de celle du problème de maximisation
∑
∑
=
=
−
−
=
n
j n
j
j j j
jx cx
c
1 1
max min
Programmation linéaire – Méthode du Simplexe 23
IFT1575 Professeur B. Jaumard
Transformation du ≤ en =
(égalité) )
(inégalité ation transform la de celui dire - à - est c'
suivant, cas au ramène se on et 1 - par inégalité l' multiplie on , 0
obtient on et 0 écart d' variable une ajoute on , 0
: cas deux a y il , Si
1 1
=
→
≥
<
•
= +
≥
≥
•
≤
∑
∑
= +
+
=
i n
j
i n
i n i
n
j
b
b x x a
x b
b x a
i j ij i j ij
Programmation linéaire – Méthode du Simplexe 24
IFT1575 Professeur B. Jaumard
Transformation du ≥ en =
les artificiel variables de on introducti l' de celui dire - à - est c'
suivant, cas au ramène se on
obtient on et 0 surplus de variable une soustrait on , 0
(égalité) )
(inégalité ation transform la de celui dire - à - est c'
précédent cas au ramener se pour 1 - par inégalité l' multiplie on , 0
: cas deux a y il , Si
1 1
∑
∑
= +
+
=
=
−
≥
>
•
=
→
≤
≤
•
≥
n
j i n
i n i
i n
j
i j ij i j ij
b x x a
x b
b b x a
Programmation linéaire – Méthode du Simplexe 25 IFT1575
Professeur B. Jaumard
Ajout de variables artificielles
Si ∑j=1,..,naijxj= biet qu’aucune variable n’est isolée (une variable est isolée si elle est à coefficient 1 dans cette équation et à coefficient 0 dans les autres):
On ajoute une variable artificielle xn+i ≥ 0
On lui associe un profit très négatif: -M
max ∑j=1,..,ncjxj- M xn+i sous les contraintes:
…
∑j=1,..,naijxj= bi
…
Si le problème est réalisable, on doit avoir xn+i= 0
Programmation linéaire – Méthode du Simplexe 26
IFT1575 Professeur B. Jaumard
Que faire si vous avez de la difficulté pour trouver une solution réalisable ?
Méthode à deux phases
Phase 1: trouver une solution réalisable en minimisant la somme des variables artificielles
Phase 2: optimiser en revenant à la fonction de coût initial à partir de la solution intiale trouvée dans la phase 1
Méthode du grand M
Optimiser en utilisant une fonction objective formée de la fonction de coût initiale et de la somme, très fortement pénalisée, des variables artificielles
Programmation linéaire – Méthode du Simplexe 27
IFT1575 Professeur B. Jaumard
Illustration: comment trouver une solution réalisable ?
min z = 0.4 x
1+ 0.5 x
2sous les contraintes:
0.3 x1+ 0.1 x2≤2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2≥ 6 x1 ≥ 0, x2≥ 0
Programmation linéaire – Méthode du Simplexe 28
IFT1575 Professeur B. Jaumard
Transformations
Système initial
0.3 x1+ 0.1 x2≤2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2≥ 6
Système d’égalités
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
Programmation linéaire – Méthode du Simplexe 29 IFT1575
Professeur B. Jaumard
Introduction de variables artificielles
Système d’égalités
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
Ajout de variables artificielles
0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 + xa2 = 6 0.6 x1+ 0.4 x2 - xs2 + xa3 = 6 xs1≥ 0, xs2≥ 0, xa2 ≥ 0, xa3≥ 0
Programmation linéaire – Méthode du Simplexe 30
IFT1575 Professeur B. Jaumard
Démarrer l’algorithme du simplex
Ajout de variables artificielles 0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 + xa2 = 6 0.6 x1+ 0.4 x2 - xs2 + xa3 = 6 xs1≥ 0, xs2≥ 0, xa2 ≥ 0, xa3≥ 0
Algorithme à deux phases
Phase 1: min xa2 + xa3 jusqu’à obtenir une valeur optimale nulle (si le PL a une solution réalisable)
Phase 2: min 0.4 x1+ 0.5 x2
Méthode du grand M
min0.4 x1+ 0.5 x2 + M xa2+ M xa3
Programmation linéaire – Méthode du Simplexe 31
IFT1575 Professeur B. Jaumard
Variables à valeurs quelconques
Si une variable x
jpeut prendre des valeurs négatives, on introduit deux variablesx
j+≥ 0 et x
j-≥ 0
On pose alors x
j= x
j+- x
j-
Autre possibilité : si x
j≥ L
j( L
jest une constante négative) On pose alors x
j+= x
j- L
j≥ 0
Programmation linéaire – Méthode du Simplexe 32
IFT1575 Professeur B. Jaumard
Pour expérimenter
Pour des petits modèles (moins de 6 variables et 6 contraintes fonctionnelles) : essayer le IOR Tutorial
Pour des modèles plus gros, modéliser et résoudre avec Excel Solver
Revoir le cas Wyndor Glass
Pour des modèles encore plus gros, essayer Lindo/Lingo et CPLEX/MPL (CD)