Vous êtes sur la page 1sur 22

Méthode du simplexe

4 Cas simple

1. Introduction
Dans le chapitre précédent, on a présenté une méthode graphique pour résoudre des
programmes linéaires à deux variables. Cependant, la plupart des problèmes réels présentent
un nombre important de variables. Il faut donc une méthode d’optimisation qui peut
s’appliquer efficacement à un programme linéaire peu importe le nombre de variables dans
ce programme. Ainsi, l’objet de ce chapitre est d’introduire une procédure algébrique appelée
méthode du simplexe ou algorithme du simplexe.
On se limitera, dans ce chapitre, aux programmes linéaires sous forme canonique que l’on
suppose de type maximisation. La méthode du simplexe sera illustrée et expliquée, à l’aide
d’un exemple, pour deux variables mais peut être généralisée facilement pour un nombre
quelconque de variables.

2. Principe de l’algorithme
Selon le chapitre précédent, on sait que si l’optimum de la fonction objectif est fini, au moins
une des solutions optimales est un sommet de la région réalisable. Pour atteindre cet optimum,
seuls les sommets doivent donc être examinés. Toutefois, il n’est pas pratique d’énumérer tous
les sommets de la région réalisable. En fait, un programme de 100 variables et 10 contraintes,
aurait déjà plus de 1 730 milliards de sommets !
En 1947, Dantzig présenta la méthode du simplexe qui s’est rapidement imposée en raison de
la simplicité de son principe. En fait, cette méthode évite de parcourir tous les sommets. Plus
précisément, le passage d’un sommet à un autre se fait en améliorant la valeur de la fonction
objectif. De plus elle fournit un test qui permet d’affirmer le cas échéant que le programme
linéaire n’admet pas de solution.
La recherche systématique d’une solution optimale d’un programme linéaire à l’aide de la
méthode du simplexe peut se résumer comme suit :

1◦ Déterminer un premier sommet de la région réalisable. Ce sommet "initial" sert de départ


pour l’algorithme du simplexe.
2◦ Passer de sommet en sommet voisin de la région réalisable, de façon à améliorer à chaque
fois la valeur de la fonction objectif. Noter que l’amélioration peut parfois être nulle et que
deux sommets sont voisins s’ils sont reliés par une arête de la région réalisable.
3◦ Vérifier si l’on arrêter la procédure ou si l’on doit passer vers un nouveau sommet.
L’algorithme du simplexe permet, avec divers tests, de détecter si le programme admet un
seul sommet optimal ou s’il existe des solutions optimales multiples ou encore si l’optimum
du programme est infini.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 2

3. Calcul algébrique des sommets


La question qui se pose est la suivante : comment identifier un sommet sans faire de graphique.
Pour cela, il faut pouvoir calculer les sommets de manière algébrique pour des problèmes ayant
plus que deux ou trois variables.

3.1. Mise sous forme standard


Le caractère algébrique de la méthode du simplexe exige que les contraintes technologiques
du programme linéaire soient exprimées sous forme d’équations au lieu d’inéquations ; cette
transformation s’effectue facilement en introduisant des variables d’écart.
Reprenons l’exemple de l’entreprise UVW (déjà modélisé et résolu graphiquement dans les
chapitres précédents) :


 Max z = 300x1 + 500x2


 x1 6 4


(PC1 ) 2x2 6 12
3x1 + 2x2 6 18






x1 > 0, x2 > 0

Transformer les contraintes d’inéquations, excepté celles de non négativité, à l’aide des
variables d’écart :

x1 6 4 −→ x1 + x3 = 4
2x2 6 12 −→ 2x2 + x4 = 12
3x1 + 2x2 6 18 −→ 3x1 + 2x2 + x5 = 18

où les variables d’écart x3 , x4 et x5 peuvent être interprétées comme suit :

x3 = nombre d’heures d’atelier 1 non utilisées par semaine


x4 = nombre d’heures d’atelier 2 non utilisées par semaine
x5 = nombre d’heures d’atelier 3 non utilisées par semaine

Les variables d’écart n’ayant aucun effet sur la fonction objectif, le programme s’écrit donc
sous forme standard comme suit :


 Max z = 300x1 + 500x2


 x1

 + x3 = 4
(PS1 ) 2x2 + x4 = 12
3x1 + 2x2 + x5 = 18






x1 > 0, x2 > 0, x3 > 0, x4 > 0, x5 > 0.

Remarquer qu’il y a équivalence totale entre la forme canonique et la forme standard. En


effet, d’une part, toute solution réalisable du problème (PC1 ) peut être augmentée en une
solution réalisable pour le problème (PS1 ). Toute solution réalisable du problème (PS1 ) peut
être tronquée en une solution réalisable pour le problème (PC1 ).

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 3

En notation vectorielle, la forme standard du problème (PS1 ) s’écrit :



 Max z = cx

Ax = b

x>0

où :  
x1
x  
1 0 1 0 0
 
4

 2
x =  x3  , c = (300, 500, 0, 0, 0), A =  0 2 0 1 0 , b =  12 
 
 x4  3 2 0 0 1 18
 

x5
Dans cette formulation, le vecteur x contient toutes les variables, y compris les variables
d’écart ; il s’agit d’un vecteur colonne de type (5, 1). Le vecteur c est un vecteur ligne de type
(1, 5) ; il contient des 0 pour traduire l’impact nul des variables d’écart sur la fonction objectif.
Quant à la matrice A de type (3, 5), il s’agit de la matrice des coefficients des contraintes
transformées. Enfin, le vecteur b de type (3, 1) est le vecteur du second membre.

3.2. Caractérisation algébrique des sommets


La plupart des programmes linéaires rencontrés dans la pratique mettent en jeu un grand
nombre de variables. Il faut alors traduire la notion géométrique de sommets en langage
algébrique. Nous allons introduire le concept de solutions de base réalisables, qui constituent
la version algébrique des sommets
Reprenons les formes canonique (PC1 ) et standard (PS1 ) de l’exemple de l’entreprise UVW.
Noter qu’au point (x1 , x2 ) de (PC1 ) correspond la solution augmentée (x1 , x2 , x3 , x4 , x5 ) de (PS1 )
où x3 , x4 et x5 mesurent les écarts aux droites (D1), (D2), et (D3) respectivement. Tandis que
x1 et x2 mesurent les écarts aux droites (Ox2 ) et (Ox1 ) respectivement.
x2
(D1)
B

C D (D2)
A

E
D
(D3)
Figure 3.1
O G F x1

Lorsqu’un point (x1 , x2 ) est un sommet de la région réalisable D du problème (PC1 ), alors il est
réalisable, et il est situé à l’intersection de 2 des 5 droites qui délimitent D. Ainsi, la solution
(x1 , x2 , x3 , x4 , x5 ) satisfait aux deux conditions suivantes :

– les 5 coordonnées de la solution sont non négatives ;


– au moins 2 coordonnées sont nulles.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 4

Revenons au problème (PS1 ) mais ignorons pour l’instant les contraintes de non négativité. Le
systeme suivant de 3 contraintes technologiques met en jeu 5 variables :

x1 + x3 = 4
2x2 + x4 = 12
3x1 + 2x2 + x5 = 18
La région réalisable est délimitée par 5 droites. Pour déterminer les points d’intersection de
ces droites deux à deux, on donne à 2 des 5 variables la valeur 0. Il en résulte un système
ayant 3 variables et trois équations. Ce système ou bien admet une seule solution ou bien n’en
admet aucune. Or, il existe 10 façons de choisir 2 variables parmi les 5 du programme (PS1 ).
Le tableau suivant les énumère, donnant la solution du système résultant (lorsqu’il en existe
une), ainsi que point correspondant de la figure précédente.

Cas no Variables nulles Solution Point Remarque


1 x1 , x2 (0; 0; 4; 12; 18) O Réalisable
2 x1 , x3 − − −− −−− −−−
3 x1 , x4 (0; 6; 4; 0; 6) A Réalisable
4 x1 , x5 (0; 9; 4; −6; 0) B Non Réalisable
Tableau 3.1 5 x2 , x3 (4; 0; 0; 12; 6) G Réalisable
6 x2 , x4 − − −− −−− −−−
7 x2 , x5 (6; 0; −2; 12; 0) F Non Réalisable
8 x3 , x4 (4; 6; 0; 0; −6) D Non Réalisable
9 x3 , x5 (4; 3; 0; 6; 0) E Réalisable
10 x4 , x5 (2; 6; 2; 0; 0) C Réalisable
Analysons plus en détail 2 cas de ces 10 cas
— Considérons d’abord le cas no 10 : x4 = x5 = 0. Il en résulte le système suivant :

x1 + x3 = 4 x1 + x3 = 4
2x2 \\\4
+x = 12 =⇒ 2x2 = 12
3x1 + 2x2 \\\5 = 18
+x 3x1 + 2x2 = 18
dont la seule solution
x1 = 2 x2 = 6 x3 = 2
correspond au point C de la figure précédente ; et ce point est bien un sommet de la région
réalisable.
— Considérons maintenant le cas no 8 : x3 = x4 = 0. Il en résulte le système suivant :

x1 \\\3
+x = 4 x1 = 4
2x2 \\\4
+x = 12 =⇒ 2x2 = 12
3x1 + 2x2 + x5 = 18 3x1 + 2x2 + x5 = 18
dont la seule solution
x1 = 4 x2 = 6 x5 = −2
correspond au point D de la figure précédente ; et ce point n’appartient pas à la région
réalisable. Notons que la variable x5 prend une valeur négative.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 5

3.3. Les solutions de base


La terminologie suivante s’applique exclusivement aux problèmes linéaires mis sous forme
standard. Soit le problème : 
 Max z = cx

(PS) Ax = b

x>0

Dans cette formulation, le vecteur x contient toutes les variables, y compris les variables
d’écart ; il s’agit d’un vecteur colonne de type (1, n). Le vecteur c est un vecteur ligne de
type (n, 1). Quant à la matrice A, de type (m, n), il s’agit de la matrice des coefficients des
contraintes transformées. Enfin, le vecteur b de type (m, 1) est le vecteur du second membre.
Pour développer la méthode du simplexe, nous avancerons les hypothèses suivantes :

— le système Ax = b est non redondant, c-à-d qu’aucune des m équations du système n’est
une combinaison linéaire des m − 1 autre. Autrement dit : rangA = m.
— le nombre de contraintes est inférieur au nombre de variables. En fait, le problème (PS) ne
présente de l’intérêt que si m < n puisque dans le cas contraire, le système Ax = b admet
au plus une solution.

Considérons x = (x1 , . . . , xn ) une solution vérifiant le système Ax = b, soit les m contraintes


technologiques de (PS). On dit qu’il s’agit d’une solution de base de (PS) si au moins (n − m)
de ses coordonnées sont égales à 0.
Par exemple, les solutions de base de (PS1 ) correspondent comportent exactement (5 − 3) = 2
coordonnées égales à 0 et correspondent aux points O, A, B, C, . . . , G du Tableau 3.1.
Une solution de base dont toutes les coordonnées sont non négatives est dite solution de base
réalisable. Comme l’illustre le Tableau 3.1, une solution de base réalisable correspond toujours
à un sommet.

Propriété fondamentale de caractérisation des sommets

Tout sommet de la région réalisable D correspond à une et une seule solution de base
réalisable et inversement.

Soit B une sous matrice de A qui est carrée d’ordre m et inversible. On dit que les m vecteurs
colonnes de B forme une base (de l’espace Rm des contraintes) ou, plus simplement, que B est
une base. Soit B une base. Moyennant une éventuelle permutation des colonnes de A, on peut
toujours mettre A sous la forme :

A= B H
où H est la sous-matrice formée par les colonnes de A qui ne sont pas dans la base. De même
on peut partitionner x en (xB xH )t et c en (cB cH )t , on peut écrire

Max z = cB xB + cH xH
BxB + HxH = b (∗)
x>0

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 6

Les m composantes de xB sont appelées variables de base. Les n − m composantes de xH sont


appelées variables hors base. La solution de base associée à la base B, s’écrit donc :

xB = B−1 b
xH = 0

Si B−1 b > 0 alors la solution ci-dessus est une solution de base réalisable. Cette approche
nécessite d’abord l’inversion d’une matrice et la recherche d’une matrice telle que B−1 b > 0.
Ces inconvénients peuvent s’éliminer si on s’arrange pour avoir B = Im et b > 0 où Im désigne
la matrice identité d’ordre m. Dans ce cas, on obtient immédiatement une solution de base
réalisable :    
xB b
x= =
xH 0
On appellera forme simpliciale une expression des contraintes égalités sous la forme :
 
 xB
I H = b avec b > 0
xH
On a alors une solution de base réalisable directe. En effet, si on pose xH = 0, on a
immédiatement xB = b.

4. Illustration de l’algorithme du Simplexe sur un exemple


Nous allons à présent décrire le fonctionnement de l’algorithme du simplexe en l’appliquant
au modèle (PC1 ) de l’entreprise UVW. Rappelons qu’après l’ajout d’une variable d’écart dans
chaque contrainte technologique, (PC1 ) se réécrit sous la forme équivalente (PS1 ).

4.1. Méthode algébrique du simplexe


Avant d’aborder la méthode du simplexe sous forme de tableaux, on va découvrir dans cette
section une version algébrique d’intérêt didactique - la méthode algébrique - qui permettra
d’étudier les différentes étapes à franchir pour arriver à une solution optimale.
On va montrer comment résoudre (PS1 ), et de ce fait (PC1 ), par des arguments purement
algébriques qui suivront les étapes indiquées dans la figure suivante :
Etape 0
Solution de base
réalisable initiale

Etape 1 Etape 2 Etape 3


Solution Non
Choix de la Choix de la
optimale Pivotage
variable entrante variable sortante

Il n’en existe pas


Oui

Fin Figure 3.2 Fin

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 7

Etape 0 : Mise en évidence d’une solution de base réalisable initiale


Pour débuter la méthode du simplexe, il faut une solution de base réalisable initiale. Comment
trouver cette solution de base initiale ? Une solution de base réalisable de (PS1 ) s’obtient en
mettant les variables de décisions hors base : x1 = x2 = 0. Le système d’équations qui en
résulte se résout immédiatement puisqu’il s’écrit :

x3 = 4
x4 = 12
x5 = 18

D’où la solution de base réalisable de départ :

(0 ; 0 ; 4 ; 12 ; 18) (∗)

Graphiquement, cette solution correspond au sommet O de la Figure 3.1 puisque x1 = x2 = 0.


En général, lorsque le système de contraintes est de la forme Ax 6 b où b > 0, on obtient une
forme simpliciale en introduisant des variables d’écart :
 
 x
Ax + xe = b soit A I =b
xe

Une solution de base réalisable initiale évidente est celle où l’ensemble des variables d’écart
joue le rôle de variables de base : x = 0 et xe = b.
On sait, grace à la méthode graphique, que le sommet O n’est pas solution optimale de (PC1 ).
D’ailleurs, la première solution de base obtenue en annulant x1 et x2 donne une valeur nulle à
z ! Cette solution est évidemment totalement inintéressante au niveau de la fonction objectif.
Elle correspond au plan de production : on ne produit rien, on n’utilise aucune ressource et on
ne gagne rien. Toutefois, cette solution est réalisable au sens mathématique.
Rappelons la forme standard du problème de l’entreprise UVW :


 Max z = 300x1 + 500x2


 x1 + x3 = 4


(PS1 ) 2x2 + x4 = 12
3x1 + 2x2 + x5 = 18






x1 > 0, x2 > 0, x3 > 0, x4 > 0, x5 > 0.

Cette permet d’exprimer facilement les variables de base et la fonction économique en fonction
des variables hors base :


 x3 = 4 − x1
 x4 = 12 − 2x2

BO (Dic 1)

 x5 = 18 − 3x1 − 2x2

z = 0 + 300x1 + 500x2

Le tableau ci-dessus est appelé un dictionnaire.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 8

Test d’optimalité
Est-ce qu’on peut faire mieux ? En examinant la fonction objectif (z = 300x1 + 500x2 ), on
constate que si on augmente la valeur de x1 ou celle de x2 , la valeur de la fonction augmentera :
la solution (∗) n’est pas optimale.

La première itération
Nous allons détailler les différentes étapes de la première itération alors que pour les itérations
suivantes nous allons donner l’essentiel.

Etape 1 : Le choix de la variable entrante


