Vous êtes sur la page 1sur 40

Programmation linéaire

Chapitre 5 : Quelques variantes de la méthode du simplexe

Ilyas Himmich
i.himmich@insea.ac.ma

20 janvier 2022
Motivation

La méthode du simplexe en deux phases


Principe de la méthode
Phase I
Phase II

La méthode Grand-M
Principe de la méthode
Algorithme de grand-M
Limitations et utilités

Exemples

Cas particuliers ou pathologiques


Modèle sans solution admissible
Modèles non bornés

2
Motivation

Si toutes les contraintes sont de la forme :

ai1 x1 + ai2 x2 + · · · + ain xn ≤ bi , i = 1, 2, . . . , m

tel que tous les bi sont non négatifs, la base initiale de l’algorithme de simplexe est
évidente :
→ introduire les variables d’écart ei
→ mettre toutes les variables de décision d’origine xi = 0
→ obtenir une solution de base réalisable initiale ⇒ ei = bi

3
Motivation

Par contre, si les bi ne sont pas tous non négatifs, l’initialisation devient un
problème sérieux. En effet, la solution de base évidente est non réalisable
(e1 < 0) !!!
max −2x1 − x2 max −2x1 − x2
s.c. − 2x1 − 3x2 ≤ −19 s.c. 2x1 + 3x2 − e1 = 19

3x1 + 4x2 ≤ 32 3x1 + 4x2 + e2 = 32
x1 , x2 ≥ 0 x1 , x2 , e1 , e2 ≥ 0

Observation
Ce n’est pas toujours simple de construire le tableau initial de la méthode du
simplexe. Une solution de base réalisable n’est pas toujours simple de la trouver.

4
Motivation

L’approche géométrique qu’on peut utiliser pour trouver la solution optimale est
valable uniquement en dimension 2 ou au maximum en dimension 3. La plupart des
modèles rencontrés en pratique ne satisfont pas à cette condition. Il existe une autre
façon de procéder, de nature algébrique, qui utilise astucieusement l’algorithme du
simplexe et cela en ajoutant des variables appelées artificielles dans les
contraintes non réalisables si on remplace les variables originales par 0 dans le
(PLS).

Idée : variable artificielle

max −2x1 − x2 max −2x1 − x2


s.c. 2x1 + 3x2 − e1 = 19 s.c. 2x1 + 3x2 − e1 + a1 = 19

3x1 + 4x2 + e2 = 32 3x1 + 4x2 + e2 = 32
x1 , x2 , e1 , e2 ≥ 0 x1 , x2 , e1 , e2 , a1 ≥ 0
Nouvelle solution de base réalisable en prenant a1 = 19 et e2 = 32 .

5
Motivation

Dans ce chapitre, nous introduirons le concept de variable artificielle pour remédier à


ce problème :
1. la méthode en deux phases ;
2. La méthode Big-M.

6
La méthode du simplexe en deux phases

Forme initiale du programme linéaire (PL)


Considérons l’exemple suivant :

Max Z = 2000x1 + 1000x2

s.c 10x1 + 5x2 ≤ 200


2x1 + 3x2 = 60
(PL) x1 ≤ 12
x2 ≥ 6
x1 ≥ 0, x2 ≥ 0

7
La méthode du simplexe en deux phases
Forme standard (PLS) : ajout des variables d’écart

Max Z = 2000x1 + 1000x2

s.c 10x1 + 5x2 + e1 = 200


2x1 + 3x2 = 60
(PLS) x1 + e3 = 12
x2 − e4 = 6
xi ≥ 0, ej ≥ 0

Proposition

(PL) ⇔ (PLS)

Solution de base réalisable ?


8
La méthode du simplexe en deux phases

Forme standard avec variables artificielles (PLSA)

Max Z = 2000x1 + 1000x2

s.c 10x1 + 5x2 + e1 = 200


