Nothing Special   »   [go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
186 vues42 pages

Non Lin

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 42

MAT 2410:

Optimisation

Robert Guénette

Département de Mathématiques et de Statistique

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

f (y ) ≥ f (x) + (∇f (x), y − x) ∀y ∈ U

Mais ∇f (x) = 0 =⇒ f (y ) ≥ f (x) ∀y ∈ U, d’où le résultat.


Condition nécessaire d’optimalité du deuxième ordre
Théorème:
Soit f : U −→ R une fonction numérique de classe C 2 définie sur un
ensemble ouvert U ⊂ Rn . x ∈ U est un point minimisant de f , alors
I ∇f (x) = 0
I Hf (x) ≥ 0 où Hf est la matrice hessienne.
Preuve: Montrons que Hf (x) ≥ 0. Par Taylor, on a

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

(Hf (x) (y − x), (y − x)) ≥ 0

Pour tout v ∈ Rn , il est toujours possible de choisir r ∈ R de sorte que


y = x + r v ∈ V . En posant y − x = r v , on obtient le résultat.
Condition suffisante d’optimalité du deuxième ordre

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 (x) > 0,

où Hf est la matrice hessienne au point x, alors x est un minimum


local dans U.
(b) S’il existe un voisinage V du point x ∈ U vérifiant

∇f (x) = 0 et Hf (y ) ≥ 0 ∀y ∈ V ,

alors x est un minimum global dans V et local dans U.


Preuve de (a)

Si Hf (x) > 0, on aura que localement, il existe un voisinage V vérifiant


x ∈ V ⊂ U tel que =⇒ Hf (y ) > 0 ∀y ∈ V .
Par Taylor, on a
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.
Mais ∇f (x) = 0 et que H = H(x + t̄(y − x)) > 0.
Ceci implique
1
f (y ) = f (x) + (H (y − x), (y − x)) ≥ f (x) ∀y ∈ V .
2
Donc x est un minimum local.
Preuve de (b)

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 .

On cherche à produire une suite ayant les propriétés suivantes:


I f (xk+1 ) ≤ f (xk )
I xk → x̄ où x̄ est un point minimisant (local ou global).
Les méthodes sont regroupées en deux familles.
a) Les méthodes de descentes

x 0 ∈ Rn ,

xk+1 = xk + ρk dk .

où dk est la direction de descente et ρk > 0.


b) Les méthodes de type Newton. On résout le système non linéaire

∇f (x) = 0.
Méthode du gradient

Dans la méthode du gradient, on choisit

dk = −∇f (xk )

comme direction de descente car


f (xk+1 ) = f (xk − ρk ∇f (xk ))

1
= f (xk ) − ρk (∇f (xk ), ∇f (xk )) + 2 ρ2k (H ∇f (xk ), ∇f (xk )))

' f (xk ) − ρk k∇f (xk )k2 ≤ 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

On peut utiliser un (ou une combinaison) des critères suivants pour


arrêter les itérations d’un algorithme de descente.
I Etant donné que ∇f (xk ) → ∇f (x̄) = 0, on pose

k∇f (xk )k < 1 .

I On a xk → x̄, on peut aussi prendre

kxk+1 − xk k < 2 .

I Finalement, on a f (xk ) → f (x̄) , on peut prendre

kf (xk+1 ) − f (xk )k < 3 .


Etude de la convergence
Voici un résultat de convergence de la méthode du gradient.
Théorème: Soit f : Rn −→ R une fonction convexe et coercive de classe
C 2 admettant un seul minimum. De plus, on suppose qu’il existe une
constante M > 0 telle que
(Hf (x) v , v ) ≤ M kv k2 ∀x, v ∈ Rn .
Si on choisit les ρk dans l’intervalle
0 < β1 < ρk < β2 < 2/M,
alors l’algorithme du gradient converge.
1
Exemple: on prend f (x) = (Ax, x) − (b, x) + c avec A > 0. Vérifions
2
les hypothèses du théorème.
On sait que Hf (x) = A. Aussi f admet un seul minimum. De plus
(A v , v ) ≤ M kv k2 ∀v ∈ Rn
où M > 0 est la plus grande valeur propre de A. Donc la méthode du
gradient converge et s’écrit
I x0 ∈ Rn donné,
I xk+1 = xk + ρk (b − A xk ).
Méthode du gradient à pas optimaux
Dans la pratique, la méthode du gradient à pas constant converge très
lentement. Pour améliorer la convergence il est préférable de choisir les
ρk de manière optimale
I x0 ∈ Rn donné
I xk+1 = xk − ρk ∇f (xk )
où ρk > 0 est choisi de sorte que

