Académique Documents
Professionnel Documents
Culture Documents
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,
On supposera par la suite que la matrice A est de plein rang (rang(A) = m) ç-à-d que ces m
lignes sont indépendantes.
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,
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
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 debase 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
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 :
Proof.
3.1 Solutions de base réalisables 23
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 :
Proof.
On rappelle ici que < u, Mv >=< Mt u, v >.
Soit x une solution réalisable. On a :
Comme x est une solution réalisable, elle vérifie xB = B−1 b − B−1 NxN . Ainsi :
■
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
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.
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) ).
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
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é
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
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)
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.