Vous êtes sur la page 1sur 26

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Sujet 1: Lalgorithme du simplexe r evis e et lalgorithme simplexe avec bornes


MSE3111: Programmation lin eaire II
Andrew J. Miller
(dapr` es Linear programming. Chvatal, Vasek - McGraw-Hill, 1983, et dapr` es les notes des cours de Programmation Lin eaire r edig ees par L.A. Wolsey et F. Vanderbeck) Last update: December 2, 2008

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Dans ce sujet...

Rappel M ethode du simplexe r evis e M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Exemple max 19 x1 + 13 x2 + 12 x3 + 17 3 x1 + 2 x2 + 1 x3 + 2 1 x1 + 1 x2 + 1 x3 + 1 4 x1 + 3 x2 + 3 x3 + 4 x1 , x2 , x3 , x4 x4 x4 x4 x4 225 117 420 0

Formulation equivalent: max{c T x : Ax = b , x 0}, avec c = 19 13 12 17 0 0 0 3 2 1 2 1 0 0 225 , A = 1 1 1 1 0 1 0 , b = 117 4 3 3 4 0 0 1 420

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Th eor` emes des ecarts compl ementaires


Th eor` eme
, . . . xn ) est optimale ssi il existe Une solution primale r ealisable x = (x1 , . . . , ym ) tel que une solution duale r ealisable (y1 m i =1 ai j yi

= cj , j : xj > 0
n j =1 ai j

(1) (2)

yi Th eor` eme

= 0, i :

xj

< bi

Une solution primale basique r ealisable x = (x1 , . . . xn ), avec une base associ ee B , est optimale ssi

c j 0, j B ,
T 1 o` uc = c cB B A.

(3)

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Dictionaires

Points ` a remarquer:
1

Le m ethode du simplexe garde toujours et une solution primale (d enie par B 1 b ) et une solution duale (d enie 1 par B cB ). Les co uts r eduits dans le probl` eme primal sont les ecarts dans les contraintes duales ... et vice versa. Si on a ajout e des variables d ecart, B 1 se trouve dans la colonnes de la dictionnaire leur correspondantes. Si on a ajout e des variables d ecart, leurs co uts r eduits sont toujours les n egatifs des variables duales des contraintes associ ees.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Bases

Tous les calculs n ec essaires pour d enir les d emarches de lalgorithme n ec esitent principalement la matrice basique B et la resolution des syst` emes d enis par cela; par exemple BxB = b , T B y = cB , etc. On sint eresse alors ` a se limiter ` a la manipulation de B dune it eration ` a lautre.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Lalgorithme du simplex r evis e (I)


Algorithme Pas 0: Commencer avec une solution de base r ealisable:
B , xB = B 1 b , B

Pas 1: Resoudre B T y = cB . Pas 2: Choisir une colonne ak de N dindice k N :


T c k = (ck ak y) > 0

Sil nen existe pas, la solution est optimum, STOP. Pas 3: Resoudre Bd = ak .

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Lalgorithme du simplex r evis e (II)


Algorithme Pas 3: Resoudre Bd = ak .
td 0}. Pas 4: Trouver tmax = max{t 0 : xB Sil nen existe pas, le probl` eme est non-born e, STOP. Sinon au moins une composant de tombe ` a z ero, appelons la s. t Pas 5: Poser xB = xB max d; remplacer xs par xk = tmax dans xB ; poser B = B \ {s } {k }; et remplacer la colonne s de B par ak . Retourner au Pas 1.

Remarquons que les seuls calculs faits concernent la matrice de base B . Plus pr ecis ement, il faut r esoudre la syst` eme B T y = cB en Pas 1 et la syst` eme Bd = ak en Pas 3.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Remarques sur lalgorithme

1. Pour simplier m eme plus les calculs, les meilleurs codes gardent une factorisation de la base B = LU , o` u L et U sont triangulaires. Par exemple, L11 0 0 ... 0 0 L21 L22 0 ... 0 0 L31 L32 L33 . . . 0 0 L= . . . . . . . . . . . . . . . . . . Lm1 Lm2 Lm3 . . . Lm1,m1 0 Lm1 Lm2 Lm3 . . . Lm,m1 Lmm

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Remarques sur lalgorithme


2. Les mises ` a jour de B (et de L et U ) peuvent seectuer tr` es vite et tr` es stablement ` a cause de ces factorisations. Par exemple, en eme it eme , la mise ` passant de la q` eration ` a la q + 1` a jour de B peut sexprimer Bq+1 = Bq Mq , o` u M est la matrice didentit e avec la colonne correpondent ` a la variable sortante remplac ee par la colonne d calcul ee en Pas 3 (alors tr` es creuse). Supposons quon a d eja une factorisation Bq = Lq Uq ; on peut utiliser cette factorisation actuelle de trouver une mise ` a jour Bq+1 = Lq+1 Uq+1 sans etre oblig e de refaire toute la factorisation en commen cant ` a nouveau.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Remarques sur lalgorithme


2. (continue)
Supposons quon a d eja une factorisation Bq = Lq Uq ; on peut utiliser cette factorisation actuelle de trouver une mise ` a jour Bq +1 = Lq +1 Uq +1 sans etre oblig e de refaire toute la factorisation en commen cant ` a nouveau.

