Sunteți pe pagina 1din 119

Lucrare de laborator

Minimizarea funciilor de o singur variabil n absena restriciilor


1. Scopul lucrrii Principalul obiectiv al acestei lucrri este de a prezenta modul de lansare a unei probleme de minimizare a unei funcii obiectiv de o singur variabil n absena restriciilor precum i soluionarea unei astfel de probleme utiliznd tehnica de calcul numeric. Prezentarea este propus n cadrul pachetului de programe Matlab (versiunea 6.5). De altfel, un al doilea obiectiv al acestei lucrri este familiarizarea utilizatorului cu programul amintit care reprezint probabil cel mai elaborat program pentru calcule tiinifice. 2. Prezentarea lucrrii Problema minimizrii unei funcii de o singur variabil n absena restriciilor se formuleaz simplu n forma:
xmin = argmin f ( x ) , x [a, b] R1 .

Problema, simpl la prima vedere, poate fi foarte complicat dac funcia obiectiv are mai multe limite locale. ntr-un astfel de caz majoritatea algoritmilor de cutare a minimului fie se blocheaz, fie converg ctre o soluie de minim local ceea ce nu ofer o soluie admisibil. n acest sens, n cele ce urmeaz vom considera c intervalul [a, b] constituie un interval de incertitudine ce reprezint un interval n care se gsete cu certitudine un minim unic al funciei obiectiv. Sigur, o astfel de condiionare este restrictiv, dar n majoritatea aplicaiilor putem estima un asemenea interval.
5

Principalele subrutine coninute n Optimization Toolbox din cadrul pachetului de programe Matlab ce permit soluionarea problemei propuse sunt: fminbnd pentru probleme de optimizare scalar; fminsearch pentru probleme de optimizare neliniar n absena restriciilor. n continuare, vom prezenta pe scurt sintaxa cu care aceste subrutine sunt apelate. Apelarea primei subrutine, n funcie de necesiti, poate fi fcut n una din urmtoarele variante: 1) x = f min bnd ( fun, x1 , x2 ) 2) x = f min bnd ( fun, x1 , x2 , options ) 3) x = f min bnd ( fun, x1 , x2 , options, P , P2 ,...) 1 Prima form de apelare ntoarce c rezultat minimul funciei fun din intervalul

[x , x ] .
1 2

Cea de a doua form de apelare permite evaluarea

aceluiai minim determinat n condiiile impuse prin structura options. Ultima form de apelare se impune n cazul n care funcia conine mai muli parametrii. Opiunile ce pot fi impuse pot fi: Display fixeaz nivelul prezentrii. Acesta poate fi: off n cazul n care nu dorim informaii suplimentare, iter n cazul n care urmrim evoluia procesului iterativ, final caz n care este prezentat numai evoluia final TolX prin care se impune tolerana final admis; MaxFunEvals se impune numrul maxim de funcii ce pot fi evaluate; MaxIter numr maxim de iteraii.
6

Impunerea structurii Options se realizeaz astfel: options=optimset(param1,value1,param2,value2,). Subrutina fminsearch va fi apelat n una din formele: 1) 2) 3)

f min search ( fun, x0 ) ;

f min search ( fun, x0 , options ) ;

f min search ( fun, x0 , options , P1, P 2,...) .

Variabila de intrare x0 reprezint punctul de iniializare a cutrii. Celelalte variabile de intrare au semnificaia anterior prezentat. n continuare vom prezenta un exemplu simplu privitor la problema propus. Considerm funcia obiectiv:

f ( x ) = x (1 x ) .
Se caut punctul de minim situat n intervalul [0,10]. Pentru nceput, realizm o m-funcie asociat funciei impuse pe care o definim f1.
function y=f1(x) y=-x.*(1-x);

n continuare impunem structura options:


>>options=optimset('TolX',1e-12,'Display','iter','TolFun',1e-8);

Lansm procedura de cutare:


>> x=fminbnd('f1',0,10)

Rezultatele afiate sunt prezentate n cele ce urmeaz:


Func-count 1 2 3 4 x 3.81966 6.18034 2.36068 0.5 f(x) 10.7701 32.0163 3.21213 -0.25
7

Procedure initial golden golden parabolic

5 6

0.5 0.5

-0.25 -0.25

parabolic parabolic

Optimization terminated successfully: the current x satisfies the termination criteria using

OPTIONS.TolX of 1.000000e-012 x = 0.5000

n cazul n care utilizm subrutina fminsearch.m, iniializarea procesului de cutare se face printr-un singur punct i nu printr-un interval ca n cazul precedent. Pentru aceeai problem ca i n exemplu precedent lansarea cutrii se va face n forma:
xm=fminsearch(@f1,10,options)

unde x 0 = 10 reprezint condiia iniial de lansare a cutrii. Rezultatele sunt prezentate n cele ce urmeaz:
Iteration 1 2 3 4 5 6 ... 46 47 103 106 -0.25 -0.25 shrink shrink Func-count 2 4 6 8 10 12 min f(x) 90 72 42 6 2 0 Procedure initial expand expand expand reflect contract inside

Optimization terminated successfully: the current x satisfies the termination criteria using

OPTIONS.TolX of 1.000000e-012 and F(X) satisfies the convergence criteria using

OPTIONS.TolFun of 1.000000e-008 xm = 0.5000


8

n cazul funciilor de mai multe variabile, aplicaiile se soluioneaz similar dar apar dificulti legate de nscrierea fiierelor funcie. Considerm funcia:

f ( x1 , x2 ) = (sin x1 + sin x2 + sin ( x1 + x2 )) ,


pentru care se cere stabilirea unui minim pentru x1 , x2 [0, / 2] .

Fiierul funcie fv3.m asociat funciei considerate este de forma:


function y=fv3(v) x1=v(1); x2=v(2); y=-(sin(x1)+sin(x2)+sin(x1+x2));

Pentru a vizualiza graficul 3D al funciei, nscriem urmtorul fiier script:


clear all map(1,:)=[rand(1) rand(1) rand(1)]; [x1,x2]=meshgrid(0:pi/60:pi/2); z=-(sin(x1)+sin(x2)+sin(x1+x2)); surf(x1,x2,z) xlabel('x1') ylabel('x2')

Graficul funciei este prezentat n figura de mai jos:

0 -0.5 -1 -1.5 -2 -2.5 -3 2 1.5 1 0.5 x2 0 0 0.5 x1 1.5 1 2

Figura 1. Graficul funciei


9

Dac considerm ca punct de iniializare a cutrii x0 = (0,0 ) , procesul de cutare se lanseaz n forma:
xm=fminsearch(@fv3,[0,0],options)

Rezultatele sunt prezentate n continuare:


Iteration 1 2 3 ... 91 92 93 the and current F(X) x 191 192 196 satisfies -2.59808 -2.59808 -2.59808 the termination shrink reflect shrink criteria criteria using using Func-count 3 5 6 min f(x) -0.0005 -0.0015 -0.0015 Procedure initial expand reflect

Optimization terminated successfully: OPTIONS.TolX of 1.000000e-012 satisfies the convergence OPTIONS.TolFun of 1.000000e-008

3. Chestiuni de studiat

Se consider ca funcie obiectiv una dintre funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. Crt. 1 2 3 4 5 Funcie
f ( x ) = 2.012 x 2 1.15 x + 1.55 f ( x ) = 0.4375 x + 2.012 x + 2.437 x + 1.552 f ( x ) = 0.4653 x 0.4375 x + 6.465 x + 2.438 x 1 f ( x ) = 0.368 e
1.388 x 4 3 2 3 2

Interval
[-3;3] [-3;3] [-3;3] [-2;2] [-2;2]

+ 2.235 e

0.6398 x

f ( x ) = 9.609 11.82 cos(1.259 x ) + 3.636 sin(1.259 x )

a) Determinai minimul funciei. b) Afiai graficul funciei obiectiv.


10

Lucrare de laborator

Metoda seciunii de aur pentru minimizarea funciilor de o singur variabil


1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda seciunii de aur s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur variabil.
2. Prezentarea lucrrii

Metoda seciunii de aur constituie una dintre uneltele cele mai puternice pentru minimizarea funciilor de o singur variabil, bazai exclusiv pe valorile funciei obiectiv. Considerm n cea de-a k-a iteraie un interval de incertitudine [ak,bk]. Noul interval de incertitudine [ak+1,bk+1] se formeaz astfel: [k,bk] , dac f(k) > f(k) [ak, k] , dac f(k) < f(k) n cadrul acestei metode, alegerea punctelor intermediare de lucru se va face n urmtoarele impuneri: i) Lungimea intervalului de incertitudine final, n cadrul oricrei iteraii trebuie s fie independent de rezultatul comparaiei f(k) < f(k) sau f(k)> f(k). Prin urmare: bk k = k - ak
11

(1)

O asemenea condiie este indeplinit dac alegem: k = ak + (1- )(bk-ak) cu (0,1) i k = ak + ( bk-ak) (3) (2)

Pentru o astfel de alegere, indiferent de rezultatul comparaiei, rezult:

bk +1 a k +1 = bk a k
ii)

, (0,1)

(4)

Cea de-a doua condiie impune ca n cadrul noii iteraii, k+1 i k+1 s rezulte k+1 = k sau k+1 = k. n aceste condiii, n cea de-a (k+1)-a iteraie este necesar evaluarea unei singure valori pentru funcia obiectiv.

Pentru stabilirea complet a relaiilor de definire (8) i (9), este necesar s stabilim valoarea pentru care este ndeplinit cea de a doua condiie. ak k k bk dac f(k) > f(k) dac f(k) < f(k)

ak+1 ak+1 k+1 k+1

k+1 k+1 bk+1 bk+1

Figura 2. Schem de determinare a noului interval de cutare

Presupunem c n cea de-a k-a iteraie, rezultatul comparaiei valorilor funciei obiectiv este f(k) > f(k) i, prin urmare, ak+1 = k , iar bk+1 = bk. n urma condiiei ii) impuse mai sus, este necesar ca k+1 = k. Prin urmare:

k+1 = ak+1 + (1 - )(bk+1 - ak+1) = k + (1- ) (bk - ak) = k .


12

(5)

innd cont de modul de definire al valorilor k i k obinem:

a k + (1 ) ( bk a k ) + (1 ) ( bk a k ) = a k + (bk a k ) i n final, dup prelucrri elementare:

(6)

2 + 1 = 0 .
Ecuaia (7) pune n eviden singura soluie interesant:
5 1 (0,1) . 2

(7)

n mod similar, se demonstreaz c aceast valoare asigur ndeplinirea condiiei ii) i pentru cazul f(k) < f(k). Metoda propus impune algoritmul seciunii de aur:
Etapa de iniializare. Se alege lungimea intervalului de incertitudine final,

> 0 . Fie [a1,b1] intervalul de incertitudine iniial, calculm


1 = a1 + (1- )(b1-a1) i 1 = a1 + ( b1 - a1),
n care 5 1 0.618 . 2

Se calculeaz f(1) i f(1), facem k = 1 i trecem la etapa de baz.


Etapa de baz. Pasul 1. Dac bk ak <

, algoritmul se oprete i punctul

de optim este situat n intervalul [ak,bk]. Dac nu, n ipoteza c f(k) f(k), trecem la pasul 2, iar dac f(k) < f(k) trecem la pasul 3.
Pasul 2. Considerm ak+1 = k , bk+1 = bk , k+1 = k i k+1 = ak+1 +

(bk+1 - ak+1). Calculm valoarea funciei n f(k+1) i trecem la pasul 4.


Pasul 3. Considerm ak+1 = a k , bk+1 = k , k+1 = k i k+1 = ak+1 + (1 -

)(bk+1 - ak+1). Calculm valoarea funciei n f(k+1) i trecem la pasul 4.


Pasul 4. Se itereaz k k + 1 i se reia de la pasul 1.
13

Evaluarea numrului de iteraii necesare atingerii intervalului de incertitudine final se stabilete cu uurin. Pe baza relaiei (6) stabilim:
b2 a 2 b3 a3 b1 a1 b2 a 2 bn +1 a n +1 =n bn a n

(8)

prin urmare:
bn +1 a n +1 =n. b1 a1

Condiia de atingere a intervalului de incertitudine final va fi:


bn +1 a n +1 = n (b1 a1 ) < . (9)

Remarcm c n cadrul acestei proceduri este necesar ca pe fiecare iteraie (cu excepia primei iteraii) se calculeaz o singur valoare a funciei obiectiv (n+1 valori pentru asigurarea unei precizii cu n fixat de relaia (9)). n continuare vom prezenta un exemplu privind utilizarea unui asemenea algoritm pentru minimizarea unei funcii. Funcia obiectiv este de forma:
f ( x) = x 2 + x + 1 i admite un punct de minim pentru: x min = 0.5 i f ( x min ) =

3 . 4

Reamintim c n procedura de calcul a fost inserat o pauz de o secund pentru simularea unei complexiti de calcul mai mare. Pentru a evalua procedura de cutare propus utilizm subrutina gold.m prezentat n Anexa 1. Subrutina a fost setat astfel: Intervalul de incertitudine iniial a1 = 3, b1 = 3 ; Precizia de evaluare a minimului = 0.01.
14

Rezultatele obinute prin simulare sunt prezentate n tabelul urmtor:


k
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

ak
-3.0000 -3.0000 -1.5836 -1.5836 -1.0426 -0.7082 -0.7082 -0.5805 -0.5805 -0.5317 -0.5317 -0.5131 -0.5131 -0.5060 -0.5016 -0.5016 -0.5016 -0.5005 -0.5005 -0.5005

bk
3.0000 0.7082 0.7082 -0.1672 -0.1672 -0.1672 -0.3738 -0.3738 -0.4528 -0.4528 -0.4829 -0.4829 -0.4944 -0.4944 -0.4944 -0.4972 -0.4988 -0.4988 -0.4995 -0.4999

bk a k
6.0000 3.7082 2.2918 1.4164 0.8754 0.5410 0.3344 0.2067 0.1277 0.0789 0.0488 0.0301 0.0186 0.0115 0.0071 0.0044 0.0027 0.0017 0.0010 0.0006

f ( k )
0.7933 1.9242 0.7933 1.0444 0.7933 0.7500 0.7565 0.7500 0.7510 0.7500 0.7502 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500

f ( k )
2.2098 0.7933 0.8608 0.7933 0.7500 0.7659 0.7500 0.7522 0.7500 0.7503 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.75

Tabelul 2.1. Rezultatele obinute prin simulare

n prima coloan a acestui tabel este nscris tactul de lucru. Urmtoarele dou coloane indic valorile de capt pentru intervalul de incertitudine pe tactul curent. n coloana urmtoare sunt date limea intervalului de incertitudine pe tactul considerat. n sfrit, ultimele dou coloane indic valorile funciei obiectiv n punctele intermediare de calcul specifice metodei propuse.
15

Convergena algoritmului poate fi analizat conform graficului prezentat n figura 3. Graficul prezint evoluia intervalului de incertitudine n cadrul procesului de cutare a minimului. Astfel curba superioar indic valorile maxime ale intervalelor de incertitudine iar cea inferioar indic valorile minime a acestor intervale. Lungimea intervalului de incertitudine pe tact este prezentat prin segmentul trasat cu linia gras.

Figura 3. Evoluia intervalului de incertitudine

Este interesant o comparaie a timpului de calcul necesar obinerii intervalului de incertitudine final pentru diverse valori ale preciziei de calcul impuse. n tabelul 2.2 sunt prezentai timpii de calcul necesari stabilirii intervalului de incertitudine final pentru o precizie impus 10 k , k 1,4 pornind de la un interval de incertitudine iniial a1 = 3, b1 = 3.
k

1.0000 11.1460

2.0000 16.0230

3.0000 21.0300

4.0000 25.0360

timp

Tabelul 2.2. Variaia timpului n funcie de precizie


16

Graficul dependenei timpului de calcul n funcie de precizia impus este prezentat n figura urmtoare:

Figura 4. Evaluarea timpilor de calcul pentru diverse precizii impuse

3. Chestiuni de studiat

Se consider ca funcie obiectiv una dintre funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. Crt. 1 2 3 4 5 Funcie
f ( x ) = x 4 + x3 + 5 x 2 + x + 2 f ( x ) = 5 x + x + 16 f ( x ) = sin( x ) cos( x ) f ( x ) = e cos( x ) 5 sin( x )
x 2

Interval de incertitudine iniial


[-3;3] [-4;4] [-2;2] [-7;-3] [-3;4]

Valoare de minim
-0.1027 -0.1 -0.7854 -4.9112 0.3889

Minim
1.9491 15.95 -1.4142 -5.0917 -0.2086

f ( x ) = x x cos( x )

Determinai minimul funciei, impunnd diferite precizii de calcul al acestuia. De asemenea, afiai graficul funciei obiectiv.

17

Lucrare de laborator

Metoda cutrii dihotomice

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda cutrii dihotomice s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur variabil.

2. Prezentarea lucrrii

Procedurile de minimizare ce utilizeaz exclusiv valorile funciei, se bazeaz pe o teorem fundamental n teoria funciilor convexe care permite eliminarea din intervalul de incertitudine iniial [a,b], subintervalul [,b] sau [a,], n funcie de rezultatul comparaiei f() i f(). Dac este echiprobabil eliminarea oricrui subinterval obinem varianta optim de alegere a valorilor i : = =
ba , caz n care, n cadrul fiecrei 2

iteraii eliminm jumtate din intervalul de incertitudine iniial. Din pcate, o astfel de procedur nu poate fi aplicat datorit necesitii comparrii valorilor f() i f() care implic . n cadrul metodei cutrii dihotomice, se impune alegerea valorilor i n forma:

ba ba i = + 2 2

(1)

care apropie abordarea ctre varianta optim n cazul foarte mic.


18

n alegerea valorilor trebuie s inem cont de zeroul mainii care limiteaz inferior ecartul de variaie a acestei mrimi. De asemenea, trebuie s inem cont de faptul c valorile funciei trebuie s fie comparabile, deci valoarea de discernabilitate trebuie aleas corespunztor tipului funciei i al mainii utilizate. Metoda cutrii dihotomice genereaz urmtorul algoritm de cutare:

Etapa de iniializare. Se alege constanta de discernabilitate i lungimea


intervalului de incertitudine final

> 0 . Fie [a,b] intervalul de

incertitudine iniial, facem k = 1 i trecem la etapa de baz.

Etapa de baz. Pasul 1. Dac bk-ak < , algoritmul se oprete, iar minimul
se gsete undeva n intervalul [ak;bk]. Dac nu, atunci se calculeaz:

k =

a k + bk a + bk , k = k + i se trece la pasul 2. 2 2

Pasul 2. Dac f ( k ) < f ( k ) atunci a k +1 = a k , bk +1 = k iar n cazul n


care f ( k ) > f ( k ) , atunci a k +1 = k , bk +1 = bk . Se itereaz k k + 1 i se reia pasul 1. n privina numrului de iteraii pentru o precizie final impus, apreciem cu uurin: 1 1 (b1 a1 ) + 2 (1 k ) k 2 2

bk +1 a k +1 =

(2)

i deci:

bn +1 an +1 =

