Vous êtes sur la page 1sur 12

3.

Résolution des programmes linéaires par la méthode du simplexe

Date : October 12, 2022

Nous nous intéressons dans ce chapitre à la résolution d’un PL sous sa forme standard ma-
tricielle :



max Z(x) =< c, x >,

s.c. :
(PL) (3.1)


Ax = b,

x ≥ 0,

où A ∈ Mm,n (R) (m ≤ n), c = (c1 , . . . , cn )t ∈ Rn , b = (b1 , . . . , bm )t ∈ Rm et x = (x1 , . . . , xn )t ∈ Rn


est l’inconnue à trouver.

On supposera par la suite que la matrice A est de plein rang (rang(A) = m) ç-à-d que ces m
lignes sont indépendantes.

3.1 Solutions de base réalisables


Definition 3.1.1

• On appelle base B de A toute


 sous-matrice
 carrée B ∈ Mm (R) inversible.
xB
• On réécrit A = (B|N), x = .
xN
• Les variables du vecteur xB sont dites de base.
• Les variables du vecteur xN sont dites hors-base.
20 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

Proposition 3.1.1 Une solution réalisable du PL (ç-à-d vérifiant Ax = b et x ≥ 0) vérifie

xB = B−1 .b − B−1 NxN .

Proof
Ax = b ⇐⇒ Bxb + NxN = b ⇐⇒ xB + B−1 NxN = B−1 b.
Definition 3.1.2
 
xB
• On appelle solution de base associée à la base B la solution x = avec xB = B−1 .b et
xN
xN = 0Rn−m  −1 
B .b
• La solution de base x = est dite solution de base réalisable (ou admissible) ssi
0Rn−m
XB = B−1 .b ≥ 0.
• Si certaines variables de XB = B−1 .b sont nulles alors la solution de base réalisable est
dite dégénérée. Sinon elle est dite non dégénérée.

R
• Si A est carrée (m = n) et inversible, nous avons une unique solution de base.
n!
• Le nombre maximal de bases possibles donc de solutions de base est Cnm = m!(n−m)! .
• Le fait qu’une solution de base réalisable X soit dégénérée correspond graphiquement
au fait que, pour un PL sous forme canonique, le nombre de contraintes d’égalités que
cette solution satisfait est strictement supérieur au nombre de variables.

Theorem 3.1.2
Les points extrêmes du polyèdre DR représentant le domaine réalisable du PL sous sa forme
canonique sont les solutions de base admissibles du système linéaire définissant les contraintes
du DR relatives à la forme standard du PL.
Illustration : On considère le PL :



 max Z(x, y) = 4x + 5y,




 s.c. :

2x + y ≤ 8,
(PL) (3.2)


 x + 2y ≤ 7




 y≤3

x, y ≥ 0,

1. Déterminer le polyèdre DR et les points extrêmes du PL sous sa forme canonique.


2. Ecrire ce PL sous sa forme standard.
3. Déterminer les solutions de base du PL sous sa forme standard, puis, parmi ces solutions de base,
identifier celles qui sont admissibles.
4. Vérifier que ces solutions de bases admissibles représentent les points extrêmes du polyèdre
défini par les contraintes du PL sous la forme canonique.

Réponse :
1. Cette question sera traitée en classe.
On définira ∆1 : 2x + y = 8, ∆2 : x + 2y = 7 et ∆3 : y = 3.
3.1 Solutions de base réalisables 21

Les points extrêmes sont : O = (0, 0), A = (0, 3), B = (1, 3), C = (3, 2) et D = (4, 0).
2. Forme standard du PL :




max Z(x, y) = 4x + 5y,




s.c. :

2x + y + e = 8,
1
(PL) (3.3)


x + 2y + e2 = 7

y + e3 = 3




x, y, e , e , e ≥ 0.
1 2 3

La forme matricielle standard du PL est :




max Z(u) =< c, u >,

s.c. :
(PL) (3.4)


A.u = b,

u ≥ 0,

   
4 x    
5 y 21100 7
   
avec c = 
 0, u = e1 , A = 1 2 0 1 0 et b = 8.
 
0 e2  01001 3
0 e3
3. Nous avons ici m = 3 et n = 5. Les variables sont {x, y, e1 , e2 , e3 }. Nous avons au plus C53 = 10
bases possibles.
Si par exemple
 les
 variables debase sont {e1 , e2 , e3 }, les variables hors-base seront {x, y} et on
100 21
aura B = 0 1 0 = I3 et N = 1 2.
001 01
 
0
Une solution u de base doit vérifier uN = ç-à-d x = y = 0 et que
0
   
e1 8
uB = e2  = B−1 b = b = 7.
e3 3
Cette solution est admissible car e1 , e2 , e3 ≥ 0.
Nous allons énumérer les solutions de base dans le tableau suivant :
22 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

Sous- Sous - x y e1 e2 e3 vars. vars de sln sln point


matrice B matrice N hors-base de base de base ? admissible ? extrême
   
100 21
0 1 0 1 2 0 0 8 7 3 {x, y} {e1 , e2 , e3 } oui oui (0, 0) = O
001 01
   
100 21
2 1 0 1 0 0 8 0 -9 -5 {x, e1 } {y, e2 , e3 } oui non
101 00
   
110 20
2 0 0 1 1 0 3.5 4.5 0 -0.5 {x, e2 } {y, e1 , e3 } oui non
101 00
   
110 20
2 0 1 1 0 0 3 5 1 0 {x, e3 } {y, e1 , e2 } oui oui (0, 3) = A
100 01
   
200 11
1 1 0 2 0 4 0 0 3 3 {y, e1 } {x, e2 , e3 } oui oui (4, 0) = D
001 10
   
210 10
1 0 0 2 1 7 0 -6 0 3 {y, e2 } {x, e1 , e3 } oui non
001 10
   
210 10
1 0 1 2 0 0 0 {y, e3 } {x, e1 , e2 } non non
000 11
   
210 10
1 2 0 0 1 3 2 0 0 1 {e1 , e2 } {x, y, e3 } oui oui (3, 2) = C
011 00
   
210 10
1 2 1 0 0 2.5 3 0 -1.5 0 {e1 , e3 } {x, y, e2 } oui non
010 01
   
211 00
1 2 0 1 0 1 3 3 0 0 {e2 , e3 } {x, y, e1 } oui oui (1, 3) = B
010 01
4. On voit que les solutions de base admissibles sont les points extrêmes.
Definition
 −1  3.1.3 Soit x ∈ Rn une solution de
 base
 réalisable associée à une base B ç-à-d
B b c
x= avec B−1 b ≥ 0Rm . On note c = B .
0 cN
On définit le vecteur des prix marginaux relatif à x qu’on note dN ∈ Rn−m , par :

dN := cN − (B−1 N)t cB .

R Les éléments de dN sont aussi appelés coûts réduits relatifs aux variables hors-base.

Proposition 3.1.3
Soit x une solution de base réalisable associée à une base B et soit dN le vecteur des prix marginaux
associé. Alors pour toute solution réalisable x ∈ Rn , on a :

< c − (B−1 A)t cB ; x >=< dN , xN > .

Proof.
3.1 Solutions de base réalisables 23

On rappelle que < u, v >= ut .v.


On a < c − (B−1 A)t cB ; x >=< c, x > − < (B−1 A)t cB ; x >= ct x − ctB .B−1 Ax.
Comme A = (B|N), on obtient

B−1 A = (B−1 B|B−1 N) = (I|B−1 N) .


   
cB x
En utilisant le fait que c = et x = B , on obtient :
cN xN
   
xB x
ct
x − ctB .B−1 Ax = (ctB |ctN ). t −1
− cB (I|B N). B
xN xN
= ctB xB + ctN xN − ctB (XB + B−1 N.xN )
(3.5)
= ctB XB + ctN .xN − ctB xB − ctB B−1 N.xN
= ctN xN − ctB B−1 N.xN
=< cN − (B−1 N)t cB , xN >=< dN , xN > .

Theorem 3.1.4
On considère le PL



 max Z(x) =< c, x >,

s.c. :
(PL) (3.6)
Ax = b,



x ≥ 0 n .
R

Soit B une base et soit x la solution de base réalisable associée à cette base. Alors pour toute
solution réalisable x du PL, on a :

Z(x) = Z(x)+ < dN , xN >


(3.7)
= Z(x)+ < c − (B−1 A)t .cB , x > .

Proof.
On rappelle ici que < u, Mv >=< Mt u, v >.
Soit x une solution réalisable. On a :

Z =< c, x >=< cB , xB > + < cN , xN > .

Comme x est une solution réalisable, elle vérifie xB = B−1 b − B−1 NxN . Ainsi :

Z =< cB ; B−1 b − B−1 NxN > + < cN ; xN >


