Méthode Du Simplexe
Méthode Du Simplexe
Méthode Du Simplexe
LA METHODE DU SIMPLEXE
max z = ctx,
Ax = b, (3.1)
x > 0.
De plus, nous savons que les sommets sont étroitement reliés aux solutions de
base admissibles. Concrètement, cela signifie que si on choisit une liste de m
variables dites de base B = {xj1 , xj2, . . . , xjm} associées à des colonnes
{aj1 , aj2 , . . . , ajm} qui forment une base de l’espace-colonne, on peut calculer
l’unique solution de bases du système
AxB = b
en imposant que les variables hors-base xi = 0 pour tous les i ≠ j1 , j2, . . . , jm. Si
xB > 0, la solution est admissible et sera appelée solution de base admissible ou
réalisable. D’après le chapitre précédent, la solution de base x B correspond à un
sommet de K.
Par conséquent, il suffit de calculer tous les sommets de K pour trouver la solution
𝑛!
optimale. Mais le nombre de sommets est de l’ordre ce qui est beaucoup
𝑚!(𝑛−𝑚)!
trop pour des n et m relativement grands. Le principe de la méthode du simplexe
est d’éviter de calculer tous les sommets. A partir d’un sommet donné, la méthode
calculera une suite de sommets adjacents l’un par rapport au précédent et qui
améliore la fonction objective.
Le sommet x = (4, 5, 2, 0, 0) correspond aux variables de base {x1 , x2, x3}. De même, le
sommet y = (6, 2, 0, 2.5, 0) est associé aux variables de base
{x1 , x2, x4}. Les deux sommets sont adjacents ce qui est conforme au graphique de
l’ensemble K projeté dans R2.
Le système s’écrit:
Pour calculer la solution de base (4, 5, 2, 0, 0), il suffit d’extraire les 3 colonnes de la matrice
A et de résoudre le système carré par la méthode d’élimination de Gauss. Toutefois, lorsque
que l’on voudra calculer la nouvelle solution de base (6, 2, 0, 2.5, 0), il faudra recommencer
l’élimination de Gauss avec les nouvelles colonnes de base. Il est plus avantageux de
poursuivre élimination de Gauss à partir du premier calcul.
Voici un exemple de calcul.
a) En premier, on forme la matrice augmentée
Donc
x1 = 4 + 4/ 5 x4 - 2/5 x5
x2 = 5 - 6/5 x4 + 1/10 x5
x3 = 2 - 4/5 x4 + 2/5 x5
En posant les variables hors-bases X4 = X5 = 0, on obtient bien la solution de base
x = (4,5,2,0,0).
c) Maintenant, on désire calculer la solution de base adjacente liées aux variables de base
{x1, x2, x4}. Pour cela, on poursuit l’élimination de Gauss-Jordan à partir du pivot a3,4
Donc
x1 = 6 - x3
x2 = 2 + 3/2 x3 – 1/2 x5
x4 = 5/2 – 5/4 x3 + 1/2 x5
En posant les variables hors-bases x3 = x5 = 0, on obtient bien la solution de base
y=(6,2,0,2.5,0).
d) Poursuivons à un autre sommet adjacent z = (6, 0, 0, 4.5, 4) dont les variables de base sont
{x1 , x4, x5}. Ce sommet est adjacent à y mais pas à x. Poursuivons l’élimination de Gauss-
Jordan à partir du pivot a2,5
Attention, nous avons inclus les variables d’écart dans la liste des variables, i.e. x ∈ Rm+n. La
matrice A et c sont données par
Remarque Si tous les ci < 0, la fonction objective z ne peut augmenter davantage. Donc nous avons
trouver la solution optimale et l’algorithme se termine à cette étape.
et la nouvelle solution de base sera (0, 2, 0, -3) qui n’est pas admissible !
Essayons de nouveau avec {x , x }. Donc, x quitte la base. La solution de base s’obtient à l’aide de
2 3 4
et la nouvelle solution de base sera (3, 2, -4, 0) qui n’est pas admissible ! Essayons l’autre
possibilité avec {x1, x2}. On obtient :
Si αkj = 0, on obtient
Considérons le problème
max z = 20x1 + 25x2
Sous les contraintes
Au préalable, on écrit le problème sous la forme canonique
Les variables de base sont {x3 , x4} et la solution de base est (0, 0, 40, 48) ce qui correspond à l’origine
dans le plan.
1. La fonction z varie plus rapidement en fonction de la variable x . Donc, on choisit la deuxième
2
colonne comme colonne de pivot. La variable x entre dans la base mais une variable doit sortir.
2
où j est la colonne de pivot de l’étape 2. Le critère assure que la solution sera admis sible.
La ligne de pivot sera la première : i = 1. Les variables de base deviennent B = {x2, x4}.
On pivote autour de l’élément T1,2
L’algorithme se termine ici car tous les coefficients des colonnes x , x , x , x sont négatifs. Donc, on
1 2 3 4
ce qui correspond au sommet (8, 8) dans le plan. Le signe - dans le coin inférieur droit est dû au fait
que l’on avait initialement ajouté la ligne c x - z = 0. Donc, à la fin, on aura -z = -360.
t
L’algorithme se termine à cette étape car tous les Ci ≥ 0. La solution optimale sera
La colonne de pivot est j=1 Toutefois, le critère du quotient ne s’applique plus car toutes
les entrées (lignes 1 à 3) de la colonne 2 sont négatives ou nulles. Analysons cette situation
en écrivant les équations correspondantes du tableau
La dernière base était B = {x4, x5 , x2}. On voulait faire entrer dans la base la variable x1 . Posons les
autres variables x3 = x6 = 0 dans le système ci-dessus,
Donc nous obtenons une famille de solutions admissibles qui dépend de la variables x > 0. Reportons
1
Donc le problème est non borné inférieurement et de ce fait n’admet pas de solution optimale.
Remarque 3.2.4 Selon cet exemple, on peut conclure que s’il n’est pas possible de calculer la
ligne de pivot pour un choix de colonne de pivot j , le problème n’admet pas de solution
optimale car il sera toujours non borné.
En effet, notons par B = {xj1 , xj2 , . . . , xjm} le dernier choix des variables de base. On veut
faire entrer la variable xj dans la base. Le système d’équations va s’écrire
car tous les αkj < 0 pour k = 1,2,... ,m. Une fois reporté dans fonction objective, on doit avoir
z = z0 + CjXj (les autres valeurs de Cjk sont nulles pour k = 1, 2,..., m)
qui est non borné autant pour un problème de maximum ou de minimum.
Clairement l’origine, i.e. le point (0, 0, 10, -20), n’est pas admissible.
L’objectif est de trouver une solution de base admissible qui servira de point de départ pour
l’algorithme du simplexe. L’idée est de résoudre un problème intermédiaire de minimisation dont la
solution fournira le point de départ de la méthode du simplexe. Ce problème intermédiaire porte le
nom de Phase I du simplexe.
Dans l’exemple ci-dessus, il s’agit d’introduire une variable artificielle x0 et de considérer le problème
de minimisation
Ce problème admet toujours une solution admissible ; il suffit de prendre le point (x1, x2, x0) = (0, 0,
20).
Retournons au cas general
avec aucune restriction sur le vecteur b. Notons par e le vecteur e = (1, 1, . . . , 1).
La Phase I consiste à résoudre le problème de minimisation par rapport aux variables
La Phase I admet toujours une solution admissible. En effet, il suffit de choisir x0 > 0 suffisamment
grand de sorte que
Ajoutons les variables d’écart à la Phase I dans le vecteur x € Rm+n
Nous allons choisir les variables de base {x3, x0} afin de trouver une solution de base. Pour cela, il faut
faire, en premier, une opération spéciale de pivotement autour du pivot a25 = —1. On obtient
Ensuite, on poursuit avec la méthode standard du simplexe. Dans notre cas, on choisit la colonne j = 1
et la ligne i = 2 de pivot.
On ne peut améliorer ce résultat car la fonction objective z = x0 = 0.
Donc, selon le théorème, nous avons obtenu la solution optimale de la Phase I (4, 0, 6, 0, 0)
avec la base {x1 , x3}. De plus, la variable x0 = 0 devient inutile car hors-base. Ainsi, on peut
enlever la colonne correspondante à x0 .
En résumé, nous avons obtenu une solution de base admissible (x1 , x2, x3, x4) = (4, 0, 6, 0).
C’est le sommet (4, 0) de la figure ci-dessus. Il faut introduire cette solution dans le tableau
du simplexe de la Phase II. Pour cela, on modifie la dernière ligne du tableau final de la Phase
I par la ligne des coefficients originaux de la fonction objective.
Les colonnes de pivot sont x1 et x3 mais les coefficients correspondants ne sont pas nuls. il faut
appliquer l’élimination de Gauss pour les mettre égals à 0.
A partir de ce moment, nous pouvons (Phase II). Poursuivre avec la méthode standard du
simplexe
On choisit la colonne j = 2 et la ligne i = 2 de pivot.
L’algorithme se termine à cette étape. La solution optimale est (0, 10, 0, 20) avec z = 30. Ceci est bien
conforme au graphique ci-dessus.
La colonne de pivot est j = 5 et la ligne de pivot est i = 1.
CONCLUSION
De cette manière, nous confirmerons que les algorithmes génétiques peuvent appréhender
plus facilement les problèmes considérés comme difficiles ou nécessitant un temps de calcul
important avec une approche algorithmique classique. Il est aussi aisé de montrer que les
algorithmes génétiques améliorent la rapidité de résolution et permettent absolument une
résolution qui n’aurait pas été possible autrement, vu la complexité des données des
problèmes physiques ou réels.