1 1 (b1 a1 ) + 2 (1 n ) < n 2 2

de unde putem determina numrul de iteraii necesar obinerii minimului cu o precizie impus.
19

Vom prezenta n continuare un exemplu simplu de minimizare a unei funcii de o singur variabil utiliznd metoda cutrii dihotomice. Funcia ce urmeaz a fi minimizat este:

f ( x) = x 2 + x + 1
i a fost nscris ca fiier cu extensia .m. Pentru a simula cazul unei funcii de calitate mult mai complexe i care necesit un timp de calcul mai mare, s-a forat o pauz de 1 secund care determin un timp relativ mare pentru evaluarea funciei. Soluia de optim este evident 1 3 xopt = , y opt = . 2 4 Aplicm

algoritmul cutrii dihotomice pentru soluionarea problemei enunate setnd parametrii subrutinei prezentate n Anexa 1 astfel:
14 12 10
f(x)

Intervalul de incertitudine iniial [a1 , b1 ] = [ 30,30] ; Precizia de evaluare = 0.01 ; Valoarea de dicernabilitate e = 0.0001 .

8 6 4 2 0 -3 -2 -1 -0.5 0
x

x=-0.5 punct de minim

Figura 5. Graficul funciei propuse ca exemplu


20

Valorile intermediare i intervalul de incertitudine final sunt prezentate n tabelul urmtor:


k
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000

ak
-30.0000 -30.0000 -15.0001 -7.5001 -3.7501 -1.8751 -0.9376 -0.9376 -0.7032 -0.5860 -0.5274 -0.5274 -0.5128 -0.5055

bk
30.0000 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 -0.4686 -0.4686 -0.4686 -0.4686 -0.4979 -0.4979 -0.4979

bk a k
60.0000 30.0001 15.0002 7.5002 3.7502 1.8752 0.9377 0.4689 0.2346 0.1174 0.0588 0.0295 0.0148 0.0075

Tabelul 3.1. Rezultatele metodei dihotomice

Pentru a evidenia corelaia dintre timpul de calcul i precizia metodei, putem determina timpii necesari stabilirii intervalului de incertitudine final pentru diferite valori impuse preciziei de determinare a punctului de minim. Astfel, impunnd incertitudinea iniial a1 = 5, b1 = 5 se determin intervalul de timp necesar pentru a asigura o precizie de 10 k , unde k 1,2,3,4.
k 1 2 3 4

timp 14.0200 20.0290 28.0400 34.90 Tabelul 3.2. Variaia timpului n funcie de precizie
21

n tabelul 3.2 sunt prezentate rezultatele asupra testului propus, iar n figura 6 este prezentat dependena grafic dintre timpul necesar procesrii i precizia de calcul impus.

Figura 6. Variaia timpului de procesare n funcie de precizie

3. Chestiuni de studiat
Se consider ca funcie obiectiv una dintre funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. Crt. 1 2 3 4 5 Funcie
f ( x ) = 2 x 2 x sin( x ) f ( x ) = 7 x + x + 31 f ( x ) = cos( x ) 2 sin( x ) f ( x ) = e3x cos( x ) sin( x ) f ( x ) = x 2 x + 5 x + x + 11
4 3 2 2

Interval de incertitudine iniial


[-3;4] [-4;4] [-1;4] [-4;1] [-3;4]

Valoare de minim
0 -0.0714 2.0345 -0.92 -0.0943

Minim
0 30.9643 -2.2361 -1.3381 10.9519

Determinai minimul funciei, impunnd diferite precizii de calcul al acestuia. De asemenea, afiai graficul funciei obiectiv.
22

Lucrare de laborator

Metoda Fibonacci

1. Scopul lucrrii
Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda Fibonacci s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur variabil.

2. Prezentarea lucrrii
Metoda Fibonacci este o procedur de minimizare a funciilor de o singur variabil, n absena restriciilor, bazat exclusiv pe valorile funciei obiectiv. Ca i metoda seciunii de aur, metoda propus caut minimizarea numrului de valori calculate n cadrul procesului iterativ necesar asigurrii unei precizii impuse n localizarea minimului. Spre deosebire de metoda seciunii de aur, n cadrul acestei proceduri raportul de contracie

bk +1 a k +1 bk a k
nu este constant i este dependent de numrul iteraiei efectuate. n construcia punctelor intermediare de test intervin valori ale termenilor din irul Fibonacci. irul Fibonacci este definit prin relaia de recuren: FK+1 = FK + FK-1 , cu F0 = F1 = 1.
23

(1)

Dac considerm n cadrul iteraiei k, intervalul de incertitudine iniial ca fiind [ak,bk], alegerea punctelor intermediare de test se face astfel:

k = a k +

Fn k 1 (bk a k ) Fn k +1
Fn k (bk a k ) . Fn k +1

(2)

k = ak +

(3)

n funcie de rezultatul comparaiei valorilor f(k) i f(k), intervalul de incertitudine va fi [ak, k] sau [k,bk]. Prin urmare:

bk +1 a k +1 = k a k =
sau

Fn k (bk a k ) Fn k +1

(4)

bk +1 a k +1 = bk k = bk a k

Fn k 1 F (bk a k ) = n k (bk a k ) . Fn k +1 Fn k +1

(5)

Prin urmare, indiferent de rezultatul comparaiei valorilor f(k) i f(k), obinem urmtorul rezultat:
bk +1 a k +1 = Fn k (bk a k ) . Fn k +1

(6)

Urmeaz s verificm dac valorile intermediare calculate pe baza relaiilor (4.2) i (4.3) satisfac condiia pe baza creia, la fiecare iteraie, este necesar calcularea valorii funciei ntr-un singur punct. Considerm c n iteraia k, lungimea intervalului de incertitudine iniial este [ak,bk] i alegem valorile k < k , conform relaiilor (2) i (3). Presupunem cazul f(k) > f(k) care impune o incertitudine final [ak+1 , bk+1] = [k , k]. Aadar:
24

k +1 = a k +1 +
= ak +

Fn k 2 F (bk +1 a k +1 ) = k + n k 2 (bk a k ) = Fn k Fn k

Fn k 1 F F (bk a k ) + n k 2 (bk +1 a k +1 n k 1 (bk a k )) = Fn k +1 Fn k Fn k +1


Fn k 1 F F (bk ak ) + n k 2 (1 n k 1 ) (bk ak ) . Fn k +1 Fn k Fn k +1 (7)

= ak + Deoarece

Fn k 1 Fn k +1 Fn k 1 F = = nk , Fn k +1 Fn k +1 Fn k +1

(8)

rezult:

k +1 = a k + n k 1 + n k 2 (bk a k ) = a k + n k (bk a k ) = k . F Fn k +1 n k +1 Fn k +1
Procednd prin calcul direct, obinem pentru cazul f(k) < f(k):

(9)

k +1 = k .

(10)

Prin urmare, i n cadrul acestei metode este necesar evaluarea funciei obiectiv ntr-un singur punct, cu excepia primei iteraii. nainte de a prezenta algoritmic procedura de cutare, atragem atenia c iteraiile se fac dup valorile lui k pentru un n fixat apriori. Valoarea n se determin pe baza preciziei impuse, . Dac avem n vedere relaia (6), rezult: bn a n F = 1 bn 1 a n 1 F2
bn 1 a n 1 F 2 = bn 2 a n 2 F 3
25

(11)

b2 a 2 Fn 1 = b1 a1 Fn

Rezultatul se obine imediat: bn a n 1 . = b1 a1 Fn Condiia de asigurare a unei precizii impuse va fi: (12)

bn a n =

1 (b1 a1 ) Fn

(13)

din care putem determina valoarea lui n:

Fn > (b1 a1 ) / .
n continuare, vom prezenta algoritmul Fibonacci:

Etapa de iniializare. Se impune valoarea maxim a intervalului de


incertitudine final , precum i constanta de discernabilitate . Se consider dat intervalul de incertitudine iniial [a1,b1] i determinm n din condiia Fn > (b1 a1 ) / . Se calculeaz:

1 = a1 +

Fn 2 F (b1 a1 ) , 1 = a1 + n 1 (b1 a1 ) Fn Fn

i valorile corespunztoare: f(1) i f(1). Impunem k = 1 i trecem la etapa de baz.

Etapa de baz. Pasul 1. Dac f(k) > f(k) se trece la pasul 2, iar dac f(k)
f(k) se trece la pasul 3.
26

Pasul 2. Se reiniializeaz a k +1 = k , bk +1 = bk i se determin k +1 = k ,

k +1 = a k +1 +

Fn k 2 (bk +1 a k +1 ) . Fn k

Dac k = n 2 , se trece la pasul 5 i dac nu, se trece la pasul 4.

Pasul 3. Se reiniializeaz a k +1 = a k , bk +1 = k i se determin:

k +1 = a k +1 +

Fn k 2 (bk +1 a k +1 ) . Fn k

Dac k = n 2 , se trece la pasul 5 i dac nu, se trece la pasul 4.

Pasul 4. Iterm k k + 1 i relum de la pasul 1. Pasul 5. Facem n = n 1 i n = n + . Dac f(k) > f(k), atunci a n = n
i bn = bn 1 . n caz contrar, a n = a n 1 i bn = n . Punctul de optim va fi situat n intervalul [an , bn].

Exemplul 4.1. Comportarea algoritmului de cutare generat de metoda


Fibonacci va fi testat pe funcia

f ( x) = x 2 + x + 1 , prezentat i n

exemplele precedente i pentru care am introdus o pauz de o secund simulnd astfel o complexitate de calcul mai mare a funciei obiectiv. Pentru cutarea minimului s-a utilizat algoritmul Fibonacci prezentat n Anexa 1. Subrutina a fost setat astfel: Intervalul de incertitudine iniial a1 = 3, b1 = 3 ; Precizia de determinare a minimului = 0.01 ; Valoarea de discernabilitate e1 = 10 6 .
27

Rezultatele obinute prin rularea programului sunt prezentate n tabelul 4.1:

k
1 2 3 4 5 6 7 8 9 10 11 12 13 14

a(k)
-3.0000 -3.0000 -1.5836 -1.5836 -1.0426 -0.7082 -0.7082 -0.5803 -0.5803 -0.5311 -0.5311 -0.5115 -0.5115 -0.5016

b(k)
3.0000 0.7082 0.7082 -0.1672 -0.1672 -0.1672 -0.3738 -0.3738 -0.4525 -0.4525 -0.4820 -0.4820 -0.4918 -0.4918

b(k)a(k)
6.0000 3.7082 2.2918 1.4164 0.8754 0.5410 0.3344 0.2066 0.1279 0.0787 0.0492 0.0295 0.0197 0.0098

l(k)
-0.7082 -1.5836 -0.7082 -1.0426 -0.7082 -0.5016 -0.5803 -0.5016 -0.5311 -0.5016 -0.5115 -0.5016 -0.5016 -0.5016

m(k) teta1(k)
0.7082 -0.7082 -0.1672 -0.7082 -0.5016 -0.3738 -0.5016 -0.4525 -0.5016 -0.4820 -0.5016 -0.4918 -0.5016 -0.5016 0.7933 1.9242 0.7933 1.0444 0.7933 0.7500 0.7565 0.7500 0.7510 0.7500 0.7501 0.7500 0.7500 0.7500

teta2(k)
2.2097 0.7933 0.8607 0.7933 0.7500 0.7659 0.7500 0.7523 0.7500 0.7503 0.7500 0.7501 0.7500 0.7500

Tabelul 4.1. Rezultatele obinute prin simulare

Prima coloan indic tactul de lucru. Urmtoarele dou coloane indic limita inferioar i respectiv superioar ale intervalului de incertitudine, iar cea de a patra coloan indic lungimea intervalului de incertitudine pe tactul curent. Coloanele cinci i ase dau valorile de testare pe tactul curent, iar ultimele dou coloane fixeaz valorile funciei obiectiv n valorile intermediare alese conform algoritmului propus. Intuitiv, convergena algoritmului poate fi analizat cu ajutorul graficului prezentat n figura 7.

28

Figura 7.Convergena algoritmului

Linia ngroat reprezint intervalul de incertitudine pe fiecare tact. Pentru o evaluare calitativ a vitezei de convergen a algoritmului generat de metoda Fibonacci, pentru un acelai interval de incertitudine iniial am impus valori privind intervalul de incertitudine final de forma

= 10 k , k 1,4 . Timpii de calcul necesari asigurrii preciziei impuse sunt


prezentai n tabelul urmtor:
k timp 1.0000 12.2170 2.0000 16.0430 3.0000 21.0310 4.0000 26.0370

Tabelul 4.2. Variaia timpului n funcie de precizie

n figura 8 este prezentat graficul dependenei timpului de calcul n funcie de precizia de calcul impus:
Figura 8. Dependena timpului n funcie de precizia impus

29

Observaie

Algoritmul Fibonacci este superior ca performane algoritmului seciunii de aur. Acest lucru este resimit n cazul unui numr mic de iteraii. n cazul unui numr mare de pai, comportarea celor doi algoritmi este aproape identic.

3. Chestiuni de studiat
Se consider ca funcie obiectiv una dintre funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. Crt. 1 2 3 4 5 Funcie
f ( x ) = x 4 + x3 + 5 x 2 + x + 2 f ( x ) = 5 x + x + 16
f ( x ) = sin( x ) cos( x )
2

Interval de incertitudine iniial


[-3;3] [-4;4] [-2;2] [-7;-3] [-3;4]

Valoare de minim
-0.1027 -0.1 -0.7854 -4.9112 0.3889

Minim
1.9491 15.95 -1.4142 -5.0917 -0.2086

f ( x ) = e cos( x ) 5 sin( x )
x

f ( x ) = x x cos( x )

Determinai minimul funciei, impunnd diferite precizii de calcul al acestuia. De asemenea, afiai graficul funciei obiectiv.

30

Lucrare de laborator

Cutarea liniar utiliznd derivata funciei obiectiv

1. Scopul lucrrii
Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda cutrii liniare utiliznd derivata funciei s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur variabil.

2. Prezentarea lucrrii
Considerm funcia f ( x) : [a, b] i acest interval [a,b] mrginit, pe care funcia este convex i deci, derivabil. Dac n cadrul iteraiei k, iniializat pe un interval de incertitudine [ak ,bk], alegem un punct de lucru

a k < k < bk

i dac evalum derivata

f | ( k ) , atunci putem avea

urmtoarele situaii: i)

f | (k ) = 0 . Prin urmare, k este un punct de staionaritate i

reprezint soluia de minim (deoarece f (x) este convex);


ii) f | (k ) > 0 . n aceste condiii, pentru > k , f | ( k ) ( k ) > 0 i cum funcia este convex, rezult: f ( ) f (k ), > k . Aadar, intervalul de incertitudine rezultat va fi n stnga lui k , deci: [ak+1 , bk+1] = [ak , k ]; iii) f | (k ) < 0 i f | ( k ) ( k ) > 0 pentru < k i prin urmare,
f ( ) f ( k ), < k . Noul interval de incertitudine va fi n dreapta lui k :
[ak+1 , bk+1] = [ k , bk].
31

Aadar, n funcie de rezultatul comparaiei, intervalul de incertitudine dup iteraia k va fi [ak , k ] sau [ k , bk]. Alegerea valorii de test k se va face astfel nct s minimizm incertitudinea final:

optim = arg min{max(bk k , k a k )}. k


Soluia problemei de tip minimax este evident:

(1)

optim = k

a k + bk . 2

(2)

Valoarea de test se alege la jumtatea intervalului de incertitudine [ak ,bk] i indiferent de rezultatul comparaiei,
bk +1 a k +1 1 = . bk a k 2

(3)

Metoda impune imediat algoritmul cu njumtirea intervalului de cutare:


Etapa de iniializare. Fie [a1 , b1] intervalul de incertitudine iniial i

lungimea admis pentru intervalul de incertitudine final. Presupunem cunoscute att funcia f ( x) : [a1 , b1 ] , ct i derivata acesteia. Stabilim cea mai mic valoare n pentru care la etapa de baz.
Etapa de baz. Pasul 1. Considerm k =
1 1 , facem k = 1 i trecem = n b1 a1 2

a k + bk i evalum f | (k ) . 2

Dac f | (k ) = 0 , algoritmul se oprete i k reprezint soluia de optim. Dac f | ( k ) > 0 trecem la pasul 2, iar dac f | (k ) < 0 trecem la pasul 3.
Pasul 2. Facem a k +1 = a k , bk +1 = k i trecem la pasul 4.
32

Pasul 3. Facem a k +1 = k , bk +1 = bk i trecem la pasul 4. Pasul 4. Iterm k k + 1 i relum de la pasul 1.

n exemplul urmtor vom analiza concret comportarea algoritmului de njumtire a intervalului de cutare utiliznd derivata funciei obiectiv (n acest sens, vom considera cunoscut forma derivatei).
Exemplul 5.1. Funcia obiectiv este f ( x) = x 2 + x + 1 , iar derivata se obine

elementar n forma:

df = 2 x + 1 . n cadrul subrutinelor de evaluare a dx

funciei obiectiv i a derivatei acesteia s-a inserat o pauz de o secund pentru a simula o complexitate de calcul mai mare. Pentru exemplificare s-a utilizat subrutina deriv1 setat astfel:

Intervalul de incertitudine iniial [a = 3, b = 3]; Precizia de calcul = 0.01 .

Rezultatele obinute prin rularea programului sunt prezentate n tabelul 5.1:

k
1 2 3 4 5 6 7 8 9 10 11

ak
-3.0000 -3.0000 -1.5000 -0.7500 -0.7500 -0.5625 -0.5625 -0.5156 -0.5156 -0.5039 -0.5039

bk
3.0000 0 0 0 -0.3750 -0.3750 -0.4688 -0.4688 -0.4922 -0.4922 -0.4980

bk a k
6.0000 3.0000 1.5000 0.7500 0.3750 0.1875 0.0938 0.0469 0.0234 0.0117 0.0059

(a k + bk ) / 2
0 -1.5000 -0.7500 -0.3750 -0.5625 -0.4688 -0.5156 -0.4922 -0.5039 -0.4980 -0.5009

f (c k )
1.0000 -2.0000 -0.5000 0.2500 -0.1250 0.0625 -0.0313 0.0156 -0.0078 0.0039 -0.0018

f (c k )
1.0000 1.7500 0.8125 0.7656 0.7539 0.7510 0.7502 0.7501 0.7500 0.7500 0.7500

Tabelul 5.1. Rezultatele obinute prin simulare


33

Prima coloan indic tactul de lucru, iar urmtoarele dou indic capetele intervalului de incertitudine pe tactul curent. Cea de a patra coloan indic lungimea intervalului lungimea intervalului de incertitudine pe tactul curent iar cea de a cincea indic valoarea de njumtire a tactului curent. n sfrit coloanele ase i apte fixeaz valorile pe care le ia derivata funciei obiectiv i funcia obiectiv la jumtatea intervalului de incertitudine pe tact curent. Din tabel reiese c minimul se determin n 11 tacte, cu un interval de incertitudine final [a11 = 0.5039, b11 = 0.498 ], eroarea de poziionare fiind egal cu = 0.0059. Convergena ctre intervalul de incertitudine final poate fi urmrit n figura urmtoare:

Figura 9. Convergena algoritmului

Pentru o evaluare comparativ a timpului de calcul n dependen de precizia de calcul impus a fost rulat subrutina pentru acelai interval de incertitudine iniial dar precizii de calcul diferite, de forma

= 10 k , k 1,4 . Rezultatele obinute sunt prezentate n tabelul 5.2:


34

k timp

1.0000 12.2480

2.0000 16.0330

3.0000 21.0400

4.0000 26.0480

Tabelul 5.2. Variaia timpului n funcie de precizie

3. Chestiuni de studiat

Se consider ca funcie obiectiv una dintre funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. Crt. 1 2 3 4 5 6 7 8 Funcie
f ( x ) = 2 x 2 x sin( x ) + 1 f ( x ) = 7 x 2 + x + 31
f ( x ) = cos( x ) 2 sin( x )

Interval de incertitudine iniial


[-3;3] [-4;4] [-1;4] [-4;1] [-3;4] [-4;4] [-3;5] [1;5]

Valoare de minim
0 -0.0714 2.0345 -0.92 -0.0943 0 3.4368 -3

Minim
1 30.9643 -2.2361 -1.3381 10.9519 2 6.434 -4.4134

f (x) = e
4

3 x

cos( x ) sin( x )
3 2

f ( x ) = x 2 x + 5 x + x + 11 f ( x ) = x 2 x sin( x ) + 2 f ( x ) = x (1 cos( x )) sin( x ) f ( x ) = x (1 sin( x )) + cos( x )

Determinai minimul funciei, impunnd diferite precizii de calcul al acestuia. De asemenea, afiai graficul funciei obiectiv.

35

Lucrare de laborator

Metoda cutrii ciclice dup axele de coordonate

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda cutrii ciclice dup axele de coordonate s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

Metoda pe care o prezentm n continuare este o metod rudimentar (metoda mai este cunoscut sub denumirea de metod naiv), n care se exploateaz succesiv posibilitile de minimizare pe direcia axelor de coordonate Ox1 , Ox2 ,.......Oxn , urmnd ca procedura s fie reluat ciclic pn la atingerea (eventual) a unei zone de incertitudine final admis. n figura 3.1. este dat o reprezentarea geometric a evoluiei procesului de cutare prin metoda propus. n planul variabilelor x1Ox 2 , curbele trasate reprezint aa numitele curbe de izonivel care sunt grafice ale locului geometric din plan ce satisfac urmtoarea condiie:

f ( x1 , x 2 ) = const. (Din pcate, o astfel de reprezentare grafic este posibil


numai pentru funcii de dou variabile). Punctul de iniializare a cutrii se consider
y1 = f ( x11 , x 21 ) .

Pstrnd neschimbat valoarea x 21 , urmrim o procedur de minimizare dup direcia O x1 pn la atingerea minimului parial ( x12 , x 21 ) . n continuare, pstrm valoarea x1 = x12 procednd la o minimizare pe direcia
36

O x2 , pn la atingerea valorii y 2 = f ( x 21 , x 22 ) . n acest moment am ncheiat


procedura de cutare pe un ciclu (am epuizat direciile oferite de axele de coordonate) i relum ciclul de cutare din punctul y 2 .
x2
C3<C2 C4<C3 C1 C2<C1

y 2 = f ( x21 , x22 )

y1 = f ( x11 , x21 )

( x12 , x21 )

0
Figura 10. Metoda cutrii ciclice dup axele de coordonate

x1

Descrierea algoritmic a unei astfel de proceduri este urmtoarea:


Etapa de iniializare. Se impune > 0 condiia de STOP (incertitudinea

final). Se aleg direciile de cutare d1 = e1 , d 2 = e2 , ... d n = en , unde ei reprezint baza canonic ortogonal pentru n . Se impune iniializarea lui
x1 i se consider y1 = x1 i k = j = 1 i se trece la etapa de baz.

Etapa de baz. Pasul 1. Se determin

j = arg min f ( y j + d j )
1

i se calculeaz y j +1 = y j + j d j . Dac j < n atunci j j + 1 i se reia pasul 1. Dac j = n, se trece la pasul 2.

Pasul 2. Considerm x k +1 = y n +1 . Dac || x k +1 x k || < , atunci algoritmul


se oprete. n caz contrar, y1 = x n +1 , j = 1 i k k + 1 i se reia pasul 1.
37

Observaii
Pentru o astfel de procedur, direciile de cutare sunt dictate de modul de prezentare a funciei obiectiv. Oricare schimbare a axelor de coordonate (rotaii, translaii) care nu schimb efectiv minimul funciei i nici complexitatea, poate determina o cretere sau o scdere a eficienei metodei propuse (acest rezultat este exploatat n metoda cutrii ciclice cu pas accelerat ce urmeaz a fi prezentat). Prezentm n continuare modul de utilizare a acestei proceduri pentru minimizare funciei:
3 f ( x1 , x2 ) = x13 + x2 3 x1 x2 .

pornind de la un punct de iniializare x0 = [7,7] . pentru o precizie = 0.01.


T

8 6 4 2 x2 0 -2 -4 -6 -8 -8

-6

-4

-2

0 x1

Figura 11. Curbele de izonivel pentru funcia prezentat


38

Aplicnd algoritmul prezentat materializat n subrutina coord.m, obinem urmtoarele rezultate:


y = 1.0009 1.0005 A = Columns 1 through 11 7.0000 1.0627 2.6458 2.6458 1.2754 1.2754 1.0627

1.0153

1.0153

1.0038

1.0038 1.1293 1.1293

7.0000 1.0309

7.0000

1.6266

1.6266

1.0309

1.0076

1.0076

1.0019

Columns 12 through 13 1.0009 1.0019 1.0009 1.0005

n figura 11 este prezentat graficul de evoluie n procesul de cutare.

3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Punct Punct de Valoare de de minim minim iniializare

Nr. Crt 1. 2. 3. 4. 5.

Funcia
2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

[ 1, 1] [ 1, 1]
[3, 4]

[ 2, 1] [5, 0.5]
[1,1]

-6 7.5 0 0 0

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

( x1 1)2 + 100 ( x1 x2 )2
5 ( x1 3) + ( x2 5 )
2 2

[0, 0]

[3,5]

2 2 x1 x1 x2 + x2

[1, 2]
39

[0, 0]

6. 7. 8. 9. 10. 11. 12. 13. 14.

2 2 9 x1 + 16 x2 90 x1 128 x2
2 2 2 x1 + 2 x2 + 2 x1 x2 4 x1 6 x2

[0,3]
[1,1]

[5, 4]
1 4 3 , 3

-481

14 3

2 2 x1 x1 x2 + x2 2 x1 + x2
2 5 x1 + 4 x1 x2 + x2 16 x1 12 x2

[3,5]
[1,1]

[1, 0]
[ 4,14]

-1 -152 -23 -1.25 0 0 0

2 2 2 x1 + 2 x2 + x1 x2 11x1 8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2

[ 3, 5]
[1,1]

[ 2,3]
3 1, 2

2 2 x1 + x2 + x1 x2 2 2 x1 + 16 x2

[1,1] [ 2, 2]
2

[0, 0] [0, 0] [1,1]

(1 x1 )

+ ( x1 x2 )

[ 5, 8]

a) S se traseze graficul funciei considerate mpreun cu curbele de

izonivel.
b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

40

Lucrare de laborator

Metoda cutrii ciclice cu pas accelerat

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda cutrii ciclice dup axele de coordonate cu pas accelerat s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

mbuntirea procesului de cutare poate fi fcut intercalnd ntre dou etape de cutare ciclic dup axele de coordonate, un proces de cutare pe o direcie impus de soluiile finale n cadrul ciclurilor amintite: x k i x2 y
x2 x3

x k +1 cu forma d k = x k +1 x k . y| n figura 12, pentru o funcie obiectiv ipotetic, sunt prezentate primele dou cicluri de cutare ntr-un algoritm cu pas accelerat. x1 Cutarea se lanseaz n

x1

0
Figura 12. Un ciclu de cutare

x1 i dup evalurile minimului n lungul direciilor Ox1 i Ox2 , obinem punctul x 2 . Urmeaz un pas accelerat; n fapt, un proces de minimizare pe direcia d1 = x 2 x1 care ofer ca soluie un punct y. Acest punct constituie punctul de reiniializare a unui nou procedeu de cutare ciclic dup axele
41

de coordonate care stabilete soluia x3 . n continuare, intercalm un nou pas accelerat pe direcia d 2 = x3 x 2 i procedura continu pn la atingerea condiiei de STOP: || x k +1 x k || < . Prezentm n continuare algoritmic metoda propus:
Etapa de iniializare. Se impune > 0 condiia de ncheiere a procesului

de cutare i x1 n punctul de iniializare a cutrii. Considerm y1 = x1 i k = j = 1 i se trece la etapa de baz.


Etapa de baz. Pasul 1. Calculm

j = arg min f ( y j + d j )
1

i construim y j +1 = y j + j d j . Dac j < n , atunci j j + 1 i se reia pasul 1. Dac j = n, facem x k +1 = y n +1 . n condiia || x k +1 x k || < , soluia de optim este x k +1 . n caz contrar, trecem la pasul 2.
Pasul 2. Construim direcia de cutare d = x k +1 x k i determinm

* = arg min f ( y k +1 + d ) .
1

Impunem y1 = x k +1 + * d , j = 1 , k k + 1 i relum pasul 1. Algoritmul prezentat este cunoscut n literatura de specialitate ca algoritmul Hooke i Jeeves. n multe probleme de minimizare a unor funcii convexe, utilizarea metodei cutrii ciclice cu pas accelerat i dovedete eficiena oferind o aceeai precizie de determinare a minimului ntr-un numr de pai considerabil mai mic dect n cazul cutrii ciclice fr pas accelerat. Vom evidenia acest avantaj pe urmtorul exemplu.
42

Considerm funcia obiectiv ce urmeaz a fi modificat de forma: f ( x1 , x 2 ) = ( x1 3) 4 + ( x1 3 x 2 ) 2 . Pentru minimizarea funciei utilizm metoda cutrii ciclice cu pas accelerat implementat prin subrutina Matlab sub denumirea coord_acc. Pentru condiia iniial x1 = 10 , x 2 = 10 i o precizie e = 0.001 obinem soluia de minim:
x1 = 3.0032 , x 2 = 1.0011 .

Rezultatele comparative sunt prezentate n tabelul 7.1:


Cond iniiale Ctare ciclic Cutare ciclic Pas accelerat Cutare ciclic

10 10

5.3111 5.3111 3.8921 3.8921 3.0036 10 1.7704 1.7704 1.2973 1.0011

3.0032 3.0032 1.0011 1.0011

Tabelul 7.1. Rezultatele pentru exemplul considerat

Atingerea soluiei de minim se obine n opt iteraii n condiiile realizrii preciziei de calcul impuse. De remarcat este c n cazul unor condiii iniiale identice i pentru o aceeai precizie, convergena n punctul de minim se realizeaz n 113 iteraii n cazul n care utilizm metoda cutrii ciclice dup axele de coordonate. n figura 13 sunt prezentate evoluiile procesului de cutare pentru metoda cutrii ciclice cu pas accelerat (vezi figura a) i prin metoda cutrii ciclice dup axele de coordonate (vezi figura b). n continuare, vom analiza pe un exemplu concret modul n care precizia de calcul impus afecteaz timpii de calcul necesari asigurrii unei precizii impuse n cazul algoritmului de cutare ciclic cu pas accelerat.
43

11 10 9 8 7 x2 6 5 4 3 2 0 5 x1 10 Pas accelerat x2

11 10 9 8 7 6 5 4 3 2 0 5 x1 10

a) cutare ciclic cu pas accelerat

b) cutare ciclic dup axele de coordonate

Figura 13. Rezultatele metodei dihotomice

Considerm funcia (funcia Rosenbrock): f ( x1 , x 2 ) = 100 ( x 2 x12 ) 2 + (1 x1 ) 2 . i un punct de iniializare x1 = 10 , x 2 = 10 . Aplicm procedura de minimizare utiliznd metoda cutrii ciclice cu pas accelerat pentru o precizie de evaluare a punctului de minim de forma

= 10 k , k 1,2,3 i vom stabili timpii de calcul necesari pentru a asigura


precizia impus.
Precizia Cutare ciclic

= 0 .1

= 0.01

= 0.001

0.07sec. 0.451sec. 47.067sec.

Cutare cu pas accelerat 0.12sec. 0.311sec. 4.36sec


Tabelul 7.2. Rezultatele pentru exemplu
44

Rezultatele sunt prezentate n tabelul 7.2, n care au fost incluse i datele referitoare la durata de calcul necesar asigurrii aceleai precizii utiliznd metoda cutrii ciclice dup axele de coordonate.
50

40 T p d ca l [se im i e lcu c.]

30

20

10

2 Precizia impusa prin k.

Figura 14. Dependena timpului de calcul - precizie

n figura de mai sus sunt prezentate dependenele timpilor de calcul necesari asigurrii unei precizii impuse pentru cele dou metode de cutare analizate.
Observaii. O prim observaie care trebuie fcut este legat de

posibilitile de comparare a mai multor proceduri de cutare a minimului. n principiu metodele pot fi comparate pe baza a trei criterii: 1. Precizia metodei evaluat prin distana dintre valoarea minim a funciei obiectiv obinut prin aplicarea procedurii de cutare i valoarea de minim real sau prin distana dintre vectorul ce caracterizeaz punctul de minim obinut i vectorul ce caracterizeaz minimul real. 2. Numrul de evaluri numerice a funciei obiectiv (i a derivatei funciei obiectiv) necesar stabilirii punctului de minim. 3. Timpul de calcul necesar obinerii soluiei finale.
45

3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Nr. Crt 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Funcia
2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

Punct de Punct de Valoare de iniializare minim minim

[ 1, 1]
[ 1, 1] [3, 4]

[ 2, 1]
[5, 0.5] [1,1]

-6 7.5 0 0 0 -481

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

( x1 1)

+ 100 ( x1 x2 )
2 2

5 ( x1 3) + ( x2 5 )
2 2 x1 x1 x2 + x2

[0, 0]
[1, 2] [0,3] [1,1]

[3,5]
[0, 0] [5, 4]
1 4 3 , 3

2 9 x12 + 16 x2 90 x1 128 x2 2 2 2 x1 + 2 x2 + 2 x1 x2 4 x1 6 x2

14 3

2 2 x1 x1 x2 + x2 2 x1 + x2 2 5 x1 + 4 x1 x2 + x2 16 x1 12 x2 2 2 2 x1 + 2 x2 + x1 x2 11x1 8 x2 2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2
2 2 x1 + x2 + x1 x2

[3,5] [1,1]

[1, 0] [ 4,14] [ 2,3]


3 1, 2

-1 -152 -23 -1.25 0 0 0

[ 3, 5]
[1,1]
[1,1] [ 2, 2]

2 2 x1 + 16 x2

[0, 0] [0, 0]

(1 x1 )

+ ( x1 x2 )

[ 5, 8]

[1,1]

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.
46

Lucrare de laborator

Algoritmul Rosenbrock

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda Rosenbrock s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

n cadrul acestui algoritm, direciile de cutare d 1 , d 2 , d n care constituie un sistem de vectori ortogonali, liniar independeni se modific dup fiecare ciclu de lucru. n general, procedura de lucru se lanseaz pe direciile ( d 1 , d 2 , d n ) fixate de axele de coordonate: d1 = (1,0,0,...,0) T , d 2 = (0,1,0,...,0) T ,...., d n = (0,0,...0,1) T . Efectund un ciclu de cutare complet pe aceste direcii, obinem:

j = arg min f ( x j + d j ) i x j +1 = x j + j d j .
1

Dup ncheierea unui ciclu de cutare (toate direciile sunt


* * exploatate), se determin noi direcii de cutare: d1* , d 2 ,..., d n astfel nct s

alctuiasc un sistem de vectori ortogonali, liniar independeni i care pentru cazurile i = 0 , s ndeplineasc: d i* = d i . Procedura de calcul este procedura de ortogonalizare Gram-Schmidt aplicat astfel:
47

d j daca j = 0 aj = n i d i daca j 0 i= j

a j daca j = 1 j 1 , bj = a j (a T d i* ) d i* j i =1

daca j 2

d* = j

bj || b j ||

(1)

Procedura de mai sus se poate scrie sub forma unui algoritm astfel:
Etapa de iniializare. Se consider dat > 0 pentru evaluarea condiiei de

STOP, x1 n punctul de iniializare al cutrii, sistemul de vectori d1 , d 2 , d n (de obicei, axele de coordonate) care iniiaz procesul de cutare. Cosiderm y1 = x1 i k = j = 1 i se trece la etapa de baz.
Etapa de baz. Pasul 1. Determinm

j = arg min f ( y j + d j ) i y j +1 = y j + j d j .
1

Dac j < n atunci j j + 1 i se reia pasul 1. n caz contrar, trecem la pasul 2.


Pasul 2. Considerm x k +1 = y n +1 . Dac || x k +1 x k || < , algoritmul se

oprete i x k +1 este soluia de optim. Altfel, y1 = x k +1 , j = 1 , k k + 1 i trecem la pasul 3.


* * Pasul 3. Se construiesc conform (1) noile direcii de cutare d1* , d 2 ,..., d n . * * Facem d 1* = d1 , d 2 = d 2 ,..., d n = d n i relum de la pasul 1.

Algoritmul Rosenbrock, dei mai complex n elaborare, are o eficien sporit fa de algoritmii anterior prezentai n condiiile n care restriciile impuse pentru asigurarea convergenei rmn aceleai.
48

Pentru prezentarea metodei Rosenbrock pentru cteva cazuri concrete legate de minimizarea funciilor de mai multe variabile n absena restriciilor a fost implementat algoritmul n subrutina Matlab rosenbrock. Se consider funcia f ( x1 , x 2 ) : R 2 R de forma: f ( x1 , x 2 ) = ( x1 3) + ( x1 3 x 2 )
4 2

pentru care, considernd apriori c exist un punct de minim (unic), se impune determinarea acestuia utiliznd algoritmul Rosenbrock. Utiliznd subrutina precizat anterior (rosenbrock.m) pentru, o iniializare arbitrar x1 = 3 , x 2 = 2 i diverse valori ale lui (condiia de STOP) a fost testat algoritmul datele rezultate fiind prezentate n tabelul 8.1:
Precizia Soluia de optim
x1 = 3.0003 x 2 = 1.0001

Valoare funciei obiectiv


3.6748 10 12

Numr de iteraii

= 0 .1

9 9 9 11

= 0.01
= 0.001

x1 = 3.0003 x 2 = 1.0001 x1 = 3.0003 x 2 = 1.0001

3.6748 10 12
3.6748 10 12
7.7094 10 11

= 0.0001

x1 = 3.0002 x 2 = 1.0001

Tabelul 8.1. Rezultatele pentru algoritmul Rosenbrock

