Vous êtes sur la page 1sur 66

Algorithme du simplexe

Analyse
Rappels d’algèbre linéaire
x1
• Vecteur x  Rn = ⋮
xn
• Produit scalaire
o Soit x et y  Rn
n

xT y = yT x = ෍ xj yj
j=1

• Dépendance linéaire
o Un ensemble de vecteurs x1, x2, …, xk  Rn sont linéairement dépendants s’il existe k
scalaires 1, 2, …, k  R1 non tous nuls tels que
0
1x1 + 2x2 + … + k xk = ⋮ = 0
0
o S’il n’existe pas de tels scalaires, les vecteurs sont linéairement indépendants.

2
Rappels d’algèbre linéaire
a11 … a1n
• Matrice Amn = ⋮ ⋱ ⋮
am1 … amn
o L’élément aij se trouve à l’intersection de la ligne i et de la colonne j de la matrice A.

o Note. Un vecteur de dimension n peut être vu comme une matrice de


dimension n  1.

• Une matrice carrée est une matrice telle que m = n.

• Une matrice identité I est une matrice carrée telle que


aij = 1 si i = j et aij = 0 si i  j.

3
Rappels d’algèbre linéaire
• Opérations sur les matrices
o Soit les matrices A, B, C
Somme
Amn + Bmn = Cmn où cij = aij + bij i = 1, …, m; j = 1, …, n
Produit
n

Amn ∙ Bnp = Cmp où cij = ෍ aik bkj i = 1, …, m; j = 1, …, p


k=1

Produit par un scalaire


Amn = Cmn où cij = aij i = 1, …, m; j = 1, …, n

Transposition
ATmn = Cnm où cji = aij i = 1, …, m; j = 1, …, n
4
Rappels d’algèbre linéaire
• Le déterminant d’une matrice carrée Ann est dénoté det(A).
• La matrice Aij de dimension (n – 1) × (n – 1) est obtenue à partir de A en retirant la
ligne i et la colonne j.
1 j n

1 a11 a1n

i aij

n an1 ann

5
Rappels d’algèbre linéaire
• On calcule alors le déterminant de manière récursive de la façon suivante :
n

det (A) = ෍ (–1)i+j aij det (Aij) pour une ligne i quelconque
j=1

ou
m

det (A) = ෍ (–1)i+j aij det (Aij) pour une colonne j quelconque
i=1

• Exemple. Pour n = 2, on a :
a11 a12
A22 =
a21 a22
En prenant la ligne i = 1, on obtient :
det(A) = (–1)1+1a11a22 + (–1)1+2a12a21 = a11a22 – a12a21

6
Rappels d’algèbre linéaire
• Le rang d’une matrice est le nombre maximum de lignes (colonnes), considérées
comme des vecteurs, qui sont linéairement indépendantes.

• Une matrice Amn est dite de plein rang si son rang est égal à min{m, n}.

• Une matrice carrée Ann est dite non singulière si


o ses lignes (colonnes), considérées comme des vecteurs, sont toutes linéairement
indépendantes
o elle est de plein rang
o det(A)  0
o elle possède une matrice inverse A–1 avec AA–1 = A–1A = I

7
Modèle général sous forme standard
Min z = c1x1 + c2x2 + … + cnxn
s.a.
a11x1 + a12x2 + … + a1nxn = b1
a21x1 + a22x2 + … + a2nxn = b2
.…………………
am1x1 + am2x2 + … + amnxn = bm
x1, x2, …, xn  0

Min z = ෍ cj xj
j =1
s.a.
n

෍ aij xj = bi , i = 1, …, m
j =1

xj  0 , j = 1, …, n

8
Notation matricielle
• Posons :
x1
o xn1 = ⋮ le vecteur des variables de décision
xn
c1
o cn1 = ⋮ le vecteur des coefficients dans la ligne de l’objectif (coûts)
cn
a11 … a1n
o Amn = ⋮ ⋱ ⋮ la matrice des coefficients dans les contraintes
am1 … amn

b1
o bm1 = ⋮ le vecteur des termes de droite (constantes)
bm

9
Notation matricielle
n

Min z = ෍ cj xj
j =1
s.a.
n

෍ aij xj = bi , i = 1, …, m
j =1

