Descărcați ca pdf sau txt
Descărcați ca pdf sau txt
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, P1 , P2 ,...)
Prima form de apelare ntoarce c rezultat minimul funciei fun din
intervalul

[x , x ] .
1

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)

f min search ( fun, x0 ) ;

2)

f min search ( fun, x0 , options ) ;

3)

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

f(x)

Procedure

3.81966

10.7701

initial

6.18034

32.0163

golden

2.36068

3.21213

golden

0.5

-0.25
7

parabolic

0.5

-0.25

parabolic

0.5

-0.25

parabolic

Optimization terminated successfully:


the

current

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

Func-count

min f(x)

Procedure

90

initial

72

expand

42

expand

expand

10

reflect

12

contract inside

46

103

-0.25

shrink

47

106

-0.25

shrink

...

Optimization terminated successfully:


the

current

satisfies

the

termination

criteria

using

OPTIONS.TolX of 1.000000e-012
and

F(X)

satisfies

the

convergence

OPTIONS.TolFun of 1.000000e-008
xm =
0.5000
8

criteria

using

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

2
1.5

0.5
x2

0.5
0

x1

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

Func-count

min f(x)

Procedure

-0.0005

initial

-0.0015

expand

-0.0015

reflect

91

191

-2.59808

shrink

92

192

-2.59808

reflect

93

196

-2.59808

shrink

...

Optimization terminated successfully:


the

current

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

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

Interval

f ( x ) = 2.012 x 2 1.15 x + 1.55


3

f ( x ) = 0.4375 x + 2.012 x + 2.437 x + 1.552


4

f ( x ) = 0.4653 x 0.4375 x + 6.465 x + 2.438 x 1


f ( x ) = 0.368 e

1.388 x

+ 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

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

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)

(2)

k = ak + ( bk-ak)

(3)

cu (0,1) i

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

ak+1
ak+1

k+1

k+1

bk

k+1 k+1 bk+1

dac f(k) > f(k)


dac f(k) < f(k)

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 )

(6)

i n final, dup prelucrri elementare:

2 + 1 = 0 .

(7)

Ecuaia (7) pune n eviden singura soluie interesant:

5 1
(0,1) .
2

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

ak

bk

bk a k

f ( k )

f ( k )

-3.0000

3.0000

6.0000

0.7933

2.2098

-3.0000

0.7082

3.7082

1.9242

0.7933

-1.5836

0.7082

2.2918

0.7933

0.8608

-1.5836

-0.1672

1.4164

1.0444

0.7933

-1.0426

-0.1672

0.8754

0.7933

0.7500

-0.7082

-0.1672

0.5410

0.7500

0.7659

-0.7082

-0.3738

0.3344

0.7565

0.7500

-0.5805

-0.3738

0.2067

0.7500

0.7522

-0.5805

-0.4528

0.1277

0.7510

0.7500

10

-0.5317

-0.4528

0.0789

0.7500

0.7503

11

-0.5317

-0.4829

0.0488

0.7502

0.7500

12

-0.5131

-0.4829

0.0301

0.7500

0.7500

13

-0.5131

-0.4944

0.0186

0.7500

0.7500

14

-0.5060

-0.4944

0.0115

0.7500

0.7500

15

-0.5016

-0.4944

0.0071

0.7500

0.7500

16

-0.5016

-0.4972

0.0044

0.7500

0.7500

17

-0.5016

-0.4988

0.0027

0.7500

0.7500

18

-0.5005

-0.4988

0.0017

0.7500

0.7500

19

-0.5005

-0.4995

0.0010

0.7500

0.7500

20

-0.5005

-0.4999

0.0006

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

2.0000

3.0000

4.0000

timp

11.1460

16.0230

21.0300

25.0360

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.

Funcie

Interval de
incertitudine
iniial

Valoare
de
minim

Minim

f ( x ) = x 4 + x3 + 5 x 2 + x + 2

[-3;3]

-0.1027

1.9491

f ( x ) = 5 x + x + 16

[-4;4]

-0.1

15.95

f ( x ) = sin( x ) cos( x )

[-2;2]

-0.7854

-1.4142

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

[-7;-3]

-4.9112

-5.0917

[-3;4]

0.3889

-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

care apropie abordarea ctre varianta optim n cazul foarte mic.


18

(1)

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:

i deci:

bk +1 a k +1 =