=< cB , B−1 .b > − < cB ; B−1 NxN > + < cN ; xN >
=< cB , B−1 .b > − < (B−1 N)t .cB ; xN > + < cN ; xN > (3.8)
=< cB , B−1 .b > + < cN − (B−1 N)t .cB ; xN >
=< Z(x)+ < dN , xN > .


24 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

Corollary 3.1.5 Soit x ∈ Rn une solution de base réalisable associée à une base B. Si toutes les
variables de dN sont négatives (dN ≤ 0 ) alors x est optimal.

Proof.
On suppose que pour tout i ∈ {1, . . . , n − m}, (dN )i ≤ 0. Comme (xN )i ≥ 0 alors
n−m
< dN , xN >= ∑ (dN )i (xN )i ≤ 0 .
i=1

Ainsi Z(x) ≤ Z(x). ■

R La condition précédente est une condition suffisante. Elle devient aussi nécessaire si la
solution de base réalisable x est non dégénérée.

3.2 La méthode du simplexe


3.2.1 Principe
Definition 3.2.1 Soient x(0) et x(1) deux solutions de bases correspondant respectivement aux
bases B0 et B1 . On dit que les sommets x(0) et x(1) sont voisins (ou adjacents) si les deux bases
ne diffèrent que par une seule colonne (ou de façon équivalente une seule variable).
t
On a vu que l’on doit chercher l’optimum parmi les solutions de base réalisables x = B−1 .b, 0Rn−m .
Comme une solution de base réalisable correspond à une base, la recherche concerne Cnm bases
à explorer. Ceci est un nombre très large (pour m et n grands) d’où la nécessité d’élaborer une
procédure (algorithme) de recherche "plus intelligente" qu’une énumération de toutes les solutions
possibles. L’algorithme du simplexe (G.B. Dantzig, 47) est inspiré du principe d’amélioration
locale, qui utilise, dans le cas de maximisation, le résultat suivant :

Theorem 3.2.1 Si x(0) est un sommet non optimal, alors il existe un sommet voisin (ou adjacent)
de x(0) , noté x(1) et vérifiant : Z(x(1) ) > Z(x(0) ).

La méthode du simplexe est comme suit :


On part d’un sommet x(0) quelconque. Si ce n’est pas l’optimum (dN (x(0) ) ̸≤ 0Rn−m ), on passe à
un sommet voisin pour lequel Z augmente et on répète cette itération jusqu’à ce que le critère
d’optimalité (dN (x) ≤ 0Rn−m ) soit satisfait.
Le passage d’un sommet à un autre sommet voisin correspond à un changement de base qui se fait
comme suit : Une variable hors-base (variable entrante xe ) prend la place de l’une des variables de
base (variable sortante xs ).
Lors de ce changement, on effectue un pivotage ç-à-d qu’on exprime les variables de base et la
fonction objectif en fonction des variables hors-base.

Choix des variables entrante et sortante xe et xs


La variable xe est choisie en fonction de sa contribution éventuelle à la fonction objectif (1er critère
de Dantzig) :
∂ Z(x)
Comme Z(x) = Z(x)+ < dN , xN >= Z(x) + ∑n−m j=1 (dN ) j .x j , on aura : ∂ x j (x) = 0 + (dN ) j . Ainsi,
on choisit xe telle que 
de = max (dN ) j ; (dN ) j > 0 .
1≤ j≤n−m

On désire augmenter xe (qui était égale à ’0’) le maximum possible tout en satisfaisant les
m contraintes et la positivité des variables. Si on pose xe = λ , on veut augmenter λ . La valeur
3.2 La méthode du simplexe 25

maximale xe = λmax qui satisfait toutes les contraintes et la positivité des variables est donnée par
le 2ème critère de Dantzig :
 
bi
λmax = min , i = 1, . . . , m/ai,e > 0 .
ai,e
On déduit la variable sortante xs qui vaudra 0 pour ce choix xe = λmax . S’il n’y a pas de candidat
pour sortir : ai,e ≤ 0, ∀i = 1, . . . , m, le problème est non borné.

R Par la suite, pour simplifier, on adoptera la notation suivante : Pour une itération k ≥ 0,
dk := dNk .

Exemple :
On reprend le PL :



 max Z(u) = 4x + 5y,




 s.c. :

2x + y + e = 8,
1
(PL) (3.9)
x + 2y + e2 = 7,






 y + e3 = 3,
u = (x, y, e , e , e )t ≥ 0 5 .

1 2 3 R

Itération 0 (Solution de départ)


   
100 21
On choisit comme base de départ la base B0 = 0 1 0. Ainsi N0 = {x, y} = 1 2.
001 01
   
