• Aucun résultat trouvé

Chapitre I Méthodes

3.2 Méthodes locales

Le principe des méthodes d’optimisation locale est de minimiser l’énergie du système par étapes successives. Chaque itération consiste en une série de minimisations à une dimension le long de directions de recherche définies par un jeu de n vecteurs v1, v2, ... vn où n est le

nombre de degrés de liberté du système. On doit donc disposer d’un algorithme efficace de minimisation à une dimension. On part d’un point P de l’espace à n dimensions et pour chaque direction de recherche vi, on détermine i tel que l’énergie au point P+ivi soit

minimale. On remplace alors P par P+ivi, vi par ivi et on recommence. Ainsi, à chaque

itération, on se rapproche du minimum et on améliore le jeu de vecteurs que l’on adapte progressivement à la topologie de la surface.

Les méthodes locales diffèrent par le mode de détermination des directions de recherche et par les grandeurs nécessaires à ce calcul. Elles peuvent être classées en trois catégories :

 les méthodes sans évaluation de gradient  les méthodes de gradient

 les méthodes avec calcul du hessien

3.2.2 Méthodes sans évaluation de gradient [PFT86]

Ces méthodes, qui ne nécessitent que le calcul de l’énergie et non celui du gradient, procèdent par essais successifs et ne sont efficaces que dans le cas où le nombre de variables est très faible. Les plus connues sont la méthode du simplex et la méthode de Powell. Ces méthodes sont aujourd’hui très peu utilisées, et nous ne les décrirons pas en détail ici.

3.2.3 Méthodes de gradient

Dans ces méthodes, les directions de recherche vi sont construites à partir du gradient telles

D une matrice carrée pouvant être mise à jour à chaque itération. C’est le choix de cette

matrice qui différencie les méthodes de gradient. Les plus utilisées sont la méthode de la plus grande pente ou “steepest descent”, les méthodes du gradient conjugué et les méthodes pseudo-Newton.

 Méthode de la plus grande pente

A chaque itération, la matrice D est la matrice identité. On se déplace donc à chaque étape dans la direction opposée à celle du gradient, qui correspond à la direction de plus grande pente à partir du point considéré. La vitesse de déplacement s’exprime alors comme :

r  où  est le potentiel auquel est soumis le système. (I-27) L’avantage de cette méthode est qu’elle fait baisser très rapidement l’énergie au début de l’optimisation. En revanche, les directions de recherche successives étant perpendiculaires entre elles, puisqu’à chaque itération le gradient est calculé au minimum déterminé dans la direction de recherche de l’étape précédente, la convergence est très lente à l’approche du minimum, même dans le cas où l’énergie est de forme quadratique, ce qui est pratiquement toujours le cas au voisinage du fond du puits de potentiel.

 Méthodes du gradient conjugué et pseudo-Newton

Dans ces méthodes, la matrice D est mise à jour à chaque itération à partir des vecteurs gradients calculés lors des itérations précédentes. La nouvelle direction de recherche est donc conjuguée à toutes les directions suivies précédemment, ce qui permet de profiter de l’expérience accumulée au fur et à mesure des itérations. La différence entre les deux types de méthodes est la quantité d’informations concernant les itérations précédentes qui est stockée au cours de la minimisation. Ces méthodes sont efficaces et relativement peu coûteuses, en particulier si le gradient est calculé analytiquement. Ce sont des méthodes d’optimisation très utilisées pour l’optimisation locale. Parmi les algorithmes les plus connus se trouvent les algorithmes de Fletcher et Reeves [FR64] et de Polak et Ribiere [POL71] pour les méthodes de gradient conjugué et ceux de Davidson, Fletcher et Powell ou DFP [FP63, DAV68, BRO70], et de Broyden, Fletcher, Goldfarb et Shanno ou BFGS [FLE70, GOL70, SHA70] pour les méthodes pseudo-Newton.

3.2.4 Méthodes avec calcul du Hessien

La matrice D est à chaque itération l’inverse du Hessien au point considéré. Ces méthodes exigent donc à chaque pas le calcul du Hessien et son inversion, ce qui les rend beaucoup plus coûteuses que les méthodes pseudo-Newton pour une efficacité seulement légèrement supérieure. Leur principal avantage est qu’elles convergent en une itération dans le cas d’une forme quadratique de l’énergie. Elles sont d’autre part particulièrement utiles lorsque les autres méthodes, par exemple de gradient, rencontrent des problèmes de convergence.

3.2.5 Méthodes “panachées”

Aucune méthode parmi celles que nous venons de présenter ne permet de résoudre tous les problèmes qui peuvent se présenter lors d’une optimisation locale. Une solution est alors d’associer les méthodes. On peut par exemple commencer la minimisation grâce à la métho- de de la “steepest descent” qui on l’a vu, est très efficace au début de l’optimisation, c’est-à- dire “loin” du minimum, continuer par une méthode pseudo-Newton, et éventuellement finir par une méthode avec calcul du Hessien afin d’accélérer la convergence à l’approche du minimum et d’augmenter la précision. Une méthode de ce type est utilisée pour la minimisa- tion de la structure électronique dans le programme de Car et Parrinello dont nous nous servons [FIN98]. L’objectif est de converger le plus rapidement possible sur le minimum le plus proche à partir de n’importe quel point de la surface. La principale difficulté est de déterminer la méthode à utiliser en fonction du point où l’on se trouve et de sa position estimée par rapport au minimum recherché et il faut en général faire un compromis entre vitesse de convergence et robustesse de la méthode. Cette difficulté est en général contour- née dans les logiciels commerciaux, par exemple Gaussian94[FTS95], où l’algorithme de minimisation peut effectivement utiliser plusieurs méthodes différentes, mais dont le choix est laissé à l’utilisateur.

3.3 Méthodes non locales