1
1
(b1 a1 ) + 2 (1 k )
k
2
2

bn +1 an +1 =

1
1
(b1 a1 ) + 2 (1 n ) <
n
2
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:

Intervalul de incertitudine iniial [a1 , b1 ] = [ 30,30] ;


Precizia de evaluare = 0.01 ;
Valoarea de dicernabilitate e = 0.0001 .

14
12

f(x)

10
8
6

x=-0.5
punct de minim

4
2
0
-3

-2

-1 -0.5 0

Figura 5. Graficul funciei propuse ca exemplu


20

Valorile intermediare i intervalul de incertitudine final sunt


prezentate n tabelul urmtor:
k

ak

bk

bk a k

1.0000

-30.0000

30.0000

60.0000

2.0000

-30.0000

0.0001

30.0001

3.0000

-15.0001

0.0001

15.0002

4.0000

-7.5001

0.0001

7.5002

5.0000

-3.7501

0.0001

3.7502

6.0000

-1.8751

0.0001

1.8752

7.0000

-0.9376

0.0001

0.9377

8.0000

-0.9376

-0.4686

0.4689

9.0000

-0.7032

-0.4686

0.2346

10.0000

-0.5860

-0.4686

0.1174

11.0000

-0.5274

-0.4686

0.0588

12.0000

-0.5274

-0.4979

0.0295

13.0000

-0.5128

-0.4979

0.0148

14.0000

-0.5055

-0.4979

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

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.

Funcie

Interval de
incertitudine
iniial

Valoare
de
minim

Minim

f ( x ) = 2 x 2 x sin( x )

[-3;4]

f ( x ) = 7 x + x + 31

[-4;4]

-0.0714

30.9643

f ( x ) = cos( x ) 2 sin( x )

[-1;4]

2.0345

-2.2361

f ( x ) = e3x cos( x ) sin( x )

[-4;1]

-0.92

-1.3381

[-3;4]

-0.0943

10.9519

f ( x ) = x 2 x + 5 x + x + 11

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

(2)

k = ak +

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

(3)

n funcie de rezultatul comparaiei valorilor f(k) i f(k), intervalul de


incertitudine va fi [ak, k] sau [k,bk]. Prin urmare:

Fn k
(bk a k )
Fn k +1

(4)

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

(5)

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

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

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 +

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

= ak +

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

= ak +

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)

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

(8)

Deoarece
1

rezult:
F

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

(9)

Procednd prin calcul direct, obinem pentru cazul f(k) < f(k):

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

(12)

Condiia de asigurare a unei precizii impuse va fi:

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:

b(k)

b(k)-

a(k)

-3.0000

3.0000

6.0000

-0.7082

0.7082

0.7933

2.2097

-3.0000

0.7082

3.7082

-1.5836

-0.7082

1.9242

0.7933

-1.5836

0.7082

2.2918

-0.7082

-0.1672

0.7933

0.8607

-1.5836

-0.1672

1.4164

-1.0426

-0.7082

1.0444

0.7933

-1.0426

-0.1672

0.8754

-0.7082

-0.5016

0.7933

0.7500

-0.7082

-0.1672

0.5410

-0.5016

-0.3738

0.7500

0.7659

-0.7082

-0.3738

0.3344

-0.5803

-0.5016

0.7565

0.7500

-0.5803

-0.3738

0.2066

-0.5016

-0.4525

0.7500

0.7523

-0.5803

-0.4525

0.1279

-0.5311

-0.5016

0.7510

0.7500

10

-0.5311

-0.4525

0.0787

-0.5016

-0.4820

0.7500

0.7503

11

-0.5311

-0.4820

0.0492

-0.5115

-0.5016

0.7501

0.7500

12

-0.5115

-0.4820

0.0295

-0.5016

-0.4918

0.7500

0.7501

13

-0.5115

-0.4918

0.0197

-0.5016

-0.5016

0.7500

0.7500

14

-0.5016

-0.4918

0.0098

-0.5016

-0.5016

0.7500

0.7500

a(k)

l(k)

m(k) teta1(k)

teta2(k)

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

1.0000

2.0000

3.0000

4.0000

timp

12.2170

16.0430

21.0310

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.

Funcie

Interval de
incertitudine
iniial

Valoare
de
minim

Minim

f ( x ) = x 4 + x3 + 5 x 2 + x + 2