xj  0 , j = 1, …, n

Min z = cT x Min z
s.a. s.a.
Ax = b  Ax = b
x0 cT x – z = 0
x0

10
Notation matricielle
Problème du restaurateur : Min z = – 8x – 6y
s.a.
x –8 5x + 3y + u = 30
y –6 2x + 3y +p = 24
x= u c= 0
p x + 3y + h = 18
0
h 0 x, y, u, p, h ≥ 0

5 3 1 0 0
A = 2 3 0 1 0
1 3 0 0 1 Min z = cT x
s.a.
30
Ax = b
b = 24
18 x0

11
Base et variables de base

Min z
s.a.
Ax = b
cT x – z = 0
x0
• Supposons que la matrice Amn, m  n, est de plein rang m.
• Une sous-matrice Bmm est une base de A si B est non singulière.
• En fait, la sous-matrice B correspond à un choix de m colonnes linéairement
indépendantes parmi les n colonnes de la matrice A.
• Puisque chaque colonne de la matrice A est associée à une variable, les variables qui
correspondent aux colonnes de B sont appelées variables de base.
• Les autres variables, soit celles qui ne correspondent pas aux colonnes de B, sont
appelées variables hors-base.
12
Base et variables de base
• Dans le problème du restaurateur, nous avons :

v.d. x y u p h -z t.d.
x y u p h
u 5 3 1 30
5 3 1 0 0
p 2 3 1 24 avec A = 2 3 0 1 0
h 1 3 1 18 1 3 0 0 1
-z -8 -6 1 0

Exemples de base
u p h x u h x p y
1 0 0 5 1 0 5 0 3
B1 = 0 1 0 B2 = 2 0 0 B3 = 2 1 3
0 0 1 1 0 1 1 0 3

13
Base et variables de base

• Supposons que la base Bmm est constituée des m premières colonnes de Amn .
• Posons:
xB Min z
o x= x s.a.
R
Ax = b
avec xTB = (x1 , x2 , …, xm ) vecteur des variables de base
cT x – z = 0
xT𝑅 = (xm+1 , xm+2 , …, xn ) vecteur des variables hors-base x0
cB
o c= c
R
avec cTB = (c1 , c2 , …, cm ) vecteur des coûts des variables de base
cTR = (cm+1 , cm+2 , …, cn ) vecteur des coûts des variables hors-base

o A = (B : R) avec Bmm base (colonnes des variables de base)


Rm(n–m) « reste » de A (colonnes des variables hors-base)

14
Base et variables de base

Min z
Min z s.a.
s.a. xB
Ax = b (B : R) x = b
 R

cT x – z = 0 xB
(cTB : cTR ) x – z = 0
x0 R

xB  0, xR  0

Min z Min z
s.a. s.a.
xB
(B : R) x = b BxB + RxR = b
R

xB cTB xB + cTR xR – z = 0
(cTB : cTR ) x – z = 0
R
xB  0, xR  0
xB  0, xR  0
15
Base et variables de base

v.d. = variables dépendantes Min z


t.d. = termes de droite s.a.
BxB + RxR = b
cTB xB + cTR xR – z = 0
xT xB  0, xR  0
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.


b1
Bmm Rm(n–m) b2
b

bm
–z c1 c2 … cm cm+1 cm+2 … cn 1 0
Amn
cT
cTB cTR
16
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

B R b

–z cTB cTR 1 0

• On veut produire le tableau du simplexe associé à la base B, c’est-à-dire le tableau où xTB =


(x1, x2, …, xm) sont les variables dépendantes.
a) Il faut une matrice identité sous x1, x2, …, xm dans la matrice des coefficients des
contraintes.
b) Il faut un vecteur 0T sous x1, x2, …, xm dans la ligne de l’objectif.
17
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

B R b

–z cTB cTR 1 0

a) On veut une matrice identité sous x1, x2, …, xm Min z


s.a.
BxB + RxR = b  B-1(BxB + RxR) = B-1b BxB + RxR = b
cTB xB + cTR xR – z = 0
 B-1Bx B + B-1Rx R = B-1b
xB  0, xR  0
 IxB + B-1RxR = B-1b 18
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z cTB cTR 1 0

a) On veut une matrice identité sous x1, x2, …, xm Min z


