AccueilđŸ‡«đŸ‡·Chercher

MĂ©thode de Nelder-Mead

La méthode de Nelder-Mead est un algorithme d'optimisation non linéaire qui a été publiée[1] par John Nelder et Roger Mead (en) en 1965. C'est une méthode numérique heuristique qui cherche à minimiser une fonction continue dans un espace à plusieurs dimensions.

Illustration de la méthode de Nelder-Mead sur la fonction de Rosenbrock

AppelĂ©e Ă©galement downhill simplex method, l’algorithme exploite le concept de simplexe qui est un polytope de N+1 sommets dans un espace Ă  N dimensions. Partant initialement d’un tel simplexe, celui-ci subit des transformations simples au cours des itĂ©rations : il se dĂ©forme, se dĂ©place et se rĂ©duit progressivement jusqu’à ce que ses sommets se rapprochent d’un point oĂč la fonction est localement minimale.

La mĂ©thode de Nelder-Mead avec recuit simulĂ© est issue du couplage entre l’algorithme d’origine et le mĂ©canisme empirique du recuit simulĂ©.

Algorithme

Soit une fonction f dĂ©finie sur un espace de dimension N. L'algorithme dĂ©bute par la dĂ©finition d'un simplexe non dĂ©gĂ©nĂ©rĂ© choisi dans cet espace. Par itĂ©rations successives, le processus consiste Ă  dĂ©terminer le point du simplexe oĂč la fonction est maximale afin de le remplacer par la rĂ©flexion (c'est-Ă -dire le symĂ©trique) de ce point par rapport au centre de gravitĂ© des N points restants. Si la valeur de la fonction en ce nouveau point est infĂ©rieure Ă  toutes les autres valeurs prises sur les autres points, le simplexe est Ă©tirĂ© dans cette direction. Sinon si la valeur de la fonction en ce nouveau point est meilleure que la deuxiĂšme moins bonne mais moins bonne que la meilleure, on garde cette valeur et on recommence. Sinon, il est supposĂ© que l'allure locale de la fonction est une vallĂ©e, et le simplexe est contractĂ© sur lui mĂȘme. Si cela ne donne toujours pas un meilleur point, le simplexe est rĂ©duit par une homothĂ©tie centrĂ©e sur le point du simplexe oĂč la fonction est minimale.

Plus précisément :

  1. Choix de N+1 points de l'espace des inconnues de dimension N. Cela forme un simplexe : {},
  2. Calcul des valeurs de la fonction f en ces points, tri des points de façon à avoir . Il suffit en fait de connaßtre le premier et les deux derniers.
  3. Calcul de x0, centre de gravité de tous les points sauf xN+1.
  4. Calcul de (réflexion de xN+1 par rapport à x0).
  5. Soit , remplacement de xN+1 par et retour Ă  l'Ă©tape 2.
  6. Soit , calcul de (expansion du simplexe). Si , remplacement de xN+1 par sinon, remplacement de xN+1 par xr et retour Ă  l'Ă©tape 2.
  7. Soit , calcul de (contraction du simplexe). Si , remplacement de xN+1 par xc et retour Ă  l'Ă©tape 2, sinon aller Ă  l'Ă©tape 8.
  8. Homothétie de rapport et de centre x1 : remplacement de xi par et retour à l'étape 2.

Avec des coefficients tels que , et . Des valeurs standards sont , , et .

Analyse

Avantages

  • La gĂ©nĂ©ralitĂ© : la mĂ©thode s'applique Ă  une fonction continue sans avoir Ă  Ă©valuer ses dĂ©rivĂ©es.
  • La simplicitĂ© de la mise en Ɠuvre.
  • L’efficacitĂ© pour une fonction non dĂ©rivable.
  • L’interprĂ©tation gĂ©omĂ©trique sous-jacente.
  • Assurance d’obtenir une sĂ©rie dĂ©croissante de valeurs.

Inconvénients

  1. S’applique mal (ou difficilement) lorsque le domaine de dĂ©finition de la fonction est complexe ou que le minimum recherchĂ© se situe dans un voisinage de la frontiĂšre.
  2. Elle nĂ©cessite la donnĂ©e « arbitraire » d’un simplexe de dĂ©part, qui peut ralentir l’algorithme si mal choisi.
  3. Une dégradation des performances lorsque la dimension N augmente.
  4. Le risque que les simplexes obtenus successivement aient tendance Ă  dĂ©gĂ©nĂ©rer (bien que l’expĂ©rience montre que ce soit rarement le cas).
  5. L'optimum obtenu par la méthode n'est pas forcément un optimum global.

Amélioration facile et trÚs efficace : redémarrer l'algorithme

Pour pallier les inconvĂ©nients 1) et 4), ainsi que d'autres, le fait de redĂ©marrer l'algorithme de Nelder-Mead Ă  partir de la derniĂšre solution obtenue (et continuer de le redĂ©marrer jusqu'Ă  ce qu'il n'y ait plus d'amĂ©lioration, jusqu'Ă  une prĂ©cision donnĂ©e) ne peut qu'amĂ©liorer (parfois trĂšs fortement) la solution finale[2] - [3]. De mĂȘme, il est souvent conseillĂ© de faire plusieurs exĂ©cutions de l'algorithme, Ă  partir de solutions initiales diffĂ©rentes (lĂ  encore, pour diminuer l'impact des inconvĂ©nients de la mĂ©thode et permettre de trouver une meilleure solution finale).

Lorsque le domaine de définition admet une frontiÚre et que le minimum se situe sur ou à proximité de cette frontiÚre, les déformations successives du simplex ont tendance à le dégénérer. Une maniÚre efficace de l'éviter consiste à prolonger la fonction hors de sa frontiÚre en lui ajoutant une pénalité.

Méthode de Nelder-Mead avec recuit simulé

Lorsque la fonction possĂšde de nombreux minima locaux, il arrive frĂ©quemment de converger vers l’un d’eux et de manquer la solution. Dans un tel cas, il est possible d’introduire[4] dans la mĂ©thode de Nelder-Mead un couplage avec le mĂ©canisme empirique du recuit simulĂ© : Ă  chaque itĂ©ration, les valeurs effectives de la fonction aux divers sommets sont perturbĂ©es par un bruit de fond « thermique » alĂ©atoire dont l’importance dĂ©croĂźt au fur et Ă  mesure que l’algorithme progresse.

Notes et références

  1. (en) John Nelder et Roger Mead, « A simplex method for function minimization », Computer Journal, vol. 7, no 4,‎ , p. 308-313
  2. « Improving the convergence of Nelder-Mead (and so fminsearch) », sur Mathworks.com (consulté le ).
  3. Simon, Emile, « Optimal static output feedback design through direct search », sur arXiv.org, (consulté le ).
  4. W. H Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, « Numerical Recipes : The Art of Scientific Computing », Cambridge University Press, Third Edition (2007)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.