[-3;3]

-0.1027

1.9491

f ( x ) = 5 x + x + 16

[-4;4]

-0.1

15.95

f ( x ) = sin( x ) cos( x )

[-2;2]

-0.7854

-1.4142

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

[-7;-3]

-4.9112

-5.0917

[-3;4]

0.3889

-0.2086

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

(1)

Soluia problemei de tip minimax este evident:

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

1
1
, facem k = 1 i trecem
=
n
b1 a1
2

la etapa de baz.
Etapa de baz. Pasul 1. Considerm k =

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

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

elementar n forma:

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:


(a k + bk ) / 2

f (c k )

f (c k )

ak

bk

bk a k

-3.0000

3.0000

6.0000

-3.0000

3.0000

-1.5000

-2.0000

1.7500

-1.5000

1.5000

-0.7500

-0.5000

0.8125

-0.7500

0.7500

-0.3750

0.2500

0.7656

-0.7500

-0.3750

0.3750

-0.5625

-0.1250

0.7539

-0.5625

-0.3750

0.1875

-0.4688

0.0625

0.7510

-0.5625

-0.4688

0.0938

-0.5156

-0.0313

0.7502

-0.5156

-0.4688

0.0469

-0.4922

0.0156

0.7501

-0.5156

-0.4922

0.0234

-0.5039

-0.0078

0.7500

10

-0.5039

-0.4922

0.0117

-0.4980

0.0039

0.7500

11

-0.5039

-0.4980

0.0059

-0.5009

-0.0018

0.7500

1.0000

Tabelul 5.1. Rezultatele obinute prin simulare


33

1.0000

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

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


34

forma

1.0000

2.0000

3.0000

4.0000

timp

12.2480

16.0330

21.0400

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.

Funcie

Interval de
incertitudine
iniial

Valoare
de
minim

Minim

f ( x ) = 2 x 2 x sin( x ) + 1

[-3;3]

f ( x ) = 7 x 2 + x + 31

[-4;4]

-0.0714

30.9643

f ( x ) = cos( x ) 2 sin( x )

[-1;4]

2.0345

-2.2361

[-4;1]

-0.92

-1.3381

3 x

f (x) = e

cos( x ) sin( x )

f ( x ) = x 2 x + 5 x + x + 11

[-3;4]

-0.0943

10.9519

f ( x ) = x 2 x sin( x ) + 2

[-4;4]

f ( x ) = x (1 cos( x )) sin( x )

[-3;5]

3.4368

6.434

f ( x ) = x (1 sin( x )) + cos( x )

[1;5]

-3

-4.4134

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

C1
C2<C1
C3<C2
C4<C3

y 2 = f ( x21 , x22 )

y1 = f ( x11 , x21 )

( x12 , x21 )

x1
Figura 10. Metoda cutrii ciclice dup axele de coordonate

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:

f ( x1 , x2 ) = x13 + x23 3 x1 x2 .
pornind de la un punct de iniializare x0 = [7,7] . pentru o precizie = 0.01.
T

8
6
4

x2

2
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

1.0153

7.0000
1.0309

2.6458

2.6458

1.0153

7.0000

1.0309

1.2754

1.0038

1.6266

1.0076

1.2754

1.0627

1.0038

1.6266

1.0076

1.1293

1.1293

1.0019

Columns 12 through 13
1.0009

1.0009

1.0019

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

Funcia

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

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

[3, 4]

[1,1]

4.

5 ( x1 3) + ( x2 5 )

[0, 0]

[3,5]

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

39

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

7.

2 x12 + 2 x22 + 2 x1 x2 4 x1 6 x2

[1,1]

1 4
3 , 3

8.

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

9.

5 x1 + 4 x1 x2 + x22 16 x1 12 x2

[1,1]

[ 4,14]

-152

10.

2 x12 + 2 x22 + x1 x2 11x1 8 x2

[ 3, 5]

[ 2,3]

-23

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

14
3

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
x k +1 cu forma d k = x k +1 x k .

x2
y|

y
x2

n figura 12, pentru o


funcie obiectiv ipotetic, sunt

x3

prezentate primele dou cicluri


de cutare ntr-un algoritm cu

x1

pas accelerat.

x1

Figura 12. Un ciclu de cutare

Cutarea se lanseaz n

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

Ctare ciclic

iniiale

Cutare ciclic

