Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de...
-
Upload
hoangthien -
Category
Documents
-
view
226 -
download
1
Transcript of Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de...
1
IFT1575 Modèles de recherche opérationnelle (RO)
2. Programmation linéaireb. Méthode du simplexe
Programmation linéaire – Méthode du Simplexe 2IFT1575Professeur 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 3IFT1575Professeur 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 = 1x1 + x3 + x4 = 3 ⇔ x2 = 1x1 + x2 + 2x4 = 2 x3 - x4 = 2
� x2 : fixée; x4 : indépendante; x1 , x3 : dépendantes
Programmation linéaire – Méthode du Simplexe 4IFT1575Professeur 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
2
Programmation linéaire – Méthode du Simplexe 5IFT1575Professeur 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
52
2
1
12
43
2
31
43
2
41
xx
x
xx
xx
x
xx
Programmation linéaire – Méthode du Simplexe 6IFT1575Professeur 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 :
1823
122
4
521
42
31
=++=+=+
xxx
xx
xx
1823
122
4
21
2
1
≤+≤≤
xx
x
x
21, xx
Programmation linéaire – Méthode du Simplexe 7IFT1575Professeur 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-base x2par 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 = 0 et une des variables d’écart deviendra une variable hors-base, donc prendra la valeur 0
02180212
04
02318
0212
04
2
2
215
24
13
≥−≥−≥
⇔≥−−=≥−=≥−=
xx
xxx
xx
xx
Programmation linéaire – Méthode du Simplexe 8IFT1575Professeur 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 x2 = 6 , on obtient x4 = 0 , alors que si on augmente davantage x2 , la solution devient non réalisable
� On effectue un pivot: remplacer la variable de base x4 (qui deviendra hors-base) par x2
3
Programmation linéaire – Méthode du Simplexe 9IFT1575Professeur B. Jaumard
Exemple Wyndor Glass (suite)
� On obtient alors le système suivant :
� Solution de base : � On effectue un pivot pour que la variable x1 entre dans la base (devienne variable de base)
� Puisque :
)6,0,4,6,0(),,,,( 54321 =xxxxx
63
65.0
4
541
42
31
=+−=+=+
xxx
xx
xx
04 =x
24
03604
1
1
15
13
≤≤⇔
≥−=≥−=
xx
xxxx
Programmation linéaire – Méthode du Simplexe 10IFT1575Professeur 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 :
05 =x21 =x5x 1x
23
1
3
1
62
1
23
1
3
1
541
42
543
=+−
=+
=−+
xxx
xx
xxx
)0,0,2,6,2(),,,,( 54321 =xxxxx
Programmation linéaire – Méthode du Simplexe 11IFT1575Professeur B. Jaumard
Interprétation géométrique
Programmation linéaire – Méthode du Simplexe 12IFT1575Professeur 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)
4
Programmation linéaire – Méthode du Simplexe 13IFT1575Professeur 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 14IFT1575Professeur 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 :
23
1
3
1
62
1
541
42
=+−
=+
xxx
xx
Programmation linéaire – Méthode du Simplexe 15IFT1575Professeur 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) satisfaitz = 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 16IFT1575Professeur 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)
5
Programmation linéaire – Méthode du Simplexe 17IFT1575Professeur 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 18IFT1575Professeur 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 xi s’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?)
jijii xabx −=
iji ab ,
0≥ib
Programmation linéaire – Méthode du Simplexe 19IFT1575Professeur 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 tous les 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
ijijjijii bxaxabx ≤⇔≥−= 00≤ija
jx
jx
0>ija jx
> 0|min ij
ij
i
aa
b
Programmation linéaire – Méthode du Simplexe 20IFT1575Professeur B. Jaumard
Méthode du simplexe: résumé
1. Obtenir une solution de base réalisable initiale2. 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
aa
b
6
Programmation linéaire – Méthode du Simplexe 21IFT1575Professeur 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
mix
njx
mibxxa
xc
in
j
iinjij
jj
n
j
n
j
,...,2,1 0
,...,2,1 0
,...,2,1
max
1
1
=≥
=≥
==+
+
+∑
∑
=
=
Programmation linéaire – Méthode du Simplexe 22IFT1575Professeur 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
jjjj xcxc
11
max min
Programmation linéaire – Méthode du Simplexe 23IFT1575Professeur B. Jaumard
Transformation du ≤ en =
(égalité) )(inégalité ation transformla de celui dire-à-estc'
suivant, casau ramène seon et 1-par inégalitél' multiplieon ,0
obtienton et 0écart d' variableune ajouteon ,0
:casdeux ay il , Si
1
1
=→≥
<•
=+
≥≥•
≤
∑
∑
=
+
+
=
i
n
j
in
ini
n
j
b
bxxa
xb
bxa
ijij
ijij
Programmation linéaire – Méthode du Simplexe 24IFT1575Professeur B. Jaumard
Transformation du ≥ en =
lesartificiel variablesdeon introductil' de celui dire-à-estc'
suivant, casau ramène seon
obtienton et 0 surplus de variableunesoustrait on ,0
(égalité) )(inégalité ation transformla de celui dire-à-estc'
précédent casau ramener sepour 1-par inégalitél' multiplieon ,0
:casdeux ay il , Si
1
1
∑
∑
=
+
+
=
=−
≥>•
=→≤
≤•
≥
n
j
in
ini
i
n
j
ijij
ijij
bxxa
xb
b
bxa
7
Programmation linéaire – Méthode du Simplexe 25IFT1575Professeur B. Jaumard
Ajout de variables artificielles
Si ∑j=1,..,n aij xj = bi et 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,..,n cj xj - M xn+isous les contraintes:…∑j=1,..,n aij xj = bi…
Si le problème est réalisable, on doit avoir xn+i = 0
Programmation linéaire – Méthode du Simplexe 26IFT1575Professeur 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éedans 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 27IFT1575Professeur B. Jaumard
Illustration: comment trouverune solution réalisable ?
min z = 0.4 x1 + 0.5 x2sous les contraintes:0.3 x1 + 0.1 x2 ≤ 2.70.5 x1 + 0.5 x2 = 60.6 x1 + 0.4 x2 ≥ 6x1 ≥ 0, x2 ≥ 0
Programmation linéaire – Méthode du Simplexe 28IFT1575Professeur B. Jaumard
Transformations
� Système initial0.3 x1 + 0.1 x2 ≤ 2.70.5 x1 + 0.5 x2 = 60.6 x1 + 0.4 x2 ≥ 6
� Système d’égalités0.3 x1 + 0.1 x2 + xs1 = 2.70.5 x1 + 0.5 x2 = 60.6 x1 + 0.4 x2 - xs2 = 6xs1 ≥ 0, xs2 ≥ 0
8
Programmation linéaire – Méthode du Simplexe 29IFT1575Professeur B. Jaumard
Introduction de variables artificielles
� Système d’égalités0.3 x1 + 0.1 x2 + xs1 = 2.70.5 x1 + 0.5 x2 = 60.6 x1 + 0.4 x2 - xs2 = 6xs1 ≥ 0, xs2 ≥ 0
� Ajout de variables artificielles0.3 x1 + 0.1 x2 + xs1 = 2.70.5 x1 + 0.5 x2 + xa2 = 60.6 x1 + 0.4 x2 - xs2 + xa3 = 6xs1 ≥ 0, xs2 ≥ 0, xa2 ≥ 0, xa3 ≥ 0
Programmation linéaire – Méthode du Simplexe 30IFT1575Professeur B. Jaumard
Démarrer l’algorithme du simplex
� Ajout de variables artificielles0.3 x1 + 0.1 x2 + xs1 = 2.70.5 x1 + 0.5 x2 + xa2 = 60.6 x1 + 0.4 x2 - xs2 + xa3 = 6xs1 ≥ 0, xs2 ≥ 0, xa2 ≥ 0, xa3 ≥ 0
� Algorithme à deux phases� Phase 1: min xa2 + xa3 jusqu’à obtenir une valeur optimale nulle (sile PL a une solution réalisable)
� Phase 2: min 0.4 x1 + 0.5 x2
� Méthode du grand M� min 0.4 x1 + 0.5 x2 + M xa2 + M xa3
Programmation linéaire – Méthode du Simplexe 31IFT1575Professeur B. Jaumard
Variables à valeurs quelconques
� Si une variable xj peut prendre des valeurs négatives, on introduit deux variables xj+ ≥ 0 et xj- ≥ 0 On pose alors xj = xj+ - xj-
� Autre possibilité : si xj ≥ Lj(Lj est une constante négative)On pose alors xj+ = xj - Lj≥ 0
Programmation linéaire – Méthode du Simplexe 32IFT1575Professeur 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)