On cherche à améliorer la valeur de z. Pour cela, on doit se déplacer du sommet courant
vers un sommet voisin plus « rentable ». Algébriquement, ce déplacement se matérialise par
un changement de base où la nouvelle base ne diffère de l’ancienne base que par une seule
variable.
Pour augmenter z, il faut donc donner à l’une des variables hors base, actuellement nulle au
sommet O, une valeur positive. Comme les coefficients de x1 et x2 dans z sont tous les deux
positifs, on peut choisir l’une ou l’autre pour la faire entrer dans la base : l’opération sera
toujours intéressante. Cela dit, il apparaît plus « rentable » ici d’augmenter x2 que x1 car le
coefficient de x2 est plus grand que le coefficient de x1 . Nous choisirons donc d’augmenter x2
pour la faire entrer dans la (nouvelle) base. On dit que x2 est la variable entrante.

Le critère de sélection de la variable entrante est donc le suivant : on choisit la variable


avec le coefficient positif (de la fonction objectif) le plus élevé.

Noter que pour pouvoir appliquer ce critère simple (le choix de la variable entrante), la fonction
objectif z doit être exprimée en fonction des seules variables hors base.

Etape 2 : Le choix de la variable sortante


C’est décidé : la variable x2 entrera dans la base et x1 restera nulle. Comme la valeur de
z s’améliore lorsque x2 augmente, il est naturel de chercher la plus grande valeur de x2 qui
respecte la positivite de toutes les variables. Géométriquement, la figure suivante montre que
le point M d’ordonnée x2 et d’abscisse 0 n’est réalisable que si x2 6 6.
x2
(D1)

C (D2)
A

E
M D
(D3)
Figure 3.3
O G x1

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 9

Indiquons maintenant comment déterminer cette borne à partir de considérations algébriques.


Puisque x2 varie et x1 doit rester nul, d’après (Dic 1) on a :

x3 = 4 (α)
x4 = 12 − 2x2 (β)
x5 = 18 − 2x2 (γ)

Cependant pour conserver une solution réalisable et ne pas quitter la région réalisable, il faut
aussi que les variables de base du (Dic 1) restent positifs :

x3 = 4 − 0x2 > 0 d’où x2 n’est pas limitée


12
x4 = 12 − 2x2 > 0 d’où x2 6 =6
2
18
x5 = 18 − 2x2 > 0 d’où x2 6 =9
2
La variable x2 ne peut dépasser la plus petite de ces bornes supérieures : la valeur maximale
de x2 est :  
12 18
x2 = min ; = min {6 ; 9} = 6.
2 2
Il faut donc s’arrêter à la valeur x2 = 6. Noter que lorsque x2 atteint la valeur 6, la variable x4
devient nulle et elle sort de la base. On dit que x4 est la variable sortante.

Le critère de sélection de la variable sortante est donc le suivant : on effectue les rapports
des seconds membres des contraintes aux coefficients correspondants de la variable
entrante. La variable sortante correspond au plus petit rapport positif.

Nous sommes donc passés d’une solution de base à une nouvelle solution de base, qui est
donnée par :
(x1 ; x2 ; x3 ; x4 ; x5 ) = (0; 6; 4; 0; 6) (δ)
Les valeurs de x3 et x5 s’obtiennent des équations (α) et (γ) en y remplaçant x2 par sa nouvelle
valeur 14. On reconnaît alors les coordonnées du sommet A : le programme de production
(0,6) qui engendre un bénéfice z = 56000.

Etape 3 : Le pivotage
Avant de tester l’optimalité de la solution (δ), il convient de construire un nouveau dictionnaire
dont les variables de base sont celles de la solution (δ). Dans ce nouveau dictionnaire, la
variable sortante x4 sera hors base, tandis que la variable entrante x2 sera dans la base : on
va échanger les rôles des x2 et x4 .
On commence, à partir de l’équation de l’échange (la deuxième équation du (Dic 1)) :

x4 = 12 − 2x2 ,

pour exprimer x2 en fonction des nouvelles variables hors base, x1 et x4 :


1
x2 = 6 − x 4
2
© Hachimi 2020 • Recherche Opérationnelle
4 Méthode du simplexe : Cas simple 10

On remplace ensuite x2 par cette expression dans les autres équations du dictionnaire :

 x3 = 4 − x1
1


 x = 6 − x4

2
BA 2 (Dic 2)


 x 5 = 6 − 3x 1 + x 4

z = 3 000 + 300x1 − 250x4

La première itération est terminée.

Test d’optimalité
Est-ce qu’on peut faire mieux ? Dans la nouvelle expression de la fonction z, nous voyons que
la variable x1 a un coefficient positif. Donc, la solution (δ) n’est pas optimale.

Le critère d’arrêt sera donc le suivant : la solution de base courante est optimale si tous les
coefficients de la fonction objectif z sont négatifs ou nuls lorsque z est exprimée en fonction
des seuls variables hors base.

La deuxième itération
On pourrait encore améliorer la fonction objectif :
z = 3000 + 300x1 − 250x2
On sélectionne donc pour la variable entrante x1 . En effet, c’est la variable ayant le plus grand
coefficient positif, et d’ailleurs la seule possible.
Pour déterminer la variable sortante, étudions la variation des variables de base en fonction
d’une augmentation de x1 . On a les limites suivantes :
x3 = 4 − x1 > 0 d’où x2 6 4
x2 = 6 − 0x1 > 0 d’où x2 n’est pas limitée

x5 = 6 − 3x1 > 0 d’où x2 6 2