Pas
accelerat

Cutare ciclic

10

5.3111 5.3111 3.8921 3.8921 3.0036

3.0032 3.0032

10

10

1.0011 1.0011

1.7704 1.7704 1.2973 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

10

10

7
x2

11

x2

11

5
Pas accelerat

3
2

3
0

5
x1

10

a) cutare ciclic cu pas accelerat

5
x1

10

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

= 0 .1

= 0.01

= 0.001

Cutare ciclic

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

Timpi de calcul [sec.]

40

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:
Punct de Punct de Valoare de
iniializare minim
minim

Nr.
Crt

Funcia

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

( x1 1)

[3, 4]

[1,1]

[0, 0]

[3,5]

[0, 0]
[5, 4]

+ 100 ( x1 x2 )

4.

5 ( x1 3) + ( x2 5 )

5.

x12 x1 x2 + x22

6.

9 x12 + 16 x22 90 x1 128 x2

[1, 2]
[0,3]

7.

2 x12 + 2 x22 + 2 x1 x2 4 x1 6 x2

[1,1]

1 4
3 , 3

8.

x12 x1 x2 + x22 2 x1 + x2

[1, 0]

9.

5 x1 + 4 x1 x2 + x22 16 x1 12 x2

[3,5]
[1,1]

10.

2 x12 + 2 x22 + x1 x2 11x1 8 x2

[ 3, 5]

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

12.

x12 + x22 + x1 x2

13.

x12 + 16 x22

[1,1]
[ 2, 2]