2x1 + 3x2 + a2 = 60
(PLSA) x1 + e3 = 12
x2 − e4 + a4 = 6
xi ≥ 0, ej ≥ 0, a2 , a4 ≥ 0

Proposition

(PLS ⇔ PLSA) ⇐⇒ a2 = a4 = 0

9
La méthode du simplexe en deux phases
Objectif
Pour obtenir un modèle équivalent à (PLS), il faudrait empêcher les variables
artificielles de prendre des valeurs positives.
Un moyen pour ce faire est d’ajouter au modèle précédent la double contrainte
suivante :
a2 = a4 = 0

Ceci nous ramène à la situation de départ !

Astuce
Au lieu d’inclure la double contrainte dans le modèle, on utilise une fonction-objectif
provisoire qui minimise la somme des variables d’écart.
On considère alors un problème (PLFI ), appelé problème de phase I, obtenu du
modèle précédent en substituant la fonction objectif initiale z = 2000x1 + 1000x2 par
l’objectif suivant :
Min za = a2 + a4 ou Max za = −a2 − a4

10
La méthode du simplexe en deux phases
Problème (PLFI )

Min za = a2 + a4

s.c 10x1 + 5x2 + e1 = 200


2x1 + 3x2 + a2 = 60
(PLFI ) x1 + e3 = 12
x2 − e4 + a4 = 6
xi ≥ 0, ej ≥ 0, a2 , a4 ≥ 0

Solution de base réalisable


On a 4 contraintes et 7 variables, par suite (7 − 4) variables nulles.
Variables de base : e1 , e3 , a2 et a4 .
Variables hors base : x1 , x2 et e4 .
Solution de base réalisable : (x1 , x2 ) = (0, 0), (e1 , e3 , e4 ) = (200, 12, 0) et (a2 , a4 ) = (60, 6). 11
La méthode du simplexe en deux phases

Grandes lignes de la méthode de 2 phases


Si on n’arrive pas à construire directement une base initiale donnant naissance à une
solution de base réalisable pour (PLS), on peut chercher une base réalisable en se
servant des variables artificielles.
Pour ce faire, il faut résoudre le PLFI . Deux cas peuvent se présenter :
- Si za ̸= 0, ou PLFI n’est pas réalisable, alors il n’existe aucune solution réalisable du
PL.
- Si za = 0, alors le domaine réalisable du PL est non vide, en plus on peut trouver
une solution de base réalisable à partir du tableau final de la phase I.

12
Phase I

Ce n’est pas un vrai tableau du simplexe : les coûts des variables de base doivent
être égales à 0.

Remarque
Pour résoudre le problème de phase I, il faut exprimer la fonction objective en
fonction des variables hors base :

za = a2 + a4 = (60 − 2x1 − 3x2 ) + (6 − x2 + e4 ) = 66 − 2x1 − 4x2 + e4

13
Phase I

14
Phase I

15
La méthode du simplexe en deux phases

Rappel

- Si la valeur optimal du (PLFI ) n’est pas égal à zéro (za ̸= 0), alors PLS n’admet pas
de solution réalisable.
- Sinon, si (za = 0), on construit le tableau initial de la phase II à partir du tableau
final de la phase I.

Retour à l’exemple

- Le dernier tableau est final pour la phase I puisque tous les coûts réduits sont ≥ 0.
- Comme la valeur optimal du (PLFI ) est 0, alors ce tableau final fournira une solu-
tion de base réalisable de (PLS) qui est (x1 , x2 ) = (0, 20) et (e1 , e3 , e4 ) = (100, 12, 14).

16
Phase II

Tableau initial de la phase II

+ La phase II reprend l’objectif original qui était de maximiser z = 2000x1 + 1000x2 .


+ Le tableau initial de la phase II s’obtient en modifiant le dernier tableau de la phase
I de la façon suivante :
- On supprime les colonnes associées aux variables artificielles.
- On recalcule les valeurs de la dernière ligne à partir des nouveaux coefficients
de base.

