Vous êtes sur la page 1sur 22

oss

10 Algorithmes de quasi-Newton

Dans ce chapitre, on sinteresse a` la resolution du probl`eme doptimisation sans contrainte



min f (x)
x Rn

id S

par des algorithmes `


a directions de descente particuliers. On note {xk }k>1 la suite
des iteres et gk = f (xk ) le gradient de f en xk . Les iteres sont donc generes par la
recurrence
xk+1 = xk + k dk , k > 1,
o`
u le pas k > 0 est determine par recherche lineaire (section 6.3) et dk est une
direction de descente. Dans les methodes de quasi-Newton, dk est de la forme
dk = Mk1 gk .

(10.1)

Si Mk = 2 f (xk ) on retrouve la methode de Newton.


Dans beaucoup de probl`emes, on cherche `a eviter le calcul des derivees secondes,
pour les raisons suivantes :
levaluation de 2 f (xk ) ou le produit de ce hessien par un vecteur comme dans
lalgorithme de Newton tronque (section 9.3.1) peut demander trop de temps
de calcul,

Dav

on ne dispose pas toujours des derivees secondes et leur calcul peut demander
un investissement humain trop important, alors que lon voudrait obtenir un
resultat rapidement par des algorithmes peut-etre plus lents que lalgorithme de
Newton mais ne demandant que le calcul des derivees premi`eres,

la fonction peut ne pas etre deux fois derivable,


on ne dispose pas de place memoire pour stocker les O(n2 ) elements dune
matrice (cest la moins bonne des raisons, voir section 9.3.1).

Ce sont des situations dans lesquelles les algorithmes de quasi-Newton sont tr`es utiles.
Dans ceux-ci, la matrice Mk dans (10.1) nest pas egale `a 2 f (xk ), mais est generee
par des formules qui cherchent `
a ce que cette matrice soit proche du hessien de f . On
parle de formules de mise `
a jour. Celles-ci ne font intervenir que les derivees premi`eres
de f . Cest en utilisant la variation du gradient de f dune iteration `a lautre que ces
formules permettent dengranger de linformation sur le hessien.
Dans ce chapitre, on se propose dintroduire et detudier ces formules de mise `a
jour et les algorithmes de quasi-Newton qui les utilisent. Voici quelques proprietes de
ces algorithmes.
333

10. Algorithmes de quasi-Newton

oss
a

334

Localement (proche dune solution), les algorithmes de quasi-Newton convergent moins rapidement que lalgorithme de Newton. Dans les implementations
correctes, les iteres convergent toutefois q-superlineairement.
Chaque iteration demande moins de calcul au simulateur que dans lalgorithme
de Newton : il ne faut pas evaluer les derivees secondes.

id S

Dans leur version standard, ces algorithmes peuvent etre utilises pour un nombre de variables qui nest pas trop grand, disons n 6 500 pour xer les idees.
Cette borne sur n vient dune part du coup de literation (de lordre de O(n2 )
operations dans loptimiseur) et du fait que les algorithmes deviennent plus lents
lorsque n augmente. Notons quil existe des adaptations de ces algorithmes
quasi-newtoniens pouvant etre utilisees pour resoudre des probl`emes de tr`es
grande taille, avec plusieurs millions de variables, par exemple. Ces methodes
sont dites `
a memoire limitee car elles ne demandent pas que lon garde Mk en
memoire. Lalgorithme -BFGS de la section 10.2.4 est de ce type. Il est tr`es
utilise.

Hypoth`ese generale `
a ce chapitre. Nous developperons la theorie lorsque le produit
scalaire que lon se donne sur Rn est le produit scalaire euclidien : (u, v) 7 uv.
Dans ce cas, f (x) est le vecteur des derivees partielles de f . On peut se placer
dans un cadre plus general en ne faisant aucune hypoth`ese sur le produit scalaire
(u, v) 7 hu, vi utilise. Il faut alors utiliser le produit tensoriel associe (u, v) 7 u v,
o`
u (u v) est la matrice dordre n denie par
(u v)d := hv, diu,

pour tout d Rn .

Dav

Pour obtenir des formules de mise `a jour tenant compte du produit scalaire utilise (et
donc du preconditionnement que cela implique), il sut le plus souvent de remplacer
dans les formules obtenues une matrice de la forme uv par la matrice u v. Voir par
exemple [182] et ses references pour plus details.

10.1 Formules de mise `


a jour
10.1.1 Principes

Supposons que Mk soit connue et cherchons quelle valeur donner `a Mk+1 pour que
cette matrice approche 2 f (xk+1 ). On cherche `a ce que Mk+1 soit proche du hessien
de f pour que lalgorithme herite des bonnes proprietes de convergence locale de
lalgorithme de Newton.
Soient
sk := xk+1 xk et yk := gk+1 gk ,
o`
u gk = f (xk ) comme dhabitude. Le developpement de Taylor avec reste integral
donne
Z 1

2
yk =
f (xk + tsk ) dt sk .
0

oss
a
10.1. Formules de mise `
a jour

335

Si on veut que la nouvelle matrice Mk+1 approche le hessien de f , il semble raisonnable


R1
de lui imposer de satisfaire lequation veriee par le hessien moyen 0 2 f (xk +tsk ) dt,
`a savoir
yk = Mk+1 sk .
(10.2)
Cette relation porte le nom dequation de quasi-Newton. Dautre part, comme le
hessien de f est symetrique, il est normal dimposer egalement cette propriete `a Mk+1 :

Mk+1 = Mk+1
.

(10.3)

id S

Rien nassure a priori que cette idee simple dimposer `a Mk+1 de verier des proprietes facilement exprimable du hessien moyen donnera une matrice avec de bonnes
proprietes, mais lexperience a montre que linspiration est excellente.
Si n > 1, les conditions (10.2) et (10.3) ne susent pas pour determiner Mk+1 : il
y a n(n + 1)/2 inconnues et n equations seulement. Ce manque de conditions laisse
une liberte dont ne se sont pas prive les specialistes en optimisation numerique. Les
annees 1970-80 ont vu ainsi natre de nombreuses formules de mise `a jour. Les plus
importantes en optimisation sont la formule SR1 et la formule de BFGS.
Avant dintroduire ces formules, notons que lorsque n = 1, les conditions (10.2) et
(10.3) determinent Mk+1 , qui est le scalaire yk /sk (on suppose xk+1 6= xk ). Lalgorithme de quasi-Newton avec pas unite associe donne (en decalant les indices dune
unite et en supposant gk1 6= gk et gk 6= 0) :
xk+1 = xk

sk1
gk
yk1

ou

xk xk+1
xk1 xk
.
=
gk 0
gk1 gk

On reconnat lalgorithme de la secante. Les methodes de quasi-Newton portent dailleurs parfois ce nom. La gure 10.1 rappelle ce quest lalgorithme de la secante en

Dav

xk+1

xk

x
xk+1 xk

xk1

Fig. 10.1. Comparaison des algorithmes de Newton (`


a gauche) et de quasi-Newton (`
a droite)
lorsque n = 1

