Académique Documents
Professionnel Documents
Culture Documents
Méthode du simplexe
2020-2021
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 1 / 58
La méthode du simplexe Présentation de la méthode
2. Notions générales
2.1 Rappels
Un programme linéaire s'écrit généralement sous la forme :
max (ou min) z = c1 x1 + c2 x2 + ... + cn xn
a 11 x1 + a12 x2 + ... + a1n xn {≤, =, ≥} b1
a21 x1 + a22 x2 + ... + a2n xn {≤, =, ≥} b2
. ⇐⇒
.
.
a x + am2 x2 + ... + amn xn {≤, =, ≥} bm
m1 1
x1 ≥ 0, . . . , xn ≥ 0
X n
max / min z = cj xj
j=1
X n
aij xj {≤, =, ≥} bi i = 1, m
1
j=
xj ≥ 0
j = 1, n
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 3 / 58
La méthode du simplexe Notions générales
max / min z = c T x
Ax {≤, =, ≥} b
x ≥0
Forme matricielle
max z = c T x
Ax ≤ b
x ≥0
Exemple :
max 6x1 + 7x2 + 8x3
x1 + 2x2 + x3 ≤ 100
max z = c T x
3x1 + 4x2 + 2x3 ≤ 120
(P1 ) ⇐⇒ Ax ≤ b
2x1 + 6x2 + 4x3 ≤ 200
x ≥0
x1 + x3 ≤ 150
x1 , x2 , x3 ≥ 0
avec
1 2 1 100
6 x1
3 4 2 120
A= ; b= ; c = 7 ; x = x2
2 6 4 200
8 x3
1 0 1 150
A de type (4 , 3),
m=4 (contraintes) et n=3 (variables de décision).
Forme matricielle
max z = c T x
Ax = b
x ≥0
Propriété
Tout programme linéaire peut être mis sous la forme canonique et sous la
forme standard.
Remarques
1 Le passage entre la forme générale, la forme canonique et la forme
standard se fait moyennant les transformations ci-dessus.
Exemple :
min 5x1 − 3x2
1 − x2 ≥ 2
x
Soit le problème : (P2 ) 2x1 + 3x2 ≤ 4
−x1 + 6x2 = 10
x1 , x2 ≥ 0
max −5x1 + 3x2
x1 − x2 − x3 = 2
(P20 ) 2x1 + 3x2 + x4 = 4
−x1 + 6x2 = 10
x1 , x2 , x3 , x4 ≥ 0
Dénitions
On appelle base toute sous-matrice carrée B inversible de type
(m , m) extraite de A.
Les variables associées aux colonnes de B sont dites variables de base,
les autres variables hors base.
Exemple :
Soit le système linéaire :
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
Ce système peut s'écrire Ax =b
, avec :
x1
0 1 2 2 x2 1
A= , x =
et b =
1 1 2 3 x3 1
x4
A est de type (2 , 4 ) (2 équations et 4 variables).
1 2
La sous-matrice B= est inversible et rang (A) = 2.
1 3
Remarques
Une base est inversible et donc les variables de base correspondent à
des colonnes linéairement indépendantes de la matrice A.
Par conséquent, on peut avoir plusieurs bases dans une matrice A.
En eet, on peut le remarquer dans l'exemple précédent :
0 1
est aussi une base et correspond alors aux variables de base
1 1
x1 et x2 .
1 2
n'est pas une base (car non inversible).
1 2
Généralisation :
Soit Ax = b un système d'équations linéaires tel que A matrice de type
(m , n), m ≤ n et rang (A) = m. Soit B une base de A.
Après permutation des colonnes de A de manière à ce que celles de B
soient en premier, on obtient :
P P xB
A= B N et x= où
xN
N est la sous-matrice de A correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
xN vecteur de Rn−m formé par les variables hors base.
et on a :
Dénitions
On appelle solution de base (associée à la base B ), la solution
particulière obtenue en prenant xN = 0.
xB est déterminée de façon unique par :
BxB = b ⇐⇒ xB = B −1 b
Remarque :
Dans le cas d'un programme linéaire sous forme standard avec les
contraintes Ax = b , x ≥ 0, une solution de base réalisable correspond
géométriquement à un sommet du polyèdre des contraintes.
4.1 Exemple :
Considérons le problème déjà étudié (Exemple 1, Chapitre 1).
Rappelons le programme linéaire qui modélise ce problème :
où
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
x1 = 0 ; x2 = 0 ; e1 = 4 ; e2 = 12 ; e3 = 18
Autrement dit : on ne produit rien au départ
et z = 3x1 + 5x2 + 0e1 + 0e2 + 0e3 = 0.
Tableau initial :
Le premier tableau du simplexe (tableau initial) s'écrit :
Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0
Itération du simplexe :
e1 = 4
e2 = 12 − 2x2 ≥ 0
2x2 + e2 = 12
⇐⇒ e3 = 18 − 2x2 ≥ 0
2x + e3 = 18
2 x2 ≥ 0
x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0
x2 ≤ 12/2 = 6
⇐⇒ x2 ≤ 18/2 = 9 =⇒ 0 ≤ x2 ≤ min{12/2 , 18/2} = 12/2 = 6
x2 ≥ 0
Tableau 1
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4 /0=∞
← e2 0 2 0 1 0 12 12/2 =6
e3 3 2 0 0 1 18 18/2 = 9
−z 3 5 0 0 0 0
Règles de calcul :
Les coecients de la ligne du pivot sont divisés par le pivot.
Les coecients de la colonne du pivot (sauf le pivot) sont nuls.
Les autres coecients sont obtenus par la règle :
Cpivot
Nv = Av − ( × Lpivot)
Pivot
Nv : nouvelle valeur
Av : ancienne valeur
Cpivot : colonne du pivot
Lpivot : Ligne du pivot
Tableau 1
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4 /0=∞
← e2 0 2 0 1 0 12 12/2 = 6
e3 3 2 0 0 1 18 18/2 = 9
−z 3 5 0 0 0 0
Tableau 2
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
−z 3 0 0 −5/2 0 −30
Tableau 2
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
−z 3 0 0 −5/2 0 −30
Tableau 3
Base x1 x2 e1 e2 e3 s.m
e1 0 0 1 1/3 −1/3 2
x2 0 1 0 1/2 0 6
x1 1 0 0 −1/3 1/3 2
−z 0 0 0 −3/2 −1 −36
4 − x1∗ = 4 − 2 = 2
12 − 2x2∗ = 12 − 2 × 6 = 0
18 − (3x1∗ + 2x2∗ ) = 18 − (3 × 2 + 2 × 6) = 0.
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 28 / 58
La méthode du simplexe Cas général
max z = c T x
(PS) Ax = b
x ≥0
Notons :
N = {j1 , ..., jn−m } = {1, ..., n} \ B : l'ensemble des indices hors base,
xB
Ax = b ⇐⇒ B N =b
xN
⇐⇒ B xB + N xN = b
⇐⇒ xB + B −1 N xN = B −1 b
⇐⇒ xB = B −1 b − B −1 N xN
X X
z = cT x = ci xi + ci xi = cB xB + cN xN
i∈B i∈N
xB + B −1 N xN = B −1 b ⇐⇒ xB = B −1 b − B −1 N xN =⇒
z = cB xB + cN xN
= cB (B −1 b − B −1 N xN ) + cN xN
= (cN − cB B −1 N)xN + cB B −1 b
z = dN xN + z̄ ⇐⇒ dN xN = z − z̄
avec dN = cN − cB B −1 N ; z̄ = cB B −1 b
les composantes de dN s'appellent coûts réduits des variables hors base.
Ils interviennent de façon déterminante dans la méthode du simplexe.
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 31 / 58
La méthode du simplexe Cas général
xB + B −1 N xN = B −1 b
dN x N = z − z̄
et xB ≥ 0 , xN ≥ 0.
La solution de base est donnée par : xN = 0 ; xB = b̄ = B −1 b .
Cette solution de base est réalisable signie que b̄ = B −1 b ≥ 0.
La valeur de la fonction objectif z associée à cette solution est z̄ .
Finalement, le tableau du simplexe associé à la base B est (à une
permutation de colonnes près) de la forme :
Base xB xN s.m
xB Im B 1N
− b̄ = B −1 b
−z 0 dN −z̄
dN = cN − cB B −1 N ; z̄ = cB B −1 b
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 32 / 58
La méthode du simplexe Cas général
↓
Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
x2 0 1 0 1/2 0 6
← e3 3 0 0 −1 1 6
−z 3 0 0 −5/2 0 −30
Base xB xN s.m
xB Im B −1 N b̄ = B −1 b
−z 0 dN −z̄
dN = (3 , −5/2) ; b̄ = (4 , 6 , 6),
Solution de base : (x1 , x2 , e1 , e2 , e3 ) = (0 , 6 , 4 , 0 , 6),
Fonction objectif : z̄ = 30.
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 33 / 58
La méthode du simplexe Cas général
Remarques :
Dénition
1 Une solution de base xB associée à la base B est dite non dégénérée
si :
x B = B −1 b > 0
c-à-d le second membre du système réduit b̄ > 0
autrement dit, si toutes les variables de base sont strictement positives.
Preuve du Théorème :
X
dN xN = di xi ≤ 0
i∈N
D'où :
z(x1 , ..., xn ) = dN xN + z̄ ≤ z̄ = z(x1∗ , ..., xn∗ ).
Etapes du simplexe (cas général) :
Si le critère d'optimalité (dN ≤ 0) n'est pas vérié on va procéder soit à
une itération, soit on va découvrir que max z = +∞.
Supposons alors qu'il existe au moins une composante dj de dN telle que
dj > 0, j ∈ N .
dj = max{dk ; k ∈ N }
1 ākj ≤ 0, ∀ k = 1, ..., m
(Tous les termes de la colonne j de la variable entrante sont ≤ 0).
Dans ce cas l'ensemble réalisable est non borné et max z = +∞
2 Il existe k ∈ {1, ..., m} tel que ākj > 0
Dans ce cas on va procéder à une itération et
b̄p b̄p
= min{ ; āpj > 0}
āpj āpj
(On fait le rapport des coecients du s.m du tableau simplexe avec les
coecients de la colonne j de la variable entrante et on choisit le plus petit)
max z̃ = c̃ T x̃
Ãx̃ = b
x̃ ≥ 0
B = Im ; N = A ; xB = B −1 b = b ; xN = x = 0
Si b≥0 alors cette solution est en plus réalisable.
Problème de dégénérescence :
Dans le cas où le PL est dégénéré, on peut avoir :
b̄p b̄p
= min{ ; āpj > 0} = 0
āpj āpj
Alors la fonction objectif z ne varie pas après le changement de base et par
conséquent on peut rencontrer les situations suivantes :
Exemples :
T1
Base x1 x2 x3 x4 x5 x6 s.m R
x5 4 7 0 0 1 4 4 4/7
x4 2 8 0 1 0 3 0 0
x3 - 2 9 1 0 0 2 0 0
−z -5 2 0 0 0 5 -3
← e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
−z 2 3 1 0 0 1 0
↓
T3
Base x1 x2 x3 e1 e2 e3 s.m
e1 1 2 5 1 0 0 3
e2 3 1 3 0 1 0 10
e3 2 8 1 0 0 1 8
−z 3 3 2 0 0 0 0
↓
T4
Base x1 x2 e1 e2 s.m
e1 0 -2 1 -1 20
x1 1 0 0 2,5 3
−z 0 16 0 -3 -32
Base x1 x2 e1 e2 s.m
x1 1 0 1 1 3
x2 0 1 -1 -2 2
−z 0 0 -1 0 -8
Base x1 x2 e1 e2 s.m
e2 1 0 1 1 3
x2 2 1 1 0 8
−z 0 0 1 0 -8
Exemple :
Soit le problème :
min −x1 − 2x2
−3x1 + 2x2 ≤ 2
(PM) −x1 + 2x2 ≤ 4
x + x2 ≤ 5
1
x1 , x2 ≥ 0
En rajoutant les variables d'écart on obtient la forme standard :
min −x1 − 2x2
−3x1 + 2x2 + e1 = 2
(PMS) −x1 + 2x2 + e2 = 4
x + x2 + e3 = 5
1
x1 , x2 , e1 , e2 , e3 ≥ 0
On remarque que tous les termes du second membre (2, 4 et 5) sont
positifs. Dans notre cas, l'obtention d'une solution de base réalisable
initiale est triviale. Elle correspond aux variables de base e1 , e2 , e3 et
variables hors base x1 , x2 .
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 47 / 58
La méthode du simplexe Simplexe avec minimisation
Ãx̃ = b̃
x̃ ≥ 0
x1
−3 2 1 0 0
x2
2
à = −1 2 0 1 0 ; x̃ =
e1 ; b̃ = b =
4
1 1 0 0 1 e2 5
e3
z = c̃ T x̃ = −x1 − 2x2 + 0e1 + 0e2 + 0e3 avec c̃ = (x1 , x2 , 0 , 0 , 0)T
1 0 0
Une base initiale est donnée par la matrice identité : I = 0 1 0
0 0 1
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 2 , 4 , 5)
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 48 / 58
La méthode du simplexe Simplexe avec minimisation
Tableau 1
↓
Base x1 x2 e1 e2 e3 s.m R
← e1 -3 2 1 0 0 2 1
e2 -1 2 0 1 0 4 2
e3 1 1 0 0 1 5 5
−z -1 -2 0 0 0 0
Tableau 2
↓
Base x1 x2 e1 e2 e3 s.m R
x2 -3/2 1 1/2 0 0 1 −2/3
← e2 2 0 -1 1 0 2 1
e3 5/2 0 -1/2 0 1 4 8/5
−z -4 0 1 0 0 2
Tableau 3
↓
Base x1 x2 e1 e2 e3 s.m R
x2 0 1 -1/4 3/4 0 5/2 10
x1 1 0 -1/2 1/2 0 1 -2
−z 0 0 -1 2 0 6
Tableau 4
Base x1 x2 e1 e2 e3 s.m
x2 0 1 0 1/3 1/3 3
x1 1 0 0 -1/3 2/3 2
e1 0 0 1 -5/3 4/3 2
−z 0 0 0 1/3 4/3 8
Tous les coecients de la dernière ligne sont positifs ou nuls : le tableau 4
est optimal et
∗
x1 =2; x2
∗ =3; ∗
e1 =2; e2
∗ = e∗3 = 0 ; z
∗ = −8
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 50 / 58
La méthode du simplexe Initialisation de la méthode du simplexe
max z = c T x
Ax ≤ b
x ≥0
Si le second membre est positif alors cette base est réalisable et correspond
à l'origine : xN = (x1 , ..., xn ) = 0 et xB = (e1 , ..., em ).
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 51 / 58
La méthode du simplexe Initialisation de la méthode du simplexe
Méthode du grand M :
Considérons le PL suivant :
max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
x1 + 2x2 = 6
x1 , x2 ≥ 0
On remarque que les termes du second membre sont tous positifs, mais la
1ère contrainte est de type ≥ et la 2ème contrainte est de type =
On rajoute une variable d'écart e1 à la 1ère contrainte (pour avoir l'égalité).
On obtient alors le PL :
max z = x1 + x2 −Ma1 − Ma2
2x1 + x2 − e1 + a1 = 4
x1 + 2x2 + a2 = 6
x1 , x2 , e1 , a1 , a2 ≥ 0
Ãx̃ = b̃
x̃ ≥ 0
x1
x2
2 1 −1 1 0 4
à = ; x̃ = e1 ; b̃ = b =
1 2 0 0 1 6
a1
a2
Pr. KADIRI - FSJES-AS Modélisation et optimisation MASS - S4 2020-2021 54 / 58
La méthode du simplexe Initialisation de la méthode du simplexe
Variables de base : a1 = 4 ; a2 = 6
Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant exprimer les
variables de base en fonction des variables hors base.
2x1 + x2 − e1 + a1 = 4 a1 = 4 − 2x1 − x2 + e1
⇒
x1 + 2x2 + a2 = 6 a2 = 6 − x1 − 2x2
z = x1 + x2 −Ma1 − Ma2
= x1 + x2 − M(4 − 2x1 − x2 + e1 ) − M(6 − x1 − 2x2 )
z = (3M + 1)x1 + (3M + 1)x2 − Me1 − 10M
↓
Tableau 1
Base x1 x2 e1 a1 a2 s.m R
← a1 2 1 -1 1 0 4 2
a2 1 2 0 0 1 6 6
−z 3M+1 3M+1 -M 0 0 10 M
Tableau 2
↓
Base x1 x2 e1 a1 a2 s.m R
x1 1 1/2 -1/2 1/2 0 2 4
Tableau 3
↓
Base x1 x2 e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
−z 0 0 1/3 0 0 -10/3
Tableau 4
Base x1 x2 e1 a1 a2 s.m
x1 1 2 0 × × 6
e1 0 3 1 × × 8
−z 0 -1 0 0 0 -6