s.a.
BxB + RxR = b  B-1(BxB + RxR) = B-1b IxB + B−1RxR = B−1b
cTB xB + cTR xR – z = 0
 B-1BxB + B-1RxR = B-1b
xB  0, xR  0
 IxB + B-1RxR = B-1b
19
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z cTB cTR 1 0

b) Exiger un vecteur 0T sous xTB = (x1, x2, …, xm) Min z


dans la ligne de l’objectif signifie que l’objectif s.a.
IxB + B−1RxR = B−1b
ne doit plus s’exprimer en fonction de ces
cTB xB + cTR xR – z = 0
variables. Comment les éliminer?
xB  0, xR  0

20
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z cTB cTR 1 0

b) On a : Min z
s.a.
IxB + B−1RxR = B−1b
IxB + B-1RxR = B-1b  xB = B-1b – B-1RxR
cTB xB + cTR xR – z = 0
xB  0, xR  0

21
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z cTB cTR 1 0

b) On remplace xB dans la ligne de l’objectif par : Min z


xB = B-1b – B-1RxR s.a.
IxB + B−1RxR = B−1b
cTB xB + cTR xR – z = 0
cTB (B−1b – B−1RxR) + cTR xR – z = 0
xB  0, xR  0
 (cTR – cTB B−1R)xR – z = –cTB B−1b
22
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z 0T cTR – cTB B−1R 1 –cTB B–1b

T
cതTB cതR –zҧ
b) On remplace xB dans la ligne de l’objectif par : Min z
xB = B-1b – B-1Rx R
s.a.
IxB + B−1RxR = B−1b
cTB (B−1b – B−1RxR) + cTR xR – z = 0 (cTR – cTB B−1R)xR – z
= –cTB B−1b
 (cTR – cTB B−1R)xR – z = –cTB B−1b xB  0, xR  0 23
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z 0T cTR – cTB B−1R 1 –cTB B–1b

b) On a : cതTB cതTR –zҧ


Min z
(cTR – cTB B−1R)xR – z = –cTB B−1b s.a.
IxB + B−1RxR = B−1b
En posant T = (1, 2, …, m) = cTB B−1
(cTR – cTB B−1R)xR – z
on obtient finalement : = –cTB B−1b
xB  0, xR  0
(cTR – T R)xR – z = –T b 24
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z 0T cTR – T R 1 –T b

b) On a : cതTB cതTR –zҧ


(cTR – cTB B−1R)xR – z = –cTB B−1b Min z
s.a.
En posant T = (1, 2, …, m) = cTB B−1 IxB + B−1RxR = B−1b

on obtient finalement : (cTR – T R)xR – z = –T b


xB  0, xR  0
(cTR –  R)xR – z = – b
T T
25
Base et variables de base
xTB xTR

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

xB I B–1R B–1b bത

–z 0T cTR – T R 1 –T b

cതTB cതTR –zҧ

• Le vecteur  est appelé le vecteur des multiplicateurs du simplexe


• Il a une importance particulière et nous y reviendrons plus tard.

26
Base et variables de base
• Par analogie avec cതTR = cTR – cTB B−1R = cTR – T R on peut écrire pour cതTB :

cതTB = 0T = cTB – cTB B−1B = cTB – T B


• Ainsi:
cതT = (തcTB : cതTR ) = (cTB – T B : cTR – T R) = (cTB : cTR ) – T (B : R)
= cT – T A

• Considérant chacun des indices j du vecteur des coûts, nous avons la formule :

cതj = cj – T a • j j = 1, …, n

où a j dénote le vecteur qui correspond à la colonne j de la matrice Amn.


• Il faut noter que les coûts cതj , j = 1, … , n, sont appelés coûts relatifs ou coûts réduits.
27
Base et variables de base
• Tout tableau du simplexe est associé à une base de la matrice Amn.

• Les variables dépendantes dans le tableau du simplexe associé à une certaine base
Bmm correspondent aux colonnes de la base dans la matrice Amn.

• En conséquence, les variables dépendantes sont appelées variables de base.


De même, les variables indépendantes sont appelées variables hors-base.

28
Base et variables de base

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

A b

–z cT 1 0