dimension 1 et le compare `
a lalgorithme de Newton lorsque lon cherche `a minimiser
une fonction x R 7 f (x) R en annulant sa derivee. Dans lalgorithme de Newton
(`
a gauche), le nouvel itere xk+1 est obtenu en calculant lintersection avec laxe des
abscisses de la droite tangente `
a la courbe x 7 f (x) en (xk , f (xk )) (cest le zero de
la fonction f linearisee en xk ), tandis que dans lalgorithme de la secante (`
a droite),

10. Algorithmes de quasi-Newton

oss
a

336

on prend lintersection du meme axe avec la droite passant par (xk1 , f (xk1 )) et
(xk , f (xk )). Dans ce dernier algorithme, on ne doit pas lineariser f (cest-`
a-dire
calculer la derivee seconde de f ), mais on doit utiliser la valeur de f aux deux points
xk1 et xk .
10.1.2 Formule SR1

Une premi`ere idee est de rechercher parmi les matrices veriant (10.2) et (10.3), une
matrice Mk+1 susamment proche de Mk en imposant que la dierence entre les deux
matrices soit de rang 1. On prend une correction de faible rang de mani`ere `a assurer
une certaine stabilite `
a la suite {Mk }. Il semble en eet raisonnable de souhaiter que
ces matrices noscillent pas trop au cours des iterations.
On cherche donc une mise `
a jour de la forme

id S

Mk+1 = Mk + uv,

o`
u u et v sont deux vecteurs de Rn `a determiner. Si on veut que Mk+1 verie lequation
de quasi-Newton (10.2), il faut que u et v satisfassent
yk = Mk sk + (vsk )u.

Si vsk = 0, soit Mk verie dej`


a lequation de quasi-Newton, soit une correction
de rang 1 de Mk ne permet pas dobtenir une matrice veriant cette equation. Si
vsk 6= 0, la relation ci-dessus permet de determiner u, ce qui conduit `a
Mk+1 = Mk +

(yk Mk sk )v
.
vsk

Pour que Mk+1 soit symetrique (on suppose que Mk lest), il faut donc prendre v =
yk Mk sk , ce qui donne
(yk Mk sk )(yk Mk sk )
.
(yk Mk sk )sk

Dav

Mk+1 = Mk +

(10.4)

Cette formule porte le nom de formule SR1 (Symetrique de Rang 1). Elle nest
bien denie que si (yk Mk sk )sk 6= 0. En pratique, cela necessite lutilisation de
garde-fous corrigeant le denominateur dans (10.4) sil est trop petit. La formule SR1
est souvent utilisee lorsquil nest pas possible ou quil nest pas necessaire que Mk+1
soit denie positive. Si cette propriete est souhaitable, on recourt `a la formule de
BFGS decrite ci-apr`es, laquelle a de meilleures proprietes que la formule SR1.
10.1.3 Formule de BFGS

Une autre mani`ere dimposer `


a Mk+1 detre proche de Mk est de minimiser lecart
entre Mk+1 et Mk , toujours en requerant que Mk+1 soit symetrique et verie
lequation de quasi-Newton (10.2). On est donc conduit `a considerer le probl`eme
en la variable matricielle M Rnn suivant :

oss
a
10.1. Formules de mise `
a jour

min ecart(M, Mk )
y k = M sk

M = M .

337

(10.5)

id S

On dit alors que la matrice est obtenue par une approche variationnelle. La fonction
ecart utilisee dans ce probl`eme est speciee ci-dessous.
Il est souvent interessant dimposer egalement la denie positivite des matrices Mk .
En eet, dans ce cas, dk donnee par (10.1) est une direction de descente de f en xk .
Cette exigence nest pas depourvue de fondement puisque Mk doit approcher 2 f (x )
qui est semi-denie positive en la solution et denie positive en des solutions fortes
(celles veriant les conditions doptimalite du second ordre).
Pour obtenir des matrices ayant cette propriete de denie positivite, il ne sut
one Sn++ des matrices
pas dajouter cette contrainte au probl`eme (10.5). En eet, le c
symetriques denies positives est un ouvert dans lespace vectoriel des matrices Rnn ,
si bien quavec cette contrainte additionnelle, (10.5) peut ne pas avoir de solution.
Imposer la semi-denie positivite (on a alors un ferme) nest pas satisfaisant non
plus, car Mk+1 ne serait pas necessairement inversible et dk ne serait pas bien deni
par (10.1). On va donc chercher `a ce que ce soit le crit`ere dans (10.5) qui impose la
denie positivite de la matrice solution.
Dans ce but, on commence par introduire une fonction : Sn R, dont le
domaine est Sn++ et qui forme une barri`ere au bord du c
one Sn++ (elle tend vers
linni lorsque son argument se rapproche du bord de Sn++ ) ainsi qu`a linni :
(M ) = tr M + ld M,

(10.6)

o`
u la fonction log-determinant ld : Sn R {+} est denie en M Sn par

log det M
si M Sn++
ld(M ) =
+
sinon

Dav

Les proprietes annoncees de peuvent se voir


son expression
Psur
Qnsuivante. Si on note
n
{i } les valeurs propres de M , on a tr M = i=1 i , det M = i=1 i et donc
(M ) =

n
X
i=1

(i log i ),

si M Sn++ .

t log t
1

(10.7)

Etant
donne lallure de la fonction t R++ 7 t log t, (M ) tend vers linni si
lune des valeurs propres de M tend vers zero ou vers linni.
La formule (10.7) montre aussi que lunique minimiseur de est la matrice identite (i = 1 pour tout i). An de minimiser lecart entre M et Mk , on va chercher
1/2
1/2
`a ce que Mk
M Mk
soit proche de I. Ceci peut etre obtenu en minimisant
1/2
1/2
(Mk
M Mk
). On est donc conduit `a resoudre le probl`eme suivant sur lespace
vectoriel Sn des matrices symetriques :

min (Mk1/2 M Mk1/2 )


(10.8)
y = M sk
k
M Sn++
(contrainte implicite).

10. Algorithmes de quasi-Newton

oss
a

338

Si sk = 0, de deux choses lune : soit yk 6= 0 et le probl`eme ci-dessus na pas de solution


(son ensemble admissible est vide), soit yk = 0 et sa solution est Mk ( prend alors
sa valeur minimale n sur Sn++ ). Le cas non trivial o`
u sk 6= 0 est examine dans la
proposition suivante.
Proposition 10.1 Supposons que Mk soit symetrique definie positive et que sk 6=
0. Alors, le probl`eme (10.8) a une solution si et seulement si y
k sk > 0. Sous
cette condition la solution Mk+1 de (10.8) est unique et est donnee par lune des
formules suivantes :
Mk sk s
yk y
k Mk
k

y k sk
sk M k sk

id S

Mk+1 = Mk +

Wk+1





sk y
yk s
sk s
k
k
= I
Wk I
+ k,
y k sk
y k sk
y k sk

(10.9)

(10.10)

1
o`
u on a note Wk := Mk1 et Wk+1 := Mk+1
.

D
emonstration. Dabord, il est clair que si (10.8) a une solution Mk+1 , qui est

une matrice symetrique denie positive, on a y


k sk = sk Mk+1 sk > 0. On suppose

dorenavant que yk sk > 0.


Montrons dabord que le probl`eme (10.8) a au plus une solution. Lensemble admissible de (10.8) etant clairement convexe, il sut de verier que est strictement
convexe, ce que lon fait en calculant ses derivees secondes. Rappelons que, pour une
matrice inversible A, det (A) H = (det A) tr(A1 H). Alors, pour tout M Sn++ et
tout H Sn non nul, on a avec W := M 1 :

Dav

(M ) H = tr H tr(W H),

(M ) H 2 = tr(W 1/2 HW 1/2 )(W 1/2 HW 1/2 ) > 0.

On ach`eve la demonstration en calculant explicitement la solution M = Mk+1


de (10.8) au moyen des conditions doptimalite du premier ordre. On travaille dans
lespace vectoriel Sn des matrices symetriques dordre n, muni du produit scalaire
hA, Bi = tr AB. On note Rn le multiplicateur de Lagrange associe `a la contrainte
ane de (10.8), si bien que le lagrangien secrit
1/2

1/2

(M, ) = (Wk M Wk ) + (yk M sk ).

On cherche M Sn++ telle que pour tout H Sn la derivee directionnelle de en M


dans la direction H soit nulle, cest-`a-dire
1/2

1/2

1/2

1/2

1/2

1/2

tr(Wk HWk ) tr(Mk W Mk )(Wk HWk ) Hsk = 0.

En utilisant la relation tr(AB) = tr(BA), on obtient pour tout H Sn :

oss
a
339

10.1. Formules de mise `


a jour

0 = tr(Wk H) tr(W H) tr(sk H) = tr



 
sk + s
k
H .
Wk W
2

Comme le facteur de H ci-dessus est dans Sn , on a


W = Wk

sk + s
k
.
2

Pour calculer , on utilise lequation de quasi-Newton, qui donne


sk = Wk yk

y
ysk
k
sk k .
2
2

id S

En prenant le produit scalaire avec yk et en utilisant le fait que y


k sk 6= 0, on trouve

=
y
(W
y

s
)/(y
s
)
qui,
inject
e
dans
la
relation
ci-dessus,
fournit la valeur
k
k
k
k
k
k
k
du multiplicateur
=

y(sk Wk yk )
2
(sk Wk yk ) + k
sk .

2
y k sk
(y
k sk )

En utilisant celle-ci dans la formule de W ci-dessus, on trouve lexpression de Wk+1


suivante
Wk+1 = Wk +

y
(sk Wk yk )s
k (sk Wk yk )
k + sk (sk Wk yk )

sk s
k.
2
y
s
(y
k k
k sk )

(10.11)

Par un calcul laborieux, mais mecanique, on verie que cette formule est equivalente
`a (10.10) et que Mk+1 donne par (10.9) est bien linverse de Wk+1 donne par (10.10)
(il sut de verier que Mk+1 Wk+1 = I).
Il reste `
a montrer que la matrice obtenue est bien dans Sn++ (le probl`eme (10.8)
a des points stationnaires en dehors de cet ensemble), si y
k sk > 0. Pour un vecteur
v Rn arbitraire, la formule (10.9) donne

