Non Lin
Non Lin
Non Lin
Optimisation
Robert Guénette
Chapitre 3
Optimisation différentiable sans contrainte
Références
Condition d’optimalité
Condition du premier ordre
Condition du deuxième ordre
Méthodes numériques
Généralité
Méthode de descente
Méthode de Newton
Méthode quasi-Newton
Méthode du gradient conjugué
Méthodes de recherche linéaire
Méthodes directes
Références:
• Notes de cours: chapitre 3, section 3.1.
• Livre de M. Delfour: chapitre 3.
Condition nécessaire d’optimalité du premier ordre
Théorème:
Soit f : U −→ R une fonction numérique de classe C 1 définie sur un
ensemble ouvert U ⊂ Rn . Si x ∈ U est un point minimisant (minimum
local ou global), alors
∇f (x) = 0.
Preuve: Fixons v ∈ Rn . La fonction t → f (x + tv ) atteint un minimum
en t = 0. Par conséquent
d
f (x + tv )|t=0 = (∇f (x), v ) = 0, v ∈ Rn ,
dt
d’où le résultat.
Condition nécessaire et suffisante d’optimalité
Théorème:
Soit f : U −→ R une fonction numérique convexe de classe C 1 définie
sur un ensemble ouvert convexe U ⊂ Rn .
I x ∈ U est un point minimisant de f si et seulement si ∇f (x) = 0.
Preuve: Il suffit de montrer l’implication ⇐=.
f est convexe si
1
f (y ) = f (x) + (∇f (x), y − x) + (H (y − x), (y − x))
2
où H = H(x + t̄(y − x)) pour 0 < t̄ < 1. Ceci est valide dans un
voisinage V du point x. Mais
1
∇f (x) = 0 =⇒ f (y ) − f (x) = (H (y − x), (y − x)).
2
Par un argument de continuité et y → x, on obtient que
Théorème:
Soit f : U −→ R une fonction numérique de classe C 2 définie sur un
ensemble ouvert U ⊂ Rn .
(a) Si le point x ∈ U vérifie
∇f (x) = 0 et Hf (y ) ≥ 0 ∀y ∈ V ,
Pour y ∈ V , on a
1
f (y ) = f (x) + (∇f (x), y − x) + (H (y − x), (y − x))
2
Mais ∇f (x) = 0 et Hf (y ) ≥ 0 ∀y ∈ V =⇒ H ≥ 0 Donc
1
f (y ) = f (x) + (∇f (x), y − x) + (H (y − x), (y − x))
2
1
f (y ) = f (x) + (H (y − x), (y − x))
2
f (y ) ≥ f (x)
d’où le résultat.
Méthodes numériques de minimisation
On considère le problème de minimisation f (x̄) = min f (x) où
x∈U
f : U −→ R est une fonction numérique définie sur un ensemble ouvert
U ⊂ Rn .
x 0 ∈ Rn ,
xk+1 = xk + ρk dk .
∇f (x) = 0.
Méthode du gradient
dk = −∇f (xk )
1
= f (xk ) − ρk (∇f (xk ), ∇f (xk )) + 2 ρ2k (H ∇f (xk ), ∇f (xk )))
Algorithme du gradient:
I x0 ∈ Rn donné
I xk+1 = xk − ρk ∇f (xk ) où ρk > 0.
Si ρk = ρ, l’algorithme est dit à pas constant.
Critère d’arrêt
kxk+1 − xk k < 2 .
c’est-à-dire
∇f (xk+1 ) ⊥ ∇f (xk )
Calcul du pas optimal
En général, il n’est pas facile de calculer exactement la valeur ρ qui
minimise min f (xk − ρ ∇f (xk )). Par contre, pour la fonction
ρ
1
f (x) = (Ax, x) − (b, x) + c
2
avec A > 0, la situation est plus facile.
krk k2
ce qui fournit la valeur ρk = .
(Ark , rk )
Méthode de Newton
∇f (x̄) = 0
∂F
2 ∂F2 . . . ∂F2
∂x1 ∂x2 ∂xn
dF (x) =
.. .. .. ..
. . . .
∂Fn ∂Fn ∂Fn
∂x1 ∂x2 . . . ∂xn
Méthode de Newton (suite)
Méthode de Newton
1. Etant donné une approximation initiale x0 ,
2. Résoudre le système linéaire: dF (xk ) ∆x = −F (xk ) = R(xk ),
3. Mettre à jour la solution: xk+1 = xk + ∆x,
||∆x||
4. Si ||xk+1 || < 1 et/ou ||F (xk+1 )|| < 2 , la convergence est atteinte.
Calcul du minimum par la méthode de Newton
Soit f : U −→ R une fonction numérique de classe C 2 définie sur un
ensemble ouvert U ⊂ Rn . Il s’agit de résoudre
∂Fi ∂ ∂f ∂2f
dF (x) = = = = Hf (x)
∂xj ∂xj ∂xi ∂xi ∂xj
x0 ∈ Rn ,
−1
xk+1 = xk − [Hf (xk )] ∇f (xk ).
Remarque:
I Très sensible au choix du point initial.
I La convergence est en général quadratique.
Lien entre Newton et la méthode de descente
Faisons l’hypothèse que la matrice hessienne vérifie au point minimisant
x̄, la condition
dk = −Mk−1 ∇f (xk )
Mk = H(xk ) + ( − λ1 ) I .
xk+1 = xk + ρk dk
min f (xk + ρ dk )
ρ
dk+1 ⊥ dk .
rk+1 = rk − ρk A dk
dk+1 = rk+1 + βk dk
(rk , rk )
0 = (rk+1 , rk ) = (rk − ρk A dk , rk ) =⇒ ρk =
(A dk , rk )
Or rk = dk − βk−1 dk−1 =⇒
(rk+1 , A dk )
0 = (dk+1 , A dk ) = (rk+1 + βk dk , A dk ) =⇒ βk = −
(A dk , dk )
rk+1 − rk
Mais rk+1 = rk − ρk A dk =⇒ −A dk = . Ceci fournit la valeur
ρk
dk+1 = rk+1 + βk dk
Calcul des coefficients: cas non linéaire
g 0 (ρ) = 0
ρ0 donné,
g 0 (ρk )
ρk+1 = ρk − 00
g (ρk )
où g 0 (ρ) = (∇f (x + ρ d), d) et g 00 (ρ) = (Hf (x + ρ d)d, d)
Remarques:
I Converge rapidement
I On peut choisir ρ0 = 0
I Si f convexe, g 00 (ρ) > 0
I Nécessite le calcul de la matrice hessienne
I Peut diverger si ρopt trop loin de ρ0 = 0
I Peut converger vers une valeur ρ < 0
Recherche linéaire: méthode de la sécante
ρ0 , ρ1 donnés,
ρk − ρk−1
ρk+1 = ρk − g 0 (ρk )
g 0 (ρk ) − g 0 (ρk−1 )
où g 0 (ρ) = (∇f (x + ρ d), d). On notera que
g 0 (ρk ) − g 0 (ρk−1 )
g 00 (ρk ) ≈
ρk − ρk−1
Remarques:
I Converge rapidement
I Besoin de 2 valeurs: ρ0 = 0 mais ρ1 =?
I N’exige pas le calcul de la matrice hessienne
I Peut diverger si ρopt trop loin de ρ0 = 0
I Peut converger vers une valeur ρ < 0
Méthode de recherche linéaire approchés
Posons g (ρ) = f (x + ρ d). On choisit une valeur 0 < β < 1 plus près de
0 ( par exemple: β = 0.1).
On dira que la valeur ρ diminue de manière significative f si
I ρ donné. (ρ = 1)
I On vérifie que g (ρ) ≤ g (0) + β ρ g 0 (0)
I Sinon, on diminue le pas: ρ ←− τ ρ
où 0 < τ < 1 pas trop petit, par exemple τ = 0.5.
g 0 (ρ)
≤ β2 ⇐⇒ −g 0 (ρ) ≤ β2 (−g 0 (0))
g 0 (0)
car g 0 (0) < 0. Cette condition permet d’accepter toutes les valeurs où
g 0 (ρ) > 0.
x1 = λak + (1 − λ)x2
En substituant, on obtient
√
2 3− 5
λ = (1 − λ) =⇒ λ = ≈ 0.382 > 0
2
√
−1 + 5
On observe que 1 − λ = ≈ 0.618 est le nombre d’Or.
2
Autrement dit, le découpage de l’intervalle [ak , bk ] doit se faire suivant
les rapports 0.382 et 0.618.
Méthode directe (suite)
c’est-à-dire
x̄ − ak ≤ bk − ak = (1 − λ)k (b − a) <