Algorithm Es
Algorithm Es
Algorithm Es
Dans ce chapitre, nous présenterons les principes de base de certains algorithmes qui per-
mettent de calculer (de manière approchée) la ou les solution du problème d’optimisation sans
contraintes (3.1).
Il existe deux grandes classes de méthodes :
— Les méthodes dites “directes” ou bien “de descente”, qui cherchent à construire une suite
minimisante, c.à.d une suite (x(k) )k∈N telle que :
— Les méthodes basées sur l’équation d’Euler, qui consistent à chercher une solution de
l’équation ∇f (x) = 0 (ces méthodes nécessitent donc que f soit dérivable).
Nous nous intéressons ici à une classe d’algorithmes qui sont basés sur la notion de direction
de descente, nous allons donc commencer par quelques définitions :
Définition 3.1. U
algorithme de résolution est définie par une application A : Rn → Rn qui permet, a
partir d’un point initial x(0) , de génération d’une suite d’éléments x(0) , x(1) , ..., x(k) , ... de
Rn par la formule :
(
(Initailisation) : x(0) donné, k = 0
(itération k) : x(k+1) = A (x(k) ) , k = k + 1.
Définition 3.2. O
dit qu’un algorithme est globalement convergent si, quel que soit le point initial x(0) choisi,
la suite {x(k) } engendre par x(k+1) ∈ A (x(k) )(ou une sous suite) converge vers un point
satisfaisant les conditions nécessaires d’optimalité (ou solution optimale).
48
3.1. MÉTHODE DU GRADIENT 49
Définition 3.3. S
it {x(k) }k∈N une suite dans Rn convergente vers x∗ :
kx(k+1) −x∗ k
1. Si : limk→∞ (k) −x∗
= α < 1. On dit que {x }k∈N converge vers x linéairement
(k) ∗
k x k
avec le taux α.
kx(k+1) −x∗ k
2. Si : limk→∞ x(k) −x∗ = 0. On dit que la convergence est super linéaire.
k k
kx(k+1) −x∗ k
3. Si : ∃q > 1 tel que : limk→∞ x(k) −x∗ q < M . On dit que la convergence est super
k k
linéaire d’ordre q.
4. En particulier si q = 2, on dit que la convergence est quadratique.
ϕ(α) − ϕ(0)
∀α ∈ [0, α0 ] , ≤ 0,
α
en passant à la limite lorsque α tend vers 0, on déduit que ϕ0 (0) ≤ 0, c.à.d h∇f (x) , di ≤ 0.
1. c’est-à-dire qu’elle donne une condition suffisante pour que d soit la direction de la descente.
2. Soit ∇f (x) 6= 0. alors d = −∇f (x) est une direction de descente car :
h∇f (x) , di = −k∇f (x) k2 < 0.
D E
(0)
∇f x , d1 = −18 − 2 < 0.
On déduit que le direction d1 est descente.
D E
∇f x(0) , d2 = 18 − 2 > 0.
On déduit que la direction d2 n’est pas descente.
Le schéma général des algorithmes d’optimisation sans contraintes est présenté comme suit :
Supposons que d(k) soit une direction de descente au point x(k) , ceci nous permet de considérer
le point x(k+1) , successeur de x(k) de la manière suivante :
(k+1) (k) (k)
x =x + α(k) d , α(k) ∈ ]0, +∞[ .
Vu la définition de direction de descente, on est assure que
f (x(k+1) ) = f (x(k) + α(k) d(k) ) < f (x(k) ).
Un bon choix de d(k) et de α(k) , permet ainsi de construire une multitude d’algorithmes d’opti-
misation. Par exemple si on choisit dk = −∇f (x(k) ) et si ∇f (x(k) ) 6= 0, on obtient la méthode
du gradient 2 . La méthode de Newton 3 correspond à d(k) = −∇2 f (x(k) )−1∇f (x(k) ). Dans les
méthodes de descente le choix de α(k) est dépend de la fonction ϕ (α) = f x(k) + α(k) d(k) , la
meilleure valeur de α(k) est α(k) = arg minα>0 ϕ (α).
H
Figure 3.2 – Les courbes de niveau et des traces horizontales.
H
Figure 3.3 – Les courbes de niveau de la fonction f (x, y) = − ex2xy+y2
Ainsi, un point x(0) se situe sur le niveau défini correspondant au niveau c si f (x(0) ) = c.
Dans le cas des fonctions de deux variables réelles, f : R2 → R, vous pouvez voir dans les
figures (3.2), (3.3), (3.5) et (3.4), la notion et la relation entre les courbes de niveau et des
traces horizontales.
ou est un réel positif petit donné qui représente la précision désirée et le pas α(k) est choisi
constant ou variable :
1. Si α(k) est fixé au départ alors on a la méthode du gradient à pas fixe (GP F ).
2
4. Bien sur −∇f (xk ) est une direction de descente car ∇f x(k) , d(k) = −
∇f x(k)
< 0
H
3y
Figure 3.4 – Les courbes de niveau de la fonction f (x, y) = − x2 +y2 +1
H
Figure 3.5 – Les courbes de niveau de la fonction f (x, y) = 6 − 3x − 2y.
2. Si α(k) = arg minα>0 f x(k) − α(k) ∇f x(k) alors on a la méthode du gradient à pas
optimal (GP O).
Théorème 3.1. (
onvergence de la méthode GPF) Si f est différentiable à gradient Lipschitzien de constante
L et elliptique de constante a, alors l’algorithme
i h du gradient à pas fixe converge vers
2a
l’unique solution optimale pour tout α ∈ 0, L2 . La vitesse de convergence étant linéaire
q
a2
de rapport 1− L2
pour α = a
L2
.
∗ 2 ∗ 2 2 2 ∗ 2
≤ kxk − x k − 2aα kxk − x k + α L kxk − x k
∗ 2
= kxk − x k 1 − 2aα + α2 L2 ,
Dans la figure (3.6), on remarque que la méthode de la plus grande pente se déplace par
des pas orthogonales. Cette méthode possède une propriété intéressante comme indiqué dans
la proposition suivante :
Proposition 3.2.
oit f : Rn −→ R une fonction différentiable. Les D directions
de descente
E d (k)
générées par
la méthode (GP O) vérifiant d(k+1) d(k) = 0 (i.e. ∇f x(k+1) , ∇f x(k) = 0).
Par la règle
dϕ D E
2
(k) (k) (k)
(k)
ϕk (0) = (0) = − ∇f (x − 0∇f (x )), ∇f (x ) = −
∇f (x )
< 0,
0 k
dα
puisque ∇f (x(k) ) 6= 0 par hypothèse. Ainsi, ϕ0k (0) < 0 et cela implique qu’il existe α > 0
telle que ϕk (0) > ϕk (α) pour tout α ∈ ]0, α]. D’où,
(k+1) (k)
f (x ) = ϕk α(k) ≤ ϕk (α) < ϕk (0) = f (x ),
(k+1) (k)
|f (x ) − f (x )| < ε.
Une autre alternative consiste à calculer la norme ||x(k+1) − x(k) || de la différence entre deux
itérations successives, et nous nous arrêtons si la norme est inférieure à un seuil prédéterminé :
|f (x (k+1)
) − f (x )|(k)
||x − x || (k+1) (k)
< ε ou < ε.
|f (x(k) )| ||x(k) ||
Les deux critères d’arrêt (relatifs) ci-dessus sont préférables aux critères précédents (absolus)
car les critères relatifs sont «indépendants de l’échelle».
Par exemple, la mise à l’échelle de la fonction objectif ne change pas la satisfaction du
|f (x(k+1) )−f (x(k) )|
critère |f (x(k) )|
< ε. De même, la mise à l’échelle de la variable de décision ne modifie
||x(k+1) −x(k) ||
pas la satisfaction du critère < ε.
||x(k) ||
Pour éviter de diviser par de très petits nombres, nous pouvons modifier ces critères d’arrêt
comme suit :
Le point initial est x = [4, 2, −1] . Nous effectuons une seule itération.
(0) T
On a h iT
3 3
∇f (x) = 4 (x1 − 4) , 2 (x2 − 3) , 16 (x3 + 5) ,
Par conséquent, ∇f x (0)
= [0, −2, 1024] . Pour calculer x , nous avons besoin de
T (1)
α (0 ) = arg min f x(0) − α(0) ∇f x(0)
α≥0
2 4
= arg min (2α − 1) + 4 (−1024α + 4)
α≥0
= 3, 967e − 3,
et donc x (1)
= [4, 2, 008, −5, 002] . T
ϕ0 (α(k) ) = 0,
on a donc,
D E D E
(k) (k) (k) (k) (k) (k)
∇f (x + α(k) d ), d = H(x + α(k) d ) − b, d = 0,
soit
D E
(k) (k) (k)
∇f x + α(k) Hd , d = 0,
on obtient donc,
T
∇f x(k) d(k)
α(k) =
d(k)T Hd(k)
qui est bien positif car d est une direction de descente et d Hd > 0 (car H > 0).
(k) (k)T (k)
La méthode du gradient à pas optimal peut donc s’écrire (dans le cas quadratique)
d(k) = −Hx(k) + b
(k) 2
kd k
α(k) = d(k) ,Hd(k)
h i
x(k+1) = x(k) + α(k) d(k) .
Exemple 3.3. Soit f (x1 , x2 ) = x21 + x22 . Puis, partant d’un point initial arbitraire x(0) ∈ R2 ,
on arrive à la solution x∗ = 0R2 en un seul iteration. Voir la figure(3.7)
Toutefois, si f (x1 , x2 ) = 15 x21 + x22 , la méthode de gradient mélange les inefficacement
dans les deux sens lors de la recherche du minimum dans une vallée étroite (voir Figure
??f ig : quadratiqgradient2)). Cet exemple illustre un inconvénient majeur de la méthode de
gradient. Des méthodes plus sophistiquées permettant de résoudre ce problème sont abordées
dans les sections suivants.
Figure 3.7
Figure 3.8
Figure 3.9
si le point initial est proche du minimum. L’idée de cette méthode est la suivante. À partir d’un
point de départ, nous construisons une approximation quadratique de la fonction objectif qui
correspond aux valeurs de première et seconde dérivées en ce point. Nous minimisons ensuite la
fonction approximative (quadratique) au lieu de la fonction objectif d’origine. Nous utilisons le
minimum de la fonction approximative comme point de départ à l’iteration suivante et répétons
la procédure de manière itérative. Si la fonction objectif est quadratique, l’approximation est
exacte, et la méthode donne la vraie mimimum en une seule étape. Si, au contraire, la fonction
objectif n’est pas quadratique, alors l’approximation ne fournira qu’une estimation de la position
du vrai minimum. La figure??f ig : newthon1) illustre cette idée.
Soit f : R → R, deux fois continûment différentiable. On a l’approximation quadratique
n
Nous utilisons x = [3, −1, 0, 1] comme point de départ . Effectuer trois itérations. Notez
(0) T
— Iteration 1 : h iT
∇f x(0) = 306, −144, −2, 310 ,
482 20 0 −480
20 212 −24 0
F (x(0) ) =
,
0 −24 58 −10
−480 0 −10 490
0.1126 −0.0089 0.0154 0.1106
−0.0089 0.0057 0.0008 −0.0087
F (x(0) )−1 =
0.0154 0.0008 0.0203 0.0155
0.1106 −0.0087 0.0155 0.1107
h iT
(0) −1 (0)
F (x ) ∇f x = 1.4127, −0.8413, −0.2540, 0.7460 .
Par conséquent,
(1) (0) (0) −1 (0)
x = x − F (x ) ∇f x
h iT
= 1.5873, −0.1587, 0.2540, 0.2540 ,
f x(1) = 31.8.
— Iteration 2 :
h iT
∇f x(1) = 94.81, −1.179, 2.371, −94.81 ,
215.3 20 0 −213.3
20 205.3 −10.67 0
F (x(1) ) =
,
0 −10.67 31.34 −10
−213.3 0 −10 223.3
h iT
(1) −1 (1)
F (x ) ∇f x = 0.5291, −0.0529, 0.0846, 0.0846 .
Par conséquent,
h iT
(2)
x = 1.0582, −0.1058, 0.1694, 0.1694 ,
f x(2) = 6.28.
— Iteration 3 :
h iT
(2)
∇f x = 28.09, −34.75, 0.7031, −28.08 ,
96.80 20 0 −94.80
20 202.4 −4.744 0
F (x(2) ) =
,
0 −4.744 19.49 −10
−94.80 0 −10 104.80
Par conséquent,
h iT
x(3) = 0.7037, −0.0704, 0.1121, 0.1111 ,
f x(3) = 1.24.
Notez que la k − ème itération de la méthode de Newton peut être écrite en deux étapes
1. Résoudre ∇2 f x(k) d(k) = ∇f x(k) pour d(k) .
2. Soit x(k+1) = x(k) + d(k) .
L’étape 1 nécessite la solution d’un système n × n d’équations linéaires. Ainsi, une méthode
efficace de résolution de systèmes d’équations linéaires est essentielle lors de l’utilisation de la
méthode de Newton.
Algorithme de Newton pour un problème d’optimisation sans contraintes
Initialisation : x(0) , ε
Iteration principale : Trouver d(k) solution du problème ∇2 f x(k) d(k) = ∇f x(k) ,
x(k+1) = x(k) + d(k)
(k+1)
Test d’arret : Si
∇f x
< ε stop x∗ = x(k+1)
Sinon k = k + 1.
−1
Remarque 3.1. Si ∇2 f x(k) > 0 ∀k ∈ N. On pose d(k) = − ∇2 f x(k) ∇f x(k) .
On a
D E −1
d(k) , ∇f x(k) = − ∇2 f x(k) ∇f x(k) , ∇f x(k)
< 0.
Donc, d(k) est une direction de descente, alors la méthode de Newton est une méthode de des-
cente.
1 T
f (x) = x Qx − xT b.
2
Alors,
∇f (x) = Qx − b et ∇2 f (x∗ ) = Q.
Par conséquent, étant donné tout point initial x(0) par l’algorithme de Newton
(1) (0) (0) −1 (0)
x = x − F (x ) ∇f x
h i
= x(0) − Q−1 Qx(0) − b
= Q−1 b
= x.
∗
Théorème 3.3
Soit {x(k) } la séquence générée par la méthode de Newton pour minimiser une fonction
objectif donnéef (x). Si F (x(k) ) > 0 et ∇f (x(k) ) 6= 0, la direction de recherche
−1
(k) (k) (k) (k+1) (k)
d =− F x ∇f x =x −x
de x(k) à x(k+1) est une direction descente pour f dans le sens où il existe α > 0 pour tout
α ∈ (0, α),∇
(k) (k) (k)
f x + αd <f x .
Démonstration. Soit
(k) (k)
ϕ (α) = f x + αd .
Ensuite, D E
ϕ0 (α) = ∇f x(k) + αd(k) , d(k) .
Par conséquent,
D E −1
ϕ0 (0) = ∇f x(k) , d(k) = ∇f x(k) , − F x(k) ∇f x(k) < 0,
−1
puisque F x(k) > 0 et ∇f x(k) 6= 0. Il existe donc un α > 0 de sorte que pour tout
α ∈ (0, α), ϕ (α) < ϕ (0).
Cela implique que pour tout α ∈ (0, α),
(k) (k) (k)
f x + αd <f x ,
Exemples
D E
— Soit {ei }i=1,n la base canonique de Rn : ∀i 6= j ei , I(n) ej = 0.
— Soit Q ∈ Mn,n (R) symétrique, alors il existe une matrice P orthogonale P T = P −1
formée par les vecteurs propres de Q et D une matrice diagonale dont les éléments de
diagonale sont les valeurs propres de Q tel que
Q = P DP −1 ,
vj = P ej
=⇒
D E D E
hvj , Qvi i = vj , P DP −1 vi = P ej , P DP T P ei = hej , Dei i = λi hej , ei i = 0 si i 6= j.
Proposition 3.4
Soient Q ∈ Mn,nn(R) symétrique etodéfinie positive, et d(1) , d(2) , . . . , d(p) sont Q−conjugué.
Alors la famille d(1) , d(2) , . . . , d(p) est libre.
Pp
Démonstration. Soit α0 , . . . , αk des scalaires tels que i=1 αi d(i) = 0.
D’une part, on a !
Xp
(i)
Q αi d = 0.
i=1
Donc,
p
X
(i)
αi Qd = 0.
i=1
D E
Puisque tous les autres termes d(j) , Qd(i) = 0, i 6= j. Mais Q = QT > 0 et d(j) 6= 0.Donc,
* p + p
X X D E
d(j) , αi Qd(i) = αi d(j) , Qd(i)
i=1 i=1
D E
= αj d(j) , Qd(j)
= 0,
alors
αj = 0, ∀j = 1, p.
Par conséquent, d(0) , d(1) , . . . , d(k) , k ≤ n − 1, sont linéairement indépendants.
D E
D
d (1)
, Qd(2)
=0
E
d(1) , Qd(3) =0 (3.2)
D E
d(2) , Qd(3) = 0.
— La Détermination de d(2)
La première équation du système (3.2) nous donne
3 0 1 d21
2
[1, 0, 0] 0 4 2 d2 =0
1 2 3 d23
donc
(2) (2)
3d1 + d3 = 0, (3.3)
(2) (2)
On choisit d1 et d3 tel qu’ils vérifient (3.3). Par exemple, on prend d (2)
= [1, 0, −3] .
T
— La Détermination de d(3)
D’aprés les deux dernières équations du système (3.2), on a
( (3) (3)
3d1 + d3 = 0
(3) (3) (3.4)
−6d2 − 8d3 = 0,
(3) (3) (3)
on choisit d1 , d2 , d3 tel qu’ils satisfont (3.4) et d(3) 6= 0R3 . Par exemple, on peut prendre
d = [1, 4, −3] .
(3) T
x∗ = Q−1 b. (3.6)
n o
Soient d , d , . . . , d qui sont Q-conjugués, la famille A = d , d , . . . , d
(1) (2) (n)
forme une (1) (2) (p)
base de Rn (car cardA = dim Rn = n et A est libre). Soit x∗ ∈ Rn la solution du problème (3.5)
alors n X
∃!β1 , β2 , . . . , βn telque x∗ = βi d(i) ,
i=1
donc n
!
X
(i)
Qx = b ⇐⇒ Q
∗
βi d =b
i=1
⇐⇒ n
X
(i)
βi Qd =b
i=1
alors, * +
n
X D E
d(j) , βi Qd(i) = d(j) , b
i=1
⇐⇒ n
X D E D E
(j) (i) (j)
βi d , Qd = d ,b
i=1
=⇒ D E
d(j) , b
βj = .
hd(j) , Qd(j) i
Théorème 3.4
Pour tout point initial x(0) , l’algorithme de base de la direction conjuguée converge vers
l’unique x∗ (qui résout Qx = b) en n étapes ; c’est-à-dire x(n) = x∗ .
Donc écrire
(0) (k) (k) (0)
∗
x −x = x −x ∗
+ x −x ,
on multipliant par d (k)T
Q, on obtient
(k)T
d Q x∗ − x(0) = d (k)T
Q x∗ − x(k) + d (k)T
Q x(k) − x(0)
(k)T (k) (k)T (k)
= d Q x −x ∗
= −d g ,
car g (k)
= Qx
(k)
− b et Qx = b Ainsi,
∗
d g (k) (k)T
βk = − (k)T (k) = αk
d Qd
et x∗ = x(n) qui complète la preuve.
Exemple 3.6. Trouver le minimum de
" # " #
1 T 4 2 −1 2
f (x1 , x2 ) = x x−x T
,x ∈ R ,
2 2 2 1
selon la méthode de direction conjugué avec le point initial x(0) = [0, 0]T , et les directions
3 3 T
Q−conjugués d = [1, 0] et d = [− 8 , 4 ] .
(0) T (1)
T
(1)T
g d(0) = Qx(1) − b d(0)
!
(0)T (0)
(0)T (0) g d
= x Qd − (0)T (0) d Qd(0) − bT d(0)
(0)T
d Qd
(0)T (0) (1)T (0)
= g d −g d = 0.
Figure 3.10
Lemme 3.1
Dans la méthode du gradient conjugué,
(k+1)T (i)
g d = 0,
pour tout k, 0 ≤ k ≤ n − 1 et 0 ≤ i ≤ k.
Remarque 3.2. Quand on dispose d’une base formée de vecteurs Q-conjugués, alors
D E
n
X d(i) , b
x∗ = βi d(i) avec βi = .
i=1 hd(i) , Qd(i) i
où Q = QT > 0, x ∈ Rn .
Etant donné un point de départ x(0) ∈ Rn . On pose
g (0) = ∇f x(0)
(0)
= Qx − b.
On prend
(0) (0)
d = −g .
On a
(1) (0) (0)
x =x + α0 d ,
avec D E
g (0) , d(0)
α0 = arg min f x(0) + αd(0) = − ,
α≥0 hd(0) , Qd(0) i
donc
(1) (1)
g = ∇f x
(1)
= Qx − b.
Dans l’étape suivante, nous cherchons dans une direction d(1) qui est Q−conjuguée à d(0) .
Nous choisissons d(1) comme une combinaison linéaire de g (1) et d(0) .
En général, à la (k + 1)ème étape, nous choisissons d(k+1) comme une combinaison linéaire
de g (k+1) et de d(k) . Plus précisément, nous choisissons Les coefficients βk , k = 1, 2, . . . , sont
choisis de telle sorte que d(k+1) soit Q-conjugué à d(0) , d(1) , . . . , d(k)
(k+1)T
g d(k)
βk = − (k)T (k) .
d Qd
En général, le principe de la méthode du gradient conjugué est le suivant :
à la (k + 1)ème étape, nous choisissons d(k+1)
comme une combinaison linéaire de g (k+1)
et
de d(k)
Démonstration.
Exemple 3.7. Considérons la fonction quadratique
3 2 2 3 2
f (x1 , x2 , x3 ) = x1 + 2x2 + x3 + x1 x3 + 2x2 x3 − 3x1 − x3 .
2 2
Nous trouvons le minimum en utilisant l’algorithme de gradient conjugué, en utilisant le
point de départ x(0) = [0, 0, 0]T . Nous pouvons représenter f comme
1 T
f (x) = x Qx − x b,
T
2
3 0 1 3
où Q = 0 4 2 , b = 0 .On a
1 2 3 1
Par conséquent,
(0)
g = [−3, 0, −1] , T
(0) (0)
d = g ,
D E
(0) (0)
10 g ,d
α0 = − (0) =
(0)
hd , Qd i 36
et
(1) (0) (0)
x =x + α0 d = [0.8333, 0, 0.2778] . T
D E
g (1) , Qd(0)
β0 = − = 0.08025.
hd(0) , Qd(0) i
Nous pouvons maintenant calculer
(1) (1) (0)
d = −g + β0 d = [0.4630, −0.5666, −0.5864] . T
Donc, D E
g (1) , d(1)
α1 = − = 0.2187
hd(1) , Qd(1) i
et
(2) (1) (1)
x =x + α1 d = [0.9346, −0.1215, 0.1495] . T
D E
g (2) , Qd(1)
β1 = − = 0.07075,
hd(1) , Qd(1) i
(2) (2) (1)
d = −g + β1 d = [0.07948, 0.1478, −0.1817] . T
D’où, D E
g (2) , d(2)
α2 = − = 0.8231
hd(2) , Qd(2) i
et
(3) (2) (2)
x =x + α2 d = [1, 0, 0] . T
Noter que g (3) = ∇f x(3) = 0,comme f est une fonction quadratique de trois variables, on
deduit que, x∗ = x(3) .
série de Taylor du second ordre. Près de la solution, de telles fonctions peuvent avoir approxi-
mativement la forme quadratique, comme le suggère le développement de Taylor. Pour une
fonction quadratique, la matrice hessienne Q, est constante. Cependant, pour une fonction non
linéaire, le hessien est une matrice qui doit être réévaluée à chaque itération de l’algorithme.
Cela peut être très coûteux en calcul. Ainsi, une mise en œuvre efficace de l’algorithme de
gradient conjugué qui élimine l’évaluation de Hessian à chaque étape est souhaitable.
Observons que Q n’apparaît que dans le calcul des scalaires αk et βk . Parce que
(k) (k)
αk = arg min f x + αd ,
α≥0
la formule de calcul αk dans l’algorithme peut être remplacée par une procédure de recherche
linéaire. Par conséquent, nous devons seulement faire attention à la formule βk . Heureusement,
l’élimination de Q de la formule est possible et conduit à des algorithmes qui ne dépendent que
des valeurs de la fonction de gradient, et à chaque itération. Cette méthode est intéressante
car elle ne nécéssite pas de stocker une matrice. Sa vitesse de convergence est très supérieure à
celle de la méthode du gradient. Nous discutons maintenant des modifications de l’algorithme
de gradient conjugué pour une fonction quadratique pour le cas où le hessien est inconnu. Les
modifications sont toutes basées sur la manipulation de algébriquement a la formule βk de telle
sorte que Q est éliminé. Nous discutons trois modifications bien connues.
D E
g (k+1) , d(k)
βk = .
hd(k) , Qd(k) i
La formule de Hestenes-Stiefel est basée sur le remplacement du terme Qd (k)
par le terme
g (k+1) − g (k)
.
αk
Les deux termes sont égaux dans le cas quadratique, comme nous le montrons maintenant.
On a
βk = .
(k) [g
T (k+1) −g ]
(k)
d
Formule Polak-Ribière. À partir de la formule de Hestenes-Stiefel, nous multiplions le
dénominateur pour obtenir
h i
g (k+1) g (k+1) − g (k)
T
βk = .
d(k) g (k+1) − d(k) g (k)
T T
D’après le lemme (), d(k) g (k+1) = 0. De plus, puisque d(k) = −g (k) +βk−1 d(k+1) , et le multiplier
par g (k) , on a
βk = .
g (k) g (k)
T
Remarque 3.4. Les formules ci-dessus nous donnent des algorithmes de gradient conjugué
qui ne nécessitent pas une connaissance explicite de la matrice de Hessian Q. Nous avons
uniquement besoin de la fonction objectif et des valeurs de gradient à chaque itération.
Remarque 3.5. Pour le cas quadratique, les trois expressions pour βk sont exactement égales.
Cependant, ce n’est pas le cas pour une fonction objectif non linéaire.
– On doit avoir
∇f (x(k+1) )T d(k+1)
≤ −α,
k∇f (x(k+1) )k kd(k+1) k
avec 0 < α ≤ 0 pas trop petit, c’est à dire que d(k+1) doit être une direction de descente
«raisonnable». Dans le cas où ces conditions ne sont pas vérifiées, on rompt la conjugaison
et on redémarre l’algorithme avec d(k+1) = −∇f (x(k+1) ). On peut aussi décider de faire ce
redémarrage arbitrairement toutes les p itérations (p fixé de l’ordre de n par exemple). Pour
un résultat de convergence et plus de détails nous renvoyons à [4]. ‘
f (x, y) = y 4 + 3y 2 − 4xy − 2y + x2 .
4. En partant du point x = (0, 0) ; a quel point x arrive-t-on si l’on applique une itération
(0) (1)
1
de la méthode gradient à pas fixe α = (GPF) ?
4
Corrigé 3.1
Considérons la fonction f : R2 −→ R donné par :
4 2 2
f (x, y) = y + 3y − 4xy − 2y + x .
qui tend évidemment à l’infini k(x, y)k −→ +∞. Car, si |y| −→ +∞, le terme y 4 − y 2 − 2y
tend vers +∞ et le terme (x − 2y)2 est positif ; ainsi, f (x, y) −→ +∞.
2. On commence par le calcul du gradient de f, qui est
3
∇f (x, y) = (−4y + 2x, 4y + 6y − 4x − 2) , T
−4y + 2x = 0 et 4y 3 + 6y − 4x − 2 = 0.
La première équation implique que 4x = 8y, l’insertion dans la seconde équation donne
4y 3 − 2y − 2 = 0,
les seules solution de cette équation sont imaginaires. Ainsi, le seule point critique de f
est le point (2, 1)T . Maintenant, nous notons que la fonction f est coercive. Ceci implique
que la fonction f possède au moins un minimum global, le seule candidat est le seule
point stationnaire (2, 1)T . Cela implique que (2, 1)T est un minimum global.
3. A fin de vérifier si la fonction f est convexe, on calcule son hessienne
!
2 2 −4
∇ f (x, y) = ,
−4 12y + 6
2
2 2
f (x, y) = 1 + 2y + x + 2xy + 2y .
1. Calculer le gradient et la hessienne de f et déterminer l’unique minimum global de f sur
R.2
2. (02 pts)Considérons une méthode de descente qui a x0 = (0, −1)T comme un point
initiale et d = (1, 1)T comme une direction de recherche. vérifiez que d est une direction
descente et déterminez la prochaine approximation x1 = x0 + α0 d telle que
α0 = argminα>0 f (x0 + αd).
3. En partant du point y0 = (0, 0)T ; a quel point y1 arrive-t-on si l’on applique une itération
de la méthode gradient à pas optimal (GPO) ?
Corrigé 3.2
considérons la fonction f : R2 −→ R donné par :
4 2 2
f (x, y) = y + 3y − 4xy − 2y + x .
1. f est coercive, car pouvons l’écrire comme
f (x, y) = y 4 − y 2 − 2y + (x − 2y)2 ,
qui tend évidemment à l’infini k(x, y)k −→ +∞. Car, si |y| −→ +∞, le terme y 4 − y 2 − 2y
tend vers +∞ et le terme (x − 2y)2 est positif ; ainsi, f (x, y) −→ +∞.
2. On commence par le calcul du gradient de f, qui est
3
∇f (x, y) = (−4y + 2x, 4y + 6y − 4x − 2) , T
!
0
−∇f (0, 0) = .
2
positive) par une méthode de gradient à pas constant. Soit x∗ la solution de ce système. On
propose l’algorithme suivant :
x 0 0
, d = b − Ax 0
xk+1 = xk + αdk
où dk = xk + αdk
α est un réel constant .
1. Soit ek = xk − x∗ ( pour k ≥ 0) ; montrer que ek = (I − αA)k e0 , ( pour k ≥ 0).
2. Soient 0 < λn ≤ λn−1 ≤ ... ≤ λ1 les valeurs propres de A.
2
Montrer que l’algorithme converge si et seulement si 0 < α < λ1
.
2
3. Montrer que le meilleur choix de α est : αopt = λ1 +λn
et qu’alors :
ρ (I − αopt A) = λ1 −λn
λ1 +λn
1. Comme ek = xk − x∗ , on obtient
2. Dire que ek converge vers 0 est équivalent à dire que le rayon spectral de (I − αA)
est strictement inférieur à 1. Les valeurs propres de (I − αA) sont (1 − αλi )i=1,...,n où
(λi )i=1,...,n sont les valeurs propres de A rangées de manière croissante. On doit donc
,avoir : max |1 − αλi | < 1 c’est-‘a-dire :−1 < 1 − αλ1 ≤ ... ≤ 1 − αλn−1 ≤ 1 − αλn < 1.
i=1,...,n
On doit donc avoir d’une part α > 0 (car les valeurs propres de A sont toutes strictement
positives), et d’autre part
2
− < −λ1 ≤ ... ≤ −λn−1 ≤ −λn .
α
2 2
c’est-‘a-dire α
> λ1 ≥ ... ≥ λn−1 > λn ; il suffit donc que α < λ1
.
f (x, y) = x2 + y 2
4. Si (x0 , y0 ) quelconque.
(a) Calculez en utilisant la méthode du gradient à pas optimal le point (x1 , y1 ) .
(b) Quelle conclusion peut en avoir ?
Corrigé 3.4
2
1. On a f (x, y) = k(x, y)k , alors lim f (x, y) = +∞, d’ou la coércivité de f.
k(x,y)k→+∞
!
2 0
D’autre part, la matrice ∇ f (x, y) = 2
est définie postive alors la fonction f est
0 2
strictement convexe.
2. Soit (x∗ , y ∗ ) la solution global, f (x, y) = x2 + y 2 ≥ f (x∗ , y ∗ ), ∀ (x, y) ∈ R2 .
On a :
2 2 2
∀ (x, y) ∈ R , f (x, y) = x + y ≥ 0 = f (0, 0),
∀ (x, y) ∈ R2 , f (x, y) ≥ f (0, 0),
donc (0, 0) est une solution minimum global et f (0, 0) = 0 la valeur minimal global.
3. ∇f (x, y) =T ∂f
∂x
(x, y), ∂f
∂y
(x, y) = (2x, 2y) .
∇f (1, 1) = (2, 2),
T
!
d1
∇f (1, 1) (d1 , d2 ) < 0 ⇔ (2, 2)
T
< 0 ⇔ 2d1 + 2d2 < 0 ⇔ d1 + d2 < 0.
d2
Par exemple si d1 = 1 on peut prendre d2 < −1.
! ! !
1 2 0 x 0
4. f (x, y) = (x, y) − (x, y) ,
2 0 2 y 0
k∇f (x0 ,y0 )k2 4(x20 +y02 )
(a) α0 = ∇f (x0 ,y0 )T Q ∇f (x0 ,y0 )
= 8(x20 +y02 )
= 12 .(1 Pt)
! !
x1 x0
= − α0 ∇f (x0 , y)
y1 y0
! !
x0 1 2x0
= −
y0 2 2y0
!
0
= .
0
1. f est de classe C 2 sur R2 car f est une fonction polynômiale définie sur R2 .
2. (a) !
2 2
2 y y
2x + 2xy + 12x = 2 x + + 3 − + 6y + 18 . (3.7)
2 2
(b)
y2 1 2
− 2y + 6 = (y − 2) +4. (3.8)
2 2
(c) On insert l’égalité (3.7) dans l’expression de f , on trouve :
f (x, y) = 2x2 + 2xy + 12x + y 2 + 4y + 24
2 !
2
y y
=2 x+ +3 − + 6y + 18
2 2
2
y y2
=2 x+ +3 + − 2y + 6.
2 2
En utilisant l’égalité (3.8) dans l’égalité ci-dessus de f , on obtient
2
y 1 2
f (x, y) = 2 x + + 3 + (y − 2) + 4. (3.9)
2 2
4x + 2y + 12 = 0
2x + 2y + 4 = 0,
ce système admet un seule solution (x, y) = (−4, 2), alors f admet un seul point critique
(x? , y ? ) = (−4, 2).
4. On a ∆1 = 4 > 0 et ∆2 = det [Hessf (x, y)] > 0, donc la matrice Hessf (x, y) est définie
positive. En déduire que f est strictement convexe.
5. f est continue, coercive et strictement convexe alors le point critique (−4, 2) est le mini-
mum strict de f sur R2 .
6. (a) Décrire l’algorithme (GPO) ?
w0 point intial
wk+1 = wk − αk ∇f (wk )
k∇f (wk )k2
αk =
h∇f (wk ),Hf (wk )∇f (wk )i
!
w1 = w0 − α0 ∇f (w0 ) 4 2 1
(b) α = k∇f (w0 )k2 , ∇f (w0 ) = (0, 2)T , Hf (w0 ) = , α0 = ,
0
h∇f (w0 ),Hf (w0 )∇f (w0 )i 2 2 4
w1 = (−2, −2)T .
Corrigé 3.6
1- On a " # " #
4x1 − x2 − 3 4 −1
∇f (x) = et Hf = .
−x1 + 2x1 − 1 −1 2
2. On rappelle que le conditionnement d’une matrice C ∈ Mn (Rn ) inversible est défini par
cond(C) = kCk kC −1 k(et dépend donc de la norme considérée ; on rappelle qu’on a choisi ici
la norme induite par la norme euclidienne).
(a) Montrer que les valeurs propres
q de la matrice M sont toutes strictement positives.
(b) Montrer que cond(A) = λλn1 , où ρn (resp. λ1 ) est la plus grande (resp. plus petite)
valeur propre de M.
3. Ecrire l’algorithme du gradient conjugué pour la résolution du système M x = At b, en ne
faisant intervenir que les matrices A et At (et pas la matrice M ) et en essayant de minimiser
le nombre de calculs. Donner une estimation du nombre d’opérations nécessaires et comparer
par rapport à l’algorithme du gradient conjugué écrit dans le cas d’une matrice carré d’ordre n
symétrique définie positive.
Corrigé 3.7
2(a) La matrice M est symétrique définie positive, car A est inversible et M = AA est t
q q
cond(A) = ρ(At A) ρ(AAt )−1 ,
et on en déduit le résultat.
3. Ecrivons l’algorithme du gradient conjugué pour la résolution du système M x = At b
Initialisation : Soit x(0) ∈ Rn , et soit r(0) = At b − At Ax(0)
1) Si r(0) = 0, alors Ax(0) = b et donc x(0) = x,
auquel cas l’algorithme s’arrête.
2) Si r(0) 6= 0, alors on pose d(0) = r(0) , et on choisit
r(0) .r(0)
ρ(0) = At Ad(0) .d(0)
On pose alors x(1) = x(0) + ρ(0) d(0) .
Itération 1 ≤ n ≤ n − 1 :
On suppose x(0) , ..., x(k) et d(0) , ..., d(k−1) connus
et on pose r(k) = At b − At Ax(k) .
1) Si r(k) = 0, on a Ax(k) = b et donc x(k) = x,
auquel cas l’algorithme s’arrête.
2) Si r(k) 6= 0, alors on pose d(k) = r(k) + λk−1 d(k−1)
r(k) .r(k) r(k) .r(k)
avec λ(k−1) = r(k−1) .r(k−1) et on pose α(k) = At Ad(k) .d(k)
On pose alors x(k+1) = x(k) + α(k) d(k) .
Si on implémente l’algorithme sous cette forme, on a intérêt à calculer d’abord eb = At b et
M = At A pour minimiser le nombre de mutliplications matrice matrice et matrice vecteur. Au
lieu du coût de l’algorithme initial, qui est en 2n3 + O(n2 ), on a donc un coût en 3n3 + O(n2 ).
Maintenant si on est optimiste, on peut espérer converger en moins de n itérations (en fait, c’est
malheureusement rarement le cas), et dans ce cas il est plus économique d’écrire l’algorithme
précédent sous la forme suivante.
Initialisation :
Soit x(0) ∈ Rn , soit s(0) = b − Ax(0) et soit r(0) = At s(0)
1) Si r(0) = 0, alors Ax(0) = b et donc x(0) = x,
auquel cas l’algorithme s’arrête.
2) Si r(0) 6= 0, alors on pose d(0) = r(0) , y (0) = Ad(0)
r(0) .r(0)
et on choisit ρ(0) = y(0) .y(0) .
On pose alors x(1) = x(0) + ρ(0) d(0) .
Itération 1 ≤ n ≤ n − 1 :
On suppose x(0) , ..., x(k) et d(0) , ..., d(k−1) connus
et on pose s(k) = b − Ax(k) et r(k) = At s(k) .
1) Si r(k) = 0, on a Ax(k) = b et donc x(k) = x,
auquel cas l’algorithme s’arrête.
2) Si r(k) 6= 0, alors on pose d(k) = r(k) + λk−1 d(k−1)
r(k) .r(k)
avec λ(k−1) = r(k−1) .r(k−1) ,
r(k) .r(k)
et on pose α(k) = y(k) .y(k) avec y (k) = Ad(k) .
On pose alors x(k+1) = x(k) + α(k) d(k) .
On peut facilement vérifier que dans cette version, on a un produit matrice vecteur en plus
à chaque itération, donc le coût est le même pour n itérations, mais il est inférieur si on a moins
de n itérations.
Remarque : Cette méthode s’appelle méthode du gradient conjugué appliquée aux équa-
tions normales.
Exercice 3.8. Dans cet exercice, on démontre la convergence de la méthode de Polak-Ribière
(méthode de gradient conjugué pour une fonctionnelle non quadratique) sous des hypothèses
2
“simples" sur f . Soit f ∈ C (R , R). On suppose qu’il existe α > 0, β ≥ α tel que α |y| ≤
2 n
2
H(x)y·y ≤ β |y| pour tout x, y ∈ Rn . (H(x) est la matrice hessienne de f au point x.)
1. Montrer que f est strictement convexe, que f (x) → ∞ quand |x| → ∞ et que le spectre
σ(H(x)) de H(x) est inclus dans [α, β] pour tout x ∈ IRn .
On note x l’unique point de Rn t.q. f (x) ≤ f (x) pour tout x ∈ Rn (l’existence et l’unicité
de x est donné par la question précédente).
On cherche une approximation de x en utilisant l’algorithme de Polak-Ribière :
initialisation. x(0) ∈ Rn . On pose g (0) = −∇f (x(0) ). Si g (0) = 0, l’algorithme s’arrête
(on a x = x). Si g 6= 0, on pose d = g et x = x + α0 d avec α0 “optimal"
(0) (0) (0) (0) (1) (0) (0)
Montrer que g (k+1) = g (k) + αk J (k) d(k) et que αk = (−g (k) ·d(k) )/(J (k) d(k) ·d(k) ) (pour tout
k ∈ N.
(k) β (k)
4. Montrer que d ≤ (1 + α
pour tout k ∈ N. [Utiliser, pour k ≥ 1, la question
) g
précédente et la formule donnant λk−1 .]
5. Montrer que x(k) → x quand k → ∞.
Corrigé 3.8
Or ϕ0 (t) = ∇(x + t(y − x))·(y − x) et donc ϕ” (t) = Hf (x + t(y − x))(y − x)·(y − x).On a
2
donc par hypothèse ϕ (t) ≥ α |y − x| . On déduit alors de que
”
α 2
f (y) ≥ f (x) + ∇f (x)·(y − x) + |y − x| .
2
timal dans la direction d(0) , on a g (1) ·d(0) = −∇f (x(1) )·d(0) = 0. De plus, on a évidemment
g (0) ·d(0) = g (0) ·g (0) .
Supposons maintenant que g (k) ·w(k−1) = 0 et g (k−1) ·g (k−1) = g (k−1) ·d(k−1) , et montrons
que g (k+1) ·d(k) = 0 et g (k) ·g (k) = g (k) ·d(k) .
Par définition, on a : d(k) = g (k) + λk−1 d(k−1) , donc
par hypothèse de récurrence. On déduit de cette égalité que d(k) ·g (k) > 0 (car g (k) 6= 0) et
donc d(k) est une direction de descente stricte en x(k) . On a donc ∇f (x(k+1) )·d(k) = 0, et
finalement g (k+1) ·d(k) = 0.
3. Par définition, g (k) = −∇f (x(k) ) ; or on veut calculer g (k+1) − g (k) = −∇f (x(k+1) ) +
∇f (x(k) ). Soit ϕ la fonction de R dans R définie par :
On a donc : Z 1
ϕ(1) − ϕ(0) = g (k+1) − g (k) = ϕ0 (t)dt.
0
On en déduit que
(k−1) (k−1) (k)
J d ·g
|λk−1 | = 2 ,
α |d (k−1) |
On utilise alors l’inégalité de Cauchy–Schwarz :
(k−1) (k−1) (k)
(k−1)
(k−1) (k)
J d ·g ≤
J
d g
2
≤ β|d(k−1) ||g (k) |.
β2
où γ = 2
+ (1 + α ) . La
α 2
fonction ψk est un polynôme de degré 2 en ρ, qui atteint son
1 1
minimum lorsque ψk0 (ρ) = 0, i.e. pour ρ = 2γ . On a donc, pour ρ = 2γ