ALGORITHMES D'OPTIMISATION NON LINÉAIRE: DESCENTE DE GRADIENT, LM, BFGS, SIMPLEX

pgl10 Messages postés 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 - 29 juin 2009 à 22:25
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014 - 2 juil. 2009 à 11:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50236-algorithmes-d-optimisation-non-lineaire-descente-de-gradient-lm-bfgs-simplexe

shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
2 juil. 2009 à 11:09
Merci à vous tous pour ces explications détaillées des cas pratiques ;-)
pgl10 Messages postés 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 11
1 juil. 2009 à 16:33
=> SHENRON666 : pour continuer encore un peu sur les utilisations de toutes ces méthodes on peut citer en géométrie 3d l'ajustement automatique d'une surface au meilleur voisinage d'un nuage de points. Qu'il s'agisse soit d'une surface implicite, exemple une sphère définie par son centre et son rayon, soit d'une surface paramétrique, exemple une surface de Bézier définie par un tableau de points de contrôle, dans tous les cas la fonction à minimiser est la somme des distances, ou de leurs carrés, des points du nuage à la surface provisoire et les variables sont les valeurs qui définissent cette surface. On en déduit la surface optimum.
=> PISTOL_PETE : merci d'avoir mis côte à côte ces diverses méthodes ayant des caractéristiques différentes et qui peuvent convenir plus ou moins à certains types de problèmes ou à certains cas particuliers. ( je n'ai pas 10 parce que cela ne se compile pas sur mon vieux VC6 !! )
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
1 juil. 2009 à 11:11
>PGL10 Effectivement au niveau de la stabilité la méthode Fletcher-Reeves avec relance périodique est très bonne.
Pour Shenron666, ces fonctions sont largement utilisé en chimie, en mécanique, en mathématique... en fait, presque toutes les disciplines.

Pour être concret, voici ma problématique; On sait que des particules d'un matériaux sont des parallélogrammes 3D. La problématique est de trouver la largeur, la longueur et l'épaisseur de ces particules: (L, l et e).
Ce sont donc mes trois paramètres que je vais optimiser par ces méthodes en minimisant une fonction "résidu" bien déterminé. Une fois la convergence atteinte, je connaitrais les paramètres optimaux (L*, l* et e*) de mes particules.
pgl10 Messages postés 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 11
30 juin 2009 à 20:18
Les méthodes de calcul dont on parle ici ont pour but de trouver le minimum d'une fonction à plusieurs variables en principe sans contraintes, c'est à dire sans limites du domaine à explorer, mais avec un nombre d'appel à la fonction et/ou son gradient le plus faible possible. Cela sert en économie pour optimiser un gain en fonction de paramètres, cela sert pour résoudre des équations non linéaires, ainsi que de nombreux autres problèmes.
pgl10 Messages postés 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 11
30 juin 2009 à 20:00
Bonjour Pistol_Pete
Je suis bien d'accord avec tes commentaires. L'ancienne méthode de Davidon Fletcher Powell, qui n'est pas là, est complètement surpassée par BFGS, on peut l'oublier. Mais si BFGS est le plus souvent la meilleure en rapidité,je crois que la méthode de Flechter et Reeves avec relance périodique peut dans certains cas être plus robuste. C'est justement pour cela que ton application est très utile pour faire divers essais et comparaisons. Donc encore bravo.
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
30 juin 2009 à 19:46
et sinon, concrètement, ça sert à quoi ?
désolé si la question vous parait bête mais comme ce n'est pas mon domaine ce serai sympa d'avoir quelques explications sur l'application réelle de ce programme ;-)
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
30 juin 2009 à 11:32
Après une petite recherche bibliographique, j'ai ajouté deux fonctions d'optimisation à mon programme :
La méthode de Fletcher-Reeves avec relance périodique (toutes les 2 itérations! ) et celle de Polack-Robière.(qui est juste une variante de Fletcher-Reeves).

Voici mes commentaires :
Ce sont deux méthodes très correctes, mais pas aussi bien que la méthode BFGS. D'ailleurs Fletcher-Reeves date de 1964 et la méthode BFGS de 1970. Le F de BFGS est pour ... Fletcher!

La méthode BFGS est donc une amélioration de la méthode de Fletcher-Reeves.
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
30 juin 2009 à 08:19
Bonjour PGL10
Merci de ton commentaire. Effectivement, je voulais faire une navigation sur les courbes la plus intuitif possible. Je pense y être arrivé avec une IHM style google Maps.

Pour la méthode de Fletcher et Reeves, je ne connaissais pas, mais je vais la regarder et surement faire une petite update de cette source...
pgl10 Messages postés 380 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 29 octobre 2023 11
29 juin 2009 à 22:25
Bravo pour l'aspect démonstratif et très didactique. La méthode de Fletcher et Reeves avec relance périodique a la réputation d'être très robuste. Ce serait sympa de l'ajouter.
Rejoignez-nous