17
Phase II

Figure – Tableau de la phase I après suppression des colonnes a2 et a4 .

Ce n’est pas un vrai tableau de simplexe : le coût d’une variable de base est différent
de 0.

18
Phase II

Calcul de la dernière ligne

0, 677 x1 + x2 + 0, 333 a2 = 20
x2 = 20 − 0, 677 x1

Max z = 2000 x1 + 1000 x2


Max z = 1333.33 x1 + 20000

19
Phase II

Ce tableau n’est pas final puisque il y a au moins une variables à coût réduit positif.

20
Phase II

Fin de Phase II
- Ce tableau est final puisque les coûts réduits sont tous négatifs ou nuls.
- La solution optimale est (x1 , x2 ) = (12, 12).

21
Méthode du grand M

Faiblesse de la méthode en 2 phases

→ La méthode des deux phases ne tient pas compte de la fonction objectif dans sa
première étape.
→ On risque d’obtenir une solution réalisable initiale très éloignée de l’optimum du
problème d’origine.

Alternative
La méthode grand M est une variante de la méthode simplex conçue pour résoudre
des problèmes où le vecteur zéro ne représente pas une solution réalisable.

Le « grand M » fait référence à un grand nombre associé aux variables artificielles,


représenté par la lettre M.

22
Principe de la méthode

Idée de base
Plutôt que de diviser le problème d’optimisation en deux problèmes séparés, la
méthode du grand M consiste à intégrer les variables artificielles dans la fonction
objectif en les pénalisant très fortement (avec des grand-M). Elle cherche alors à
optimiser la fonction objectif résultante formée de la fonction objectif initiale et de la
somme des variables artificielles.

Max Z = 2000x1 + 1000x2 − Ma2 − Ma4


subject to
10x1 + 5x2 +e1 = 200
2x1 + 3x2 +a2 = 60 (1)
x1 +e3 = 12
x2 −e4 +a4 =6
and x1 , x2 , e1 , e3 , e4 , a2 , a4 ≥ 0

23
Principe de la méthode
Algorithme

Étape 1 : Introduire les variables artificielles dans chaque contrainte qui empêche
l’obtention d’une solution de base réalisable.
Étape 2 : Pénaliser les variables artificielles dans la fonction objectif :
- Pour une maximisation : z = ct · x − M a1 − M a2 − · · · − M am .
- Pour une minimisation : z = ct · x + M a1 + M a2 + · · · + M am .
Étape 3 : Ajuster la forme du tableau initial pour mettre les variables artificielles
dans la base (coûts réduits nuls pour les variables de base).
Étape 4 : Résoudre le problème par la méthode du simplexe standard.

À la fin ..
- Si la solution optimale obtenue est tel que ai = 0 ∀i, alors le problème est réali-
sable et la solution optimale obtenue correspond à la solution optimale du PL.
- Sinon, le problème PL est non réalisable.

24
Tableau initial de la méthode

V.B x1 x2 e1 e3 e4 a2 a4 b
e1 10 5 1 0 0 0 0 200
a2 2 3 0 0 0 1 0 60
e3 1 0 0 1 0 0 0 12
a4 0 1 0 0 −1 0 1 6
c̄j 2000 1000 0 0 0 −M −M −Z

Figure – Tableau initial de la méthode

V.B x1 x2 e1 e3 e4 a2 a4 b
e1 10 5 1 0 0 0 0 200
a2 2 3 0 0 0 1 0 60
e3 1 0 0 1 0 0 0 12
a4 0 1 0 0 −1 0 1 6
c̄j 2000 + 2M 1000 + 4M 0 0 −M 0 0 66M

Figure – Tableau initial de la méthode après ajustement


25
Résolution par simplexe usuelle
→ Iteration 1 : Z = −66M

