Méthode du Simplexe en Programmation Linéaire
Méthode du Simplexe en Programmation Linéaire
❑ La méthode du simplexe, appelé aussi méthode de Dantzig, a été élaborée par George Dantzig en 1947
❑ Demeure jusqu’à présent l’une des meilleures méthodes pratiques utilisée en programmation linéaire
❑ La méthode du Simplexe est formulée à travers:
▪ La méthode algébrique (devient difficile une fois le nombre de variables et containtes augmente)
▪ La méthode des Tableaux Simplexe ( Objet de ce chapitre)
❑ La méthode du simplexe suit un processus itératif et convergent.
▪ Itératif: dans la mesure, où partant d’une solution de base, elle l’améliore progressivement par itérations
successives.
▪ Convergent: car toutes les solutions qui se succèdent à travers les itérations, doivent aboutir à une solution
qui correspondra à l’optimum de la fonction objective considérée.
❑ Son principe repose sur l’exploration des sommets de la région admissible en améliorant à chaque itération la
valeur de l’objectif
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
2- Notions générales
xj ≥ 0 ∀ 𝒋 = 𝟏, … . . , 𝒏
Avec
xj: variables de décision du programme linéaire ( inconnues)
aij , bi, cj : paramètres du programme linéaires (connus)
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
2- Notions générales
Avec:
5 5 x1
2 3 1
4 11 x2
c= ; b= ; A= 4 1 2 ; x=
3 8 x3
3 4 2
❑ Il existe au moins une sous-matrice de A, qu’on notera B, matrice carrée inversible de type
(mxm) d’ordre m.
❑ les variables associées aux colonnes de B sont appelées variable de base, les autres: variables
hors base
1 2 3
Mettre le PL sous Commencer par Améliorer la
sa forme une solution de solution de base
standard base et élaborer par des itérations
le premier successives
tableau Simplexe (tableaux
simplexe) jusqu’à
obtention de la
solution optimale
Fin
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
3- Phases d’élaboration de la méthode Simplexe
On considère le PL suivant:
Max 5x1 + 4x2 + 3x3
2x1 + 3x2 + x3 ≤ 5
(P) 4x1 + x2 + 2x3 ≤ 11
3x1 + 4x2 + 2x3 ≤ 8
x1, x2, x3 ≥ 0
5
4 5
𝟐 𝟑 𝟏 1 0 0
3 11
c= ; b= ; A= 𝟒 𝟏 𝟐 0 1 0
0 8
𝟑 𝟒 𝟐 0 0 1
0
❑ On annule donc les variables de décision x1, x2, x3 qui deviennent des variables Hors base (VHB)
❑ Cette solution à l’origine permet de trouver les valeurs de s1 ,s2 ,s3 qui sont les variables de base (VB):
Zj = σ ciaij 𝑎ij:Coefficients de
la matrice des
contraintes
Profit
marginal
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
3- Phases d’élaboration de la méthode Simplexe
❑ la solution de base:
(x1 x2 x3 s1 s2 s3 )= (0 0 0 5 11 8)
Etape 6: le pivotage
❑ Dans cette phase, on dressera un deuxième
tableau simplexe à travers l’opération de
pivotage qui consiste à rendre le pivot=1
Etape 6: le pivotage
Pour remplir les coefficients des autres lignes du tableau simplexe
,on suit la méthode de pivot de gauss qui consiste à:
❑ transformer la colonne du pivot à un vecteur unité (les
coefficients de la colonne du pivot sont nuls sauf le pivot =1)
3𝑥1 1
NV=2- =
2 2
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
3- Phases d’élaboration de la méthode Simplexe
❑ Dans notre cas, il reste encore une valeur positive non nulle qui
correspond à la variable X3: elle sera donc la nouvelle variable
à introduire à la base et sa colonne devient la colonne pivot
Itération 2:
❑ X3 est la variable qi correspond au plus grand coefficient non
nul de la dernière ligne du tableau donc c’est nouvelle
variable entrante.
❑ pour identifier la variable sortante, on calcule le ratio des bi
sur la colonne pivot
Itération 2:
Pour améliorer la solution, On remplit maintenant le nouveau
tableau en procédant de la même manière qu’auparavant, on
obtient ce tableau simplexe,
Itération 2:
❑ La dernière ligne du tableau Simplexe de cette deuxième
itération n’a que des coefficients négatifs et nuls, l’algorithme a
convergé donc vers la solution optimale qui donne:
Zmax= 13 avec:
(x1 x2 x3 s1 s2 s3 )= (2 0 1 0 1 0)
Exercice 1:
Soit le problème d'optimisation suivant :
Exercice 1:
Étape 1: écrire le PL sous sa forme standard
Exercice 1:
Étape 2: 1er tableau Simplexe à partir de la solution initiale de base Max 3x1 + 5x2
x1 + 2x2 + s1=10000
(P) 2x1 + 3x2 + s2 =12000
x1 + 4x2 + s3 = 15000
x1, x2 ,s1 ,s2 ,s3≥ 0
Exercice 1:
Étape 2: 1er tableau Simplexe à partir de la solution initiale de base Max 3x1 + 5x2
x1 + 2x2 + s1=10000
(P) 2x1 + 3x2 + s2 =12000
x1 + 4x2 + s3 = 15000
x1, x2 ,s1 ,s2 ,s3≥ 0
Exercice 1:
Étape 3: identifier la variable entrante
Elle correspond à la
variable qui a le plus
grand coefficient dans la
dernière ligne du tableau
Simplexe ici 5 donc la
variable x2
Exercice 1:
Étape 4: identifier la variable sortante
Le ratio minimum
correspond la variable s3
C’est la variable sortante
qui sera remplacée par x2
Le pivot est donc 4
Exercice 1:
Étape 4: amélioration de la solution en construisant un deuxième tableau simplexe
Itération 1
Exercice 1:
La dernière ligne contient encore une valeur positive, il faut donc améliorer d’avantage la
fonction objectif en procédant à un autre changement de base à travers une autre
itération
La prochaine
variable entrante
pour la prochaine
itération est donc X1
Exercice 1:
Itération 2:
Exercice 1:
Itération 2:
Exercice 2:
L’objectif de cette deuxième partie de ce chapitre est d’étudier tous les cas possibles des
PLs en rapportant les modifications nécessaires à la méthode Simplexe:
❑ Les PLs particuliers ( solution impossible, infinité de solutions, problème non borné et
problème dégénéré)
❑ Critère de la variable entrante : On choisit la variable hors base ayant le coût réduit (l’effet
net) le plus négatif ( puisqu’on cherche à minimiser z)
❑ Critère d’optimalité : L’algorithme du simplexe s’arrête quand tous les coûts réduits des
variables hors base (coefficients de la dernière ligne du tableau simplexe) sont tous positifs
ou nuls.
Considérant le PL suivant:
On remarque ici que tous les termes du second membre sont positifs (2,4,5), donc la solution
de base initiale est celle qui correspond aux variables de base (s1,s2 et s3) et les variables hors
base x1 et x2.
La solution initiale est ( x1 x2 s1 s2 s3)=( 0 0 2 4 5 )
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
cj -1 -2 0 0 0
ci VB x1 x2 s1 s2 s3 bi
0 s1 -3 2 1 0 0 2
0 s2 -1 2 0 1 0 4
0 s3 1 1 0 0 1 5
zj 0 0 0 0 0 0
cj-zj -1 -2 0 0 0 0
Le pivot est 2
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
Variable entrante: x2
Variable sortante: x1
Le pivot:2
( x1 x2 s1 s2 s3)=( 2 3 2 0 0)
❑ Le problème contient déjà des contraintes d’égalité alors ces dernières n’ont pas besoin de
l’adjonction de variables d’écart et il n’existe pas de sous-matrice identité dans la matrice A :
dans ce cas on ne peut démarrer à partir d’une solution de base à l’origine
Ceci dit, Il est nécessaire de mettre en place une procédure pour obtenir une matrice identité
comme matrice de base initiale et qui correspond à une solution de base initiale réalisable. En
général, une telle procédure est basée sur l’adjonction de ce qu’on appelle : variables artificielles.
Partons du PL suivant:
Max 3x1 + 2x2
x1 + 3x2 –e1=5
(P) Forme standard (P) 3x1 + x2 =7
x1, x2 ≥ 0
Pour pallier à ce problème, nous allons introduire à notre système des variables artificielles:
Max 3x1 + 2x2 Max 3x1 + 2x2 –M a1–M a2
x1 + 3x2 –e1=5
(P) Variables artificielles x1 + 3x2 –e1 + a1=5
3x1 + x2 =7
(P)
3x1 + x2+ a2 =7
x1, x2 ,s1 ≥ 0
x1, x2 ,s1, a1, a2 ≥ 0
Max 3x1 + 2x2 –M a1–M a2 Avec ces modifications, en donnant aux variables x1 et x2 la valeur zéro,
x1 + 3x2 –e1 + a1=5 On peut démarrer le simplexe avec une solution réalisable à l’origine
(P) Puisque les contraintes sont vérifiées grâce aux variables artificielles
3x1 + x2+ a2 =7
introduites
x1, x2 ,s1, a1, a2 ≥ 0
Max 3x1 + 2x2 –M a1–M a2 Après avoir mis le Pl sous la forme standard, la solution de base initiale
x1 + 3x2 –e1 + a1=5 Correspondant au tableau simplexe initial est :
(P)
3x1 + x2+ a2 =7
( x1 x2 e1 a1 a2)=(0 0 0 5 7)
x1, x2 ,s1, a1, a2 ≥ 0
❑ Comme leur nom l’indique, les variables artificielles n’ont aucune interprétation, leur utilité réside
en la possibilité de démarrer le Simplexe à partir une solution d’origine.
❑ Cependant, nous avons intérêt à les faire sortir le plutôt possible de la base car leur présence
cause une diminution importante de la valeur de la fonction objectif ( Coefficient M assez grand)!
Variable entrante: x1
Variable sortante :a2
Pivot:3
Pour z= 7-8/3M
2ème itération
Variable entrante: x2
Variable sortante :a1
Pivot:8/3
2ème itération
Pour z max= 8
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
3ème itération
Variable entrante: e1
Variable sortante :x1
Pivot:1/8
3ème itération
Pour z max= 14
La première contrainte est non saturée
Remarque:
Max z=cTx−M σ𝑚 𝑚
𝑖=1 ai (Problème de maximisation) ou Min z= c x+M σ𝑖=1 ai (Problème de minimisation)
T
❑ Si au moins une variable artificielle est encore dans la base dans le tableau optimal, alors le
problème est non réalisable.
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
❑ Infinité de solutions: Se produit lorsque dans l’itération finale une variable Hors base a un
coefficient nul dans la dernière ligne( cj-zj=0), ceci veut dire qu’elle peut être introduite
dans la base et donner une autre solution optimale sans changer la valeur de la fonction
objectif.
❑ Problème non borné: Lorsqu’on n’arrive pas à préciser la variable sortante (tous les
coefficients de la colonne de la variable entrante nuls et/ou négatifs → Zmax=+∞)
▪ Pour déterminer la variable entrante, nous sommes en présence d’au moins deux variables
hors base ayant le même et le plus élevé coefficient strictement positif dans la dernière ligne.
▪ En déterminant la variable sortante, nous sommes en présence d’au moins deux variables de
base ayant le même et le plus petit rapport positif dans la dernière colonne.
▪ Quand plusieurs variables sont candidates pour sortir de la base, la nouvelle solution de base
aura une (ou plusieurs) variables de base prenant la valeur 0.
On dit alors que la solution de base est dégénérée.
❑ Problème dégénéré:
❑ En cas de dégénérescence, l’algorithme peut revenir sur une solution de base déjà
visitée (→ cycle).
Il existe des règles de pivotage limitant les risques de cycle :
▪ règle de plus petit indice: Règle de bland
▪ perturbation des données : ajouter au membres de droite des contraintes des ϵ
suffisamment petits.
❑ un problème dégénéré n'empêche pas de trouver une solution optimale, mais il peut
ralentir l'algorithme et nécessiter des précautions pour éviter les boucles infinies.
❑ Infinité de solutions:
❑ Infinité de solutions:
cj 400 600 0 0 0 M M M
Ratio
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi
200
M a1 1 1,5 -1 0 0 1 0 0 300
-
M a2 1 0 0 -1 0 0 1 0 50
100
M a3 0 1 0 0 -1 0 0 1 100
zj 2M 2,5M -M -M -M M M M 450M Variable entrante: X2
Variable sortante: a3
Cj-zj 400-2M 600-2,5M M M M 0 0 0
Pivot :1
❑ Itération 1:
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi
M a1 1 0 -1 0 1,5 1 0 150
M a2 1 0 0 -1 0 0 1 50
600 X2 0 1 0 0 -1 0 0 1 100
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi Ratio
M a1 1 0 -1 0 1,5 1 0 150 150
M a2 1 0 0 -1 0 0 1 50 50
600 X2 0 1 0 0 -1 0 0 1 100 -
❑ Itération 2:
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi
M a1 0 0 -1 1 1,5 1 0 100
400 X1 1 0 0 -1 0 0 1 50
600 X2 0 1 0 0 -1 0 0 1 100
❑ Itération 2:
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi Ratio
M a1 0 0 -1 1 1,5 1 0 100 66,66
400 X1 1 0 0 -1 0 0 1 50 -
600 X2 0 1 0 0 -1 0 0 1 100 -
Variable entrante: s3
zj 400 600 -M M-400 1,5M-600 M M 100M+8 Variable sortante: a1
0000
Pivot :1,5
Cj-zj 0 0 M 400-M 600-1,5M 0 0
❑ Itération 3:
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi Zmin=12000
(X1 x2 s1 s2 s3)
0 s3 0 0 -0,66 0,66 1 1 0 66,66 = (50 166,66 0 0 0,66)
400 X1 1 0 0 -1 0 0 1 50 La condition d’arrêt est
vérifiée mais on remarque
600 X2 0 1 -0,66 0,66 0 0 0 1 166,66 que la VHB s2 a un coût
réduit nul.
zj 400 600 -400 0 0 M M 120000 On peut l’introduire à la
Cj-zj 0 0 400 0 0 0 0 base et trouver une autre
solution optimale sans
le Zmin
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
❑ Itération 2:
cj 400 600 0 0 0 M M M
ci VB X1 X2 s1 s2 s3 a1 a2 a3 bi ratio
❑ Itération 4:
cj 400 600 0 0 0
ci VB X1 X2 s1 s2 s3 bi
Nous avons donc trouvé une autre
0 s2 0 0 -1 1 1,5 100 solution optimale sans changer
le Zmin=12000
400 X1 1 0 -1 0 1,5 150
600 X2 0 1 0 0 -1 100 (X1 x2 s1 s2 s3)= ( 150 100 0 100 0)
❑ Solution impossible:
Min Z=-x 1 +x 2 +M a1
Min Z=-x 1 +x 2 -2x1+x2+s1=2
2x1-x2≥-2 (P)
(P) Forme standard -x1+2x2-s2 + a1=8
x1-2x2≤-8 x1+x2 +s3 =5
x1+x2≤5
x1 ; x2 ≥0 x1 ; x2 ;s1;s2; s3; a1≥0
❑ Itération 1:
cj -1 1 0 0 0 M
ci VB X1 X2 s1 s2 s3 a1 bi Ratio
1 x2 -2 1 1 0 0 0 2 -
M a1 3 0 -2 -1 0 1 4 4/3
0 s3 3 0 -1 0 1 0 3 1
zj 3M-2 1 1-2M -M 0 M 2+4M
Variable entrante: X1
Cj-zj 1-3M 0 2M-1 M 0 0
Variable sortante: s3
Pivot=3
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
❑ Itération 2:
cj -1 1 0 0 0 M
ci VB X1 X2 s1 s2 s3 a1 bi Ratio
1 x2 0 1 1/3 0 2/3 0 4 12
M a1 0 0 0 -1 -1 1 1 -
-1 x1 1 0 -1/3 0 1/3 0 1 -
zj -1 1 2/3 -M 1/3-M M 3+M
Variable entrante: S1
Cj-zj 0 0 -2/3 M M-1/3 0
Variable sortante: X2
Pivot=1/3
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
❑ Itération 3:
cj -1 1 0 0 0 M
ci VB X1 X2 s1 s2 s3 a1 bi
Max Z= 3x1+5x2 -M a1 -M a2
x1 −x2 -s1+a1=2
Max Z= 3x1+5x2 (P)
-x1 +3x2 -s2+a2=3
(P) x1 −x2 ≥2 Forme standard
x1 ; x2 s1;s2; a1; a2 ≥0
-x1 +3x2 ≥3
x1 ; x2 ≥0
-M a1 1 -1 -1 0 1 0 2 -
-M a2 -1 3 0 -1 0 1 3 1
zj 0 -2M M M -M -M -5M
Cj-zj 3 5+2M -M -M 0 0 Variable entrante: x2
Variable sortante: a2
Pivot=3
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
-M a1 1 -1 -1 0 1 0 2 -
-M a2 -1 3 0 -1 0 1 3 1
zj 0 -2M M M -M -M -5M
Cj-zj 3 5+2M -M -M 0 0 Variable entrante: x2
Variable sortante: a2
Pivot=3
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
-M a1 2/3 0 -1 -1/3 1 3
9/2
5 x2 -1/3 1 0 -1/3 0 1 -
zj -2/3M-5/3 5 M 1/3M-5/3 -M 5-3M
Cj-zj 14/3+2/3M 0 -M 5/3-1/3M 0 Variable entrante: x1
Variable sortante: a1
Pivot=2/3
VB x₁ x₂ x₃ s1 s2 s3 bi Ratio
X2 4 7 0 0 1 4 4
4/7
X1 2 8 0 1 0 3 0
0
x₃ -2 9 1 0 0 2 0
0
Cj-zj -5 2 0 0 0 1 Variable entrante: x2
Variable sortante: x₁ etx₃
On choisit celle avec le plus petit
indice x₁
VB x₁ x₂ x₃ s1 s2 s3 bi Ratio
s2 4 1 0 0 1 4 5 5
s1 2 3 0 1 0 3 15 5
x₃ -2 2 1 0 0 2 14 7
Cj-zj -5 6 0 0 0 1
Variable entrante: x2
Variable sortante: s₁ ets₃
On choisit celle avec le plus petit
indice s₁
O.Labbi Cours de recherche opérationnelle ENSAM-Meknès
5- la méthode Simplexe : le cas général
VB x₁ x₂ x₃ s1 s2 s3 bi
s2 4 1 0 0 1 4 7 On se retrouve avec 2 variables qui
ont le même coût réduit le plus
s1 2 3 0 1 0 3 5 grand: x2 et x3 → on choisit x2
x₃ -2 2 1 0 0 2 2
Cj-zj -3 6 6 0 0 1
❑ Exemple:
Soit le PL suivant:
Pour x1 et x2 , on effectue le
changement suivant:
Min Z= -x1+2x2 x1 = x’1 –x
5x1 +3x2 ≥ -30
(P)
x1 - x2 ≤ 2 X2=x’2 -x
x1 ; x2 VRS
❑ Exemple:
Le PL devient:
Min Z= -x’1+2x’2 –x + 0 s1 + 0 s2
Min Z= -x’1+2x’2 –x
(P) -5x’1-3x’2 + 8 x +s1 = 30
(P) -5x’1-3x’2 + 8 x ≤ 30 Forme standard
x’1-x’2 +s2 = 2
x’1-x’2 ≤ 2 x’1 ; x’2 ; x ; s1 ; s2 ≥ 0
x’1 ; x’2 ; x ≥ 0
x’1-x’2 +s2 = 2
x’1 ; x’2 ; x ; s1 ; s2 ≥ 0
❑ Exemple: