Note sur la méthode de la section dorée

publicité
Note sur la méthode de la section dorée
François-Xavier Vialard
On propose dans cette note une courte présentation de la méthode de la section
dorée. On rappelle que la méthode est faite pour localiser un minimum local d’une
fonction unidimensionnelle rélle.
On commence par une définition utile:
Définition 1. Un triplet admissible pour une fonction f : R → R est un triplet de
réels (a, b, c) ∈ R3 vérifiant: a < b < c et min(f (a), f (c)) ≥ f (b).
Remarque 1.
• Si f est une fonction continue et un triplet admissible (a, b, c)
pour f alors il existe un minimum local de f dans [a, c].
• Si f est une fonction unimodale alors le minimum de f est contenu dans [a, c]
quelque soit le triplet admissible (a, b, c).
La méthode de la section dorée est une méthode de réduction de triplet admissible.
A chaque itération, la quantité c − a est multipliée par un facteur α = 0.618. Pour
pouvoir appliquer cette méthode, il faut pouvoir trouver un triplet admissible initial.
On propose l’algorithme suivant pour une fonction f définie sur R+ :
Initialisation de l’intervalle[a = 0, b] pour b ∈ R∗+ .
Tant que (f (a) ≤ f (b)) faire
b ← 2b
Fin
Initialisation de c ← 2b
Tant que (f (b) > f (c)) faire
a ← b,
b ← c,
c ← 2c
Fin
Tant que ((b − a) > tolérance) faire
Application d’une méthode de réduction du triplet a, b, c.
Fin
Retourner c
Algorithme 1: Méthode de dichotomie
Remarque 2.
termine.
• Si f est une fonction coercive et f décroissante en 0 alors l’algorithme
• Si f est une fonction unimodale alors l’algorithme termine.
Pour rénduire le triplet, il est nécessaire de disposer d’au moins une autre évaluation
de la fonction en un point d par exemple. Ce point suffit à la reduction du triplet,
c’est à dire à déduire un autre triplet admissible dont d est un élément. En particulier,
ce nouveau triplet admissible sera plus fin que le précédent. On a le lemme suivant:
1
Lemma 1. Si f (d) ≤ f (b) alors le triplet consécutif de points contenant d est admissible. Si f (b) ≤ f (d) alors le triplet consécutifs de points contenant b est admissible.
Proof. Les deux cas sont symétriques. Traitons seulement le premier. Si f (d) ≤ f (b)
alors f (d) ≤ min(f (a), f (b, f (c))) donc le triplet contenant d est admissible.
Remarque 3. Par exemple, le triplet de points consécutifs contenant d pour a < b <
d < c est (a, b, d).
La méthode de la section dorée pour la réduction du triplet est la suivante est
motivée par les deux points suivants:
• obtenir un taux de réduction (facteur de réduction de la longueur c − a) constant
• minimiser le nombre d’évaluations de la fonction f d’une itération à l’autre.
La conséquence de la première condition est que si b < d alors c − b = d − a et
symétriquement si d < b, c − d = b − a. Le facteur de réduction est donc défini par
c−b
dans le cas où b < d. On remarque alors b = c − α(c − a) et d = a + α(c − a).
α := c−a
La seconde condition impose une contrainte sur le choix de α. Il est naturel de
demander que lorsque la réduction du triplet a été effectuée selon le lemme 1 alors
la fonction f doit être calculée en un seul point supplémentaire pour permettre la
réduction du triplet. Prenons l’exemple où a = 0 et c = 1. Dans ce cas, α et 1 − α
sont les points b et d (l’ordre n’a pas d’importance puisque les rôles de b et d sont
échangeables).
• Supposons que la réduction du triplet sélectionne 0, α, 1 − α alors pour obtenir
une réduction de facteur α de ce triplet, il faut évaluer la fonction aux points
α(1 − α) et (1 − α)2 . On souhaite donc que α soit l’un de ces deux points.
Evidemment, on a α 6= α(1 − α) car 0 < α < 1 donc la seule possibilité
est
√
d’avoir α = (1 − α)2 qui admet une seule racine dans [0, 1] qui est α = 3−2 5 .
• Si le triplet choisi est α, 1−α, 1, on obtient comme condition α+(1−α)α = 1−α
et on obtient le même polynôme que précédemment. On aurait pu conclure
directement par un argument de symétrie.
Dans les deux cas, on√ obtient donc le même coefficient α ce qui donne un taux de
réduction de 1 − α = 5−1
qui vaut environ 0.618. Ce nombre est l’inverse du nombre
2
d’or, ce qui explique le nom de la méthode (Golden section search en anglais).
L’algorithme de la section dorée peut donc s’écrire:
√
[α := 12 ( 5 − 1)]
Initialisation d’un intervalle [a, b] contenant un minimum local.
Tant que (b − a > tolérance) faire
c ← αa + (1 − α)b,
d←a+b−c
Si (f(c) < f(d)) Alors
b←d
Sinon
a←c
Fin Si
Fin
Retourner c
Algorithme 2: Méthode de la section dorée
2
Téléchargement