[0, 0]
[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

[ 4,14]
[ 2,3]

0
-481

14
3

-1
-152
-23
-1.25
0
0
0

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
(a Tj d i* ) d i*

i =1

d *j =

daca j 2

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

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

= 0 .1

x 2 = 1.0001

x1 = 3.0003

= 0.01

x 2 = 1.0001
x1 = 3.0003

= 0.001

x 2 = 1.0001

= 0.0001

x1 = 3.0002
x 2 = 1.0001

Valoare funciei obiectiv

Numr de
iteraii

3.6748 10 12

3.6748 10 12

3.6748 10 12

7.7094 10 11

11

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

10
1

100
200

200
2
10
x2

0.1
0.1
1 1

10

0
100
-1

100

-2
-1

100
1

20
20

x1

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

x1 = 2 , x 2 = 1, x3 = 2 la o valoare f min = 0.
50

de

punctul

de

coordonate

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

= 0.1

Soluia de Valoarea funciei Numr de


optim
obiectiv
iteraii
x1 = 2.0279
x 2 = 1.0056

0.0014

37

3.5612e-5

43

1.5051e-7

52

9.0768e-9

58

4.3982e-11

11

4.3981e-11

11

4.3981e-11

11

2.1523e-11

15

x3 = 2.0279

x1 = 2.0044

= 0.01

x 2 = 1.0009
x3 = 2.0045
x1 = 2.0003

= 0.001

x 2 = 1.0001

ciclic.

Cutare

x3 = 2.0003
x1 = 2.0001

= 0.0001

x 2 = 1.0000
x3 = 2.0001
x1 = 1.9998

= 0 .1

x 2 = 1.0000
x3 = 1.9998
x1 = 1.9998

= 0.01

x 2 = 1.0000
x3 = 1.9998

pas accelerat

Cutare cu

= 0.001

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

= 0.0001

x 2 = 1.0000
x3 = 2.0000
51

x1 = 2.0000

= 0 .1

x 2 = 1.0000

1.3081e-11

13

1.3081e-11

13

1.3081e-11

13

1.3081e-11

13

x3 = 2.0000

x1 = 2.0000

= 0.01

x 2 = 1.0000
x3 = 2.0000
x1 = 2.0000

Rosenbrock.

= 0.001

x 2 = 1.0000
x3 = 2.0000

= 0.0001

x1 = 2.0000
x 2 = 1.0000
x3 = 2.0000

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.

Punct de

Funcia

Crt.

iniializare

Punct

Valoare

de

de

minim

minim

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

( x1 1)

[3, 4]

[1,1]

[0, 0]

[3,5]

+ 100 ( x1 x2 )

4.

5 ( x1 3) + ( x2 5 )

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

2 x12 + 2 x22 + 2 x1 x2

[1,1]

1 4
3 , 3

7.

4 x1 6 x2
53

14
3

8.

9.

10.

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

5 x1 + 4 x1 x2 + x22 16 x1

[1,1]

[ 4,14]

-152

[ 3, 5]

[ 2,3]

-23

12 x2
2 x12 + 2 x22 + x1 x2 11 x1
8 x2

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

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

f : n 1 , difereniabil pentru

Considerm funcia obiectiv


x n (f(x) este de clasa C1 pe ).

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

(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 .

(3)

Conform inegalitii Cauchy-Bunyakovski:


f ( x ) h T f ( x ) h f ( x ) h .

(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* ,
0

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:


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 ,

(17)

pentru care lungimea pailor k respect:


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

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 .

(19)

Dac considerm c aceste restricii sunt satisfcute, condiia de oprire


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:

> 0 - condiia de STOP. Alegem x1 n

Etapa de iniializare. Fie

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

(20)

n particular, pentru t = t 0 obinem:


x T (t 0 ) f ( x k ) = 0

(21)

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 )

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

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

Soluia de
minim
x1 = 3.2937
x 2 = 1.0983

x1 = 3.1325
x 2 = 1.0442

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

Valoarea funciei
obiectiv

Timp necesar
Numr
procesrii
de iteraii

f min = 0.0074

0.321 sec.

f min = 3.08 10 4

0.861 sec.

11
27

f min = 1.61 10 5

1.883 sec

81

f min = 7.5433 10 7

8.352 sec

335

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

timp procesare (sec.)

7
6
5
4
3
2
1
0

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

Distantafatademinim

10

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

1.5e+003

500

6
x2

1e+003
1.5e+003

5
100

100

3
10

500

2
1
1

1
4

1e+003

10
5

x1

Figura 19. Graficul evoluiei ctre optim


65

10

Considerm n continuare funcia de dou variabile:


f ( x1 , x 2 ) = 3 x13 x1 + x 23 3 x 22 1 ,
pentru care gradientul se evalueaz imediat n forma:
9 x12 1
.
f ( x1 , x 2 ) =
2

3 x2 6 x2
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

-3

2.6
2.4

x2

2.2
2

-5
-5

1.8

Solutia de
minim local

1.6
1.4

-4

-2

1.2
1

-3
-0.6

-0.4

-0.2

0.2
x1

0.4

0.6

Figura 20. Curbele de izonivel pentru funcia considerat


66

0.8

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

) + (1 x )
2

pentru care gradientul este de forma:

400 x1 x 2 x12 2(1 x1 )

f ( x1 , x 2 ) =

200 x 2 x12

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

x2

1
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.

Punct de

Funcia

Crt.

iniializare

Punct

Valoare

de

de

minim

minim

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

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

[3, 4]

[1,1]

4.

5 ( x1 3) + ( x2 5 )

[0, 0]

[3,5]

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

2 x12 + 2 x22 + 2 x1 x2

[1,1]

1 4
3 , 3

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

5 x1 + 4 x1 x2 + x22 16 x1

[1,1]

[ 4,14]

-152

7.
8.
9.

4 x1 6 x2

12 x2
69

14
3

10.

2 x12 + 2 x22 + x1 x2 11 x1
8 x2

[ 3, 5]

[ 2,3]

-23

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

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 ) +

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

(2)

i definim soluia x k* dat de condiia:


x k* n , g k ( x k* ) = infn g k ( x k ) .
x

(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 )

72