x 0
 y  0
(0)
   
La solution correspondant à cette base s’écrit : u =  e1  = 8.
  
e2  7
e3 3
(0)
Ceci correspond à Z(u ) = 0  
    0  
4 210   4
et d0 := dN0 = cN0 − ((B0 )−1 N0 )t .cB0 = − . 0 = .
5 121 5
0
(0)
d0 ≥ 0R2 donc la solution u n’est pas optimale.
Itération 1
On choisit xe telle que de = max1≤ j≤2 {(d0 )1 , (d0 )2 } = max{4, 5} = 5 donc xe = y et la variable x
reste une variable hors-base donc x = 0.
Pour déterminer la variable sortante, on effectue un pivotage : On exprime e1 , e2 et e3 en fonction
de {x, y}. On obtient :

e1 = 8 − 2x − y ≥ 0,

e2 = 7 − x − 2y ≥ 0 (3.10)

e3 = 3 − y ≥ 0

Les contraintes de positivité sur e1 , e2 , e3 avec le fait que x = 0 donnent


 

 e 1 = 8 − y ≥ 0, y ≤ 8,

e2 = 7 − 2y ≥ 0 =⇒ y ≤ 72 (3.11)
 
e3 = 3 − y ≥ 0 y≤3
 
26 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

Ainsi y = λmax = 3 et

e1 = 5 − 2x

e2 = 1 − x =⇒ xs = e3 (3.12)

e3 = 0

   
101 20
B1 = {e1 , e2 , y} = 0 1 2 . Ainsi N1 = {x, e3 } = 1 0.
  
001 01
   
x 0
 y  3
   
La solution correspondant à cette base s’écrit : u(1) = e1  = 5.
  
e2  1
e3 0
Nous allons maintenant exprimer Z et e1 , e2 et y en fonction des variables hors-base x et e3 (pivotage).
Ceci donne :



 Z = 15 + 4x − 5e3 = 15+ < c, u(1) >,

e = 5 − 2x + e
1 3
(3.13)


 e 2 = 1 − x + 2e3

y = 3 − e
3
 
  0  
4 4
Ainsi Z u(1) = 15 et d1 = cN1 − (B−1 −1

1 N1 ).cB1 = − B1 .N1 . 0 =
  .
−5 −5
0
d1 ̸≤ 0R2 donc la solution u(1) n’est pas optimale.
Itération 2
(d2 )x = 4 est la seule variable positive donc xe = x et e3 reste hors-base donc e3 = 0.
Nous allons maintenant déterminer la valeur maximale de x et par la même occasion la variable
sortante :