La variable sortante est x5 , c’est elle qui est la première à s’annuler (pour x1 = 2).
Pour calculer le nouveau sommet, on utilise la troisième équation du (Dic 2) pour exprimer x2
en fonction des nouvelles variables hors base, x5 et x4 :
1 1
x 1 = 2 − x5 + x4
3 3
On remplace ensuite x1 par cette expression dans les autres équations du dictionnaire :
 1 1
 x3 = 2 − x5 + x4
3 3



1



 x =
2 6 − x4
BC 2 (Dic 3)
 1 1
x1 = 2 − x5 + x4





 3 3
z = 3 600 − 100x5 − 150x4

On reconnaît en effet le système associe au sommet C. Économiquement, cette solution définit


le plan de production suivant : on fabrique 2 chassis du type 1 et 6 chassis du type 2 en
consommant entièrement les capacités de production des ateliers 2 et 3. Le profit est z = 3600.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 11

Test d’optimalité
Est-ce qu’on peut faire mieux ? Tous les coefficients de la dernière ligne, dans (Dic 3), sont
négatifs :
z = 3600 − 100x5 − 150x4
Faire « entrer » x5 ou x4 diminuera la valeur de z. Il n’est plus possible d’améliorer z. La
solution courant
(2, 6, 2, 0, 0)
est optimale et donne la valeur maximal à la fonction objectif :

z ∗ = 3 600

Chemin suivi par l’algorithme du Simplexe


L’algorithme du simplexe procède par itérations, chacune correspondant au passage d’un
sommet de la région réalisable à un sommet adjacent de cette région. L’exemple (PC1 ) de
l’entreprise UVW a exigé 2 itérations : on a passé successivement de O à A et enfin de A à C où
l’on s’est arrêté, puisque C est l’optimum de (PC1 ). La figure suivante illustre la séquence des
sommets visités par l’algorithme du simplexe.
x2
(D1)

C (D2)
A

E
D
(D3)
Figure 3.4
O G x1

4.2. Méthode des tableaux


Vu l’importance de la méthode algébrique du simplexe et afin de simplifier la présentation
des différentes itérations de l’algorithme du simplexe, il est recommandé de la présenter sous
forme plus compacte en utilisant des tableaux.
Reprenons la formulation du programme (FC) dans laquelle les variables d’écart étaient
incluses 

 Max z = 300x1 + 500x2



 x1 + x3 = 4
(FC) 2x2 + x4 = 12




 3x1 + 2x2 + x5 = 18
x1 , x2 , x2 , x4 , x5 > 0

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 12

On exprime le problème sous forme matricielle, où :


 
1 0 1 0 0 
4

 
A= 0 2 0 1 0  b =  12  c= 300 500 0 0 0
 

3 2 0 0 1 18

Nous allons maintenant voir commet effectuer les procédures de l’algorithme du simplexe en
utilisant les tableaux.

Tableau initial
On construit un tableau initial du simplexe, qui se compose du vecteur b, de la matrice A, et
d’une ligne [0, c] situés sous les précédents où 0 correspond à la valeur de z à l’origine (lorsque
x1 = x2 = 0) :

B b x1 x2 x3 x4 x5
vecteur b x3 4 1 0 1 0 0
x4 12 0 2 0 1 0 matrice A
x5 18 3 2 0 0 1
z 0 300 500 0 0 0
Figure 3.5
valeur de z vecteur c

On a ajouté au-dessus du tableau le nom des variables pour voir à quelle variable correspond
chaque colonne du tableau. Plusieurs caractéristiques d’un tableau simplex sont à remarquer

— Tout d’abord, on peut lire directement sur le tableau les valeurs des variables de base. Si
x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b.
— Dans la dernière ligne, on trouve un coefficient égal à 0 pour chaque variable de base (la
fonction z est exprimée en fonction des seuls variables hors base).
— La matrice carrée correspondant aux variables de base est la matrice identité.
— Enfin, le premier coefficient de la dernière ligne donne l’opposé de la valeur de z

Première itération
Puisque Pour augmenter la valeur de z, on examine une nouvelle solution de base. Pour
l’obtenir, on doit introduire une nouvelle variable dans la base et exclure une des variables
qui y figurait précédemment. On appelle changent de base le processus qui consiste à choisir
la variable entrante et la variable sortante.

Choix de la variable entrante


Dans la dernière ligne, le coefficient dont la valeur est la plus élevée détermine la variable à
entrer dans la base. Donc la variable entrante est x2 . On indique ceci dans le tableau en colorant
la colonne de la variable entrante que l’on appelle la colonne pivot.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 13

variable entrante

B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
x4 12 0 2 0 1 0
x5 18 3 2 0 0 1
z 0 300 500 0 0 0
Figure 3.6
colonne pivot

Choix de la variable sortante


On choisit la variable sortante comme étant la variable de base qui s’annule la première.
Comme nous l’avons vu au chapitre précédent, cela revient à calculer le minimum du rapport
du coefficient du membre de droite de chaque contrainte sur le coefficient correspondant de la
colonne pivot lorsque ce dernier est strictement positif :
 
12 18
min , =6
2 2
Dans le cas où le coefficient dans la colonne entrante est négatif ou nul, la ligne n’entre pas
en compte dans le calcul du minimum. Illustrons ceci sur un exemple. Supposons que le
coefficient de x2 dans la première contrainte soit −1 à la place de 0. L’équation correspondante
se récrit de manière équivalente comme suit :
x1 = 4 + x2
Quelle que soit la valeur de x2 > 0, la variable de base x1 reste positive.
La variable sortante est alors la variable de base dont la valeur se lit dans la ligne où le
minimum se produit : ici, il s’agit de la deuxième ligne et donc de la variable x4 . On encadre
alors la ligne où le minimum se produit. Cette ligne reçoit le nom de ligne pivot :