• Nous avons supposé dans les développements précédents que les m premières
colonnes de la matrice Amn constituait une base et nous avons travaillé avec
cette base.
• En général, une base Bmm peut correspondre à n’importe quel choix de m
colonnes linéairement indépendantes parmi les n colonnes de la matrice Amn .
• Quel est le tableau du simplexe associé à une base B dans le cas général?
29
Base et variables de base

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

A b

–z cT 1 0

• Pour les coefficients dans les contraintes et les termes de droite, il suffit de multiplier par B–1.
• Pour les coûts dans la ligne de l’objectif, nous avons :
cതT = cT – TA
• Pour la valeur de l’objectif, nous avons:
–z = –Tb

30
Base et variables de base

v.d. x1 x2 … xm xm+1 xm+2 … xn –z t.d.

x𝐵 B–1A B–1b bത

–z cT – T A 1 –T b

cതT –zҧ
• Pour les coefficients dans les contraintes et les termes de droite, il suffit de multiplier par B–1.
• Pour les coûts dans la ligne de l’objectif, nous avons :
cതT = cT – TA
• Pour la valeur de l’objectif, nous avons:
–z = –Tb
31
Exemple
• Dans le problème du restaurateur, nous avons le tableau initial :

v.d. x y u p h -z t.d.
x y u p h
u 5 3 1 30
5 3 1 0 0
p 2 3 1 24 avec A = 2 3 0 1 0
h 1 3 1 18 1 3 0 0 1
-z -8 -6 1 0

Exemples de base
u p h x u h x p y
1 0 0 5 1 0 5 0 3
B1 = 0 1 0 B2 = 2 0 0 B3 = 2 1 3
0 0 1 1 0 1 1 0 3

32
Exemple

v.d. x1 x 2 … xm xm+1 xm+2 … xn –z t.d.

x𝐵 B–1A B–1b bത

–z cT – T A 1 –T b

cതT –zҧ

• Il faut d’abord calculer l’inverse de la base B.

33
Calcul de l’inverse d’une matrice

• La matrice inverse B–1 est calculée par la méthode de Gauss.


• Idée:
o On traite chacune des lignes ou des colonnes de la matrice B de façon
séquentielle.
o On applique des transformations permettant de produire une matrice
identité I à partir de B.
o Ainsi, la suite des transformations appliquées à la matrice B est équivalente
à multiplier la matrice B par son inverse B–1.
o Si on applique les mêmes transformations en parallèle à partir d’une matrice
identité I, on obtiendra donc B–1.

34
Calcul de l’inverse d’une matrice

B I
5 0 3 1 0 0
2 1 3 0 1 0
1 0 3 0 0 1

I
1 0 0
0
0
1
0
0
1
B–1

35
Calcul de l’inverse d’une matrice

Traitement de la première colonne


Nous avons:
B I
5 0 3 1 0 0
2 1 3 0 1 0
1 0 3 0 0 1
1
La première colonne de B doit être de la forme 0 .
0
On divise d’abord la première ligne de B par 5. On fait de même avec I.
On obtient:
1 0 3/5 1/5 0 0
2 1 3 0 1 0
1 0 3 0 0 1
36
Calcul de l’inverse d’une matrice

– (2) 1 0 3/5 – (2) 1/5 0 0


2 1 3 0 1 0
1 0 3 0 0 1

Il faut éliminer le coefficient 2 dans la deuxième ligne en appliquant la


transformation : ligne 2 ← ligne 2 – (2  ligne 1). On obtient :

1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
1 0 3 0 0 1

37
Calcul de l’inverse d’une matrice

– (1) 1 0 3/5 – (1) 1/5 0 0


0 1 9/5 −2/5 1 0
1 0 3 0 0 1

Il faut éliminer le coefficient 1 dans la troisième ligne en appliquant la


transformation : ligne 3 ← ligne 3 – ligne 1. On obtient :

1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
0 0 12/5 −1/5 0 1

38
Calcul de l’inverse d’une matrice

Traitement de la deuxième colonne


Nous avons:
1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
0 0 12/5 −1/5 0 1
0
La deuxième colonne doit être de la forme 1 .
0
La deuxième colonne a déjà la bonne forme, alors il n’y a rien à faire.

39
Calcul de l’inverse d’une matrice

Traitement de la troisième colonne


Nous avons:
1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
0 0 12/5 −1/5 0 1
0
La troisième colonne doit être de la forme 0 .
1
On divise d’abord la troisième ligne des deux matrices par 12/5. On obtient:
1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
0 0 1 −1/12 0 5/12
40
Calcul de l’inverse d’une matrice

1 0 3/5 1/5 0 0
0 1 9/5 −2/5 1 0
− (3/5 ) 0 0 1 − (3/5 ) −1/12 0 5/12

Il faut éliminer le coefficient 3/5 dans la première ligne en appliquant la


transformation : ligne 1 ← ligne 1 – (3/5  ligne 3). On obtient :

1 0 0 1/4 0 −1/4
0 1 9/5 −2/5 1 0
0 0 1 −1/12 0 5/12

41
Calcul de l’inverse d’une matrice

1 0 0 1/4 0 −1/4
0 1 9/5 −2/5 1 0
− (9/5 ) 0 0 1 − (9/5 ) −1/12 0 5/12

Il faut éliminer le coefficient 9/5 dans la deuxième ligne en appliquant la


transformation : ligne 2 ← ligne 2 – (9/5  ligne 3). On obtient :

1 0 0 1/4 0 −1/4
0 1 0 −1/4 1 −3/4
0 0 1 −1/12 0 5/12
I B–1
42
Calcul de l’inverse d’une matrice
La suite de transformations que nous avons appliquée en parallèle aux matrices
B et I est équivalente à multiplier ces deux matrices par B–1.

B I
5 0 3 1 0 0
2 1 3 0 1 0
1 0 3 0 0 1
 B–1  B–1

1 0 0 1/4 0 −1/4
0 1 0 −1/4 1 −3/4
0 0 1 −1/12 0 5/12
I B–1

43
Exemple

v.d. x1 x 2 … xm xm+1 xm+2 … xn –z t.d.

x𝐵 B–1A B–1b bത

–z cT – T A 1 –T b

cതT –zҧ

avec T = cTB B−1

44
Exemple
x
u v.d. x y u p h -z t.d.
xB = p xR =
y h
u 5 3 1 30
−8 p 2 3 1 24
0
cB = 0 cR =
0 h 1 3 1 18
−6
-z -8 -6 1 0
30
b = 24
18
5 3 1 0 0
A= 2 3 0 1 0
1 3 0 0 1

x p y u h
5 0 3 1 0 1/4 0 −1/4
B= 2 1 3 R= 0 0 B−1 = −1/4 1 −3/4
1 0 3 0 1 −1/12 0 5/12

45
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x
p 2 3 1 24 p B−1A B−1b
h 1 3 1 18 y
-z -8 -6 1 0 -z cT – T A 1 –T b

x y u p h
1/4 0 −1/4 5 3 1 0 0 1 0 1/4 0 −1/4
B−1A = −1/4 1 −3/4 2 3 0 1 0 = 0 0 −1/4 1 −3/4
−1/12 0 5/12 1 3 0 0 1 0 1 −1/12 0 5/12

46
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4
p 2 3 1 24 p -1/4 1 -3/4 B−1b
h 1 3 1 18 y 1 -1/12 5/12
-z -8 -6 1 0 -z cT – T A 1 –T b

x y u p h
1/4 0 −1/4 5 3 1 0 0 1 0 1/4 0 −1/4
B−1A = −1/4 1 −3/4 2 3 0 1 0 = 0 0 −1/4 1 −3/4
−1/12 0 5/12 1 3 0 0 1 0 1 −1/12 0 5/12

• On connaissait déjà les coefficients sous x, p, y, puisque ce sont les variables de base dans
les première, deuxième et troisième ligne, respectivement.
• Il aurait été plus rapide de calculer seulement les coefficients sous u et h avec la formule
B−1R.
47
Exemple
v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.
u 5 3 1 30 x 1 1/4 -1/4
p 2 3 1 24 p -1/4 1 -3/4 B−1b
h 1 3 1 18 y 1 -1/12 5/12
-z -8 -6 1 0 -z cT – T A 1 –T b

• Il aurait été plus rapide de calculer seulement les coefficients sous


u et h avec la formule B−1R.
u h u h
1/4 0 –1/4 1 0 1/4 −1/4
B−1R = –1/4 1 –3/4 0 0 = −1/4 −3/4
–1/12 0 5/12 0 1 −1/12 5/12

48
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4
p 2 3 1 24 p -1/4 1 -3/4 B−1b
h 1 3 1 18 y 1 -1/12 5/12
-z -8 -6 1 0 -z cT – T A 1 –T b

Termes de droite

1/4 0 −1/4 30 3
B−1b = −1/4 1 −3/4 24 = 3
−1/12 0 5/12 18 5

49
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.

u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z cT – T A 1 –T b

Termes de droite

1/4 0 −1/4 30 3
B−1b = −1/4 1 −3/4 24 = 3
−1/12 0 5/12 18 5

50
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z cT – T A 1 –T b

Pour la ligne de l’objectif, il faut d’abord calculer le vecteur .

x p 1/4 0
y −1/4
T = cTB B−1 = (–8, 0, –6) −1/4 1 −3/4 = (–3/2, 0, –1/2)
−1/12 0 5/12

51
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z cT – T A 1 –T b

T = (–3/2, 0, –1/2)
x y u p h 5 3 1 0 0
c –  A = (–8, –6, 0, 0, 0) – (–3/2, 0, –1/2) 2
T T
3 0 1 0
1 3 0 0 1

x y u p h
cT – T A = (–8, –6, 0, 0, 0) – (–8, –6, –3/2, 0, –1/2) = (0, 0, 3/2, 0, 1/2)

52
Exemple
v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.
u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 –T b

T = (–3/2, 0, –1/2)
x y u p h 5 3 1 0 0
cT – T A = (–8, –6, 0, 0, 0) – (–3/2, 0, –1/2) 2 3 0 1 0
1 3 0 0 1
x y u p h
cT – T A = (–8, –6, 0, 0, 0) – (–8, –6, –3/2, 0, –1/2) = (0, 0, 3/2, 0, 1/2)

• Il aurait été plus rapide de calculer seulement les coûts sous u et h avec la
formule cTR – T R.
53
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 –T b

• Il aurait été plus rapide de calculer seulement les coûts sous u et h avec la
formule cTR – T R.
u h
u h 1 0
cTR –  R = (0, 0) – (–3/2, 0, –1/2) 0
T
0
0 1

u h
cTR – T R = (0, 0) – (–3/2, –1/2) = (3/2, 1/2)
54
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 –T b

T = (–3/2, 0, –1/2)
30
–T b = – (–3/2, 0, –1/2) 24 = 54
18

55
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

T = (–3/2, 0, –1/2)
30
–T b = – (–3/2, 0, –1/2) 24 = 54
18

56
Exemple
v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.
u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

• On a donc obtenu le tableau du simplexe associé à la base :


x p y
5 0 3
B= 2 1 3
1 0 3
• Ici, il s’agit de la base optimale, mais il serait possible de produire de
la même façon le tableau du simplexe associé à n’importe quelle
base de la matrice A.
57
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


I B–1
u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

• On retrouve B–1 dans le tableau du simplexe associé à la base


x p y
5 0 3
B= 2 1 3
1 0 3

sous les variables u, p, h qui sont les variables dépendantes dans le


tableau initial.
• En effet, on retrouve une matrice identité sous ces variables dans le
tableau initial et on obtient donc: B–1 I = B–1
58
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 1 24 p -1/4 1 -3/4
–T
2 3 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

• On retrouve
–T = – (–3/2, 0, –1/2) = (3/2, 0, 1/2)
dans le tableau du simplexe associé à la base
x p y
5 0 3
B= 2 1 3
1 0 3
sous les variables u, p, h qui sont les variables dépendantes dans le tableau initial.
59
Exemple
a • u a • p a • h

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p 2 3 1 24 p -1/4 1 -3/4 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

• En effet : cതu = –1 cതp = –2 cതh = –3


1
cതu = cu –  a u = 0 – 
T

T
0 = –1
0
0
cതp = cp – T a p = 0 – T
• 1 = –2
0
0
cതh = ch – T a h = 0 – T
• 0 = –3
1 60
Exemple

v.d. x y u p h -z t.d. v.d. x y u p h -z t.d.


