Documente Academic
Documente Profesional
Documente Cultură
Variante de imbunatatire:
j j dj dj
a a pentru j 2
i 1
noile directii sunt: bj
dj
4. Salt pas 2 bj
Algoritmi optimizare M-Dim nederivativi
Comparatie intre metode f(x1, x2)=( x1 – 3 ) 4+ ( x1 – 3 x2 ) 2
Cautare
ciclica
25 pasi
Algoritmi optimizare M-Dim nederivativi
Comparatie intre metode f(x1, x2)=( x1 – 3 ) 4+ ( x1 – 3 x2 ) 2
Pas de
accelearre
9 pasi
Algoritmi optimizare M-Dim nederivativi
Comparatie intre metode f(x1, x2)=( x1 – 3 ) 4+ ( x1 – 3 x2 ) 2
Rosenbrock
6 pasi
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
Metoda se bazeaza pe modificarea succesiva a unui simplex din spatiul
variabilelor de control, care se restrange si converge catre optim.
Se defineste un simplex in spatiul Rn, un set de n+1 puncte:
{ xi } i = 1,n+1
Obs.: (a) NU trebuie confundata aceasta metoda cu metoda SIMPLEX pentru
optimizarea problemelor definite prin n functii obiectiv liniare de n variabile.
(b) Din punct de vedere geometric, un simplex corespunde unui hiper-poliedru
in spatiul n-dimensional
In R2 avem In R3 avem
un triunghi un tetraedru
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
Se calc. centroidul primelor n varfuri (se exclude pct. cel mai prost):
1 n
xc x i
n i 1
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
Se definesc 4 operatii prin care se incearca modificare simplexului,
a.i. sa cuprinda valori mai bune (mici):
(A) reflexia punctului xn+1 fata de
centroidul xc
xr = xc + (xc – xn+1 )
Scalarul > 0 se numeste factor de reflexie (usual = 1 )
Daca f ( x1 ) f ( xr ) f ( xn )
atunci xn+1 se inlocuieste cu xr
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
(B) expansiune punctului xn+1 fata de centroidul xc
Daca f ( xr ) < f ( x1 )
Reflexia este mai buna decat cel mai bun
punct al simplexului, se incearca o cautare
mai departara pe aceeasi directie
xe = xc + (xr – xc )
Scalarul 1 se numeste factor de expansiune (usual 2.8 3 )
Daca f ( xe ) f ( xr ) atunci xn+1 se inlocuieste cu xe
Altfel ( f ( xe ) > f ( xr ) si f ( xr ) < f ( x1 ))
xn+1 se inlocuieste cu xr
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
(C) contractia punctului xn+1 fata de centroidul xc
Daca f ( xn+1 ) f ( xr ) f ( xn )
Reflexia este buna, insa se incearca o cautare
pe aceeasi directie intr-o vecinatate mai apropiata
(*) xt = xc – (xn+1 – xc )
Altfel
Daca f ( xr ) f ( xn+1 )
Reflexia nu aduce imbunatatire a simplexului
se incearca o cautare pe aceeasi directie intr-o
vecinatate mai apropiata, insa in partea opusa a
centroidului
(**) xt = xc + (xn+1 – xc )
Scalarul 0 < < 1 se numeste factor de contractie (usual 0.4 0.6 )
Algoritmi optimizare M-Dim nederivativi
Algoritmul Nelder-Mead
Deciziile:
(*) Daca f ( xt ) < f ( xr ) atunci
xn+1 se inlocuieste cu xt
Altfel
xn+1 se inlocuieste cu xr
1 n1
f
n 1 i 1
xi
n1
1
s
n1
( f ( x i ) f ) 2
i 1
f ( x) f ( x)
Pentru : d se obtine: f ( x)d f ( x) f ( x)
f ( x) f ( x)
Algoritm:
La fiecare pas k:
Optimizare 1D: f(k* ) = min f( xk – k g(xk ) )
Avansare pe directie: xk+1 = xk – g(xk )
Verificare conditie STOP
Algoritmi optimizare M-Dim derivativi
Metoda celei mai mari (abrupte) descresteri (Cauchy)
df df ( xk k gk ) df ( xk k gk ) d ( xk k gk )
d k dk d ( xk k gk ) dk
f ( x )T x xk k gk
gk gkT1 gk 0
2 2 2
1
unde s-a definit functie eroare E ( x ) ( x - x* )T Q ( x - x* )
2
1 * T *
Obs.: x Q x este o constanta pozitiva , deci:
2
f(x) si E(x) au acelasi optim si f(x) < E(x)
Algoritmi optimizare M-Dim derivativi
Metoda celei mai mari (abrupte) descresteri (Cauchy)
Convergenta (cont.):
g(xk )T g(xk )
Care conduce la solutie: k
g(xk )T Q g(xk )
Algoritmi optimizare M-Dim derivativi
Metoda celei mai mari (abrupte) descresteri (Cauchy)
Convergenta (cont.):
1
Evaluam : E ( xk 1 ) ( xk 1 - x* )T Q ( xk 1 - x* )
2
1
g ( xk ) g ( xk )
T
2
1
( x x * T
) Q ( x x *
)
1 k k
g ( xk ) Q g ( xk ) g ( xk ) Q g ( xk ) 2
T T
1
(a A) A a
2
Rezulta:
2
Aa
E ( xk 1 ) E ( xk )
A a
Gradientul este:
g(x) f ( x ) Q x b
d Tj b d Tj Q x0 j d Tj Q d j
Algoritmi optimizare M-Dim derivativi
Metode de gradient conjugat (cont.)
De unde rezulta constantele:
d g ( x ) T
d j
j (b Q x0 ) T
T j
T 0
d j Q d j d j Q d j
Rezulta: dkT (b + Q( xk + k dk ) ) = 0
dk gkT d k
Deci: k (b Q xk ) T T
dk Q dk dk Q dk
i 0
Deci: =0
g dk
T
dk
k T k
(b Q xk ) T
T
dk Q dk dk Q dk
0 dk
T
d g
(b Q x0 ) T
T k
T k
dk Q dk dk Q dk
Algoritmi optimizare M-Dim derivativi
Metode de gradient conjugat (cont.)
Cum am obtinut ca k = k , rezulta ca dupa n pasi facuti cu
algoritmul iterativ se obine valoarea de optim:
n -1 n-1
x n x0 i d i x0 i d i x *
i 0 i 0
Concluzii: (a) Aplicarea metodelor de gradient conjugat pentru cazul
functiilor obiectiv patratice, conduce la determinarea valorii de optim
in n pasi, daca calculele se fac exact (se spune ca se utilizeaza o
aritmetica exacta = nu se fac erori de rotunjire, erori de reprezentare
numerica, etc.)
(b) Teorema de Expandare a Subspatiilor: Coeficientii
din descompunere in raport cu un set de directii Q-conjugate
corespunde pasilor de inaintare obtinuti prin optimizare 1D pe aceleasi
directii, indiferent de pctul initial x0
Algoritmi optimizare M-Dim derivativi
Metode de gradient conjugat (cont.)
(c) Se observa ca gkTdi = 0 pentru i < k, ceea ce arata ca
la fiecare pas, gradientul curent este liniar independent fata de
(ortogonal pe) directiile conjugate anterioare. Ceea ce ofera o metoda
de generare a directiilor conjugate in raport cu directiile anterioare:
gkT d k
k T
dk Q dk
Algoritmi optimizare M-Dim derivativi
Metoda liniara a gradientilor conjugati (cont)
xk+1 = xk + k dk
2
g gk 1
T
gk 1
k k 1
g gk
T
k gk
2
dk+1 = - gk+1 + k dk
Varianta (Oara):
gkT1 Q d k
k T
dk Q dk
Algoritmi optimizare M-Dim derivativi
Metoda liniara a gradientilor conjugati
Se doreste eliminarea estimarii gradientului la fiecare pas printr-o
formula de calcul recurent:
1 T
Se aplica functiilor patratice f ( x) x Q x xT b c
2
La fiecare pas se caluleaza val. reziduala: r (Q x b) g ( x )
care trebuie sa tinda catre zero.
Algoritm:
1. Initializare x0
2. Calculeaza: reziduul initial: r0 g(x0 ) (Q x0 b)
directia initiala de cautare: d0 = r0
Algoritmi optimizare M-Dim derivativi
Metoda liniara a gradientilor conjugati (cont)
3. Pentru k = 0, 1, 2, ….
rkT d k
k T
dk Q dk
xk+1 = xk + k dk
rk+1 = rk - k Q dk
2
r rk 1 rk 1
T
k k 1
r rk
k
T
rk
2
dk+1 = rk+1 + k dk
1. Initializare x0
2. Calculeaza: directia initiala de cautare: d0 = - g( x0 )
Obs.: primul pas este echivalent cu Steepest Descent
3. Pentru k = 0, 1, 2, ….
gkT d k
k T
dk H k dk
xk+1 = xk + k dk
2
g gk 1 gk 1
T
k k 1
g gk
T
k gk
2
Algoritmi optimizare M-Dim derivativi
Metoda gradientilor conjugati pt functii nepatratice
Aproximarea patratica. ALGORITM
dk+1 = - gk+1 + k dk
2
în care H( xk ) reprezintă hessianul funtiei obiectiv f( xk ) evaluat în xk
Conditia de optim pentru aproximarea pătratică este:
q( x ) f ( xk ) H ( xk )( x xk ) 0
Daca H( xk ) este inversabila, atunci solutia de optim pentru
aproximarea patratica, care devine urmatorul punct de aproximare,
este: x x H 1 ( x )f ( x )
k 1 k k k
Algoritmi optimizare M-Dim derivativi
Metode de tip Newton. Metoda clasica
Observatii:
1. Daca functia obiectiv este patratica, atunci optimul se gaseste intr-
un singura iteratie (pas)
2. Daca pe parcursul etapelor intermediare procesului de optimizare
apare situatia unei matrice hessien H( xk ) care nu poate fi inversate
atunci procesul de optimuizare se blocheaza. Trebuie gasite alte solutii
pentru continuarea procesului.
3. Complexitatea calculului este O(n3), data de necesitatea inversarii
hessianului, mult mai mare decat in cazul metodelor de gradient
negativ.
4. Volumul de memorie necesat este O(n2), mai mare decat in
majoritate metodelor de gradient negativ
Algoritmi optimizare M-Dim derivativi
Metode de tip Newton. Metoda clasica
Observatii:
5. Dacă hessianul este lipschitzian într-o vecinătate a optimului, atunci
metoda Newton are o convergenţă pătratică.
6. Daca hessianul H( xk ) nu este pozitiv definit, atunci directia de
cautare fie nu exista, fie nu este o directie de descrestere. In acest caz
se inlocuieste hessianul cu o aproximare care respecta conditia de
pozitiv definit
7. Domeniul de convergenţă este mai redus faţă de tehnicile de
gradient. Metoda funcţionează mai bine în apropierea punctului de
optim. De aici si ideea combinarii celor e metode: aplicarea metodei
steepest descent in zona departata de optim si aplicarea metodei
Newton in apropierea punctului de optim
Algoritmi optimizare M-Dim derivativi
Metoda Newton discreta. (met. Gauss-Newton) !!
Metoda Newton clasica = metoda pur matematica, performantele sala
sunt obtinute teoretic, intr-o aritmetica exacta.
In practica, apar erori de calcul, de aproximari si de reprezentare in
memoria calculatorului, care fac ca metoda sa nu mai aiba aceleasi
performante.
De asemenea, in situatiile in care nu exista acces direct la valorile
gradientilor si a matricelor hessiane, acestea sunt aproximate. Astfel,
de exemplu, coloanele matricei hessiene H( xk ) se aproximeaza:
~ 1
hi g ( xk i ei ) g ( xk )
i
H k H k H k
ˆ 1 ~ ~T
2
In aceasta situatie, metoda Newton discreta tinde catre o convergenta
patratica pentru i tinzand catre zero. Astfel ca desi valoarea lui i
trebuie sa fie cat mai mica, ea este limitata de eroarea de rontunjire.
Algoritmi optimizare M-Dim derivativi
Metoda Newton discreta.
Alta problema apare cand gradientul are valori foarte mici (inevitabil
in zona de optim el tinde catre zero) cand numaratorul este foarte mic
si apar erori la operatia de impartire a doua valori foarte mici
Concuzie
In situatie calcului numeric, metoda Newton discreta tinde catre o
convergenta patratica pentru I tinzand catre zero, insa performantele
sunt suboptimale. Astfel ca, de exemplu, pentru o functie patratica
este posibila o convergenta in mai mult de 1 pas (cat ar trebui sa fie
teoretic)
Algoritmi optimizare M-Dim derivativi
Metode de tip Newton modificate
Metoda Newton nu este neapărat convergentă. Unul dintre motive ar fi
că matricea hessiana H( xk ) estimata local este singulară în xk şi prin
urmare nu poate fi determinata solutia Newton xk+1 cu care sa
continuam algoritmul de optimizare.
O alta situatie (relativ similara) este cand, desi se poate determina H -1
in punctul xk , rezulta f( xk +1) > f( xk ) (TEMA: Explicati cand??)
In astfel de situatii, cand algoritmul Newton clasic are probleme de
continuare, se pot folosi variante MODIFICATE, in se incearca
evitarea problemelor mentionate mai sus (si nu numai).
Algoritmi optimizare M-Dim derivativi
Metode de tip Newton modificate
A. Metoda Newton modificata, cu cautare liniara
In cazul in care functia obiectiv nu este patratica, punctul curent de
aproximare este departe de solutia de optim, ne asteptam ca
aproximarea de gradul doi a functiei obiectiv sa fie grosiera (cu
eroare mare), iar aplicarea unui pas Newton clasic poate conduce la un
urmator punct cu probleme d.p.v. al convergentei. In aceasta situatie, o
solutie care inlatura macar partial problemele posibile este:
a) pastrarea directie de inaintare data de solutia Newton,
b) avansarea cu un pas determinta printr-o optimizare 1D
Astfel: x x H 1 f ( x )
k 1 k k k k
xk 1 xk k Bk1 g ( xk )
2 2 0
f H
4 0 2
Modelul patratic la functiei in punctul curent este (Tema: dem.) :
f(ξ) q( ξ ) = x12 + x22
Aplicarea unui pas Newton clasic conduce la solutia (0,0) care
corespunde unei directii de crestere (deci nedorita)
Un calcul rapid arata ca valorile proprii ale hessianului sunt:
{-2, 2}
Algoritmi optimizare M-Dim derivativi
Metoda Newton modificata. Exemplu (cont.):
Alegerea unei constate
= 3 (>2) conduce la
matricea
5 0
B
0 1
obtinand directia de
cautare:
d = −B−1∇ f =
=(−2/5, −4)T
Obs.: este directia obt.
prin metoda
Steepest Descent
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
O noua abordare a problemei gasirii unor metode intermediare intre
metoda celei mai abrupte pante si metoda lui Newton. Acestea sunt
din nou motivate de dorinta de a accelera convergenta tipic lenta a
metodei celei mai abrupte pante in paralel cu evitarea evaluarii,
memorarii si inversarii Hessianului cerute de metoda lui Newton.
Obs.: numai pentru cazul 1-dim. exista solutie unica, aceasta conducand la metoda
secantei.
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
In final trebuie sa cautam o relatie de recurenta de tipul:
Bk+1 = Bk + Uk (qk , pk , Bk )
in care: U(qk , pk , Bk ) este o matrice de actualizare/corectare a matricei
Bk de la pasul anterior, si care, confort ecuatiei secantei, depinde de
variatia de gradient qk , deplasarea variabilelor de control pk si matricea
curenta Bk
pk pkT Bk qk qkT Bk
BkDFP
1 Bk T
pk qk qkT Bk qk
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Metoda Davidon –Fletcher–Powell ( DFP )
Proprietatile metodei DFP
• Daca Bk > 0 , atunci Bk+1 > 0
• Daca f este functie patratica, deci Hessianul H este constant, atunci
metoda DFP produce directii pk care sunt H–conjugate. Daca
metoda executa n pasi, atunci Bn = H -1.
• Deoarece pk sunt H–ortogonali si deoarece minimizam f succesiv
de-alungul acestor directii, observam ca procedura este de fapt o
metoda de gradienti conjugati (Fletcher-Powell) si conform
proprietatilor acestei metode, procesul iterativ converge exact in n
pasi.
• p0, p1, ..., pk sunt vectori proprii corespunzatori unor valori proprii unitare
pentru matricea Bk+1H. Acesti vectori proprii sunt liniar independenti deoarece
sunt H–ortogonali si prin urmare Bn = H-1.
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Metoda Broyden–Fletcher–Goldfarb–Shanno ( BFGS )
Presupunand ca dorim determinarea unui set de matrice { Hk } care
care sa convearga la hessianul , putem scrie ecuatia secantei:
qk = Hk+1 pk (*)
Sau echivalent: Hk +1-1qk = pk, renotata: Bk+1 qk = pk, (**)
unde { Bk } este sirul de matrice convergent la inversa hessianului H-1
Se observa ca prima (*) si a treia (**) relatie sunt practic
echivalente cu schimbarile de notatie:
Hk+1 Bk+1
pk qk
qk pk
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Metoda Broyden–Fletcher–Goldfarb–Shanno ( BFGS )
Prin urmare solutia de aproximare cu matrice de rang 2 a matricei
hessiane inverse (DFP):
pk pkT Bk qk qkT Bk
BkDFP
1 Bk T
pk qk qkT Bk qk
qk qkT H k pk pkT H k
H k 1 Hk T
qk pk pkT H k pk
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Metoda Broyden–Fletcher–Goldfarb–Shanno ( BFGS )
Cum aproximarea hessianului nu este utila in calcularea
solutiei/pasului Newton, se va determina inversa acestei aproximari
folosind formula Sherman–Morrison :
1 1
A a b
T
1 A a b A
T
A 1
1 bT A 1 a
Se obtine astfel o noua formula de aproximare a inveresei
hessianului cu o matrice de corectie de rangul 2, numita formula
Broyden–Fletcher–Goldfarb–Shanno ( BFGS ) (TEMA: calcul
detaliat!)
qkT Bk qk pk pkT pk qkT Bk Bk qk pkT
BkBFGS
1 Bk 1 T T
q k pk p
k k q q k pk
T
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Metoda Broyden–Fletcher–Goldfarb–Shanno ( BFGS )
Proprietati. Observatii.
• Formula BFGS poate fi folosita in mod identic cu formula DFP;
• Cele doua formule sunt teoretic echivalente, fiind formule de
aproximare a inveresi hessianului cu matrice de corectie de
rangul 2
• Experimente numerice au indicat ca performantele BFGS sunt
superioare formulei DFP;
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Familia de functii Broyden. Metoda Broyden.
Ambele formule DFP si BFGS contin corectii de rang 2 simetrice ce se
construiesc din vectorii pk si Bk qk .
Prin urmare o combinatie liniara ponderata a acestor formule va fi de
acelasi tip (simetrica, rang 2, construita pe baza lui pk si Bk qk ),
obtinandu-se o colectie de formule de actualizare a inversei
hessianului, numita familia de functii Broyden:
B 1 BDFP + BBFGS
Algoritmi optimizare M-Dim derivativi
Metode de tip Quasi-Newton.
Familia de functii Broyden. Metoda Broyden.
O metoda Broyden este definita ca o metoda quasi–Newton in care la
fiecare iteratie un membru al familiei Broyden este folosit ca formula
de actualizare. In general, parametrul variaza de la o iteratie la alta si
prin urmare trebuie sa specificam sirul 1, 2, … care determina
functia Broyden la fiecare pas.
Algoritm:
1. Initializare x0
2. Pentru k = 0, 1, 2,…
2.a. Bk = In
2.b. Calculare directie de inaintare: dk = – Bk gk
2.c. Minimizare 1D a functiei f( xk +dk) in raport cu 0
(trebuie ales k suficient de precis pentru a asigura pkT qk > 0,
unde pk = k dk si qk = gk+1 – gk ).
Algoritmi optimizare M-Dim derivativi
Metode Quasi-Newton fara memorie
3. Daca s-a det. optimul (ex.: || gk || < ) atunci STOP, altfel:
3.a. Daca k nu este multiplu de n atunci calculam
Cum: pk = k dk qkT gk 1
d k 1 gk 1 T dk
d k qk
Algoritmi optimizare M-Dim derivativi
Metode Quasi-Newton fara memorie