Se observ c pentru o precizie bun convergena este asigurat ntrun numr relativ mic de pai iar valorile de optim obinute prin rularea programului sunt foarte apropiate de soluia real (aproape evident c soluia real a problemei este x1 = 3 , x 2 = 1 cu un optim al funciei obiectiv f opt = 0 ).
49

Pentru condiiile iniiale specificate evoluia n procesul de cutare (pentru condiia de stop = 0.0001 ) este prezentat n figura 15, mpreun cu curbele de izonivel asociate funciei considerate:
4 100 3 200 200 2 10 0.1 1 0.1 1 1 x2 10 10 1

0 100 -1 100

100 -2 -1 0 1 2 x1 3 4 5

20 20 6

Figura 15. Curbele de izonivel i evoluia procesului de cutare

Vom prezenta n continuare un exemplu de minimizare a unei funcii de trei variabile. ntr-un astfel de caz nu mai exist posibilitatea aprecierii grafice a evoluiei ctre punctul de minim (presupunnd algoritmul convergent); n schimb putem pune n eviden mult mai corect comportarea algoritmilor n cazul unor probleme de mai mare complexitate. Se consider f ( x1 , x 2 , x3 ) : R 3 R de forma: f ( x1 , x 2 , x3 ) = ( x1 2 x 2 ) 2 + ( x1 x3 ) 2 + ( x1 + x 2 3) 2 . Minimul funciei este asigurat de punctul de coordonate x1 = 2 , x 2 = 1, x3 = 2 la o valoare f min = 0.
50

Ne propunem determinarea minimului funciei utiliznd metoda


Rosenbrock. De asemenea se impune o comparaie a acestei metode cu

celelalte metode de cutare a minimului fr ajutorul derivatelor studiate pn n acest moment:


Metoda Precizia Soluia de Valoarea funciei Numr de optim obiectiv iteraii
x1 = 2.0279 x 2 = 1.0056 x3 = 2.0279

= 0.1

0.0014

37

x1 = 2.0044

= 0.01

x 2 = 1.0009 x3 = 2.0045
x1 = 2.0003

3.5612e-5

43

= 0.001
Cutare

x 2 = 1.0001 x3 = 2.0003 x1 = 2.0001

1.5051e-7

52

ciclic.

= 0.0001

x 2 = 1.0000 x3 = 2.0001 x1 = 1.9998

9.0768e-9

58

= 0 .1

x 2 = 1.0000 x3 = 1.9998 x1 = 1.9998

4.3982e-11

11

= 0.01

x 2 = 1.0000 x3 = 1.9998 x1 = 1.9998 x 2 = 1.0000 x3 = 1.9998


x1 = 2.0000

4.3981e-11

11

= 0.001
pas accelerat Cutare cu

4.3981e-11

11

= 0.0001

x 2 = 1.0000 x3 = 2.0000
51

2.1523e-11

15

x1 = 2.0000

= 0 .1

x 2 = 1.0000 x3 = 2.0000

1.3081e-11

13

x1 = 2.0000

= 0.01

x 2 = 1.0000 x3 = 2.0000 x1 = 2.0000

1.3081e-11

13

= 0.001
Rosenbrock.

x 2 = 1.0000 x3 = 2.0000 x1 = 2.0000 x 2 = 1.0000 x3 = 2.0000

1.3081e-11

13

= 0.0001

1.3081e-11

13

Tabelul 8.2. Comparaia celor 3 metode utilizate

Pentru o analiz complet am considerat o iniializare (altfel arbitrar) xi = 1000 pt. i = 1,2,3 i am rulat coord.m, coord_acc.m,

rosenbrock.m pentru diverse valori ale condiiei de STOP. Rezultatele obinute sunt prezentate n tabelul 8.2.
Observaii:

Prezentarea rezultatelor trunchiate determin n unele cazuri indicarea unor soluii identice pentru precizii diferite. ntr-o astfel de situaie observm c valorile funciei obiectiv pentru o aceeai soluie (aparent) difer. Este posibil ns ca impunnd o precizie relativ slab soluia obinut s cad ntr-un punct care asigur o precizie mult mai bun dect cea impus. n acest caz soluiile pentru dou precizii distincte s fie identice iar valorile funciei obiectiv sunt de asemenea identice.
52

Metoda cutrii ciclice dup axele de coordonate este cea mai imprecis i totodat cea mai ineficient. Dei bazat pe o construcie simpl metoda cutrii ciclice cu pas accelerat se dovedete aproape la fel de precis i eficient ca metoda Rosenbrock.

Sub toate aspectele, metoda Rosenbrock este cea mai eficient metod din clasa celor analizate.

3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Nr. Crt. Punct de iniializare Punct de minim Valoare de minim

Funcia

1. 2.

2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

[ 1, 1]

[ 2, 1]

-6 7.5

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

[ 1, 1] [3, 4] [0, 0] [1, 2] [0,3]


[1,1]

[5, 0.5] [1,1] [3,5] [0, 0] [5, 4]


1 4 3 , 3

3. 4. 5. 6.

( x1 1)

+ 100 ( x1 x2 )
2 2

0 0 0 -481

5 ( x1 3) + ( x2 5 )
2 2 x1 x1 x2 + x2

2 2 9 x1 + 16 x2 90 x1 128 x2
2 2 2 x1 + 2 x2 + 2 x1 x2

7.

4 x1 6 x2
53

14 3

8.

2 2 x1 x1 x2 + x2 2 x1 + x2 2 5 x1 + 4 x1 x2 + x2 16 x1

[3,5]
[1,1]

[1, 0]
[ 4,14]

-1

9.

12 x2
2 2 2 x1 + 2 x2 + x1 x2 11 x1

-152

10.

8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2

[ 3, 5]
[1,1]

[ 2,3]
3 1, 2

-23

11. 12. 13. 14.

-1.25 0 0 0

2 2 x1 + x2 + x1 x2
2 2 x1 + 16 x2

[1,1]
[ 2, 2]
2

[0, 0]
[0, 0]

(1 x1 )

+ ( x1 x2 )

[ 5, 8]

[1,1]

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

54

Lucrare de laborator

Tehnici de gradient

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda celei mai rapide coborri s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

Considerm funcia obiectiv x n (f(x) este de clasa C1 pe ).

f : n 1 , difereniabil pentru

Definiie. Fie un punct x k n . Spunem c direcia d constituie direcie de coborre pentru f(x) n punctul x k dac () > 0 (orict de mic) astfel c:
f ( xk + d ) < f ( xk ), (0, ) .

n particular, definiia prezentat, fixeaz condiia de coborre n forma: lim


0 >0

f ( xk + d ) f ( xk )

= T f ( xk ) d < 0 .

(1)

Atragem atenia c modul de definire i automat, condiia de test (1), au un caracter local deoarece sunt asociate unui punct de lucru x k . Conform condiiilor fixate privind funcia obiectiv, f ( x + h) f ( x) = h T f ( x) + O(h, x) , cu lim O(h, x) h
h 0 1

(2)

= 0 . Dac f ( x) 0 atunci pentru h suficient de

mic, difereniala funciei f(x) poate fi scris n forma:


55

df ( x) = T f ( x) h . Conform inegalitii Cauchy-Bunyakovski: f ( x ) h T f ( x ) h f ( x ) h .

(3)

(4)

Pentru f ( x) 0 , partea dreapt a inegalitii (4) se transform n egalitate numai dac h = f (x) cu = const. > 0 . Pentru f ( x) 0 , partea stng a inegalitii se transform n egalitate numai dac

h = f (x) cu = const. > 0 . Prin urmare, cea mai rapid cretere se


obine pentru evoluia pe direcia gradientului (ntr-o vecintate a lui x n ). Pentru asigurarea celei mai rapide descreteri ntr-o vecintate a lui x n , evoluia trebuie s se desfoare pe direcia de antigradient. Aceast proprietate a direciei de antigradient, dei cum remarcam, are un caracter local, este deosebit de important i st la baza multor proceduri de minimizare a funciilor n absena restriciilor. Una dintre aceste metode, cunoscut sub denumirea de metoda de gradient, va fi prezentat n cele ce urmeaz. Se lanseaz problema pentru o iniializare x1 n . Ca i n cazul algoritmilor anterior prezentai, nu exist reete pentru alegerea punctului iniial de lucru. Dac pe considerente ce in mai mult de natura procesului analizat, exist o ncadrare zonal pentru punctul de minim, este indicat ca iniializarea s se fac ct mai aproape de punctul de minim. Considernd c punctul de iniializare a cutrii a fost fixat, procedura de gradient impune construcia irului {x k } pe baza dependenei recursive: x k +1 = x k k f ( x k ) , k > 0, k = 1,2,... (5)

n relaia (5), k reprezint lungimea pasului (sau mai simplu, pasul) metodei de gradient. Dac f ( x) 0 , pasul k trebuie stabilit astfel nct f ( x k +1 ) f ( x k ) < 0 . n baza relaiei (2), putem evalua
56

f ( x k +1 ) f ( x k ) = k T f ( x k ) f ( x k ) + O( k ) = = k f ( x k ) + O ( k ) < 0

(6)

pentru k suficient de mic. Dac f ( x) = 0 , x k reprezint un punct de staionaritate. n ipoteza c f(x) este o funcie convex, i punctul de staionaritate este punct de minim. (n caz general, este necesar aprecierea comportrii funciei ntr-o vecintate a lui x k , pentru a ne pronuna dac acesta constituie sau nu un punct de minim). Pentru alegerea lungimii pasului k sunt elaborate diverse metode, genernd la rndul lor diveri algoritmi de cutare a minimului. Vom prezenta cteva dintre principalele metode utilizate n practic. 1) Considerm n cadrul iteraiei k, punctul de iniializare a cutrii x k n i f ( x k ) direcia de cutare (direcia de anti gradient). Considerm funcia de o variabil de forma: g k ( ) = f ( x k f ( x k )),

(7)

Lungimea pasului de cutare se alege din condiia:


* g k ( k ) = inf f ( x k f ( x k )) = g k ,

k > 0

(8)

Metoda de gradient n care lungimea pasului de cutare se face pe baza relaiei (8) poart numele de metoda celei mai rapide
coborri.

Atragem atenia asupra faptului c n general, stabilirea lui k pe baza relaiei (8) nu este ntotdeauna posibil. Mai mult, este posibil ca limita inferioar pentru (8) s nu fie accesibil pentru diverse valori ale indicelui k. n practic, k se determin ca o valoare care aproximeaz suficient de bine condiia (8). n acest sens, este posibil ca valoarea k s se determine din condiia:
57

* * g k g k ( k ) g k + k , k 0,

k =0

= <

(9)

sau
* * g k g k ( k ) (1 k ) g k (0) + k g k , 0 < k 1 .

(10)

Mrimile k , k din (9) i (10) caracterizeaz eroarea fa de condiia (8); astfel nct, cu ct k se apropie mai mult de zero, iar

k de unitate, cu att eroarea de evaluare n raport cu (8) este mai


mic. Trebuie remarcat c direcia de antigradient asigur o foarte bun evoluie doar n vecintatea punctului de lansare a procedurii de cutare. n aceste condiii, dac viteza de variaie a funciei este mare, atunci n punctul x k +1 , direcia de antigradient ( f ( xk +1 ) ) poate diferi foarte mult de direcia precedent ( f ( x k ) ). Din acest motiv, stabilirea parametrului k nu impune asigurarea relaiei (8) cu o mare fidelitate. 2) n practic, de multe ori ne limitm n alegerea pasului k astfel nct s asigurm monotonia f ( x k +1 ) < f ( x k ) fr a cuta

optimizarea pasului de cutare. Astfel, pentru iteraia k: x k +1 = x k k f ( x k ) . (11)

n cadrul fiecrei iteraii, se evalueaz modul n care evolueaz criteriul i n funcie de aceast evoluie se modific pasul astfel: dac f ( x k +1 ) < f ( x k ) , evoluia este corespunztoare i se ncearc modificarea n sens cresctor n ideea accelerrii convergenei (de exemplu, k +1 = 1.5 k );
58

dac f ( x k +1 ) = f ( x k ) nseamn c lungimea pasului de cutare este prea mic nct diferenele nu sunt sesizabile i ca i n cazul precedent, mrim lungimea pasului de cutare;

n sfrit, dac

f ( x k +1 ) > f ( x k ) , lungimea pasului de

cutare este prea mare. Aproximarea liniar care st la baza tehnicilor de gradient nu este corespunztoare i ca atare, lungimea pasului trebuie diminuat ( k +1 = 0.5 k ) i rejectnd valoarea obinut x k +1 , relum iteraia din x k . 3) Dac funcia obiectiv f : n 1 este de clas C1 i dac f ( x k ) satisface condiia Lipschitz: f (u ) f (v) < L u v , u , v n , (12)

n care constanta L este cunoscut, atunci lungimea pasului de cutare n tehnica de gradient poate fi aleas de forma: 0 < 0 k 2 , L + 2 (13)

n care 0 , reprezint doi parametri de metod. Dac alegem

0 = 1 / L i = L / 2 , obinem metoda de gradient cu o lungime a


pasului de cutare k = 1 / L = const. Dac constanta L este mare, lungimea pasului va fi mic i convergena (astfel asigurat) este extrem de lent. Abordarea teoretic a problemei convergenei algoritmilor de tip gradient se pornete de la premiza organizrii procedurii iterative n forma: x k +1 = x k k f ( x k ), k > 0 ,
59

(14)

procedur nelimitat i care conduce la un ir { x k }. n realitate, cum vom vedea ulterior, algoritmul se oprete n condiia de STOP: f ( x k ) < , cu apriori impus. Considernd c succesiunea de valori formeaz un ir { x k }, problema care se pune este dac acest ir este convergent ctre soluia de minim a problemei iniiale, deci dac se asigur convergena ctre mulimea punctelor de minim:
X * = {x n , f ( x) = f * = infn f ( x)}
x

(15)

sau altfel spus, dac sunt ndeplinite condiiile:


k

lim f ( xk ) = f * ,

lim ( xk , X * ) = 0 .

(16)

Asigurarea convergenei impune pe lng condiiile impuse prin formularea problemei ( f : n 1 , de clas C1) o serie de restricii suplimentare destul de dure i foarte greu de evaluat. Fie f * = infn f ( x) > ,
x

f ( x) : n de clas C1 i pentru care

gradientul funciei satisface condiia Lipschitz f ( x) f ( y ) < L x y , x, y n . n aceste condiii, irul { x k } construit iterativ n forma: x k +1 = x k k f ( x k ) , k > 0 , pentru care lungimea pailor k respect:
* * g k g k ( k ) g k + k , k 0,

(17)

k =0

= < ,

(18)

unde g k ( ) = f ( x k f ( x k )) pentru orice iniializare x1 n , asigur

lim f ( x k ) = 0 .
k

60

n plus, dac f : n 1 este convex i dac f * reprezint valoarea de minim atunci pentru { k } = O(k 2 ) : 0 f ( x k ) f * c0 k 1 , c0 = const. > 0 . a algoritmului i validarea soluiei va fi f ( x k ) < . n continuare, este prezentat un algoritm de tip gradient n varianta celei mai rapide coborri:
Etapa de iniializare. Fie

(19)

Dac considerm c aceste restricii sunt satisfcute, condiia de oprire

> 0 - condiia de STOP. Alegem x1 n

condiia de iniializare, k = 1 i trecem la etapa de baz.


Etapa de baz. Dac f ( x k ) < , algoritmul se oprete i x k reprezint

soluia de minim. Dac nu, d k = f ( x k ) i se determin

k = arg min f ( x k f ( x k )) .
>0

Construim x k +1 = x k + k f ( x k ) , k k + 1 i se reia etapa de baz.


Interpretare geometric. Putem da o interpretare geometric intuitiv

legat de construcia iterativ a soluiei, utiliznd algoritmul celei mai rapide coborri. Astfel, punctul x k +1 determinat n condiiile: x k +1 = x k k f ( x k ) i k = arg min f ( x k f ( x k ))
>0

se afl pe dreapta Lk = {x | x = x k k f ( x k )} n punctul de tangen a acestei drepte cu conturul de izonivel

k +1 = x n | f ( x) = f ( x k +1 )

i dreapta Lk este perpendicular pe conturul de izonivel

k = x n | f ( x) = f ( x k ) .
61

Vom considera o parametrizare a curbei de izonivel k de forma x = x(t ) pentru a t b i deci f ( x(t )) = f ( x k ) = const. pentru a t b , iar x(t 0 ) = x k . n aceste condiii: d f ( x(t )) = x T (t ) f ( x(t )) = 0 . dt n particular, pentru t = t 0 obinem: x T (t 0 ) f ( x k ) = 0 (21) (20)

i n felul acesta rezult c direcia de gradient (sau antigradient) este perpendicular pe k n punctul x k . Reamintim c k se determin cu condiia: g k ( k ) = T f ( x k ) f ( x k k f ( x)) = T f ( x k ) f ( x k +1 ) = 0 . (22) Prin urmare, direcia de gradient f ( x k ) i f ( x k +1 ) sunt

perpendiculare i cum f ( x k +1 ) este perpendicular pe k +1 , rezult c f ( x k ) este tangent curbei k +1 . Considerentele geometrice prezentate sunt aplicate pe curbele de izonivel din figura 1.a i 1.b:

Figura 16. Interpretarea geometric a construciei iterative


62

Este evident o comportare mai bun pentru cazul 3.8.a.) n care curbele de izonivel sunt apropiate unor contururi circulare. Pentru situaia prezentat n 16.b.), n care apar contururi alungite ce semnific faptul c o serie de variabile modific mai puternic criteriul dect celelalte, comportarea implic un zig-zag prelungit n care eficiena cutrii este relativ mic. Pentru a ilustra comportarea algoritmului celei mai rapide coborri vom prezenta n continuare cteva exemple. Considerm funcia f ( x1 , x 2 ) : R 2 : f ( x1 , x 2 ) = ( x1 3) 4 + ( x1 3 x 2 ) 2 continu i derivabil n R 2 . Ne propunem stabilirea minimului acestei funcii utiliznd tehnica de gradient. Evaluarea va fi fcut utiliznd metoda celei mai rapide coborri implementat Matlab prin subrutina grad1.m. Subrutina specificat a fost rulat pentru o iniializare x1 = 10 , x 2 = 10 pentru trei valori ale preciziei impuse = 10 k , k = 1,2,3. Rezultatele obinute n urma rulrii programelor precum i durata procesrii pentru fiecare caz n parte sunt prezentate sintetic n tabelul 9.1:
Precizia Soluia de minim
x1 = 3.2937 x 2 = 1.0983

Valoarea funciei obiectiv

Timp necesar Numr procesrii de iteraii

= 10 1 = 10 2
= 10 3 = 10 4

f min = 0.0074

0.321 sec. 0.861 sec.

11 27 81 335

x1 = 3.1325 x 2 = 1.0442

f min = 3.08 10 4 f min = 1.61 10 5 f min = 7.5433 10 7

x1 = 3.0634 x 2 = 1.0211
x1 = 3.0295 x 2 = 1.0098

1.883 sec 8.352 sec

Tabelul 9.1. Rezultatele utilizrii tehnicii de tip gradient


63