e1 = 5 − 2x + e3 = 5 − 2x ≥ 0
(
x ≤ 52

e2 = 1 − x + 2e3 = 1 − x ≥ 0 =⇒ =⇒ x ≤ 1 =⇒ x = λmax = 1 =⇒ e2 = 0 =⇒ xs = e2
 x≤1
y = 3 − e3 = 3 ≥ 0

(3.14)
   
00 121
Ainsi N2 = {e2 , e3 } = 1 0 et B2 = {e1 , x, y} = 0 1 2.
01 001
Pivotage :




e2 = 1 − x + 2e3 ⇐⇒ x = 1 − e2 + 2e3

e = 5 − 2x + e = 5 − 2(1 − e + 2e ) + e = 3 + 2e − 3e
1 3 2 3 3 2 3
(3.15)


y = 3 − e3 = 3

Z = 15 + 4x − 5e = 15 + 4(1 − e + 2e ) − 5e = 19 − 4e + 3e
3 2 3 3 2 3

La solution est ici u(2) = (1, 3, 3, 0, 0)t avec d2 = (−4, 3)t ̸≤ (0, 0)t donc u(2) n’est pas optimale.
3.3 Méthode du simplexe : Forme avec tableaux 27

Itération 3
On a (d2 )e3 = 3 est la seule variable positive donc xe = e3 et e2 reste hors-base donc e2 = 0.
Nous allons maintenant déterminer la valeur maximale de e3 et par la même occasion la variable
sortante :

x = 1 − e2 + 2e3 = 1 + 2e3 ≥ 0

e1 = 3 + 2e2 − 3e3 = 3 − 3e3 ≥ 0 =⇒ e3 ≤ 1 =⇒ e3 ≤ 1 =⇒ e3 = λmax = 1 =⇒ e1 = 0 =⇒ xs = e1

y = 3 − e3 ≥ 0 =⇒ e3 ≤ 3

(3.16)
   
10 210
Ainsi N3 = {e1 , e2 } = 0 1 et B3 = {x, y, e3 } = 1 2 0.
00 011
Pivotage :




e1 = 3 + 2e2 − 3e3 =⇒ e3 = 1 − 13 e1 + 23 e2
x = 1 − e + 2e = 1 − e + 2(1 + 2 e − 1 e ) = 3 − 2 e + 1 e

2 3 2 3 2 3 1 3 1 3 2
1 2
(3.17)
y = 2 + 3 e1 − 3 e2


Z = 19 − 4e + 3(1 − 1 e + 2 e ) = 22 − e − 2e

2 3 1 3 2 1 2

La solution est ici u(3) = (3, 2, 0, 0, 1)t avec d3 = (−1, −2)t ≤ (0, 0)t donc u(3) optimale et la
fonction objectif optimale est 22.

3.2.2 Algorithme
• Données : Un PL + une solution de base admissible.
• Résultats possibles (en absence de dégénérescence) :
1. Une solution de base admissible, ou
2. Un PL non borné
• Étapes d’une itération :
1. Etape 1 : Choix d’une colonne (variable) entrante
2. Etape 2 : Choix d’une colonne (variable) sortante
3. Etape 3 : Mise à jour de la base
4. Etape 4 : Pivotage et test d’optimalité

3.3 Méthode du simplexe : Forme avec tableaux


Il est possible d’utiliser une forme avec tableaux pour la méthode du simplexe. On adoptera la
représentation avec tableaux dans laquelle la solution est représentée comme suit :

bi
X1 ... ... Xm Xm+1 ... Xn bi aip
X1 1 0 ... 0 ...
..
.
Xm 0 ... ... 1
0 0 ... 0 cm+1 = (dN )m+1 ... cn = (dN )n -Z
28 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

Pour illustrer la méthode du simplexe avec tableaux, nous reprenons l’exemple :





 max Z(u) = 4x + 5y,




 s.c. :

2x + y + e = 8,
1
(PL) (3.18)


 x + 2y + e2 = 7




 y + e3 = 3
u = (x, y, e , e , e )t =≥ 0 5 ,

1 2 3 R

Itération 0 : B0 = {e1 , e2 , e3 }

bi
e1 e2 e3 x y bi = (xB )i aip
8
e1 1 0 0 2 1 8 =8
1
7
e2 0 1 0 1 2 7 2 = 3.5
3
e3 0 0 1 0 1 3 1
0 0 0 4 5 -Z=0

On lit sur la colonne "bi " les valeurs des variables de base de la solution et on complète par
des "0". La solution de base associée à B0 est donc u(0) = (0, 0, 8, 7, 3)t .
On choisit la colonne de la variable entrante : C’est la colonne du pivôt Cp . Elle correspond à la
valeur maximale des prix marginaux relatifs aux variables hors-base. Ici, la valeur maximale est 5.
Elle correspond à la variable y.
On choisit la variable sortante : Elle correspond à la ligne relative au minimum des abipi . Cette ligne
est appelée ligne du pivôt L p . Dans notre cas, la ligne du pivôt est la ligne 3 correspondant à la
variable sortante e3 .
Pivotage
La valeur qui se trouve sur Cp ∩ L p est appelée pivôt. On la notera α p .
On effectue un pivotage en utilisant les opérations sur les lignes hors-pivôt comme suit : Si la valeur
du pivôt α p ̸= 0, on effectue l’opération L p ← L p /α p de sorte à avoir un pivôt égal à 1. Sur les
autres lignes (Li , i ̸= p), on effectue les opérations Li ← Li − βi,p L p pour à avoir sur la colonne Cp
des "0" hors de la ligne du pivôt et "1" pour le pivôt. Ainsi, la nouvelle base sera aussi la matrice
identité. Ici les opérations s’écrivent : L1 ← L1 − L3 ; L2 ← L2 − 2L3 et L4 ← L4 − 5L3 .
Dans le nouveau tableau, le nom de la ligne relatif à la variable sortante est remplacé par le nom de
la variable entrante.

Itération 1 : B1 = {e1 , e2 , y}
Le nouveau tableau s’écrit :

bi
e1 e2 e3 x y bi = (xB )i aip
5
e1 1 0 -1 2 0 5 2 = 2.5
e2 0 1 -2 1 0 1 1
y 0 0 1 0 1 3 +∞
0 0 -5 4 0 -Z=-15
3.3 Méthode du simplexe : Forme avec tableaux 29

Ici, u(1) = (0, 3, 5, 1, 0)t avec d1 ̸≤ 0R2 . Cette solution n’est donc pas optimale. La colonne
du pivôt correspond à la variable "x". La ligne du pivôt est la ligne L2 correspondant à la variable
e2 . On effectue les opérations : L1 ← L1 − 2L2 ; L3 ← L3 et L4 ← L4 − 4L2 .
Itération 2 : B2 = {e1 , x, y}

bi
e1 e2 e3 x y bi = (xB )i aip
e1 1 -2 3 0 0 3 1
x 0 1 -2 1 0 1 − 21
y 0 0 1 0 1 3 3
0 -4 3 0 0 -Z=-19

Ici, u(2) = (1, 3, 3, 0, 0)t avec d2 ̸≤ 0R2 . Cette solution n’est donc pas optimale. La colonne du pivôt
correspond à la variable e3 . La ligne du pivôt est la ligne L1 correspondant à la variable e1 . Le
pivotage est effectué à travers les opérations suivantes : L1 ← 13 L1 , L2 ← L2 + 23 L1 ; L3 ← L3 − 13 L1
et L4 ← L4 − L1 .
Itération 3 : B3 = {e3 , x, y}

e1 e2 e3 x y bi = (xB )i
e3 1/3 -2/3 1 0 0 1
x 2/3 -1/3 0 1 0 3
y -1/3 2/3 0 0 1 2
-1 -2 0 0 0 -Z=-22

La solution u(3) = (3, 2, 0, 0, 1) correspond à d3 ≤ 0R2 . Elle est donc optimale avec Z = 22.

R Graphiquement, le passage d’une base à une autre correspond au passage d’un point extrême
à un autre.
• Itération 0 : B0 = {e1 , e2 , e3 } ⇐⇒ u(0) = (0, 0, 8, 7, 3)t ⇐⇒ O(0, 0)
• Itération 1 : B1 = {e1 , e2 , y} ⇐⇒ u(1) = (0, 3, 5, 1, 0)t ⇐⇒ A(0, 3)
• Itération 2 : B2 = {e1 , x, y} ⇐⇒ u(2) = (1, 3, 3, 0, 0)t ⇐⇒ B(1, 3)
• Itération 3 : B3 = {e3 , x, y} ⇐⇒ u(3) = (3, 2, 0, 0, 1)t ⇐⇒ C(3, 2)

Figure 3.1: Exemple de résolution graphique.


30 Chapter 3. Résolution des programmes linéaires par la méthode du simplexe

3.4 Compléments sur la méthode du simplexe


3.4.1 Inconvénients de la méthode du simplexe
La méthode du simplexe présente certains inconvénients :
• Le temps d’exécution de la méthode du simplexe est en général plus court que le fait
d’énumérer TOUTES les solutions de base. Ce temps de calcul est donc toujours majoré par
n n−0.5
Cnm . Ce dernier est á son tour majoré par Cn2 ∼ 2√π (si n est pair). Il a été prouvé que l’on
peut construire des cas pathologiques (avec n variables et 2n contraintes) pour lesquels la
méthode du simplexe met 2n − 1 itérations pour converger. Le temps de calcul n’est donc pas
polynomial. Il est exponentiel.
• A une Solution de base réalisable dégénérée, peuvent correspondre plusieurs bases. Pour cette
solution, une ou plusieurs composantes de base sont nulles. De tels PL sont dits dégénérés.
Ceci fait que pour le choix de la variable sortant qui repose sur l’équation :

bs bi
= argmin{ ≥ 0} ,
asp aip

on aura plusieurs variables qui s’annulent donc absps = 0. Ainsi, la croissance de Z sera nulle
(dans le cas de non dégénérescence la croissance de Z est strictement positive). Il est possible
dans ce cas, qu’après quelques itérations qui laissent Z constante, de revenir à une base déjà
rencontrée. Ainsi l’algorithme bouclera indéfiniment. Ce phénomène s’appelle cyclage.

3.4.2 Logiciels implémentant la méthode du simplexe


Sous Matlab, la commande pour la méthode du simplexe est simlp. Pour la programmation linéaire
en général, on peut utiliser la commande linprog.
Sous Python, la méthode du simplexe existe sous la librairie scipy.optimize.linprog.
Il existe aussi des logiciels dédiés à l’optimisation en général tels que IBM ILOG CPLEX Optimizer
et LINGO.

Vous aimerez peut-être aussi