Académique Documents
Professionnel Documents
Culture Documents
Transformations projectives
Considérons le problème sous forme standard :
max cT x
s.c. Ax = b
x≥0
∆x ∈ H = {x ∈ Rn : Ax = 0}.
∆x = I − AT (AAT )−1 A c.
A I − AT (AAT )−1 A c
A∆x =
= Ac − AAT (AAT )−1 Ac
= Ac − Ac = 0.
60
Exemple
Matrice de projection :
P = AT (AAT )−1 A
0.915441 0.091912 0.139706 −0.099265 −0.091912 −0.176471
0.091912 0.856618 0.022059 0.194853 0.143382 0.235294
0.139706 0.022059 0.073529 −0.183824 −0.022059 0.117647
=
−0.099265
0.194853 −0.183824 0.709559 −0.194853 −0.294118
−0.091912 0.143382 −0.022059 −0.194853 0.856618 −0.235294
−0.176471 0.235294 0.117647 −0.294118 −0.235294 0.588235
0.055147
0.113971
−0.786765
∆x = c − P c = −0.283088
−0.113971
−0.058824
x0
Pas maximal : α = min − i = 8.7742
i:∆xi <0 ∆xi
1.48387
2.00000
1 0
7.09677
x = x + α∆x = cT x1 = 15.419
0.51613
0.00000
0.48387
61
Désavantages du gradient projeté
– Le gradient projeté ∆x peut être très différent de la direction de meilleure amélioration (le gradient c).
– Si le point x0 est trop près de la frontière, il n’est pas possible de faire un grand pas dans la direction ∆x sans
atteindre la frontière.
Solution : éviter d’être près de la frontière. Deux approches :
– Transformer le polyèdre de sorte que le point courant soit “centré” pour permettre des pas longs dans la direction
du gradient projeté (affine scaling).
– Eviter la frontière avec des fonctions barrières.
15 Affine scaling
Stratégie simple pour éviter la frontière du polyèdre : “scaling” du modèle pour que xk soit équidistant des
contraintes d’inégalités.
A l’itération k de l’algorithme, on définit la transformation affine Tk : Rn → Rn par
z = Tk (x) = Xk−1 x
Proposition 60. Si
xk1
0 ··· 0
0 xk2 ··· 0
Xk = .
.. .. .. ..
. . . .
0 0 ··· xkn
et xki > 0, i = 1, . . . , n, alors, sous la transformation z ← Xk−1 x,
1. e ← Xk−1 xk ;
2. si z = Xk−1 x, alors x = Xk z ;
3. si P ⊂ Rn est un polyèdre, alors P 0 ← Xk−1 P est aussi un polyèdre de Rn et si x est un point intérieur de
P , alors z = Xk−1 x est un point intérieur de P 0 .
En appliquant la transformation affine à un programme linéaire sous forme standard, on obtient :
max cT Xk z
s.c. AXk z = b
z≥0
Dans cet espace transformé, le point courant xk est transformé en e (eT = (1, 1, . . . , 1)), et on se trouve donc à
une distance d’au moins une unité de la frontière créée par les contraintes de non-négativité.
Gradient projeté
Soit cˆk = Xk c et Aˆk = AXk .
∆z = I − (Aˆk )T (Aˆk (Aˆk )T )−1 Aˆk cˆk
= Xk c − Xk AT (AXk2 AT )−1 (AXk2 )c.
Longueur de pas :
1
αk = α min −
i: ∆zi <0 ∆zi
62
avec 0 < α < 1 pour éviter d’atteindre la frontière.
Le nouveau point est défini par
z k+1 = z k + αk ∆z
dans l’espace transformé. En utilisant xk+1 = Xk z k+1 , on obtient :
Remarque : Il existe une méthode travaillant dans l’espace dual (dual affine scaling).
Critère d’arrêt
Du pas primal, on peut aisément déduire une solution duale :
tk+1 = AT y k+1 − c ≥ 0,
(xk+1 )T tk+1 = 0.
Critère d’arrêt
tk+1 = AT y k+1 − c ≥ 0 et (xk+1 )T tk+1 < .
Exemple
Itération 1
0.11409
0.65493
y=
1.62563
−1.01746
−2.64309
−1.62563
0.11409
t=
0.65493
1.62563
−1.01746
63
2.21071
1.74465
3.75716
x=
0.30000
0.25535
1.46606
cT x = 18.032 xT t = −9.1307
Itération 2
0.22229
3.15227
y=
−2.75226
−0.38249
−0.131492
0.058961
0.222292
t=
3.152268
−2.752258
−0.382487
2.789078
1.583128
0.933020
x= 0.044666
0.416872
2.205950
cT x = 20.278 xT t = −1.9163
Itération 3
0.673240
0.897135
y=
−0.413832
−0.044704
−0.018720
0.028694
0.673240
t=
0.897135
−0.413832
−0.044704
2.920139
1.518403
0.405554
x= 0.043055
0.481597
2.401736
cT x = 20.674 xT t = −0.0061021
Itération 4
0.7377201
0.5625209
y=
−0.0620210
−0.0076621
64
−0.0034962
0.0062393
0.7377201
t=
0.5625209
−0.0620210
−0.0076621
2.946970
1.505456
0.296352
x=
0.042117
0.494544
2.441514
cT x = 20.757 xT t = 0.19203
16 Barrières logarithmiques
16.1 Introduction
Idée : pénaliser la frontière x ≥ 0 par une barrière logarithmique.
Pn
(LPµ ) max cT x + µ i=1 ln(xi )
s.c. Ax = b
x≥0
Exemple
µ=0
µ=5 µ=1000
65
Conditions de Karush-Kuhn-Tucker
Les conditions nécessaires d’optimalité pour (LPµ ) s’écrivent :
c + µX −1 e − AT y = 0
Ax = b
x ≥ 0.
AT y − t = c
Ax = b
x ≥ 0
t = µX −1 e.
Propriétés de convergence
Hypothèses :
1. {x ∈ Rn : Ax = b, x > 0} =
6 ∅.
2. {(y, t) ∈ Rm × Rn : AT y − t = c, t > 0} =
6 ∅.
3. La matrice des contraintes A est de rang m.
Proposition 61. Etant donné µ > 0, il existe une solution unique (x(µ), y(µ), t(µ)) aux conditions de Karush-
Kuhn-Tucker, et x(µ) est la solution optimale de (LPµ ).
Chemin central
Proposition 62. (x(µ), y(µ), t(µ)) converge vers une solution primale-duale optimale lorsque µ → 0.
Comme la solution des conditions de Karush-Kuhn-Tucker est unique pour tout µ > 0, la solution (x(µ), y(µ), t(µ))
trace un chemin (une trajectoire) dans Rn × Rm × Rn .
Chemin central (central path) :
Γ = {(x(µ), y(µ), t(µ)) : µ > 0}.
Difficultés
Résoudre les conditions de Karush-Kuhn-Tucker n’est pas facile à cause de l’équation non-linéaire t = µX −1 e.
Idée des algorithmes “path following” : ne pas suivre exactement la trajectoire centrale Γ, mais rester suffisamment
proche en approximant t = µX −1 e.
AT y − t = c
Ax = b
x ≥ 0
t = µX −1 e.
Idée : prendre une solution approchée (xk , y k , tk ) pour µ = µk doné, telle que AT y k − tk = c, Axk = b,
et xk , tk > 0. Utiliser cette solution comme point de départ pour générer une nouvelle solution approchée
(xk+1 , y k+1 , tk+1 ) par la méthode de Newton.
Rappel : soit le système d’équations
gi (x) = 0 i = 1, . . . , m
où gi : Rn → R, gi ∈ C 1 , i = 1, . . . , m.
66
Le pas de Newton en xk est la solution ∆x de
Dg(xk )∆x = −g(xk ).
où Dg(x) est le Jacobien de g au point x.
Pour notre système, le pas de Newton est la solution de
AT ∆y − ∆t = 0
A∆x = 0
∆t + µk Xk−2 ∆x = −tk + µk Xk−1 e.
Pour αk suffisamment petit, le point
(xk+1 , y k+1 , tk+1 ) = (xk , y k , tk ) + αk (∆x, ∆y, ∆t)
satisfait aussi AT y k+1 − tk+1 = c, Axk+1 = b, et xk+1 , tk+1 > 0.
Soit T k la matrice diagonale correspondant à tk . ∆t + µk Xk−2 ∆x = −tk + µk Xk−1 e peut se réécrire :
Xk ∆t + µk Xk−1 ∆x = −Xk Tk e + µk e
et comme AT ∆y − ∆t = 0,
Xk AT ∆y + µk Xk−1 ∆x = −Xk Tk e + µk e.
Multipliant à gauche par AXk , et vu que A∆x = 0, on a :
AXk2 AT ∆y = −(AXk )(Xk Tk e − µk e)
et donc
∆y = −(AXk2 AT )−1 (AXk )(Xk Tk e − µk e).
De
Xk AT ∆y + µk Xk−1 ∆x = −Xk Tk e + µk e,
on obtient :
1 1
∆x = − Xk (Xk Tk e − µk e) − Xk (Xk AT )∆y
µk µk
1
− Xk I − (Xk AT )(AXk2 AT )−1 (AXk ) (Xk Tk e − µk e)
=
µk
et on a également :
∆t = AT ∆y = −AT (AXk2 AT )−1 (AXk )(Xk Tk e − µk e).
67
Exemple
Pn
(DLPµ ) min bT y + µ i=1 ln(ti )
s.c. AT y − t = c
t≥0
AT y − t = c
Ax = b
x = µT −1 e
t ≥ 0.
AT ∆y − ∆t = 0
A∆x = 0
∆x + µk Tk−2 ∆t = −xk + µk Tk−1 e.
Exemple
68
16.4 Primal-Dual Path Following
Expression des conditions de Karush-Kuhn-Tucker :
Primal Path Following :
t = µX −1 e.
Dual Path Following :
x = µT −1 e
Primal-Dual Path Following :
XT e = µe
Cette forme ne correspond à aucune fonction barrière connue, mais quand µ = 0, on retrouve la contrainte
des écarts complémentaires.
Nous voulons résoudre :
Ax = b
T
A y−t = c
XT e = µe
x, t ≥ 0.
A∆x = 0
AT ∆y − ∆t = 0
Tk ∆x + Xk ∆t = −Xk Tk e + µk e.
Vu que AT ∆y − ∆t = 0, on a :
Tk ∆x + Xk AT ∆y = −Xk Tk e + µk e.
et donc
69
Exemple
70