min f (xk − ρ ∇f (xk ))


ρ

Note: la condition d’optimalité de ce problème de minimisation s’écrit


d
0= f (xk − ρ ∇f (xk ))|ρ=ρk = (∇f (xk+1 ), ∇f (xk ))

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.

Résidu: il est défini par r = −∇f (x) = b − A x.

La méthode du gradient s’écrit:


xk+1 = xk − ρk ∇f (xk ) = xk + ρk rk
=⇒ Axk+1 − b = Axk − b + ρk Ark
=⇒ rk+1 = rk − ρk Ark

La condition d’optimalité pour ρk est

∇f (xk+1 ) ⊥ ∇f (xk ) ⇐⇒ (rk+1 , rk ) = 0 ⇐⇒ (rk − ρk Ark , rk ) = 0

krk k2
ce qui fournit la valeur ρk = .
(Ark , rk )
Méthode de Newton

Soit f : U −→ R une fonction numérique de classe C 2 définie sur un


ensemble ouvert U ⊂ Rn .
Une condition nécessaire (et suffisante si f est convexe) pour qu’un point
x̄ ∈ U soit un minimum (local ou global) est

∇f (x̄) = 0

Par conséquent, le point x̄ doit vérifier le système de n équations à n


variables
F (x) = ∇f (x) = 0.
Une approche très populaire pour résoudre F (x) = 0 est la méthode de
Newton.
Méthode de Newton (suite)
Soit F : U −→ Rn une application à valeur vectorielle de classe C 2
définie sur un ensemble ouvert U ⊂ Rn . On notera F = (F1 , F2 , . . . , Fn ).


 F1 (x1 , x2 , x3 , . . . , xn ) = 0
 F2 (x1 , x2 , x3 , . . . , xn ) = 0



F (x) = 0 ⇐⇒ F3 (x1 , x2 , x3 , . . . , xn ) = 0
 .. .
= ..



 .
Fn (x1 , x2 , x3 , . . . , xn ) = 0

Résidu: le résidu est défini par R(x) = −F (x).

Matrice jacobienne: la matrice jacobienne dF ( aussi noté par J) est


définie par  ∂F 
∂F1
1
∂x1 ∂x2 . . . ∂F
∂xn
1

 ∂F
 2 ∂F2 . . . ∂F2 

 ∂x1 ∂x2 ∂xn 
dF (x) = 
 .. .. .. .. 

 . . . . 
 
∂Fn ∂Fn ∂Fn
∂x1 ∂x2 . . . ∂xn
Méthode de Newton (suite)

La méthode de Newton est basée sur l’approximation linéaire de F autour


d’un point x0
F (x0 + ∆x) ≈ F (x0 ) + dF (x0 ) ∆x
On désire calculer la correction ∆x de sorte que
−1
0 = F (x0 +∆x) ≈ F (x0 )+dF (x0 ) ∆x = 0 =⇒ ∆x = − [dF (x0 )] F (x0 )

Etant donné l’approximation, il est nécessaire d’itérer ce qui conduit à


l’algorithme suivant.

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

f (x̄) = min f (x)


x∈U

On pose F (x) = ∇f (x). La matrice jacobienne est

∂Fi ∂ ∂f ∂2f
dF (x) = = = = Hf (x)
∂xj ∂xj ∂xi ∂xi ∂xj

qui est toujours symétrique.

L’algorithme de Newton s’écrit

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

Hf (x̄) > 0 =⇒ Hf (x) > 0 ∀x près de x̄.

En particulier, on aura pour les xk près de x̄


−1
Hf (xk ) > 0 =⇒ [Hf (xk )] > 0.

On développe f par Taylor autour du point xk


1
f (xk+1 ) = f (xk ) + (∇f (xk ), xk+1 − xk ) + (H (xk+1 − xk ), xk+1 − xk ).
2
Mais l’algorithme de Newton fournit la valeur xk+1 = xk − Mk−1 ∇f (xk )
−1
où Mk−1 = [Hf (xk )] > 0.
En négligeant le terme d’ordre 2, on obtient