V.B x1 x2 e1 e3 e4 a2 a4 b Ratio
e1 10 5 1 0 0 0 0 200 40
a2 2 3 0 0 0 1 0 60 30
e3 1 0 0 1 0 0 0 12 ∞
a4 0 1 0 0 −1 0 1 6 6
c̄j 2000 + 2M 1000 + 4M 0 0 −M 0 0 66M

→ Iteration 2 : Z = 6000 − 42M

V.B x1 x2 e1 e3 e4 a2 a4 b Ratio
e1 10 0 1 0 5 0 0 170 170/5 = 34
a2 2 0 0 0 3 1 0 42 42/3 = 14
e3 1 0 0 1 0 0 0 12 ∞
x2 0 1 0 0 −1 0 1 6 ∞
c̄j 2000 + 2M 0 0 0 1000 + 3M 0 0 −6000 + 42M

26
Résolution par simplexe usuelle
→ Itération 3 : Z = 20000
V.B x1 x2 e1 e3 e4 a2 a4 b Ratio
e1 20/3 0 1 0 0 0 0 100 300/20 = 15
e4 2/3 0 0 0 1 1/3 0 14 3/2 ∗ 14 = 21
e3 1 0 0 1 0 0 0 12 12
x2 2/3 1 0 0 0 0 1 20 60/2 = 30
c̄j 4000/3 0 0 0 0 −1000/3 − M 0 −20000

→ Résultat : Z∗ = 36000
V.B x1 x2 e1 e3 e4 a2 a4 b
e1 0 0 1 −20/3 0 0 0 20
e4 0 0 0 −2/3 0 1/3 0 6
x1 1 0 0 1 0 0 0 12
x2 0 1 0 −2/3 0 0 1 12
c̄j 0 0 0 −4000/3 0 −1000/3 − M 0 −36000

La solution optimale est : (x1 , x2 ) = (12, 12).


27
Désavantage de La méthode

→ La question difficile est : Quelle doit être la taille de M ?

→ Si le nombre de variables artificielles est trop grand, des difficultés numériques


sérieuses empêche la méthode de converger vers la solution optimale. En effet à
cause du choix imprécis de grand M, plusieurs erreurs de majoration s’accumule.

→ la faisabilité n’est pas connue jusqu’à l’optimalité.

→ La méthode grand M n’est jamais utilisée dans des codes commerciale car elle est
moins efficace que la méthode à deux phases lorsque le problème a beaucoup de
paramètres.

28
Autre utilité du grand-M
Sur le plan conceptuelle la méthode grand M est utile pour formuler certaines
contraintes.
Exemple
Soit la C une quantité de crédit que vous recevrez si vous réussissez à un cours. Votre
succès dépend de trois facteurs :
→ p = 1 si le professeur est bon ; 0 autrement.
→ a = 1 si vous assistez au cours ; 0 autrement.
→ t = 1 si vous travaillez chez vous ; 0 autrement.
Écrire la contrainte indiquant que si le professeur est bon et vous assistez le cours et
que vous travaillez chez vous, alors le nombre de crédit x crédits que vous recevrez
grâce à ce cours devrait être supérieure à C.

Modélisation
Au lieu de travailler avec une contrainte non linéaire x ≥ C p a t. On peut utiliser la
contrainte linéaire :
x ≥ C − M (3 − p − a − t)

29
Exemples

Exemple 1
On cherche à résoudre le problème min z = 2x1 + 3x2

s.c. (1/2)x1 + (1/4)x2 ≤ 4


x1 + 3x2 ≥ 20
(2)
x1 + x2 = 10
x1 , x2 ≥ 0

La forme standard du problème est :

min z = 2x1 + 3x2

s.c. (1/2)x1 + (1/4)x2 + e1 =4


x1 + 3x2 − e2 = 20
x1 + x2 = 10
x1 , x2 , e1 , e2 ≥0

30
Exemples

Après l’Étape 1 et 2 :

min z = 2x1 + 3x2 + M a2 + M a3


