TP ENSEEIHT M´ethodes num´eriques pour les probl`emes d’optimisation

TP ENSEEIHT
M´
ethodes num´
eriques pour les probl`
emes d’optimisation
E. Bergou, A. Cossonni`
ere, S. Gratton et D. Ruiz
30 novembre 2012
1
Optimisation 2012-2013, ENSEEIHT
1 Optimisation sans contraintes
Dans cette partie, nous nous int´
eressons aux algorithmes pour la r´
esolution de probl`
emes
d’optimisation sans contraintes, et en particulier aux algorithmes de recherche lin´
eaire.
L’objectif de ce TP sera de r´
ealiser un code de minimisation locale, et d’´
evaluer ses perfor-
mances sur les fonctions de tests suivantes :
f1(x, y) = 2(x+y2)2+ (xy)2.
f2(x, y) = 100(yx2)2+ (1 x)2.
1.1 Algorithmes de descente
Un algorithme de descente est d´
etermin´
e par les strat´
egies de choix des directions de
descente successives, puis par le pas qui sera effectu´
e dans la direction choisie. Dans la
premi`
ere partie nous allons nous concentrer sur le choix de la direction de descente, et dans
la deuxi`
eme partie nous allons voir des m´
ethodes pour le calcul du pas, qui garantissent la
convergence globale.
Directions de descente
L’id´
ee est de remplacer la fonction f par un mod`
ele local plus simple, dont la minimi-
sation nous donnera une direction de descente.
1.1.1 Algorithmes de gradient `
a pas fixe ou pas optimal
Soit xkRnl’it´
er´
e courant, on remplace f au voisinage de xkpar son d´
eveloppement
de Taylor au premier ordre :
f(xk+d)f(xk) + f(xk)Td.
Une direction de descente possible est la direction de plus profonde descente d´
efinit par :
dk=−∇f(xk).
Le choix de la direction de plus profonde descente d´
efinit une famille d’algorithmes appel´
es
algorithmes de descente de gradient dont le sch´
ema est le suivant :
Algorithm 1.1 ALGORITHME DE DESCENTE
Donn´
ees : f,x0premi`
ere approximation de la solution cherch´
ee,  > 0pr´
ecision de-
mand´
ee.
Sortie : une approximation de la solution du probl`
eme : minxRnf(x)
1.Tant que le test de convergence n’est pas satisfait :
a. Direction de descente : dk=−∇f(xk).
b. Recherche lin´
eare : Choisir un pas sk`
a faire dans cette direction, tel que :
f(xk+1)f(xk).
c. Mise `
a jour : xk+1 =xk+skdk,k=k+ 1,
2. Retourner xk.
1.1.2 M´
ethode de Newton locale
Pour construire les m´
ethodes de gradient, nous avons remplac´
e f par son approximation
lin´
eaire au voisinage de l’it´
er´
e courant. Ces m´
ethodes ne sont pas tr`
es performantes, parce
qu’elles ne prennent pas en compte la courbure de la fonction (convexit´
e, concavit´
e ...) qui
est une information au second ordre.
2
1.1 Algorithmes de descente Optimisation 2012-2013, ENSEEIHT
Principe
Supposons maintenant que f est de classe C2et remplac¸ons fau voisinage de l’it´
er´
e
courant xkpar son d´
eveloppement de Taylor au second ordre :
f(y)q(y) = f(xk) + f(xk)T(yxk) + 1
2(yxk)T2f(xk) (yxk),
On choisit alors comme point xk+1 le minimum de la quadratique qlorsqu’il existe et est
unique, ce qui n’est le cas que si 2f(xk)est d´
efinie positive. Or le minimum de q est
r´
ealis´
e par xk+1 solution de : q(xk+1)=0, soit :
f(xk) + 2f(xk)(xk+1 xk)=0,
ou encore, en supposant que 2f(xk)est d´
efinie positive :
xk+1 =xk− ∇2f(xk)1f(xk).
La m´
ethode ne doit cependant jamais ˆ
etre appliqu´
ee en utilisant une inversion de la matrice
Hessienne (qui peut ˆ
etre de tr`
es grande taille et mal conditionn´
ee) mais plutˆ
ot en utilisant :
xk+1 =xk+dk,
o`
udkest l’unique solution du syst`
eme lin´
eaire :
2f(xk)dk=−∇f(xk)
dk´
etant appel´
ee direction de Newton.
Cette m´
ethode est bien d´
efinie si `
a chaque it´
eration, la matrice hessienne 2f(xk)est
d´
efinie positive : ceci est vrai en particulier au voisinage de la solution xcherch´
ee si on
suppose que 2f(x)est d´
efinie positive (par continuit´
e de 2f).
Algorithme
Algorithm 1.2 M´
ETHODE DE NEWTON LOCALE
Donn´
ees : f,x0premi`
ere approximation de la solution cherch´
ee,  > 0pr´
ecision de-
mand´
ee.
Sortie : une approximation de la solution du probl`
eme : minxRnf(x)
1.Tant que le test de convergence est non satisfait :
a. Calculer dksolution du syst`
eme : 2f(xk)dk =−∇f(xk),
b. Choisir un pas sk, (e.g sk= 1),
c. Mise `
a jour : xk+1 =xk+skdk,k=k+ 1,
2. Retourner xk.
Travail `
a r´
ealiser
R´
esolution math´
ematique
Pour chacun des probl`
emes tests,
Donner les points critiques des fonctions propos´
ees.
Les fonctions fiadmettent-elles des minima sur R2?
3
1.1 Algorithmes de descente Optimisation 2012-2013, ENSEEIHT
Programmation en Matlab
R´
esoudre les probl`
emes tests de minimisation :
min
(x,y)R2fi(x)i1,2
Par l’algorithme de Newton ( pour le pas prendre sk= 1 `
a chaque it´
eration)
– Pr´
eciser le ou les crit`
eres d’arrˆ
et utilis´
es ?
Commenter les r´
esultats obtenus avec diff´
erents points de d´
epart x0?
1.1.3 M´
ethodes de Quasi-Newton
Principe
Pour ´
eviter le calcul de la matrice hessienne, les m´
ethodes de Quasi-Newton utilisent
une approximation de cette matrice comme suit :
Pour une fonction quadratique, il est ais´
e de d´
emontrer que f(x1)− ∇f(x2) =
2f(x1)(x1x2). Cela indique que la connaissance de deux vecteurs distincts x1et
x2et de la diff´
erence de gradient associ´
ee permet d’obtenir, au voisinage de la solution,
une approximation sur 2f(x). Plus g´
en´
eralement, on suppose connus s=x1x2
et y=f(x1)− ∇f(x2), ainsi qu’une approximation courante B de la Hessienne. On
cherche une nouvelle approximation ˆ
B, telle que ˆ
B soit sym´
etrique et que ˆ
Bs=y.
Cela ne suffit pas pour d´
efinir de mani`
ere unique ˆ
B, et on recherche des ˆ
B de norme mi-
nimale (pour certaines normes) pour forcer l’unicit´
e. Un exemple d’algorithme de Quasi-
Newton est l’Algorithme BFGS qui approxime directement l’inverse de la matrice hes-
sienne.
Algorithme(BFGS)
Algorithm 1.3 BFGS
Donn´
ees : f,x0premi`
ere approximation de la solution cherch´
ee,  > 0pr´
ecision de-
mand´
ee, approximation initiale de l’inverse de la matrice hessien en x0B0
Sortie : une approximation de la solution du probl`
eme : minxRnf(x)
1.Tant que le test de convergence est non satisfait :
a. calculer dk:dk=Bkf(xk).
b. Effectuer une recherche lin´
eaire pour trouver le pas optimal skdans la direc-
tion trouv´
ee.
c. Mise `
a jour de xk+1 :xk=xk+skdk.
d. Mise `
a jour de yk:yk=f(xk+1)− ∇f(xk).
e. Mise `
a jour de Bk:Bk+1 =Bk+(skBkyk)sT
k+sk(skBkyk)T
sT
kyk(skBkyk)Tyk
(sT
kyk)2sksT
k.
2. Retourner xk.
Travail `
a r´
ealiser
R´
esoudre les probl´
emes tests de minimisation :
min
(x,y)R2fi(x)i1,2
Par l’algorithme de Quasi-Newton (BFGS)
Commenter les r´
esultats obtenus avec diff´
erents points initiaux ?
Comparer cet algorithme avec celui de Newton ?
Il reste maintenant `
a d´
efinir une strat´
egie de recherche lin´
eaire pour le calcul du pas.
4
1.1 Algorithmes de descente Optimisation 2012-2013, ENSEEIHT
Pas de Descente
1.1.4 Pas fixe
On choisit un pas fixe pour toutes les directions de descente calcul´
ees `
a chaque it´
eration.
Comment choisir un pas qui garantisse la convergence ?
1.1.5 Pas optimal
Une id´
ee consiste `
a choisir un pas qui rende la fonction `
a minimiser la plus petite
possible dans la direction choisie.
sksolution de : mins>0f(xk+s dk)
En pratique, `
a part pour quelques probl`
emes, le calcul du pas optimal est couteux, et
on calcule alors un pas qui satisfait simplement les conditions de Wolfe(qui garantissent au
passage la convergence globale).
Algorithme de Backtracking
Algorithm 1.4 ALGORITHME DE BACKTRACKING
Donn´
ees : x, d, 0<ρ<1, s = 1
Sortie : un pas qui satisfait la 1 `
ere condition faible de Wolfe
1. r´
ep´
eter :
a. si la premi`
ere condition de Wolfe n’est pas satisfaite :
s=ρs
b. sinon : stop et retourner s
2. fin r`
ep`
etition .
Travail `
a r´
ealiser
Impl´
ementer l’algorithme de backtracking. R´
esoudre les probl`
emes tests de minimisa-
tion :
min
(x,y)R2f(x)i1,2
par les algorithmes de Descente pr´
ecedents et avec un pas calcul´
e par l’algorithme de back-
tracking.
Commenter les r´
esultats obtenus.
Algorithme de Bi-section
Algorithm 1.5 ALGORITHME DE BISECTION
Donn´
ees : x, d, α = 0, s = 1, β = +
Sortie : un pas qui satisfait les conditions faibles de Wolfe
1.r´
ep´
eter :
a. si la premiere condition de Wolfe n’est pas satisfaite :
β=s, s = 0.5(α+β)
b. sinon : si la deuxieme condition de Wolfe n’est pas satisfaite :
on pose α=s,, et s= 2αsi β= +, ou s= 0.5(α+β)sinon.
c. sinon : stop et retourner s
2. fin r´
ep´
etition .
5
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !