ASTOUL Thomas GALY Quentin HY MSN Méthode d’optimisation Minimiser une fonction coût par la méthode du gradient conjugué Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 1/11 Table des matières I. Introduction.......................................................................................................................... 3 II. Méthode de gradient conjugué.............................................................................................. 3 III. Présentation de l’algorithme ............................................................................................. 3 IV. Méthode du gradient simple.............................................................................................. 4 V. Présentation algorithme........................................................................................................ 4 VI. Etude d’un cas simple ........................................................................................................ 5 VII. Etude fonction convexe simple .......................................................................................... 6 Méthode gradient conjugué ...................................................................................................... 6 VIII. Méthode gradient simple............................................................................................... 7 IX. Comparaison des deux méthodes ................................................................................... 9 X. Fonction de Rosenbrock avec le gradient simple .................................................................... 9 XI. Conclusion ...................................................................................................................... 11 Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 2/11 I. Introduction Lors de problèmes physiques, la recherche d’extremum pour trouver des positions d’équilibres stables ou instables est très fréquente. Dans le cadre d’un problème d’optimisation, l’objectif est de minimiser une fonction coût. Il peut être difficile de minimiser cette fonction coût et il existe plusieurs méthodes pour s’approcher le plus possible de la valeur minimale recherchée. Une de ces méthodes est l’approximation par la méthode de gradient conjugué que nous avons essayé de mettre en œuvre sous Matlab. Nous avons aussi comparé cette méthode avec la méthode de gradient simple. II. Méthode de gradient conjugué. La méthode de gradient conjugué est un algorithme de résolution des systèmes linéaires de la forme avec A une matrice symétrique définie positive. Cette méthode itérative converge en un nombre fini d'itérations, au maximum égal à la taille N de la matrice carrée A. Pour résoudre ce système, on va chercher à minimiser la fonction : ( ) ( En effet, si on souhaite minimiser la fonction, on a : ) ( ) L'idée principale de la méthode du gradient conjugué est de trouver le minimum d'une fonction selon une première direction puis on cherche le minimum suivant selon la direction qui est perpendiculaire à . A chaque itération, on applique la relation suivante : III. - - Présentation de l’algorithme On définit tout d’abord la matrice A définie positive et le vecteur b On initialise l’algorithme avec un vecteur arbitraire et on détermine une première direction direction_0 opposée au gradient en x0 : ( ) On créer une boucle allant de 0 à k-1 On calcule le nouveau vecteur connaissant et direction0 : - On calcule la valeur du nouveau gradient à la position x1 : - On peut alors déterminer la nouvelle direction de recherche - On peut ainsi calculer le nouveau alpha2 et déterminer la nouvelle position et ainsi de suite. On itère la boucle jusqu’à atteindre une limite que l’on se fixe. Dans notre cas la boucle est arrêtée lorsqu’on atteint une précision de 0.001. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 3/11 IV. Méthode du gradient simple La méthode du gradient simple est une méthode beaucoup plus simple à mettre en œuvre que le gradient conjugué mais qui a le même objectif : trouver un minimum local d’une fonction. On utilise ici le gradient en un point donné de courbe pour donner la direction de la descente. La distance entre le point et est calculée en fonction de la valeur du gradient et d’un pas déterminé à l’avance . Le pas a une influence très importante sur la vitesse de convergence de la méthode du gradient. Plus est grand, plus la méthode convergera rapidement. Cependant, si est trop grand, le calcul risque de diverger. V. - Présentation algorithme On définit un point initial On calcule et On itère n fois jusqu’à se rapprocher suffisamment près du minimum. Dans notre cas la boucle est arrêtée lorsqu’on atteint une précision de 0.001. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 4/11 VI. Etude d’un cas simple Nous avons d’abord commencé à tester l’algorithme de gradient conjugué sur une fonction simple avec une matrice A de dimension 2. Pour cet exemple, [ ] Figure 1 : Visualisation de la fonction du cas simple Figure 2 : Visualisation des itérations du gradient conjugué – point de départ (-6,6) On arrive à trouver la solution exacte en deux itérations qui est la taille de la matrice A. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 5/11 VII. Etude fonction convexe simple Méthode gradient conjugué Dans un deuxième temps, nous avons décidé de porter l’étude sur une fonction convexe simple ( ) Pour pouvoir tester cette fonction avec le code matlab, il faut tout d’abord passer cette fonction sous forme matricielle. [ On développe et par identification on trouve que : ][ ] [ ] Une fois la matrice A et le vecteur b défini dans le script, on peut lancer le code. Figure 3 : Visualisation de la fonction convexe Figure 4 : Gradient conjugué - point de départ (-6,-6) On trouve en deux itérations la solution exacte qui est (0,0) comme prédit par la taille de la dimension de la matrice A. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 6/11 VIII. Méthode gradient simple Nous avons ensuite traité la même fonction avec la méthode du gradient simple afin de comparer ces deux méthodes Figure 5 : Gradient simple - point de depart (-6,-6) On trouve également (0,0) comme point minimum de la fonction. Cependant le nombre d’itération pour trouver le minimum de la fonction ici est bien plus important. L’algorithme du gradient simple nécessite d’ajuster le paramètre du pas en fonction de la fonction à minimiser. Si le pas est trop grand le calcul ne converge pas. Pour un pas trop petit, le calcul est plus long à converger. Il y a donc un optimal dépendant de la fonction et du point de départ (ici (6,6)). Etude du pas sur le nombre d’itération pour converger Pas Nombre itération Temps exécution (s) 1 diverge infini 0.4 8 0.012 0.1 45 0.044 0.01 484 0.45 Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 7/11 Influence du pas λ sur le nombre d'itération Nombre d'itération 2500 2000 1500 1000 500 0 -0,02 0 0,02 0,04 0,06 0,08 0,1 0,12 λ Influence du pas λ sur le temps de convergence temps de convergence (s) 2,5 2 1,5 1 0,5 0 -0,02 0 0,02 0,04 0,06 0,08 0,1 0,12 λ Nous pouvons voir ici que le pas a une influence très importante sur le temps de convergence de l’algorithme. Avec un pas de 0.4 l’algorithme met seulement 8 itérations à converger. En dessous l’algorithme diverge. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 8/11 IX. Comparaison des deux méthodes Nous allons tout d’abord comparer les temps d’exécution des deux algorithmes pour trouver le minimum de la fonction pour différents points de départ. On considère l’algorithme convergé pour un gradient < 10-3. Point départ Temps gradient conjugué (s) Temps gradient simple (s) (-6,-6) 0.00046 0.009 (15,15) 0.00042 0.01 (2,-10) 0,00044 0.009 (200,100) 0.00043 0.013 Nous pouvons voir ici que l’algorithme du gradient conjugué trouve environ 25 fois plus rapidement le minimum de la fonction que l’algorithme du gradient simple. De plus, quel que soit le point de départ, le gradient conjugué met le même temps à converger alors que le temps de convergence du gradient simple dépend de la position du point de départ, plus ce dernier est loin, plus l’algorithme met du temps à converger. Le gradient conjugué est plus difficile à mettre en œuvre car il demande de mettre la fonction à minimiser sous forme de matrice et l’algorithme est un peu plus complexe cependant il converge beaucoup plus rapidement et ne nécessite pas de calcul de dérivée. X. Fonction de Rosenbrock avec le gradient simple Nous avons minimisé la fonction de Rosenbrock avec la méthode du gradient simple : ( ) ( ) ( ) Le minimum de la fonction se trouve en (1,1) Figure 6 Fonction de Rosenbrock Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 9/11 La méthode du gradient simple nous donne une solution au bout de 1615 itérations pour un critère de convergence de 0.1. Figure 7 Fonction Rosenbrock - Gradient simple - point de départ [-6,-6] Influence du critère de convergence sur le nombre d’itération On regarde l’influence du critère de convergence sur le nombre d’itération pour un même point de départ ( [-6,-6]) Epsilon 0.1 0.01 0.001 Nombre d’itérations 1615 1875 2136 Temps d’exécution (s) 1.478426 1.69575 1.968081 temps de convergence (s) Influence du critère ε sur le temps de convergence -0,02 2,2 2 1,8 1,6 1,4 1,2 1 0 0,02 0,04 0,06 0,08 0,1 0,12 ε Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 10/11 Influence du critère ε sur le nombre d'itération 2200 Nombre d'itératoion 2100 2000 1900 1800 1700 1600 1500 -0,02 0 0,02 0,04 0,06 0,08 0,1 0,12 ε Nous pouvons voir que plus le critère de convergence est petit, plus le programme met du temps à converger. Le nombre d’itération pour converger est aussi plus important. Etude du pas sur le nombre d’itération pour converger Pas Nombre itération Temps exécution (s) 0.001 Div Div 0.0001 2136 1.9753 0.00001 21421 36.598570 Si on prend un pas plus grand que 0.0001, le calcul diverge. XI. Conclusion Ce projet nous a permis de découvrir deux méthodes d’optimisation et de les comparer. La méthode du gradient conjugué est plus compliquée à mettre en œuvre mais converge beaucoup plus rapidement que la méthode du gradient simple. De manière générale, on retrouve de plus en en plus l’optimisation dans le monde de l’industrie. L’optimisation de forme en aéronautique où l’on cherche à minimiser une fonction coût (ex : la traînée) est un bon exemple d’application de l’optimisation. Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 11/11