Souvenons que Bq+1 = Lq Uq Mq ; la matrice Uq Mq est souvent d eja triangulaire (et dans ce cas on prends Lq+1 = Lq et Uq+1 = Uq Mq ). M eme sinon, cest facile a trouver les matrices L q et Uq +1 satisfaisant Lq Uq+1 = Uq Mq . Dans ce cas aussi, Lq+1 = Lq L q nest pas seulement triangulaire, mais se calculent relativement vite et stablement (parce que L q est creuse).

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Bornes et dualit e

max s.` a.

cT x Ax = b x u 0x (4) (5)

Pour d enir le probl` eme dual, on associe variables y avec contraintes (4) et z avec (5). bT y u T z AT y + I z c y libre; z 0 (6)

min s.` a.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Motivation

Les bornes sup erieures semblent aussi simples que les bornes inf erieures. On aimerait bien les traiter dans une mani` ere analogue, cest ` a dire implicite. Cela pourrait r eduire la taille de chaque base consid er ee, ainsi que le nombre des pivotages n ec essaires.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Th eor` emes des ecarts compl ementaires (I)

Th eor` eme , . . . x ) est optimale ssi il Une solution primale r ealisable x = (x1 n , z , . . . z ) tel que existe une solution duale r ealisable (y1 , . . . , ym n 1
m i =1 ai j yi + zj = cj , j zj = 0, j : xj <

: xj > 0 uj

(7) (8)

Remarquons bien la pr` esence de la derni` ere nouvelle condition.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Th eor` emes des ecarts compl ementaires (II)

Th eor` eme , . . . x ), avec une Une solution primale basique r ealisable x = (x1 n base associ ee (B , L, U ), est optimale ssi c j 0, j L, c j 0, j U ,
T B 1 A. o` uc = c cB

(9) (10)

On peut trouver cette th eor` eme par lapplication directe de la th eor` eme pr ecedente.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Lalgorithme du simplex r evis e (I) pour les probl` emes avec des bornes sup erieures
Algorithme Pas 0: Commencer avec une solution de base r ealisable:
{B , L, U}, xB = B 1 b , B

Pas 1: Resoudre B T y = cB . Pas 2: Choisir une colonne ak de N dindice k N :


T T k L:c k = (ck ak y ) > 0 ou k U : c k = (ck ak y) < 0

Sil nen existe pas, la solution est optimum, STOP. Pas 3: Resoudre Bd = ak .

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Lalgorithme du simplex r evis e (II)


Algorithme
Pas 4: Trouver tmax = max {uk , max{t 0 : 0 xB td uB }}. Si tmax = , le probl` eme est non-born e, STOP. Sinon on se trouve dans un de quatre cas: 1 2 3

tmax = uk et k L; alors poser k = s. tmax = uk et k U ; alors poser k = s.


Au moins une composant de (xB tmax d ) tombe ` a 0; appelons la s ` a la borne sup erieure; appelons la s.

Pas 5: Poser xB = xB tmax d. Si on est tomb e dans cas 1 dans Pas 4, poser xk = uk , L = L \ {k }, et U = U { k }. Si on est tomb e dans cas 2 dans Pas 4, poser xk = 0, U = U \ {k }, et L = L {k }. Si on est tomb e dans cas 3 dans Pas 4, remplacer xs par xk = tmax dans xB ; poser B = B \ {s } {k }; remplacer la colonne s de B par ak ; enlever k de L ou U (selon le cas applicable) et poser s dans L ou U (selon le cas applicable). Retourner au Pas 1.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Remarques sur lalgorithme du simplex r evis e avec bornes inf erieures

Remaquons bien la possibilit e quune variable peut entrer et sortir de la base dans la m eme it eration, si elle va dune borne ` a lautre (cas 1 et 2 de Pas 4).

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Rappel

M ethode du simplexe r evis e

M ethode du simplexe avec bornes sup erieures Conditions doptimalit e Lalgorithme

Extension

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

Bornes inf erieures non 0


Comment traiter les cas avec les bornes inf erieures non-triviales: x u? Comment r esoudre ces probl` emes par la m ethode simplexe? Trois possibilit es: Traiter les bornes comme des contraintes explicites. Modier les th eorems de l ecart compl ementaire pour les appliquer ` a cette situation. Cela se fait exactement dans la m eme mani` ere: par lapplication de la dualit e. Modier le probl` eme automatiquement par la substitution w = x et appliquer les r esultats de ce sujet au probl` eme max s.` a. cT w Aw = b 0w u , o` u b = b A . Ce probl` eme est equivalent au probl` eme original, est tombe dans la categorie de probl` emes quon vient danalyser.

Rappel

Simplexe r evis e

Simplexe avec bornes

Extension

A souvenir

Lalgorithme du simplexe r evis e


surtout limportance de la base dans la r eduction de calcul par rapport au m ethode avec dictionnaires

Les conditions doptimalit e pour les probl` emes avec bornes sup erieures
comment les d eriver par la dualit e comment les appliquer dans lalgorithme du simplexe r evis e pour les probl` emes born es