Pentru exemplul considerat se observ o bun comportare n privina corectei soluionri pentru o precizie convenabil. Astfel, pentru condiia de stop = 10 3 obinem soluia x1 = 3.0634 , x 2 = 1.0211 fa de soluia real
x1 = 3, x 2 = 1 . Creterea exagerat a preciziei conduce la o mbuntire

nesemnificativ a rezultatelor n dauna creterii semnificative a timpului de calcul. n acest sens, n figura 17 este prezentat graficul dependenei timpilor de calcul n funcie de precizia impus. Din grafic reiese clar c o precizie exagerat conduce la un timp de calcul extrem de mare.
9 8 7 timp procesare (sec.) 6 5 4 3 2 1 0 1 2 k 3 4

Figura 17. Dependena timp de calcul - precizie

n figura 18 este prezentat dependena distanei punctului de lucru n a k-a iteraie n raport cu punctul de minim real. Cum precizam i n prezentarea teoretic este evident c procedura aplicat are o eficien ridicat n faza iniial a algoritmului cnd distana n raport de minimul real este relativ mare. Rafinarea rezultatelor pentru asigurarea preciziei se face n pai mici care ns consum timp de calcul.
64

12

10

D ta tafa d m im is n ta e in

10

20

30

40 50 Numar de iteratii

60

70

80

90

Figura 18. Dependena punct de lucru - optim

Deficiena algoritmului anterior remarcat poate fi vizualizat i n graficul care reprezint evoluia procesului de cutare a punctului de minim. Pentru cazul analizat, n condiiile unei precizii = 10 3 , graficul evoluiei este prezentat n figura 19. Se observ cu uurin c dup circa patru iteraii cutarea se face ntr-un zig-zag prelungit extrem de ineficient.
10 9 8 7 6 x2 5 4 3 10 2 1 1 3 1 4 10 5 6 x1 7 8 9 10 500 100 100 500

1.5e+003

1e+003 1.5e+003

1e+003

Figura 19. Graficul evoluiei ctre optim


65

Considerm n continuare funcia de dou variabile:


3 2 f ( x1 , x 2 ) = 3 x13 x1 + x 2 3 x 2 1 ,

pentru care gradientul se evalueaz imediat n forma: 9 x12 1 f ( x1 , x 2 ) = 3 x2 6 x . 2 2 Curbele de izonivel pentru funcia considerat sunt prezentate n figura 20. Din alura acestor curbe rezult c funcia considerat nu este unimodal pentru x R n prezentnd mai multe puncte de extrem. Ne propunem stabilirea unui minim local utiliznd tehnica de gradient. Subrutina grad1.m implementeaz algoritmul de cutare propus.
3 -2 2.8 2.6 2.4 2.2 x2 2 1.8 1.6 1.4 1.2 1 -3 -0.6 -0.4 -0.2 0 0.2 x1 0.4 0.6 0.8 1 -4 -5 -5 Solutia de minim local -3

-2

Figura 20. Curbele de izonivel pentru funcia considerat


66

Considernd condiia iniial x1 = 0.8 , x 2 = 2.8 pentru o precizie

= 0.01 algoritmul este convergent n 4 iteraii in punctul de minim local


x1 = 0.3333 , x 2 = 2.0000 . Iniializarea impus a fixat punctul de plecare

ntr-o regiune a spaiului pentru care soluia obinut constituie un atractor stabil. O alt alegere a punctului de lansare a algoritmului putea s m conduc la o alt soluie de minim local sau s genereze blocarea algoritmului. n urmtorul exemplu, considerm drept funcie obiectiv funcia Rosenbrock: f ( x1 , x 2 ) = 100 x 2 x12 pentru care gradientul este de forma:
400 x1 x 2 x12 2(1 x1 ) f ( x1 , x 2 ) = 200 x 2 x12

) + (1 x )
2 1

Pentru o iniializare arbitrar x1 = 2 , x 2 = 2 i o precizie impus = 0.01 convergena este asigurat n 3929 iteraii. Soluia aproximat pentru problema propus este x1 = 0.99158 , x 2 = 0.98321 . Valoarea de minim obinut pentru funcia obiectiv este
f opt = 7.0973 10 5 . Evoluia n

procesul de cutare este prezentat n figura 21. Legat de problema prezentat, putem face cteva observaii de ordin general: Condiia de stop propus n tehnicile de gradient este cu mult mai relevant dect n cazul metodelor de cutare direct. n cazul problemei propuse, pentru o precizie de 1% obinem o soluie foarte apropiat de soluia real.
67

-0.5 0 0.5 1 x2 1.5 2 2.5 3 -2

-1.5

-1

-0.5

0 x1

0.5

1.5

Figura 21. Evoluia n procesul de cutare

Pentru obinerea unei soluii convenabile numrul de iteraii este n general cu mult mai mic n raport cu metodele de cutare direct.

n cazul funciei considerate evoluia n procesul de cutare urmeaz un traseu curios n cadrul creia exist puncte care aparent sunt situate la o distan mai mare fa de optim n raport cu punctul iniial.

Figura 22. Succesiunea punctelor de test


68

Acest lucru apare mai evident dac relum algoritmul propus pentru o iniializare x1 = 5 , x 2 = 5 . Obinem o aproximare a soluiei de optim x1 = 1.0007 , x 2 = 1.0013 n 11320 de iteraii la o valoare a funciei obiectiv f opt = 4.3060 10 7. Succesiunea punctelor de test este prezentat n figura 22.
3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Nr. Crt. Punct de iniializare Punct de minim Valoare de minim

Funcia

1. 2. 3. 4. 5. 6. 7. 8. 9.

2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

[ 1, 1]

[ 2, 1]

-6 7.5 0 0 0 -481

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

[ 1, 1]
[3, 4] [0, 0] [1, 2] [0,3]

[5, 0.5]
[1,1] [3,5] [0, 0] [5, 4]
1 4 3 , 3

( x1 1)2 + 100 ( x1 x2 )2
5 ( x1 3) + ( x2 5 )
2 2 2 x1 x1 x2 + x2 2 2 9 x1 + 16 x2 90 x1 128 x2 2

2 2 2 x1 + 2 x2 + 2 x1 x2

4 x1 6 x2
2 2 x1 x1 x2 + x2 2 x1 + x2 2 5 x1 + 4 x1 x2 + x2 16 x1

[1,1] [3,5]
[1,1]

14 3

[1, 0]
[ 4,14]

-1 -152

12 x2
69

10.

2 2 2 x1 + 2 x2 + x1 x2 11 x1

8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2 2 2 x1 + x2 + x1 x2
2 2 x1 + 16 x2

[ 3, 5]
[1,1]

[ 2,3]
3 1, 2

-23

11. 12. 13. 14.

-1.25 0 0 0

[1,1]
[ 2, 2]
2

[0, 0]
[0, 0]

(1 x1 )

+ ( x1 x2 )

[ 5, 8]

[1,1]

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

70

Lucrare de laborator 10
Metoda Newton

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda Newton s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de mai multe variabile.
2. Prezentarea lucrrii

n lucrrile precedente am prezentat metode de ordinul nti cum mai sunt cunoscute metode de minimizare a funciilor de mai multe variabile care utilizeaz numai derivate pariale de ordinul unu pentru funcia obiectiv. n cadrul acestor metode, pentru stabilirea direciei de coborre am utilizat numai partea liniar a dezvoltrii n serie Taylor. Dac funcia obiectiv este difereniabil i permite ca pe lng vectorul gradient f ( x) s construim relativ simplu hessianul, putem utiliza pentru minimizarea funciei metode de ordinul doi, care se bazeaz pe aproximarea cuadratic a funciei obiectiv. Cum aproximarea ptratic constituie o mai bun aproximare n raport cu cea liniar, este de ateptat ca aceste metode s sporeasc eficiena procedurilor de calcul.
2.1. Metoda Newton

Considerm funcia obiectiv f(x): n n , de clas Cn, convex n

n . Fie x1 n un punct de iniializare a cutrii. Considernd construcia


soluiei optime printr-un proces iterativ, vom presupune c n cadrul iteraiei
71

k, iniializarea este impus de xk n . n acest punct, putem dezvolta

funcia obiectiv n forma:


f ( x) = f ( x k ) + f ( x k ) ( x x k ) +

1 2 ( x x k ) H( x k ) ( x x k ) + 0( x x k ) 2!

(1)

Considerm aproximarea ptratic pentru variabila g k ( x) astfel:


g k ( x) = f ( x) f ( x k ) = f ( x) ( x x k ) +
* i definim soluia x k dat de condiia:
* * x k n , g k ( x k ) = infn g k ( x k ) . x

1 ( x x k ) H( x k ) ( x x k ) 2!

(2)

(3)

Condiia de iniializare a cutrii n cea de a (k + 1) -a iteraie va fi construit n forma:


* k +1 = k + k ( x k x k ),

k (0,1)

(4)

* 1) Pentru k = 1 , k = 0,1,... obinem x k +1 = x k conform (1). Prin

urmare, iniializarea iteraiei (k + 1) implic soluionarea (1). n cazul funciilor convexe, condiia (1) implic minimizarea aproximrii cuadratice i deci: g k ( x k +1 ) = f ( x k ) + H( x k ) ( x k +1 x k ) = 0 (5)

De fapt acest lucru impune ca pe fiecare iteraie (3.29) cu k = 1 s soluionm un sistem de ecuaii algebrice (3) n raport cu ( x k +1 x k ). Dac matricea H(xk) este nesingular, atunci:
x k +1 = x k H 1 ( x k ) f ( x k )

(6)

72

Dificultile de calcul sunt evidente. Trebuie ca pe fiecare iteraie s calculm: vectorul gradient f ( x k ) ; matricea hessian H(xk); inversa matricei hessiane H-1(xk) (inversa unei matrice (n x n) implic n3 nmuliri).

Din acest motiv, aceast procedur se recomand numai dac vectorul gradient i matricea hessian pot fi calculate relativ simplu i dac problema parial de minimizare (1) poate fi simplu soluionat. Pe de alt parte, dac metoda poate fi aplicat, viteza de convergen este mult mai mare n raport cu metodele anterior prezentate. 2) Se impune n relaia (2) k n forma k = io , unde io reprezint cel mai mic numr pentru care este ndeplinit inegalitatea:
* * f ( x) f ( x k + i ( x k x k )) i f k ( x k )

(7)

unde > 0 i < 1 sunt parametri de metod. 3) Parametrul k poate fi ales n forma:
* 0 k 1 hk ( k ) = min hk ( ) , cu hk ( ) = f ( xk + ( xk xk ))

0 1

(8)

Totui, dac procedura este convergent, rezultatele obinute sunt foarte bune i sunt obinute ntr-un numr mic de iteraii ceea ce implic un timp de procesare redus. Pentru evaluarea comportrii algoritmului Newton a fost creat subrutina Matlab newton.m. Utiliznd aceast subrutin, vom prezenta n continuare urmtoarea aplicaie.
73

Se consider funcia f ( x1 , x 2 ) : R 2 R
f ( x1, x 2 ) = ( x1 3)4 + ( x1 3 x 2 )2 ,

pentru care funcia gradient este de forma:


4 ( x1 3) 3 + ( x1 3 x 2 ) . f ( x1 , x 2 ) = 6 (x 3 x ) 1 2

Este evident c funcia considerat admite un minim unic n punctul


x1 = 3 , x 2 = 1 pentru o valoare a funciei obiectiv f min = 0.

Se propune analiza comportrii algoritmului Newton direct pentru minimizarea funciei considerate. Considerm o iniializare (altfel arbitrar) x1 = 10 , x 2 = 10 i pentru diverse valori ale parametrului care impune condiia de stop rulm subrutina newton.m. Rezultatele obinute n urma rulrii programului sunt prezentate n tabelul 10.1. Dei compararea algoritmilor de cutare pe exemple concrete nu este concludent, am efectuat rulri n condiii identice utiliznd metoda celei mai rapide coborri:
Soluia de optim
x1 = 2.8795 x 2 = 0.9598

Metoda

Precizia

Valoarea funciei obiectiv

Numr de iteraii

= 0 .1 = 0.01 = 0.001
Newtun Metoda

2.1072e-4 2.1072e-4 7.1986e-6 2.5359-9

8 8 79 340

x1 = 2.8795 x 2 = 0.9598 x1 = 2.9482 x 2 = 0.9827

= 0.0001

x1 = 3.0071 x 2 = 1.0024

74

= 0 .1

x1 = 3.2937 x 2 = 1.0983
x1 = 3.1325 x 2 = 1.0442

0.0074 3.0856e-4 1.6176e-5 7.5433e-7

11 27 81 335

= 0.01

Metoda de

= 0.001
gradient

x1 = 3.0634 x 2 = 1.0211
x1 = 3.0295 x 2 = 1.0098

= 0.0001

Tabelul 10.1. Rezultatele obinute pentru fiecare tip de metod

ntr-o prim apreciere, observm c algoritmul Newton funcioneaz corect, realiznd convergena ctre o soluie convenabil ntr-un numr relativ mic de iteraii. Se observ o comportare mai bun a algoritmului Newton n raport cu metoda celei mai rapide coborri.

3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Punct de Punct de iniializare minim Valoare de minim

Nr. Crt.

Funcia
2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

1. 2. 3. 4.

[ 1, 1]

[ 2, 1]

-6 7.5 0 0

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

[ 1, 1] [3, 4] [0, 0]

[5, 0.5] [1,1] [3,5]

( x1 1)

+ 100 ( x1 x2 )
2 2

5 ( x1 3) + ( x2 5 )

75

5. 6. 7. 8. 9.

2 2 x1 x1 x2 + x2 2 2 9 x1 + 16 x2 90 x1 128 x2 2 2 2 x1 + 2 x2 + 2 x1 x2

[1, 2] [0,3]
[1,1]

[0, 0] [5, 4]
1 4 3 , 3

0 -481

4 x1 6 x2
2 2 x1 x1 x2 + x2 2 x1 + x2 2 5 x1 + 4 x1 x2 + x2 16 x1

14 3

[3,5] [1,1]
[ 3, 5] [1,1]

[1, 0] [ 4,14]
[ 2,3]
3 1, 2

-1 -152

12 x2
2 2 2 x1 + 2 x2 + x1 x2 11 x1

10.

8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2

-23

11. 12. 13. 14.

-1.25 0 0 0

2 2 x1 + x2 + x1 x2 2 2 x1 + 16 x2

[1,1] [ 2, 2] [ 5, 8]

[0, 0] [0, 0] [1,1]

(1 x1 )2 + ( x1 x2 )2

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

76

Lucrare de laborator 11
Metoda gradienilor conjugai. Algoritmul Fletcher-Reeves
1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda gradienilor conjugai s familiarizeze pe cei interesai cu problemele care apar n minimizarea funciilor de mai multe variabile.
2. Prezentarea lucrrii

Metoda gradienilor conjugai este un caz particular al metodei generale a direciilor conjugate. ntr-o prim formulare metoda a fost propus de Hestenes i Stiefel n 1952 i utilizat pentru soluionarea sistemelor algebrice liniare. Vom considera pentru nceput c funcia obiectiv este o funcie ptratic, pentru care hessianul (care apare explicit n criteriu) este o matrice simetric pozitiv definit. n continuare vom prezenta o variant a acestei metode concretizat n algoritmul Fletcher-Reeves (1964). n cadrul unei astfel de proceduri, direcia de cutare pe iteraia k este dat dintr-o combinaie a vectorului antigradient i a direciei de cutare n pasul anterior de forma: d k = f ( x k ) + k 1 d k 1 d1 = f ( x1 ) Coeficientul k 1 se determin din condiia ca dk s fie H-conjugat cu vectorul dk-1. n aceste condiii:
77

(1)

0 = d k1 H d k = d k1 H (f ( x k ) + k 1 d k 1 ) . Rezult cu uurin:

(2)

k 1 =

d k1 H f ( x k ) . d k1 H d k 1

(3)

Urmtorul punct de lucru se obine prin minimizare pe direcia dk, pornind de la xk. Prin urmare: x k +1 = x k + k d k , unde k = arg min f ( x k + d k ) .
>0

(4)

Funcia ce trebuie minimizat o considerm de forma: 1 f ( x k + d k ) = f ( x k ) + d k f ( x k ) + 2 d k H d k . 2


d k f ( x k ) . k = dk dk

(5)

Minimul funciei de gradul doi, fixeaz lungimea pasului de cutare:


(6)

Se poate demonstra cu uurin c pentru o funcie ptratic f ( x) = c x + Prin urmare: f ( x k + 1) = c + x k +1 = c + ( x k + k d k ) = = (c + x k ) + k d k = f ( x k ) + k d k Din relaia de definire a direciilor de cutare (1) rezult: d k f ( x k ) = (f ( x k ) + k 1 d k1 ) f ( x k ) = f ( x k ) f ( x k ) . (8) (7) 1 x x , vectorul gradient este de forma f ( x) = c + x . 2

Relaia (7) a fost obinut innd cont c punctul xk se obine prin minimizarea funciei pe direcia dk-1 i prin urmare: f ( x k ) = 0 .
78

Pe de alt parte, d k d k = d k (f ( x k ) + k 1 d k ) = d k H f ( x k ) deoarece dk-1 i dk sunt H-conjugate. Prin urmare, dac introducem (8) i (9) n (5) obinem: (9)

k =

f ( x k ) f ( x k ) . d k f ( x k )

(10)

n aceste condiii, putem pune n eviden un rezultat interesant i anume c vectorii f ( x k +1 ) i f ( x k ) sunt ortogonali. Rezult:
f ( x k ) f ( x k ) = f ( x k ) (f ( x k ) + k d k ) = = f ( x k ) f ( x k ) f ( x k ) f ( x k ) f ( x k ) d k = 0 d k f ( x k )

(11)

Elementele prezentate pun n eviden posibilitatea stabilirii a trei iruri de vectori: {dk} succesiunea direciilor de cutare, { f ( x k ) } succesiunea direciilor de gradieni n punctele prin care evolum ctre minim i {xk} succesiunea punctelor regulate n procesul de cutare. Astfel, pornind din condiia de iniializare x1 pe direcia d1 = f ( x1 ) , determinm printr-un algoritm de optim unidimensional, x2. n continuare, evalum n x2 vectorul gradient d 2 = f ( x 2 ) . Evident, f ( x 2 ) este ortogonal pe direcia d1. n continuare, cunoscnd f ( x 2 ) i d1 fie baza relaiei (1) se determin d2, H-conjugat cu d1. vectorii f ( x1 ), f ( x 2 ) i d1 sunt legai prin (11). Apoi, procedura continu n mod similar.
79

Apreciem imediat c succesiunea {dk} este un rezultat al procedurilor de H-conjugare a vectorilor, aplicat gradienilor {f ( x k )} , iar succesiunea

{f ( xk )} se obine prin ortogonalizarea vectorilor: f ( x1 ), Qd1 , Qd 2 ...


Mai departe, vom arta c este necesar ca procedurile de obinere a vectorilor {dk}, {f ( x k )} prin H-conjugarea sau ortogonalizarea vectorilor gradient s fie simultane. Vom utiliza un procedeu inductiv [7]: vectorii {dk} construii pe baza relaiei (3.35) sunt H-conjugai, iar vectorii {f ( x k )} sunt ortogonali. Pentru k = 1, evident cele dou afirmaii sunt adevrate. Considerm c cele dou afirmaii sunt adevrate pn la unu i deci direciile {d1, d2, , dk} sunt H-conjugate, iar vectorii gradient

{f ( x1 ), f ( x2 ),..., f ( xk )}

sunt ortogonali. Vom demonstra c ele sunt

valabile i pentru k + 1. Astfel:


f ( x k +1 ) f ( xi ) = f ( xi ) (f ( x k ) + k d k ) = = f ( xi ) f ( x k ) + k f ( xi ) d k ).

(12)

Deoarece f ( x k ) este ortogonal lui f ( xi ) , pentru i = 1, 2, ..., k 1 i cum conform (1): f ( x k +1 ) f ( x k ) = 0 , obinem: f ( x k +1 ) f ( xi ) = k f ( xi ) d k , pentru i 1, k . f ( xi ) = d + i 1 d i 1 i prin urmare: f ( x k +1 ) f ( xi ) = k (d i + i 1 d i 1 ) d k . (15) (13)

(14)

80

Direcia dk este H-conjugat n raport cu di pentru oricare i 1, k 1 . Deoarece f ( x k +1 ) f ( x k ) = 0 (vezi (1)) rezult f ( x k +1 ) f ( xi ) = 0 i 1, k . (16)

Prima proprietate a fost astfel demonstrat. n privina direciilor de cutare, considerm c {d1, d2, , dk} sunt H-conjugate i va trebui s artm c d k+1 d i = 0 pentru oricare i 1, k . Pentru i = k, prin nsi modul de construcie a direciilor de cutare d k+1 d k = 0 . Fie, pentru
1 i k +1:

d i d k +1 = d i (f ( x k +1 ) + k d k ) = d i f ( x k +1 )

(17)

innd cont de relaia (16), obinem: i d i = (f ( xi +1 ) f ( x) i ) , n care i 0 ( i = 0 numai dac f ( xi ) = 0 caz n care xi este punct de staionare). Prin urmare: d i d k +1 = 1

( f ( xi +1 ) f ( xi )) f ( x k +1 ) .

(18)

Cum am demonstrat anterior, gradienii sunt ortogonali i deci: d i d k +1 = 0 pentru i 1, k . (19)

Algoritmul bazat pe metoda Fletcher-Reeves este prezentat n continuare.


Etapa de iniializare. Se impune > 0 condiia de STOP i punctul de

iniializare a cutrii xi R n . Considerm y1 = x1, d1 = f ( x1 ), k = j = 1 i trecem la etapa de baz.


81

Etapa de baz. Pasul 1. Dac f ( y j ) < algoritmul se oprete i yj

reprezint optimul. n caz contrar, se determin

j = arg min f ( y j + d j ) i y j +1 = y j + j d j .
>0

Dac j < n se trece la pasul 2 i dac j = n trecem la pasul 3.


Pasul 2. Se stabilete direcia de cutare d j +1 = f ( y j ) + j d j ,

unde j =

f ( y j +1 ) f ( y j )

2 2

. Iterm j j + 1 i relum pasul 1.

Pasul 3. Facem

y1 = x k +1 = y k +1 , d1 = f ( y1 ), j = 1, k k + 1

relum pasul 1. n algoritmul prezentat intervin cteva modificri n raport cu metoda expus. Astfel: i) n pasul 1, lungimea pasului se stabilete prin cutare unidimensional i nu analitic. Aceast modalitate se impune pentru ca metoda s poat fi extins i n cazul n care f(x) este neliniar i nu neaprat ptratic. ii) Stabilirea coeficientului j n pasul 2 apare modificat n raport cu prezentarea fcut. Noua form a coeficientului j este uor deductibil.
Construcia matricelor de deflecie

Am stabilit n paragraful precedent c stabilirea direciilor H-conjugate {d1, d2, ..., dn} asociate unui criteriu de calitate ptratic: f ( ) = c + 1 , 2 (20)

82

permite stabilirea punctului de minim n cel mult n iteraii (fiecare iteraie implic optimizarea unidimensional pe o direcie impus). n continuare, va trebui s analizm urmtoarele probleme:
i) stabilirea direciilor H-conjugate implic cunoaterea matricei H

deci asocierea metodei strict ctre funcii ptratice. O astfel de restricie este mult prea puternic i este de dorit lrgirea cadrului n care funcioneaz aplicaia;
ii) pentru cazul general, va trebui s stabilim o procedur de

construcie a direciilor de cutare fa a utiliza explicit matricea hessian. Legat de prima problem facem observaia c, n cazul unei iniializri n aproprierea punctului de minim, aproximarea ptratic este foarte bun. n aceste condiii, chiar dac convergena nu va fi slab n faza de iniializare, pe msur ce m apropii de minim aceasta crete foarte mult determinnd pe ansamblu o funcionare eficient. Ceea de a doua problem ridicat, este de ordin constructiv i va fi soluionat ca atare. Direciile de cutare se construiesc iterativ, n forma: d j = D f ( y j ) , (21)

prin urmare direciile de cutare vor fi direcii de antigradient modificate prin matricele de deflexie Dj convenabil alese astfel nct: direciile astfel construite s fie direcii de coborre; n cazul n care construcia este aplicat pe funcia obiectiv, direciile obinute n aplicarea algoritmului trebuie s fie Hconjugate. Acest motiv determin definirea unor astfel de metode ca metode quasi-newton.
83

n cele ce urmeaz, vom prezenta ntr-o manier simplificat tehnica de construcie a matricelor de defleie. Vom considera pentru nceput cazul unui criteriu de calitate ptratic, prezentat n forma: 1 f ( x ) = f ( x k ) + f ( x k ) ( x x k ) + ( x x k ) ( x x k ) , 2 (22)

unde xk reprezint punctul de iniializare al cutrii n iteraia k, f ( xk ) vectorul gradient n k . Matricea H (hessian) este simetric i pozitiv definit (funcia este ptratic i deci H nu depinde de punctul de lucru). Dac xk+1 reprezint punctul final obinut n iteraia k, vectorul gradient evaluat n acest punct va fi: f ( x k +1 ) = f ( x k ) + ( x k +1 x k ) . (23)

Dac iniializarea cutrii n iteraia k se face n R n , propunem ca pe aceast iteraie matricea de deflecie s fie Dk (aproximarea inversului hessianului cu cadrul acestei iteraii). Cutarea liniar impune. x k +1 = x k k Dk = ( x k +1 x k ) . deflexie Dk+1) se construiete n forma: Dk +1 = Dk + C k , (25) (24)