u 5 3 1 30 x 1 1/4 -1/4 3
p -1/4 1 -3/4
–T
2 3 1 24 p 3
h 1 3 1 18 y 1 -1/12 5/12 5
-z -8 -6 1 0 -z 3/2 1/2 1 54

• Ainsi, dans le tableau du simplexe associé à la base B, on retrouve bien dans la ligne de
l’objectif sous les variables u, p, h :

(തcu, cതp, cതh ) = (–1, –2, –3) = –T

61
Exemple
• Dans le cas général, dénotons xji la variable dépendante dans la ligne i du tableau initial.
o En effet, ce n’est pas nécessairement la variable xi qui est variable dépendante dans la ligne i
(par exemple, si x2 est variable dépendante dans la première ligne, alors xj1 = x2 et l’indice j1
correspond à 2).
• Alors :

0

cതj = cji – T a • ji = 0 – T 1
i Puisque xji est variable

dépendante dans la ligne i du
0 tableau initial, la colonne sous
cette variable contient des 0
= –i i = 1, …, m partout, sauf un coefficient de 1
en position i.

62
Multiplicateurs du simplexe
• Il existe un vecteur des multiplicateurs du simplexe associé à chacune des bases de la
matrice Amn.
• En effet, on retrouve la base dans la définition même du vecteur des multiplicateurs du
simplexe : T = cTB B−1.
• On s’intéresse à ce vecteur pour deux raisons:
a) Il permet d’obtenir les coûts relatifs dans le tableau du simplexe associé à une base B à partir
des coûts dans le tableau initial grâce à la formule:
cതj = cj – T a • j j = 1, …, n

On peut voir i, i = 1, …m, comme un multiplicateur associé à la ligne de la contrainte i. Ces
multiplicateurs sont tels que si on soustrait de la ligne de l’objectif une combinaison linéaire
des lignes des contraintes pondérée par ces multiplicateurs, on obtient un coût relatif nul
pour les variables de base.
m

cതj = cj – T a j = cj – ෍ i aij = 0

i=1
pour tout indice j tel que xj est variable de base.
63
Multiplicateurs du simplexe
• On s’intéresse à ce vecteur pour deux raisons:
b) Le vecteur des multiplicateurs du simplexe associé à la base optimale permet de mesurer
l’impact d’une modification des termes de droite dans le tableau initial sur la valeur optimale de
l’objectif.
o En effet :
m

z = T b = ෍ i bi
i=1

o On voit que si le terme de droite bi dans le tableau initial est modifié de 1 unité, alors la
valeur optimale de l’objectif est modifiée de i unités.
o Ainsi, i représente le taux de variation de la valeur optimale de l’objectif si on modifie le
terme de droite bi d’une certaine quantité.
o Si la valeur de i est élevée (en valeur absolue), la valeur optimale de l’objectif est très
sensible à une modification du terme de droite bi, et inversement.
o On y reviendra lorsqu’on abordera la section portant sur l’analyse post-optimale ou analyse
de sensitivité.
64
Dégénérescence
• Une solution de base est dite dégénérée si au moins une variable de base a une valeur
nulle.
• Dans un tel cas, il peut être possible de réaliser un pivot (et donc de changer la base) sans
changer la solution. Autrement dit, on fait du « surplace ».
• Par exemple, supposons qu’à une certaine itération de l’algorithme du simplexe, nous
avons le tableau suivant:

v.d. x1 x2 x3 x4 x5 -z t.d.

x3 10 1 -5 100
x4 2 1 -3 0 dégénérescence
x2 1 1 20
-z -10 12 1 240

65
Dégénérescence
• Exécutons un pivot avec la variable d’entrée x1 et la variable de sortie x4.
v.d. x1 x2 x3 x4 x5 -z t.d.

x3 10 1 -5 100
x4 2 1 -3 0
x2 1 1 20
-z -10 12 1 240

• On obtient :
v.d. x1 x2 x3 x4 x5 -z t.d.

x3 1 -5 10 100
x1 1 1/2 -3/2 0
x2 1 1 20
-z 5 -3 1 240

• On a exécuté un pivot, x1 remplace maintenant x4 dans la base, mais la solution demeure


la même!
66

Vous aimerez peut-être aussi