Dav

vMk+1 v = vMk v

2
2
(y
(s
k v)
k Mk v)
+
.
s
y
k M k sk
k sk

Le dernier terme est positif. On voit quil en est de meme de la somme des deux
premiers termes, car dapr`es linegalite de Cauchy-Schwarz
1/2

1/2

2
2
2

(s
k Mk v) 6 kMk sk k2 kMk vk2 = (sk Mk sk )(v Mk v).

Donc vMk+1 v > 0 et ce produit ne peut etre nul que si v yk et v k sk , ce qui nest
vrai que si v = 0, car y
2
k sk > 0.

Les formules (10.9) et (10.10) portent le nom de formules de BFGS directe


et inverse. Lappellation BFGS vient des initiales des auteurs (Broyden, Fletcher,
Goldfarb et Shanno) qui ont propose cette formule dans des articles parus en
1970 [74, 153, 191, 394]. On notera les formules (10.9) et (10.10) de la mani`ere suivante :
Mk+1 = BFGS(Mk , yk , sk ) et Wk+1 = BFGS(Wk , yk , sk ).

10. Algorithmes de quasi-Newton

oss
a

340

Notons que la premi`ere de ces formules peut aussi secrire sous la forme de produits
de matrices [71, 192] :


k v
Mk+1 = I + vk s
k ,
k Mk I + s

1/2
1/2
o`
u vk := M sk + yk , sk := sk /(s
et yk := yk /(y
. Observons enn
k M k sk )
k sk )
que les corrections Mk+1 Mk et Wk+1 Wk apportees par la formule de BFGS sont
des matrices de rang 2.
La proposition 10.1 a pour corollaire immediat que si s 6= 0

M Sn++ : y = M s

ys > 0.

(10.12)

id S

Cette proposition a une extension naturelle au cas o`


u lon impose plus dune equation
de quasi-Newton, qui doivent toutefois etre compatibles : M Sn++ doit verier Y =
M S, o`
u Y , S Rnp et S est injective (voir lexercice 10.1). Lequivalence (10.12)
devient alors
M Sn++ : Y = M S Y S Sn++ .
On utilise rarement une formule de mise `a jour qui gen`ere une matrice M veriant le
syst`eme Y = M S rassemblant plus dune equation de quasi-Newton, car on ne sait
pas comment satisfaire la condition Y S 0 qui assure la denie positivite de M . La
situation est dierente si lon na quune seule equation de quasi-Newton `a satisfaire,
car nous verrons quil est aise de verier la condition ys > 0 apparaissant dans
(10.12) (voir la section 10.2.1).
Propri
et
es alg
ebriques

Dav

Voici une propriete de la formule de BFGS qui justie lutilisation de cette formule pour construire des preconditionneurs symetriques denis positifs de syst`emes
lineaires. Elle nous apprend que, si au cours de la minimisation dune fonction quadratique strictement convexe sur Rn par lalgorithme du gradient conjugue, on met `a jour
une matrice par le formule de BFGS (resp. par la formule de BFGS inverse), en utilisant les couples (Aui , ui ) formes `a partir des directions conjuguees ui , la matrice
obtenue apr`es n iterations est le hessien de la fonction minimisee (resp. son inverse).
Proposition 10.2 Soit A une matrice symetrique et u1 , . . . , up des directions
non nulles, conjuguees par rapport `
a cette matrice (cest-`
a-dire : u
i Auj = 0, pour

i 6= j et ui Aui > 0). On se donne une matrice M1 symetrique definie positive et


on definit Mi+1 = BFGS(Mi , Aui , ui ), pour i = 1, . . . , p. Alors,
(i) Mk+1 ui = Aui , pour k = 1, . . . , p et i = 1, . . . , k,
(ii) si p = n, on a Mn+1 = A.

D
emonstration. La premi`ere propriete se demontre par recurrence. Elle est veriee
pour k = 1 : M2 u1 = Au1 (cest lequation de quasi-Newton veriee par M2 ). Supposons quelle le soit pour un k = 1, . . . , l 1, avec 2 6 l 6 p, et demontrons la pour

k = l. Soit 1 6 i < l. Par conjugaison et recurrence, u


l Aui = 0 et ul Ml ui = ul Aui =
0. D`es lors, la formule de BFGS (10.9) donne Ml+1 ui = Ml ui = Aui . Si i = l, on a
Ml+1 ui = Aui (cest lequation de quasi-Newton veriee par Ml+1 ).

oss
a
10.2. Lalgorithme de BFGS

341

Si p = n, Mn+1 prend la meme valeur que A sur les n vecteurs lineairement


independants u1 , . . . , un . Donc Mn+1 = A.
2
Terminons cette section par deux formules qui nous seront utiles pour etudier la
convergence de lalgorithme de BFGS, celles de la trace et du determinant.
Proposition 10.3 Si Mk+1 et Mk sont relies par le formule de BFGS (10.9)
avec Mk definie positive et y
k sk > 0, on a