Figure 3.7 variable entrante

B b x1 x2 x3 x4 x5 b/a2
fait pas partie du
Cette colonne ne

tableau simplexe.
x3 4 1 0 1 0 0
variable x4
sortante 12 0 2 0 1 0 6
x5 18 3 2 0 0 1 9
z 0 300 500 0 0 0

nombre pivot colonne pivot ligne pivot

On appelle nombre pivot ou pivot le coefficient situé à l’intersection de la colonne pivot et de


la ligne pivot. C’est donc le centre de la croix ainsi formée par la ligne et la colonne pivot.

Pivotage
Le pivotage est le processus qui consiste à amener la colonne de la variable sortante en lieu
et place de la variable entrante. Le pivot nous permettra de transformer le tableau actuel
en un deuxième tableau correspondant à la nouvelle base. Ceci peut être fait par trois types
d’opérations :

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 14

1. Transformation de la ligne pivot : pour obtenir la ligne du pivot transformée, il suffit de


diviser tous ses éléments par le pivot.

B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
x4 6 0 1 0 1/2 0
Figure 3.8 x5 18 3 2 0 0 1
z 0 300 500 0 0 0

2. Transformation de la colonne pivot : après avoir ramené par division le pivot à 1, toutes
les éléments situé au-dessus et au-dessous du pivot deviennent zéro.

B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
x2 6 0 1 0 1/2 0
Figure 3.9 x5 18 3 0 0 0 1
z 0 300 0 0 0 0

3. Transformation des autres cases du tableau : pour obtenir la transformée des autres
nombres, il suffit d’appliquer la règle dite du rectangle :

b×c
a0 = a −
2
• a0 est la valeur modifiée du coefficient a qui est considéré
• b est l’élément situé sur la même ligne que a, mais dans la colonne du pivot
• c est l’élément situé dans la même colonne que a, mais sur la ligne du pivot

Dans le tableau à modifier, le pivot et les coefficient a, b et c forment les coins d’un rectangle.
D’où le nom de la méthode.

B b x2 xj
b a

x4 2 c
Figure 3.10
z

D’après la règle du rectangle, il est intéressant de remarquer que certains calculs peuvent être
évités :

— Toute ligne coupant la colonne du pivot selon un 0, elle ne sera pas modifiée. Cette ligne
peut être recopiée intégralement dans le tableau suivant.
— Toute colonne coupant la ligne du pivot selon un 0, elle ne sera pas modifiée. Cette colonne
peut être recopiée intégralement dans le tableau suivant.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 15

En appliquant ces opérations au tableau initial, on obtient le deuxième tableau :

B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
x2 6 0 1 0 1/2 0
Figure 3.11 x5 6 3 0 0 −1 1
z −3000 300 0 0 −250 0

On peut lire directement sur ce tableau la deuxième solution de base réalisable. En posant
x1 = x4 = 0, nous conservons une matrice identité qui donne x2 = 6, x3 = 4 et x5 = 6.
Le premier coefficient de la dernière ligne (ici, −3000) donne l’opposé de la valeur z dans la
deuxième solution de base réalisable :
Deuxième solution de base : x = (0, 6, 4, 0, 6)
Valeur de la fonction z en x : z = 3000

Deuxième itération
Le maximum de la fonction z est atteint lorsqu’il n’y a plus de coefficients positifs dans la
dernière ligne. On poursuit les changements de base et les pivotages, conformément aux règles
exposées ci-dessus, jusqu’à ce qu’on y parvienne.

– Comme il ne reste plus comme coefficient positif (dans la dernière ligne) que 300, on
introduit x1 dans la base. La colonne de x1 devient la colonne pivot.
– La division de la colonne des seconds membres par la colonne pivot révèle que le plus faible
rapport correspond à la ligne x5 . C’est x5 qui quitte la base. Alors le nombre 3 devient le
nouveau pivot

variable entrante

B b x1 x2 x3 x4 x5 b/a1
x3 4 1 0 1 0 0 4
x2 6 0 1 0 1/2 0
variable x5 −1
Figure 3.12 6 3 0 0 1 2
sortante
z −3000 300 0 0 −250 0

Le dernier pas de la deuxième itération consiste à déterminer la nouvelle solution de base au


moyen du pivotage :

1. Transformation de la ligne et la colonne pivot : Divisons la ligne pivot par 3, puis annuler
tous les éléments de la colonne pivot sauf le pivot qui est remplacé par 1.

B b x1 x2 x3 x4 x5
x3 4 0 0 1 0 0
x2 6 0 1 0 1/2 0
Figure 3.13 x1 2 1 0 0 − 1/3 1/3
z −3000 0 0 0 − 250 0

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 16

2. Transformation des autres cases du tableau : Nous utilisons la règle du rectangle pour
transformer le reste des coefficients. Le résultats est le suivant :

B b x1 x2 x3 x4 x5
x3 2 0 0 1 1/3 − 1/3
x2 6 0 1 0 1/2 0
Figure 3.14 x1 2 1 0 0 − 1/3 1/3
z − 3600 0 0 0 − 150 − 100

On peut lire directement sur ce tableau la troisième solution de base réalisable et la valeur de
la fonction objectif z dans cette solution :
Troisième solution de base : x = (2, 6, 2, 0, 0)
Valeur de la fonction z en x : z3 = 3600
Comme il n’y a plus de coefficients positifs sur la dernière ligne, la solution courante est
optimale. Ainsi :
(x1 ; x2 ; x3 ; x4 ; x5 ) = (2, 6, 2, 0, 0) et z = 3600
Le chemin suivi par la méthode des tableaux est illustré par la figure suivante.
x2 2de itération
C
A
1re itération