(6)

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 ( x1 3 x 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:

Metoda

Precizia

= 0 .1
= 0.01

Newtun

Metoda

= 0.001
= 0.0001

Soluia de
optim
x1 = 2.8795
x 2 = 0.9598

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

x1 = 3.0071
x 2 = 1.0024

74

Valoarea
funciei
obiectiv

Numr
de
iteraii

2.1072e-4

2.1072e-4

7.1986e-6

79

2.5359-9

340

x1 = 3.2937

= 0 .1

x 2 = 1.0983
x1 = 3.1325

= 0.01

x 2 = 1.0442

gradient

Metoda de

= 0.001
= 0.0001

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

0.0074

11

3.0856e-4

27

1.6176e-5

81

7.5433e-7

335

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

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

( x1 1)

[3, 4]

[1,1]

[0, 0]

[3,5]

4.

+ 100 ( x1 x2 )

5 ( x1 3) + ( x2 5 )
2

75

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

2 x12 + 2 x22 + 2 x1 x2

[1,1]

1 4
3 , 3

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

5 x1 + 4 x1 x2 + x22 16 x1

[1,1]

[ 4,14]

-152

[ 3, 5]

[ 2,3]

-23

7.
8.
9.

10.

4 x1 6 x2

12 x2
2 x12 + 2 x22 + x1 x2 11 x1
8 x2

14
3

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

14.

(1 x1 )2 + ( x1 x2 )2

[ 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.

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

(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

0 = d k1 H d k = d k1 H (f ( x k ) + k 1 d k 1 ) .

(2)

Rezult cu uurin:

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 ,

(4)

unde k = arg min f ( x k + d k ) .


>0

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

(5)

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


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

(6)

Se poate demonstra cu uurin c pentru o funcie ptratic


f ( x) = c x +

1
x x , vectorul gradient este de forma f ( x) = c + x .
2

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

(7)

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)

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 )

(9)

deoarece dk-1 i dk sunt H-conjugate.


Prin urmare, dac introducem (8) i (9) n (5) obinem:

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 ,

(13)

pentru i 1, k .
f ( xi ) = d + i 1 d i 1

(14)

i prin urmare:
f ( x k +1 ) f ( xi ) = k (d i + i 1 d i1 ) d k .

80

(15)

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 =

( 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 )

Pasul 3. Facem

2
2

. Iterm j j + 1 i relum pasul 1.

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

82

(20)

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 ) .

(24)

Aproximarea inversei hessianului n noua iteraie (matricea de


deflexie Dk+1) se construiete n forma:
Dk +1 = Dk + C k ,

(25)

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 .

(26)

Prin urmare
Ck (f ( xk +1 ) f ( xk )) = ( xk +1 xk ) Dk (f ( xk +1 ) f ( xk )) .

(27)

Dac notm direcia de cutare n iteraia k: d k = Dk f ( xk ) , din


(24) rezult
xk +1 xk = k d k = k .

(28)

Pentru simplificare vom nota:


q k = f ( xk +1 ) f ( xk ) .

(29)

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)

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
c K = 1 +
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 ( x1 3 x 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:
Soluia de
optim
x1 = 3.2712

Precizia

= 0 .1

x 2 = 1.0911
x1 = 3.1267

= 0.01

Valoarea funciei Numr de


obiectiv
iteraii

0.0054
2.5747e-4

x 2 = 1.0423

= 0.001
= 0.0001

x1 = 3.0467
x 2 = 1.0156
x1 = 3.0284
x 2 = 1.0095

12
20

4.7496e-6

32

6.5318e-7

40

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

timp (sec.)

20

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

h = 0.01

Precizie

e = 0 .1
e = 0.01

Soluia de
optim

x1 = 3.1838
x 2 = 1.0605

Valoarea
Numr de
funciei obiectiv
iteraii

0.0011

Algoritmul nu funcioneaz
89

11

e = 0 .1
h = 0.001

e = 0.01
e = 0.001
e = 0 .1

h = 0.0001

e = 0.01

e = 0.001

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

0.0055

12

1.4527e-4

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

1.6245e-6

20

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

Evaluare gradient 5.658 s


of-line
Evaluare gradient 8.533 s
on-line

= 0.01

= 0.001

10.506 s

18.346 s.

15.131 s

22.503 s

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

Metoda Fletcher-Reeves

= 0 .1

Soluia
de minim
x1 = 1.9998

Valoare
Numr de
funciei obiectiv
iteraii

x 2 = 1.0030

6.7001e-5

4.6722e-6

9.0904e-12

10

0.0036

26

6.3079e-5

36

4.8612e-7

48

x3 = 1.9998
x1 = 1.9993

= 0.01

x 2 = 0.9999
x3 = 1.9974
x1 = 2.0000

= 0.001

x 2 = 1.0000
x3 = 2.0000

x1 = 2.0348

= 0 .1

x 2 = 0.9999

Metoda de gradient

x3 = 2.0695
x1 = 2.0046

= 0.01

x 2 = 1.0000
x3 = 2.0092
x1 = 2.0004

= 0.001

x 2 = 1.0000
x3 = 2.0008

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

x3

6
4
2
Solutia de
minim.

0
10

10
8

6
4
2

x2

x1

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

Metoda
Newton
Metoda de
gradient

= 0 .1

= 0.01

= 0.001

= 0.0001

0.58 s

0.581 s

6.319 s

27.23 s

4.52 s

16.73 s

64.86 s

323.57 s.

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:
Funcia

Punct de
iniializare

Punct de
minim

Valoare
de
minim

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

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

[3, 4]

[1,1]

4.

5 ( x1 3) + ( x2 5 )

[0, 0]

[3,5]

5.

x12 x1 x2 + x22

6.

9 x12 + 16 x22 90 x1 128 x2

[1, 2]
[0,3]

[0, 0]
[5, 4]

7.

2 x12 + 2 x22 + 2 x1 x2 4 x1 6 x2

[1,1]

1 4
3 , 3

8.

x12 x1 x2 + x22 2 x1 + x2

[1, 0]

9.

5 x1 + 4 x1 x2 + x22 16 x1 12 x2

[3,5]
[1,1]

10.

2 x12 + 2 x22 + x1 x2 11 x1 8 x2

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

12.

x12 + x22 + x1 x2

13.

x12 + 16 x22

Nr.
Crt.

14.

(1 x1 )

+ ( x1 x2 )

0
-481

14
3

-1

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

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

-1.25

[ 5, 8]

[1,1]

-152
-23

0
0

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

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


>0

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 j D j q j q j D j
,
D j +1 = D j +

j qj
q j D j q j
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 j x

j q j

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

(3)

Matricea Dj este simetric i pozitiv definit i prin urmare exist


matricea D1j / 2 , astfel ca D j = D1j / 2 D1j / 2 . n aceste condiii, dac notm
a = D1j / 2 x, b = D1j / 2 q j expresia (3) devine:
2

(a a )(b b) (a b) 2 ( x p j )
x D j +1 x =
+
.
b b
j q 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 j q j > 0 .
Cu notaiile introduse:

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

(5)

Pasul de cutare j se alege prin minimizare unidimensional pe


direcia dj i deci d j f ( y j +1 ) = 0 . Aadar,

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

(6)

Cum Dj este pozitiv definit i f ( y j ) 0 , rezult c j q j > 0


( 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 j x = 0 .
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 1j / 2 x = D 1j / 2 q j . Aadar: x = q j .
Cum x 0 , rezult 0 . Cea de-a doua cerin este j x = 0 i deci

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


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

avnd gradientul uor de precizat n forma:


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

x
x

)
1
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

= 0 .1
= 0.01
= 0.001
= 0.0001

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

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

Valoarea funciei
obiectiv

Numr de
iteraii

f min = 0.0021

f min = 2.0942 10 4

f min = 1.3767 10 5

14

f min = 7.0163 10 6

44

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

300

200 3
3

200

4
3

200
300

10

2
x2

1
0.1
1

100

0.1
1
10

0
3

100
-1
-2
300
300
-3
-1

200
0

3
x1

300
6

Figura 26. Evoluia procesului de cutare

n tabelul 12.2 sunt prezentate valorile timpilor de procesare pentru


asigurarea preciziei impuse.
Precizia

Timp de
procesare

= 0 .1

= 0.01

= 0.001

= 0.0001

0.120 sec. 0.441 sec. 0.441 sec

0.901 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

avnd gradientul uor de calculat n forma:


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

x
x

)
1
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

= 0 .1
= 0.01

= 0.001

Soluia
de optim

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

Valoarea
funciei obiectiv

Numr
de iteraii

f min = 0.0018

f min = 6.0871 10 6

f min = 6.0815 10 6

= 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

Timp de calcul 0.451s

= 0.01

= 0.001

0.600s

0.611s

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

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

( x1 1)

[3, 4]

[1,1]

[0, 0]

[3,5]

+ 100 ( x1 x2 )

4.

5 ( x1 3) + ( x2 5 )

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

2 x12 + 2 x22 + 2 x1 x2

[1,1]

1 4
3 , 3

7.

4 x1 6 x2
103

14
3

8.
9.

10.

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

5 x1 + 4 x1 x2 + x22 16 x1

[1,1]

[ 4,14]

-152

[ 3, 5]

[ 2,3]

-23

12 x2
2 x12 + 2 x22 + x1 x2 11 x1
8 x2

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

14.

(1 x1 )2 + ( x1 x2 )2