Aproximarea inversei hessianului n noua iteraie (matricea de

n care Ck este o matrice de corecie simetric de rangul su doi. Vom prezenta modul de calcul a matricei de corecie de rang unu i vom relua analiza i pentru corectarea de rang doi care sunt mult mai eficiente. Dac Dk+1 reprezint aproximarea universului hessianului, cum H -1 (f ( xk +1 ) f ( xk )) = xk +1 xk ,
84

Dk+1 trebuie s satisfac Dk +1 (f ( x k +1 ) f ( x k )) = x k +1 x k i deci ( Dk + C k ) (f ( x k +1 ) f ( x k )) = x k +1 x k . Prin urmare Ck (f ( xk +1 ) f ( xk )) = ( xk +1 xk ) Dk (f ( xk +1 ) f ( xk )) . (27) (26)

Dac notm direcia de cutare n iteraia k: d k = Dk f ( xk ) , din (24) rezult xk +1 xk = k d k = k . Pentru simplificare vom nota: q k = f ( xk +1 ) f ( xk ) . Notaiile introduse transpun relaia (27) n forma C k q k = k Dk q k = ( k Dk q k )( k Dk q k ) qk . ( k Dk q k ) q k (30) (29) (28)

Prin simpl identificare, din relaia (30) rezult termenul de corecie n forma: Dk = ( k Dk qk )( k Dk qk ) . ( k Dk qk ) q k (31)

Metoda se lanseaz cu D1=I. Prin urmare, prima iteraie urmeaz o banal tehnic a celei mai rapide coborri. n cursul procesului iterativ, matricele de deflexie aproximeaz tot mai bine inversa hessianului, iar metoda se aproprie de performanele metodei Newton.
85

n practic, sunt deosebit de mult utilizate corecii prin matrici de rang doi. Dintre aceste proceduri, foarte utilizate sunt metoda Davidon-FletcherPowell (DFP), n care matricele de corecie sunt generate n forma:

Ck =

k k Dk qk qk Dk k qk qk Dk qk

(32)

i metoda Broyden-Fletcher-Goldfarb-Shanna (BFGS), n care matricea de corecie este de forma:


q K Dk q k 1 + cK = k q k k k k q k Dk + Dk q k k q k q k k k

(33)

Observaie. Comparativ, BFGS este mai sensibil dect DFP n privina

erorilor care apar n optimizarea unidimensional pe fiecare pas de lucru.


Exemple

Prezentm n cele ce urmeaz cteva exemple de utilizare a algoritmului Fletcher-Reeves pentru minimizarea n absena restriciilor a unei funcii de mai multe variabile. n acest scop, algoritmul generat pentru metoda mai sus amintit a fost implementat ca funcie Matlab sub denumirea FReeves1. Pentru cazul n care gradientul nu este cunoscut apriori, ci trebuie evaluat prin program, a fost creat subrutina FReeves2, prezentat n aceeai anex. Evaluarea algoritmului se face utiliznd o aproximare de ordinul nti. Se consider funcia f ( x1 , x 2 ) : R 2 R
f ( x1, x 2 ) = ( x1 3)4 + ( x1 3 x 2 )2 ,
86

pentru care funcia gradient este de forma: 4 ( x1 3) 3 + ( x1 3 x 2 ) f ( x1 , x 2 ) = 6 (x 3 x ) 1 2 Este evident c funcia considerat admite un minim unic n punctul
x1 = 3 , x 2 = 1 pentru o valoare a funciei obiectiv f min = 0.

Se propune analiza comportrii algoritmului Fletcher-Reeves pentru minimizarea funciei considerate. Alegem o iniializare (altfel oricare) x1 = 100, x 2 = 15 i pentru o precizie

= 0.001

lansm subrutina FReeves1.m. Algoritmul este

convergent n x1 = 3.0467 , x 2 = 1.0156 care aproximeaz suficient de bine soluia real. Valoarea funciei obiectiv n punctul obinut este f min 3.7496 10 6. Convergena este asigurat n 32 de pai. Graficul evoluiei n procesul de cutare este prezentat n figura 23:

Figura 23. Graficul evoluiei n procesul de cutare


87

Pentru a ne forma o imagine mai clar n legtur de cu modul de funcionare a subrutinei am testat comportarea acesteia n condiii identice modificnd numai condiia de STOP (implicit precizia). Rezultatele sunt prezentate sintetic n tabelul urmtor:
Precizia Soluia de optim x1 = 3.2712 Valoarea funciei Numr de obiectiv iteraii

= 0 .1 = 0.01 = 0.001 = 0.0001

x 2 = 1.0911
x1 = 3.1267 x 2 = 1.0423
x1 = 3.0467 x 2 = 1.0156 x1 = 3.0284 x 2 = 1.0095

0.0054 2.5747e-4

12 20 32 40

4.7496e-6 6.5318e-7

Tabelul 11.1. Rezultatele mai mulor rulri

Sub raport al timpului de procesare necesar elaborrii soluiei, utiliznd instruciunea tic-toc au fost obinute urmtoarele rezultate:
Precizie Timp de procesare

= 10 1

= 10 1

= 10 1

= 10 1

5.658 sec 10.606 sec 18.346 sec. 23.894 sec.

Tabelul 11.2. Dependena timp de calcul - precizie

Pentru a evidenia dependena timpului de calcul de numrul de valori ale funciei obiectiv ce trebuie evaluate n cursul procesrii, am crescut artificial durata de calcul a funciei, introducnd o pauz de 10 milisecunde.

88

n figura 24 este prezentat graficul dependenei timpului de calcul n raport cu precizia impus.
25

20

tim (se p c.)

15

10

2 3 k (e=10e-k)

Figura 24. Dependena timp - precizie

Pentru aceeai funcie prezentat n exemplul precedent, s se testeze comportarea algoritmului Fletcher-Reeves pentru cazul n care gradientul este calculat on-line printr-o aproximare de ordinul nti (subrutina FReeves2.m). Pentru o iniializare x1 = 10 , x 2 = 15 (identic cu cazul prezentat n exemplul precedent) s-au efectuat rulri ale subrutinei FReeves2.m pentru diverse valori ale pasului utilizat n aproximarea gradientului i pentru diverse valori ale parametrului precizie. Rezultatele rulrii sunt prezentate n tabelul urmtor:
Pas pentru evaluarea gradientului Soluia de optim Valoarea Numr de funciei obiectiv iteraii

Precizie

h = 0.01

e = 0 .1 e = 0.01

x1 = 3.1838 x 2 = 1.0605

0.0011

11

Algoritmul nu funcioneaz
89

e = 0 .1 h = 0.001 e = 0.01 e = 0.001 e = 0 .1

x1 = 3.2718 x 2 = 1.0913 x1 = 3.1095 x 2 = 1.0361

0.0055 1.4527e-4

12 15

Algoritmul nu funcioneaz

x1 = 3.2773 x 2 = 1.0932 x1 = 3.1129 x 2 = 1.0377 x1 = 3.0152 x 2 = 1.0051

0.0059e-4

12

h = 0.0001

e = 0.01

1.6245e-6

20

e = 0.001

5.2833e-8

28

Tabelul 11.3. Rezultate n urma mai multor rulri

Datorit faptului c gradientul este evaluat cu o aproximaie necontrolat i deci, la rndul ei, oprirea algoritmului este de asemenea slab controlat n rularea programului, apar rezultate aparent paradoxale. Astfel, la un pas h = 0.01 i o precizie = 0.1 , obinem rezultate mai bune dect pentru pasul h = 0.001 i o aceeai precizie. n orice caz, cel puin pe exemplul considerat, diferenele ntre cele dou proceduri sunt nesemnificative. Vom vedea c, n privina timpului de calcul, diferenele ntre cele dou proceduri sunt semnificative.
Precizie

= 0 .1

= 0.01
10.506 s 15.131 s

= 0.001
18.346 s. 22.503 s

Evaluare gradient 5.658 s of-line Evaluare gradient 8.533 s on-line

Tabelul 11.4. Timpul de calcul necesar pentru diverse variante


90

n tabelul anterior au fost prezentai timpii de calcul necesari evalurii soluiei problemei formulate, n cele dou conjuncturi: utiliznd evaluarea off-line a gradientului; utiliznd evaluarea on-line a gradientului. Este evident c n cazul n care evalum gradientul on-line timpul de calcul crete considerabil. Superioritatea algoritmului Fletcher-Reeves n raport cu algoritmii de tip gradient apare n cazul unor funcii de mai multe variabile de o mai mare complexitate. n cele ce urmeaz prezentm o aplicaie legat de minimizare unei funcii de trei variabile. Se consider funcia f : R 3 R de forma: f ( x1 , x 2 , x3 ) = ( x1 2 x 2 ) 2 + ( x1 x3 ) 2 + ( x1 + x 2 3) 2 avnd funcia gradient de forma:
6 x1 2 x 2 2 x3 f ( x1 , x 2 , x3 ) = 2 x1 + 10 x 2 6 . 2 x + 2 x 1 3

Funcia prezint un minim unic x1 = 2 , x 2 = 1, x3 = 2 pentru o valoare a funciei obiectiv prezentate: f min = 0. Problema propus este de a determina minimul acestei funcii utiliznd algoritmul Fletcher-Reeves (implementat Matlab) i de a realiza o comparaie cu utilizarea algoritmului de tip gradient n condiii identice.
91

n acest sens, am considerat condiia de iniializare a cutrii x1 = 10 , x 2 = 10 , x3 = 10 i au fost rulate subrutinele FReeves1.m i grad1.m pentru diverse valori ale parametrului precizie. Rezultatele obinute pun n eviden, cel puin pentru exemplu considerat, superioritatea metodei Fletcher-Reeves asupra tehnicii celei mai rapide coborri att n privina preciziei n stabilirea soluiei ct i a numrului redus de iteraii necesare stabilirii soluiei:
Metoda Precizie Soluia de minim x1 = 1.9998 Valoare Numr de funciei obiectiv iteraii

= 0 .1
Metoda Fletcher-Reeves

x 2 = 1.0030 x3 = 1.9998
x1 = 1.9993

6.7001e-5

= 0.01

x 2 = 0.9999 x3 = 1.9974 x1 = 2.0000

4.6722e-6

= 0.001

x 2 = 1.0000 x3 = 2.0000

9.0904e-12

10

x1 = 2.0348

= 0 .1

x 2 = 0.9999 x3 = 2.0695 x1 = 2.0046

0.0036

26

Metoda de gradient

= 0.01

x 2 = 1.0000 x3 = 2.0092 x1 = 2.0004

6.3079e-5

36

= 0.001

x 2 = 1.0000 x3 = 2.0008

4.8612e-7

48

Tabelul 11.5. Rezultate. Comparaie


92

Dei mai puin sugestiv fa de cazul funciilor de dou variabile, n figura de mai jos este prezentat graficul evoluiei procesului de cutare pentru iniializarea considerat i precizia = 0.01 :

10 8 6 x3 4 2 0 10 5 4 2 x2 0 0 x1 Solutia de minim. 10 8 6

Figura 25. Graficul evoluiei procesului de cutare

Pentru evaluarea timpilor de procesare n ambele metode, am modificat forma funciilor introducnd n cadrul funciei un timp mort fictiv, simulnd astfel o complexitate sporit pentru funcia obiectiv. Utiliznd instruciunea tic-toc, am evideniat timpii de calcul pentru obinerea soluiei n ambele proceduri. Rezultatele sunt prezentate n tabelul urmtor:
Precizia

= 0 .1
0.58 s 4.52 s

= 0.01
0.581 s 16.73 s

= 0.001
6.319 s 64.86 s

= 0.0001
27.23 s 323.57 s.

Metoda Newton Metoda de gradient

Tabelul 11.6. Timpul de execuie pentru fiecare metod n parte


93

3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Nr. Crt. Funcia
2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

Punct de iniializare

Punct de minim

Valoare de minim

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

[ 1, 1] [ 1, 1]
[3, 4]

[ 2, 1] [5, 0.5]
[1,1]

-6 7.5 0 0 0 -481

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

( x1 1)2 + 100 ( x1 x2 )2
5 ( x1 3) + ( x2 5 )
2 2 2 x1 x1 x2 + x2 2 2 9 x1 + 16 x2 90 x1 128 x2 2

[0, 0]

[3,5]

[1, 2] [0,3]
[1,1]

[0, 0] [5, 4]
1 4 3 , 3

2 2 2 x1 + 2 x2 + 2 x1 x2 4 x1 6 x2
2 2 x1 x1 x2 + x2 2 x1 + x2

14 3

2 5 x1 + 4 x1 x2 + x2 16 x1 12 x2 2 2 2 x1 + 2 x2 + x1 x2 11 x1 8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2 2 2 x1 + x2 + x1 x2 2 2 x1 + 16 x2

[3,5] [1,1] [ 3, 5] [1,1] [1,1] [ 2, 2] [ 5, 8]

[1, 0]
[ 4,14] [ 2,3] [ 1,3 / 2] [0, 0] [0, 0]

-1 -152 -23 -1.25 0 0 0

(1 x1 )

+ ( x1 x2 )

[1,1]

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.
94

Lucrare de laborator 12
Metoda Davidon-Fletcher-Powell

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda Davidon, Fletcher i Powell i s continue analiza problemelor care pot aprea n minimizarea funciilor de mai multe variabile.
2. Prezentarea lucrrii

Metoda pe care o vom prezenta n cele ce urmeaz a fost introdus iniial de Davidon (1959) i dezvoltat de Fletcher i Powell (1963). Pe considerente ce vor fi prezentate ulterior, metoda este cunoscut i ca metoda cu metric variabil. Ea face parte din metodele de cutare quasi-newton, metode n care direciile de cutare se evalueaz n forma d j = Dk f ( y j ) . (1)

Direcia de antigradient este modificat (rotit) prin multiplicare cu o matrice D j nxn simetric i pozitiv definit care aproximeaz pe fiecare pas matricea hessian. Matricele Dj se construiesc iterativ astfel ca matricea Dj+1 se se obin prin nsumarea matricei Dj cu doi termeni de corecie formulai de matrice de rangul doi. Vom ncepe prin prezentarea algoritmului generat printr-o astfel de procedur.
Etapa de iniializare. Fie > 0 condiia de stop. Se impune punctul de

iniializare x1 Rn i matricea D1 simetric i pozitiv definit (de obicei se alege D1 = In). Considerm y1 = x1, k = j = 1 i se trece la etapa de baz.
95

Etapa de baz. Pasul 1. Dac f ( y j ) < , atunci algoritmul se oprete i

yj

constituie

soluia.

Dac

nu,

construim

direcia
>0

de

cutare

d j = D j f ( y j ) i y j +1 = y j + j d j , unde j = arg min f ( y j + d j ) . Dac j < n se trece la pasul 2. Dac j = n, facem y1 = xn+1 = y n+1 , k k + 1, j = 1 i se reia pasul 1.
Pasul 2. Se construiete matricea de deflexie Dj+1:

j D j q j q D j j j , D j +1 = D j + j qj qj Dj qj
unde:

j = j d j
q j = f ( y j +1 ) f ( y j ).

Se reiniializeaz j j + 1 i se reia pasul 1. Am atras atenia asupra faptului c n condiiile n care ne aflm la o distan relativ mare n raport cu minimul, algoritmul nu are o comportare foarte bun. n orice caz, ntr-o astfel de locaie, direciile astfel calculate trebuie s asigure o direcie de coborre. n cele ce urmeaz, vom demonstra c matricele de deflexie D1, D2, , Dn sunt simetrice i pozitiv definite cu implicaia imediat c, d1, d2, , dn sunt direcii de coborre. Astfel, prin condiiile de generare, D1 este o matrice simetric i pozitiv definit. Direcia d1 = D1 f ( y1 ) este o direcie de coborre deoarece: f ( y1 ) d1 = f ( x1 ) D1 f ( y1 ) < 0 .
96

(2)

Presupunem, c pentru un j n 1, D1, D2, ..., D j sunt simetrice i pozitiv definite i vom arta c Dj+1 are aceleai proprieti. Simetria nu reprezint o problem i ea poate fi verificat direct. Considerm, pentru
0 :

x D j +1 x = x D j x +

x j x j

qj j

x D j q j q D j j q Dj q j j

(3)

Matricea Dj este simetric i pozitiv definit i prin urmare exist matricea D1 / 2 , astfel ca D j = D1 / 2 D1 / 2 . n aceste condiii, dac notm j j j
a = D1 / 2 x, b = D1 / 2 q j expresia (3) devine: j j
2 (a a )(b b) (a b) 2 ( x p j ) x D j +1 x = + . b b qj j

(4)

Utilizm inegalitatea Cauchy-Bunyakovski-Schwartz: (a a ) (b b) (a b) 2 0 i pentru c x D j +1 x 0 , este necesar ca: bTb > 0 i p q j > 0 . j Cu notaiile introduse:

q j = j d (f ( y j +1 ) f ( y j )) . j j

(5)

Pasul de cutare j se alege prin minimizare unidimensional pe direcia dj i deci d f ( y j +1 ) = 0 . Aadar, j

q j = j d f ( y j ) = j f ( y j ) D j f ( y j ) . j j

(6)

Cum Dj este pozitiv definit i f ( y j ) 0 , rezult c q j > 0 j ( j > 0 deoarece cutarea se face n lungul direciei de coborre cu > 0 ).
97

Rezult c q j > 0 i deci, b b = q j D j q j > 0 . Prin urmare, am demonstrat c x D j +1 x 0 . Considerm x D j +1 x = 0 . O asemenea condiionare impune ca simultan (a a) (b b) (a b) 2 = 0 i x = 0 . j Reamintim c (a a ) (b b) (a b) 2 = 0 dac i numai dac vectorii a i b sunt coliniari, deci dac a = b . Condiia a = b implic D 1 / 2 x = D 1 / 2 q j . Aadar: x = q j . j j Cum x 0 , rezult 0 . Cea de-a doua cerin este x = 0 i deci j

q j = 0 i cum 0 ar fi necesar ca q j = 0 , infirmnd j j


rezultatele obinute anterior. Prin urmare, x D j +1 x > 0 , x 0 i deci Dj+1 este pozitiv definit. Direcia dj+1 pentru f ( y j ) 0 se construiete n forma d j +1 = D j +1f ( y j +1 ) :
f ( y j +1 ) d j +1 = f ( y j +1 ) D j +1 f ( y j +1 ) < 0 .

(7)

Se poate demonstra c dac algoritmul este aplicat unei funcii ptratice, direciile construite pe principiul enunat sunt H-conjugate i deci y n+1 = * fiind punctul de optim (i n aceste condiii, evident, Dn +1 = H 1 ). Pentru a putea evalua comportarea algoritmului Davidon-FletcherPowell au fost elaborate dou subrutine de calcul bazate pe algoritmul menionat. O prim subrutin implementeaz algoritmul n condiiile n care gradientul funciei a fost calculat off-line i deci putem dispune de forma analitic a acestuia. Aceast subrutin este denumit dfp.m i este prezentat n Anexa 1. O a doua subrutin implementeaz acelai algoritm, n ipoteza n care gradientul funciei nu este apriori cunoscut i acesta trebuie evaluat n cadrul programului (derivatele pariale sunt calculate prin aproximri de ordinul unu utiliznd subrutina nabla.m). Subrutina intitulat dfp1.m se afl tot n anexa mai sus menionat.
98

Se consider funcia: f ( x1 , x 2 ) = ( x1 3) + ( x1 3 x 2 ) ,
4 2

avnd gradientul uor de precizat n forma: 4 ( x1 3) 3 + 2 ( x1 3 x 2 ) . f ( x1 , x 2 ) = 6 ( x1 3 x 2 ) Punctul de minim pentru funcia considerat este evident

x1 = 3 , x 2 = 1 care asigur valoarea de minim f min = 0. Problema propus

este de a evalua comportarea algoritmului Davidon-Fletcher-Powell n stabilirea aproximativ a punctului de minim.


Precizia Soluia de minim
x1 = 3.2152 x 2 = 1.0723
x1 = 3.0609 x 2 = 1.0402

Valoarea funciei obiectiv

Numr de iteraii

= 0 .1
= 0.01 = 0.001 = 0.0001

f min = 0.0021

6 8 14 44

f min = 2.0942 10 4 f min = 1.3767 10 5 f min = 7.0163 10 6

x1 = 3.0609 x 2 = 1.0203
x1 = 3.0289 x 2 = 1.0402

Tabelul 12.1. Rezultatele obinute

S-a considerat un punct de iniializare x1 = 4 , x 2 = 5 i s-a rulat subrutina dfp.m pentru diverse valori ale preciziei impus condiie de stop. Rezultatele obinute sunt prezentate sintetic n tabelul 12.1. n figura 26 este prezentat evoluia procesului de cutare pentru iniializare anterior precizat i o condiie de stop = 0.001.
99

5 4 3 300 2

300

200

200 3 3

200 10 1 0.1 100

x2

1 0

0.1 1 10 100 3

-1 -2 300 300 -3 -1 200 0 1 2 3 x1 4 5 6 300 7

Figura 26. Evoluia procesului de cutare

n tabelul 12.2 sunt prezentate valorile timpilor de procesare pentru asigurarea preciziei impuse.
Precizia

= 0 .1

= 0.01

= 0.001

= 0.0001
0.901 sec

Timp de procesare

0.120 sec. 0.441 sec. 0.441 sec

Tabelul 12.2. Timpul de procesare n funcie de precizie

n cel de al doilea exemplu, se consider funcia: f ( x1 , x 2 ) = ( x1 3) + ( x1 3 x 2 ) ,


4 2

avnd gradientul uor de calculat n forma: 4 ( x1 3) 3 + 2 ( x1 3 x 2 ) . f ( x1 , x 2 ) = 6 ( x1 3 x 2 )


100

Funcia precizat a fost minimizat n exemplul anterior utiliznd algoritmul

Davidon-Fletcher-Powell

considernd

cunoscut

forma

gradientului. Vom relua aceeai problem de minimizare aplicnd acelai algoritm n condiiile n care presupunem c gradientul este construit on-line printr-o aproximare de ordinul unu (subrutina dfp1.m completat cu nabla.m). Considerm o aceeai iniializare x1 = 4 , x 2 = 3 iar pasul utilizat pentru aproximarea derivatelor pariale ce compun gradientul se alege
h = 0.0001. Pentru diferite valori ale parametrului care impune condiia

de stop i implicit precizia metodei rezultatele rulrii sunt prezentate n tabelul urmtor:
Precizia Soluia de optim Valoarea funciei obiectiv Numr de iteraii

= 0 .1
= 0.01

x1 = 3.2071 x 2 = 1.0696 x1 = 3.0497 x 2 = 1.0166 x1 = 3.0497 x 2 = 1.0165

f min = 0.0018

6 8 9

f min = 6.0871 10 6 f min = 6.0815 10 6

= 0.001

= 0.0001 Algoritmul nu funcioneaz


Tabelul 12.3. Rezultatele obinute

Cum precizam anterior algoritmul se comport impredictibil, dar pe exemplul considerat i pentru alegerea fcut pentru pasul de aproximare algoritmul se comport bine. n privina timpului de calcul, cum era de ateptat acesta este mai mare dect n cazul n care funcia gradient este cunoscut apriori. n tabelul 4 sunt prezentate valorile timpilor de calcul pentru diverse precizii de evaluare a soluiei.
101

Precizia

= 0 .1

= 0.01
0.600s

= 0.001
0.611s

Timp de calcul 0.451s

Tabelul 12.4. Timpul de procesare n funcie de precizie

Pe baza celor prezentate putem trage concluzii legate de comportarea algoritmilor de tip quasi-newton: Pe fiecare iteraie este necesar numai valoarea funciei gradient, fr a fi necesar evaluarea i inversarea matricei hessian sau soluionarea unui sistem de ecuaii algebrice de mari dimensiuni. Dac funcia obiectiv este o funcie ptratic atunci convergena i soluia de optim se va face n cel mult n pai (n reprezint dimensiunea vectorului parametrilor). Indiferent de iniializarea x n , metoda converge ctre un punct de minim (eventual minim local) al criteriului de calitate impus. Cum matricele de deflexie sunt obinute prin acumularea informaiilor obinute n precedentele iteraii, metodele quasi-newton sunt mai sensibile la erori de calcul dect metoda Newton. Pentru aceste metode de calculul, vectorul gradient este necesar s fie foarte exact. Viteza de convergen a algoritmului este puternic dependent de funcia obiectiv i de punctul de iniializare al cutrii. Algoritmul este lent ntr-o prim faz de lucru. Pe msur ce ne apropriem de punctul de minim (caz n care aproximarea ptratic este tot mai bun iar Dk H 1 ), algoritmul devine tot mai eficient. Dac funcia criteriu este de clas C2 i cu hessianul pozitiv definit n punctul optim, pentru k , convergena este superliniar i deci algoritmul este mai eficient dect un algoritm de tip gradient. Dac n plus, n vecintatea punctului optim, hessianul este lipschitzian, algoritmul are o convergen asimptotic cuadratic (comportarea este similar cu algoritmul Newton).
102

Este posibil, ca din cauza erorilor de calcul, pentru un k, matricea de deflexie Dk s fie singular. n cest caz, se reiniializeaz Dk=I i algoritmul demareaz cu o procedur de tip gradient. Pentru a evita testarea permanent a condiiei Dk > 0 , se poate ca dup n iteraii s reiniializm cu D1 = I. Metoda poate fi privit ca o tehnic de gradient n care matricea este modificat pe fiecare iteraie n ideea sfericizrii hipersuprafeelor de izonivel. Din acest motiv, tehnica prezentat mai este cunoscut ca metod de metric variabil.

3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a crei form este prezentat n tabelul de mai jos:
Punct de Punct de iniializare minim Valoare de minim

Nr. Crt.

Funcia
2 2 6 x1 + 2 x1 2 x1 x2 + 2 x2

1. 2. 3. 4. 5. 6. 7.

[ 1, 1] [ 1, 1]
[3, 4] [0, 0]

[ 2, 1] [5, 0.5]
[1,1] [3,5]

-6 7.5 0 0 0 -481

1 2 2 x1 + x2 + ( x1 + x2 10 ) 9

( x1 1)

+ 100 ( x1 x2 )
2 2

5 ( x1 3) + ( x2 5 )
2 2 x1 x1 x2 + x2

[1, 2]
[0,3] [1,1]

[0, 0]
[5, 4]
1 4 3 , 3

2 9 x12 + 16 x2 90 x1 128 x2

2 2 2 x1 + 2 x2 + 2 x1 x2

4 x1 6 x2
103

14 3

8. 9.

2 2 x1 x1 x2 + x2 2 x1 + x2 2 5 x1 + 4 x1 x2 + x2 16 x1

[3,5] [1,1] [ 3, 5] [1,1]

[1, 0] [ 4,14] [ 2,3]


3 1, 2

-1 -152

12 x2
2 2 2 x1 + 2 x2 + x1 x2 11 x1

10.

8 x2
2 2 x1 x2 + 2 x1 + 2 x1 x2 + x2 2 2 x1 + x2 + x1 x2 2 2 x1 + 16 x2

-23

11. 12. 13. 14.

-1.25 0 0 0

[1,1]
[ 2, 2] [ 5, 8]

[0, 0]
[0, 0] [1,1]

(1 x1 )2 + ( x1 x2 )2

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

104

Lucrare de laborator 13
Metoda direciilor admisibile de coborre (cazul liniar)
1. Scopul lucrrii
Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda direciilor admisibile de coborre s prezinte probleme de optimizare cu restricii impuse.

2. Prezentarea lucrrii
n cazul problemelor de optim fr restricii, procedurile clasice de cutare se bazeaz pe stabilirea unei direcii de coborre i evoluia n lungul acestei direcii cu un pas de cutare astfel nct s realizm condiia de modificare n sens descresctor a valorilor funciei obiectiv. n general, aplicarea unei astfel de metode nu este aplicabil n cazul minimelor cu restricii deoarece evoluia n lungul direciei de coborre conduce ntr-o zon n care punctele de lucru nu aparin domeniului valorilor admise. Prin urmare ideea de direcie de coborre i pierde aplicabilitatea n cazul problemelor de minim n prezena restriciilor. Considerm un punct de lucru curent xk U n care U R n reprezint mulimea punctelor ce satisfac restriciile impuse. Direcia de cutare dk conform cerinelor problemei necesit s satisfac simultan dou condiii: pentru un > 0 , f ( x k + d ) < f ( x k ) ; pentru impus anterior, x + d k U .
105

O astfel de direcie, evident dependent de xk, poart numele de

direcie de coborre admisibil.


Pentru nceput ne punem problema modalitii construciei direciilor admisibile de coborre. Considerm problema minimizrii funciei f ( x) : R n R , n

restricia xk U R n . Pentru un punct x U , d constituie o direcie de coborre dac pentru un > 0 arbitrar de mic, f ( x + d ) < f ( x) i
x + d U pentru (0, ) .

Pentru nceput, vom analiza cazul particular al restriciilor liniare. Problema general este de forma: minimizeaz f(x) n restriciile
A x b Ex =e

(1)

n care A R mn , b R m1 , E R ln i e R l1 . Prin urmare mulimea de admisibilitate va fi U = {x A x b, E x = e} . Pe motive lesne de neles, o astfel de mulime este definit ntr-o serie de lucrri ca mulime

poliedral).
Legat de modul n care sunt satisfcute restriciile de tip inegalitate, remarcm c pentru un x fixat este posibil ca relaia la pasul i s fie satisfcut ca egalitate: ai1 x1 + ai 2 x 2 + ... + ain x n = bi . (2)

Restriciile de acest gen sunt restricii active. n mod evident restriciile Ex = e, sunt permanent active.
106

n continuare, vom prezenta un rezultat esenial n procedura de construcie a direciilor admisibile de cutare. Vom considera problema general i un punct x U pentru care, printr-o reordonare a matricei A, restriciile sunt satisfcute n forma A1 x = b1 , A2 x < b2 i E x = e . Matricea A a fost reordonat i partiionat nct A A= 1 A 2 s fie puse n eviden direct restriciile active (A1, E) pentru punctul considerat. n aceste condiii, d reprezint o direcie admisibil de cutare pentru x S dac i numai dac A1 d 0 i E d = 0 . Deoarece x U avem satisfcute: A1 x = b1 , A2 x < b2 E x = e. Pentru suficient de mic este necesar ca:
A1 ( x + d ) = A1 x + A1 d b1 A2 ( x + d ) = A2 x + A2 d b2 E(x + d ) = E x + E d = e

(3)

(4)

Pentru primul set de inegaliti, cum A1x=b1 rezult A1 d 0 i deci


A1 d 0 .

Cel

de

al

doilea

set

de

inecuaii

impune

A2 d b2 A2 x i cum b2 A2 x > 0 putem stabili suficient de


mic care s satisfac condiia. n sfrit cu E x = e rezult necesitatea cu
E d = 0.

Dac n plus, direcia admisibil de cutare satisface f ( x) d < 0 , ea se transform n direcie admisibil de coborre.
107

Vom nuana elementele mai sus definite pe urmtorul exemplu. Se consider urmtoarea problem de optimizare: minimizeaz (x1 - 6)2 + (x2 - 2)2 n restriciile x1 + 2 x 2 4
3 x1 + 2 x 2 12 x1 0 x2 0

Considerm punctul curent x1 = 2, x 2 = 3 pentru care: 2 + 2 3 = 4 , 3 2 + 2 3 = 12 , - 2 < 0 i -3 < 0. Rezult matricele A1, A2 i E n forma: 1 0 1 2 , A2 = A1 = 0 1 i E = 0. 3 2 Reprezentarea grafic a acestei probleme este urmtoarea:

Figura 27. Direcia admisibil de coborre


108

Zona haurat reprezint evoluia de coborre admis, iar funcia f(x) are o evoluie admis doar n acea arie.
d Considerm direcia d = 1 . Condiia ca s fie direcie admisibil d 2

d 1 2 d1 0; d = 1 . este: A1 d 0; d 3 d 2 2 2 Gradientul funciei este: f x1 = 2 ( x1 6) ; f ( x) f ( x ) = f 2 ( x 2 2) x 2 8 = . 2

x1 = 2 x2 =3

Pentru ca direcia considerat s fie direcie de coborre, este necesar ca:


f ( x ) T
x

d 0;

8 d1 + 2 d 2 < 0 .

Rezultatele anterior prezentate indic condiiile necesare i suficiente ca direcia d asociat unui punct x U s fie direcie admisibil de coborre i anume A1 d 0, E d = 0, f ( x) d < 0 . (5)

O asemenea condiionare nu permite stabilirea unei direcii admisibile de coborre unice (a se vedea exemplu prezentat). n ipoteza existenei mai multor soluii se pune problema stabilirii soluiei care asigur eficiena maxim n coborre (categoric, i n acest caz ca i n cazul tehnicilor de gradient evaluarea este local), pentru o ct mai rapid coborre este necesar ca f ( x) d s aib o valoare ct mai mic. Fr restricionri suplimentare, dac exist direcii d cu f ( x) d * < 0 atunci
109

soluia problemei va fi , cu vectorul soluiei d * caracterizat de un

. Prin urmare problema implic o normare care s limiteze valorile


vectorului d. Soluionarea efectiv poate fi realizat cu diverse condiii de normare:

P1 .

minimizeaz n restriciile

f ( x ) d
A1d 0

Ed = 0 1 di 1, i 1, n

P2 .

minimizeaz n restriciile

f ( x ) d A1d 0 Ed = 0 f ( x)d 1

P3 .

minimizeaz n restriciile

f ( x ) d A1d 0 Ed = 0 d d 1

Primele dou probleme sunt probleme de programare liniar iar ultima este o problem de programare ptratic. Considerm c problema programrii liniare i a programrii ptratice sunt cunoscute att sub aspect teoretic ct i implementativ. Din acest motiv ne vom rezuma la o serie de observaii legate strict de contextul general al problemei. Este evident c d = 0 este o soluie admisibil pentru oricare din problemele P1, P2 sau P3. Pentru o astfel de alegere, valoarea criteriului de calitate f ( x) d este nul. Prin urmare, dac exist o soluie admisibil
110

care minimizeaz criteriul atunci valoarea de minim va fi mai mic sau cel mult egal cu zero. n ipoteza c direcia d obinut ca soluie de minim asigur f ( x) d < 0 atunci direcia obinut constituie direcia admisibil de cutare i algoritmul continu. Dac soluia problemei d stabilete valoarea indicelui f ( x ) d = 0 atunci x, constituie un punct

Kuhn-Tucker i algoritmul se consider ncheiat. Vom prezenta n


continuare poate cel mai cunoscut algoritm ce utilizeaz cutarea pe direcii admisibile de coborre i anume algoritmul Zoutendijk. nainte de a trece la prezentarea algoritmului, sunt necesare cteva precizri legate de alegerea lungimii pasului de cutare. Am prezentat anterior condiii necesare astfel ca d s fie o direcie admisibil de coborre: numai dac A1 d 0 , E d = 0 i f ( x) d < 0 . Singura inegalitate care condiioneaz valorile lui > 0 este:
A2 ( x + d ) = A2 x + A2 d b2 ,

(6)

n condiiile A2 x < b . Prin urmare

A2 d b2 A2 x .
Notm n continuare: l = b2 A2 x, c = A2 d .

(7)

(8)

n aceste condiii, limitarea valorilor R pentru a asigura condiia de coborre va fi max unde max se obine n forma:

max

dac c 0 , = li min c ci > 0, dac c 0 i


111

(9)

Prezentm n continuare schia algoritmului Zontendijk pentru cazul restriciilor de tip egalitate:
Etapa de iniializare. Trebuie stabilit punctul de iniializare a cutrii
x1 U ( A x1 b, E x1 = d ) . Considerm k=1 i trecem la etapa de baz.

Etapa de baz. Pasul 1. Considerm c printr-o reordonare a inecuaiilor

restricii obinem partiiile A1, A2 astfel ca

A1 x k = b1 , E x k = e i

A2 x k < b2 . Se rezolv problema de programare liniar: minimizeaz n restriciile f ( x) d A1 d 0


Ed = 0 1 d j 1, j 1, n

Dac f ( xk ) d k = 0 atunci xk este un punct Kuhn-Tucker i algoritmul se oprete, dac nu se trece a pasul 2.
Pasul 2. Se determin lungimea pasului de cutare

k = arg min f ( x k + d k ) .
0 < max

Se determin noul punct de lucru x k +1 = x k + k d k . Pentru acest punct determinm restriciile active A1, A2. Iterm k k + 1 i relum pasul 1. n continuare vom prezenta aplicarea metodei prezentate pe un exemplu concret. Fie urmtoarea funcie obiectiv: f ( x, y ) = 2 x 2 + 2 y 2 2 x y 4 x 6 y
112

Se cere determinarea punctului de minim care asigur urmtoarele restricii: x + y 2 x + 5 y 5 0 x yo Utiliznd subrutina dac.m care implementeaz algoritmul propus, obinem urmtorul rezultat dintr-o iniializare x0 = [0 ; 0] .
x = 0 0 0.8333 0.8333 1.1290 0.7742

0.5 Punct final 0

Initializarea cautarii -0.5

-1 -1

-0.5

0.5

Figura 28. Graficul n procesul de cutare

113

3. Chestiuni de studiat

Se consider funcia obiectiv mpreun cu restriciile corespunztoare una din funciile prezentate n tabelul de mai jos (funcia va fi impus de conductorul lucrrii):
Nr. crt. Pct. ini. Valoare f(x0) Minim de minim

Funcia

Restricii

2 2 2 x1 + 2 x2 +

x1 + 2 x2 2 x1 0 x2 0
x1 + x 2 1

1.

+2 x1 x2 4 x1 6 x2

0.5, 0.5

-3.5

1 3 , 5 6

4.16

2.

x1 x2

x1 x2

x1 0 x2 0

[0, 0]

[0,1]
1.6, 0.8 13 17 , 18 17

-0.6

2 2 x1 + x2 4 x1

2 x1 + x2 4 x1 + 2 x2 6 x1 0 x2 0
2 x1 + 3 x2 6 x1 + 4 x2 5 x1 0 x2 0
2 x1 + 3 x2 13 2 x1 + x2 10 x1 0 x2 0
2 x1 3 x2 3 0 x1 + x2 3 0 2 x1 x2 4 0 x1 0 x2 0
114

3.

2 x2

[1,1]

-4

4.8

2 2 0.5 x2 + 0.5 x1

4.

x1 2 x2 + 5

[0, 0]

101 34

2 2 x1 + 0.2 x1

5.

2 3 x2 + 0.2 x2

[1,1]

-4.6

[ 2,3]

-10.4

2 2 x1 + x2 2.4 x1

6.

5.6 x2

[0,1]

-4.6

1.2, 1.8

-7.88

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

Lucrare de laborator 14
Metoda gradientului proiectat (cazul liniar)
1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i rularea unui algoritm bazat pe metoda gradienilor proiectai, pentru cazul liniar.
2. Prezentarea lucrrii

Considerm problema general de optimizare n prezenta restriciilor: minimizeaz f (x) n restricia x U R n , (1)

unde U reprezint mulimea punctelor admisibile, iar f (x) funcia continu cu derivate pariale continue pe U ( f ( x) C 1 (U ) ). n cadrul metodei celei mai rapide coborri, cutarea minimului se face prin construcia iterativ xk +1 = xk k f ( xk ) . (2)

n cazul n care direcia de antigradient nu este o direcie admisibil n raport cu mulimea U, se propune ca direcie de cutare proiecia lui xk + 1 pe mulimea U.

xk +1 = Pu ( xk k f ( xk )) k = 1,2,...
115

(3)

n care k > 0 . Dac mulimea U este convex, succesiunea de puncte de cutare {xk} este perfect definit. n cazul particular, U = Rn metoda coincide cu metoda celei mai rapide coborri. Dac mulimea U este convex i dac f ( x) C 1 (U ) notnd U* mulimea punctelor de minim pentru funcia f(x) cu x U atunci x * = Pu ( x * f ( x * )) (4)

n baza acestui rezultat i n ipoteza c n cadrul procesului iterativ (2), xk+1=xk atunci procesul iterativ se oprete i punctul xk satisface condiiile necesare de optim. Dac n plus, f(x) este o funcie convex, atunci xk = x* reprezint soluia de optim. n funcie de modul de alegere a lungimii pasului de cutare k , distingem mai multe proceduri de optimizare bazate pe gradieni proiectai. Prezentm n continuare cele mai utilizate proceduri de alegere a pasului de cutare: 1) Definim funcia scalar pe iteraia k: f k ( ) = I ( Pu ( xk f ( xk )) k = 1,2,... (5)

unde > 0 . Lungimea pasului de cutare se determin soluionnd problema de minim unidimensional
f k (k ) = inf f k ( ) = f k*
0

k > 0 .

(6)

Evident, pentru cazul U = Rn procedura iterativ (5) cu lungimea pasului de cutare k determinat de (6), coincide cu metoda celei mai rapide coborri.
116

2) Exist posibilitatea determinrii prin testare succesiv a unei valori k care asigur condiia de monotonie, f ( xk +1 ) < f ( xk ) . 3) Dac funcia f(x) continu, cu derivate pariale continue, asigur condiia Lipschitz pentru funcia gradient cu constanta L, putem alege pentru lungimea pasului de cutare valoarea

0 < 0 k unde , o sunt parametri de metod.

2 , ( L + 2)

(7)

4) Este posibil ca lungimea pasului de cutare k s fie predefinit cu asigurarea urmtoarelor restricii:

k > 0 k = 1,2,...,
ca de exemplu k = 1 . k +1

k = i
K =1

K =1

2 k

<,

(8)

Pentru accelerarea procesului de cutare, n locul iteraiei (3) se poate utiliza


xk +1 = xk + k ( Pu ( xk k f ( xk )) xk ) = = k Pu ( xk k f ( xk )) + (1 k ) xk 0 < k 1, k > 0

(9)

n care k i k pot fi alei n diverse moduri. Reamintim c indiferent de modul de alegere a lungimii pasului de cutare, pe fiecare iteraie este necesar s proiectm punctul rezultat pe mulimea restriciilor. Altfel spus, n cadrul fiecrei iteraii trebuie soluionat o problem de forma:
min x ( xk k f ( xk )) , x U
117
2

(10)

Din acest motiv, metoda poate fi aplicat numai pentru cazurile n care restriciile impuse determin o mulime U pentru care proiecia se obine relativ simplu. n continuare, vom prezenta un caz, pentru care proiecia gradientului pe mulimea generat de restricii se obine relativ simplu (metoda gradientului proiectat). Considerm cazul minimizrii unei funcii f ( x) : R n , pentru care restriciile de tip egalitate sau inegalitate sunt liniare: minimizeaz f(x) n restriciile A x b
Ex =e

(11)

unde A R mn , b R m1 , E R ln i e R l1 . Dac considerm un punct de lucru curent x R n i dac acest punct este interior mulimii U, oricare direcie este o direcie admisibil i o evoluie pe direcia de antigradient este posibil dac alegem un pas suficient de mic pentru a nu prsi frontiera mulimii U. n cazul n care punctul aparine frontierei mulimii U, evoluia pe sensul impus de antigradient impune n general evoluia n puncte ce nu satisfac restriciile impuse. Ideea metodei const n proiectarea direciei de antigradient pe frontiera domeniului i organizarea cutrii pe o astfel de direcie. Fie punctul x U pentru care putem stabili partiii corespunztoare astfel nct A1x = b, A2x <b i Ex = e. Evident, partiiile A1, A2, b1 i b2 se obin printr-o reordonare corespunztoare a liniilor matricelor A i b. Restriciile active pentru punctul x R n considerat, fixeaz o matrice A M = 1 E
118

pe care o presupunem de rang complet. Introducem matricea P =I MT(MMT)-1M. Evident, matricea P este simetric i involutiv i prin urmare P este o matrice proiector. Aplicnd operatorul P oricrui vector, obinem proiecia acestui vector n subspaiul restriciilor active. Pe ideea general, vom propune ca direcie de cutare, proiecia antigradientului n subspaiul restriciilor active, deci d = P f ( x) . Vom arta c n cazul n care P f ( x) 0 , direcia d = P f (x) este o direcie admisibil de cutare. n adevr:
f (x) d = f (x) P f (x) = f (x) P P f (x) = P f (x) < 0 ,
2

(12)

deci

este

direcie

de

coborre.

Pe

de

alt

parte,

M d = M P f ( x) = 0 i deci A1d = 0 , Ed = 0 care reprezint condiia


ca d s fie o direcie admis. n cazul n care Pf ( x) = 0 , obinem: Pf ( x) = (I M (M M ) 1 M ) f ( x) = f ( x) M (M M ) 1 M f ( x) Vom nota n continuare u ( M M ) 1 M ) f ( x) = w = . v n aceste condiii, A u P f ( x) = f ( x) + 1 = f ( x) A1 u + E v = 0 . E v

(13)

Facem observaia c A1 i E corespund gradienilor restriciilor active i prin urmare dac toate componentele lui u asigur u 0 atunci punctul x este un punct Kuhn-Tucker.

119

Dac vectorul u nu satisface condiia u 0 , exist cel puin o component u j < 0 . Considerm c n matricea A1 eliminm linia j obinnd A matricea 1 i notm P = 1 . Vom arta c P f ( x) 0 . E Presupunem prin absurd c P f ( x) = 0 i deci
( I M ( M M ) 1 M ) f ( x) = = f ( x) M ( M M ) 1 M f ( x) = = f ( x ) + M W = 0 n care ( M M ) 1 M f ( x) = W . Pe de alt parte, A1 u + E v = M W + r j u j , unde rj reprezint un vector corespunztor liniei j din A1. Prin urmare, 0 = f ( x) + M W + r ju j . Scznd egalitatea (13) i (14), obinem: M (W W ) + r j u j = 0 . (15) (14)

(13)

Cu ni 0 , egalitatea contrazice ipoteza c M este de rang complet. Prin urmare, P f ( x) 0 . Prin modul de definire, matricea P este i ea o matrice de proiecie i considernd d = P f ( x) , vom arta c d constituie o direcie admisibil de coborre. Deoarece P este proiector, d = P f ( x) este o direcie de coborre. Pentru a arta c d este o direcie admisibil, este suficient s artm c
A1 d 0 i Ed = 0. innd cont c M P = 0 , rezult:

A1 d = M P f ( x ) = 0 , E
120

(16)

i deci A1 d = 0 , Ed = 0. Rmne s artm c r j d 0 . nmulind egalitatea (4.66) cu r j P , obinem: 0 = r j P f ( x) + r j P (M W + r j u j ) = r j d + u j r j P r j .


Relaia a fost obinut innd cont c P M = 0 .
A1 R m n ER
ln

(17)

A1 = M R ( m + l ) n , E

(18) (19)

w = (

u M ) 1 M f ( x ) R ( m + l ) n = , ( n + l ) ( m + l ) v n x M
u1 . . . u j . . E = A1 . u m v1 . . . v l u1 . . . u j . . . E + r j u j . u m v1 . . . v l

[A

[ ]

(20)

Cum uj < 0 i r j P r j > 0 ( P proiector i deci matrice pozitiv definit), rezult c r j d 0 . Pe baza celor stabilite, prezentm un algoritm bazat pe metoda gradientului proiectat pe restricii liniare. n continuare, prezentm un algoritm (Rosen) pentru minimizarea funciilor scalare de mai multe variabile f ( x) : R n R , n cazul restriciilor poliedrale A x b, E x = e .
121

Etapa de iniializare. Se impune x1 R n pentru a satisface restriciile


impuse A x1 b i E x1 = e . Reordonm restriciile astfel nct putem A b fixa partiiile A = 1 , b = 1 nct A1 x1 = b1 i A2 x1 < b2 . Facem k = A b 2 2 1 i trecem la etapa de baz. A Etapa de baz. Pasul 1. Fie M = 1 . Dac M nu are nici un element, E atunci P = In, n caz contrar, P = 1 M ( M M ) 1 M . Calculm d = P f ( x k ) . Dac d k 0 , trecem la pasul 2. u Dac d k = 0 , calculm W = ( M M ) 1 M f ( x k ) . Fie W = . Dac v
u 0 ne oprim, iar xk este un punct Kuhn-Tucker. Dac nu, u 0 atunci

alege, u j < 0 , eliminm din A1 linia j-a i relum pasul 1.

Pasul 2. Se determin lungimea optim a pasului de cutare k soluionnd


problema:
minimalizeaz f ( x k + d k )

0 max unde max se determin ca i n cazul metodei direciilor admisibile de cutare. Construim x k +1 = x k + k d k , stabilim partiiile A1, A2 ale lui A i b1, b2 ale lui b nct A1 x k +1 = b1 , A2 x k +1 < b1 . Facem k k + 1 i relum pasul 1.

3. Chestiuni de studiat
Se consider funcia obiectiv mpreun cu restriciile corespunztoare una din funciile prezentate n tabelul urmtor (funcia va fi impus de conductorul lucrrii):
122

Nr. crt.

Funcia

Restricii

Pct. ini.

Valoare f(x0) Minim de minim

2 2 2 x1 + 2 x2 +

x1 + 2 x2 2 x1 0 x2 0
x1 + x 2 1

1.

+2 x1 x2 4 x1 6 x2

0.5, 0.5

-3.5

1 3 , 5 6

4.16

2.

x1 x2

x1 x2

x1 0 x2 0

[0, 0]

[0,1]
1.6, 0.8 13 17 , 18 17

-0.6

2 2 x1 + x2 4 x1

2 x1 + x2 4 x1 + 2 x2 6 x1 0 x2 0 2 x1 + 3 x2 6 x1 + 4 x2 5 x1 0 x2 0
2 x1 + 3 x2 13 2 x1 + x2 10 x1 0 x2 0
2 x1 3 x2 3 0 x1 + x2 3 0 2 x1 x2 4 0 x1 0 x2 0

3.

2 x2

[1,1]

-4

4.8

2 2 0.5 x2 + 0.5 x1

4.

x1 2 x2 + 5

[0, 0]

101 34

2 2 x1 + 0.2 x1

5.

2 3 x2 + 0.2 x2

[1,1]

-4.6

[ 2,3]

-10.4

2 2 x1 + x2 2.4 x1

6.

5.6 x2

[0,1]

-4.6

1.2, 1.8

-7.88

a) S se traseze graficul funciei considerate mpreun cu curbele de izonivel. b) S se evalueze eventualul punct de minim utiliznd algoritmul propus. c) S se reprezinte grafic evoluia n procesul de cutare.

123