Figure 3.15
O G x1
le chemin suivi par l’algorithme du simplexe

C’est le même chemin suivi par la méthode algébrique. Ce qui n’est pas étonnant.

5. Application
5.1. Un programme linéaire à 3 variables
Reprenons l’exemple du programme à 3 variables (déjà résolu graphiquement) et illustrons la
méthode des tableaux sur cet exemple.


 max z = 4x1 + 12x2 + 3x3


x1 6 40





 x2 6 20
(PC2 )

 x3 6 60




 3x1 + 6x2 + 2x3 6 270


 x > 0, x > 0, x > 0
1 2 3

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 17

Forme standard
En introduisant des variables d’écart, le proramme s’écrit à la forme standard comme suit :


 max z = 4x1 + 12x2 + 3x3


x1 + x4 = 40





 x2 + x5 = 20
(PC2 )

 x3 + x6 = 60




 3x1 + 6x2 + 2x3 + x7 = 270


 x > 0, x > 0, x > 0, x > 0, x > 0, x > 0, x > 0
1 2 3 4 5 6 7

Il faut tout d’abord une solution de base réalisable initiale. Dans notre cas la matrice des
contraintes est sous une forme simpliciale. Ainsi, une solution évidente s’impose :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (0; 0; 0; 40; 20; 60; 270)

Rappelons que, dans ce chapitre, nous considérons que des problèmes pour lesquels il existait
une solution de base réalisable évidente. Cependant dans de nombreux cas de figure cela n’est
pas toujours aussi facile qu’on le pense. Nous verrons, dans le chapitre suivant, comment
trouver une telle solution pour obtenir le tableau initial du simplexe.

Tableau initial
Construisons le premier tableau du simplexe.

B b x1 x2 x3 x4 x5 x6 x7
x4 40 1 0 0 1 0 0 0
x5 20 0 1 0 0 1 0 0
x6 60 0 0 1 0 0 1 0
x7 270 3 6 2 0 0 0 1
z 0 4 12 3 0 0 0 0

Puisque la dernière ligne contient trois nombres positifs (4, 12 et 3), la solution de base
réalisable associée au tableau ci-dessus n’est pas optimale.

– Le plus grand coefficient positif de z (dans la dernière ligne) est celui qui correspond à la
variable x2 . C’est donc x2 que nous allons faire entrer dans la base.
– Rapportons les éléments de b (second membre) à ceux de a2 (colonne de x2 ). Le plus petit
rapport positif est :  
20 135
min ; = min {20; 22, 5} = 20
1 6
La variable que l’on fait sortir de la base est celle qui correspond à la deuxième ligne du
tableau, soit x5 .

Avant de construire le nouveau tableau du simplexe, nous avons indiqué sur le tableau courant
les variables entrante et sortante par des flèches d’entrée et de sortie. Nous avons également
entouré le pivot, qui est égal à 1 dans le cas présent.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 18

Première itération
Afin de réduire les efforts de calcul, les opérations suivantes sont à faire avant de recourir à la
méthode du rectangle pour remplir les cases restantes :

– Recopier toute ligne coupant la colonne du pivot selon un zéro ;


– Recopier toute colonne coupant la ligne du pivot selon un zéro ;
– Recopier la ligne pivot lorsque ce pivot est égale à 1 ;
– Diviser la ligne du pivot par le pivot lorsque ce pivot est différent de 1 ;
– Mettre tous éléments de la colonne pivot à 0 sauf le pivot qu’on laisse à 1.

La figure suivante montre une copie du premier tableau sur laquelle nous avons coloré les
données à recopier ou à mettre à 0 dans le nouveau tableau.

B b x1 x2 x3 x4 x5 x6 x7
x4 40 1 0 0 1 0 0 0
x5 20 0 1 0 0 1 0 0
x6 60 0 0 1 0 0 1 0
x7 270 3 6 2 0 0 0 1
z 0 4 12 3 0 0 0 0

Poursuivons la construction du nouveau tableau. Il nous reste seulement 4 valeurs à calculer


en appliquant la méthode du rectangle. D’où le deuxième tableau du simplexe :

B b x1 x2 x3 x4 x5 x6 x7
x4 40 1 0 0 1 0 0 0
x2 20 0 1 0 0 1 0 0
x6 60 0 0 1 0 0 1 0
x7 150 3 0 2 0 −6 0 1
z − 240 4 0 3 0 − 12 0 0

La solution de base réalisable associée à ce tableau s’obtient en donnant la valeur 0 aux


variables hors base (Ici, x1 , x3 et x5 ) puis en posant chaque variable de base égale à la valeur
apparaissant dans la colonne b, sur sa ligne. Cette solution est :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (0; 20; 0; 40; 0; 60; 150)

La fonction objectif prend la valeur :


z = 240
Cette solution de base réalisable n’est pas optimale puisque deux nombres (de valeur 4 et 3),
dans la dernière ligne du tableau, sont positifs. Donc, une nouvelle itération est nécessaire.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 19

Deuxième itération
En utilisant la même procédure que dans l’itération précédente, on sélectionne la variable
entrante (ici, x1 ) puis la variable sortante (ici, x4 ). Le pivot, qui est égale à 1, est encerclé dans
le deuxième tableau.
En utilisant la procédure de pivotage, on développe le troisième tableau du simplexe :