kyk k2
y k sk
kMk sk k22
tr Mk+1 = tr Mk + 2
.
et det Mk+1 = det Mk
y k sk
sk M k sk
s
k M k sk

id S

D
emonstration. La formule de la trace se deduit directement de (10.9). Pour celle
du determinant, on ecrit


Mk1 yk y
sk s
k
k Mk

.
det Mk+1 = det(Mk ) det I +
y
sk M k sk
k sk
Pour evaluer le dernier determinant, on utilise le point (iii) de lexercice B.12.

Propri
et
es asymptotiques N

Dav

Supposons que lon ait deux suites {yk }k>1 et {sk }k>1 de vecteurs de Rn , veriant
y
etrique denie positive M1 .
k sk > 0 pour tout k > 1, et une matrice dordre n sym
On gen`ere alors la suite {Mk }k>1 par la formule de BFGS : Mk+1 = BFGS(Mk , yk , sk )
pour tout k > 1. On sinteresse ici aux proprietes que peuvent induire les vecteurs
yk et sk sur la suite {Mk }. Ces proprietes seront utiles pour etudier le comportement
asymptotique des suites generees par lalgorithme de BFGS.
On sait dej`
a, dapr`es la proposition 10.1, que les matrices Mk sont toutes symetriques denies positives.
10.1.4 Formule de mise `
a jour pour matrices creuses N

10.2 Lalgorithme de BFGS

10.2.1 D
efinition de lalgorithme

Dapr`es la proposition 10.1, on aura un algorithme `a directions de descente si dans


(10.1), Mk est generee par la formule de BFGS `a partir dune matrice initiale M1
denie positive et si `
a chaque iteration on realise linegalite y
k sk > 0. La formule de
BFGS gen`ere alors des matrices Mk denies positives. Il est tout `a fait remarquable
que linegalite y
eaire determine le pas
k sk > 0 soit satisfaite lorsque la recherche lin
k > 0 par la r`egle de Wolfe (section 6.3.4; rappelons que lon a choisit le produit
scalaire euclidien hu, vi := uv). En eet, si lon retranche g
k dk dans les deux membres
de linegalite (6.12), on obtient

10. Algorithmes de quasi-Newton

oss
a

342

y
k sk > (2 1) gk sk > 0,

car 2 < 1 et g
k sk = k gk dk < 0 (dk est une direction de descente). Pour minimiser une fonction non lineaire (non quadratique) au moyen de la formule de BFGS,
on utilise donc toujours la recherche lineaire de Wolfe. Ceci conduit `a lalgorithme
parfaitement bien deni suivant.

Algorithme 10.4 (de BFGS)

id S

0. On se donne deux constantes 1 et 2 pour la recherche lineaire de Wolfe :


0 < 1 < 21 et 1 < 2 < 1.
Choix dun itere initial x1 Rn et dune matrice initiale W1 denie positive
(approximation de linverse du hessien 2 f (x1 )).
Initialisation : k := 1.
1. Test darret : si f (xk ) = 0, arret de lalgorithme.
2. Calcul de la direction de descente : dk = Wk gk .
3. Recherche lineaire de Wolfe : trouver un pas k > 0 tel que lon ait (6.11)
et (6.12).
4. xk+1 := xk + k dk .
5. Mettre `
a jour la matrice Wk par la formule (10.10) dans laquelle on prend
sk = xk+1 xk et yk = f (xk+1 ) f (xk ).
6. Accrotre k de 1 et aller en 1.

En pratique, on arrete lalgorithme `a letape 1 lorsque f (xk ) est susamment petit.


On notera Mk = Wk1 linverse des matrices generees par lalgorithme ci-dessus, qui
approchent donc le hessien 2 f . On trouvera `a la section 10.2.3 plus de details sur la
mise en uvre de lalgorithme de BFGS. Analysons dabord ses principales proprietes.

Dav

10.2.2 Propri
et
es
Convergence

Un des plus beaux resultats de convergence en optimisation sans contrainte est le


theor`eme 10.5 ci-dessous. Il donne des conditions assurant la convergence globale de
lalgorithme de BFGS lorsque la fonction `a minimiser est convexe. On notera quil
nest pas necessaire de supposer la forte convexite du crit`ere, mais on ne connat
pas de resultat si f nest pas convexe. La beaute du resultat tient au fait quil est
rare de pouvoir montrer la convergence dun algorithme quasi-newtonien, avec si peu
dhypoth`eses sur les objets generes par celui-ci. On suppose seulement que lalgorithme
gen`ere une suite {xk } (ce qui signie quil ne sarrete pas `a letape 1 parce que le
gradient y est nul; auquel cas, il ny a rien `a demontrer) et que la suite f (xk ) est bornee
inferieurement (il existe une constante C telle que pour tout indice k, f (xk ) > C).
On ne fait aucune hypoth`ese sur la suite des matrices {Mk }.

oss
a
10.2. Lalgorithme de BFGS

343

Th
eor`
eme 10.5 Supposons que f : Rn R soit convexe et C 1,1 dans un
voisinage convexe de {x Rn : f (x) 6 f (x1 )}, o`
u x1 Rn . On consid`ere
lalgorithme de BFGS demarrant en x1 avec une matrice M1 symetrique definie
positive et on suppose que celui-ci gen`ere une suite {xk } telle que {f (xk )} soit
bornee inferieurement. Alors, lim inf k kgk k = 0.

D
emonstration. On note C1 , C2 , . . . des constantes strictement positives. Lidee de
la demonstration est de contr
oler le comportement des matrices {Mk } en obtenant
une majoration de leur trace et une minoration de leur determinant, ce qui permettra
davoir une borne inferieure sur le pas k . On note
s
k M k sk
ksk k22

et

cos k :=

g
s
k dk
k M k sk
=
kgk k2 kdk k2
kMk sk k2 ksk k2

id S

qk :=

le quotient de Rayleigh de Mk dans la direction sk et le cosinus de langle entre dk et


loppose du gradient.
Premi`ere etape. On utilise la formule de la trace pour montrer que pour tout k > 1 :
tr Mk+1 6 C1 k

et

k
X
kMi si k2
2

s
i M i si
i=1

k
X
i=1

qi
6 C1 k.
cos2 i

(10.13)

En eet, comme f C 1,1 , on a kyk k22 /(y


k sk ) 6 C2 (proposition 3.57) et donc la
formule de la trace (proposition 10.3) donne
tr Mk+1 6 tr Mk + C2

k
X
kMi si k22
kMk sk k22
.
6
tr
M
+
C
k

1
2
s
s
i M i si
k M k sk
i=1

Dav

On en deduit la premi`ere estimation de (10.13) avec C1 := tr M1 + C2 . Dautre part,


comme Mk+1 est denie positive, on a tr Mk+1 > 0 et linegalite precedente donne la
seconde estimation de (10.13).
Deuxi`eme etape. En utilisant la majoration de la trace (10.13) et une minoration
du determinant, on obtient une minoration de la plus petite valeur propre de Mk+1 ,
donc une minoration du pas. On montre en fait que cela conduit `a la borne inferieure
suivante sur le pas moyen : pour tout k > 1,
k
Y

i=1

! k1

> C3 .

(10.14)

En eet, par la formule du determinant (proposition 10.3) et la r`egle de Wolfe (6.12) :

