Documente Academic
Documente Profesional
Documente Cultură
S considerm problema
min f ( x) ,
(5.0.1)
f ( x * ) = 0 .
(5.0.2)
f ( xk ) f * ,
(5.0.3)
unde > 0 este o toleran specificat. Menionm faptul c n implementrile
curente se utilizeaz i alte criterii de oprire a iteraiilor, de exemplu, distana dintre
estimaiile variabilelor xk +1 xk 2 sau norma gradientului funciei de minimizat
S = { x dom f : f ( x ) f ( x 0 )}
d = 1 , care
f ( x) = f ( xk ) + ( x xk )T g k + o ( x xk
1 . Se
Pasul 2.
Pasul 3.
f ( xk k g k ) = min f ( xk g k ) ,
0
Pasul 4.
sau aproximativ.
Se pune xk +1 = xk k g k , se consider k = k + 1 i se continu cu
pasul 2.
Observm c dei funcia f este foarte neliniar, totui n domeniul [0, 2] [0, 2]
curbele de nivel constant ale acesteia sunt elipse alungite n direcia axei x1 .
sunt ilustrate n
Observm c eroarea
este redus de la 0.6348 la 106 n 20 de iteraii. Din figura 5.1.1c vedem c eroarea
Vedem c o cutare liniar mai pretenioas este benefic. Totui, direcia pasului
descendent este numai local descendent. Pentru foarte multe probleme metoda
pasului descendent nu este de loc a pasului descendent, fiind foarte lent. Dei, aa
dup cum am spus metoda lucreaz bine n prima parte a procesului iterativ,
aceasta merge ctre soluie n zigzag. Cu ct graficul funciei de minimizat este mai
aproape de o vale ngust, cu att fenomenul de zigzag este mai pronunat.
Explicaia acestui fenomen este imediat. Deoarece n cutarea liniar exact se
realizeaz condiia g kT+1d k = 0 , atunci aceasta n metoda pasului descendent devine
f ( xk g k ) = f ( xk ) g kT g k + o( g k ) ,
se vede imediat c termenul de ordinul unu g kT g k = g k
f ( x) =
1 T
x Qx x T b,
2
(5.2.1)
unde Q R n n este o matrice simetric i pozitiv definit. Fie min i max valorile
proprii minim i maxim a matricei Q . Dup cum tim metoda direciilor
descendente definete un ir minimizant:
xk +1 = xk + k d k ,
(5.2.2)
unde d k este o direcie descendent care satisface
f ( x k ) T d k < 0,
(5.2.3)
astfel nct f ( xk + d k ) < f ( xk ) pentru valori mici ale lui . Pentru funcia
ptratic f de mai sus, valoarea lui care minimizeaz f de-a lungul liniei prin
x k n direcia d k se calculeaz analitic foarte simplu ca:
d kT rk
,
d kT Qd k
unde e k = x * x k este eroarea iteraiei x k fa de soluia optim x * , i
rk = Qek = b Qxk
este reziduul de la iteraia k.
(5.2.4)
(5.2.5)
d k = f ( x k ) = rk .
Introducnd Q norma ca: x = x T Qx, atunci Q norma erorii este:
(5.2.6)
2
Q
ek +1
2
Q
= x* ( xk + k d k )
= ek
2
Q
2
Q
= ek k d k
2 k ekT Qd k + k2 d k
2
Q
2
Q
rkT rk T
(rkT rk ) 2 T
e
Qr
+
rk Qrk
k
k
rkT Qrk
(rkT Qrk ) 2
= ek
2
Q
= ek
(rkT rk ) 2
1
T
T 1
Q
rk Qrk rk Q rk
2
(5.2.7)
4 min max
( y T y) 2
=
min T
.
1
T
y0 y Ayy A y ( min + max ) 2
y = yi vi ,
i =1
astfel nct
n
y 2 = yi2 = 1,
2
i =1
yT Ay = yi2 i ,
i =1
y T A 1 y = y i2 i1 .
i =1
max g ( y ) = y T Ayy T A 1 y
referitor la:
(5.2.8)
h( y ) = y T y 1 = 0.
Maximul acestei probleme cu necesitate trebuie s satisfac condiia:
g ( y ) = h( y ),
g
= 2 y i i y T A 1 y + 2 y i i1 y T Ay,
yi
h
= 2 yi .
yi
y i i y T A 1 y + y i i1 y T Ay = y i ,
sau
( i2 y T A 1 y i + y T Ay )
yi
= 0.
Expresia din parantez este o ecuaie ptratic n i , i poate fi zero numai pentru
cel mult dou valori proprii distincte. Deci, pot fi cel mult dou componente nenule
y i i y j . n acest moment mprind relaia de mai sus prin y i i egalnd
expresiile pentru indicii i i j obinem:
y i2 y 2j y i2 i + y 2j j
y i2 y 2j y i2 i + y 2j j
i + +
= j +
,
+
j
i
j
j
i
i
sau
i j
( i j ) 2
2
2
( y y ) + 2 = ( y j y i )
.
i j
j i
2
i
10
1 1 1 i
j
( i + j ) 2
1
( + j ) + = + 1 + 1 =
.
4 i
4 i j
i j 4 j
i
Dar expresia din mijlocul lanului de egaliti de mai sus arat c aceasta este
cresctoare n funcie de raportul i / j , cnd i > j . Deci considernd
i = max i j = min obinem inegalitatea Kantorovich.
Aplicnd acum inegalitatea lui Kantorovich membrului drept din (5.2.7) i
observnd c
4min max
(max min ) 2
=
,
(min + max ) 2 (max + min ) 2
obinem:
ek +1
max min
ek
max + min
1
ek
+1
1 T
x Qx
2
unde Q = diag (1,2, , n) . Observm c Q este pozitiv definit i are valorile
proprii numerele ntregi pozitive de la 1 la n , deci numrul de condiionare n
norma euclidian este egal cu n , care este foarte mare. Pentru aceast funcie
f ( x ) = Qx i deci lungimea pasului de deplasare se calculeaz ca:
f ( x) =
k =
g kT g k
, unde g k = Qx k .
g kT Qg k
Dup cum am vzut, pentru aceast alegere optim a lui k algoritmul pasului
descendent are rata de convergen liniar:
xk x*
max min
xk 1 x* ,
Q
max + min
i max sunt valorile proprii minim i respectiv
Q
11
Vedem c acesta are un comportament liniar, mai ales n partea final a iteraiilor.
ntr-adevr, n acest caz, pentru valori mari ale lui n raportul
max min
max + min
12
matricei Q . Cu ct acest raport este mai mare cu att convergena este mai lent.
Detalii asupra convergenei metodei pasului descendent pentru funcii ptratice
sunt date de urmtoarea teorem.
Teorema 5.2.1. Fie problema
minn f ( x)
xR
1 T
x Qx ,
2
(5.2.9)
unde Q este o matrice simetric, pozitiv definit cu min i max valorile proprii
minim i respectiv maxim. Fie x* soluia problemei (5.2.9). Atunci irul generat
de algoritmul pasului descendent converge la x* , rata de convergen este cel
puin liniar i urmtoarele relaii au loc:
f ( xk +1 ) f ( x* ) ( 1) 2 (max min ) 2
,
=
f ( xk ) f ( x* ) ( + 1) 2 (max + min ) 2
xk +1 x*
xk x
xk +1 x
xk x
1 max min
=
+ 1 max + min
(5.2.10)
(5.2.11)
+1
min max + min
(5.2.12)
k =
g kT g k
, i g k = Qxk . Atunci
g kT Qg k
f ( xk ) f ( xk +1 )
=
f ( xk )
1
2
1
2
xkT Qxk ( xk k g k )T Q( xk k g k )
1
2
xkT Qxk
k g kT Qxk 2 k2 g kT Qg k
1
2
xkT Qxk
(g g )
=
( g Qg )( g Q
T
k
T
k
T
k
gk
g kT g k )
(
min
f ( xk +1 )
4max min
,
= 1 T
= 1
= max
2
T 1
f ( xk )
( gk Qgk )( gk Q gk ) (max + min ) max + min
2
13
Deoarece x* = 0 , rezult c
xk x*
min xk x* 2 f ( xk ) max xk x* .
Din relaiile de mai sus obinem
min xk +1 x*
max xk x*
xk +1 x*
xk x
Q
* 2
Q
min
max
,
max + min
{ xk }
difereniabil,
irul
{d k : k K }
este
uniform
mrginit
f ( x ) = 0 , adic f ( x ) = 0 .
Teorema 5.3.2. Fie funcia f : R n R de dou ori continuu difereniabil pe
14
f ( xk ) f ( xk +1 )
1
2
f ( xk ) .
2M
Atunci
k 1
1 k 1
2
f ( xi ) .
2M i =0
i =0
La limit obinem fie lim k f ( xk ) = , fie lim k f ( xk ) = 0 .
f ( x0 ) f ( xk ) = [ f ( xi ) f ( xi +1 )]
{ xk }
irul generat de
f ( xk +1 ) f ( x* )
= k .
f ( xk ) f ( x* )
(5.3.1)
lim sup k
k +
M m
< 1.
M
[ f ( xk ) f ( x* )] [ f ( xk +1 ) f ( x* )] = f ( xk ) f ( xk +1 )
1
2
f ( xk ) .
2M
(5.3.2)
15
(1 k )[ f ( xk ) f ( x* )]
1
2
f ( xk ) .
2M
k 1
f ( xk )
2M [ f ( xk ) f ( x* )]
<1.
(5.3.3)
Presupunem c
xk x*
d .
xk x*
Este clar c
2
f ( xk ) = xk x*
( f ( x )d
2
+ o(1)
f ( xk ) f ( x* ) =
1
xk x*
2
(d
2 f ( x* )d + o(1) ) .
lim
f ( xk )
f ( xk ) f ( x* )
2 2 f ( x* ) d
d T 2 f ( x* ) d
2m .
(5.3.4)
f ( xk )
2M [ f ( xk ) f ( x )]
*
m
< 1,
M
1
f ( y) = f ( x ) + f ( x ) T ( y x ) + ( y x ) T 2 f ( z )( y x ) ,
2
unde z este un punct din segmentul [ x, y] . Ipoteza de convexitate tare (5.3.5)
determin ca ultimul termen din membrul drept al relaiei de mai sus s fie mrginit
2
f ( y ) f ( x ) + f ( x ) T ( y x ) +
m
2
yx 2,
2
(5.3.6)
16
m
2
yx 2
2
m
2
f ( x ) + f ( x )T ( y x ) +
yx 2
2
1
2
= f ( x)
f ( x ) 2 .
2m
Deoarece aceast inegalitate are loc pentru orice y S , rezult c:
1
2
f * f (x)
f ( x ) 2 .
2m
f ( y ) f ( x) + f ( x)T ( y x) +
(5.3.7)
Aceast inegalitate arat c dac gradientul ntr-un punct este mic, atunci acel
punct este lng soluia optim a problemei. Deci n virtutea lui (5.3.2) observm
c (5.3.7) se poate interpreta ca o condiie de suboptimalitate, care generalizeaz
condiia foarte tare de optimalitate (5.0.2), adic:
f ( x )
(2 m )1/ 2
f (x) f * .
(5.3.8)
f * = f ( x* ) f ( x) + f ( x)T ( x* x) +
c:
f ( x )
x* x
m *
x x
2
2
2
0,
17
x x*
2
f ( x ) 2 .
m
(5.3.9)
Consecina direct a lui (5.3.9) este c punctul optimal x * este unic, ceea
ce era i cazul deoarece funcia de optimizat este presupus tare convex.
Convexitatea tare a lui f pe mulimea S determin c mulimile de nivel
constant coninute n S sunt mrginite, n particular S este mrginit. Deci
valoarea proprie maxim a Hessianului 2 f ( x ) , care este o funcie continu de x
pe S , este mrginit superior pe S , adic exist o constant M astfel nct pentru
toi x S :
2 f ( x ) MI .
(5.3.10)
Aceast margine superioar asupra Hessianului implic faptul c pentru orice x i
y din S are loc inegalitatea:
f ( y ) f ( x ) + f ( x ) T ( y x ) +
M
2
y x 2,
2
(5.3.11)
care este analog cu (5.3.6). Procednd n aceeai manier ca mai sus, adic
minimiznd n raport cu y ambii membri din (5.3.11) obinem:
f * f ( x)
1
2
f ( x ) 2 ,
2M
(5.3.12)
1
f ( x )
2M
2
2
f ( x) f *
1
2
f ( x ) 2 ,
2m
18
cond (C ) =
2
Wmax
,
2
Wmin
E = {x : ( x x 0 ) T A 1 ( x x 0 ) 1} ,
) (
cond ( E ) =
max ( A)
= ( A) ,
min ( A)
C = {x : f ( x ) }
M
y x*
2
19
2
m
y x* 2 .
2
Aceasta implic urmtoarele incluziuni Bin C Bou , unde:
f* +
2
2
f ( y) f * +
Bin = y : y x *
Bou = y : y x *
1
/
2
2( f * )
2( f * )
1/ 2
Cu alte cuvinte, mulimea de nivel constant egal cu conine sfera Bin i este
coninut n sfera Bou . Ca atare, raportul razelor acestor sfere furnizeaz o margine
superioar a numrului de condiionare a lui C :
cond (C )
M
.
m
1
f ( y) f * + ( y x * ) T 2 f ( x * )( y x * )
2
de unde rezult c pentru valori suficient de apropiate de f * ,
C {y : ( y x * ) T 2 f ( x * )( y x * ) 2( f * )} ,
adic aceast mulime de nivel constant este bine aproximat printr-un elipsoid
centrat n x * . Deci
lim cond (C ) = ( 2 f ( x * )) ,
f *
20
( ) = f ( xk f ( xk )) .
n analiza care urmeaz vom presupune c xk f ( xk ) S . Din inegalitatea
(5.3.11), n care punem y = xk f ( xk ) , obinem:
M 2
2
f ( xk ) 2 .
( ) f ( xk ) f ( xk ) 2 +
2
2
(5.3.14)
21
f ( xk +1 ) = ( exact ) f ( xk )
1
2
f ( xk ) 2 .
2M
1
2
f ( xk ) 2 .
2M
2
Dar din (5.3.7) observm c f ( xk ) 2 2m( f ( xk ) f * ) ceea ce implic:
f ( xk +1 ) f * f ( xk ) f *
f ( xk +1 ) f * (1 m / M )( f ( xk ) f * ) .
Aplicnd recursiv aceast inegalitate, obinem:
f (xk ) f * c k ( f (x0 ) f * ) ,
(5.3.15)
m
<1, ceea ce arat c f ( x k ) converge la f * cnd k . n
M
particular, din (5.3.15) rezult c condiia f ( x k ) f * se realizeaz dup cel
unde c = 1
mult:
log( ( f ( x 0 ) f * ) / )
log(1 / c)
(5.3.16)
log(1 / c) = log(1 / (1 m / M )) m / M ,
22
( ) f ( xk ) f ( xk ) 2
este satisfcut ori de cte ori 0 1/ M . Pentru aceasta, notm c din
convexitatea lui + M 2 / 2 rezult c:
M 2
0 1/ M +
.
2
M 2
( ) f ( xk ) f ( xk ) 2 +
f ( xk )
2
2
f ( xk ) ( / 2) f ( xk ) 2
2
2
2
f ( xk ) f ( xk ) 2 ,
deoarece < 1/ 2 . Deci cutarea liniar cu backtracking se termin fie cu = 1 ,
fie cu o valoare / M . Aceasta furnizeaz o margine inferioar asupra
reducerii funciei de minimizat. n primul caz avem:
2
f ( xk +1 ) f ( xk ) f ( xk ) 2 ,
iar n al doilea caz:
f ( xk +1 ) f ( xk ) ( / M ) f ( xk ) 2 .
2
f ( xk +1 ) f ( xk ) min { , / M } f ( xk ) 2 .
2
Procednd analog ca n cazul cutrii liniare exacte, adic scznd din ambii
membri f * i innd seama c f ( xk )
2
2
2m( f ( xk ) f * ) obinem:
2 m
*
f ( xk +1 ) f * 1 min 2m ,
( f ( xk ) f ) .
M
Deci:
f (xk ) f * c k ( f (x0 ) f * ) ,
unde
2 m
c = 1 min 2m ,
(5.3.17)
.
M
23
= z T Pz
1/ 2
f ( x ) = f (P
de
minimizare
funciei
f : Rn R ,
unde
1/ 2
24
xk +1 = xk + k k d k ,
(5.4.1)
f ( xk ) f ( x* ) este ca n figura
25
respectiv k [ 0,2] .
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
6682
13358
20034
26710
33386
40062
46738
534414
60092
66768
812
950
1627
1407
1615
2198
2684
2440
1765
3005
860
1676
1684
1780
1962
1992
1850
2348
3028
3231
min f ( x ) =
1 T
x Qx b T x ,
2
xk +1 = xk k k g k ;
g kT g k
k = T
,
g k Qg k
g k = Qx k ,
k ( ) = f ( xk k g k )
26
lim ( f ( x k ) f ( x k +1 )) = 0.
k
T
1 2 gk gk
f ( xk k g k ) = f ( xk ) T
.
2 g k Qg k
Cum
T
1 ( gk gk )
,
k (0) k (1) =
2 g kT Qg k
2
rezult c
k ( ) < k (0)
Deci
k (0) k ( ) >
T
( gk gk )
2 g kT Qg k
T
( gk gk )
2 g kT Qg k
adic
f ( xk ) f ( xk k g k ) >
g kT g k
,
2 max
gk 2 .
2max
27
1 n
x .
f ( x ) = ix +
100 i=1 i
i =1
Considernd x 0 = [ 0.5,0.5, ,0.5] , = 0.0001 i = 0.8 n procedura de
n
2
i
f ( x k ) g cu g = 10 6 ,
atunci pentru n = 100 , evoluia erorii f ( x k ) f * dat de algoritmul pasului
descendent n comparaie cu a celei corespunztoare versiunii relaxate este dat n
figura 5.4.2. Pasul descendent necesit 721 de iteraii, fa de numai 227 de iteraii
ct necesit varianta relaxat a algoritmului pasului descendent. Din figura 5.4.2
intuim imediat c i versiunea relaxat a algoritmului pasului descendent are o
convergen liniar.
Tabelul 5.4.2 arat numrul de iteraii i lungimea medie a pasului
corespunztor algoritmului pasului descendent (PD) i a versiunii relaxate (PDR)
cu k [ 0,1] , pentru diferite valori ale lui n .
28
ordin de mrime mai mare dect lungimea medie generat n cazul algoritmului
pasului descendent.
Tabelul 5.4.2. Numrul de iteraii i lungimea medie a pasului
de deplasare pentru algoritmul PD i PDR echipate cu backtracking.
PD
PDR
n
# iter
pasul mediu
# iter
pasul mediu
500
1000
2000
3000
4000
5000
3601
7207
15258
21542
29540
36948
0.00200632
0.00100033
0.00050113
0.00033496
0.00025162
0.00020132
584
613
1171
2045
1910
1513
0.0215758
0.0169619
0.0102804
0.0069395
0.0056208
0.0067056
f ( x ) = ( x1 3) 2 + ( x1 3 2( x1 + x 2 + + x i ) 2 ) .
2
i=2
f ( x k ) g , unde
186997
253806
410108
780362
829749
0.103413
0.047808
0.031707
0.024489
0.020759
40462
101595
105885
122293
144316
0.327121
0.217972
0.172842
0.146184
0.126295
29
S
considerm
g k = f ( x k ). Putem scrie:
( ) = f ( xk k g k ), unde
funcia
1
f ( xk k g k ) = f ( xk ) k g kT g k + 2 k2 g kT 2 f ( xk ) g k .
2
Deoarece funcia f este tare convex, urmeaz c ( ) este o funcie convex i
(0) = f ( xk ). Din tare convexitatea lui f urmeaz c:
Mk 2
2
k g k 2 .
f ( xk k g k ) f ( xk )
2
Mk 2
este o funcie concav i nenegativ pe ( 0, 2 / M k ) i are
2
valoarea maxim 1/ 2 M k n 1/ M k . Deci f ( x k +1 ) f ( x k ) pentru toi k .
Deoarece f este mrginit inferior, rezult c:
Dar,
lim ( f ( x k ) f ( x k +1 )) = 0.
k
unde
(5.4.2)
30
(5.4.3)
Mk 2
2
k g k 2 .
f ( xk k g k ) f ( xk )
2
Mk 2
1
Notm c
este o funcie concav i c pentru toi 0
,
2
Mk
Mk 2
.
2
2
Deci
f ( xk k g k ) f ( xk ) k g k
2
2
2
f ( xk ) k g k 2 ,
f ( xk +1 ) f ( xk ) k g k 2 ,
iar n al doilea:
f ( xk +1 ) f ( xk ) k
gk 2 .
Deci
f ( xk +1 ) f ( xk ) min { k , k / M } g k 2 .
2
De unde obinem:
f ( xk +1 ) f * f ( xk ) f * min { k , k / M } g k 2 .
2
Dar g k
2
2
f ( xk +1 ) f * (1 min {2m k , 2m k / M }) f ( xk ) f * .
f ( x k +1 ) f * ck ( f ( x k ) f * ) ,
31
f ( xk ) 2 g sau k g kT d k f f ( xk +1 ) ,
unde g = 10 6 i f = 1016 . n procedura de cutare liniar prin backtracking
se utilizeaz aceleai valori pentru parametrii i : = 0.0001 , = 0.8 .
Problemele de test sunt din colecia CUTE [Bongartz, Conn, Gould i Toint, 1995],
mpreun cu alte probleme de optimizare fr restricii construite n acest scop.
Studiul numeric a fost fcut n urmtorul context. Fie fi PD i fi PDR valorile
funciei de minimizat i n punctul de optim calculate de algoritmul PD, respectiv
de PDR, pentru i = 1,...,320 . Zicem c n cazul particular al problemei i
algoritmul PDR este mai performant dect algoritmul PD dac
32
Partea din stnga din figurile 5.4.3a i 5.4.3b arat procentajul din cele 280 de
probleme pentru care un algoritm este mai bun. Partea din dreapta arat procentajul
problemelor care au fost rezolvate cu succes de fiecare algoritm. Vedem c ambii
algoritmi au rezolvat cu succes toate cele 280 de probleme.
Curba superioar corespunde algoritmului care a rezolvat cele mai multe probleme
ntr-un numr de iteraii (figura 5.4.3a) sau ntr-un timp de calcul (figura 5.4.3b)
care este un multiplu al celui mai bun numr de iteraii sau respectiv al celui mai
bun timp de calcul. Deoarece aceast curb corespunde algoritmului pasului
descendent relaxat, rezult clar c acesta este de departe superior algoritmul pasului
descendent clasic.
33
PD
2
i
iterPD
i
unde iterPDR
este numrul de iteraii corespunztor algoritmului PDR pentru a
i
rezolva a i a problem. iterPD
are o interpretare similar, pentru algoritmul PD.
i
Vedem imediat c semnul lui iterPDR
PD indic algoritmul ctigtor. ntr-adevr,
i
n toate cazurile n care iterPDR
PD este pozitiv rezult c algoritmul PDR este
superior lui PD din punctul de vedere al numrului de iteraii. Pentru numrul de
evaluri ale funciei i gradientului sau n ceea ce privete timpul de calcul,
performana relativ se definete analog. Observm c acest indicator de
performan relativ este exact profilul de performan definit de Dolan i Mor,
i
pentru = 1. n figurile 5.4.4a i 5.4.4b prezentm valorile lui iterPDR
PD ,
i
respectiv timePDR
PD , pentru acest set de 280 de probleme, unde problemele au
i
iterPDR
PD , i respectiv ale lui
i
timePDR
PD .
34
Vedem c factorul de performan relativ la timpul de calcul este mai mare dect
4.49, adic numrul de probleme rezolvare de algoritmul PDR ntr-un timp mai bun
este de 4.49 ori mai mare dect cel rezolvat de algoritmul PD.
35
1
2
f ( xk k g k ) = f ( xk ) k g kT g k + k2 g kT 2 f ( xk ) g k + o k g k .
2
Pe de alt parte, pentru > 0, avem:
1
2
f ( xk k g k ) = f ( xk ) k g kT g k + 2 k2 g kT 2 f ( xk ) g k + o k g k .
2
Putem scrie:
f ( xk k g k ) = f ( xk k g k ) + k ( ),
(5.5.2)
unde
1
k ( ) = (1 ) k g kT g k (1 2 ) k2 g kT 2 f ( xk ) g k
2
+ 2 k o k g k
) o (
k
gk
).
(5.5.3)
Notm:
ak = k g kT g k 0,
bk = k2 g kT 2 f ( xk ) g k ,
= o k gk
).
1
k ( ) = (1 )ak (1 2 )bk + 2 k k .
2
(5.5.4)
36
ak
.
bk + 2 k
Observm c k (0) = a k < 0. Deci, k ( ) este o funcie ptratic convex cu
m =
(ak (bk + 2 k )) 2
0.
2(bk + 2 k )
n (5.5.2), i bk 0, vedem c pentru orice k
k ( m ) =
Considernd = m
(ak (bk + 2 k )) 2
f ( xk k g k ),
2(bk + 2 k )
mbuntire a valorilor funciei
f , (cnd
f ( xk m k g k ) = f ( xk k g k )
care
este
posibil
ak (bk + 2 k ) 0 ).
Deci, utiliznd aceast simpl modificare multiplicativ a lungimii
pasului k sub forma k k , unde k = m = ak /(bk + 2 k ), i innd seama de
condiia de backtracking
4.3.2) obinem:
f ( xk k g k ) f ( xk ) k g kT g k (vezi algoritmul
(ak (bk + 2 k )) 2
f ( xk +1 ) = f ( xk k k g k ) f ( xk ) k g g k
2(bk + 2 k )
T
k
(a (bk + 2 k )) 2
= f ( xk ) ak + k
f ( xk ),
2(bk + 2 k )
(5.5.5)
deoarece
(ak (bk + 2 k )) 2
0,
2(bk + 2 k )
unde (0,1/ 2) . Observm c dac a k < bk atunci
ak +
(a (bk + 2 k )) 2
f ( xk +1 ) f ( xk ) ak + k
2(bk + 2 k )
(a b ) 2
< f ( xk ) ak + k k f ( xk ).
2bk
(5.5.6)
37
1
f ( z ) = f ( xk k g k ) = f ( xk ) k g kT g k + k2 g kT 2 f ( xk ) g k ,
2
unde ~
x k este un punct de pe segmentul de linie care unete x k i z . Pe de alt
parte, n punctul xk = z + k g k avem:
1
f ( xk ) = f ( z + k g k ) = f ( z ) + k g Tz g k + k2 g kT 2 f ( xk ) g k ,
2
unde g z = f ( z ) i x k este un punct de pe segmentul de linie care unete x k i
z . Avnd n vedere caracterul local al cutrii i c distana dintre x k i z este
x k = x k = x k . Cu acestea, adunnd egalitile de mai sus
mic, putem considera ~
obinem:
unde y k = g z g k .
bk = k2 g kT 2 f ( xk ) g k = k ykT g k ,
(5.5.7)
Se calculeaz: z = xk k g k , g z = f ( z ) i y k = g z g k .
Pasul 4.
Se calculeaz: ak = k g kT g k , bk = k ykT g k i k = a k / bk .
Pasul 5.
Pasul 6.
38
fie mai mare dect 1. Pe de alt parte, dac a k bk , atunci k 1. n acest caz
converge liniar la x * .
Demonstraie. Din (5.5.5) avem c f ( x k +1 ) f ( x k ), pentru toi k . Deoarece f
este mrginit inferior, rezult c
lim ( f ( x k ) f ( x k +1 )) = 0.
k
xk g k S i xk m g k S , pentru 0 < 1.
Presupunnd c a k < bk , atunci
f ( xk m g k ) f ( xk g k )
(ak bk ) 2
.
2bk
M 2
2
f ( xk g k ) f ( xk ) g k 2 +
gk 2 .
2
2
Observm c pentru 0 1/ M , + M / 2 / 2 care urmeaz din
convexitatea lui + M 2 / 2. Cu acest rezultat obinem:
2
f ( xk g k ) f ( xk ) g k
+
2
M 2
gk
2
2
2
f ( xk )
39
gk
f ( xk ) g k 2 ,
deoarece 1/ 2.
Cutarea liniar cu backtracking se termin fie cu = 1 , fie cu o valoare
/ M . Aceasta furnizeaz o margine inferioar asupra reducerii valorilor
funciei f . Pentru = 1 avem:
f ( xk g k ) f ( xk ) g k
i pentru / M
f ( xk g k ) f ( xk )
2
2
gk
2
2
2
f ( xk g k ) f ( xk ) min ,
gk 2 .
M
Pe de alt parte,
(ak bk )
2bk
( g
2
k 2
2 M gk
2 2
2
(5.5.8)
(1 M ) 2
2
=
gk 2 .
2M
2 2 M g k 2
Acum, ca mai sus, pentru = 1 :
( ak bk ) 2 (1 M ) 2
2
gk 2.
2bk
2M
Pentru / M :
2
( ak bk ) 2 (1 )
2
gk 2 .
2bk
2M
Deci,
(1 M ) 2 (1 ) 2
( ak bk ) 2
2
gk 2 .
min
,
2bk
2M
2M
(5.5.9)
2
f ( xk m g k ) f ( xk ) min ,
gk 2
M
(1 M ) 2 (1 ) 2
2
,
min
gk 2 .
2M
2M
(5.5.10)
Deci
(1 M ) 2 (1 ) 2
2
,
f ( xk ) f ( xk +1 ) min ,
+ min
g k 2 .
2 M
M
2M
40
(1 M ) 2 (1 ) 2
2
f ( xk +1 ) f ( xk ) min ,
min
,
+
g k 2 .
2M
M
2M
Combinnd aceasta cu
gk
2
2
2 m( f ( x k ) f * )
f ( x k +1 ) f * c( f ( x k ) f * ) ,
(5.5.11)
unde
(1 M ) 2 m (1 ) 2 m
2m
c = 1 min 2m ,
,
min
< 1. (5.5.12)
M
M
M
*
Deci, f ( x k ) converge la f cel puin ca o serie geometric cu un factor care
depinde de parametrii de backtracking i marginea asupra numrului de
condiionare M / m. Deci convergena algoritmului este cel puin liniar.
La fiecare iteraie k , selectnd k = m in (5.5.1), algoritmul PDA reduce
valorile funciei ca n (5.5.11) unde c este dat de (5.5.12). Deoarece algoritmul PD
realizeaz (5.5.11) cu
2m
c = 1 min 2m ,
<1,
M
i =1
j =1
f ( xk ) 2 g sau k g kT d k f f ( xk +1 ) ,
unde g = 10 6
41
f ( xk ) f * , a contribuiilor
ak
= 0.1 .
42
(ak bk ) 2 / 2bk se urmresc de-a lungul iteraiilor. Mai mult, acest experiment
numeric arat c selecia = 0.0001 din cutarea liniar cu backtracking este
foarte convenabil, aceasta ilustrnd nc odat c pretenii nu prea mari n
reducerea valorilor funciei de minimizat prin backtracking sunt de preferat (vezi
figura 5.5.1). Parametrul din cutarea liniar cu backtracking nu influeneaz
accelerarea pasului descendent.
Studiu numeric (PDA versus PDR i PD)2
n cele ce urmeaz prezentm rezultatele unui studiu numeric privind comportarea
algoritmului pasului descendent accelerat (PDA) n comparaie cu algoritmul
pasului descendent (PD) i algoritmul pasului descendent relaxat (PDR). n acest
sens am considerat un numr de 31 probleme de optimizare fr restricii i pentru
fiecare problem am considerat 10 instanieri n care numrul de variabile este
n = 100,...,1000 . Ca i n studiul numeric anterior problemele sunt din colecia
CUTE [Bongartz, Conn, Gould i Toint, 1995], mpreun cu alte probleme de
optimizare fr restricii construite n acest scop. Toi algoritmii considerai sunt
implementai n Fortran utiliznd acelai stil de programare, precum i acelai
criteriu de oprire a iteraiilor:
43
f ( xk ) 2 g sau k g kT d k f f ( xk +1 ) ,
unde g = 10 6 i f = 1016 . n procedura de cutare liniar prin backtracking
se utilizeaz aceleai valori pentru parametrii i : = 0.0001 , = 0.8 .
Din cele 310 probleme rezolvate de aceti algoritmi am selectat 270 pentru care
diferena dintre valorile funciilor de minimizat n punctul de minim este mai mic
dect 103 .
Tabelul 5.5.1 conine numrul de probleme, din cele 270, pentru care PDA,
PDR i PD realizeaz numrul minim de iteraii (#iter), numrul minim de evaluri
ale funciei i gradientului (#fg), precum i timpul minim de calcul (CPU).
Tabelul 5.5.1. Performana lui PDA versus PDR i PD. 270 de probleme.
#iter
#fg
CPU
193
154
156
PDA
81
85
85
PDR
4
31
29
PD
44
x k +1 = x k
unde scalarul k este calculat sub forma:
f ( x k ),
(5.6.1)
yT y
sT y
IBB
=
sau
,
k
sT y
sT s
i y = f ( x k ) f ( x k 1 ). Observm c aceast schem
kBB =
n care s = x k x k 1
utilizeaz o lungime a pasului care nu folosete conceptul de cutare liniar, ci
determin lungimea pasului ca inversa unei aproximaii scalare a Hessianului
funciei de minimizat. Aceste formule sunt obinute din ecuaia quasi-Newton
Bk s = y, unde Bk este o aproximaie simetric i pozitiv definit a lui 2 f ( x k ).
45
1
f ( xk +1 ) = f ( xk ) k g kT g k + k2 g kT 2 f ( z ) g k , unde z [ x k , x k +1 ] . Avnd n
2
vedere caracterul local al procedurii de cutare a minimului, precum i faptul c
distana dintre x k i x k +1 este destul de mic (mai ales n partea final a procesului
iterativ), rezult c putem alege z = x k +1 i considera ( x k +1 ) I ca o aproximare
a lui 2 f ( x k +1 ), unde ( x k +1 ) R. Cu alte cuvinte, am considerat un punct de
vedere anticipativ n care o aproximaie scalar a Hessianului n punctul x k +1 este
calculat utiliznd informaiile locale din punctul x k . Ca atare, putem scrie:
2 1
f ( xk +1 ) f ( xk ) + k g kT g k .
(5.6.2)
2
g gk k
Acum, pentru a calcula urmtoarea estimaie xk + 2 = xk +1 k +1 g k +1 a minimului
( xk +1 ) =
T
k
1
k +1 ( ) = f ( xk +1 ) g kT+1 g k +1 + 2 ( xk +1 ) g kT+1 g k +1.
2
k +1 (0) = f ( x k +1 ) i k +1 (0) = g kT+1 g k +1 < 0. Deci
Observm c
k +1 ( ) este o funcie convex pentru toi 0. Pentru ca k +1 ( ) s aib un
minim trebuie ca ( x k +1 ) > 0. Considernd pe moment c ( x k +1 ) > 0, atunci din
k +1 ( ) = 0 obinem:
46
k +1 =
1
,
( xk +1 )
(5.6.3)
1
2
g k +1 2 ,
2 ( xk +1 )
care arat c dac ( x k +1 ) > 0 atunci valoarea funciei f este redus. Aceasta
k +1 ( k +1 ) = f ( xk +1 )
k +1 = arg min f ( xk +1 g k +1 ) .
k +1
(5.6.4)
1
f ( xk ) f ( xk +1 ) k g kT g k +
g gk
cu care o nou valoare pentru ( x k +1 ) se poate imediat calcula:
2
1
f ( xk +1 ) f ( xk ) + ( k + k ) g kT g k .
( xk +1 ) = T
g k g k ( k + k ) 2
k =
T
k
(5.6.5)
(5.6.6)
care este strict pozitiv. Noul Algoritm (NA) corespunztor este urmtorul:
Algoritmul 5.6.1. (Un Nou Algoritm de pas descendent)
Pasul 1. Selectm x 0 dom f . Calculm f ( x 0 ), g 0 = f ( x 0 ) precum i
0 = argmin f ( x0 g 0 ). Calculm x1 = x0 0 g 0 , f ( x1 ) i
<1
g1 = f ( x1 ). Punem k = 0.
Pasul 2.
Pasul 3.
Pasul 4.
Pasul 5.
Pasul 6.
k +1 = argmin f ( xk +1 g k +1 ) .
<k +1
Pasul 7.
47
k 1
f ( x k ) f * ci ( f ( x 0 ) f * ) ,
i=0
unde
ci = 1 min 2m , 2m pi < 1
i p i 1 este un ntreg, ( p i = 1,2, dat de procedura de backtracking).
Demonstraie. Putem scrie:
1
2
f ( xk +1 ) = f ( xk ) 2 ( xk +1 ) g k 2 .
2
2
Dar dup cum se vede imediat, ( xk +1 ) / 2 este o funcie concav, i pentru
toi 0 1/ ( xk +1 ), ( xk +1 ) 2 / 2 / 2. Deci
f ( xk +1 ) f ( xk )
gk
2
2
f ( xk ) g k 2 .
f ( xk +1 ) f ( xk ) min , pk g k 2 .
Avnd n vedere tare convexitatea, rezult c g k
2
2
2 m( f ( x k ) f * ) , adic
f ( x k +1 ) f * ck ( f ( x k ) f * ) ,
unde ck = 1 min 2m , 2m
pk
}.
Demonstraie.
Pentru
T
k
avem:
toi
48
( xk +1 ) =
2 ( f ( xk ) f ( xk +1 ) )
k2 ( g kT g k )
>
( ) = 0.
(g g )
2 k g kT g k
k2
T
k
f ( x ) = ( x i+1 x i3 ) + (1 x i ) ,
2
x 0 = [ 1.2,1,1.2,1, ] .
i =1
n tabelul 5.6.1 se arat numrul de iteraii i lungimea medie a pasului pentru cei
trei algoritmi: PD-pasul descendent clasic, PDR-pasul descendent relaxat i pentru
NA-noul algoritm.
1000
2000
3000
4000
5000
1061
1069
1069
1070
1063
0.0598325
0.0595312
0.0595137
0.0595230
0.0598308
418
451
438
449
485
0.258687
0.246441
0.257312
0.252725
0.231459
185
217
203
218
198
0.265502
0.242480
0.251972
0.237006
0.257031
n
10000
20000
30000
40000
50000
= 0.01
# iter
224
207
194
195
212
1
1
1
1
1
= 0.1
# iter
219
200
226
207
222
1
1
1
1
1
=1
# iter
204
230
234
215
222
1
1
1
1
1
= 10
# iter
239
210
224
222
224
1
1
1
1
1
= 100
# iter
208
190
204
226
205
1
1
1
1
1
49
( x k +1 ) kBB
i
( exp( x i ) x i ),
i =1 10
f ( x) =
x 0 = [11
, , ,1] .
n
1000
2000
3000
4000
5000
0.020215
0.010106
0.006744
0.005044
0.004036
1168
1159
1340
1177
1523
0.117336
0.080865
0.063615
0.057248
0.045275
588
758
1465
1401
1316
0.1199889
0.0498313
0.0429736
0.0348057
0.0189150
50
= 10
# iter
.
= 100
# iter
0
4
16
4
19
2413
1702
2173
2504
2915
2413
1918
2076
2407
3427
Tabelul 5.6.4. Algoritmul NA. Numrul de iteraii pentru diferite valori ale lui
n
10000
20000
30000
40000
50000
= 0.01
# iter
= 0.1
# iter
# iter
2413
2586
2806
2449
3847
2413
3091
2405
3099
3931
2413
1896
2858
2865
3368
0
3
3
23
11
0
19
2
4
11
=1
0
4
2
8
1
0
2
8
3
14