La Methode Du Simplexe
La Methode Du Simplexe
La Methode Du Simplexe
L'objectif de cette partie est de présenter la méthode du simplexe, à savoir son principe de base, 1'algorithme
qui en découle et l’interprétation des résultats obtenus par cette méthode.
A. GENERALITES
La méthode du simplexe est une technique algébrique de résolution des programmes linéaires développée par
DANTLIG et KANTOROVICH vers les années 1950. Cette technique est aujourd'hui très utilisée
notamment à cause du développement du traitement informatique.
La méthode du simplexe donne le moyen de passer d'un sommet quelconque (solution de base) à un sommet
qui nous rapproche de la valeur optimale de la fonction économique, ce qui réduit le nombre d'essais à faire
pour atteindre le sommet optimal. Nous verrons que dans le cas de dégénérescence il faut y avoir des
problèmes.
La technique utilisée est proche de celles utilisées dans la résolution d'un système d'équations linéaires par la
méthode 1'élimination de Gauss ou par la matrice inverse (méthode du pivot).
Nous présenterons la méthode du simplexe à partir des exemples de production (E ts Fotso) et de location
(sté Empecam).
Si les conditions ne sont pas réunies dans le programme original on construit un programme équivalent en
introduisant de nouvelles variables.
1
x1̅ tel que x1̅ + x1 = 400
x̅2 tel que x̅2 + x2 = 700
x3̅ tel que x3̅ + x1 + x2 = 800
x4̅ tel que x4̅ + 2x1 + x1 = 1000
x 1 + x4̅ = 400
x2 + x2̅ += 700 (2)
x1 + x2 + x3̅ = 800
2x1 x2 x̅4 = 1000 x1 ≥ 0, x2 ≥ 0, xi̅ ≥ 0 i = 1,…4
Les variables Xi sont appelés variables d'écart, elles correspondent aux contraintes du type ≤.
Supposons que comme pour les programmes canoniques de type 1, on introduise des variables non négatives
yi̅ tels que :
y1 + y3 + 2y4 − yi̅ = 0
y2 + y3 + y4 − y̅2 = 0
Comme dans les programmes de type, on a ajouté à chaque contrainte une variable différente. En posant
toutes les variables originales égales à zéro, on obtient facilement une solution aux systèmes
d'équations (2) et (4).
Pour (4) on a y1 = y2 = y3 = y4 = 0
y̅1 = −200
y2̅ = −150
La solution du système (2) est admissible alors que celle du système (4) ne l'est pas puisque y̅1 et y̅2 ne
peuvent être négatifs.
Pour contourner cette difficulté, on introduit au niveau de chaque contrainte de type ≥ une variable yi̅ dite
variable d'excédent affecté d'un signe négatif et une variable artificielle affecté d'un signe positif. Ces
variables sont toutes non négatives.
2
Au niveau de la fonction économique, les variables d'écart et d'excédent sont affectés d'un coefficient nul
tandis que les variables artificielles sont affectées d'un coefficient égal à /M/ où /M/ est assez grand, ce qui
assure que ces variables seront nulles à 1'optimum (méthode du M, méthode des pénalités de chances).
Dans notre cas, nous avons donc Min 400y1 + 700y2 + 800y3 1000y4 +0y1̅ + M̿1 0y2 𝑀̿2
Programme mixte :
Remarques :
1. L'introduction de la variable x2̿ permet d'avoir une solution admissible du système 6 avec
x1 = x2 = 0 = x̅3
x1̅ = 6
x4̿ = 4 et x3̿ = 8
2. Nous avons "pénalité" les variables artificielles en leur affectant des coefficients négatifs fortement élevés
car on veut maximiser la fonction économique ce qui permettra de les écarter de la solution car l'optimum,
si une de ces valeurs était non nulle on aurait une fonction économique fortement négative donc
certainement pas au maximum. Dans les cas où la fonction économique est à minimiser, on affectera le
coefficient + M aux variables artificielles dans la fonction économique.
Pour résoudre un système d'équations linéaires à n+ m variables et m équations, on est obligé de considérer n
variables comme paramètres et exprimer les m autres en fonction de ces dernières.
Les variables retenues comme paramètres sont considérées comme variables hors base et les autres sont
appelées variables de base.
Une solution de base est obtenue quand en posant les n variables hors base égales a zéro, les variables de base
ont toutes des valeurs non négatives.
3
x1 = x2 = 0
x1 = 400
x2̅ = 700
x3̅ = 800
x4̅ = 1000 est la solution de base.
La solution (7) est-elle une solution de base ? Certainement pas, puisqu'on a avantage à donner la plus
grande valeur possible eux variables X1 et X2 (hors base), pour accroître la fonction économique.
Remarque:
Donner une valeur non nulle à X1 ou X2, ou revient à rentrer 1'une ou 1'autre de ces variables dans la
base. II est ici plus intéressant de rentrer la variable X1 qui rapporte plus par unité que la variable X2.
Règle:
Lorsque la fonction économique est exprimée uniquement en fonction des variables hors base, on
choisit de rentrer dans la base de variable dont le coefficient positif est le plus élevé.
En gardant X2 = 0 et compte tenu des contraintes du système (6) la plus grande valeur qu'on peut
donner a X1 est 400 donc x2 = 0, x1 = 0 et on a x1 = 400, x3̅ = 400, x4̅ = 200
La solution n'est toujours pas optimale on peut augmenter la valeur de Z en faisant croître X2.
Nous avons :
x1 = 400 − x1̅
x2̅ = 700 − x2
x3̅ = 800 − x1 − x2 = 400 − x2 + x1 (8)
x4 = 200 − x2 + 2x̅1
Compte tenu de ces relations la plus grande valeur qu'on peut donner à x2 est 200, ce qui entre x4̅ = 0.
Variables hors base (x̅4 , x̅1 ).
Fonction économique Z = 110.000 + 100x1̅ - 150x4̅
La fonction économique n'est toujours pas maximale car on peut augmenter sa valeur en rendant non
nul en exprimant les variables de base en fonction des variables hors base on a
x1 = 400 − x̅1
x2 = 500 − 2x1̅ − x4 (9)
x2̅ = 200 + 2x1̅ − x4̅
x̅3 = 200 − x1 + x̅4
Compte tenu de (9) la plus grande valeur que peut prendre x1̅ est 200, on a pour solution x3̅ = x4̅ = 0
4
x1 = 200
x2 = 600
x1̅ = 200
x̅2 = 100
Z = 130.000 + 100x3̅ - 50x4̅
Cette solution est optimale, car tout accroissement de x̅1 ou x̅2 Diminuerait la valeur de Z.
Lorsque la fonction économique est exprimée uniquement en fonction des variables hors base que les
coefficients de ces variables sont tous négatif alors le maximum est atteint et la solution de base
obtenue est l'unique solution optimale.
TABLEAUX DU SIMPLEXE
La démarche que nous avons suivie est basée sur la résolution d'un système d'équations linéaires par la
méthode de substitution. Nous pouvons reprendre cette démarche en faisant appel au calcul matriciel
ou encore, aux tableaux du simplexe.
Max Z = ∑ Cj X j + ∑ Ci∗ X i∗
j=1 i=1
Tel que :
n
∑ a1j Xj + xi = b1
j=1
n
∑ aij Xj + ⋯ X i∗ = 𝑏𝑖
j=1
n
∗
∑ amj Xj + ⋯ X m = 𝑏𝑚
j=1
𝑋𝑗 ≥ 0 ∀𝑗 = 1, … 𝑛
𝑋𝑖̅ ≥ 0 ∀𝑖 = 1, … 𝑛
Les Xi sont les variables d'écart. Ce problème peut être sous la forme d'un tableau correspondant à la
solution de base plus évidente.
𝑋𝑗 = 0 𝑗 = 1, … 𝑛
𝑋𝑖∗ = 𝑏𝑖 𝑖 = 1, … 𝑚
5
Tableau 1 :
𝐻𝑖 base 𝐶1 𝐶2 𝐶𝑗 𝐶𝑛 𝐶1∗ ∗
𝐶𝑚
Base 𝑋1 𝑋2 𝑋𝑗 𝑋𝑛 𝑋1∗ ∗
𝑋𝑚
𝐶1∗ 𝑋1̅∗ a11 a12 a1j a1n 1 …. 0 D1
Zj = ∑ Ci∗ aX ij
j=1
Critère d'optimalité
Application
Forme standard
X1 + X1∗ = 400
X 2 + X 2∗ = 700
X1 + X 2 + X 3∗ = 800
2X1 + X 2 + X 4∗ = 1000
Solution de base X1 = X2 = 0.
6
Tableau 1 :
0 X i∗ 1 1 0 0 1 0 800 800
∗
0 Xm 2 1 0 0 0 1 1000 500
- ∆Zj : représente le bénéfice marginale qu'on interne montre qu'on apporte la production d'une unité de X j
- La lecture de la 1ère colonne de la matrice interne montre que pour produire une unité de X 1 il faut ne pas
produire une unité de 𝑋1∗ , 0 unité 𝑋2∗ , une unité de 𝑋3∗ , et deux unités de 𝑋4∗ .
- 𝑋𝑖∗ représente la quantité de ressource i disponible.
Optimalité :
Tous les ∆Zj sont positifs, donc le tableau n'est pas optimal (dans le cas d'un problème de
minimisation, il faut que tous les ∆Zj soient négatifs).
On rentre dans la base la variable ayant le plus grand ∆Zj positif ou la variable ayant le ∆Zj négatif le
plus grand en valeur absolu) ici, c'est X1.
Variable entrante
𝑏𝑒 𝑏
𝑎i 𝑒𝑘
= 𝑚𝑖𝑛 (𝑎 𝑖 )
𝑖𝑘
𝑏 𝑏 𝑏 𝑏 𝑏
Ici on prend 𝑀𝑖𝑛 (𝑎 1 , 𝑎 2 , 𝑎 3 , 𝑎 4 ) = 𝑎 1 = 400 … on sort la variable qui s'épuise la première.
11 21 31 41 11
X1 = 400 est la plus grande valeur qu'on peut donner à X1, compte tenu des contraintes.
7
L'élément du tableau qui se trouve à l'intersection de la colonne représentant les composantes du
vecteur qui entre et la ligne du vecteur qui entre est appelé pivot. On passe alors au tableau 2, en
appliquant les règles suivantes à tous les éléments du tableau c'est-à-dire :
a b
(1)
c d
1 𝑏
𝑎
(2)
𝑐
𝑑−𝑏
0 𝑎
Conséquences pratiques :
Si c = 0 on recopie la ligne ou encore si on rencontre un zéro sur la colonne du pivot on recopie la
ligne.
Si b = 0 on recopie la colonne, si on rencontre un zéro sur la ligne du pivot on recopie la colonne.
Tableau 2 :
200 150 0 0 0 0
Hi base Di
Base X1 X2 X1∗ X 2∗ X 3∗ X 4∗
200 X1 1 0 1 0 0 0 400
0 X 2∗ 0 1 0 1 0 0 700 700
0 X 3∗ 0 1 -1 0 1 0 400 400
0 X 4∗ 0 1 -2 0 0 1 200 200
8
- La variable entrante est X2
- La variable sortante est X ∗4
- Le pivot est égal à 1
Tableau 3 :
200 150 0 0 0 0
Hi base bi
Base X1 X2 X1∗ X 2∗ X 3∗ X 4∗
0 X 2∗ 0 0 2 1 0 -1 500 250
0 X 3∗ 0 0 1 0 1 -1 200 200
Tableau 4
200 150 0 0 0 0
Hi base bi
Base X1 X2 X1∗ X 2∗ X 3∗ X 4∗
200 X1 1 0 0 0 -1 2 200
0 X 2∗ 0 0 0 1 -2 1 100
0 X1∗ 0 0 1 0 1 -1 200
50 X2 0 1 0 0 2 -1 600
Commentaire
La production d'une lanière en cuir de façons optimale c'est produire une ceinture A(-1) et
défaire deux ceintures B(2) ce qui libère 2 boucles, B(-2) et consommables A(1).
9
Interprétation
A la solution optimale on a :
x1 = 200
x2 = 600
x1̅ = 200
x̅2 = 100
x3̅ = x4̅ = 0
Si on avait une lanière de cuir supplémentaire on pourrait faire une ceinture A en moins :
- 100F
+ une lanière de cuir
+ 2 unités de temps
Ainsi à l'optimum les taux de substitution représente le bénéfice marginal qu'apporte une unité de
ressource supplémentaire, ce n'est donc quatre chose de la valeur de la variable duale associée à la
contrainte définie par rapport à cette ressource.
yi ≥ 0, i = 1, ....4.
10
Forme standard associée
La mention se poursuit comme dans le cas précédent sauf que la solution initiale de base consiste
généralement à annuler toutes les variables réelles et d'écart.
y1 = y2 = y4 = y1̅ = y2̅ = 0
𝑦1̿ = 200
𝑦2̿ = 150
Tableau 1 :
Tableau 2 :
11
Solution :
y1 = y2 = 0
y3 = 100
y4 = 50
Nous avons déjà mis en évidence les relations qu'il y a entre les solutions des problèmes duaux. Nous
allons montrer comment obtenir les solutions d'un problème dual (primal) à partir du tableau optimal
primal (ou dual).
𝐗𝟑∗ 𝐗∗𝟒
X1 -1 1 200
𝐗𝟐∗ -2 1 100
𝐗𝟏∗ 1 -1 200
X2 2 -1 600
-100 -50
Prenons le tableau optimal obtenu pour le programme primal, gardons la matrice significative c'est-à-
dire celle où on explique les vecteurs hors base en fonction des vecteurs de base.
A partir de ce tableau, on peut obtenir T.O.D.S (tableau optimal dual simplifié) en appliquant les
règles suivantes :
- Le primal est en ligne, le dual sera en colonne.
- A toute variable barrée correspond la même variable non barrée
- Transposer la matrice
- Changer les signes des matrices, ∆ bénéfices marginaux ∆Zj et constantes du second membre.
On a T.O.D.S :
y3 1 2 -1 -2 100
y4 -1 -1 1 1 50
200 100 200 600
Remarque :
Pour une unité de la variable i qui entre dans la base, la fonction économique croit de Ci – Zj. Ou on
𝑏 𝑏
peut faire rentrer 𝑎 𝑖 fois cette variable ; donc Z croit de (Ci – Zj) 𝑎 𝑖 où Xk est la variable qui sort de la
𝑘𝑖 𝑘𝑖
base.
Pour éviter le bouclage, il faut déterminer un critère permettant de vérifier qu'une nouvelle solution de
base, même dégénérée augmente la valeur de la fonction économique.
12
Règle lexicographique
A. Charnes1 propose de transformer chaque équation ou le second membre est nul par ∑ 𝑎𝑖𝑗 𝑋𝑗 =
0 en ∑ 𝑎𝑖𝑗 𝑋𝑗 = 0 ∑ 𝑎𝑖𝑗 𝐸𝑗 , E terme assez petit.
Cette transformation permet de différencier deux équation ayant des seconds membres nulles et permet
la fonction économique à chaque changement de base, la valeur définitive de la fonction économique
est obtenue en posant E = 0.
Nous avons une solution dégénère car X3 et X4 variables de base prennent une valeur nulle. Tandis que
dans le système (2), nous avons :
X1 = X2 = 0
X3 = 2E – E² + E3
X4 = E – E² + E4
X5 = 6
Cette solution n'est pas optimale et on rentre la variable X1 dans la base, la variable qui est obtenue.
2E−E2 +E3 E−E2 +E4 6 2E2 −E3 +E4 E−E2 +E4
min ( 2
; 1
; 3) Comme E est petit cela revient au min ( 2
; 1
;) le
choix sera unique sinon cela reviendrait à dire que deux équations sont identiques.
Ainsi X1entre en prenant la valeur positive E – E² + E4 et comme son coefficient était positif, la
fonction économique augmente pour la nouvelle solution de base de 5(E – E² + E4). O évite ainsi le
bouclage.
1A. Charnes., "Optimality and degenarality in lineair programming", Econometric, Vol 20 n°2, Avril 1952
13