10. Algorithmes de quasi-Newton

det Mk+1

=
>
>
>

oss
a

344

y
k sk

sk M k sk

det Mk

(12 )
det Mk
k
(12 )k
det M1
Qk
i=1 i
C4k
Qk
i=1

id S

avec C4 := (12 ) min(1, det M1 ). Dautre part, en utilisant linegalite des moyennes,
(10.13) et le fait que k n 6 (en )k :
n
n 

C1
1
6 C5k ,
tr Mk+1
6
k
det Mk+1 6
n
n

avec C5 := max(1, C1 /n)n en . Les deux estimations ci-dessus conduisent `a (10.14) avec
C2 := C4 /C5 .
Troisi`eme etape. En exploitant la deuxi`eme estimation de (10.13), on obtient une
majoration du pas moyen pondere. On se defera de la ponderation dans le raisonnement par labsurde de la quatri`eme etape. Pour tout k > 1 :
k
Y

i=1

En eet,

i kgi k22

k
X
kMi si k2
2

i=1

s
i M i si

! k1

C6
.
k

k
X
i kgi k2
2

i=1

g
i si

(10.15)

6 C1 k.

On utilise ensuite deux fois linegalite des moyennes et la r`egle de Wolfe (6.11)
k
Y

Dav

k
Y

i=1

i kgi k22

6 C1k

(g
i si )

i=1

!k
k
C1 X

(gi si )
k i=1

!k
k
C1 X
6
(f (xi ) f (xi+1 ))
1 k i=1
k

C1
(f (x1 ) f (xk+1 )) .
6
1 k

u fmin R est un minorant


On en deduit (10.15), avec C6 := C1 (f (x1 ) fmin )/1 , o`
de {f (xk )}.
Quatri`eme etape. On conclut par un raisonnement par labsurde. Supposons que
le resultat ne soit pas vrai. Alors kgk k > C7 > 0 et (10.15) donne

oss
a
10.2. Lalgorithme de BFGS

k
Y

i=1

qui est en contradiction avec (10.14).

1
k

345

C6
,
C72 k

Observons que si lon avait suppose f fortement convexe, on naurait pu utiliser de


la recherche lineaire de Wolfe que ce qui est contenu dans la condition de Zoutendijk
(6.21). En eet la formule du determinant aurait donne pour une constante generique
strictement positive C :
det Mk+1 > C

ksk k2
Ck
det
M
>
,
Q
k
k
s
k M k sk
i=1 qi

id S

qui avec la formule de la trace aurait conduit `a


! k1
k
Y
> C.
qi
i=1

Alors la seconde estimation de (10.13) et linegalite des moyennes auraient donne


k
Y

qi
2
cos
i
i=1

Donc

C6

k
Y

i=1

qi

! k1

! k1

6C

k
1 X qi
6 C.
k i=1 cos2 i

k
Y

cos i

i=1

! k1

k
CX 2
cos i .
k i=1

On en aurait deduit que


k>0 cos i = et, avec (6.21), que lim inf kgk k = 0.
Lorsque f est seulement convexe, nous avons vu que la r`egle de Wolfe intervenait `a
plusieurs endroits dans la demonstration.

Dav

Corollaire 10.6 Sous les hypoth`eses du theor`eme 10.5, si la fonction f est fortement convexe, alors la suite {xk } converge vers lunique minimum de f .

D
emonstration. Si f est fortement convexe, il existe un unique point x minimisant
f sur Rn .
Montrons quil existe une sous-suite de {xk } qui converge vers x . La suite {xk } est
bornee (elle est dans {x : f (x) 6 f (x1 )} qui est borne). D`es lors, dapr`es le theor`eme,
on peut trouver une sous-suite convergente {xk }kK , telle que gk 0. On en deduit
que xk x lorsque k dans K (ca ne peut pas etre un autre point du fait de la
continuite du gradient et de lunicite du point annulant le gradient).
On a alors que f (xk ) f (x ). En eet, la suite {f (xk )} est decroissante et bornee
inferieurement. Donc elle converge et ca ne peut etre que vers f (x ), car une sous-suite
converge vers cette valeur.
Il reste `
a conclure. De toute sous-suite {xk }kK , on peut extraire une sous-suite
convergente (elle est bornee), qui ne peut converger que vers x (car f (xk ) converge
vers f (x )). Alors, toute la suite {xk } converge vers x .
2

10. Algorithmes de quasi-Newton

Terminaison quadratique

oss
a

346

Lalgorithme de BFGS peut etre interprete comme une extension de lalgorithme du


gradient conjugue (GC) preconditionne. Si on lutilise pour minimiser une fonction
quadratique strictement convexe, donc de la forme
x Rn 7 f (x) =

1
x Ax bx,
2

o`
u la matrice A est dordre n symetrique denie positive et b Rn , en faisant de la
recherche lineaire exacte, alors lalgorithme gen`ere les memes iteres que lalgorithme
du GC preconditionne par la matrice W1 = M11 . Cette propriete est connue sous le
nom de terminaison quadratique.

id S

Proposition 10.7 (terminaison quadratique) Si f : Rn R est quadratique strictement convexe. Alors lalgorithme de BFGS avec recherche lineaire
exacte est bien defini et gen`ere les memes iteres que lalgorithme du gradient
conjugue preconditionne par la matrice W1 = M11 . En particulier, il converge
en au plus n iterations.

D
emonstration. On montre par recurrence que lon a pour tout k > 1 tel que
gk 6= 0 :
Wi gk = W1 gk , i = 1, . . . , k 1,
(10.16)
(
W1 g1
si k = 1
(10.17)
dk = dGC
gW g
k :=
W1 gk + g k W11 gk dk1 si k > 2,
k1

k1

o`
u dk est la direction du GC preconditionne par la matrice W1 .
Si g1 6= 0 et k = 1, les deux identites sont clairement veriees puisque la premi`ere
direction de lalgorithme de BFGS est d1 = W1 g1 .
Supposons `
a present que les identites (10.16) et (10.17) aient lieu jusqu`
a un indice k > 1 et montrons quelles ont egalement lieu pour lindice k + 1 si gk+1 6= 0.
Sous lhypoth`ese de recurrence, les iteres x1 , . . . , xk+1 de lalgorithme de BFGS sont
identiques `
a ceux generes par le GC preconditionne par W1 . D`es lors s
i gk+1 = 0 pour
i = 1, . . . , k (exercice 7.3) et, par la formule (10.10),


si y
i
Wi+1 gk+1 = I
Wi gk+1 , pour i = 1, . . . , k.
y i si

Dav

GC

On a aussi g
i W1 gk+1 = 0 pour i = 1, . . . , k (exercice 7.3), et donc yi W1 gk+1 = 0
pour i = 1, . . . , k 1. Lidentite ci-dessus avec i = 1, . . . , k 1 permet alors dobtenir
(10.16) par recurrence sur i. Lidentite ci-dessus avec i = k donne

dk+1 = Wk+1 gk+1 = W1 gk+1 +

y
k W1 gk+1
dk .
y
k dk

On en deduit (10.17) en notant que y


k W1 gk+1 = gk+1 W1 gk+1 et yk dk = gk dk =

