Optimisation : Cours et Algorithmes Mathématiques
Optimisation : Cours et Algorithmes Mathématiques
Notes de cours
Master 1 Mathématiques et Modélisation (MM)
2017-2018
Bruno G ALERNE
Bureau 812-F
bruno.galerne@parisdescartes.fr
Table des matières
2
Introduction
Ce cours est une introduction aux problèmes d’optimisation. Le cours se focalise essen-
tiellement sur des problèmes d’optimisation sans contrainte en dimension finie. Après une in-
troduction des différentes notions mathématiques nécessaires (rappels de calcul différentiel,
conditions d’optimalité, convexité, etc.), une part importante est donnée à l’exposition des dif-
férents algorithmes classiques d’optimisation, l’étude théorique de leur convergence, ainsi que
la mise en œuvre pratique de ces algorithmes. Le logiciel libre de calcul scientiffique Octave
sera utilisé en séance de Travaux Pratiques (TP).
Octave est téléchargeable gratuitement ici :
https://www.gnu.org/software/octave/
3
Chapitre 1
Les références principales pour ce chapitre sont le chapitre A.4 de [B OYD & VANDENBERGHE]
et le chapitre 7 de [C IARLET]. Dans ce cours on se placera toujours sur des espaces vectoriels
normés de dimensions finis que l’on identifie à Rn , n > 1.
4
1.2.2 Différentielle
Dans tout ce chapitre, Ω désigne un ensemble ouvert de Rn .
Définition 1.1. Soit f : Ω → Rm . La fonction f est différentiable au point x ∈ Ω si il existe
une matrice df (x) ∈ Mm,n (R) telle que au voisinage de x on ait
Exercice 1.2. Soit A une matrice de Mm,n (R) et b ∈ Rm . Montrer que la fonction f : Rn →
Rm définie par f (x) = Ax + b est différentiable sur Rn et calculer sa différentielle en tout point
x ∈ Rn . En déduire que f est C 1 (et même C ∞ ) sur Rn .
Solution de l’exercice 1.2. Pour tous x, h ∈ Rn ,
f (x + h) = A(x + h) + b = f (x) + Ah
donc f est différentiable en x et df (x) = A. Comme x 7→ df (x) est constante, c’est une
application C ∞ donc f est aussi C ∞ .
1.2.3 Gradient
Dans ce cours on s’intéressera plus particulièrement à des fonctions à valeurs réelles, ce qui
correspond au cas m = 1. La matrice jacobienne de f : Ω → R est alors une matrice ligne de
taille 1 × n. La transposée de cette matrice est un vecteur de Rn appelé gradient de f au point
x et noté ∇f (x). Pour tout h ∈ Rn ,
Ainsi, pour f : Ω → R, f est différentiable si et seulement si il existe un vecteur ∇f (x) tel que
5
3. Quel est le gradient de l’application x 7→ 21 kxk2 ?
Solution de l’exercice 1.3.
1. Pour tous x, h ∈ Rn ,
1
f (x + h) = hA(x + h), x + hi
2
1 1 1 1 1 1
= hAx, xi + hAx, hi + hAh, xi + hAh, hi = f (x) + h(A + AT )x, hi + hAh, hi.
2 2 2 2 2 2
Or par Cauchy-Shwarz, | 12 hAh, hi| 6 21 kAhkkhk 6 12 kAkMn (R) khk2 , donc c’est bien en
o de khk. D’où f est différentiable en tout point x ∈ Rn et
1
∇f (x) = (A + AT )x.
2
Remarque. On peut énoncer une version locale du résultat précédent car, comme le suggère
la formule dh(x) = dg(f (x))df (x), pour que h soit différentiable en x, il suffit que f soit
différentiable en x et que g soit différentiable en f (x).
Exemple 1.5. Déterminons le gradient de l’application g : Rn → R définie par
g(x) = f (Ax + b)
6
différentielle d’ordre deux de l’application f au point x. f est deux fois différentiable si elle est
différentiable sur tout Ω. f est deux fois continûment différentiable sur Ω, si f est deux fois dif-
férentiable et si l’application x 7→ d2 f (x) est continue. On note C 2 (Ω) l’ensemble des fonctions
deux fois continûment différentiables.
Dans le cas où m = 1, c’est-à-dire où f : Ω → R est à valeurs réelles, d2 f (x) est une forme
bilinéaire symétrique dont la matrice s’écrit
2
∇2 f (x) = ∂x∂i ∂x
f
j
(x) .
16i,j6n
Cette matrice est appelée matrice hessienne de f au point x. On a alors pour tous vecteurs
h, k ∈ Rn ,
d2 f (x)(h, k) = h∇2 f (x)h, ki = k T ∇2 f (x)h = hT ∇2 f (x)k.
Pour ce cours on aura constamment besoin de calculer le gradient et la matrice hessienne
de fonctionnelles f : Ω → R deux fois différentiables. En pratique on utilise la proposition
suivante.
Proposition 1.6 (La matrice hessienne est la différentielle du gradient). Soit f : Ω → R une
fonction différentiable sur Ω et deux fois différentiable au point x ∈ Ω. Alors, la matrice hes-
sienne ∇2 f (x) de f au point x est la différentielle de l’application gradient x 7→ ∇f (x) au
point x.
Solution de l’exercice 1.7. En explicitant avec les dérivées partielles, la différentielle est la
matrice 2
∂ ∂ f
∂xj
(∇f (x))i = ∂xi ∂xj (x) = ∇2 f (x).
16i,j6n 16i,j6n
Il est difficile de donner une règle de dérivation des fonctions composées pour l’ordre deux.
Voici toutefois deux règles à connaître pour ce cours.
Composition avec une fonction scalaire : On considère f : Ω → R une fonction deux fois
différentiable et g : R → R une fonction deux fois dérivable. Alors, h = g ◦ f est deux fois
différentiable et
g(x) = f (Ax + b)
où A est une matrice de Mm,n (R), b ∈ Rm et f : Rm → R est une application deux fois
différentiable. Alors g est deux fois différentiable et
7
1.4 Formules de Taylor
Les formules de Taylor se généralisent aux fonctions de plusieurs variables. On se limite
aux fonctions à valeurs réelles.
Théorème 1.8 (Formules de Taylor pour les fonctions une fois dérivable). Soit f : Ω → R une
fonction.
(a) Définition de la différentielle = Formule de Taylor-Young à l’ordre 1 : Si f est différentiable
en x ∈ Ω, alors
f (x + h) = f (x) + h∇f (x), hi + khkε(h) avec lim ε(h) = 0.
h→0
On considère maintenant un point h fixé tel que le segment [x, x + h] soit inclus dans Ω.
(b) Formule des accroissements finis : Si f est continue sur Ω et différentiable sur ]x, x + h[,
alors
|f (x + h) − f (x)| 6 sup k∇f (y)kkhk.
y∈]x,x+h[
(c) Formule de Taylor-Maclaurin : Si f est continue sur Ω et différentiable sur ]x, x + h[, alors
il existe θ ∈]0, 1[ tel que
f (x + h) = f (x) + h∇f (x + θh), hi.
(d) Formule de Taylor avec reste intégral : Si f ∈ C 1 (Ω) alors
Z 1
f (x + h) = f (x) + h∇f (x + th), hidt.
0
Preuve. On applique les formules de Taylor à la fonction ϕ(t) = f (x + th), t ∈ [0, 1].
Théorème 1.9 (Formules de Taylor pour les fonctions deux fois dérivable). Soit f : Ω → R
une fonction.
(a) Formule de Taylor-Young à l’ordre 2 : Si f est différentiable dans Ω et deux fois différen-
tiable en x ∈ Ω, alors
1
f (x + h) = f (x) + h∇f (x), hi + h∇2 f (x)h, hi + khk2 ε(h) avec lim ε(h) = 0.
2 h→0
On considère maintenant un point h fixé tel que le segment [x, x + h] soit inclus dans Ω.
(b) Formule des accroissements finis généralisée : Si f ∈ C 1 (Ω) et f est deux fois différentiable
sur ]x, x + h[, alors
1
|f (x + h) − f (x) − h∇f (x), hi| 6 sup k∇2 f (y)kMn (R) khk2 .
2 y∈]x,x+h[
où k · kMn (R) désigne la norme subordonnée des matrices pour la norme euclidienne.
(c) Formule de Taylor-Maclaurin : Si f ∈ C 1 (Ω) et f est deux fois différentiable sur ]x, x + h[,
alors il existe θ ∈]0, 1[ tel que
1
f (x + h) = f (x) + h∇f (x), hi + h∇2 f (x + θh)h, hi.
2
(d) Formule de Taylor avec reste intégral : Si f ∈ C 2 (Ω) alors
Z 1
f (x + h) = f (x) + h∇f (x), hi + (1 − t)h∇2 f (x + th)h, hidt.
0
8
Chapitre 2
où U est une partie donnée de Rn et f : Rn → R est une fonction donnée que l’on appelle fonc-
tionnelle du problème d’optimisation. Le but de l’optimisation est de proposer des algorithmes
permettant d’approcher les solutions x? au sens où, partant d’un vecteur initial x(0) quelconque,
on construit explicitement une suite de vecteurs (x(k) )k>0 convergeant vers une solution x? .
Le problème d’optimisation est dit sans contraintes si U = Rn et sous contraintes sinon.
On dit que le problème est convexe si f et U sont convexes.
Dans ce cours on s’intéressera à résoudre des problèmes d’optimisation convexes, sans
contraintes, et de dimension finie.
On établira dans ce chapitre des conditions d’existence et d’unicité des solutions de pro-
blèmes d’optimisation. Dans les chapitres suivants, on s’intéressera à l’élaboration d’algo-
rithmes itératifs pour la résolution effectives de tels problèmes d’optimisation convexes, sans
contraintes et de dimension finie.
Bien sûr, les méthodes développées dans ce cours permettent également de trouver les va-
leurs maximales de fonctions f . Pour cela il suffit de remplacer f par −f puisque
9
On dit qu’un minimum local x est strict s’il existe un ε > 0 tel que pour tout y ∈ U ∩B(x, ε),
y 6= x, f (y) > f (x). On définit de même la notion de maximum strict.
Enfin, on dit qu’un minimum x est global si pour tout y ∈ U , f (y) > f (x). Si W ⊂ U , on
dira qu’un minimum x ∈ W est global sur W si pour tout y ∈ W , f (y) > f (x). On défini de
même la notion de maximum global.
Théorème 2.2. Soient U une partie non vide fermée de Rn et f : Rn → R une fonction
continue, coercive si l’ensemble U est non borné. Alors il existe au moins un élément x? ∈ U
tel que
f (x? ) = inf f (x).
x∈U
Preuve. Soit x0 un point quelconque de U . La coercivité de f entraîne qu’il existe un réel r > 0
tel que
kxk > r ⇒ f (x) > f (x0 ).
Donc,
inf f (x) = inf f (x).
x∈U x∈U ∩B(0,r)
Comme l’ensemble U ∩ B(0, r) est fermé et borné et que f est continue, f est bornée et atteint
ses bornes sur le compact U ∩ B(0, r), ce qui assure l’existence d’un minimum (global) dans U
(qui est inclus dans U ∩ B(0, r)).
Théorème 2.3 (Condition nécessaire d’extremum local). Soit f : Ω → R une fonction à valeurs
réelles. Si la fonction f admet un extremum local en un point x ∈ Ω et si elle est différentiable
en ce point, alors
∇f (x) = 0 (ou encore df (x) = 0).
10
Exercice 2.4.
1. Prouver le Théorème 2.3 en considérant l’application ϕ : t 7→ f (x + th) pour un vecteur
h ∈ Rn quelconque.
2. Montrer que la conclusion du théorème est fausse si Ω n’est pas un ouvert.
3. Montrer que la réciproque du théorème est fausse : ∇f (x) = 0 n’implique pas que x soit
un extremum local.
Solution de l’exercice 2.4.
1. Soit h ∈ Rn . Comme Ω est un ouvert, il existe ε > 0, tel que pour tout t ∈] − ε, ε[,
x + th ∈ Ω. La fonction ϕ : t 7→ f (x + th) est donc définie sur ] − ε, ε[. Elle est dérivable
en t = 0, et d’après la formule de dérivation des fonctions composées, ϕ0 (0) = df (x)h =
h∇f (x), hi. ϕ ayant un extremum en t = 0, on sait que ϕ0 (0) = 0 (en utilisant le cas bien
connu des fonctions réelles de la variable réelle). On en déduit que h∇f (x), hi = 0. Ceci
est vrai pour tout h ∈ Rn , donc on a bien ∇f (x) = 0.
2. On considère par exemple pour n = 1, f (x) = x sur le domaine fermé Ω = [0, 1] qui
admet un minimum local en x = 0 (au bord du domaine...).
3. Par exemple, toujours sur R, f (x) = x3 a une dérivée nulle en 0 mais 0 n’est pas un
extremum.
On s’intéresse maintenant aux conditions nécessaires et suffisantes faisant intervenir la dé-
rivée seconde.
Théorème 2.5 (Condition nécessaire de minimum local pour la dérivée seconde). Soit f : Ω →
R une fonction différentiable dans Ω. Si la fonction f admet un minimum local en un point
x ∈ Ω et si f est deux fois différentiable en x, alors pour tout h ∈ Rn ,
t2 2
f (x + th) = f (x) + th∇f (x), hi + h∇ f (x)h, hi + t2 khk2 ε(th)
2
avec lim ε(y) = 0. Comme x est un minimum dans l’ouvert Ω, d’après le Théorème 2.3 on a
y→0
∇f (x) = 0. Ainsi,
t2 2
0 6 f (x + th) − f (x) = h∇ f (x)h, hi + t2 khk2 ε(th)
2
t2
En divisant par 2
on en déduit que pour tout t 6= 0,
11
Comme le montre le résultat suivant, la dérivée seconde permet souvent de déterminer la
nature d’un point critique, c’est-à-dire de déterminer si un point critique est bien un minimum
local, un maximum local, ou ni l’un ni l’autre.
Théorème 2.6 (Condition suffisante de minimum local pour la dérivée seconde). Soit f : Ω →
R une fonction différentiable dans Ω et x un point critique de f (i.e. tel que ∇f (x) = 0).
(a) Si la fonction f est deux fois différentiable en x et si
∀h ∈ Rn \ {0}, h∇2 f (x)h, hi > 0
(i.e. la matrice hessienne ∇2 f (x) est définie positive), alors la fonction f admet un mini-
mum local strict en x.
(b) Si la fonction f est deux fois différentiable dans Ω, et s’il existe une boule B ⊂ Ω centrée
en x telle que
∀y ∈ B, ∀h ∈ Rn , h∇2 f (y)h, hi > 0
alors la fonction f admet en minimum local en x.
Preuve. (a) Comme ∇2 f (x) est définie positive, il existe un nombre α > 0 tel que
∀h ∈ Rn , h∇2 f (x)h, hi > αkhk2
(en prenant par exemple α = λmin (∇2 f (x)) la plus petite valeur propre de ∇2 f (x)).
D’après la formule de Taylor-Young,
1 1
f (x + h) = f (x) + h∇f (x), hi + h∇2 f (x)h, hi + khk2 ε(h) > f (x) + ( α − |ε(h)|)khk2
2 2
avec lim ε(h) = 0. Soit r > 0 tel que pour tout h ∈ B(0, r), |ε(h)| < 12 α. Alors, pour tout
h→0
h ∈ B(0, r), f (x + h) > f (h), donc x est bien un minimum strict.
(b) Soit h tel que x + h ∈ B. Alors, comme f est deux fois différentiable, d’après la formule
de Taylor-Maclaurin il existe y ∈]x, x + h[ tel que
1 1
f (x + h) = f (x) + h∇f (x), hi + h∇2 f (y)h, hi = f (x) + h∇2 f (y)h, hi,
2 2
donc f (x + h) > f (x) pour tout h tel que x + h ∈ B, x est bien un minimum local de f .
12
Voici quelques exemples d’ensembles convexes :
— Un sous-espace vectoriel est convexe
— Un hyperplan est convexe.
— La boule unité d’une norme est convexe.
— Toute intersection d’ensembles convexes est convexe.
— Un hyper-rectangle [a1 , b1 ] × · · · × [an , bn ] est convexe. Plus généralement le produit
cartésien C = C1 × · · · × Ck d’ensembles convexes C1 ⊂ Rn1 , . . . , Cn ⊂ Rnk est un
ensemble convexe de l’espace produit Rn1 × · · · × Rnk .
— L’image d’un ensemble convexe par une application linéaire est convexe (voir exer-
cice ci-dessous). En particulier, les translations, rotations, dilatations, projections d’en-
sembles convexes sont convexes.
Exercice 2.8. Soit ϕ : Rn → Rm une application linéaire.
1. Montrer que si U ⊂ Rn est convexe alors l’image directe W = ϕ(U ) = {ϕ(x), x ∈ U }
de U par ϕ est un ensemble convexe de Rm .
2. Montrer que si W ⊂ Rm est un ensemble convexe alors l’image réciproque U = ϕ−1 (W ) =
{x ∈ Rn , ϕ(x) ∈ W } est un ensemble convexe de Rn .
Solution de l’exercice 2.8.
1. Soient y1 et y1 ∈ W . Alors il existe x1 et x2 dans U tel que y1 = ϕ(x1 ) et y2 = ϕ(x2 ).
Soit θ ∈ [0, 1]. Alors, par linéarité,
θw1 + (1 − θ)w2 = θϕ(x1 ) + (1 − θ)ϕ(x2 ) = ϕ(θx1 + (1 − θ)x2 ).
Or comme U est convexe, θx1 + (1 − θ)x2 ∈ U , et donc, θy1 + (1 − θ)y2 ∈ W = ϕ(U ).
W = ϕ(U ) est bien un ensemble convexe.
2. Soient x1 et x2 ∈ U = ϕ−1 (W ) et θ ∈ [0, 1]. Comme W est convexe
ϕ(θx1 + (1 − θ)x2 ) = θϕ(x1 ) + (1 − θ)ϕ(x2 ) ∈ W.
Donc θx1 + (1 − θ)x2 ∈ U = ϕ−1 (W ), c’est bien un ensemble convexe.
Théorème 2.9 (Condition nécessaire de minimum local sur un ensemble convexe). Soit f :
Ω → R et U une partie convexe de Ω. Si la fonction f est différentiable en un point x ∈ U et si
elle admet en x un minimum local par rapport à l’ensemble U , alors
∀y ∈ U, h∇f (x), y − xi > 0 (ou encore df (x)(y − x) > 0.
En particulier si U est un sous-espace affine de Rn (c’est-à-dire U = x + F avec F un sous-
espace vectoriel de V ), alors
∀y ∈ U, h∇f (x), y − xi = 0 (ou encore df (x)(y − x) = 0.
Preuve. Soit y = x + h un point quelconque de l’ensemble U . U étant convexe, les points
x + θh, θ ∈ [0, 1], sont tous dans U . La dérivabilité de f en x permet d’écrire
f (x + θh) − f (x) = θh∇f (x), hi + θkhkε(θh),
avec limθ→0 ε(θh) = 0. Comme le membre de gauche est positif, on a nécessairement h∇f (x), hi =
h∇f (x), y −xi > 0 (dans le cas contraire pour θ assez petit le membre de droite serait < 0). Les
cas des sous-espaces affines U = u + F , on remarque que si x + h ∈ U alors x − h appartient
également à U et donc on a la double inégalité h∇f (x), hi > 0 et h∇f (x), −hi > 0 et donc
h∇f (x), hi = 0.
13
Remarque. L’interprétation géométrique du théorème précédent est très importante. Si u est
un minimum local par rapport au convexe U tel que ∇f (u) 6= 0, alors ∇f (u) est orienté vers
l’intérieur du convexe. En effet, la condition h∇f (u), v − ui > 0 signifie que l’angle formé par
les vecteurs ∇f (u) et v − u est un angle aigu. Dans le cas d’un espace affine U = u + F , cela
revient à une condition d’orthogonalité ∇f (u) ∈ F ⊥ . Dans ce cours on ne considérera pas de
problème de minimisation sous contrainte convexe. En revanche, on sera amené à constamment
minimiser des fonctionnelles sur des sous-espaces affines, et en premier lieu des droites.
Une fonction f est (strictement) concave si son opposée x 7→ −f (x) est (strictement) convexe.
Exercice 2.11. Soient A ∈ Mm,n (R) et b ∈ Rm . Montrer que si f : Rm → R est convexe alors
la fonction g : Rn → R définie par g(x) = f (Ax + b) est également convexe.
Solution de l’exercice 2.11. Soient x, y ∈ Rn et θ ∈ [0, 1]. On a, par linéarité puis convexité,
Théorème 2.12 (Continuité des fonctions convexes). Soit U ⊂ Rn un ensemble convexe d’in-
térieur non vide et f : U → R une fonction convexe sur U . Alors f est continue sur l’intérieur
de U .
14
On admet la preuve de ce résultat qui se démontre en revenant au cas des fonctions de la
variable réelle en restreignant f dans chaque direction. On notera qu’une fonction convexe peut
être discontinue au bord de son domaine (par valeur supérieure).
Etant donnée une fonction f : U ⊂ Rn → R, on appelle sous-ensemble de niveau α de f
l’ensemble
Cα = {x ∈ U, f (x) 6 α}.
Proposition 2.13. Soit U ⊂ Rn un ensemble convexe et f : U → R une fonction convexe sur
U . Alors pour tout α ∈ R, l’ensemble Cα est convexe. En particulier, l’ensemble des minimums
globaux de f est un ensemble convexe (qui peut être vide).
Preuve. Soit α ∈ R. Soient x1 et x2 dans Cα et θ ∈ [0, 1]. Alors, comme f est convexe,
donc θx1 + (1 − θ)x2 ∈ Cα ce qui prouve bien que Cα est convexe. L’ensemble des minimums
globaux de f n’est autre que le sous-ensemble de niveau p∗ = inf f (x) de f , et il est donc bien
x∈U
convexe.
Remarque. La réciproque de la proposition précédente est fausse. Il existe des fonctions non
convexes dont tous les sous-ensembles de niveaux sont convexes, comme par exemple x 7→
−e−x sur R. Un autre exemple : Sur R, tous les ensembles de niveaux de la fonction 1[0,+∞[
sont convexes mais cette fonction n’est pas convexe. En effet,
∅
si α < 0,
Cα = {x ∈ R, 1[0,+∞[ (x) 6 α} = ] − ∞, 0[ si α ∈ [0, 1[,
si α > 1,
R
qui sont bien tous des ensembles convexes. En revanche la fonction n’est pas convexe car par
exemple
1 1 1
1 = f (0) > f (1) + f (−1) = .
2 2 2
f (y) > f (x) + h∇f (x), y − xi (ou encore f (y) > f (x) + df (x)(y − x)).
f (y) > f (x) + h∇f (x), y − xi (ou encore f (y) > f (x) + df (x)(y − x)).
15
Preuve. (a) : ⇒ : Soient x, y deux points distincts de U et θ ∈]0, 1[. Comme f est convexe,
et on a donc
f (x + θ(y − x)) − f (x)
6 f (y) − f (x).
θ
En passant à la limite θ → 0 on a
Soient x, y deux points distincts de U et θ ∈]0, 1[. En appliquant l’inégalité aux deux couples
(θx + (1 − θ)y, y) et (θx + (1 − θ)y, x) on a
et
f (x) > f (θx + (1 − θ)y) + h∇f (θx + (1 − θ)y), (1 − θ)(x − y)i.
En multipliant par (1 − θ) et θ ces deux inégalités, on obtient en les sommant
ω−θ θ
(1 − θ)x + θy = x + ((1 − ω)x + ωy)
ω ω
ω−θ θ
f ((1 − θ)x + θy) < f (x) + f ((1 − ω)x + ωy).
ω ω
D’où,
f (x + θ(y − x)) − f (x) f (x + ω(y − x)) − f (x)
< < f (y) − f (x).
θ ω
En passant à la limite θ → 0 on a alors
Théorème 2.15 (Convexité et dérivabilité seconde). Soit f : Ω → R une fonction deux fois
différentiable et soit U ⊂ Ω un sous-ensemble convexe.
16
(a) La fonction f est convexe sur U si et seulement si pour tout x, y ∈ U ,
Si par hypothèse h∇2 f (z)(z − x), (z − x)i est positif (resp. strictement positif) on déduit du
théorème de caractérisation des fonctions convexes différentiables que f est convexe (resp.
strictement convexe).
Il reste à montrer que si f est convexe alors pour tout x, y ∈ U , h∇2 f (x)(y − x), y − xi > 0.
Soient x, y = x + h ∈ U . En appliquant la formule de Taylor-Young en x pour l’accroissement
th (avec t ∈ [0, 1]),
t2 2
f (x + th) = f (x) + th∇f (x), hi + h∇ f (x)h, hi + t2 khk2 ε(th)
2
avec limt→0 ε(th) = 0. Donc
t2
h∇2 f (x)h, hi + 2khk2 ε(th)
0 6 f (x + th) − f (x) − th∇f (x), hi =
2
et on en déduit que h∇2 f (x)h, hi > 0 avec le raisonnement habituel.
Le cas où U = Ω est une conséquence directe. On peut aussi le démontrer rapidement en
étudiant la différence entre f et ses approximations au premier ordre. En effet, pour x ∈ Ω,
est une fonction convexe (en tant que somme de fonctions convexes), deux fois différentiable et
telle que ∇2 f (y) = ∇2 g(y). Comme g(y) > 0 et que g(x) = 0, x est un minimum global de f
et donc nécessairement pour tout h ∈ Rn , h∇2 f (x)h, hi > 0.
17
2.5.3 Problèmes d’optimisation convexes
On rappelle qu’une problème d’optimisation
Trouver x? tel que x? ∈ U et f (x? ) = min f (x),
x∈U
est dit convexe si U et f sont convexes. Vis-à-vis de l’optimisation, la convexité joue un rôle cru-
cial puisqu’elle permet d’assurer qu’un minimum local est en fait un minimum global, comme
précisé par le résultat suivant.
Théorème 2.16 (Minimum de fonctions convexes). Soit U ⊂ Rn un ensemble convexe.
(a) Si une fonction convexe f : U → R admet un minimum local en un point x, elle y admet
en fait un minimum global sur U .
(b) Une fonction f : U → R strictement convexe admet au plus un minimum local qui est en
fait un minimum global strict.
(c) Soit f : Ω → R une fonction convexe définie sur un ouvert convexe Ω ⊂ Rn . Alors un point
x ∈ Ω est un minimum global de f si et seulement si ∇f (x) = 0 (ou encore df (x) = 0).
(d) Soit f : Ω → R une fonction définie sur un ouvert Ω contenant U et telle que f est convexe
sur U . Alors x ∈ U est un minimum de f sur U si et seulement si pour tout y ∈ U ,
h∇f (x), y − xi > 0 (ou encore df (x)(y − x) > 0.
En particulier, si U = x + F est un sous-espace affine, alors x ∈ U est un minimum de f
sur U si et seulement si pour tout y ∈ U ,
h∇f (x), y − xi = 0 (ou encore df (x)(y − x) = 0.
Preuve. (a) Soit y un point quelconque de U . Comme précédemment, la convexité entraîne que
f (x + θ(y − x)) − f (x)
f (y) − f (x) >
θ
pour tout θ ∈]0, 1[. Comme x est un minimum local, il existe un θ0 assez petit tel que f (x +
θ0 (y − x)) − f (x) > 0. Mais alors, f (y) − f (x) > 0, donc x est bien un minimum global.
(b) Si f est strictement convexe et que x est un minimum local de f , alors pour y 6= x le
raisonnement précédent donne l’existence d’un θ0 > 0 tel que
f (x + θ0 (y − x)) − f (x)
f (y) − f (x) > > 0.
θ0
Donc y 6= x implique f (y) > f (x). x est donc bien un minimum strict qui est global et unique.
(c) On sait que ∇f (x) = 0 est une condition nécessaire pour être un minimum global.
Montrons que c’est une condition suffisante si f est convexe. D’après le Théorème 2.14, si
x ∈ Ω est tel que ∇f (x) = 0, alors pour tout y ∈ Ω, f (y) > f (x) + h∇f (x), y − xi = f (x),
donc x est bien un minimum global.
(d) C’est le même raisonnement. La condition est nécessaire d’après le Théorème 2.9, et si
elle est vérifiée, alors d’après le Théorème 2.14 f (y) > f (x) + h∇f (x), y − xi > f (x) donc x
est bien un minimum global sur U .
Remarque. — Une fonction non strictement convexe peut admettre plusieurs minimums
locaux. Cependant, comme on l’a vu, l’ensemble des minimums globaux forme un en-
semble convexe.
— Le théorème précédent est fondamental pour la suite de ce cours. Sauf exception, en
pratique on ne s’intéressera qu’à des problèmes d’optimisation convexes.
18
2.6 Etude des fonctionnelles quadratiques
On appelle fonctionnelle quadratique toute fonction f : Rn → R de la forme
1
f (x) = hAx, xi − hb, xi + c,
2
où A ∈ Mn (R) est une matrice carrée symétrique, b ∈ Rn et c ∈ R. La proposition suivante
résume les propriétés des fonctionnelles quadratiques.
Proposition 2.17 (Propriétés des fonctionnelles quadratiques). Soit f : Rn → R une fonction-
nelle quadratique de la forme f (x) = 12 hAx, xi − hb, xi + c. Alors,
(a) f est C 2 sur Rn (et même C ∞ ).
(b) Pour tout x ∈ Rn ,
∇f (x) = Ax − b et ∇2 f (x) = A.
(c) f est convexe si et seulement si A est positive.
(d) f est strictement convexe si et seulement si A est définie positive.
(e) infn f (x) est fini si et seulement si A est positive et telle que le système linéaire Ax = b
x∈R
admet (au moins) une solution, et alors l’ensemble de solutions de Ax = b est l’ensemble
des minimums globaux de f . Ainsi résoudre le problème d’optimisation associé à f revient
à résoudre le système linéaire Ax = b.
La preuve de cette proposition est l’objet de l’exercice suivant.
Exercice 2.18. On reprend les notations de la Proposition 2.17 et on pose S = {x ∈ Rn , Ax = b}.
1. Montrer que l’on peut toujours supposer que la matrice A est symétrique.
2. Montrer que f est différentiable sur Rn et que pour tout x ∈ Rn , ∇f (x) = Ax − b.
3. En déduire que f ∈ C ∞ (Rn ) et que pour tout x ∈ Rn , ∇2 f (x) = A.
4. Justifier que f est convexe si et seulement si A est positive.
5. Montrer que f est strictement convexe si et seulement si A est définie positive.
6. Montrer qu’il existe x ∈ Rn tel que pour tout y ∈ Rn , y 6= x, f (x) < f (y) si et seulement
si A est définie positive.
7. Montrer qu’il existe x ∈ Rn tel que pour tout y ∈ Rn , f (x) 6 f (y) si et seulement si A
est positive et S 6= ∅.
8. Montrer que si A n’est pas positive, alors infn f (x) = −∞.
x∈R
9. En considérant le projeté orthogonal de b sur le sous-espace vectoriel ker A, montrer que
si A est positive et que S = ∅ alors infn f (x) = −∞.
x∈R
et donc
1 1 T A + AT
hAx, xi = hAx, xi + hA x, xi = h x, xi.
2 2 2
19
2. On a
1
f (x + h) = f (x) + hAx − b, hi + hAh, hi.
2
Donc f est différentiable en x et ∇f (x) = Ax − b.
3. En déduire que f ∈ C ∞ (Rn ) et que pour tout x ∈ Rn , ∇2 f (x) = A. Comme x 7→ ∇f (x)
est une fonction affine c’est une application C ∞ (Rn ), et donc f est aussi C ∞ (Rn ). On a
bien ∇2 f (x) = A.
4. En utilisant la caractérisation des fonctions convexes deux fois dérivables, f est convexe
si et seulement si pour tout x ∈ Rn , ∇2 f (x) = A est positive, donc si et seulement si A
est positive.
5. Le fait que pour tout x ∈ Rn , ∇2 f (x) = A soit définie positive implique que f est
strictement convexe. En revanche la réciproque est fausse en générale, une fonction peut
être strictement convexe sans avoir partout une matrice hessienne définie positive (voir
par exemple x 7→ x4 sur R). En revanche, on a une caractérisation pour les fonctions
strictement convexes dérivables.
Or, f (y) = (x)+hAx−b, x−yi+ 21 hA(y−x), (y−x)i, donc f (y) > f (x)+h∇f (x), y−xi
si et seulement si hA(y − x), (y − x)i > 0. Comme cela doit être valable pour tout y 6= x,
c’est bien équivalent à A définie positive.
6. Si A est définie positive, alors f est strictement convexe. f admet donc au plus un mi-
nimum qui est stricte. Il est caractérisé par ∇f (x) = 0, soit Ax = b. Comme A est
inversible, ce système linéaire admet une unique solution x = A−1 b. Donc f admet un
unique minimum stricte en x = A−1 b. Réciproquement, si f admet un minimum strict
x ∈ Rn , alors ∇f (x) = Ax − b = 0 et donc pour tout h 6= 0,
1
f (x + h) = f (x) + hAh, hi > f (x).
2
Ainsi, pour tout h 6= 0, hAh, hi > 0, donc A est bien définie positive (en donc f est
strictement convexe).
7. Si A est positive alors f est convexe et les minimums globaux de f sont caractérisés par
∇f (x) = 0, soit Ax = b. Comme S 6= ∅, f admet bien un minimum global en tout x ∈ S.
Réciproquement, si f admet un minimum global x, alors ∇f (x) = Ax − b = 0, donc S
est non vide. De plus, pour tout h,
1
f (x + h) = f (x) + hAh, hi > f (x),
2
donc hAh, hi > 0 pour tout h, A est bien positive.
8. Si A n’est pas positive il existe h tel que hAh, hi < 0. Alors,
t2
f (th) = hAh, hi − thb, hi + c
2
est un trinôme du second degré à coefficient dominant strictement négatif, donc limt→±∞ f (th) =
−∞.
20
9. En considérant le projeté orthogonal de b sur le sous-espace vectoriel ker A, montrer que
si A est positive et que S = ∅ alors infn f (x) = −∞.
x∈R
n
Comme A est symétrique réelle, on a R = ker(A)⊕im(A) où la somme est orthogonale.
Soit b = p + q avec p ∈ ker(A) et q ∈ im(A) la décomposition de b par rapport à cette
somme. Comme S = ∅, b ∈ / im(A), donc p 6= 0. On a alors
Exercice 2.20. Soit f : Rn → R une fonction à la fois convexe et concave, c’est-à-dire telle
que
∀x, y ∈ Rn , ∀θ ∈ [0, 1], f (θx + (1 − θ)y) = θf (x) + (1 − θ)f (y).
Le but cet exercice est de montrer que f est une fonction affine : il existe a ∈ Rn et b ∈ R tels
que f (x) = ha, xi + b. On pose g(x) = f (x) − f (0).
1. Montrer que g est impaire : ∀x ∈ Rn , g(−x) = −g(x).
2. Montrer que g est 1-homogène : ∀x ∈ Rn , ∀λ > 0, f (λx) = λf (x).
3. Montrer que g est linéaire et conclure.
21
Solution de l’exercice 2.20.
1. g est également convexe et concave. On a
1 1
0 = g(0) = g(x) + g(−x) ⇒ g(−x) = −g(x).
2 2
Si λ > 1, alors
1 1 1
g(x) = g(λx) + 1 − g(0) = g(λx).
λ λ λ
Donc on a bien toujours g(λx) = λg(x).
3. D’après les deux premières questions on a g(λx) = λg(x) pour tout x ∈ Rn et λ ∈ R.
Il reste à montrer que ∀x, y ∈ Rn , g(x + y) = g(x) + g(y). Soient x, y ∈ Rn . Alors, en
utilisant l’homogénéité,
1 1
g(x + y) = g(2x) + g(2y) = g(x) + g(y).
2 2
Ainsi g est une forme linéaire. On a donc g(x) = ha, xi avec a ∈ Rn , et donc f (x) =
g(x) + f (0) = ha, xi + f (0) est bien une fonction affine.
22
Chapitre 3
Sous ces hypothèses on sait que résoudre le problème d’optimisation revient à résoudre les n
équations non linéaires
∂f
∂x1 (x1 , . . . , xn )
0
∂f
0
(x1 , . . . , xn )
∇f (x) = 2
∂x =
. .
.. ..
.
∂f
0
(x1 , . . . , xn )
∂xn
Afin d’assurer l’existence et l’unicité d’une telle solution, nous allons supposer que f est forte-
ment convexe.
Proposition 3.2 (Propriétés des fonctions fortement convexes). Soit f : Rn → R une fonction
fortement convexe pour la constante m > 0. Alors f vérifie les propriétés suivantes :
23
(a) f est strictement convexe.
(b) Pour tous x, y ∈ Rn ,
m
f (y) > f (x) + h∇f (x), y − xi + ky − xk2 .
2
(c) f est coercive.
(d) f admet un unique minimum global x? .
(e) Pour tout x ∈ Rn ,
1 2
p? > f (x) − k∇f (x)k2 et kx − x? k 6 k∇f (x)k.
2m m
Preuve. (a) Comme pour tout x ∈ Rn , la matrice hessienne ∇2 f (x) est définie positive, f est
strictement convexe d’après le Théorème 2.15 sur les fonctions convexes deux fois diffé-
rentiables.
(b) Soient x, y ∈ Rn . D’après la formule de Taylor-Maclaurin, il existe z ∈]x, y[ tel que
1
f (y) = f (x) + h∇f (x), y − xi + h∇2 f (z)(y − x), y − xi.
2
En appliquant l’inégalité de forte convexité au dernier terme on obtient la minoration an-
noncée.
(c) En prenant x = 0 dans l’inégalité précédente on a
m
f (y) > f (x) + h∇f (0), yi + kyk2 .
2
Cette fonction minorante est coercive, donc f est elle aussi coercive.
(d) f est strictement convexe et coercive, elle admet donc un unique minimum global.
(e) Soit x ∈ Rn . Alors, pour tout y ∈ Rn ,
m
f (y) > f (x) + h∇f (x), y − xi + ky − xk2 .
2
Le terme de droite est une fonction quadratique de la variable y qui est minimale en y ? =
x − m1 ∇f (y) et cette valeur minimale vaut f (x) − 2m
1
k∇f (x)k2 (à reprendre en détails dans
l’exercice qui suit). Ainsi, on a pour tout y ∈ Rn ,
1
f (y) > f (x) − k∇f (x)k2 .
2m
En prenant y = x? on a
1
p? > f (x) − k∇f (x)k2 .
2m
Exercice 3.3. Soit f : Rn → R une fonction convexe deux fois différentiable. On suppose qu’il
existe M tel que
∀x, h ∈ Rn , h∇2 f (x)h, hi 6 M khk2 ,
autrement dit k∇2 f (x)kMn (R) 6 M .
24
1. Montrer que pour tous x, y ∈ Rn ,
M
f (y) 6 f (x) + h∇f (x), y − xi + ky − xk2 .
2
2. Pour x fixé on pose g(y) = f (x) + h∇f (x), y − xi + M2 ky − xk2 . Montrer que g admet
un unique minimum y ? sur Rn et calculer la valeur minimale de g.
3. On suppose que f admet un minimum global en x? qui vaut p? . Montrer que pour tout
x ∈ Rn ,
1
p? 6 f (x) − k∇f (x)k2 .
2M
Solution de l’exercice 3.3.
1. Comme f est deux fois différentiable la formule de Taylor-Maclaurin assure qu’il existe
z ∈]x, y[ tel que
1
f (y) = f (x) + h∇f (x), y − xi + h∇2 f (z)(y − x), y − xi.
2
Or par hypothèse
h∇2 f (z)(y − x), y − xi > M ky − xk2 ,
d’où la majoration annoncée.
2. On a
M
f (y) 6 f (x) + h∇f (x), y − xi +ky − xk2 .
2
M
Pour x fixé, on considère la fonction g(y) = f (x) + h∇f (x), y − xi + 2
ky − xk2 . On
remarque que g est une fonction quadratique. Plus précisément,
M M
g(y) = kyk2 − hM x − ∇f (x), yi + f (x) − h∇f (x), xi + kxk2 .
2 2
La matrice A de cette application quadratique est M In qui est définie positive. Donc g est
strictement convexe et atteint son minimum au point y ? solution de ∇g(y) = 0. Or
1
∇g(y) = 0 ⇔ M y − (M x − ∇f (x)) = 0 ⇔ y = x − ∇f (x).
M
La valeur minimale de g est donc
1 1 M 1 1
g(y ) = g x − ∇f (x) = f (x)− k∇f (x)k2 + k ∇f (x)k2 = f (x)−
?
k∇f (x)k2 .
M M 2 M 2M
1
3. Pour y = y ? = x − M
∇f (x) on a
1
f (y ? ) 6 f (x) − k∇f (x)k2 .
2M
Or comme p? = minn f (y), on en déduit que
y∈R
1
p? 6 f (y ? ) 6 f (x) − k∇f (x)k2 .
2M
25
Remarque. La formule des accroissements finis (pour les fonctions de Rn → Rn , voir [C IARLET])
permet de montrer que si pour tous x, h ∈ Rn , h∇2 f (x)h, hi 6 M khk2 , alors le gradient de f
est M -Lipschitz, c’est-à-dire que
Remarque. Dans les preuves des théorèmes de convergence on supposera qu’il existe des
constantes 0 < m 6 M telles que
En général, m et M ne sont pas connues, donc les bornes de la proposition précédente ne sont
pas explicites en pratique. Cependant, elles sont très importantes. En effet, les inégalités
1 1 2
f (x) − k∇f (x)k2 6 p? 6 f (x) − k∇f (x)k2 et kx − x? k 6 k∇f (x)k
2m 2M m
montrent que si la norme du gradient k∇f (x)k est faible alors x est proche de la solution x? .
donc, comme t(k) > 0, pour avoir f (x(k) + t(k) d(k) ) < f (x(k) ) on doit nécessairement avoir
h∇f (x(k) ), d(k) i < 0. On dira que d ∈ Rn est une direction de descente au point x si
26
Convergence : Si on fait abstraction du critère d’arrêt, un algorithme de descente produit une
suite de points (x(k) )k∈N définie par la relation de récurrence
et telle que f (x(k+1) ) < f (x(k) ) (sauf si x(k) = x? à partir d’un certain rang). L’étude de la
convergence d’un tel algorithme de descente consiste donc à savoir si la suite (x(k) )k∈N converge
vers x? . On rappelle que si f est fortement convexe on a kx − x? k 6 m2 k∇f (x)k, donc le critère
2ε
d’arrêt k∇f (x)k 6 ε implique kx − x? k 6 .
m
On verra que l’on s’intéresse également à la convergence de la suite (f (x(k) ) − p? )k∈N . On
parle alors de convergence pour la fonction objectif.
avec 0 < m 6 M .
1. Montrer que pour tout x ∈ Rn ,
2 2
(f (x) − p? ) 6 kx − x? k2 6 (f (x) − p? ).
m M
2. En déduire que (f (x(k) ))k∈N converge vers p? si et seulement si (x(k) )k∈N converge vers
x? .
2 2
(f (x) − p? ) 6 kx − x? k2 6 (f (x) − p? ).
m M
2. Par continuité de f si (x(k) )k∈N converge vers x? alors (f (x(k) ))k∈N vers p? = f (x? ).
L’inégalité kx − x? k2 6 M2 (f (x) − p? ) que la réciproque est vraie.
27
Vitesse de convergence : Une fois qu’un algorithme est prouvé être convergent (i.e. (x(k) )k∈N
converge vers x? ), on s’intéresse à sa vitesse de convergence. On dit que la méthode est d’ordre
r > 1, s’il existe une constante C > 0 telle que, pour k suffisamment grand
kx(k+1) − x? k
6 C.
kx(k) − x? kr
donc x(k+1) a r fois plus de décimales exactes que x(k) . En particulier si on a convergence
quadratique, alors la précision double à chaque itération.
On parle également alors de convergence linéaire, quadratique, etc. pour la fonction objectif,
c’est-à-dire la vitesse de convergence vers 0 de la suite (f (x(k) ) − p? )k∈N .
“Déterminer un pas de descente t(k) > 0 tel que f (x(k) + t(k) d(k) ) < f (x(k) )”
est restée volontairement floue. Il existe de nombreuses méthodes de recherche de pas avec
différents critères (on parle de line search et des conditions de Wolfe). Comme dans le chapitre
9 de [B OYD & VANDENBERGHE], nous allons nous limiter à deux méthodes, la méthode de
pas de descente optimal (dite aussi exacte) et la méthode de pas de descente par rebroussement.
Dans les deux cas, les données du problème sont une fonction f fortement convexe, un point
actuel x = x(k) 6= x? , une direction de descente d = d(k) pour le point x, et on cherche un pas
de descente t = t(k) > 0 tel que f (x + td) soit “suffisamment plus petit que” f (x).
Pas de descente optimal : En théorie comme en pratique, il est utile de considérer la méthode
qui donne le pas de descente pour lequel f (x + td) est minimal, à savoir
t? = argmin f (x + td).
t>0
Exercice 3.5.
28
1. Justifier que pour f une fonction fortement convexe, x ∈ Rn et d ∈ Rn une direction
de descente pour f en x, le pas de descente optimal est bien défini, c’est-à-dire que t 7→
f (x + td) admet un unique minimum global t? sur ]0, +∞[.
2. Montrer que t = t? si et seulement si h∇f (x + td), di = 0.
3. On considère le cas particulier d’une fonctionnelle quadratique
1
f (x) = hAx, xi − hb, xi + c,
2
où A ∈ Mn (R) est une matrice carrée symétrique définie positive, b ∈ Rn et c ∈ R. En
considérant un point x ∈ Rn , x 6= x? , et une direction de descente d pour x, montrer que
le pas de descente optimal est donné par
hAx − b, di
t? = − .
hAd, di
hAx − b, di
h∇f (x + td), di = 0 ⇔ thAd, di + hAx − b, di = 0 ⇔ t = −
hAd, di
29
Calcul du pas de descente par méthode de rebroussement : On détaille maintenant la mé-
thode de rebroussement (backtracking an anglais) qui permet de calculer un pas de descente
lorsque l’on ne sait pas minimiser la fonction f sur la demi-droite affine {x + td, t > 0}. Cette
méthode est décrite par l’Algorithme 2.
Algorithme 2 : Algorithme de calcul du pas de descente par méthode de rebroussement
Données : Un point x ∈ Rn , une direction de descente associée d ∈ Rn , deux réels
α ∈]0, 21 [ et β ∈]0, 1[
Résultat : Un pas de descente t > 0
Initialiser t :
t ← 1;
tant que f (x + td) > f (x) + αth∇f (x), di faire
Réduire t d’un facteur β :
t ← βt ;
fin
Comme f est convexe, on sait que
L’Algorithme 2 cherche donc à trouver un point t pour lequel cette borne inférieure réduite par
un facteur α soit une borne supérieure. En effet, l’algorithme s’arrête dès lors que
30
Algorithme 3 : Algorithme de descente de gradient
Données : Un point initial x(0) ∈ Rn , un seuil de tolérance ε > 0
Résultat : Un point x ∈ Rn proche de x?
Initialiser x :
x ← x(0) ;
k ← 0;
tant que k∇f (x)k > ε faire
1. Calculer d(k) = −∇f (x) (d(k) = −∇f (x(k) )).
2. Déterminer un pas de descente t(k) > 0 par la méthode exacte
(ou par la méthode de rebroussement).
3. Mettre à jour x :
x ← x(k+1) = x(k) + t(k) d(k) ;
k ← k + 1;
fin
Attention, en pratique, on teste plutôt le critère d’arrêt après l’étape 1. afin de ne pas calculer
deux fois ∇f (x(k) ). La convergence de l’algorithme est assurée par le théorème suivant.
∀k ∈ N, f (x(k) ) − p? 6 ck (f (x(0) ) − p? ),
Preuve. On rappelle que sous les hypothèses du théorème on a démontré à l’Exercice 3.4 l’en-
cadrement
2 2
(f (x(k) ) − p? ) 6 kx(k) − x? k2 6 (f (x(k) ) − p? ).
m M
qui montre que la convergence de (f (x(k) ))k∈N vers p? entraîne la convergence de (x(k) )k∈N vers
x? . On donne maintenant la preuve de la convergence linéaire de (f (x(k) ) − p? )k∈N dans le cas
de la méthode optimale pour le calcul du pas de descente. La preuve pour le cas de la méthode
de rebroussement fait l’objet de l’Exercice 3.7.
On suppose que l’algorithme de gradient est à l’itération k et que x(k) 6= x? (sinon l’algo-
rithme a convergé en un nombre fini l 6 k d’itérations et la suite (x(k) ) est constante à x? à
partir du rang l). Le point x(k+1) est de la forme x(k+1) = x(k) + t(k) ∇f (x(k) ) avec
31
On a pour tous x, y ∈ Rn ,
M
f (y) 6 f (x) + h∇f (x), y − xi + ky − xk2 .
2
En prenant x = x(k) et y = x(k) − t∇f (x(k) ) pour tout t > 0 on a
M
f (x(k) − t∇f (x(k) )) 6 f (x(k) ) − tk∇f (x(k) )k2 + t2 k∇f (x(k) )k2 .
2
Par définition, le membre de gauche est minimal en t = t(k) et vaut alors f (x(k) − t(k) ∇f (x(k) )) =
f (x(k+1) ). Ainsi pour tout t > 0, on a
(k+1) (k) M 2
f (x ) 6 f (x ) + t − t k∇f (x(k) )k2 .
2
1
Le membre de droite est minimal en t = M
, et pour cette valeur de t on obtient la majoration
1
f (x(k+1) ) 6 f (x(k) ) − k∇f (x(k) )k2 .
2M
On soustrait ensuite p? à cette inégalité
1
f (x(k+1) ) − p? 6 f (x(k) ) − p? − k∇f (x(k) )k2 .
2M
Enfin, d’après la Proposition 3.2, pour tout x ∈ Rn ,
1
p? > f (x) − k∇f (x)k2
2m
et donc pour x = x(k) ,
k∇f (x(k) )k2 > 2m(f (x(k) ) − p? ).
Ainsi, m
f (x(k+1) ) − p? 6 1 − f (x(k) ) − p? .
M
m
Par récurrence, on a donc bien f (x ) − p 6 c (f (x(0) ) − p? ) avec c = 1 −
(k) ? k
M
∈ [0, 1[.
Exercice 3.7 (Convergence de l’algorithme de descente de gradient pour la méthode de rebrous-
sement). On reprend les notations de la preuve du Théorème 3.6.
1. Montrer que pour tout t ∈ [0, M1 ] on a M 2
2
t − t 6 − 2t (on pourra par exemple utiliser la
convexité de h(t) = M2 t2 − t).
2. En déduire que pour tout t ∈ [0, M1 ],
3. En déduire que la méthode de rebroussement s’arrête soit en t(k) = 1 soit pour une valeur
β
t(k) > M .
4. En déduire que
(k+1) (k) αβ
f (x ) 6 f (x ) − min α, k∇f (x(k) )k2
M
et conclure la preuve comme pour le cas du pas optimal.
32
Solution de l’exercice 3.7.
M 2
1. La fonction h(t) = 2
t − t est convexe en tant que somme de fonctions convexes. Pour
tout t ∈ [0, M1 ],
1 −1 t
h(t) 6 (1 − t)M h(0) + tM h( ) = tM =− .
M 2M 2
2. En utilisant l’inégalité précédente, on a pour tout t ∈ [0, M1 ],
(k) (k) (k) M 2 t
f (x − t∇f (x )) 6 f (x ) + t − t k∇f (x(k) )k2 6 f (x(k) ) − k∇f (x(k) )k2 .
2 2
1
Comme α < 2
on a bien
pour avoir
(k+1) ? 2αβm
f (x −p 6 1 − min 2mα, (f (x(k) ) − p? )
M
et conclure par récurrence.
L’algorithme de descente de gradient avec la recherche de pas de descente exacte est souvent
appelé algorithme de gradient à pas optimal [C IARLET]. Attention, c’est le pas qui est optimal,
et non l’algorithme ! On étudiera des algorithmes plus “optimaux”, c’est-à-dire qui convergent
plus rapidement. En terme de fonction objectif, la convergence de cet algorithme est donc li-
m
néaire avec la constante c = 1 − M . On rappelle que m et M sont respectivement des bornes
inférieures et supérieures sur les valeurs propres des matrices hessiennes ∇2 f (x), x ∈ S. En
particulier se sont des bornes sur les valeurs propres de la matrice hessienne au point optimal x? .
Cela suggère que la convergence de l’algorithme de descente de gradient est d’autant plus rapide
33
si la matrice hessienne ∇2 f (x? ) est bien conditionnée (on rappelle que pour une matrice réelle
symétrique A le conditionnement cond(A) correspond au rapport des plus grande et plus petite
valeur propre, et donc cond(A) = λλmax (A)
min (A)
6M
m
). On verra qu’en pratique cette observation est
vérifiée. Plus rigoureusement, pour une fonctionnelle quadratique f (x) = 21 hAx, xi − hb, xi + c
on a ∇2 f (x) = A pour tout x, et donc on peut prendre m = λmin (A), M = λmax (A), et alors
m
on a cond(A) = M . En particulier, si cond(A) = 1, c’est-à-dire si A = λI (avec λ > 0) est une
matrice scalaire, alors l’algorithme du gradient à pas optimal converge en une itération !
Exercice 3.8. Vérifier que si f est une fonctionnelle quadratique avec A = λI, λ > 0, alors
l’algorithme du gradient à pas optimal converge en une itération.
Solution de l’exercice 3.8. On sait que x? est l’unique solution du système Ax = b, soit ici
x? = λ1 b. D’après l’Exercice 3.5, le pas de descente t(0) est donné par
hAx(0) − b, di
t(0) = − .
hAd, di
kλx(0) − bk2 1
t(0) = − = − ,
λk − λx(0) + bk2 λ
d’où
1 1
x(1) = x(0) − (λx(0) − b) = b = x? .
λ λ
Remarque (Résolution de système linéaire). On rappelle que l’évaluation numérique d’un vec-
teur x de la forme
x = A−1 b
ne doit en général jamais s’effectuer en calculant la matrice inverse A−1 puis en multipliant par
le vecteur b mais en résolvant le système linéaire
Ax = b.
34
avec lim ε(h) = 0. La fonction
h→0
1
g(x + h) = f (x) + h∇f (x), hi + h∇2 f (x)h, hi
2
est donc l’approximation d’ordre deux de f au voisinage de x. Cette fonction g est une fonction-
nelle quadratique (en la variable h) avec A = ∇2 f (x) et b = −∇f (x). Elle est donc minimale
pour le vecteur
h? = −∇2 f (x)−1 ∇f (x)
qui est le pas de Newton. Autrement dit le pas de Newton d(k) = −∇2 f (x(k) )−1 ∇f (x(k) ) est
choisi de sorte à ce que x(k) + d(k) minimise l’approximation à l’ordre deux au point x(k) de la
fonction f .
Proposition 3.9. La pas de Newton d = −∇2 f (x(k) )−1 ∇f (x(k) ) est invariant par changement
de variable affine.
La preuve de cette proposition fait l’objet de l’exercice suivant.
Exercice 3.10. Soit f : Rn → R une fonction deux fois différentiable. Soient A ∈ Mn (R) une
matrice carrée inversible et b ∈ Rn . On pose g(x) = f (Ax + b).
1. Exprimer le gradient et la matrice hessienne de g en fonction du gradient et de la matrice
hessienne de f .
2. Soit y ∈ Rn . Soit d le pas de descente de Newton de f au point x = Ay + b et d0 le pas
de descente de Newton de g au point y. Montrer que d = Ad0 et x + d = A(y + d0 ) + b.
Solution de l’exercice 3.10.
1. On a
∇g(x) = AT ∇f (Ax + b) et ∇2 g(x) = AT ∇2 f (Ax + b)A
2. On a
d0 = −∇g 2 (y)−1 ∇g(y)
−1 T
= − AT ∇2 f (Ay + b)A A ∇f (Ay + b)
= −A−1 ∇2 f (x)−1 (AT )−1 AT ∇f (x)
= −A−1 ∇2 f (x)−1 ∇f (x)
= A−1 d.
D’où
A(y + d0 ) + b = Ay + b + AA−1 d = x + d.
Cette proposition est fondamentale. Alors que l’algorithme de descente de gradient est très
influencé par le conditionnement de la matrice hessienne, l’algorithme de descente de Newton
est invariant par changement de variable affine.
Critère d’arrêt invariant par changement de variable affine : Comme pour toute les mé-
thodes de descente, le critère d’arrêt k∇f (x)k2 6 ε2 est valide pour la méthode de Newton,
mais il n’est pas invariant par changement de variable affine. Pour cela on préfère utiliser le
critère Λ(x) 6 ε2 où
35
est la norme au carré de ∇f (x) pour la norme associée à la matrice symétrique définie positive
∇2 f (x)−1 . On remarque que le produit scalaire hd, ∇f (x)i = −Λ(x) est calculé par ailleurs
dans la méthode de rebroussement pour le calcul du pas de descente, donc ce critère d’arrêt
n’ajoute aucun coût de calcul.
L’algorithme de Newton est donné par l’Algorithme 4.
Algorithme 4 : Algorithme de descente de Newton
Données : Un point initial x(0) ∈ Rn , un seuil de tolérance ε > 0, des paramètres
α ∈]0, 12 [ et β ∈]0, 1[ pour la méthode de rebroussement
Résultat : Un point x ∈ Rn proche de x?
Initialiser x :
x ← x(0) ;
k ← 0;
Calculer la première direction de descente :
d(0) = −∇2 f (x(0) )−1 ∇f (x(0) ) ;
Λ(0) = −hd(0) , ∇f (x(0) )i ;
tant que Λ(k) > ε2 faire
1. Déterminer un pas de descente t(k) > 0 au point x(k) selon la direction d(k)
par la méthode de rebroussement avec les paramètres α et β.
2. Mettre à jour x :
x ← x(k+1) = x(k) + t(k) d(k) ;
k ← k + 1;
3. Calculer la nouvelle direction de descente :
d(k) = −∇2 f (x(k) )−1 ∇f (x(k) ) ;
Λ(k) = −hd(k) , ∇f (x(k) )i ;
fin
avec 0 < m 6 M et dont la matrice hessienne est lipschitzienne pour la constante L > 0
36
En particulier, l’algorithme de Newton converge et atteint un régime de convergence quadra-
tique au bout d’un nombre fini d’itérations.
Le théorème est admis. On renvoie à [B OYD & VANDENBERGHE, pp. 488-491] pour une
preuve détaillée.
Exercice 3.12. Vérifier que si f : Rn → R est une fonctionnelle quadratique, alors l’algorithme
de Newton converge en une seule itération.
Solution de l’exercice 3.12. Vérifions que t(0) = 1 est accepté (VOIR BROUILLON A RE-
COPIER).
Ensuite,
x(1) = x(0) − A−1 (Ax(0) − b) = A−1 b.
On retiendra que cela n’a pas de sens d’utiliser l’algorithme de Newton pour minimiser une
fonctionnelle quadratique. L’algorithme de Newton est utile pour minimiser des fonctionnelles
non quadratiques, et il consiste à minimiser une fonctionnelle quadratique à chaque itération, ce
qui implique la résolution d’un système linéaire de taille n × n. Chaque itération a donc un coût
de calcul non négligeable, mais en revanche l’algorithme converge très rapidement et nécessite
un faible nombre d’itérations pour atteindre une grande précision numérique.
A l’opposé, l’objet du prochain chapitre est d’introduire un algorithme plus performant que
l’algorithme de descente de gradient pour minimiser des fonctionnelles quadratiques.
37
Chapitre 4
Les références principales pour ce chapitre sont la section 8.5 de [C IARLET] et le chapitre
9 de [A LLAIRE & K ABER].
Le but de la méthode du gradient conjugué est de minimiser une fonctionnelle quadratique
f : Rn → R de la forme
1
f (x) = hAx, xi − hb, xi + c,
2
où A ∈ Mn (R) est une matrice carrée symétrique définie positive, b ∈ Rn et c ∈ R. On rappelle
que ce problème équivaut à résoudre le système linéaire
Ax = b.
On a étudié au chapitre précédent l’algorithme du gradient à pas optimal qui permet de mini-
miser ces fonctionnelles avec une vitesse de convergence linéaire. Pour cela, à chaque itération
l’algorithme de descente de gradient à pas optimal minimise la fonctionnelle quadratique f sur
la droite affine
{x(k) − t∇f (x(k) ), t ∈ R}.
L’idée principale de l’algorithme du gradient conjugué est d’élargir à chaque itération l’es-
pace sur lequel on minimise la fonctionnelle quadratique : à chaque itération k on va minimi-
ser la fonctionnelle sur un espace affine de dimension k + 1. Le corollaire immédiat de cette
démarche est que l’algorithme converge nécessairement en au plus n itérations. La difficulté
principale réside dans le fait de montrer que tous ces problèmes intermédiaires de minimisation
sur des espaces de dimension croissantes sont facilement résolubles.
38
(sinon on aurait déjà trouvé la solution x? et l’algorithme serait terminé). Pour chaque i ∈
{0, 1, . . . , k} on définit l’espace
( i )
X
Gi = Vect{∇f (x(j) ) | j ∈ {0, 1, ...i}} = ηj ∇f (x(j) ) | (η0 , η1 , ..., ηi ) ∈ Ri+1 .
j=0
Les espaces Gi sont a priori de dimension inférieure à i + 1 mais on va montrer qu’ils sont
exactement de dimension i + 1, c’est-à-dire que les vecteurs ∇f (x(j) ) sont linéairement indé-
pendants.
L’idée essentielle de l’algorithme du gradient conjugué est de définir x(k+1) comme le mi-
nimum de f sur tout l’espace affine x(k) + Gk , c’est-à-dire
où (x(k) + Gk ) = {x(k) + x | x ∈ Gk }.
Exercice 4.3.
1. Justifier que la restriction d’une fonctionnelle quadratique à un sous-espace affine est
encore une fonctionnelle quadratique. Pour cela on considérera un sous-espace affine
z + G de dimension l, 1 6 l 6 n, une base orthonormale e1 , . . . , el de G, et la restriction
g : Rl → R !
l
X
y 7→ f (z + Dy) = f z+ yj ej
j=1
où la matrice D ∈ Mn,l (R) est la matrice dont les colonnes sont les vecteurs e1 , . . . , el .
2. En déduire que le problème (4.1) admet une unique solution x(k+1) .
3. En utilisant le théorème 2.16 sur les minimums des fonctions convexes, montrer que pour
tout y ∈ Gk ,
h∇f (x(k+1) ), yi = 0,
i.e. ∇f (x(k+1) ) ∈ G⊥
k.
4. En déduire que soit x(k+1) = x? , soit le vecteur ∇f (x(k+1) ) est orthogonal à chacun des
vecteurs ∇f (x(0) ), ∇f (x(1) ), . . . ∇f (x(k) ).
5. Montrer que l’algorithme du gradient conjugué converge en au plus n itérations.
39
Or
g(y) = f (z + Dy)
1
= hA(z + Dy), (z + Dy)i − hb, (z + Dy)i + c
2
1 1 1
= hADy, Dyi + hADy, zi + hAz, Dyi − hb, Dyi + f (z)
2 2 2
1 T
= hD ADy, yi − hDT (b − Az), yi + f (z).
2
On a bien une fonctionnelle quadratique pour la variable y.
2. La fonctionnelle est quadratique. Vérifions que la matrice symétrique DT AD est définie
positive. Soit y tel que hDT ADy, yi = 0. hDT ADy, yi = hADy, Dyi = 0 et A est définie
positive donc Dy = 0. Mais D correspond aux vecteurs de base, donc la matrice est de
rang l ou encore ker(D) = {0} et on a bien y = 0. Donc la fonctionnelle est quadratique
avec une matrice symétrique définie positive, le problème admet une unique solution.
3. Le théorème 2.16 assure que x(k+1) est solution du problème de minimisation sous contrainte (4.1)
si et seulement si pour tout y ∈ Gk h∇f (x(k+1) ), yi = 0.
4. Soit ∇f (x(k+1) ) = 0 et alors x(k+1) = x? , soit ∇f (x(k+1) ) 6= 0 et ∇f (x(k+1) ) est ortho-
gonal à chaque vecteur ∇f (x(0) ), ∇f (x(1) ), . . . ∇f (x(k) ) ∈ Gk .
5. Par récurrence immédiate, les vecteurs ∇f (x(i) ) sont deux à deux orthogonaux. Donc les
vecteurs (∇f (x(0) ), ∇f (x(1) ), . . . ∇f (x(k+1) )) forment une famille orthogonale de Rn . Si
à l’itération k = n on avait encore ∇f (x(n) ) 6= 0, alors on aurait une famille de n + 1
vecteurs orthogonaux de Rn .
Remarque. On peut déjà dire que cette méthode est supérieure à celle du gradient à pas optimal
car la droite {x(k) −t∇f (x(k) ), t ∈ R} est incluse strictement dans (x(k) +Gk ). La convergence
est acquise, mais il reste à montrer qu’il existe des relations simples pour implémenter l’algo-
rithme du gradient conjugué, c’est-à-dire des relations qui permettent de calculer directement
les vecteurs x(k+1) ∈ (x(k) +Gk ) à chaque étape sans avoir recours à des algorithmes complexes
de minimisation.
40
De l’orthogonalité des vecteurs gradients successifs ∇f (x(i) ), 0 6 i 6 k, on déduit d’une part
0 = h∇f (x(i+1) ), ∇f (x(i) )i = k∇f (x(i) )k2 + hAd(i) , ∇f (x(i) )i, 06i6k
d(i) 6= 0, 0 6 i 6 k, (4.4)
0 = h∇f (x(i+1) ), ∇f (x(j) )i = hf (x(i) ), ∇f (x(j) )i + hAd(i) , ∇f (x(j) )i = hAd(i) , ∇f (x(j) )i.
(4.5)
De plus comme chaque vecteur d(j) est une combinaison linéaire des vecteurs ∇f (xl ), 1 6 l 6
j, (4.5) entraîne que
hAd(i) , d(j) i = 0, 0 6 j < i 6 k. (4.6)
On dit alors que les vecteurs d(i) sont conjugués par rapport à la matrice A, c’est à dire qu’il sont
orthogonaux par rapport au produit scalaire défini par la matrice A qui est symétrique définie
positive. Ce point de vue nous montre directement que des vecteurs non nuls et conjugués par
rapport à A sont linéairement indépendants (car orthogonaux par rapport à un produit scalaire).
Les vecteurs d(i) sont non nuls d’après (4.4) et conjugués par rapport à A, donc les vecteurs
d(i) sont linéairement indépendants.
X i
(i)
(i)
Les vecteurs ∇f (x ), 0 6 i 6 k, et les vecteurs d = (i)
dj ∇f (x(j) ), 0 6 i 6 k, sont
j=0
linéairement indépendants, l’égalité entre les matrices de rang (k + 1) :
(0) (1) (k)
d0 d0 . . . d0
(0) (k)
0 d1 . . . d1
(0) (1) (k) (0) (1) (k)
d |d |...|d = ∇f (x )|∇f (x )|...|∇f (x ) .
.. ... ... ..
.
(k)
0 . . . 0 dk
(i)
impose que les éléments diagonaux di sont non nuls pour 0 6 i 6 k.
On doit maintenant calculer les composantes des ces vecteurs d(i) . En repensant au forma-
lisme f (x(k+1) ) = f (x(k) −t(k) d(k) ), on voit que l’on peut tout d’abord s’intéresser à la direction
de d(k) et ensuite déterminer le t(k) qui minimise f (x(k) − t(k) d(k) ).
(i)
A partir de maintenant on renormalise chaque vecteur d(i) afin d’imposer que di = 1, 0 6
i 6 k, c’est-à-dire que ces nouveaux vecteurs (que l’on appelle toujours d(i) ) sont de la forme :
i−1
X
(i) (i)
d = dj ∇f (x(j) ) + ∇f (x(i) ), 0 6 i 6 k. (4.7)
j=0
41
— pour j = k − 1 :
(k)
k∇f (x(k) )k2 − dk−1 k∇f (x(k−1) )k2 = 0
d’où par récurrence descendante,
c’est-à-dire
k∇f (x(k) )k2 (k−1)
d(k) = ∇f (x(k) ) + d .
k∇f (x(k−1) )k2
Cette relation est doublement heureuse car non seulement elle permet de calculer d(k) sans
(k)
calculer toutes ses coordonnées di , mais en plus elle montre que pour calculer d(k) on n’a
pas besoin de garder en mémoire toutes les valeurs ∇f (x(i) ) mais seulement les deux dernières
∇f (x(k−1) ) et ∇f (x(k) ).
Pour finir d’expliciter les calculs il ne reste plus qu’à calculer t(k) défini par
On a déjà démontré que ceci revient à minimiser un trinôme du second degré et que la solution
est donnée par
h∇f (x(k) ), d(k) i
t(k) = .
hAd(k) , d(k) i
Nous avons démontré dans cette section plusieurs formules de récurrence qui nous per-
mettent désormais d’expliciter chaque itération de l’algorithme du gradient conjugué d’un point
de vue numérique.
On part d’un vecteur arbitraire x(0) . Si ∇f (x(0) ) = 0 alors x(0) = x? et l’algorithme s’arrête,
sinon on pose
d(0) = ∇f (x(0) )
et
h∇f (x(0) ), d(0) i
t(0) =
hAd(0) , d(0) i
puis le vecteur
x(1) = x(0) − t(0) d(0) .
Si on suppose construits de proche en proche les vecteurs x(1) , d(1) , ..., x(k−1) , d(k−1) , x(k) ,
(ce qui sous-entend que les ∇f (x(i) ) sont tous non nuls), deux cas se présentent :
42
— soit ∇f (x(k) ) = 0 et alors x(k) = x? et l’algorithme est terminé,
— soit ∇f (x(k) ) 6= 0 et alors on définit successivement
Exercice 4.8.
1. Donner un pseudo-code complet pour l’algorithme du gradient conjugué (on utilisera le
critère d’arrêt usuel k∇f (x)k 6 ε même si l’algorithme converge en n itérations).
2. Donner le code d’une fonction Octave
function x = gradient_conjugue(A,b,x0,eps)
qui applique la méthode du gradient conjugué pour résoudre le système Ax = b en partant
du point x(0) et avec le test d’arrêt de paramètre ε.
43
1. On a l’algorithme suivant :
Algorithme 5 : Algorithme du gradient conjugué
Données : Un point initial x(0) ∈ Rn , un seuil de tolérance ε > 0
Résultat : Un point x ∈ Rn proche de x?
Initialiser x :
x ← x(0) ;
k ← 0;
Première itération :
(a) Calculer d(0) = ∇f (x) (d(0) = ∇f (x(k) ))
h∇f (x(0) ),d(0) i kd(0) k2
(b) Calculer le pas de descente optimal : t(0) = hAd(0) ,d(0) i
= hAd(0) ,d(0) i
(c) Mettre à jour x :
x(1) = x(0) − t(0) d(0) ; k ← k + 1;
tant que k∇f (x)k2 > ε2 faire
k∇f (x(k) )k2
(a) Calculer d(k) = ∇f (x(k) ) + k∇f (x(k−1) )k2
d(k−1) .
(b) Déterminer un pas de descente optimal t(k) > 0 dans la direction d(k) :
(x(k) ),d(k) i
t(k) = h∇f
hAd(k) ,d(k) i
(c) Mettre à jour x :
x ← x(k+1) = x(k) − t(k) d(k) ; (attention c’est bien un signe −)
k ← k + 1;
fin
2.
function x = gradient_conjugue(A,b,x0,eps)
x = x0;
k = 0;
gfx = A*x-b;
sqngfx = gfx’*gfx;
d = gfx;
t = sqngfx/((A*d)’*d);
x = x - t*d;
sqngfxold = sqngfx;
gfx = A*x - b;
sqngfx = gfx’*gfx;
k = k+1;
44
k = k+1;
disp([k,sqngfx]);
end
end
% test :
n = 1000;
A = toeplitz([2, -1, zeros(1, n-2)])*(n+1)^2;
b = rand(n,1);
xstar = A\b;
x0 = zeros(size(b));
eps = 10^(-4);
x = gradient_conjugue(A,b,x0,eps);
norm(x-xstar,’inf’)
% stop toujours a n/2 en partant de b=ones(n,1), surement une symetrie
Proposition 4.9 (Vitesse de convergence du gradient conjugué). Soit A une matrice symétrique
définie positive. Soit x? la solution du système linéaire Ax = b. Soit (x(k) )k la suite de solutions
approchées générée par l’algorithme du gradient conjugué. On a
p !k
p cond(A) − 1
kx(k) − x? k 6 2 cond(A) p kx(0) − x? k.
cond(A) + 1
La preuve de cette proposition est admise. On renvoie à la section 9.5.2 de [A LLAIRE & K ABER].
45
Bibliographie
[A LLAIRE & K ABER] Grégoire A LLAIRE et Sidi Mahmoud K ABER, Algèbre linéaire numé-
rique, Ellipses, 2002
[C IARLET] Philippe G. C IARLET, Introduction à l’analyse numérique matricielle et à l’opti-
misation, cinquième édition, Dunod, 1998
[B OYD & VANDENBERGHE] Stephen B OYD and Lieven VANDENBERGHE Convex Optimiza-
tion, Cambridge University Press, 2004
46