[ 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.

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

(1)

Ex =e

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
A2
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

(3)

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

(4)

E(x + d ) = E x + E d = e

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
i E = 0.
, A2 =
A1 =
2
0 1
3
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
d2

d
1 2 d1
0; d = 1 .
este: A1 d 0;
2 d 2
3
d2
Gradientul funciei este:
f

x1 2 ( x1 6)

; f ( x)
=
f ( x ) =
f 2 ( x 2 2)

x 2

x1 = 2
x2 =3

8
= .
2

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


f ( x ) T

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

f ( x ) d

n restriciile

A1d 0

Ed = 0
1 di 1, i 1, n

P2 .

minimizeaz

f ( x ) d

n restriciile

A1d 0
Ed = 0
f ( x)d 1

P3 .

minimizeaz

f ( x ) d

n restriciile

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 .

(7)

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

(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

f ( x) d

n restriciile

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.8333

1.1290

0.8333

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.

Funcia

crt.

1.

2.

2 x12 + 2 x22 +

x1 + 2 x2 2

+2 x1 x2 4 x1

x1 0

6 x2

x2 0

x1 x2

x1 + x 2 1

x1 x2

x12 + x22 4 x1
3.

Restricii

2 x2

x1 0

Pct.
ini.

Valoare
f(x0)

4.

x1 2 x2 + 5

-3.5

1
3 ,

5
6

4.16

[0, 0]

[0,1]

-0.6

[1,1]

-4

1.6,
0.8

4.8

[0, 0]

13
17 ,

18
17

101
34

[1,1]

-4.6

[ 2,3]

-10.4

[0,1]

-4.6

1.2,
1.8

-7.88

0.5,
0.5

x2 0

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

2 x1 + 0.2 x12
5.

3 x2 + 0.2 x22

de
minim

x2 0

0.5 x22 + 0.5 x12

Minim

2 x1 + 3 x2 13
2 x1 + x2 10
x1 0
x2 0

x12 + x22 2.4 x1


6.

5.6 x2

2 x1 3 x2 3 0
x1 + x2 3 0
2 x1 x2 4 0
x1 0
x2 0
114

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

2
,
( L + 2)

(7)

unde , o sunt parametri de metod.


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 =

k = i
K =1

K =1

2
k

<,

(8)

1
.
k +1

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:
2

min x ( xk k f ( xk )) , x U
117

(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

(11)

Ex =e

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:
2

f (x) d = f (x) P f (x) = f (x) P P f (x) = P f (x) < 0 ,

deci

este

direcie

de

coborre.

Pe

de

alt

(12)

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) =

(13)

= f ( x) + M W = 0
n care ( M M ) 1 M f ( x) = W .
Pe de alt parte, A1 u + E v = M W + rj u j , unde rj reprezint un
vector corespunztor liniei j din A1. Prin urmare,
0 = f ( x) + M W + r ju j .

(14)

Scznd egalitatea (13) i (14), obinem:


M (W W ) + r j u j = 0 .

(15)

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 .

(17)

Relaia a fost obinut innd cont c P M = 0 .


A1 R m n
ER

w = (

[A

ln

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

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

[ ]

(18)
(19)

(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 =
A2
b2
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.

Funcia

crt.

1.

2.

2 x12 + 2 x22 +

x1 + 2 x2 2

+2 x1 x2 4 x1

x1 0

6 x2

x2 0

x1 x2

x1 + x 2 1

x1 x2

x12 + x22 4 x1
3.

Restricii

2 x2

x1 0

Pct.
ini.

Valoare
f(x0)

4.

x1 2 x2 + 5

-3.5

1
3 ,

5
6

4.16

[0, 0]

[0,1]

-0.6

[1,1]

-4

1.6,
0.8

4.8

[0, 0]

13
17 ,

18
17

101
34

[1,1]

-4.6

[ 2,3]

-10.4

[0,1]

-4.6

1.2,
1.8

-7.88

0.5,
0.5

x2 0

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

2 x1 + 0.2 x12
5.

3 x2 + 0.2 x22

de
minim

x2 0

0.5 x22 + 0.5 x12

Minim

2 x1 + 3 x2 13
2 x1 + x2 10
x1 0
x2 0

x12 + x22 2.4 x1


6.

5.6 x2

2 x1 3 x2 3 0
x1 + x2 3 0
2 x1 x2 4 0
x1 0
x2 0

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

S-ar putea să vă placă și