Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de...

8
1 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 : x 1 + x 2 + x 3 + x 4 = 4 x 1 + 2 x 4 = 1 x 1 + x 3 + x 4 = 3 x 2 = 1 x 1 + x 2 + 2x 4 = 2 x 3 -x 4 = 2 x 2 : fixée; x 4 : indépendante; x 1 , x 3 : 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 : x 1 = 1, x 2 = 1, x 3 = 2 Elle est réalisable et non dégénérée

Transcript of Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de...

Page 1: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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

Page 2: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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

Page 3: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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)

Page 4: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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)

Page 5: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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

Page 6: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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

Page 7: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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

Page 8: Méthode du simplexe: préliminaires 2. Programmation …ngrenon/UdeM/cours/IFT1575/Notes de cours/IFT1575_PL... · IFT1575 Modèles de recherche opérationnelle (RO) 2. Programmation

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)