Rappel Simplexe revise Simplexe avec bornes Extension
Sujet 1: L’algorithme du simplexe revise etl’algorithme simplexe avec bornes
MSE3111C: Programmation lineaire II
Andrew J. Miller(d’apres Linear programming. Chvatal, Vasek - McGraw-Hill, 1983,
et d’apres les notes des cours de Programmation Lineaire redigees par L.A. Wolsey et F. Vanderbeck)Last update: November 4, 2011
Rappel Simplexe revise Simplexe avec bornes Extension
Dans ce sujet...
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
Exemple
max 19 x1 + 13 x2 + 12 x3 + 17 x4
3 x1 + 2 x2 + 1 x3 + 2 x4 ≤ 2251 x1 + 1 x2 + 1 x3 + 1 x4 ≤ 1174 x1 + 3 x2 + 3 x3 + 4 x4 ≤ 420
x1, x2, x3, x4 ≥ 0
Formulation equivalent: max{cT x : Ax = b, x ≥ 0}, avec
c =
19131217000
, A =
3 2 1 2 1 0 01 1 1 1 0 1 04 3 3 4 0 0 1
, b =
225117420
Rappel Simplexe revise Simplexe avec bornes Extension
Theoremes des ecarts complementaires
Theoreme
Une solution primale realisable x∗ = (x∗1 , . . . x∗n ) est optimale ssi il existeune solution duale realisable (y∗1 , . . . , y∗m) tel que∑m
i=1 ai jy∗i = cj ,∀j : x∗j > 0 (1)
y∗i = 0,∀i :∑n
j=1 ai j x∗j < bi (2)
Theoreme
Une solution primale basique realisable x∗ = (x∗1 , . . . x∗n ), avec une baseassociee B, est optimale ssi
cj ≤ 0, ∀j 6∈ B, (3)
ou c = c − cTB B−1A.
Rappel Simplexe revise Simplexe avec bornes Extension
Dictionaires
Points a remarquer:
1 Le methode du simplexe garde toujours et une solutionprimale (definie par B−1b) et une solution duale (definiepar B−1cB).
2 Les couts reduits dans le probleme primal sont les ecarts dansles contraintes duales ... et vice versa.
3 Si on a ajoute des variables d’ecart, B−1 se trouve dans lescolonnes de la dictionnaire leur correspondante.
4 Si on a ajoute des variables d’ecart, leurs couts reduits sonttoujours les negatifs des variables duales des contraintesassociees.
Rappel Simplexe revise Simplexe avec bornes Extension
Bases
Tous les calculs necessaires pour definir les demarches del’algorithme necesitent principalement la matrice basique B et laresolution des systemes definis par cela; par exemple BxB = b,BT y = cB, etc.
On s’interesse alors a se limiter a la manipulation de B d’uneiteration a l’autre.
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
L’algorithme du simplex revise (I)
Algorithme
Pas 0: Commencer avec une solution de base realisable:
B, x∗B = B−1b, B
Pas 1: Resoudre BT y = cB.
Pas 2: Choisir une colonne ak de N d’indice k ∈ N :
ck = (ck − aTk y) > 0
S’il n’en existe pas, la solution est optimum, STOP.
Pas 3: Resoudre Bd = ak .
Rappel Simplexe revise Simplexe avec bornes Extension
L’algorithme du simplex revise (II)
Algorithme
Pas 3: Resoudre Bd = ak .
Pas 4: Trouver tmax = max{t ≥ 0 : x∗B − td ≥ 0}.S’il n’en existe pas, le probleme est non-borne, STOP.Sinon au moins une composant de tombe a zero, appelons la s.
Pas 5: Poser xB = x∗B − tmax d; remplacer xs par xk = tmax dansxB; poser B = B \ {s} ∪ {k}; et remplacer la colonne s de B parak .Retourner au Pas 1.
Remarquons que les seuls calculs faits concernent la matrice debase B.Plus precisement, il faut resoudre la systeme BT y = cB en Pas 1et la systeme Bd = ak en Pas 3.
Rappel Simplexe revise Simplexe avec bornes Extension
Remarques sur l’algorithme
1. Pour simplifier meme plus les calculs, les meilleurs codesgardent une factorisation de la base B = LU, ou L et U sonttriangulaires. Par exemple,
L =
L11 0 0 . . . 0 0L21 L22 0 . . . 0 0L31 L32 L33 . . . 0 0
......
.... . .
......
Lm1 Lm2 Lm3 . . . Lm−1,m−1 0Lm1 Lm2 Lm3 . . . Lm,m−1 Lmm
Rappel Simplexe revise Simplexe avec bornes Extension
Remarques sur l’algorithme
2. Les mises a jour de B (et de L et U) peuvent s’effectuer tres vite ettres stablement a cause de ces factorisations. Par exemple, en
passant de la qeme iteration a la q + 1eme, la mise a jour de Bpeut s’exprimer
Bq+1 = BqMq,
ou M est la matrice d’identite avec la colonne correpondent a lavariable sortante remplacee par la colonne d calculee en Pas 3(alors tres creuse).
Supposons qu’on a deja une factorisation
Bq = LqUq;
on peut utiliser cette factorisation actuelle de trouver une mise ajour Bq+1 = Lq+1Uq+1 sans etre oblige de refaire toute lafactorisation en commencant a nouveau.
Rappel Simplexe revise Simplexe avec bornes Extension
Remarques sur l’algorithme
2. (continue)Supposons qu’on a deja une factorisation
Bq = LqUq ;
on peut utiliser cette factorisation actuelle de trouver une mise a jourBq+1 = Lq+1Uq+1 sans etre oblige de refaire toute la factorisation encommencant a nouveau.
Souvenons que Bq+1 = LqUqMq; la matrice UqMq est souvent dejatriangulaire (et dans ce cas on prends Lq+1 = Lq et Uq+1 = UqMq).
Meme sinon, c’est facile a trouver les matrices L∗q et Uq+1
satisfaisant L∗qUq+1 = UqMq. Dans ce cas aussi, Lq+1 = LqL∗q n’estpas seulement triangulaire, mais se calculent relativement vite etstablement (parce que L∗q est creuse).
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
Bornes et dualite
max cT x
s.a. Ax = b (4)
x ≤ u (5)
0 ≤ x
Pour definir le probleme dual, on associe variables y aveccontraintes (4) et z avec (5).
min bT y − uT z
s.a. AT y + I z ≥ c (6)
y libre; z ≥ 0
Rappel Simplexe revise Simplexe avec bornes Extension
Motivation
Les bornes superieures semblent aussi simples que les bornesinferieures.On aimerait bien les traiter dans une maniere analogue, c’est a direimplicite.Cela pourrait reduire la taille de chaque base consideree, ainsi quele nombre des pivotages necessaires.
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
Theoremes des ecarts complementaires (I)
Theoreme
Une solution primale realisable x∗ = (x∗1 , . . . x∗n ) est optimale ssi ilexiste une solution duale realisable (y∗1 , . . . , y∗m, z∗1 , . . . z∗n ) telle que∑m
i=1 ai jy∗i + z∗j = cj , ∀j : x∗j > 0 (7)
z∗j = 0, ∀j : x∗j < uj (8)
Remarquons bien la presence de la derniere nouvelle condition.
Rappel Simplexe revise Simplexe avec bornes Extension
Theoremes des ecarts complementaires (II)
Theoreme
Une solution primale basique realisable x∗ = (x∗1 , . . . x∗n ), avec unebase associee (B,L,U), est optimale ssi
cj ≤ 0, ∀j ∈ L, (9)
cj ≥ 0, ∀j ∈ U , (10)
ou c = c − cTB B−1A.
On peut trouver cette theoreme par l’application directe de latheoreme precedente.
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
L’algorithme du simplex revise (I) pour les problemes avecdes bornes superieures
Algorithme
Pas 0: Commencer avec une solution de base realisable:
{B,L,U}, x∗B = B−1b, B
Pas 1: Resoudre BT y = cB.
Pas 2: Choisir une colonne ak de N d’indice k ∈ N :
k ∈ L : ck = (ck − aTk y) > 0 ou k ∈ U : ck = (ck − aT
k y) < 0
S’il n’en existe pas, la solution est optimum, STOP.
Pas 3: Resoudre Bd = ak .
Rappel Simplexe revise Simplexe avec bornes Extension
L’algorithme du simplex revise (II)
Algorithme
Pas 4: Trouver tmax = max {uk , max{t ≥ 0 : 0 ≤ x∗B − td ≤ uB}}.Si tmax =∞, le probleme est non-borne, STOP.Sinon on se trouve dans un de quatre cas:
1 tmax = uk et k ∈ L; alors poser k = s.
2 tmax = uk et k ∈ U ; alors poser k = s.
3 Au moins une composant de (x∗B − tmaxd) tombe a 0; appelons la s a laborne superieure; appelons la s.
Pas 5: Poser xB = x∗B − tmax d.Si on est tombe dans cas 1 dans Pas 4, poser xk = uk , L = L \ {k}, etU = U ∪ {k}.Si on est tombe dans cas 2 dans Pas 4, poser xk = 0, U = U \ {k}, etL = L ∪ {k}.Si on est tombe 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 Lou U (selon le cas applicable) et poser s dans L ou U (selon le cas applicable).Retourner au Pas 1.
Rappel Simplexe revise Simplexe avec bornes Extension
Remarques sur l’algorithme du simplex revise avec bornesinferieures
Remarquons bien la possibilite qu’une variable puisse entrer etsortir de la base dans la meme iteration, si elle va d’une borne al’autre (cas 1 et 2 de Pas 4).
Rappel Simplexe revise Simplexe avec bornes Extension
1 Rappel
2 Methode du simplexe revise
3 Methode du simplexe avec bornes superieuresConditions d’optimaliteL’algorithme
4 Extension
Rappel Simplexe revise Simplexe avec bornes Extension
Bornes inferieures non 0
Comment traiter les cas avec les bornes inferieures non-triviales:` ≤ x ≤ u?Comment resoudre ces problemes par la methode simplexe?Trois possibilites:
Traiter les bornes comme des contraintes explicites.
Modifier les theoremes des ecarts complementaires afin de lesappliquer a cette situation.
Cela se fait exactement dans la meme maniere: parl’application de la dualite.
Modifier le probleme automatiquement par la substitutionw = x − ` et appliquer les resultats de ce sujet au probleme
max cT w
s.a. Aw = b′
0 ≤ w ≤ u − `,
ou b′ = b − A`. Ce probleme est equivalent au probleme original,est tombe dans la categorie de problemes qu’on vient d’analyser.
Rappel Simplexe revise Simplexe avec bornes Extension
A souvenir
L’algorithme du simplexe revise
surtout l’importance de la base dans la reduction de calcul parrapport au methode avec dictionnaires
Les conditions d’optimalite pour les problemes avec bornessuperieures
comment les deriver par la dualitecomment les appliquer dans l’algorithme du simplexe revisepour les problemes bornes