Documente Academic
Documente Profesional
Documente Cultură
20122013
Plan du chapitre
Introduction
Finitude du simplexe
I. Introduction
On a vu que pour resoudre un PL, il suffit de se restreindre aux solutions
de bases realisables.
Methode du simplexe due `a Dantzig (1947).
Deux phases :
1
Principe de la m
ethode du simplexe : faire rentrer une variable
hors-base dans la nouvelle base (variable entrante) et faire sortir `a la place
une variable de base (variable sortante).
Principe de la m
ethode du simplexe : faire rentrer une variable
hors-base dans la nouvelle base (variable entrante) et faire sortir `a la place
une variable de base (variable sortante).
D
emonstration.
On a b = Ax = AB xB + AH xH avec AB inversible donc
xB = A1
B (b AH xH ). On obtient donc
>
F (x) = c> x = c>
B xB + cH xH avec c =
1
>
= c>
B AB (b AH xH ) + cH xH
cB
cH
1
>
> 1
= c>
B AB b + (cH cB AB AH )xH
> 1
>
Or xB = A1
B b (car xH = 0) et cB AB b = c x = F (x) donc
> 1
F (x) = F (x) + (c>
H cB AB AH )xH .
Variable entrante
Si les co
uts reduits sont tous negatifs i.e. L>
H 0, il nest alors pas
possible daugmenter la fonction objectif F : lalgorithme se termine
normalement cest-`a-dire quon a trouve une solution de base
realisable x optimale.
Variable entrante
Si les co
uts reduits sont tous negatifs i.e. L>
H 0, il nest alors pas
possible daugmenter la fonction objectif F : lalgorithme se termine
normalement cest-`a-dire quon a trouve une solution de base
realisable x optimale.
Dans le cas contraire (i.e. (LH )i > 0), on a interet `a faire entrer
dans la base, la variable hors-base qui a le co
ut reduit
positif le plus grand possible.
Variable entrante
Si les co
uts reduits sont tous negatifs i.e. L>
H 0, il nest alors pas
possible daugmenter la fonction objectif F : lalgorithme se termine
normalement cest-`a-dire quon a trouve une solution de base
realisable x optimale.
Dans le cas contraire (i.e. (LH )i > 0), on a interet `a faire entrer
dans la base, la variable hors-base qui a le co
ut reduit
positif le plus grand possible.
On note e
/ B lindice de la variable entrante. On choisit e tel que
n
o
(LH )e = max (LH )j , (LH )j > 0
j
2) Variable sortante
Une fois lindice e choisi, il faut determiner la variable qui doit quitter la
base. En maintenant la relation Ax = b avec x 0, on augmente la
variable entrante xe jusqu`a annuler une des variables de base. Cette
variable sera alors la variable sortante.
2) Variable sortante
Une fois lindice e choisi, il faut determiner la variable qui doit quitter la
base. En maintenant la relation Ax = b avec x 0, on augmente la
variable entrante xe jusqu`a annuler une des variables de base. Cette
variable sera alors la variable sortante.
Ax = b AB xB + Ae xe = b
o`
u Ae designe la e-i`eme colonne de A
2) Variable sortante
Une fois lindice e choisi, il faut determiner la variable qui doit quitter la
base. En maintenant la relation Ax = b avec x 0, on augmente la
variable entrante xe jusqu`a annuler une des variables de base. Cette
variable sera alors la variable sortante.
Ax = b AB xB + Ae xe = b
o`
u Ae designe la e-i`eme colonne de A
e
xB = A1
B (b A xe )
2) Variable sortante
Une fois lindice e choisi, il faut determiner la variable qui doit quitter la
base. En maintenant la relation Ax = b avec x 0, on augmente la
variable entrante xe jusqu`a annuler une des variables de base. Cette
variable sera alors la variable sortante.
Ax = b AB xB + Ae xe = b
o`
u Ae designe la e-i`eme colonne de A
e
xB = A1
B (b A xe )
e
xB = xB A1
B A xe
2) Variable sortante
Une fois lindice e choisi, il faut determiner la variable qui doit quitter la
base. En maintenant la relation Ax = b avec x 0, on augmente la
variable entrante xe jusqu`a annuler une des variables de base. Cette
variable sera alors la variable sortante.
Ax = b AB xB + Ae xe = b
o`
u Ae designe la e-i`eme colonne de A
e
xB = A1
B (b A xe )
e
xB = xB A1
B A xe
xB = xB zxe
avec
e
m
z = A1
B A R .
10
10
10
n (x )
o
B i
, zi > 0
zi
On a, dans ce cas, xs = 0 et xB 0.
10
n (x )
o
B i
, zi > 0
zi
11
12
n
o
variable entrante : e = argmaxj (LH )j , (LH )j > 0
12
n
o
variable entrante : e = argmaxj (LH )j , (LH )j > 0
variable sortante : Calcul de z = A1
Ae puis
n (xB )
o
B i
, zi > 0 .
s = argmini
zi
12
n
o
variable entrante : e = argmaxj (LH )j , (LH )j > 0
variable sortante : Calcul de z = A1
Ae puis
n (xB )
o
B i
, zi > 0 .
s = argmini
zi
e et une nouvelle matrice A e dans
On obtient une nouvelle base B
B
e
laquelle la colonne A remplace la colonne As . Calcul de A1
e et
B
retour en 1.
12
>
max
x F (x) = c x
Ax = b
x0
13
>
max
x F (x) = c x
Ax = b
x0
4x1 + 5x2 + e2 = 55
2x + x2 + e3 = 20
1
x1 , x2 0, e1 , e2 , e3 0
13
? Etape 1.
Solution de base realisable initiale :
x1 = 0, x2 = 0, e1 = 81, e2 = 55, e3 = 20 avec F = 0.
Dictionnaire: On exprime les variables de base e1 , e2 , e3 en fonction
des variables hors-base x1 , x2 .
e1 = 81 3x1 9x2
e2 = 55 4x1 5x2
e3 = 20 2x1 x2
F = 6x1 + 4x2
14
? Etape 1.
Solution de base realisable initiale :
x1 = 0, x2 = 0, e1 = 81, e2 = 55, e3 = 20 avec F = 0.
Dictionnaire: On exprime les variables de base e1 , e2 , e3 en fonction
des variables hors-base x1 , x2 .
e1 = 81 3x1 9x2
e2 = 55 4x1 5x2
e3 = 20 2x1 x2
F = 6x1 + 4x2
Variable entrante xe : max>0 {6, 4} = 6 xe = x1 .
14
? Etape 1.
Solution de base realisable initiale :
x1 = 0, x2 = 0, e1 = 81, e2 = 55, e3 = 20 avec F = 0.
Dictionnaire: On exprime les variables de base e1 , e2 , e3 en fonction
des variables hors-base x1 , x2 .
e1 = 81 3x1 9x2
e2 = 55 4x1 5x2
e3 = 20 2x1 x2
F = 6x1 + 4x2
Variable entrante xe : max>0 {6, 4} = 6 xe = x1 .
Variable sortante xs : on maintient e1 0, e2 0, e3 0
81 55 20
x1 = min{ , , } = 10 xs = e3 .
>0
3 4 2
14
? Etape 1.
Solution de base realisable initiale :
x1 = 0, x2 = 0, e1 = 81, e2 = 55, e3 = 20 avec F = 0.
Dictionnaire: On exprime les variables de base e1 , e2 , e3 en fonction
des variables hors-base x1 , x2 .
e1 = 81 3x1 9x2
e2 = 55 4x1 5x2
e3 = 20 2x1 x2
F = 6x1 + 4x2
Variable entrante xe : max>0 {6, 4} = 6 xe = x1 .
Variable sortante xs : on maintient e1 0, e2 0, e3 0
81 55 20
x1 = min{ , , } = 10 xs = e3 .
>0
3 4 2
Nouvelle Solution de base realisable :
x1 = 10, x2 = 0, e1 = 51, e2 = 15, e3 = 0 avec F = 60.
14
? Etape 2.
Dictionnaire: On exprime la nouvelle variable de base x1 en fonction
de x2 et e3 (nouvelle variable hors-base). On utilise la 3`eme equation
du dictionnaire de letape 1 et on substitue x1 dans les autres
relations.
x1 = 10 21 x2 21 e3
e1 = 81 3(10 12 x2 12 e3 ) 9x2
e2 = 55 4(10 12 x2 12 e3 ) 5x2
F = 6(10 12 x2 12 e3 ) + 4x2
15
15
2 x2
+ 32 e3
e2 = 15 3x2 + 2e3
F = 60 + x2 3e3
16
15
2 x2
+ 32 e3
e2 = 15 3x2 + 2e3
F = 60 + x2 3e3
Variable entrante xe : max{1, 3} = 1 xe = x2 .
>0
16
15
2 x2
+ 32 e3
e2 = 15 3x2 + 2e3
F = 60 + x2 3e3
Variable entrante xe : max{1, 3} = 1 xe = x2 .
>0
16
15
2 x2
+ 32 e3
e2 = 15 3x2 + 2e3
F = 60 + x2 3e3
Variable entrante xe : max{1, 3} = 1 xe = x2 .
>0
? Etape 3.
Dictionnaire: On exprime la nouvelle variable de base x2 en fonction
des variables hors-base e2 et e3 . On utilise la 3`eme equation du
dictionnaire de letape 2 et on substitue x2 dans les autres relations.
x2 = 5 13 e2 + 32 e3
x1 =
e1 =
15
2
27
2
+ 16 e2 56 e3
+ 52 e2 72 e3
F = 65 13 e2 37 e3
17
? Etape 3.
Dictionnaire: On exprime la nouvelle variable de base x2 en fonction
des variables hors-base e2 et e3 . On utilise la 3`eme equation du
dictionnaire de letape 2 et on substitue x2 dans les autres relations.
x2 = 5 13 e2 + 32 e3
x1 =
e1 =
15
2
27
2
+ 16 e2 56 e3
+ 52 e2 72 e3
F = 65 13 e2 37 e3
Tous les co
uts reduits sont 0 donc on ne peut plus augmenter F :
loptimum est atteint et la solution optimale est
x1 =
27
15
, x2 = 5, e1 = , e2 = 0, e3 = 0 avec max F = 65.
2
2
17
18
Si les co
uts reduits LH < 0, alors la solution de base realisable
courante est lunique optimum.
optimum unique
1111111111111111111111111111111111
0000000000000000000000000000000000
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
F(x)
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
DR
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
= Fmax
18
Si les co
uts reduits LH 0, alors il y a deux cas remarquables :
i) si (LH )e = 0 et xe > 0, alors loptimum nest pas unique.
optimums
1111111111111111111111111111111111
0000000000000000000000000000000000
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
DR
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
0000000000000000000000000000000000
1111111111111111111111111111111111
F(x) = Fmax
19
= Fmax
20
= Fmax
Finitude du simplexe
Une solution de base realisable est dite d
eg
en
er
ee si au moins une des
variables de base est nulle.
Theor`eme
Si au cours de lalgorithme du simplexe, aucune base rencontree nest
degeneree, alors lalgorithme se termine en un nombre fini diterations.
21
Finitude du simplexe
Une solution de base realisable est dite d
eg
en
er
ee si au moins une des
variables de base est nulle.
Theor`eme
Si au cours de lalgorithme du simplexe, aucune base rencontree nest
degeneree, alors lalgorithme se termine en un nombre fini diterations.
Demonstration. A une iteration donnee de lalgorithme :
soit on detecte une fonction objectif non majoree ( arret de lalgo.),
soit elle est strictement croissante car Feopt Fopt = (LH ) xe > 0
e
R`egle de Bland
Lorsque plusieurs variables sont susceptibles dentrer ou de sortir de la
base, on choisit toujours celle qui a lindice le plus petit.
22
e = b 0.
23
e = b 0.
2) Variables auxiliaires
PL sous forme standard
(PL)
h
i
F (x) = c> x
max
x
Ax = b
x0
24
2) Variables auxiliaires
PL sous forme standard
(PL)
h
i
F (x) = c> x
max
x
Ax = b
x0
24
Programme auxiliaire
Le programme auxiliaire associe `a (PL) secrit
m
X
min
ai
(x,a) i=1
(PLA)
Ax + a = b
x0
a0
o`
u a = (a1 , , am ) sont appelees variables artificielles.
25
Proposition
Un (PL) admet une solution realisable si et seulement si le probl`eme
auxiliaire (PLA) admet une solution de base optimale avec a = 0.
26
Proposition
Un (PL) admet une solution realisable si et seulement si le probl`eme
auxiliaire (PLA) admet une solution de base optimale avec a = 0.
D
etermination dune solution de base r
ealisable via le probl`
eme
auxiliaire : On applique lalgorithme du simplexe au probl`eme auxiliaire
(PLA). A la fin du simplexe, le co
ut minimal est nul sinon on a detecte
limpossibilite pour (PL) (i.e. DR = ). Si tout sest deroule normalement
(co
ut nul), on cherche `a eliminer de la base toutes les variables artificielles.
Deux cas possibles :
1
Sil reste des variables artificielles dans la base (base degeneree) alors
les lignes associees `a ces variables sont des contraintes redondantes
quon elimine.
26
i=1
Si Faux = 0 et @aj XB o`
u XB designe lensemble des variables de
base pour (PLA), alors fin normale de la phase 1. On passe `a la phase
2 du simplexe.
27
Complexit
e du simplexe.
Complexite = nombre diteration dans le simplexe (phase2).
On peut construire des exemples avec une complexite exponentielle
en O(2n ) iterations (Klee-Minty, 1972).
Mais dans la pratique la complexite du simplexe crot peu avec le
nombre n de variables. En pratique, le nombre diterations est
proportionnel au nombre m de contraintes (de m `a 3m iterations).
Si on tient compte de la resolution des syst`emes lineaires avec une
formule de mise `a jour de linverse (Shermann-Morrison), on a O(m2 )
operations pour linverse.
28