Vous êtes sur la page 1sur 4

La mthode rvise du simplexe (rsum de cours)

M. Grabisch

Expression matricielle des dictionnaires


Soit le dictionnaire suivant :
x1 x3 x7 z = 54 0.5x2 = 63 0.5x2 = 15 + 0.5x2 = 1782 2.5x2 + 0.5x4 0.5x4 0.5x4 1.5x4 0.5x5 + 0.5x5 + 0.5x5 3.5x5 + 0.5x6 0.5x6 + 2.5x6 8.5x6

(1)

obtenu aprs 2 itrations du problme suivant : Maximiser 19x1 + 13x2 + 12x3 + 17x4 3x1 + 2x2 + x3 + 2x4 225 x1 + x2 + x3 + x4 117 sous 4 x1 + 3x2 + 3x3 + 4x4 420 x1 , x2 , x3 , x4 0. En rajoutant les variables d'cart x5 , x6 , x7 , le problme s'crit sous la forme matricielle : Maximiser cx sous avec
3 A := 1 4 c := 19 13 12 17 0 2 1 3 0 1 1 3 2 1 4 0 , 1 0 0 0 1 0 0 0 , 1 225 b := 117 420 x2 x3 x4 x5 x6 x7
T

Ax = b x 0

x := x1

En sparant les variables en base des variables hors base, on crit


Ax = AB xB + AN xN

avec
3 AB := 1 4 1 1 3 0 0 , 1 AN 2 := 1 3 2 1 4 1 0 0 0 1 , 0 x1 xB := x3 , x7 xN

x2 x4 := x5 . x6

Ainsi on obtient AB xB = b AN xN , et AB tant non singulire, on obtient


1 1 xB = A B b AB AN xN

(2)

qui est la forme matricielle de (1). Faisant de mme pour z = cx, on obtient :
z = cB xB + cN xN

avec
cB = 19 12 0 , cN = 13 17 0 0 .

En utilisant (2) il vient :


1 1 z = cB (A B b AB AN xN ) + cN xN 1 1 = cB A B b + (cN cB AB AN )xN .

(3)

(2) et (3) sont une rcriture du dictionnaire (1). De faon gnrale, soit un problme Maximiser cx sous
Ax = b x 0

avec x = x1 xn xn+1 xn+m . Toute solution de base ralisable x partitionne x en m variables de base et n variables hors base, et donc induit une partition de A et c comme ci-dessus.
Proposition 1.
Dmonstration.

AB

est non singulire, i.e., le systme

AB xB = b

a une unique solution.

x est solution de ce systme. En eet, on a Ax = b, ou encore AB x B + AN xN = b, B une autre mais = 0, d'o le rsultat. Il sut alors de montrer que x est seule solution. Soit x N := 0. Alors x satisfait solution de ce systme. Posons x

x N

= AB x B + AN x N = b Ax satisfait les m quations du dictionnaire reprsentant x . Mais alors x N = 0 implique que donc x B = x x B.

On appelle AB la matrice de base, et on la note B. En procdant comme ci-dessus, on arrive l'expression matricielle du dictionnaire :
xB z = B1 b B1 AN xN = cB B1 b + (cN cB B1 AN )xN

(4)

La mthode rvise du simplexe


On reprend l'exemple de la Section 1. Pour (1) nous avons :
54 x1 x 63 , = x = 3 B x 15 7 3 B = 1 4 1 1 3 0 0 . 1

Choix de la variable entrante :

toute variable hors base avec un coe. > 0 dans z . D'aprs (4), les coecients sont cN cB B1 AN . Comment les calculer sans inverser la matrice B ? On introduit y, vecteur ligne de dimension m, dni par y := cB B1 . Il sut de calculer y, pour cela, on rsoud le systme yB = cB (admet une unique solution par la Prop. 1). Dans notre exemple :
y1 y2 y3 3 1 4 1 1 3 0 0 = 19 1 12 0 ,

ce qui donne y = 3.5 8.5 0 . Les coe. sont donc :


cN yAN = 19 12 0 3.5 8.5 2 0 1 3 2 1 4 1 0 0 0 1 = 2.5 0 1.5 3.5 8.5 .

La deuxime composante tant positive, la variable correspondante (x4 ) entre en base. On appelle colonne T 1 4 . entrante de A la colonne correspondant la variable entrante, et on la note a. Ici a = 2 2

Choix de la variable sortante :

on augmente la valeur t de la variable entrante depuis 0 jusqu' ce qu'une des variables en base devienne nulle, les autres variables hors base restant 0. En utilisant (4), ceci s'crit :
1 xB = x a 0. B tB

Comme ci-dessus, pour viter l'inversion de la matrice B, il sut de calculer d := B1 a, vecteur colonne de dimension m, en rsolvant le systme (non singulier) Bd = a. Dans notre exemple :
3 1 4 1 1 3 0 d1 2 0 d2 = 1 , 1 d3 4

T 0.5 ce qui donne d = 0.5 . Le systme de contraintes s'crit : 0.5 x1 = 54 0.5t 0 x3 = 63 0.5t 0 x7 = 15 0.5t 0

ce qui donne t = 30, et donc x1 = 39, x3 = 48 et x7 quitte la base.


Mise jour pour l'tape suivante :

la nouvelle base est {x1 , x3 , x4 } ; il sut d'actualiser B et x B.


3 B = 1 4 1 1 3 2 1 . 4

x B

x1 39 = x 3 = 48 , x 30 4

(voir le rsum d'une itration sur la feuille annexe)

Retour sur la dualit

On reprend l'exemple de la Section 1. On propose la solution x = 54 0 63 0 0 0 15 (celle du dictionnaire (1)). Par le thorme des carts complmentaires (ou sa version donne dans le Th. 3), il est possible de vrier si cette solution est optimale. Il sut de trouver y vriant :
3y 1 y1 + y2 + y2 + + 4y3 3y3 y3 = = = 19 12 0 13 17 0 0

(vient de x1 ) (vient de x3 ) (vient de x7 ) (vient de x2 ) (vient de x4 ) (vient de x5 ) (vient de x6 )

et

2y 1 2y1 y1

+ y2 + y2 y2

+ 3y3 + 4y3

Le premier systme est yB = cB , tandis que le 2me systme est yAN cN (dont la satisfaction entrane l'optimalit. Dans ce cas, le vecteur y est la solution optimale du programme dual). Nous sommes maintenant en mesure de prouver le Th. 5 du chapitre sur la dualit. (Th. 5) La solution optimale du problme dual est donn par le vecteur y vriant y B = cB la dernire itration, et la valeur de z est cB B1 b = y b. Si b est chang en b + b et que b est susamment petit pour que la base reste ralisable (i.e., x B 0), aucun coe. n'tant chang ni dans A ni dans c, la base optimale de (P) reste optimale pour ( P). La nouvelle valeur de z est :
Dmonstration.

znew = cB B1 b + cB B1 b = zold + y b.

Comment trouver les bornes de variations de b de telle sorte que la base optimale reste ralisable ? D'aprs la demonstration du Th. 5, il faut assurer que x B 0. La variation b induit une variation xB 1 1 qui vaut xB = B b (puisque xB = B b). On obtient xB en rsolvant le systme
B x B = b.

La condition x B 0 quivaut la condition


x B xB .