f (xk+1 ) = f (xk ) − (Mk−1 ∇f (xk ), ∇f (xk ) + 1


2 (H (xk+1 − xk ), xk+1 − xk ),
≈ f (xk ) − (Mk−1 ∇f (xk ), ∇f (xk )),
≤ f (xk ) car Mk−1 > 0.
Méthode quasi-Newton

La méthode de Newton pose plusieurs difficultés.

Approximation de la matrice hessienne


En premier, il y a la nécessité de calculer la matrice hessienne. Pour
certains types de problèmes, cela peut devenir problématique. Dans ce
cas, on peut avoir recours à une approximation de la matrice hessienne.
Pour cela, on utilise la formule de différences finies
∇f (x + hej ) − ∇f (x)
H(x) ej ≈
h
où ej est le j ième vecteur de la base canonique de Rn . h > 0 est une
petite valeur de l’ordre de 10−8 . On notera que H(x) ej représente la j
ième colonne de la matrice hessienne.
Méthode quasi-Newton (suite)

Méthode de quasi-Newton modifiée


Cette approche est basée sur l’observation que si Mk est une matrice
symétrique et définie-positive, alors

dk = −Mk−1 ∇f (xk )

est une direction de descente. En effet, on applique de nouveau Taylor


1
f (xk+1 ) = f (xk + dk ) = f (xk ) + (∇f (xk ), dk ) + (H dk , dk ).
2
En négligeant le terme d’ordre 2, on obtient

f (xk+1 ) = f (xk ) − (Mk−1 ∇f (xk ), ∇f (xk ) + 1


2 (H dk , dk ),
≈ f (xk ) − (Mk−1 ∇f (xk ), ∇f (xk )),
≤ f (xk ) car Mk−1 > 0.
Méthode quasi-Newton (suite)
Le choix de newton comme direction de descente dk = −H(xk )−1 ∇f (xk )
ne fonctionne que si la matrice est H(xk ) > 0. Supposons qu’à une
certaine itération, la matrice H(xk ) n’est pas définie-positive. Elle admet
les valeurs propres
λ1 ≤ λ2 ≤ · · · ≤ λn
Si λ1 <  pour une petite valeur  > 0, on peut translater la matrice
H(xk ) de sorte que les valeurs propres soient toujours plus grande que
 > 0. Il suffit de poser

Mk = H(xk ) + ( − λ1 ) I .

Méthode de Newton modifiée


1. Etant donné une approximation initiale x0 ,
2. Calculer la première valeur propre λ1 de H(xk ). Si λ1 < , poser
Mk = H(xk ) + ( − λ1 ) I , sinon Mk = H(xk ).
3. Calculer la direction de descente: Mk dk = −∇f (xk ),
4. Mettre à jour la solution: xk+1 = xk + dk .
Méthode quasi-Newton (suite)

Finalement, il est souvent nécessaire de garantir que f (xk+1 ) ≤ f (xk ).


Ceci peut être fait en modifiant la mise à jour de la solution

xk+1 = xk + ρk dk

où ρk > 0 est choisi de sorte que

min f (xk + ρ dk )
ρ

Dans la pratique, il est préférable de faire plutôt une recherche linéaire à


partir de la valeur ρ = 1. Afin de garantir la convergence quadratique, il
est important de terminer les itérations avec le choix de ρk = 1. Les
algorithmes de recherche linéaire seront présentés plus loin.
Directions conjugées

Pour l’algorithme du gradient à pas optimal, les directions de descentes


dk = −∇f (xk ) vérifie la propriété

dk+1 ⊥ dk .

Pour des courbes de niveaux très applaties, la convergence de


l’algorithme du gradient peut être très lente à cause du mouvement en
zig-zag. Par conséquent, nous allons définir d’autres directions de
descentes qui respectent mieux la géométrie du problème.

En premier, nous allons considérer le cas quadratique min f (x) avec


1
f (x) = (Ax, x) − (b, x) où A est symétrique et définie-positive.
2
C’est-à-dire, nous allons traiter de la résolution itérative du système
linéaire
Ax = b.
Algorithme du gradient conjugué
Directions conjugées Un ensemble de vecteurs {d0 , d1 , d2 , . . . , dk } est
dit A-conjuguée si
(A di , dj ) = 0 ∀i 6= j
Autrement dit, les {di } sont perpendiculaires entre eux par rapport au
produit scalaire induit par la matrice A: hu, v i = (Au, v ).

Le but de l’algorithme du gradient conjugué est de construire deux suites


de vecteurs: les itérés {x0 , x1 , x2 , . . . , xk } et les directions de descentes
{d0 , d1 , d2 , . . . , dk } qui vérifient les propriétés suivantes. On note le
vecteur résidu: rk = b − Axk .
I la suite des résidus {r0 , r1 , r2 , . . . , rk } forme un système orthogonal
(au sens usuel)
I la suite des directions de descentes {d0 , d1 , d2 , . . . , dk } forme un
système A-conjuguées.
Conséquence: l’algorithme du gradient conjugué converge en au plus n
itérations, i.e. fournit la solution exacte de Ax = b.
Algorithme du gradient conjugué (suite)

L’objectif est de construire les itérés xk et les directions conjuguées dk .

Voici les étapes de l’algorithme du gradient conjugué


I Mise à jour de xk :
xk+1 = xk + ρk dk
I Mise à jour du résidu rk :

rk+1 = rk − ρk A dk

I Mise à jour des directions conjuguées dk :

dk+1 = rk+1 + βk dk

L’algorithme démarre avec le choix d0 = r0 = b − A x0 pour un certain


point initial x0 (par exemple x0 = 0.)
Calcul des coefficients ρk

Il suffit d’exiger que rk+1 ⊥ rk .

(rk , rk )
0 = (rk+1 , rk ) = (rk − ρk A dk , rk ) =⇒ ρk =
(A dk , rk )

Or rk = dk − βk−1 dk−1 =⇒

(A dk , rk ) = (A dk , dk −βk−1 dk−1 ) = (A dk , dk ) car les dk sont A-conjugué.

Ceci fournit la valeur


krk k2
ρk =
(A dk , dk )
Calcul des coefficients βk

Il suffit d’exiger que dk+1 ⊥A dk .

(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

(rk+1 , A dk ) (rk+1 , rk+1ρk−rk ) (rk+1 , rk+1 )


βk = − = =
(A dk , dk ) (A dk , dk ) ρk (A dk , dk )
krk k2
car (rk+1 , rk ) = 0. De plus, ρk = (A dk ,dk )
Ceci fournit la valeur finale
krk+1 k2
βk = .
krk k2
Méthode du gradient conjugué
Voici l’algorithme final:

I Evaluer le résidu initial r0 = b − Ax0 et poser d0 = r0 .


I Pour k = 0, . . . , jusqu’à convergence, faire:
krk k2
I calculer ρk =
(A dk , dk )
I xk+1 = xk + ρk dk
I rk+1 = rk − ρk A dk
krk+1 k2
I βk =
krk k2
I dk+1 = rk+1 + βk dk
I Fin de la boucle sur k
Remarques: Le critère d’arrêt est généralement de la forme krk k <  ou
krk k
encore < . Souvent, on prend x0 = 0 comme point de départ.
kr0 k
Généralisation au cas non linéaire

Nous allons généralisé l’algorithme du gradient conjugué pour des


problèmes min f (x) où f est non quadratique (cas non linéaire).

Les principales étapes de l’algorithme demeurent les mêmes.


On pose rk = −∇f (xk ).
I Mise à jour de xk :
xk+1 = xk + ρk dk
I Mise à jour du résidu rk :

rk+1 = −∇f (xk+1 )

I Mise à jour des directions conjuguées dk :

dk+1 = rk+1 + βk dk
Calcul des coefficients: cas non linéaire

I Calcul des coefficients ρk : on calcule la valeur optimale qui réalise le


minimum de
min f (xk + ρ dk ),
ρ

généralement fait par un algorithme de recherche linéaire.


I Calcul des coefficients βk : deux choix sont possibles
krk+1 k2
I βk = (Fletcher-Reeves)
krk k2
(rk+1 − rk , rk+1 )
I βk = (Polak-Ribière)
krk k2
Souvent, ce dernier choix conduit à de meilleurs résultats.
Remarque: dans le cas non linéaire, on perd la propriété que l’algorithme
converge en au plus n itérations.
Méthodes de recherche linéaire

Dans plusieurs algorithmes présentés jusqu’à présent, il est nécessaire de


minimiser
min f (x + ρ d),
ρ>0

suivant une direction de descente d.


Posont g (ρ) = f (x + ρ d). La condition d’optimalité du minimum est

g 0 (ρ) = 0

que l’on peut résoudre soit par la méthode de Newton ou celle de la


sécante.
Recherche linéaire: méthode de Newton


 ρ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

En général, il n’est pas nécessaire de calculer précisément la valeur de ρ


qui minimise
min f (x + ρ d).
ρ>0

On peut se contenter d’une valeur très approximative. En fait, il suffit de


trouver une valeur ρ qui diminue de manière significative
f (x + ρ d) < f (x).

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

g (ρ) ≤ g (0) + β ρ g 0 (0) ⇐⇒ f (x + ρ d) ≤ f (x) + β ρ (∇f (x + ρ d), d)


Méthode d’Armijo

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.

Remarque: cette méthode connue sous le nom de Armijo Backtracking


Line Search, est idéal pour les méthodes de minimisation de type Newton
car la valeur ρ = 1 joue un rôle particulier.
Conditions de Wolfe
Pour les méthodes de type gradient (conjugué), la méthode d’Armijo
n’est pas suffisante. La condition

g (ρ) ≤ g (0) + β ρ g 0 (0)

va fournir une borne supérieure ρmax pour laquelle la condition est


satisfaite. Mais on a aucune borne inférieure. Donc on peut être très loin
du minimum de min f (x + ρ d). Pour cela, on introduit une seconde
ρ>0
condition qui exige que la dérivée g 0 (ρ) soit près de 0. Soit 0 < β2 < 1
pas trop petit, par exemple β2 = 0.9.

Condition faible de Wolfe

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.

Condition forte de Wolfe: |g 0 (ρ)| ≤ β2 |g 0 (0)|


Cette condition plus forte, limite grandement les valeurs acceptables de ρ.
Méthode directe basée sur le nombre d’Or

I Connue sous le nom de Golden section minimization.


I Permet le calcul d’un minimum (local) d’une fonction continue
f : [a, b] → R.
I N’utilise pas la dérivée.
I Peut s’appliquer aux fonctions non dérivables

Principe de la méthode: soient x1 < x2 dans l’intervalle [a, b]


I Si f (x1 ) ≤ f (x2 ), alors il y a un minimum (local) dans l’intervalle
[a, x2 ].
I Si f (x1 ) ≥ f (x2 ), alors il y a un minimum (local) dans l’intervalle
[x1 , b].
Méthode directe (suite)

A partir du principe de base, il s’agit de construire une suite de


sous-intervalles [ak , bk ] de l’intervalle initial [a, b] contenant le minimum
local x̄. On pose a0 = a et b0 = b.
I ak ≤ x̄ ≤ bk ∀k,
I bk − ak → 0.

Pour les deux évaluations x1 < x2 dans chacun des sous-intervalles


[ak , bk ], on pourrait prendre ceux situés au tiers et au deux-tiers de
l’intervalle.

Par exemple: pour [a, b] = [0, 1], on aurait x1 = 1/3 et x2 = 2/3. Si


f (x1 ) ≤ f (x2 ), les prochaines évaluations de l’intervalle [0, 2/3] seraient
x1 = 2/9 et x2 = 4/9. Aucun de ces points ne correspondent aux points
x1 , x2 de l’itération précédente.
Méthode directe (suite)

Par un meilleur choix des points x1 , x2 , il est possible de réutiliser un de


ces points à l’itération suivante. Pour cela, on pose x1 = (1 − λ)ak + λbk
et x2 = λak + (1 − λ)bk avec 0 < λ < 1. Faisons l’hypothèse que
l’intervalle [ak , x2 ] est choisi. Il s’agira de déterminer λ de sorte que le
nouveau x2 est égal à l’ancien x1

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)

Il reste à préciser le critère d’arrêt.

Pour cela, il faut évaluer bk+1 − ak+1 en fonction de bk − ak . De


nouveau, faisons l’hypothèse que l’intervalle [ak , x2 ] est choisi. On aura
que ak+1 = ak et bk+1 = x2 . On obtient

bk+1 − ak+1 = [λak + (1 − λ)bk ] − ak = (1 − λ)(bk − ak ),

c’est-à-dire

bk − ak = (1 − λ)k (b − a) ≈ (0.618)k (b − a).

Si x̄ dénote le minimum cherché, on aura

x̄ − ak ≤ bk − ak = (1 − λ)k (b − a) < 

Ceci permet de calculer le nombre d’itérations k nécessaires pour obtenir


la précision désirée.

Vous aimerez peut-être aussi