gk W1 gk (on utilise lhypoth`ese de recurrence et gk dk1 = 0).


2

oss
a
10.2. Lalgorithme de BFGS

10.2.3 Mise en uvre

347

Formules de mise `
a jour directe ou inverse

id S

A priori, il parait plus interessant de mettre `a jour Wk , linverse de Mk par (10.10), que
a ne pas devoir resoudre le syst`eme lineaire Mk dk = gk
Mk par (10.9), de mani`ere `
pour determiner la direction de descente dk `a letape 2 de lalgorithme. Dans cette
approche, la direction dk = Wk gk est obtenue en O(n2 ) operations, alors que la
resolution dun syst`eme lineaire en demande O(n3 ) en general. On notera aussi que
la mise `
a jour de Wk par (10.10) peut se faire en O(n2 ), par la suite doperations
suivantes :


sk y
k
f
Wk = Wk sk (Wk yk )
Wk :=
I
y k sk



fk (W
fk yk )
fk I yk sk + sk sk = W
s
k s
Wk+1 := W
k +s
k,

y k sk
y k sk
1/2
1/2
fk
dans lesquelles on a note sk := sk /(y
et yk := yk /(y
. Evidemment, W
k sk )
k sk )
et Wk+1 peuvent etre stockees dans Wk . Dans les probl`emes avec contraintes, on doit
mettre `
a jour la matrice directe Mk et cela se fait parfois par la formule suivante

Mk+1 = Mk + uk v
k + vk uk + vk vk ,

(10.18)

Dav

1/2
1/2
, yk := yk /(y
,
qui est equivalente `
a (10.9) si on prend sk := sk /(s
k M k sk )
k sk )
uk := Mk sk et vk := yk Mk sk .
ot que (10.11). Cette derni`ere
En pratique il est preferable dutiliser (10.10) plut
formule est en eet instable, du fait des erreurs darrondi qui y sont moins bien
contr
olees et qui peuvent rendre Wk+1 indenie. Cette armation rel`eve de notre
propre experience avec ces formules, mais nous ne connaissons pas detude precise
sur le sujet. On observe toutefois que par le second terme de (10.11), on retranche
une matrice semi-denie positive, alors que dans (10.10) on fait la somme de deux
matrices semi-denies positives. Dans la procedure de calcul proposee ci-dessus, dans
laquelle on evite de devoir former la matrice (I sk y
k ) et de faire un produit de
deux matrices (ce qui requiert O(n3 ) operations), on ne benecie pas enti`erement de
cette bonne propriete, car on retrouve des dierences de matrices pouvant entraner
de linstabilite. De ce point de vue, on pourra aussi preferer la formule (10.18) pour
la mise `
a jour de la matrice directe.
Certains auteurs [186, 192] pref`erent mettre `a jour les facteurs de Cholesky Lk
de Mk = Lk L
ere `
a controler la denie positivite de cette matrice qui peut
k de mani`
etre perdue du fait des erreurs darrondi (pour les probl`emes diciles seulement).
Cette mise `
a jour des facteurs de Cholesky de Mk peut se faire en O(n2 ) operations.
Le calcul de la direction de descente dk demande aussi O(n2 ) operations (il y a deux
syst`emes lineaires triangulaires `
a resoudre), alors quil en faudrait O(n3 ) si Mk netait
pas connue par ses facteurs triangulaires.
Dautres auteurs enn [193, 359, 396] utilisent la troisi`eme approche qui consiste
`a mettre `
a jour des facteurs Zk de Wk = Zk Zk (qui ne sont pas de Cholesky). Cela
permet davoir un meilleur controle de la denie positivite de Wk . Cette approche
jette un nouvel eclairage sur les liens avec lalgorithme du gradient conjugue (voir `a
ce sujet les propositions 10.2 et 10.7).

10. Algorithmes de quasi-Newton

Choix de la matrice initiale

oss
a

348

id S

