Méthode d`optimisation Minimiser une fonction coût par

publicité
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
Téléchargement