s.c.
(1/2)x1 + (1/4)x2 + e1 =4
x1 + 3x2 − e2 + a2 = 20
x1 + x2 + a3 = 10
x1 , x2 , e1 , e2 , a2 , a3 ≥0

31
Exemples

On obtient
V.B x1 x2 e1 e2 a2 a3 b
e1 0 0 1 −1/8 1/8 −5/8 1/4
x2 0 1 0 1/2 1/2 −1/2 5
x1 1 0 0 1/2 −1/2 3/2 5
c̄j 0 0 0 1/2 (2M − 1)/2 (2M − 3)/2 Z − 25

La solution après deux itérations du simplexe est x1 = 5, x2 = 5 =⇒ z = 25

32
Exemples

Exemple 2
On cherche à résoudre le problème : min z = 0.4 x1 + 0.5 x2 s.c.

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

Nous devons tout d’abord transformer le système de contraintes afin de pouvoir


traiter un système linéaire :

0.3 x1 + 0.1 x2 + e1 = 2.7


0.5 x1 + 0.5 x2 = 6
0.6 x1 + 0.4 x2 − e3 = 6
e1 ≥ 0, e3 ≥ 0

33
Exemples

En ajoutant les variables artificielles, nous obtenons :

0.3x1 + 0.1x2 + e1 = 2.7


0.5x1 + 0.5x2 + a2 = 6
0.6x1 + 0.4x2 − e3 + a3 = 6
e1 ≥ 0, e3 ≥ 0, a2 ≥ 0, a3 ≥ 0

Afin de démarrer la méthode du simplexe, nous appliquons une des deux méthodes :
- Méthode à deux phases
Phase 1 : minimiser min a2 + a3 jusqu’à obtenir une valeur optimale nulle (si le
programme linéaire à une solution réalisable).
Phase 2 : minimiser min z = 0.4 x1 + 0.5 x2 .
- Méthode du grand M :
Optimiser le problème avec comme fonction objectif :
min z = 0.4 x1 + 0.5 x2 + M a2 + M a3

34
Modèle sans solution admissible

(PL)

Max Z = 1000x1 + 2000x2

s.c 10x1 + 5x2 ≤ 200


2x1 + 3x2 ≤ 60
(PL1 ) x1 ≥ 34
2x2 ≥ 14
x1 ≥ 0, x2 ≥ 0

35
Modèle sans solution admissible

l’ajout de variable d’écart (PLS)

Max Z = 1000x1 + 2000x2

s.c 10x1 + 5x2 + e1 = 200


2x1 + 3x2 + e2 = 60
(PLS) x1 − e3 = 34
2x2 − e4 = 14
xi ≥ 0, ej ≥ 0

36
Modèle sans solution admissible

L’ajout de variable artificielle (PLFI )


Puisque (x1 , x2 ) = (0, 0) n’est pas réalisable, alors on aura besoin de la phase 1. On
ajoute uniquement des variables artificielles pour la 3ème et 4ème contraintes

Min za = a3 + a4

s.c 10x1 + 5x2 + e1 = 200


2x1 + 3x2 + e2 = 60
(PLF1 ) x1 − e3 + a3 = 34
2x2 − e4 + a4 = 14
xi ≥ 0, ej ≥ 0, a3 , a4 ≥ 0

37
Itération 1 et 2 de phase I

38
Modèle sans solution admissible

C’est le tableau final de la phase 1 puisque tous les coefficients de la ligne des coûts
sont tous positifs (Problème de minimisation). Alors Comme la valeurs optimale (za )
de la phase 1 est non nulle (za = 17.5 ̸= 0) alors il n’existe aucune solution réalisable.
Par suite, le problème (PL1 ) n’admet pas de solution.

39
Modèle non borné

Exemple

Max Z = x1 + 2x2

s.c − 2x1 + 3x2 ≤ 6


6x1 − 9x2 ≤ 18
x1 ≥ 1
x1 ≥ 0, x2 ≥ 0

40

Vous aimerez peut-être aussi