Le choix de la matrice symetrique denie positive initiale M1 est crucial pour un bon
fonctionnement de lalgorithme de BFGS. On concoit en eet que prendre M1 = I
peut avoir des eets desastreux, parce que la matrice identite peut etre beaucoup
trop grande ou trop petite, selon les cas, et que, Mk+1 Mk etant une matrice de
rang 2, la suite {Mk } ne va pas evoluer rapidement (on tient dailleurs beaucoup `a
cette propriete de stabilite de la formule de BFGS).
En toute logique, il faudrait prendre comme matrice initiale M1 une matrice symetrique denie positive approchant convenablement 2 f (x1 ). On dispose parfois dune
telle matrice. Par exemple, cela peut etre une approximation denie positive de la
diagonale de ce hessien (on rappelle quen toute generalite, celle-ci est aussi co
uteuse
`a evaluer que le hessien complet, voir lexercice ??) ou une partie denie positive de
2 f (x1 ) (comme J1J1 dans les probl`emes de moindres-carres lorsque la jacobienne
J1 = r (x1 ) du residu au point initial est calculable `a peu de frais et est injective, voir
la section 16.2).
Parfois, il est interessant de prendre pour M1 , la matrice obtenue en n de
resolution par lalgorithme de BFGS dun probl`eme voisin. Dans ce dernier cas, on
parle de demarrage `
a chaud.
Le plus souvent, cependant, on ne dispose daucune matrice naturelle M1 et
il faut demarrer `
a froid. On prend alors M1 = I ou W1 = I. Ensuite M2 =
1 I, y1 , s1 ), avec
BFGS(1 I, y1 , s1 ) ou W2 = BFGS(
1 :=

y
1 s1
ks1 k22

et
1 :=

y
1 s1
.
ky1 k22

(10.19)

Dav

Pour k > 2, on prend comme dhabitude Mk+1 = BFGS(Mk , yk , sk ) ou Wk+1 =


BFGS(Wk , yk , sk ). Les facteurs scalaires 1 et
1 , connus sous le nom de facteurs
dOren-Luenberger, sont determines par le souci davoir 1 I et
1 I les plus proches
possible, dans des sens tr`es varies, du sous-espace ane {M Sn : y1 = M s1 } des
matrices symetriques veriant lequation de quasi-Newton (voir lexercice 10.3). On
notera que 1 et
1 sont tous les deux strictement positifs (on suppose y
1 s1 > 0). On
notera egalement que, par linegalite de Cauchy-Schwarz, 1 6 (
1 )1 sans que lon
ait necessairement egalite, si bien que generer les matrices directes ou inverses avec
les initialisations ci-dessus ne donnent pas le meme algorithme. On pourrait dailleurs
aussi prendre 1 = ky1 k22 /(y
1 = ks1 k22 /(y
t pas de crit`ere
1 s1 ) et
1 s1 ). On ne conna
faisant lunanimite permettant de faire le bon choix des facteurs 1 ou
1 ; on utilise
souvent (10.19).
Mise `
a l
echelle r
ep
et
ee

Nous avons dit que la suite {Mk } etait tr`es stable. Helas parfois trop ! Si linitialisation nest pas satisfaisante et que les iteres progressent rapidement, on aimerait
que les matrices evoluent plus vite pour sadapter au hessien courant. Il peut donc
etre interessant de catalyser la mise `a jour en multipliant Mk ou Wk par un facteur
scalaire avant leur mise `
a jour, mais apr`es leur utilisation. On prend donc Mk+1 =
k Wk , yk , sk ), avec des scalaires k > 0 et
BFGS(k Mk , yk , sk ) ou Wk+1 = BFGS(

k > 0 valant

oss
a
349

10.2. Lalgorithme de BFGS

k :=

y
k sk

sk M k sk

et

k :=

y
k sk
.

yk Wk yk

(10.20)

Ceux-ci sont obtenus par un raisonnement analogue `a celui conduisant `a (10.19)


Ce qui peut ne pas fonctionner

id S

Lalgorithme de BFGS avec recherche lineaire en optimisation demande que le gradient soit calcule avec une bonne precision. Si ce nest pas le cas, en particulier
lorsque le gradient est estime par dierences nies, lalgorithme pourra sinterrompre
prematurement parce que la direction generee ne sera pas une direction de descente.
En eet, celle-ci secrit dk = Wk gk , o`
u gk est le gradient calcule et Wk est une
matrice denie positive dont on ne controle pas le conditionnement 2 (Wk ). Comme,
selon (6.4), linverse de ce dernier minore langle k entre dk et gk , on pourra avoir
un angle k arbitrairement proche de /2. Si gk nest pas susamment precis, il se
pourra que la direction dk calculee par lalgorithme de BFGS ne soit pas de descente
en xk , entranant lechec de la recherche lineaire. Si la precision obtenue alors nest
pas susante, il ny a quun seul rem`ede : calculer le gradient avec plus de precision
(eviter la discretisation dun gradient en dimension innie, faire de la dierentiation
automatique ou manuelle, chasser les erreurs darrondi).
10.2.4 Lalgorithme -BFGS

Dav

Si le probl`eme est de grande taille, disons avec un nombre de variables n superieur


a` 500 (ce seuil depend en partie des performances des ordinateurs), les methodes de
quasi-Newton telles quon les a presentees ne sont plus adaptees, pour deux raisons
au moins. Dabord parce quil peut etre impossible de mettre en memoire une matrice
dordre n. Ensuite, meme si le stockage dune telle matrice est possible, sa mise `a jour
peut prendre beaucoup de temps (celle-ci requiert en eet de lordre de n2 operations)
et son adaptation au hessien courant peut etre lente (dans les formules de mise `a jour
vues, la dierence entre deux matrices successives est de faible rang, si bien quil faut
normalement un nombre de mises `a jour proportionnel `a n pour que lapproximation
courante devienne correcte et que lalgorithme devienne ecace).
Une belle decouverte, tr`es utile en pratique, a ete de constater que lon peut
adapter beaucoup de methodes de quasi-Newton `a des probl`emes de tr`es grande taille
en appliquant les principes suivants :
1. on ne forme lapproximation du hessien quen utilisant un nombre limite de
couples (yi , si ), disons m, avec m n (typiquement m 5 . . . 10) ;
2. on ne memorise que ces couples, pas la matrice elle-meme, et les mises `a jour se
font `
a partir dune matrice initiale peu encombrante en memoire (typiquement
une matrice diagonale) ; la matrice approchant le hessien (ou son inverse) est
donc denie de mani`ere implicite, sans representation en memoire ;
3. on calcule le produit de cette matrice (ou de son inverse) par un vecteur (comme
cela est requis par la formule (10.1)) par un algorithme qui doit etre ecace et
peut se passer dune representation explicite de la matrice Wk .

Une technique de mise `


a jour reposant sur ces principes est dite `
a memoire limitee.
La selection des bons couples (yi , si ) est un probl`eme delicat qui na pas trouve de

10. Algorithmes de quasi-Newton

oss
a

350

id S

reponse satisfaisante, si bien que lon selectionne en general les m plus recents, ceux
senses donner la meilleure information sur le hessien courant. De meme, le choix de
la matrice initiale est encore aujourdhui un sujet de recherche ; certains auteurs [297]
choisissent la matrice identite multipliee par un des scalaires de (10.20) ; dautres [182]
utilisent des matrices diagonales, elles-memes mises `a jour au cours des iterations.
Enn, nous verrons quune consequence de la dierentiation automatique en mode
inverse (section 5.4.3) est que le produit de la matrice implicite par un vecteur pourra
se faire de mani`erre ecace si la forme quadratique associee `a cette matrice sevalue
rapidement.
Soyons plus concret et decrivons la mise `a jour par la formule de BFGS ina memoire limitee de linverse du hessien, qui suit
verse (10.10) de lapproximation `
les principes enonces aux points 1-3 ci-dessus. Lalgorithme correspondant est qualie
de -BFGS [336]. La matrice implicite (i.e., non stockee) `a literation k est toujours
notee Wk . Au moment de la mise `a jour, on suppose que xk et xk+1 sont connus ;
le premnier itere est note x1 . Comme mentionne ci-dessus, on utilise en general les
couples les plus recents :
{(ykm+i
, skm+i
) : i = 1, . . . , m},

o`
u

(10.21)

m
:= min(m, k).

Wk0

Partant dune matrice initiale


facilement memorisable et quil faut specier, la
matrice implicite suivante Wk+1 est obtenue par
Wki := BFGS(Wki1 , ykm+i
, skm+i
),

Wk+1 =

pour i = 1, . . . , m

Wkm
,

Dav

o`
u BFGS symbolise la fomule de BFGS inverse (10.10). Il sagit ici dune description
formelle de Wk+1 , car cette matrice nest pas stockee.
Notre but `
a present est de montrer que le produit de la matrice implicite Wk+1 ,
representee par la matrice Wk0 et les couples (10.21), par un vecteur v peut se faire
aisement. Dans (10.1), v = gk+1 , mais ce qui suit est valable pour un vecteur v
arbitraire, ce qui pourra etre utile pour les probl`emes avec contraintes. On note
pour i = 1, . . . , m
:

i := (y
skm+i
)1

km+i

et Vi := I i ykm+i
s
,

km+i

pour i = 0, . . . , m
:

la fonction v Rn 7 i (v) := (vWki v)/2

et on denit par recurrence


qm
= v

et

qi1 = Vkm+i
qi

(pour i = m,
. . . , 1).

Alors, gr
ace `
a (10.10), on a par recurrence
m
(v)

= m
(qm
)
k
1 m1

2
qm
Vk qm
(s qm
=
+
)
Vk Wk
2
2 k
k
2
= m1
(qm1
)+
(s qm

)
2 k
m

X
km+i

(s
qi )2 .
= 0 (q0 ) +
km+i

2
i=1

oss
a
10.2. Lalgorithme de BFGS

351

Cette valeur m
(v) se calcule donc par lalgorithme

:= 0;
q := v;
for (i := m;
i > 1; i := i 1) {
i := s
q;
km+i

2i ;
:= + k2m+i
q := q km+i
i ykm+i
;

}
:= + 12 qWk0 q;

(10.22)

id S

Comme Wk+1 v est le gradient en v de v 7 m


(v), on peut calculer ce vecteur en
executant le code adjoint de (10.22) (voir la section 5.4.3 et plus specialement le
code (5.23) et lexercice 5.5). On note , q et := (1 , . . . , m
) les variables adjointes
de , q et := (1 , . . . , m
ecrit alors
). Ce code adjoint s
:= 1;
q := 0;
:= 0;
q := Wk0 q;
for (i := 1; i 6 m;
i := i + 1) {
i := i km+i
y
q;

km+i

i := i + km+i

i
q := q + i skm+i
;

i := 0;
}
v := q;
q := 0;
:= 0;

(10.23)

Dav

La valeur de Wk+1 v est obtenu `


a la sortie de lalgorithme (10.23) dans le vecteur v. En
combinant (10.22) et (10.23), en ne conservant que les instructions qui sont utiles au
calcul de Wk+1 v et en placant q dans q et tous les i dans , on obtient lalgorithme
suivant :
q := v;
for (i := m;
i > 1; i := i 1) {
i := s
q;
km+i

q := q km+i
i ykm+i
;

}
(10.24)
q := Wk0 q;
for (i := 1; i 6 m;
i := i + 1) {

:= km+i
(
q);

i ykm+i

q := q + skm+i
;

}
La valeur de Wk+1 v est obtenu `
a la sortie de lalgorithme (10.24) dans le vecteur q.
Lapproche que nous avons utilisee pour obtenir lalgorithme de calcul (10.24) montre
pourquoi celui est ecace : il est fonde sur lalgorithm compact (10.22) calculant
rapidement 12 vWk+1 v et le mode inverse de dierentiation automatique, que lon
sait ne pas degrader lecacite de (10.22).

10. Algorithmes de quasi-Newton

oss
a

352

Pour conclure, resumons les instructions de lalgorithme -BFGS.

Algorithme 10.8 (-BFGS)

id S

0. On se donne deux constantes 1 et 2 pour la recherche lineaire de Wolfe :


0 < 1 < 21 et 1 < 2 < 1.
Choix dun itere initial x1 Rn et dun nombre de mises `a jour m.
Initialisation : k := 1, m
= 0.
1. Test darret : si f (xk ) = 0, arret de lalgorithme.
2. Calcul de la direction de descente dk : on determine une matrice initiale
= 0, auquel cas on
Wk0 et on calcule dk par lalgorithme (10.24) (sauf si m
prend dk = Wk0 gk ).
3. Recherche lineaire de Wolfe : trouver un pas k > 0 tel que lon ait (6.11)
et (6.12).
4. xk+1 := xk + k dk .
5. Si k > m, eacer (ykm , skm ) de la memoire. Stocker (yk , sk ).
6. Accrotre k de 1 et aller en 1.

On resout aujourdhui couramment des probl`emes avec n 106 . . . 108 par lalgorithme
-BFGS, en particulier en meteorologie [109, 110] ou oceanographie.

Logiciels N

Dav

De nombreux codes doptimisation non lineaire int`egrent des techniques de quasiNewton. Signalons deux codes doptimisation pour probl`emes sans contrainte de
grande taille, implementant lalgorithme -BFGS : Lbfgs et M1qn3, tous deux largement diuses (le dernier en meteorologie et oceanographie, probl`emes ayant jusqu`
a
108 variables).

Notes N

Le theor`eme 10.5 et son corollaire 10.6 sont dus `a Powell [356; 1976]. On ne pense pas
quil soit possible dobtenir la convergence de lalgorithme de BFGS pour minimiser
des fonctions non convexes, du fait de la non convergence dun algorithme cousin germain dans les memes circonstance, celui du gradient conjugue non lineaire de PolakRibi`ere (voir la section 7.2.6). Ce point noir nempeche pas dutiliser lalgorithme avec
succ`es. Certains auteurs ont propose des modications de lalgorithme de mani`ere
`a pouvoir en montrer la convergence sur des fonctions non convexes. Ainsi Li et
Fukushima [294; 2001] ont obtenu un resultat de convergence globale et superlineaire
avec une modication du vecteur yk en yk + rk sk , o`
u le scalaire rk kgk k.
Prise en compte du caract`ere creux : technique originale due `a Toint [419; 1977] ;
dicultes de non-existence et de non-denie-positivite relevees par Sorensen [402;
1982] ; approche de Fletcher [156; 1995] utilisant la fonction de Byrd et Nocedal.

oss
a
10.2. Lalgorithme de BFGS

353

Lalgorithme -BFGS de la section 10.2.4 a ete propose par Nocedal [336]. La


derivation de lalgorithme (10.24) presentee, utilisant la dierentiation automatique,
est reprise de [184]. Dans les probl`emes avec contraintes, cest lapproximation de
hessiens directs dont on a besoin et on peut construire des approximations quasinewtoniennes `
a memoire limitee [81, 79].

Exercices

10.1. Formule de BFGS par blocs. Soient Y , S Rnp avec S injective et M Sn


++ . On
consid`ere le probl`eme

1/2
M M 1/2 )
minM (M
S
Y =M

M Sn
++ ,

id S

o`
u : Sn
efinie par (10.6). Montrez que ce probl`eme a une
++ R est la fonction d
solution si et seulement si Y S Sn
++ . Montrez que, sous cette condition, la solution
du probl`eme est unique et est donnee par lune des formules suivantes :
M
= M M S(SM S)1 SM + Y (Y S)1 Y
M

=
=

 

I S(Y S)1 Y W I Y (Y S)1 S + S(Y S)1 S

W + (S W Y )(Y S)1 S + S(Y S)1 (S W Y )


S(Y S)1 Y (S W Y )(Y S)1 S.

:= M
1 .
o`
u on a note W := M 1 et W

10.2. Formule de mise `


a jour PSB. Soient yk et sk deux vecteurs de Rn et Mk une matrice
dordre n symetrique. On consid`ere le probl`eme en M Rnn suivant

min kM Mk kF
yk = M s k
(10.25)

M = M ,

Dav

o`
u k kF est la norme de Frobenius sur les matrices. Montrez que, si sk 6= 0, le
probl`eme (10.25) a une solution unique Mk+1 et que celle-ci secrit
Mk+1 = Mk +

(yk Mk sk )s
(yk Mk sk )sk
k + sk (yk Mk sk )

sk s
k . (10.26)
ksk k22
ksk k42

Si sk = 0 et yk 6= 0, le probl`eme (10.25) na pas de solution. Si sk = yk = 0, le


probl`eme (10.25) a comme unique solution Mk+1 = Mk .
Remarque. La formule (10.26) porte le nom de formule PSB (Powell-SymetriqueBroyden). En pratique, elle donne generalement de moins bons resultats que la formule de BFGS. On observera que le cas sk = 0 et yk 6= 0 ne peut pas se presenter en
optimisation ; quant au cas sk = yk = 0, il est normalement signe que litere courant
est stationnaire.

10.3. Initialisation de lalgorithme de BFGS. Montrez que 1 et


1 donnes dans (10.19) sont
respectivement solutions des probl`emes en (, M ) R Rnn et (
, W ) R Rnn
suivants

I W kF
min ,W k
min,M kI M kF
W y1 = s 1
y1 = M s 1
et

W = W .
M = M

10. Algorithmes de quasi-Newton

oss
a

354

Dav

id S

10.4. Proprietes de lalgorithme de BFGS. On consid`ere lalgorithme de BFGS pour minimiser une fonction non lineaire f . On note xk le k-i`eme itere, gk le gradient de f
en xk , Gk := vect{g1 , . . . , gk }, Wk = Mk1 la matrice generee et Q lorthogonalite
par rapport au produit scalaire associe `
a une matrice symetrique definie positive Q.
Montrez que pour tout k > 1, on a
(i) Wk v W1 (Gk ), pour tout v Gk ; en particulier, Wk gk W1 (Gk ) ;
(ii) Wk v = W1 v, pour tout v W1 Gk .
De plus, si W1 = I, avec > 0, on a
(iii) Mk v Gk , pour tout v Gk ;
(iv) Mk v = v, pour tout v I Gk .
Remarque. Ce resultat montre que la direction de recherche est dans W1 (Gk ).