B b x1 x2 x3 x4 x5 x6 x7
x1 40 1 0 0 1 0 0 0
x2 20 0 1 0 0 1 0 0
x6 60 0 0 1 0 0 1 0
x7 30 0 0 2 −3 −6 0 1
z − 400 0 0 3 −4 − 12 0 0

La solution de base réalisable associée à ce tableau est :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (40; 20; 0; 0; 0; 60; 30)

La fonction objectif prend la valeur :


z = 400
Comme il y a encore un nombre positif (de valeur 3) dans la dernière ligne du tableau, cette
solution de base réalisable n’est pas optimale . Donc, une nouvelle itération est nécessaire.

Troisième itération
Le troisième tableau n’est pas optimal. Nous y avons encerclé le pivot, qui est égal à 2.
Poursuivons alors l’algorithme du simplexe en déterminant le construisant le quatrième
tableau.

B b x1 x2 x3 x4 x5 x6 x7
x1 40 1 0 0 1 0 0 0
x2 20 0 1 0 0 1 0 0
x6 45 0 0 0 3/2 3 1 − 1/2
x3 15 0 0 1 − 3/2 − 3 0 1/2
z − 445 0 0 0 1/2 − 3 0 − 3/2

La solution de base réalisable associée à ce tableau est :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (40; 20; 15; 0; 0; 45; 0)

La fonction objectif prend la valeur :


z = 445
Cette solution de base réalisable n’est pas elle aussi optimale puisqu’il y a encore un nombre
positif (de valeur 1/2) dans la dernière ligne du tableau. Donc, une nouvelle itération est
nécessaire.

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 20

Quatrième itération
Par un raisonnement analogue à celui des itérations précédentes, nous construisons le
cinquième tableau du simplexe.

B b x1 x2 x3 x4 x5 x6 x7
x1 10 1 0 0 0 − 2 − 2/3 1/3
x2 20 0 1 0 0 1 0 0
x4 30 0 0 0 1 2 2/3 − 1/3
x3 60 0 0 1 0 0 1 0
z − 460 0 0 0 0 − 4 − 1/3 − 4/3

La solution de base réalisable associée à ce tableau est :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (10; 20; 60; 30; 0; 0; 0)

La fonction objectif prend la valeur :


z = 460
Puisque toutes les valeurs de la dernière ligne sont négatives ou nulles, la solution de base
réalisable obtenue est optimale et l’algorithme se termine.
En se reportant au graphique suivant qui représente la région réalisable du programme linéaire
étudié, on constate que la solution optimale correspond au sommet G.
x3

60 E F

G
D
H
4e iter

I 1er iter A
O
20 x2
e
3e iter 2 iter
40
C B

x1

Ce graphique illustre aussi la séquence des sommets visités (du sommet de départ jusqu’au
sommet optimal) par l’algorithme lors des différentes itérations :

O −→ A −→ B −→ I −→ G

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 21

5.2. Un programme linéaire à 4 variables


La correspondence entre sommets et solutions de base réalisable est valable quelque soit le
nombre de variables traitées. Cependant, il n’est pas possible d’illustrer graphiquement la
méthode du simplexe pour un programme linéaire ayant plus de trois variables.
Considérons le programme linéaire suivant :


 max z = 7x1 + 9x2 + 18x3 + 17x4


 2x1 + 4x2 + 5x3 + 7x4 6 42


(PC3 ) x1 + x2 + 2x3 + 2x4 6 17
x1 + 2x2 + 3x3 + 3x4 6 24






xi > 0, x2 > 0, x3 > 0, x4 > 0

Introduisons des variables d’écart :




 max z = 7x1 + 9x2 + 18x3 + 17x4


 2x1 + 4x2 + 5x3 + 7x4 + x5 = 42


(PC3 ) x1 + x2 + 2x3 + 2x4 + x6 = 17
x1 + 2x2 + 3x3 + 3x4 + x7 = 24






xi > 0, x2 > 0, x3 > 0, x4 > 0

Disposant d’une première solution de base réalisable (évidente), construisons le premier


tableau du simplexe :

B b x1 x2 x3 x4 x5 x6 x7
x5 42 2 4 5 7 1 0 0
x6 17 1 1 2 2 0 1 0
x7 24 1 2 3 3 0 0 1
z 0 7 9 18 17 0 0 0

Géométriquement, la solution de base associée au premier tableau correspond au sommet de


coordonnées (0; 0; 0; 0). Cette solution n’étant pas optimale, nous construisons le deuxième
tableau du simplexe :

B b x1 x2 x3 x4 x5 x6 x7
x5 2 1/3 2/3 0 2 1 0 − 5/3
x6 1 1/3 − 1/3 0 0 0 1 − 2/3
x3 8 1/3 2/3 1 1 0 0 1/3
z − 144 1 −3 0 −1 0 0 −6

La solution de base associée au deuxième tableau correspond au sommet de coordonnées


(0; 0; 8; 0). Mais là encore cette solution n’est pas optimale. Nous construisons alors le troisième
tableau du simplexe :

© Hachimi 2020 • Recherche Opérationnelle


4 Méthode du simplexe : Cas simple 22

B b x1 x2 x3 x4 x5 x6 x7
x5 1 0 1 0 2 1 −1 −1
x1 3 1 −1 0 0 0 3 −2
x3 7 0 1 1 1 0 −1 1
z − 147 0 −2 0 −1 0 −3 −4

Puisque tous les coefficients de la dernière ligne sont négatifs, la solution de base trouvée :

(x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 ) = (3; 0; 7; 0; 1; 0; 0)

est une solution optimale. Elle correspond sommet de coordonnées (3; 0; 7; 0).

© Hachimi 2020 • Recherche Opérationnelle

Vous aimerez peut-être aussi