Sunteți pe pagina 1din 119

5

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:
1
min
argmin ( ), [ , ] x f x x a b R = .
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
[ ] b a,
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.
1
6
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) ( )
2 1
, , min x x fun bnd f x =
2) ( ) options x x fun bnd f x , , , min
2 1
=
3) ( ) ,... , , , , , min
2 1 2 1
P P options x x fun bnd f x =
Prima form de apelare ntoarce c rezultat minimul funciei fun din
intervalul [ ]
2 1
, x x . 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.
7
Impunerea structurii Options se realizeaz astfel:
options=optimset(param1,value1,param2,value2,).
Subrutina fminsearch va fi apelat n una din formele:
1) ( )
0
, min x fun search f ;
2) ( ) options x fun search f , , min
0
;
3) ( ) ,... 2 , 1 , , , min
0
P P options x fun search f .
Variabila de intrare
0
x 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:
( ) ( ) x x x f = 1 .
Se caut punctul de minim situat n intervalul [ ] 10 , 0 . 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 x f(x) Procedure
1 3.81966 10.7701 initial
2 6.18034 32.0163 golden
3 2.36068 3.21213 golden
4 0.5 -0.25 parabolic
8
5 0.5 -0.25 parabolic
6 0.5 -0.25 parabolic
Optimization terminated successfully:
the current x satisfies the termination criteria using
OPTIONS.TolX of 1.000000e-012
x =
0.5000
n cazul n care utilizm subrutina fminsearch.m, iniializarea
procesului de cutare se face printr-un singur punct i nu printr-un interval
ca n cazul precedent. Pentru aceeai problem ca i n exemplu precedent
lansarea cutrii se va face n forma:
xm=fminsearch(@f1,10,options)
unde
10
0
= x
reprezint condiia iniial de lansare a cutrii. Rezultatele
sunt prezentate n cele ce urmeaz:
Iteration Func-count min f(x) Procedure
1 2 90 initial
2 4 72 expand
3 6 42 expand
4 8 6 expand
5 10 2 reflect
6 12 0 contract inside
...
46 103 -0.25 shrink
47 106 -0.25 shrink
Optimization terminated successfully:
the current x satisfies the termination criteria using
OPTIONS.TolX of 1.000000e-012
and F(X) satisfies the convergence criteria using
OPTIONS.TolFun of 1.000000e-008
xm =
0.5000
9
n cazul funciilor de mai multe variabile, aplicaiile se soluioneaz
similar dar apar dificulti legate de nscrierea fiierelor funcie.
Considerm funcia:
( ) ( )
2 1 2 1 2 1
sin sin sin ) , ( x x x x x x f + + + = ,
pentru care se cere stabilirea unui minim pentru ] 2 / , 0 [ ,
2 1
x x .
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
0
0.5
1
1.5
2
-3
-2.5
-2
-1.5
-1
-0.5
0
x1
x2

Figura 1. Graficul funciei
10
Dac considerm ca punct de iniializare a cutrii ( ) 0 , 0
0
= x , 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
1 3 -0.0005 initial
2 5 -0.0015 expand
3 6 -0.0015 reflect
...
91 191 -2.59808 shrink
92 192 -2.59808 reflect
93 196 -2.59808 shrink
Optimization terminated successfully:
the current x satisfies the termination criteria using
OPTIONS.TolX of 1.000000e-012
and F(X) satisfies the convergence criteria using
OPTIONS.TolFun of 1.000000e-008
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
1
2
2 012 1 15 1 55 ( ) . . . f x x x = + [-3;3]
2
3 2
0 4375 2 012 2 437 1 552 ( ) . . . . f x x x x = + + + [-3;3]
3
4 3 2
0 4653 0 4375 6 465 2 438 1 ( ) . . . . f x x x x x = + + [-3;3]
4
1 388 0 6398
0 368 2 235
. .
( ) . .
x x
f x e e

= + [-2;2]
5
9 609 11 82 1 259 3 636 1 259 ( ) . . cos( . ) . sin( . ) f x x x = + [-2;2]

a) Determinai minimul funciei.
b) Afiai graficul funciei obiectiv.
11
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 [a
k
,b
k
].
Noul interval de incertitudine [a
k+1
,b
k+1
] se formeaz astfel:
[
k
,b
k
] , dac f(
k
) > f(
k
)
[a
k
,
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:
b
k

k
=
k
- a
k
(1)
2
12
O asemenea condiie este indeplinit dac alegem:

k
= a
k
+ (1- )(b
k
-a
k
) (2)
cu ) 1 , 0 ( i

k
= a
k
+ ( b
k
-a
k
) (3)
Pentru o astfel de alegere, indiferent de rezultatul comparaiei,
rezult:
) 1 , 0 ( ,
1 1
=

+ +

k k
k k
a b
a b
(4)
ii) 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.







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

k+1
= a
k+1
+ (1 - )(b
k+1
- a
k+1
) =
k
+ (1- ) (b
k
- a
k
) =
k
.

(5)
a
k

k

k
b
k
a
k+1

k+1
b
k+1
a
k+1

k+1
b
k+1

k+1

k+1

dac f(
k
) > f(
k
)
dac f(
k
) < f(
k
)

Figura 2. Schem de determinare a noului interval de cutare
13
innd cont de modul de definire al valorilor
k
i
k
obinem:
) ( ) ( ) 1 ( ) ( ) 1 (
k k k k k k k k
a b a a b a b a + = + + (6)
i n final, dup prelucrri elementare:
0 1
2
= + . (7)
Ecuaia (7) pune n eviden singura soluie interesant:
) 1 , 0 (
2
1 5

= .
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 [a
1
,b
1
] intervalul de incertitudine iniial, calculm

1
= a
1
+ (1- )(b
1
-a
1
) i
1
= a
1
+ ( b
1
- a
1
),
n care
618 . 0
2
1 5

= .
Se calculeaz f(
1
) i f(
1
), facem 1 = k i trecem la etapa de baz.
Etapa de baz. Pasul 1. Dac b
k
a
k
< , algoritmul se oprete i punctul
de optim este situat n intervalul [a
k
,b
k
]. 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 a
k+1
=
k
, b
k+1
= b
k
,
k+1
=
k
i
k+1
= a
k+1
+
(b
k+1
- a
k+1
). Calculm valoarea funciei n f(
k+1
) i trecem la pasul 4.
Pasul 3. Considerm a
k+1
= a
k
, b
k+1
=
k
,
k+1
=
k
i
k+1
= a
k+1
+ (1 -
)(b
k+1
- a
k+1
). Calculm valoarea funciei n f(
k+1
) i trecem la pasul 4.
Pasul 4. Se itereaz 1 + k k i se reia de la pasul 1.
14
Evaluarea numrului de iteraii necesare atingerii intervalului de
incertitudine final se stabilete cu uurin. Pe baza relaiei (6) stabilim:

n
n n
n n
a b
a b
a b
a b
a b
a b
=

+ + 1 1
2 2
3 3
1 1
2 2
(8)
prin urmare:
n n n
a b
a b
=

+ +
1 1
1 1
.
Condiia de atingere a intervalului de incertitudine final va fi:
< =
+ +
) (
1 1 1 1
a b a b
n
n n
. (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:
1 ) (
2
+ + = x x x f
i admite un punct de minim pentru: 5 . 0
min
= x i
4
3
) (
min
= x f .
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 3 , 3
1 1
= = b a ;
Precizia de evaluare a minimului . 01 . 0 =
15
Rezultatele obinute prin simulare sunt prezentate n tabelul urmtor:
k
k
a
k
b
k k
a b ) (
k
f ) (
k
f
1 -3.0000 3.0000 6.0000 0.7933 2.2098
2 -3.0000 0.7082 3.7082 1.9242 0.7933
3 -1.5836 0.7082 2.2918 0.7933 0.8608
4 -1.5836 -0.1672 1.4164 1.0444 0.7933
5 -1.0426 -0.1672 0.8754 0.7933 0.7500
6 -0.7082 -0.1672 0.5410 0.7500 0.7659
7 -0.7082 -0.3738 0.3344 0.7565 0.7500
8 -0.5805 -0.3738 0.2067 0.7500 0.7522
9 -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

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.
Tabelul 2.1. Rezultatele obinute prin simulare
16
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.






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 4 , 1 , 10

k
k

pornind de la un interval de incertitudine iniial . 3 , 3
1 1
= = b a
k 1.0000 2.0000 3.0000 4.0000
timp 11.1460 16.0230 21.0300 25.0360

Figura 3. Evoluia intervalului de incertitudine
Tabelul 2.2. Variaia timpului n funcie de precizie
17
Graficul dependenei timpului de calcul n funcie de precizia impus
este prezentat n figura urmtoare:



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
1
4 3 2
5 2 ( ) f x x x x x = + + + + [-3;3] -0.1027 1.9491
2
2
5 16 ( ) f x x x = + + [-4;4] -0.1 15.95
3
( ) sin( ) cos( ) f x x x = [-2;2] -0.7854 -1.4142
4 5 ( ) cos( ) sin( )
x
f x e x x = [-7;-3] -4.9112 -5.0917
5
2
( ) cos( ) f x x x x = [-3;4] 0.3889 -0.2086

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

Figura 4. Evaluarea timpilor de calcul pentru diverse
precizii impuse
18
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 :
2
a b
= = , caz n care, n cadrul fiecrei
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:

=
2
a b
i +

=
2
a b
(1)

care apropie abordarea ctre varianta optim n cazul foarte mic.
3
19
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 1 = k i trecem la etapa de baz.
Etapa de baz. Pasul 1. Dac b
k
-a
k
< , algoritmul se oprete, iar minimul
se gsete undeva n intervalul [a
k
;b
k
]. Dac nu, atunci se calculeaz:

+
=
2
k k
k
b a
, +
+
=
2
k k
k
b a
i se trece la pasul 2.
Pasul 2. Dac ) ( ) (
k k
f f < atunci
k k k k
b a a = =
+ + 1 1
, iar n cazul n
care ) ( ) (
k k
f f > , atunci
k k k k
b b a = =
+ + 1 1
, . Se itereaz 1 + k k i se
reia pasul 1.
n privina numrului de iteraii pentru o precizie final impus,
apreciem cu uurin:
)
2
1
1 ( 2 ) (
2
1
1 1 1 1
k k
k k
a b a b + =
+ +
(2)

i deci: < + =
+ +
)
2
1
1 ( 2 ) (
2
1
1 1 1 1
n n
n n
a b a b
de unde putem determina numrul de iteraii necesar obinerii minimului cu
o precizie impus.
20
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:
1 ) (
2
+ + = x x x f
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 .
4
3
,
2
1
= =
opt opt
y x Aplicm
algoritmul cutrii dihotomice pentru soluionarea problemei enunate
setnd parametrii subrutinei prezentate n Anexa 1 astfel:
Intervalul de incertitudine iniial ] 30 , 30 [ ] , [
1 1
= b a ;
Precizia de evaluare 01 . 0 = ;
Valoarea de dicernabilitate 0001 . 0 = e .











-3 -2 -1 -0.5 0 1 2 3
0
2
4
6
8
10
12
14
x
f
(
x
)
x=-0.5
punct de minim
Figura 5. Graficul funciei propuse ca exemplu
21
Valorile intermediare i intervalul de incertitudine final sunt
prezentate n tabelul urmtor:

k
k
a
k
b
k k
a b
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
7.0000
8.0000
9.0000
10.0000
11.0000
12.0000
13.0000
14.0000
-30.0000
-30.0000
-15.0001
-7.5001
-3.7501
-1.8751
-0.9376
-0.9376
-0.7032
-0.5860
-0.5274
-0.5274
-0.5128
-0.5055
30.0000
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
-0.4686
-0.4686
-0.4686
-0.4686
-0.4979
-0.4979
-0.4979
60.0000
30.0001
15.0002
7.5002
3.7502
1.8752
0.9377
0.4689
0.2346
0.1174
0.0588
0.0295
0.0148
0.0075


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 5 , 5
1 1
= = b a se determin intervalul
de timp necesar pentru a asigura o precizie de . 4 , 3 , 2 , 1 , 10

k unde
k

k 1 2 3 4
timp 14.0200 20.0290 28.0400 34.90

Tabelul 3.1. Rezultatele metodei dihotomice
Tabelul 3.2. Variaia timpului n funcie de precizie
22
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
1
2
2 ( ) sin( ) f x x x x = [-3;4] 0 0
2
2
7 31 ( ) f x x x = + + [-4;4] -0.0714 30.9643
3
2 ( ) cos( ) sin( ) f x x x = [-1;4] 2.0345 -2.2361
4
3
( ) cos( ) sin( )
x
f x e x x

= [-4;1] -0.92 -1.3381


5
4 3 2
2 5 11 ( ) f x x x x x = + + + [-3;4] -0.0943 10.9519

Determinai minimul funciei, impunnd diferite precizii de calcul al
acestuia. De asemenea, afiai graficul funciei obiectiv.
23
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
k k
k k
a b
a b

+ + 1 1

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:

F
K+1
= F
K


+ F
K-1
, cu F
0
= F
1
= 1. (1)
4
24
Dac considerm n cadrul iteraiei k, intervalul de incertitudine
iniial ca fiind [a
k
,b
k
], alegerea punctelor intermediare de test se face astfel:

) (
1
1
k k
k n
k n
k k
a b
F
F
a + =
+

(2)

) (
1
k k
k n
k n
k k
a b
F
F
a + =
+

. (3)

n funcie de rezultatul comparaiei valorilor f(
k
) i f(
k
), intervalul de
incertitudine va fi [a
k
,
k
] sau [
k
,b
k
]. Prin urmare:
) (
1
1 1 k k
k n
k n
k k k k
a b
F
F
a a b = =
+

+ +
(4)
sau
) ( ) (
1 1
1
1 1 k k
k n
k n
k k
k n
k n
k k k k k k
a b
F
F
a b
F
F
a b b a b = = =
+

+

+ +
. (5)
Prin urmare, indiferent de rezultatul comparaiei valorilor f(
k
) i f(
k
),
obinem urmtorul rezultat:
) (
1
1 1 k k
k n
k n
k k
a b
F
F
a b =
+

+ +
. (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 [a
k
,b
k
] i alegem valorile
k
<
k
, conform relaiilor (2) i (3).
Presupunem cazul f(
k
) > f(
k
) care impune o incertitudine final [a
k+1
, b
k+1
]
= [
k
,
k
].
Aadar:
25
= + + =
= + = + =
+

+ +


+ +


+ +
)) ( ( ) (
) ( ) (
1
1
1 1
2
1
1
2
1 1
2
1 1
k k
k n
k n
k k
k n
k n
k k
k n
k n
k
k k
k n
k n
k k k
k n
k n
k k
a b
F
F
a b
F
F
a b
F
F
a
a b
F
F
a b
F
F
a
) ( ) 1 ( ) (
1
1 2
1
1
k k
k n
k n
k n
k n
k k
k n
k n
k
a b
F
F
F
F
a b
F
F
a + + =
+


+

. (7)

Deoarece


1 1
1 1
1
1
1
+

+
+
+

=

=
k n
k n
k n
k n k n
k n
k n
F
F
F
F F
F
F
, (8)

rezult:

k k k
k n
k n
k k k
k n
k n
k n
k n
k k
a b
F
F
a a b
F
F
F
F
a = + =

+ + =
+

+

+

+
) ( ) (
1 1
2
1
1
1
. (9)

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

k k
=
+1
. (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:

2
1
1 1
F
F
a b
a b
n n
n n
=



3
2
2 2
1 1
F
F
a b
a b
n n
n n
=



(11)
26


n
n
F
F
a b
a b
1
1 1
2 2
=


Rezultatul se obine imediat:

n
n n
F a b
a b 1
1 1
=

. (12)

Condiia de asigurare a unei precizii impuse va fi:

) (
1
1 1
a b
F
a b
n
n n
= (13)
din care putem determina valoarea lui n:
/ ) (
1 1
a b F
n
> .
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 [a
1
,b
1
] i determinm n din
condiia / ) (
1 1
a b F
n
> . Se calculeaz:
) (
1 1
2
1 1
a b
F
F
a
n
n
+ =

, ) (
1 1
1
1 1
a b
F
F
a
n
n
+ =


i valorile corespunztoare: f(
1
) i f(
1
).
Impunem 1 = k 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.
27
Pasul 2. Se reiniializeaz
k k
a =
+1
,
k k
b b =
+1
i se determin
k k
=
+1
,
) (
1 1
2
1 1 + +


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

Pasul 3. Se reiniializeaz
k k
a a =
+1
,
k k
b =
+1
i se determin:
) (
1 1
2
1 1 + +


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

Pasul 4. Iterm 1 + k k i relum de la pasul 1.

Pasul 5. Facem
1
=
n n
i + =
n n
. Dac f(
k
) > f(
k
), atunci
n n
a =
i
1
=
n n
b b . n caz contrar,
1
=
n n
a a i
n n
b = . Punctul de optim va fi
situat n intervalul [a
n
, b
n
].
Exemplul 4.1. Comportarea algoritmului de cutare generat de metoda
Fibonacci va fi testat pe funcia 1 ) (
2
+ + = x x x f , 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 3 , 3
1 1
= = b a ;
Precizia de determinare a minimului 01 . 0 = ;
Valoarea de discernabilitate
6
1
10

= e .
28
Rezultatele obinute prin rularea programului sunt prezentate n tabelul 4.1:

k a(k) b(k)
b(k)-
a(k)
l(k) m(k) teta1(k) teta2(k)
1 -3.0000 3.0000 6.0000 -0.7082 0.7082 0.7933 2.2097
2 -3.0000 0.7082 3.7082 -1.5836 -0.7082 1.9242 0.7933
3 -1.5836 0.7082 2.2918 -0.7082 -0.1672 0.7933 0.8607
4 -1.5836 -0.1672 1.4164 -1.0426 -0.7082 1.0444 0.7933
5 -1.0426 -0.1672 0.8754 -0.7082 -0.5016 0.7933 0.7500
6 -0.7082 -0.1672 0.5410 -0.5016 -0.3738 0.7500 0.7659
7 -0.7082 -0.3738 0.3344 -0.5803 -0.5016 0.7565 0.7500
8 -0.5803 -0.3738 0.2066 -0.5016 -0.4525 0.7500 0.7523
9 -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


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.

Tabelul 4.1. Rezultatele obinute prin simulare
29

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
4 , 1 , 10 =

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


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


Figura 7.Convergena algoritmului
Tabelul 4.2. Variaia timpului n funcie de precizie
Figura 8. Dependena timpului
n funcie de precizia impus
30
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
1
4 3 2
5 2 ( ) f x x x x x = + + + + [-3;3] -0.1027 1.9491
2
2
5 16 ( ) f x x x = + + [-4;4] -0.1 15.95
3
( ) sin( ) cos( ) f x x x = [-2;2] -0.7854 -1.4142
4 5 ( ) cos( ) sin( )
x
f x e x x = [-7;-3] -4.9112 -5.0917
5
2
( ) cos( ) f x x x x = [-3;4] 0.3889 -0.2086

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










31
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 ] , [ : ) ( b a x f 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 [a
k
,b
k
], alegem un punct de lucru
k k k
b a < < i dac evalum derivata ) (
|
k
f , atunci putem avea
urmtoarele situaii:
i) 0 ) (
|
=
k
f . Prin urmare,
k
este un punct de staionaritate i
reprezint soluia de minim (deoarece ) (x f este convex);
ii) 0 ) (
|
>
k
f . n aceste condiii, pentru
k
> , 0 ) ( ) (
|
>
k k
f
i cum funcia este convex, rezult:
k k
f f > ), ( ) ( .
Aadar, intervalul de incertitudine rezultat va fi n stnga lui
k
, deci:
[a
k+1
, b
k+1
] = [a
k
,
k
];
iii) 0 ) (
|
<
k
f i 0 ) ( ) (
|
>
k k
f pentru
k
< i prin urmare,
k k
f f < ), ( ) ( . Noul interval de incertitudine va fi n dreapta lui
k
:
[a
k+1
, b
k+1
] = [
k
, b
k
].
5
32
Aadar, n funcie de rezultatul comparaiei, intervalul de incertitudine
dup iteraia k va fi [a
k
,
k
] sau [
k
, b
k
]. Alegerea valorii de test
k
se va
face astfel nct s minimizm incertitudinea final:

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

Soluia problemei de tip minimax este evident:


2
k k optim
k
b a +
= . (2)

Valoarea de test se alege la jumtatea intervalului de incertitudine
[a
k
,b
k
] i indiferent de rezultatul comparaiei,


2
1
1 1
=

+ +
k k
k k
a b
a b
. (3)

Metoda impune imediat algoritmul cu njumtirea intervalului de cutare:
Etapa de iniializare. Fie [a
1
, b
1
] intervalul de incertitudine iniial i
lungimea admis pentru intervalul de incertitudine final. Presupunem
cunoscute att funcia ] , [ : ) (
1 1
b a x f , ct i derivata acesteia. Stabilim
cea mai mic valoare n pentru care
1 1
1
2
1
a b
n

= , facem 1 = k i trecem
la etapa de baz.
Etapa de baz. Pasul 1. Considerm
2
k k
k
b a +
= i evalum ) (
|
k
f .
Dac 0 ) (
|
=
k
f , algoritmul se oprete i
k
reprezint soluia de optim.
Dac 0 ) (
|
>
k
f trecem la pasul 2, iar dac 0 ) (
|
<
k
f trecem la pasul 3.
Pasul 2. Facem
k k
a a =
+1
,
k k
b =
+1
i trecem la pasul 4.
33
Tabelul 5.1. Rezultatele obinute prin simulare
Pasul 3. Facem
k k
a =
+1
,
k k
b b =
+1
i trecem la pasul 4.
Pasul 4. Iterm 1 + k k 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 1 ) (
2
+ + = x x x f , iar derivata se obine
elementar n forma: 1 2 + = x
dx
df
. n cadrul subrutinelor de evaluare a
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 [ ] 3 , 3 = = b a ;
Precizia de calcul 01 . 0 = .
Rezultatele obinute prin rularea programului sunt prezentate n tabelul 5.1:
k
k
a
k
b
k k
a b 2 / ) (
k k
b a + ( )
k
c f ( )
k
c f
1 -3.0000 3.0000 6.0000 0 1.0000 1.0000
2 -3.0000 0 3.0000 -1.5000 -2.0000 1.7500
3 -1.5000 0 1.5000 -0.7500 -0.5000 0.8125
4 -0.7500 0 0.7500 -0.3750 0.2500 0.7656
5 -0.7500 -0.3750 0.3750 -0.5625 -0.1250 0.7539
6 -0.5625 -0.3750 0.1875 -0.4688 0.0625 0.7510
7 -0.5625 -0.4688 0.0938 -0.5156 -0.0313 0.7502
8 -0.5156 -0.4688 0.0469 -0.4922 0.0156 0.7501
9 -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

34
Figura 9. Convergena algoritmului
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 498 . 0 , 5039 . 0 [
11 11
= = b a ], eroarea de poziionare
fiind egal cu . 0059 . 0 = Convergena ctre intervalul de incertitudine
final poate fi urmrit n figura urmtoare:



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

k
k
. Rezultatele obinute sunt prezentate n tabelul 5.2:
35
Tabelul 5.2. Variaia timpului n funcie de precizie
k 1.0000 2.0000 3.0000 4.0000
timp 12.2480 16.0330 21.0400 26.0480

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
1
2
2 1 ( ) sin( ) f x x x x = + [-3;3] 0 1
2
2
7 31 ( ) f x x x = + + [-4;4] -0.0714 30.9643
3
2 ( ) cos( ) sin( ) f x x x = [-1;4] 2.0345 -2.2361
4
3
( ) cos( ) sin( )
x
f x e x x

= [-4;1] -0.92 -1.3381


5
4 3 2
2 5 11 ( ) f x x x x x = + + + [-3;4] -0.0943 10.9519
6
2
2 ( ) sin( ) f x x x x = + [-4;4] 0 2
7
1 ( ) ( cos( )) sin( ) f x x x x = [-3;5] 3.4368 6.434
8
1 ( ) ( sin( )) cos( ) f x x x x = + [1;5] -3 -4.4134

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







36
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
n
Ox Ox Ox ,....... ,
2 1
, 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
2 1
Ox x ,
curbele trasate reprezint aa numitele curbe de izonivel care sunt grafice
ale locului geometric din plan ce satisfac urmtoarea condiie:
. ) , (
2 1
const x x f = (Din pcate, o astfel de reprezentare grafic este posibil
numai pentru funcii de dou variabile).
Punctul de iniializare a cutrii se consider ) , (
21 11 1
x x f y = .
Pstrnd neschimbat valoarea
21
x , urmrim o procedur de minimizare
dup direcia
1
x
O pn la atingerea minimului parial ) , (
21 12
x x . n
continuare, pstrm valoarea
12 1
x x = procednd la o minimizare pe direcia
6
37
2
x
O , pn la atingerea valorii ) , (
22 21 2
x x f y = . 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
2
y .

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
1 1
e d = ,
2 2
e d = , ...
n n
e d = , unde e
i

reprezint baza canonic ortogonal pentru
n
. Se impune iniializarea lui
1
x i se consider
1 1
x y = i 1 = = j k i se trece la etapa de baz.

Etapa de baz. Pasul 1. Se determin
) ( min arg
1
j j j
d y f + =


i se calculeaz
j j j j
d y y + =
+

1
. Dac n j < atunci 1 + j j i se reia
pasul 1. Dac j = n, se trece la pasul 2.
Pasul 2. Considerm
1 1 + +
=
n k
y x . Dac <
+
|| ||
1 k k
x x , atunci algoritmul
se oprete. n caz contrar,
1 1 +
=
n
x y , 1 = j i 1 + k k i se reia pasul 1.
Figura 10. Metoda cutrii ciclice dup axele de coordonate
) , (
22 21 2
x x f y =
) , (
21 11 1
x x f y = ) , (
21 12
x x
C1
C2<C1
C3<C2
C4<C3
x
1
x
2
0
38
Observaii
Pentru o astfel de procedur, direciile de cutare sunt dictate de
modul de prezentare a funciei obiectiv. Oricare schimbare a axelor de
coordonate (rotaii, translaii) care nu schimb efectiv minimul funciei i
nici complexitatea, poate determina o cretere sau o scdere a eficienei
metodei propuse (acest rezultat este exploatat n metoda cutrii ciclice cu
pas accelerat ce urmeaz a fi prezentat).
Prezentm n continuare modul de utilizare a acestei proceduri pentru
minimizare funciei:
( ) . 3 ,
2 1
3
2
3
1 2 1
x x x x x x f + =
pornind de la un punct de iniializare [ ] . 7 , 7
0
T
x = pentru o precizie . 01 . 0 =
-8 -6 -4 -2 0 2 4 6 8
-8
-6
-4
-2
0
2
4
6
8
x1
x
2

Figura 11. Curbele de izonivel pentru funcia prezentat
39
Aplicnd algoritmul prezentat materializat n subrutina coord.m,
obinem urmtoarele rezultate:
y =
1.0009
1.0005
A =
Columns 1 through 11
7.0000 2.6458 2.6458 1.2754 1.2754 1.0627
1.0627 1.0153 1.0153 1.0038 1.0038
7.0000 7.0000 1.6266 1.6266 1.1293 1.1293
1.0309 1.0309 1.0076 1.0076 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:
Nr. Crt Funcia
Punct
de
iniializare
Punct de
minim
Valoare de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ]
1, 1
[ ]
2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ] 3, 4 [ ] 1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
40
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ]
0, 3
[ ]
5, 4 -481
7.
2 2
1 2 1 2 1 2
2 2 2 4 6 + + x x x x x x [ ] 1,1
1 4
,
3 3




14
3

8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1 2
5 4 16 12 + + x x x x x x [ ] 1,1 [ ] 4,14 -152
10.
2 2
1 2 1 2 1 2
2 2 11 8 + + x x x x x x [ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ] 1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ]
2, 2
[ ]
0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.









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

n figura 12, pentru o
funcie obiectiv ipotetic, sunt
prezentate primele dou cicluri
de cutare ntr-un algoritm cu
pas accelerat.
Cutarea se lanseaz n
1
x i dup evalurile minimului n lungul direciilor
1
Ox i
2
Ox , obinem
punctul
2
x . Urmeaz un pas accelerat; n fapt, un proces de minimizare pe
direcia
1 2 1
x x d = care ofer ca soluie un punct y. Acest punct constituie
punctul de reiniializare a unui nou procedeu de cutare ciclic dup axele
x
1
x
2
x
1
x
2
x
3
y
y
|
Figura 12. Un ciclu de cutare
0
7
42
de coordonate care stabilete soluia
3
x . n continuare, intercalm un nou
pas accelerat pe direcia
2 3 2
x x d = i procedura continu pn la
atingerea condiiei de STOP: <
+
|| ||
1 k k
x x .

Prezentm n continuare algoritmic metoda propus:
Etapa de iniializare. Se impune 0 > condiia de ncheiere a procesului
de cutare i
n
x
1
punctul de iniializare a cutrii. Considerm
1 1
x y =
i 1 = = j k i se trece la etapa de baz.
Etapa de baz. Pasul 1. Calculm
) ( min arg
1
j j j
d y f + =


i construim
j j j j
d y y + =
+

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

Pasul 2. Construim direcia de cutare
k k
x x d =
+1
i determinm
) ( min arg
1
*
1
d y f
k
+ =
+

.
Impunem 1 , 1 ,
*
1 1
+ = + =
+
k k j d x y
k
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.
43
Considerm funcia obiectiv ce urmeaz a fi modificat de forma:
2
2 1
4
1 2 1
) 3 ( ) 3 ( ) , ( x x x x x f + = .
Pentru minimizarea funciei utilizm metoda cutrii ciclice cu pas
accelerat implementat prin subrutina Matlab sub denumirea coord_acc.
Pentru condiia iniial 10 , 10
2 1
= = x x i o precizie 001 . 0 = e obinem
soluia de minim:

0011 . 1 , 0032 . 3
2 1
= = x x .

Rezultatele comparative sunt prezentate n tabelul 7.1:

Cond
iniiale
Ctare ciclic Cutare ciclic
Pas
accelerat
Cutare ciclic
10 5.3111 5.3111 3.8921 3.8921 3.0036 3.0032 3.0032
10 10 1.7704 1.7704 1.2973 1.0011 1.0011 1.0011


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.
Tabelul 7.1. Rezultatele pentru exemplul considerat
44
0 5 10
2
3
4
5
6
7
8
9
10
11
x1
x
2
0 5 10
2
3
4
5
6
7
8
9
10
11
x1
x
2
Pas accelerat





Considerm funcia (funcia Rosenbrock):

2
1
2 2
1 2 2 1
) 1 ( ) ( 100 ) , ( x x x x x f + = .

i un punct de iniializare 10 , 10
2 1
= = x x .
Aplicm procedura de minimizare utiliznd metoda cutrii ciclice cu
pas accelerat pentru o precizie de evaluare a punctului de minim de forma
3 , 2 , 1 , 10 =

k
k
i vom stabili timpii de calcul necesari pentru a asigura
precizia impus.

Precizia 1 . 0 = 01 . 0 = 001 . 0 =
Cutare ciclic 0.07sec. 0.451sec. 47.067sec.
Cutare cu pas accelerat 0.12sec. 0.311sec. 4.36sec

a) cutare ciclic cu pas accelerat b) cutare ciclic dup axele
de coordonate

Figura 13. Rezultatele metodei dihotomice
Tabelul 7.2. Rezultatele pentru exemplu
45
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.
1 2 3
0
10
20
30
40
50
Precizia impusa prin k.
T
i
m
p
i

d
e

c
a
l
c
u
l

[
s
e
c
.
]


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.
Figura 14. Dependena timpului de calcul - precizie
46
3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a
crei form este prezentat n tabelul de mai jos:
Nr.
Crt
Funcia
Punct de
iniializare
Punct de
minim
Valoare de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ]
1, 1
[ ]
2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ]
3, 4
[ ]
1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ] 1, 2 [ ] 0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ] 0, 3
[ ] 5, 4 -481
7.
2 2
1 2 1 2 1 2
2 2 2 4 6 + + x x x x x x [ ] 1,1
1 4
,
3 3




14
3

8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1 2
5 4 16 12 + + x x x x x x [ ]
1,1
[ ]
4,14 -152
10.
2 2
1 2 1 2 1 2
2 2 11 8 + + x x x x x x [ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ]
1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ] 1,1
[ ] 0, 0 0
13.
2 2
1 2
16 x x + [ ]
2, 2
[ ]
0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.
47
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
n
d d d , ,
2 1
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 (
n
d d d , ,
2 1
) fixate de axele de coordonate:
T
d ) 0 ,..., 0 , 0 , 1 (
1
= ,
T
d ) 0 ,..., 0 , 1 , 0 (
2
= ,....,
T
n
d ) 1 , 0 ,... 0 , 0 ( = .
Efectund un ciclu de cutare complet pe aceste direcii, obinem:
) ( min arg
1
j j j
d x f + =

i
j j j j
d x x + =
+

1
.
Dup ncheierea unui ciclu de cutare (toate direciile sunt
exploatate), se determin noi direcii de cutare:
* *
2
*
1
,..., ,
n
d d d astfel nct s
alctuiasc un sistem de vectori ortogonali, liniar independeni i care pentru
cazurile 0 =
i
, s ndeplineasc:
i i
d d =
*
.
Procedura de calcul este procedura de ortogonalizare Gram-Schmidt
aplicat astfel:

8
48


=
=

=
n
j i
j i i
j j
j
daca d
daca d
a
0
0


=
=

=
1
1
* *
2 ) (
1
j
i
i i
T
j j
j
j
j daca d d a a
j daca a
b

|| ||
*
j
j
j
b
b
d = (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,
n
x
1
punctul de iniializare al cutrii, sistemul de vectori
n
d d d , ,
2 1
(de obicei, axele de coordonate) care iniiaz procesul de
cutare. Cosiderm
1 1
x y = i 1 = = j k i se trece la etapa de baz.

Etapa de baz. Pasul 1. Determinm
) ( min arg
1
j j j
d y f + =

i
j j j j
d y y + =
+

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

Pasul 2. Considerm
1 1 + +
=
n k
y x . Dac <
+
|| ||
1 k k
x x , algoritmul se
oprete i
1 + k
x este soluia de optim.
Altfel,
1 1 +
=
k
x y , 1 , 1 + = k k j i trecem la pasul 3.

Pasul 3. Se construiesc conform (1) noile direcii de cutare
* *
2
*
1
,..., ,
n
d d d .
Facem
1
*
1
d d = ,
2
*
2
d d = ,...,
n n
d d =
*
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.
49
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 R R x x f
2
2 1
: ) , ( de forma:
( ) ( )
2
2 1
4
1 2 1
3 3 ) , ( x x x x x f + =
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 2 , 3
2 1
= = x x i diverse valori ale lui (condiia de
STOP) a fost testat algoritmul datele rezultate fiind prezentate n tabelul 8.1:

Precizia
Soluia de
optim
Valoare funciei obiectiv
Numr de
iteraii
1 . 0 =
0001 . 1
0003 . 3
2
1
=
=
x
x
12
10 6748 . 3

9
01 . 0 =
0001 . 1
0003 . 3
2
1
=
=
x
x
12
10 6748 . 3

9
001 . 0 =
0001 . 1
0003 . 3
2
1
=
=
x
x
12
10 6748 . 3

9
0001 . 0 =
0001 . 1
0002 . 3
2
1
=
=
x
x
11
10 7094 . 7

11


Se observ c pentru o precizie bun convergena este asigurat ntr-
un 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 1 , 3
2 1
= = x x cu un optim al funciei obiectiv
0 =
opt
f ).
Tabelul 8.1. Rezultatele pentru algoritmul Rosenbrock
50
Pentru condiiile iniiale specificate evoluia n procesul de cutare
(pentru condiia de stop 0001 . 0 = ) este prezentat n figura 15, mpreun
cu curbele de izonivel asociate funciei considerate:
-1 0 1 2 3 4 5 6
-2
-1
0
1
2
3
4
0.1
1
10
100
100
10
200
20
0.1
1
10
100
100
1
200
20
x1
x
2



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 ) , , (
3 2 1
x x x f : R R
3
de forma:
2
2 1
2
3 1
2
2 1 3 2 1
) 3 ( ) ( ) 2 ( ) , , ( + + + = x x x x x x x x x f .
Minimul funciei este asigurat de punctul de coordonate
2 , 1 , 2
3 2 1
= = = x x x la o valoare . 0
min
= f
Figura 15. Curbele de izonivel i evoluia procesului de cutare
51
Ne propunem determinarea minimului funciei utiliznd metoda
Rosenbrock. De asemenea se impune o comparaie a acestei metode cu
celelalte metode de cutare a minimului fr ajutorul derivatelor studiate
pn n acest moment:

Metoda Precizia
Soluia de
optim
Valoarea funciei
obiectiv
Numr de
iteraii
1 . 0 =
0279 . 2
0056 . 1
0279 . 2
3
2
1
=
=
=
x
x
x
0.0014 37
01 . 0 =
0045 . 2
0009 . 1
0044 . 2
3
2
1
=
=
=
x
x
x
3.5612e-5 43
001 . 0 =
0003 . 2
0001 . 1
0003 . 2
3
2
1
=
=
=
x
x
x
1.5051e-7 52
C

u
t
a
r
e

c
i
c
l
i
c

.

0001 . 0 =
0001 . 2
0000 . 1
0001 . 2
3
2
1
=
=
=
x
x
x
9.0768e-9 58
1 . 0 =
9998 . 1
0000 . 1
9998 . 1
3
2
1
=
=
=
x
x
x
4.3982e-11 11
01 . 0 =
9998 . 1
0000 . 1
9998 . 1
3
2
1
=
=
=
x
x
x
4.3981e-11 11
001 . 0 =
9998 . 1
0000 . 1
9998 . 1
3
2
1
=
=
=
x
x
x
4.3981e-11 11
C

u
t
a
r
e

c
u

p
a
s

a
c
c
e
l
e
r
a
t

0001 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
2.1523e-11 15
52
1 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
1.3081e-11 13
01 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
1.3081e-11 13
001 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
1.3081e-11 13
R
o
s
e
n
b
r
o
c
k
.

0001 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
1.3081e-11 13


Pentru o analiz complet am considerat o iniializare (altfel
arbitrar) 3 , 2 , 1 . 1000 = = i pt x
i
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.
Tabelul 8.2. Comparaia celor 3 metode utilizate
53
Metoda cutrii ciclice dup axele de coordonate este cea mai
imprecis i totodat cea mai ineficient.
Dei bazat pe o construcie simpl metoda cutrii ciclice cu pas
accelerat se dovedete aproape la fel de precis i eficient ca
metoda Rosenbrock.
Sub toate aspectele, metoda Rosenbrock este cea mai eficient
metod din clasa celor analizate.
3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a
crei form este prezentat n tabelul de mai jos:
Nr.
Crt.
Funcia
Punct de
iniializare
Punct
de
minim
Valoare
de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ] 1, 1 [ ] 2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ]
3, 4
[ ]
1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ]
0, 3
[ ]
5, 4 -481
7.
2 2
1 2 1 2
1 2
2 2 2
4 6
+ +

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




14
3

54
8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1
2
5 4 16
12
+ +

x x x x x
x

[ ] 1,1
[ ] 4,14 -152
10.
2 2
1 2 1 2 1
2
2 2 11
8
+ +

x x x x x
x

[ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ] 1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ] 2, 2 [ ] 0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.









55
Lucrare de laborator
Tehnici de gradient

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

2. Prezentarea lucrrii
Considerm funcia obiectiv
1
:
n
f , difereniabil pentru
n
x (f(x) este de clasa C
1
pe ).
Definiie. Fie un punct
n
k
x . Spunem c direcia d constituie direcie de
coborre pentru f(x) n punctul
k
x dac ( ) 0 > (orict de mic) astfel c:
0 ( ) ( ), ( , )
k k
f x d f x + < .
n particular, definiia prezentat, fixeaz condiia de coborre n forma:
0 ) (
) ( ) (
lim
0
0
< =
+
>

d x f
x f d x f
k
T k k

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

h x h O
h
. Dac 0 ) ( x f atunci pentru h suficient de
mic, difereniala funciei f(x) poate fi scris n forma:
9
56
h x f x df
T
= ) ( ) ( . (3)
Conform inegalitii Cauchy-Bunyakovski:

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

Pentru 0 ) ( x f , partea dreapt a inegalitii (4) se transform n
egalitate numai dac ) (x f h = cu 0 . > = const . Pentru 0 ) ( x f ,
partea stng a inegalitii se transform n egalitate numai dac
) (x f h = cu 0 . > = const . Prin urmare, cea mai rapid cretere se
obine pentru evoluia pe direcia gradientului (ntr-o vecintate a
lui
n
x ). Pentru asigurarea celei mai rapide descreteri ntr-o vecintate a
lui
n
x , 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
n
x
1
. 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 } {
k
x pe baza dependenei recursive:
,... 2 , 1 , 0 , ) (
1
= > =
+
k x f x x
k k k k k
(5)
n relaia (5),
k
reprezint lungimea pasului (sau mai simplu, pasul)
metodei de gradient. Dac 0 ) ( x f , pasul
k
trebuie stabilit astfel nct
0 ) ( ) (
1
<
+ k k
x f x f . n baza relaiei (2), putem evalua
57

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


(6)
pentru
k
suficient de mic. Dac 0 ) ( = x f ,
k
x 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
k
x , 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
n
k
x i ) (
k
x f direcia de cutare (direcia de anti gradient).
Considerm funcia de o variabil de forma:
0 )), ( ( ) ( =
k k k
x f x f g (7)
Lungimea pasului de cutare se alege din condiia:
0 , )) ( ( inf ) (
*
0
> = =

k k k k k k
g x f x f g

(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:
58
< = +

=

0
* *
, 0 , ) (
k
k k k k k k k
g g g (9)
sau
1 0 , ) 0 ( ) 1 ( ) (
* *
< +
k k k k k k k k
g g g g . (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
1 + k
x , direcia de antigradient (
1
( )
k
f x
+
)
poate diferi foarte mult de direcia precedent ( ) (
k
x f ). 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 ) ( ) (
1 k k
x f x f <
+
fr a cuta
optimizarea pasului de cutare. Astfel, pentru iteraia k:
) (
1 k k k k
x f x x =
+
. (11)
n cadrul fiecrei iteraii, se evalueaz modul n care evolueaz
criteriul i n funcie de aceast evoluie se modific pasul astfel:
dac ) ( ) (
1 k k
x f x f <
+
, evoluia este corespunztoare i se
ncearc modificarea n sens cresctor n ideea accelerrii
convergenei (de exemplu,
k k
=
+
5 . 1
1
);
59
dac ) ( ) (
1 k k
x f x f =
+
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 ) ( ) (
1 k k
x f x f >
+
, 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 k
=
+
5 . 0
1
) i
rejectnd valoarea obinut
1 + k
x , relum iteraia din
k
x .

3) Dac funcia obiectiv
1
:
n
f este de clas C
1
i dac ) (
k
x f
satisface condiia Lipschitz:
( ) ( ) , ,
n
f u f v L u v u v < , (12)
n care constanta L este cunoscut, atunci lungimea pasului de
cutare n tehnica de gradient poate fi aleas de forma:


+
<
2
2
0
0
L
k
, (13)
n care ,
0
reprezint doi parametri de metod. Dac alegem
L / 1
0
= i 2 / L = , obinem metoda de gradient cu o lungime a
pasului de cutare . / 1 const L
k
= = 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:
0 ), (
1
> =
+ k k k k k
x f x x , (14)
60
procedur nelimitat i care conduce la un ir {
k
x }. n realitate, cum vom
vedea ulterior, algoritmul se oprete n condiia de STOP: < ) (
k
x f , cu
apriori impus. Considernd c succesiunea de valori formeaz un ir {
k
x },
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:
)} ( inf ) ( , {
* *
x f f x f x X
n
x
n

= = = (15)
sau altfel spus, dac sunt ndeplinite condiiile:

* *
lim ( ) , lim ( , ) 0
k k
k k
f x f x X

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

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

=

0
* *
, 0 , ) (
k
k k k k k k k
g g g , (18)
unde )) ( ( ) (
k k k
x f x f g = pentru orice iniializare
n
x
1
, asigur
0 ) ( lim =

k
k
x f .
61
n plus, dac
1
:
n
f este convex i dac
*
f reprezint
valoarea de minim atunci pentru { } ) (
2
= k O
k
:
0 . , ) ( 0
0
1
0
*
> =

const c k c f x f
k
. (19)
Dac considerm c aceste restricii sunt satisfcute, condiia de oprire
a algoritmului i validarea soluiei va fi < ) (
k
x f .
n continuare, este prezentat un algoritm de tip gradient n varianta
celei mai rapide coborri:
Etapa de iniializare. Fie 0 > - condiia de STOP. Alegem
n
x
1

condiia de iniializare, 1 = k i trecem la etapa de baz.
Etapa de baz. Dac < ) (
k
x f , algoritmul se oprete i
k
x reprezint
soluia de minim. Dac nu, ) (
k k
x f d = i se determin
)) ( ( min arg
0
k k k
x f x f =
>

.
Construim ) (
1 k k k k
x f x x + =
+
, 1 + k k 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
1 + k
x determinat n condiiile:
) (
1 k k k k
x f x x =
+
i )) ( ( min arg
0
k k k
x f x f =
>


se afl pe dreapta { } ) ( |
k k k k
x f x x x L = = n punctul de tangen a
acestei drepte cu conturul de izonivel
{ } ) ( ) ( |
1 1 + +
= =
k
n
k
x f x f x
i dreapta
k
L este perpendicular pe conturul de izonivel
{ } ) ( ) ( |
k
n
k
x f x f x = = .
62
Vom considera o parametrizare a curbei de izonivel
k
de forma
) (t x x = pentru b t a i deci . ) ( )) ( ( const x f t x f
k
= = pentru b t a ,
iar
k
x t x = ) (
0
. n aceste condiii:
0 )) ( ( ) ( )) ( ( = = t x f t x t x f
dt
d
T
. (20)
n particular, pentru
0
t t = obinem:
0 ) ( ) (
0
=
k
T
x f t x (21)
i n felul acesta rezult c direcia de gradient (sau antigradient) este
perpendicular pe
k
n punctul
k
x . Reamintim c
k
se determin cu
condiia:
0 ) ( ) ( )) ( ( ) ( ) (
1
= = =
+ k k
T
k k k
T
k k
x f x f x f x f x f g . (22)
Prin urmare, direcia de gradient ) (
k
x f i ) (
1 +

k
x f sunt
perpendiculare i cum ) (
1 +

k
x f este perpendicular pe
1 +

k
, rezult c
) (
k
x f este tangent curbei
1 +

k
.
Considerentele geometrice prezentate sunt aplicate pe curbele de
izonivel din figura 1.a i 1.b:

Figura 16. Interpretarea geometric a construciei iterative
63
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
2
2 1
: ) , ( R x x f :
2
2 1
4
1 2 1
) 3 ( ) 3 ( ) , ( x x x x x f + =
continu i derivabil n
2
R . 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 10 , 10
2 1
= = x x
pentru trei valori ale preciziei impuse . 3 , 2 , 1 , 10 = =

k
k
Rezultatele
obinute n urma rulrii programelor precum i durata procesrii pentru
fiecare caz n parte sunt prezentate sintetic n tabelul 9.1:

Precizia
Soluia de
minim
Valoarea funciei
obiectiv
Timp necesar
procesrii
Numr
de iteraii
1
10

=
0983 . 1
2937 . 3
2
1
=
=
x
x

0074 . 0
min
= f 0.321 sec. 11
2
10

=
0442 . 1
1325 . 3
2
1
=
=
x
x

4
min
10 08 . 3

= f
0.861 sec.

27
3
10

=
0211 . 1
0634 . 3
2
1
=
=
x
x

5
min
10 61 . 1

= f 1.883 sec 81
4
10

=
0098 . 1
0295 . 3
2
1
=
=
x
x

7
min
10 5433 . 7

= f 8.352 sec 335

Tabelul 9.1. Rezultatele utilizrii tehnicii de tip gradient
64
Pentru exemplul considerat se observ o bun comportare n privina
corectei soluionri pentru o precizie convenabil. Astfel, pentru condiia de
stop
3
10

= obinem soluia 0211 . 1 , 0634 . 3


2 1
= = x x fa de soluia real
1 , 3
2 1
= = x x . 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.
1 2 3 4
0
1
2
3
4
5
6
7
8
9
k
t
i
m
p

p
r
o
c
e
s
a
r
e

(
s
e
c
.
)

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.
65
0 10 20 30 40 50 60 70 80 90
0
2
4
6
8
10
12
Numar de iteratii
D
i
s
t
a
n
t
a

f
a
t
a

d
e

m
i
n
i
m

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
3
10

= , 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.
3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
10
1
10
100
500
1e+003
1.5e+003
1
10
100
500
1e+003
1.5e+003
x1
x
2

Figura 19. Graficul evoluiei ctre optim
66
Considerm n continuare funcia de dou variabile:
1 3 3 ) , (
2
2
3
2 1
3
1 2 1
+ = x x x x x x f ,
pentru care gradientul se evalueaz imediat n forma:



=
2
2
2
2
1
2 1
6 3
1 9
) , (
x x
x
x x f .

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

Figura 20. Curbele de izonivel pentru funcia considerat
67
Considernd condiia iniial 8 . 2 , 8 . 0
2 1
= = x x pentru o precizie
01 . 0 = algoritmul este convergent n 4 iteraii in punctul de minim local
0000 . 2 , 3333 . 0
2 1
= = x x . 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:
( ) ( )
2
1
2
2
1 2 2 1
1 100 ) , ( x x x x x f + =
pentru care gradientul este de forma:
( ) ( )
( )



=
2
1 2
1
2
1 2 1
2 1
200
1 2 400
) , (
x x
x x x x
x x f
Pentru o iniializare arbitrar 2 , 2
2 1
= = x x i o precizie impus 01 . 0 =
convergena este asigurat n 3929 iteraii. Soluia aproximat pentru
problema propus este 98321 . 0 , 99158 . 0
2 1
= = x x . Valoarea de minim
obinut pentru funcia obiectiv este
5
10 0973 . 7

=
opt
f . 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.
68
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-0.5
0
0.5
1
1.5
2
2.5
3
x1
x
2

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
69
Acest lucru apare mai evident dac relum algoritmul propus pentru
o iniializare 5 , 5
2 1
= = x x . Obinem o aproximare a soluiei de
optim 0013 . 1 , 0007 . 1
2 1
= = x x n 11320 de iteraii la o valoare a
funciei obiectiv . 10 3060 . 4
7
=
opt
f Succesiunea punctelor de test
este prezentat n figura 22.
3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a
crei form este prezentat n tabelul de mai jos:
Nr.
Crt.
Funcia
Punct de
iniializare
Punct
de
minim
Valoare
de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ]
1, 1
[ ]
2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ]
3, 4
[ ]
1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ]
0, 3
[ ]
5, 4 -481
7.
2 2
1 2 1 2
1 2
2 2 2
4 6
+ +

x x x x
x x

[ ]
1,1
1 4
,
3 3




14
3

8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1
2
5 4 16
12
+ +

x x x x x
x

[ ]
1,1
[ ]
4,14 -152
70
10.
2 2
1 2 1 2 1
2
2 2 11
8
+ +

x x x x x
x

[ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ]
1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ] 2, 2 [ ] 0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.












71
Lucrare de laborator
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 ) (x f 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 C
n
, convex n
n
. Fie x
1

n
un punct de iniializare a cutrii. Considernd construcia
soluiei optime printr-un proces iterativ, vom presupune c n cadrul iteraiei
10
72
k, iniializarea este impus de x
k

n
. n acest punct, putem dezvolta
funcia obiectiv n forma:
) ( 0 ) ( ) ( H ) (
! 2
1
) ( ) ( ) ( ) (
2
k k k k k k k
x x x x x x x x x x f x f x f + + + =

(1)
Considerm aproximarea ptratic pentru variabila ) (x g
k
astfel:
) ( ) ( H ) (
! 2
1
) ( ) ( ) ( ) ( ) (
k k k k k k
x x x x x x x x f x f x f x g + = =

(2)
i definim soluia
*
k
x dat de condiia:
) ( inf ) ( ,
* *
k k
x
k k
n
k
x g x g x
n

= . (3)
Condiia de iniializare a cutrii n cea de a ) 1 ( + k -a iteraie va fi
construit n forma:
) 1 , 0 ( ), (
*
1
+ =
+ k k k k k k
x x (4)
1) Pentru 1 =
k
, ,... 1 , 0 = k obinem
*
1 k k
x x =
+
conform (1). Prin
urmare, iniializarea iteraiei (k + 1) implic soluionarea (1). n cazul
funciilor convexe, condiia (1) implic minimizarea aproximrii cuadratice
i deci:
0 ) ( ) ( H ) ( ) (
1 1
= + =
+ + k k k k k k
x x x x f x g (5)
De fapt acest lucru impune ca pe fiecare iteraie (3.29) cu 1 =
k
s
soluionm un sistem de ecuaii algebrice (3) n raport cu (
k k
x x
+1
).
Dac matricea H(x
k
) este nesingular, atunci:
) ( ) (
1
1 k k k k
x f x H x x =

+
(6)

73
Dificultile de calcul sunt evidente. Trebuie ca pe fiecare iteraie s
calculm:
vectorul gradient ) (
k
x f ;
matricea hessian H(x
k
);
inversa matricei hessiane H
-1
(x
k
) (inversa unei matrice (n x n)
implic n
3
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
o
i
k
= , unde i
o
reprezint
cel mai mic numr pentru care este ndeplinit inegalitatea:
) ( )) ( ( ) (
* *
k k
i
k k
i
k
x f x x x f x f + (7)
unde 0 > i 1 < sunt parametri de metod.

3) Parametrul
k
poate fi ales n forma:
1 0
k
) ( min ) (
1 0


k k k
h h

= , cu )) ( ( ) (
*
k k k k
x x x f h + = (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.
74
Se consider funcia R R x x f
2
2 1
: ) , (
4 2
1 2 1 1 2
3 3 ( , ) ( ) ( ) f x x x x x = + ,
pentru care funcia gradient este de forma:


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

Este evident c funcia considerat admite un minim unic n punctul
1 , 3
2 1
= = x x pentru o valoare a funciei obiectiv . 0
min
= f
Se propune analiza comportrii algoritmului Newton direct pentru
minimizarea funciei considerate. Considerm o iniializare (altfel arbitrar)
10 , 10
2 1
= = x x 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
Soluia de
optim
Valoarea
funciei
obiectiv
Numr
de
iteraii
1 . 0 =
9598 . 0
8795 . 2
2
1
=
=
x
x

2.1072e-4 8
01 . 0 =
9598 . 0
8795 . 2
2
1
=
=
x
x

2.1072e-4 8
001 . 0 =
9827 . 0
9482 . 2
2
1
=
=
x
x

7.1986e-6 79
M
e
t
o
d
a

N
e
w
t
u
n

0001 . 0 =
0024 . 1
0071 . 3
2
1
=
=
x
x

2.5359-9 340
75
1 . 0 =
0983 . 1
2937 . 3
2
1
=
=
x
x

0.0074 11
01 . 0 =
0442 . 1
1325 . 3
2
1
=
=
x
x

3.0856e-4 27
001 . 0 =
0211 . 1
0634 . 3
2
1
=
=
x
x

1.6176e-5 81
M
e
t
o
d
a


d
e

g
r
a
d
i
e
n
t


0001 . 0 =
0098 . 1
0295 . 3
2
1
=
=
x
x

7.5433e-7 335


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:
Nr. Crt. Funcia
Punct de
iniializare
Punct de
minim
Valoare
de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ] 1, 1
[ ] 2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ]
3, 4
[ ]
1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
Tabelul 10.1. Rezultatele obinute pentru fiecare tip de metod
76
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ]
0, 3
[ ]
5, 4 -481
7.
2 2
1 2 1 2
1 2
2 2 2
4 6
+ +

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




14
3

8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1
2
5 4 16
12
+ +

x x x x x
x

[ ]
1,1
[ ]
4,14 -152
10.
2 2
1 2 1 2 1
2
2 2 11
8
+ +

x x x x x
x
[ ] 3, 5 [ ] 2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ] 1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ]
2, 2
[ ]
0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.




77
Lucrare de laborator
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:
1 1
) (

+ =
k k k k
d x f d (1)
) (
1 1
x f d =
Coeficientul
1 k
se determin din condiia ca d
k
s fie H-conjugat cu
vectorul d
k-1
. n aceste condiii:
11
78
) ) ( ( 0
1 1 1 1

+ = =
k k k k k k
d x f H d d H d . (2)
Rezult cu uurin:

1 1
1
1
) (



=
k k
k k
k
d H d
x f H d
. (3)
Urmtorul punct de lucru se obine prin minimizare pe direcia d
k
,
pornind de la x
k
. Prin urmare:

k k k k
d x x + =
+

1
, (4)
unde ) ( min arg
0
k k k
d x f + =
>

.
Funcia ce trebuie minimizat o considerm de forma:

k k k k k k k
d d x f d x f d x f + + = +

H
2
1
) ( ) ( ) (
2
. (5)
Minimul funciei de gradul doi, fixeaz lungimea pasului de cutare:

k k
k k
k
d d
x f d


=

) (
. (6)
Se poate demonstra cu uurin c pentru o funcie ptratic
x x x c x f + =

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

k k k k k k
k k k k k
d x f d x c
d x c x c x f
+ = + + =
= + + = + = +
+


) ( ) (
) ( ) 1 (
1
(7)

Din relaia de definire a direciilor de cutare (1) rezult:
) ( ) ( ) ( ) ) ( ( ) (
1 1 k k k k k k k k
x f x f x f d x f x f d = + =



. (8)
Relaia (7) a fost obinut innd cont c punctul x
k
se obine prin
minimizarea funciei pe direcia d
k-1
i prin urmare: 0 ) ( =
k
x f .
79
Pe de alt parte,
) ( ) ) ( (
1 k k k k k k k k
x f H d d x f d d d = + =



(9)
deoarece d
k-1
i d
k
sunt H-conjugate.
Prin urmare, dac introducem (8) i (9) n (5) obinem:

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


=

. (10)
n aceste condiii, putem pune n eviden un rezultat interesant i
anume c vectorii ) (
1 +

k
x f i ) (
k
x f sunt ortogonali.
Rezult:

0 ) (
) (
) ( ) (
) ( ) (
) ) ( ( ) ( ) ( ) (
=


=
= + =


k k
k k
k k
k k
k k k k k k
d x f
x f d
x f x f
x f x f
d x f x f x f x f
(11)
Elementele prezentate pun n eviden posibilitatea stabilirii a trei
iruri de vectori: {d
k
} succesiunea direciilor de cutare, { ) (
k
x f }
succesiunea direciilor de gradieni n punctele prin care evolum ctre
minim i {x
k
} succesiunea punctelor regulate n procesul de cutare. Astfel,
pornind din condiia de iniializare x
1
pe direcia ) (
1 1
x f d = , determinm
printr-un algoritm de optim unidimensional, x
2
. n continuare, evalum n
x
2
vectorul gradient ) (
2 2
x f d = . Evident, ) (
2
x f este ortogonal pe
direcia d
1
.
n continuare, cunoscnd ) (
2
x f i d
1
fie baza relaiei (1) se
determin d
2
, H-conjugat cu d
1
. vectorii ) ( ), (
2 1
x f x f i d
1
sunt legai prin
(11). Apoi, procedura continu n mod similar.
80
Apreciem imediat c succesiunea {d
k
} este un rezultat al procedurilor
de H-conjugare a vectorilor, aplicat gradienilor { } ) (
k
x f , iar succesiunea
{ } ) (
k
x f se obine prin ortogonalizarea vectorilor: ... , ), (
2 1 1
Qd Qd x f
Mai departe, vom arta c este necesar ca procedurile de obinere a
vectorilor {d
k
}, { } ) (
k
x f prin H-conjugarea sau ortogonalizarea vectorilor
gradient s fie simultane. Vom utiliza un procedeu inductiv [7]: vectorii
{d
k
} construii pe baza relaiei (3.35) sunt H-conjugai, iar vectorii { } ) (
k
x f
sunt ortogonali. Pentru k = 1, evident cele dou afirmaii sunt adevrate.
Considerm c cele dou afirmaii sunt adevrate pn la unu i deci
direciile {d
1
, d
2
, , d
k
} sunt H-conjugate, iar vectorii gradient
{ } ) ( ),..., ( ), (
2 1 k
x f x f x f sunt ortogonali. Vom demonstra c ele sunt
valabile i pentru k + 1. Astfel:

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


(12)

Deoarece ) (
k
x f este ortogonal lui ) (
i
x f , pentru 1 ..., , 2 , 1 = k i
i cum conform (1): 0 ) ( ) (
1
=
+

k k
x f x f , obinem:

k i k i k
d x f x f x f =

+

) ( ) ( ) (
1
, (13)
pentru k i , 1 .


1 1
) (

+ =
i i i
d d x f (14)
i prin urmare:

k i i i k i k
d d d x f x f + =

) ( ) ( ) (
1 1 1
. (15)

81
Direcia d
k
este H-conjugat n raport cu d
i
pentru oricare 1 , 1 k i .
Deoarece 0 ) ( ) (
1
=
+

k k
x f x f (vezi (1)) rezult
0 ) ( ) (
1
=
+

i k
x f x f k i , 1 . (16)

Prima proprietate a fost astfel demonstrat. n privina direciilor de
cutare, considerm c {d
1
, d
2
, , d
k
} sunt H-conjugate i va trebui s
artm c 0
1
=

+ i k
d d pentru oricare k i , 1 . Pentru i = k, prin nsi
modul de construcie a direciilor de cutare 0
1
=

+ k k
d d . Fie, pentru
1 1 + k i :
) ( ) ) ( (
1 1 1 +

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

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

=
k i i
i
k i
x f x f x f d d

. (18)

Cum am demonstrat anterior, gradienii sunt ortogonali i deci:
0
1
=
+

k i
d d pentru k i , 1 . (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
n
i
R x . Considerm y
1
= x
1
, 1 ), (
1 1
= = = j k x f d
i trecem la etapa de baz.
82
Etapa de baz. Pasul 1. Dac < ) (
j
y f algoritmul se oprete i y
j

reprezint optimul. n caz contrar, se determin
) ( min arg
0
j j j
d y f

+ =
>
i
j j j j
d y y + =
+1
.
Dac j < n se trece la pasul 2 i dac j = n trecem la pasul 3.

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

=
+
. Iterm 1 + j j i relum pasul 1.

Pasul 3. Facem 1 , 1 ), ( ,
1 1 1 1 1
+ = = = =
+ +
k k j y f d y x y
k k
i
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 {d
1
, d
2
, ..., d
n
} asociate unui criteriu de calitate ptratic:
+ =

2
1
) ( c f , (20)
83
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:
) (
j j
y f D d = , (21)
prin urmare direciile de cutare vor fi direcii de antigradient modificate
prin matricele de deflexie D
j
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.
84
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:
) ( ) (
2
1
) ( ) ( ) ( ) (
k k k k k
x x x x x x x f x f x f + + =

, (22)
unde x
k
reprezint punctul de iniializare al cutrii n iteraia k, ) (
k
x f
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 x
k+1
reprezint punctul final obinut n iteraia k, vectorul gradient
evaluat n acest punct va fi:
) ( ) ( ) (
1 1 k k k k
x x x f x f + =
+ +
. (23)

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

k k k
C D D + =
+1
, (25)
n care C
k
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 D
k+1
reprezint aproximarea universului hessianului, cum
k k k k
x x x f x f =
+ + 1 1
-1
)) ( ) ( ( H ,
85
D
k+1
trebuie s satisfac
k k k k k
x x x f x f D =
+ + + 1 1 1
)) ( ) ( (
i deci

k k k k k k
x x x f x f C D = +
+ + 1 1
)) ( ) ( ( ) ( . (26)

Prin urmare
)) ( ) ( ( ) ( )) ( ) ( (
1 1 1 k k k k k k k k
x f x f D x x x f x f C =
+ + +
. (27)

Dac notm direcia de cutare n iteraia k: ) (
k k k
x f D d = , din
(24) rezult

k k k k k
d x x = =
+1
. (28)

Pentru simplificare vom nota:
) ( ) (
1 k k k
x f x f q =
+
. (29)

Notaiile introduse transpun relaia (27) n forma

k
k k k k
k k k k k k
k k k k k
q
q q D
q D q D
q D q C


= =

) (
) )( (


. (30)

Prin simpl identificare, din relaia (30) rezult termenul de corecie n
forma:

k k k k
k k k k k k
k
q q D
q D q D
D


=

) (
) )( (


. (31)

Metoda se lanseaz cu D
1
=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.
86
n practic, sunt deosebit de mult utilizate corecii prin matrici de rang
doi. Dintre aceste proceduri, foarte utilizate sunt metoda Davidon-Fletcher-
Powell (DFP), n care matricele de corecie sunt generate n forma:

k k k
k k k k
k k
k k
k
q D q
D q q D
q
C


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

k k
k k k k k k
k k
k k
k k
k k K
K
q
q D D q
q q
q D q
c


+ =

1 (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 R R x x f
2
2 1
: ) , (
4 2
1 2 1 1 2
3 3 ( , ) ( ) ( ) , f x x x x x = +
87
pentru care funcia gradient este de forma:


+
=
) 3 ( 6
) 3 ( ) 3 ( 4
) , (
2 1
2 1
3
1
2 1
x x
x x x
x x f
Este evident c funcia considerat admite un minim unic n punctul
1 , 3
2 1
= = x x pentru o valoare a funciei obiectiv . 0
min
= f
Se propune analiza comportrii algoritmului Fletcher-Reeves pentru
minimizarea funciei considerate.
Alegem o iniializare (altfel oricare) 15 , 100
2 1
= = x x i pentru o
precizie 001 . 0 = lansm subrutina FReeves1.m. Algoritmul este
convergent n 0467 . 3
1
= x , 0156 . 1
2
= x care aproximeaz suficient de bine
soluia real. Valoarea funciei obiectiv n punctul obinut este
. 10 7496 . 3
6
min

f 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
88
Pentru a ne forma o imagine mai clar n legtur de cu modul de
funcionare a subrutinei am testat comportarea acesteia n condiii identice
modificnd numai condiia de STOP (implicit precizia).

Rezultatele sunt prezentate sintetic n tabelul urmtor:

Precizia
Soluia de
optim
Valoarea funciei
obiectiv
Numr de
iteraii
1 . 0 =
0911 . 1
2712 . 3
2
1
=
=
x
x
0.0054 12
01 . 0 =
0423 . 1
1267 . 3
2
1
=
=
x
x 2.5747e-4

20
001 . 0 =
0156 . 1
0467 . 3
2
1
=
=
x
x
4.7496e-6 32
0001 . 0 =
0095 . 1
0284 . 3
2
1
=
=
x
x
6.5318e-7 40


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

Precizie
1
10

=
1
10

=
1
10

=
1
10

=
Timp de
procesare
5.658 sec 10.606 sec 18.346 sec. 23.894 sec.


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.

Tabelul 11.1. Rezultatele mai mulor rulri
Tabelul 11.2. Dependena timp de calcul - precizie
89
1 2 3 4
0
5
10
15
20
25
k (e=10e-k)
t
i
m
p

(
s
e
c
.
)
n figura 24 este prezentat graficul dependenei timpului de calcul n
raport cu precizia impus.











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 15 , 10
2 1
= = x x (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
Precizie
Soluia de
optim
Valoarea
funciei obiectiv
Numr de
iteraii
1 . 0 = e
0605 . 1
1838 . 3
2
1
=
=
x
x
0.0011 11
01 . 0 = h
01 . 0 = e Algoritmul nu funcioneaz
Figura 24. Dependena timp - precizie
90
1 . 0 = e
0913 . 1
2718 . 3
2
1
=
=
x
x

0.0055 12
01 . 0 = e
0361 . 1
1095 . 3
2
1
=
=
x
x

1.4527e-4 15
001 . 0 = h
001 . 0 = e Algoritmul nu funcioneaz
1 . 0 = e
0932 . 1
2773 . 3
2
1
=
=
x
x
0.0059e-4 12
01 . 0 = e
0377 . 1
1129 . 3
2
1
=
=
x
x
1.6245e-6 20 0001 . 0 = h
001 . 0 = e
0051 . 1
0152 . 3
2
1
=
=
x
x

5.2833e-8 28


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 01 . 0 = h i o precizie 1 . 0 = , obinem rezultate mai bune dect
pentru pasul 001 . 0 = h i o aceeai precizie. n orice caz, cel puin pe
exemplul considerat, diferenele ntre cele dou proceduri sunt nesemni-
ficative. Vom vedea c, n privina timpului de calcul, diferenele ntre cele
dou proceduri sunt semnificative.

Precizie
1 . 0 = 01 . 0 = 001 . 0 =
Evaluare gradient
of-line
5.658 s 10.506 s 18.346 s.
Evaluare gradient
on-line
8.533 s 15.131 s 22.503 s


Tabelul 11.3. Rezultate n urma mai multor rulri
Tabelul 11.4. Timpul de calcul necesar pentru diverse variante
91
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 R R f
3
: de forma:
2
2 1
2
3 1
2
2 1 3 2 1
) 3 ( ) ( ) 2 ( ) , , ( + + + = x x x x x x x x x f
avnd funcia gradient de forma:

+
+

=
3 1
2 1
3 2 1
3 2 1
2 2
6 10 2
2 2 6
) , , (
x x
x x
x x x
x x x f .
Funcia prezint un minim unic
2 , 1 , 2
3 2 1
= = = x x x
pentru o valoare a funciei obiectiv prezentate: . 0
min
= f

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.
92
n acest sens, am considerat condiia de iniializare a cutrii
10 , 10 , 10
3 2 1
= = = x x x i au fost rulate subrutinele FReeves1.m i grad1.m
pentru diverse valori ale parametrului precizie.
Rezultatele obinute pun n eviden, cel puin pentru exemplu
considerat, superioritatea metodei Fletcher-Reeves asupra tehnicii celei mai
rapide coborri att n privina preciziei n stabilirea soluiei ct i a
numrului redus de iteraii necesare stabilirii soluiei:

Metoda Precizie
Soluia
de minim
Valoare
funciei obiectiv
Numr de
iteraii
1 . 0 =
9998 . 1
0030 . 1
9998 . 1
3
2
1
=
=
=
x
x
x
6.7001e-5 4
01 . 0 =
9974 . 1
9999 . 0
9993 . 1
3
2
1
=
=
=
x
x
x
4.6722e-6 8
M
e
t
o
d
a

F
l
e
t
c
h
e
r
-
R
e
e
v
e
s

001 . 0 =
0000 . 2
0000 . 1
0000 . 2
3
2
1
=
=
=
x
x
x
9.0904e-12 10
1 . 0 =
0695 . 2
9999 . 0
0348 . 2
3
2
1
=
=
=
x
x
x
0.0036 26
01 . 0 =
0092 . 2
0000 . 1
0046 . 2
3
2
1
=
=
=
x
x
x
6.3079e-5 36
M
e
t
o
d
a

d
e

g
r
a
d
i
e
n
t

001 . 0 =
0008 . 2
0000 . 1
0004 . 2
3
2
1
=
=
=
x
x
x
4.8612e-7 48

Tabelul 11.5. Rezultate. Comparaie
93
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 . = :
0
2
4
6
8
10
0
5
10
0
2
4
6
8
10
x1
x2
x
3
Solutia de
minim.

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 1 . 0 = 01 . 0 = 001 . 0 = 0001 . 0 =
Metoda
Newton
0.58 s 0.581 s 6.319 s 27.23 s
Metoda de
gradient
4.52 s 16.73 s 64.86 s 323.57 s.

Tabelul 11.6. Timpul de execuie pentru fiecare metod n parte
94
3. Chestiuni de studiat
Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a
crei form este prezentat n tabelul de mai jos:
Nr.
Crt.
Funcia
Punct de
iniializare
Punct de
minim
Valoare
de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ]
1, 1
[ ]
2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
+ + + x x x x [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ] 3, 4 [ ] 1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ]
0, 0
[ ]
3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ]
0, 3
[ ]
5, 4 -481
7.
2 2
1 2 1 2 1 2
2 2 2 4 6 + + x x x x x x [ ] 1,1
1 4
,
3 3




14
3

8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1 2
5 4 16 12 + + x x x x x x [ ] 1,1
[ ] 4,14 -152
10.
2 2
1 2 1 2 1 2
2 2 11 8 + + x x x x x x [ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ]
1,1
[ ]
1, 3/ 2 -1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ]
2, 2
[ ]
0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.
95
Lucrare de laborator
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
) (
j k j
y f D d = . (1)

Direcia de antigradient este modificat (rotit) prin multiplicare cu o
matrice
nxn
j
D simetric i pozitiv definit care aproximeaz pe fiecare
pas matricea hessian. Matricele D
j
se construiesc iterativ astfel ca matricea
D
j+1
se se obin prin nsumarea matricei D
j
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
n
R x
1
i matricea D
1
simetric i pozitiv definit (de obicei se
alege D
1
= I
n
). Considerm y
1
= x
1
, k = j = 1 i se trece la etapa de baz.
12
96
Etapa de baz. Pasul 1. Dac < ) (
j
y f , atunci algoritmul se oprete i
y
j
constituie soluia. Dac nu, construim direcia de cutare
) (
j j j
y f D d = i
j j j j
d y y + =
+1
, unde ) ( min arg
0
j j j
d y f

+ =
>
. Dac
j < n se trece la pasul 2. Dac j = n, facem 1 , 1 ,
1 1 1
= + = =
+ +
j k k y x y
n n

i se reia pasul 1.

Pasul 2. Se construiete matricea de deflexie D
j+1
:
j j j
j j j j
j j
j j
j j
q D q
D q q D
q
D D

+ =


1
,
unde:
). ( ) (
1 j j j
j j j
y f y f q
d
=
=
+



Se reiniializeaz 1 + j j 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 D
1
, D
2
,
, D
n
sunt simetrice i pozitiv definite cu implicaia imediat c, d
1
, d
2
, ,
d
n
sunt direcii de coborre.
Astfel, prin condiiile de generare, D
1
este o matrice simetric i
pozitiv definit. Direcia ) (
1 1 1
y f D d = este o direcie de coborre
deoarece:
0 ) ( ) ( ) (
1 1 1 1 1
< =

y f D x f d y f . (2)
97
Presupunem, c pentru un
j
D D D n j ..., , 1
, 2 , 1
sunt simetrice i
pozitiv definite i vom arta c D
j+1
are aceleai proprieti. Simetria nu
reprezint o problem i ea poate fi verificat direct. Considerm, pentru
0 :

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


+ =


1
. (3)

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

j j
j
j
q
p x
b b
b a b b a a
x D x

2
2
1
) (
) ( ) )( (
. (4)

Utilizm inegalitatea Cauchy-Bunyakovski-Schwartz:

0 ) ( ) ( ) (
2


b a b b a a

i pentru c 0
1

+

x D x
j
, este necesar ca: b
T
b > 0 i 0 >

j j
q p .
Cu notaiile introduse:
)) ( ) ( (
1 j j j j j j
y f y f d q =
+

. (5)

Pasul de cutare
j
se alege prin minimizare unidimensional pe
direcia d
j
i deci 0 ) (
1
=
+

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

. (6)
Cum D
j
este pozitiv definit i 0 ) (
j
y f , rezult c 0 >

j j
q
( 0 >
j
deoarece cutarea se face n lungul direciei de coborre cu 0 > ).
98
Rezult c 0 >
j
q i deci, 0 > =

j j j
q D q b b . Prin urmare, am
demonstrat c 0
1

+

x D x
j
. Considerm 0
1
=
+

x D x
j
. O asemenea
condiionare impune ca simultan 0 ) ( ) ( ) (
2
=

b a b b a a i 0 =

x
j
.
Reamintim c 0 ) ( ) ( ) (
2
=

b a b b a a dac i numai dac vectorii a i b
sunt coliniari, deci dac b a = .
Condiia b a = implic
j j j
q D x D =
2 / 1 2 / 1
. Aadar:
j
q x = .
Cum 0 x , rezult 0 . Cea de-a doua cerin este 0 =

x
j
i deci
0 =

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

j j
q , infirmnd
rezultatele obinute anterior. Prin urmare, 0 , 0
1
>
+

x x D x
j
i deci
D
j+1
este pozitiv definit. Direcia d
j+1
pentru 0 ) (
j
y f se construiete n
forma ) (
1 1 1 + + +
=
j j j
y f D d :
0 ) ( ) ( ) (
1 1 1 1 1
< =
+ + +

+ +

j j j j j
y f D y f d y f . (7)

Se poate demonstra c dac algoritmul este aplicat unei funcii
ptratice, direciile construite pe principiul enunat sunt H-conjugate i deci
*
1
=
+ n
y fiind punctul de optim (i n aceste condiii, evident,
1
1
H

+
=
n
D ).
Pentru a putea evalua comportarea algoritmului Davidon-Fletcher-
Powell 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.
99
Se consider funcia:
( ) ( )
2
2 1
4
1 2 1
3 3 ) , ( x x x x x f + = ,
avnd gradientul uor de precizat n forma:


+
=
) 3 ( 6
) 3 ( 2 ) 3 ( 4
) , (
2 1
2 1
3
1
2 1
x x
x x x
x x f .
Punctul de minim pentru funcia considerat este evident
1 , 3
2 1
= = x x care asigur valoarea de minim . 0
min
= f Problema propus
este de a evalua comportarea algoritmului Davidon-Fletcher-Powell n
stabilirea aproximativ a punctului de minim.










Tabelul 12.1. Rezultatele obinute

S-a considerat un punct de iniializare 5 , 4
2 1
= = x x 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 . 001 . 0 =
Precizia
Soluia de
minim
Valoarea funciei
obiectiv
Numr de
iteraii
1 . 0 =
0723 . 1
2152 . 3
2
1
=
=
x
x
0021 . 0
min
= f 6
01 . 0 =
0402 . 1
0609 . 3
2
1
=
=
x
x
4
min
10 0942 . 2

= f 8
001 . 0 =
0203 . 1
0609 . 3
2
1
=
=
x
x
5
min
10 3767 . 1

= f 14
0001 . 0 =
0402 . 1
0289 . 3
2
1
=
=
x
x
6
min
10 0163 . 7

= f 44
100
-1 0 1 2 3 4 5 6 7
-3
-2
-1
0
1
2
3
4
5
0.1
1
10
100
200
200
300
300
300
3
0.1
1
10
100
200
200
300
300
3
3
x1
x
2

Figura 26. Evoluia procesului de cutare

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

Precizia 1 . 0 = 01 . 0 = 001 . 0 = 0001 . 0 =
Timp de
procesare
0.120 sec. 0.441 sec. 0.441 sec 0.901 sec


n cel de al doilea exemplu, se consider funcia:
( ) ( )
2
2 1
4
1 2 1
3 3 ) , ( x x x x x f + = ,
avnd gradientul uor de calculat n forma:


+
=
) 3 ( 6
) 3 ( 2 ) 3 ( 4
) , (
2 1
2 1
3
1
2 1
x x
x x x
x x f .
Tabelul 12.2. Timpul de procesare n funcie de precizie
101
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 3 , 4
2 1
= = x x iar pasul utilizat
pentru aproximarea derivatelor pariale ce compun gradientul se alege
. 0001 . 0 = h Pentru diferite valori ale parametrului care impune condiia
de stop i implicit precizia metodei rezultatele rulrii sunt prezentate n
tabelul urmtor:

Precizia
Soluia
de optim
Valoarea
funciei obiectiv
Numr
de iteraii
1 . 0 =
0696 . 1
2071 . 3
2
1
=
=
x
x
0018 . 0
min
= f 6
01 . 0 =
0166 . 1
0497 . 3
2
1
=
=
x
x
6
min
10 0871 . 6

= f 8
001 . 0 =
0165 . 1
0497 . 3
2
1
=
=
x
x
6
min
10 0815 . 6

= f 9
0001 . 0 = Algoritmul nu funcioneaz


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.
Tabelul 12.3. Rezultatele obinute
102
Precizia 1 . 0 = 01 . 0 = 001 . 0 =
Timp de calcul 0.451s 0.600s 0.611s


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
n
x , 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
1
H D
k
), algoritmul devine tot mai eficient. Dac
funcia criteriu este de clas C
2
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).
Tabelul 12.4. Timpul de procesare n funcie de precizie
103
Este posibil, ca din cauza erorilor de calcul, pentru un k, matricea de
deflexie D
k
s fie singular. n cest caz, se reiniializeaz D
k
=I i
algoritmul demareaz cu o procedur de tip gradient. Pentru a evita
testarea permanent a condiiei 0 >
k
D , se poate ca dup n iteraii s
reiniializm cu D
1
= 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:
Nr. Crt. Funcia
Punct de
iniializare
Punct de
minim
Valoare
de
minim
1.
2 2
1 1 1 2 2
6 2 2 2 x x x x x + + [ ]
1, 1
[ ]
2, 1 -6
2. ( )
2
2
1 2 1 2
1
10
9
x x x x + + + [ ]
1, 1
[ ]
5, 0.5 7.5
3.
( ) ( )
2 2
1 1 2
1 100 x x x + [ ] 3, 4
[ ] 1,1 0
4.
( ) ( )
2 2
1 2
5 3 5 x x + [ ] 0, 0 [ ] 3, 5 0
5.
2 2
1 1 2 2
x x x x + [ ]
1, 2
[ ]
0, 0 0
6.
2 2
1 2 1 2
9 16 90 128 x x x x + [ ] 0, 3
[ ] 5, 4 -481
7.
2 2
1 2 1 2
1 2
2 2 2
4 6
+ +

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




14
3

104
8.
2 2
1 1 2 2 1 2
2 x x x x x x + + [ ]
3, 5
[ ]
1, 0 -1
9.
2
1 1 2 2 1
2
5 4 16
12
+ +

x x x x x
x

[ ]
1,1
[ ]
4,14 -152
10.
2 2
1 2 1 2 1
2
2 2 11
8
+ +

x x x x x
x

[ ]
3, 5
[ ]
2, 3 -23
11.
2 2
1 2 1 1 2 2
2 2 x x x x x x + + + [ ]
1,1
3
1,
2



-1.25
12.
2 2
1 2 1 2
x x x x + + [ ]
1,1
[ ]
0, 0 0
13.
2 2
1 2
16 x x + [ ]
2, 2
[ ]
0, 0 0
14.
( ) ( )
2 2
1 1 2
1 x x x + [ ]
5, 8
[ ]
1,1 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.







105
Lucrare de laborator
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 U x
k
n care
n
R U reprezint mulimea punctelor ce
satisfac restriciile impuse.
Direcia de cutare d
k
conform cerinelor problemei necesit s
satisfac simultan dou condiii:
pentru un ) ( ) ( , 0
k k
x f d x f < + > ;
pentru impus anterior, U d x
k
+ .
13
106
O astfel de direcie, evident dependent de x
k
, poart numele de
direcie de coborre admisibil.
Pentru nceput ne punem problema modalitii construciei direciilor
admisibile de coborre.
Considerm problema minimizrii funciei R R x f
n
: ) ( , n
restricia
n
k
R U x . Pentru un punct U x , d constituie o direcie de
coborre dac pentru un 0 > arbitrar de mic, ) ( ) ( x f d x f < + i
U d x + pentru ) , 0 ( .

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

, ,
1
i
1

l
R e . 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:

i n in i i
b x a x a x a = + + + ...
2 2 1 1
. (2)

Restriciile de acest gen sunt restricii active. n mod evident
restriciile Ex = e, sunt permanent active.
107
n continuare, vom prezenta un rezultat esenial n procedura de
construcie a direciilor admisibile de cutare. Vom considera problema
general i un punct U x pentru care, printr-o reordonare a matricei A,
restriciile sunt satisfcute n forma
2 2 1 1
, b x A b x A < = i e x E = .
Matricea A a fost reordonat i partiionat nct

=
2
1
A
A
A
s fie puse n eviden direct restriciile active (A
1
, E) pentru punctul
considerat. n aceste condiii, d reprezint o direcie admisibil de cutare
pentru S x dac i numai dac 0
1
d A i 0 = d E .
Deoarece U x avem satisfcute:

.
,
2 2
1 1
e x E
b x A
b x A
=
<
=
(3)
Pentru suficient de mic este necesar ca:

e d E x E d x E
b d A x A d x A
b d A x A d x A
= + = +
+ = +
+ = +



) (
) (
) (
2 2 2 2
1 1 1 1
(4)

Pentru primul set de inegaliti, cum A
1
x=b
1
rezult 0
1
d A i
deci 0
1
d A . Cel de al doilea set de inecuaii impune
x A b d A
2 2 2
i cum 0
2 2
> x A b putem stabili suficient de
mic care s satisfac condiia. n sfrit cu e x E = rezult necesitatea cu
0 = d E .
Dac n plus, direcia admisibil de cutare satisface 0 ) ( <

d x f ,
ea se transform n direcie admisibil de coborre.
108
Vom nuana elementele mai sus definite pe urmtorul exemplu. Se
consider urmtoarea problem de optimizare:

minimizeaz (x
1
- 6)
2
+ (x
2
- 2)
2

n restriciile 4 2
2 1
+ x x
12 2 3
2 1
+ x x
0
1
x
0
2
x

Considerm punctul curent 3 , 2
2 1
= = x x pentru care:
4 3 2 2 = + , 12 3 2 2 3 = + , - 2 < 0 i -3 < 0.

Rezult matricele A
1
, A
2
i E n forma:


=
2 3
2 1
1
A ,

=
1 0
0 1
2
A i E = 0.

Reprezentarea grafic a acestei probleme este urmtoarea:

Figura 27. Direcia admisibil de coborre
109
Zona haurat reprezint evoluia de coborre admis, iar funcia f(x)
are o evoluie admis doar n acea arie.
Considerm direcia

=
2
1
d
d
d . Condiia ca s fie direcie admisibil
este:



2
1
2
1
1
; 0
2 3
2 1
; 0
d
d
d
d
d
d A .
Gradientul funciei este:

=
=
=
2
8
) ( ;
) 2 ( 2
) 6 ( 2
) (
3
2
2
1
2
1
2
1
x
x
x f
x
x
x
f
x
f
x f .

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

0 2 8 ; 0 ) (
2 1
< + d d d x f
x
T
.

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

d x f d E d A . (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 d x f

) ( s aib o valoare ct mai mic. Fr
restricionri suplimentare, dac exist direcii d cu 0 ) (
*
<

d x f atunci
110
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:

P
1
. minimizeaz d x f ) (


n restriciile 0
1
d A

n i di
Ed
, 1 , 1 1
0

=


P
2
. minimizeaz d x f ) (


n restriciile 0
1
d A

1 ) (
0

=

d x f
Ed


P
3
. minimizeaz d x f ) (


n restriciile 0
1
d A

1
0

d d
Ed


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 P
1
, P
2
sau P
3
. Pentru o astfel de alegere, valoarea criteriului de
calitate d x f

) ( este nul. Prin urmare, dac exist o soluie admisibil
111
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 0 ) ( <

d x f atunci direcia obinut constituie direcia admisibil
de cutare i algoritmul continu. Dac soluia problemei d stabilete
valoarea indicelui 0 ) ( =

d x f 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 0
1
d A , 0 = d E i 0 ) ( <

d x f . Singura inegalitate care
condiioneaz valorile lui 0 > este:

2 2 2 2
) ( b d A x A d x A + = + , (6)
n condiiile b x A <
2
. Prin urmare

x A b d A
2 2 2
. (7)

Notm n continuare:
d A c x A b l = =
2 2 2
, . (8)

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

>

=
0 , 0 min
0 ,
max
c dac c
c
l
c dac
i
i
i
(9)
112
Prezentm n continuare schia algoritmului Zontendijk pentru cazul
restriciilor de tip egalitate:

Etapa de iniializare. Trebuie stabilit punctul de iniializare a cutrii
) , (
1 1 1
d x E b x A U x = . Considerm k=1 i trecem la etapa de baz.

Etapa de baz. Pasul 1. Considerm c printr-o reordonare a inecuaiilor
restricii obinem partiiile A
1
, A
2
astfel ca e x E b x A
k k
= = ,
1 1
i
2 2
b x A
k
< . Se rezolv problema de programare liniar:

minimizeaz d x f

) (
n restriciile 0
1
d A

n j d
d E
j
, 1 , 1 1
0

=

Dac 0 ) ( =

k k
d x f atunci x
k
este un punct Kuhn-Tucker i
algoritmul se oprete, dac nu se trece a pasul 2.

Pasul 2. Se determin lungimea pasului de cutare
) ( min arg
max
0
k k k
d x f + =
<


.
Se determin noul punct de lucru
k k k k
d x x + =
+

1
. Pentru acest punct
determinm restriciile active A
1
, A
2
. Iterm 1 + k k i relum pasul 1.
n continuare vom prezenta aplicarea metodei prezentate pe un
exemplu concret.
Fie urmtoarea funcie obiectiv:
2 2
( , ) 2 2 2 4 6 f x y x y x y x y = +
113
Se cere determinarea punctului de minim care asigur urmtoarele restricii:
2
5 5
0
x y
x y
x
y o
+


Utiliznd subrutina dac.m care implementeaz algoritmul propus,
obinem urmtorul rezultat dintr-o iniializare 0 [0 ; 0] x = .
x =
0 0.8333 1.1290
0 0.8333 0.7742
-1 -0.5 0 0.5 1
-1
-0.5
0
0.5
1
Initializarea cautarii
Punct final

Figura 28. Graficul n procesul de cutare
114
3. Chestiuni de studiat
Se consider funcia obiectiv mpreun cu restriciile corespunztoare una
din funciile prezentate n tabelul de mai jos (funcia va fi impus de
conductorul lucrrii):
Nr.
crt.
Funcia Restricii
Pct.
ini.
f(x
0
) Minim
Valoare
de
minim
1.
2 2
1 2
1 2 1
2
2 2
2 4
6
+ +
+

x x
x x x
x

1 2
1
2
2 2
0
0
x x
x
x
+


0.5,
0.5




-3.5
1
,
3
5
6







4.16
2.
1 2
1 2
x x
e x x


1 2
1
2
1
0
0
x x
x
x
+


[ ] 0, 0

1 [ ] 0,1
-0.6
3.
2 2
1 2 1
2
4
2
+

x x x
x

1 2
1 2
1
2
2 4
2 6
0
0
x x
x x
x
x
+
+


[ ] 1,1 -4
1.6,
0.8




4.8
4.
2 2
2 1
1 2
0.5 0.5
2 5
+
+
x x
x x

1 2
1 2
1
2
2 3 6
4 5
0
0
x x
x x
x
x
+
+


[ ]
0, 0

5
13
,
17
18
17







101
34

5.
2
1 1
2
2 2
2 0.2
3 0.2
+
+
x x
x x

1 2
1 2
1
2
2 3 13
2 10
0
0
x x
x x
x
x
+
+


[ ]
1,1 -4.6 [ ]
2, 3
-10.4
6.
2 2
1 2 1
2
2.4
5.6
+

x x x
x

1 2
1 2
1 2
1
2
2 3 3 0
3 0
2 4 0
0
0
x x
x x
x x
x
x

+


[ ]
0,1 -4.6
1.2,
1.8



-7.88
115
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
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
n
R U x , (1)
unde U reprezint mulimea punctelor admisibile, iar f (x) funcia continu
cu derivate pariale continue pe U ( ) ( ) (
1
U C x f ). n cadrul metodei celei
mai rapide coborri, cutarea minimului se face prin construcia iterativ
) (
1 k k k k
x f x x

+
= . (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 x
k + 1
pe
mulimea U.
,... 2 , 1 )) ( (
1
= =

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

= (4)

n baza acestui rezultat i n ipoteza c n cadrul procesului iterativ
(2), x
k+1
=x
k
atunci procesul iterativ se oprete i punctul x
k
satisface
condiiile necesare de optim. Dac n plus, f(x) este o funcie convex,
atunci x
k
= 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:
,... 2 , 1 )) ( ( ( ) ( = =

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

k k k k k
f f f

. (6)

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

117
2) Exist posibilitatea determinrii prin testare succesiv a unei
valori
k
care asigur condiia de monotonie, ) ( ) (
1 k k
x f x f <
+
.
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

) 2 (
2
0
0
+
<
L
k
, (7)
unde
o
, sunt parametri de metod.
4) Este posibil ca lungimea pasului de cutare
k
s fie predefinit cu
asigurarea urmtoarelor restricii:

=
= = >
1
,..., 2 , 1 0
K
k k
k i

=
<
1
2
K
k
, (8)
ca de exemplu
1
1
+
=
k
k
.

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

0 , 1 0 ) 1 ( )) ( (
) )) ( ( (
1
> < + =
= + =

+
k k k k k k k u k
k k k k u k k k
x x f x P
x x f x P x x


(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 ( ( )) ,
k k k
x x f x x U

(10)
118
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
n
R x f : ) ( , pentru care
restriciile de tip egalitate sau inegalitate sunt liniare:

minimizeaz f(x)
n restriciile b x A (11)
e x E =
unde
n m
R A

,
1

m
R b ,
n l
R E

i
1

l
R e . Dac considerm un punct de
lucru curent
n
R x 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 U x pentru care putem stabili partiii corespunztoare
astfel nct A
1
x = b, A
2
x <b i Ex = e. Evident, partiiile A
1
, A
2
, b
1
i b
2
se
obin printr-o reordonare corespunztoare a liniilor matricelor A i b.
Restriciile active pentru punctul
n
R x considerat, fixeaz o matrice

=
E
A
M
1

119
pe care o presupunem de rang complet. Introducem matricea P =I -
M
T
(MM
T
)
-1
M. 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 ) (x f P d = .
Vom arta c n cazul n care 0 ) ( x f P , direcia ) (x f P d =
este o direcie admisibil de cutare. n adevr:
0 ) ( ) ( ) ( ) ( ) ( ) (
2
< = = =

x f P x f P P x f x f P x f d x f , (12)
i deci d este o direcie de coborre. Pe de alt parte,
0 ) ( = = x f P M d M i deci A
1
d = 0 , Ed = 0 care reprezint condiia
ca d s fie o direcie admis.
n cazul n care 0 ) ( = x f P , obinem:
) ( ) ( ) ( ) ( ) ) ( ( ) (
1 1
x f M M M M x f x f M M M M I x f P = =



Vom nota n continuare

= =

v
u
w x f M M M ) ( ) ) (
1
.
n aceste condiii,
0 ) ( ) ( ) (
1
1
= + =

+ =

v E u A x f
v
u
E
A
x f x f P . (13)

Facem observaia c A
1
i E corespund gradienilor restriciilor active
i prin urmare dac toate componentele lui u asigur 0 u atunci punctul x
este un punct Kuhn-Tucker.
120
Dac vectorul u nu satisface condiia 0 u , exist cel puin o
component 0 <
j
u . Considerm c n matricea A
1
eliminm linia j obinnd
matricea
1
i notm

=
E
A
P
1

. Vom arta c 0 ) (

x f P .

Presupunem prin absurd c 0 ) (

= x f P i deci

0

) (
) (

)

(

) (
) ( )

)

(

(
1
1
= + =
= =
=



W M x f
x f M M M M x f
x f M M M M I
(13)
n care W x f M M M =

) (

)

(
1
.

Pe de alt parte,
j j
u r W M v E u A

1
+ = +

, unde r
j
reprezint un
vector corespunztor liniei j din A
1
. Prin urmare,

j j
u r W M x f

+ + =

) ( 0 . (14)

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

= +

j j
u r W W M . (15)
Cu 0
i
n , egalitatea contrazice ipoteza c M este de rang complet.
Prin urmare, 0 ) (

x f P . Prin modul de definire, matricea P este i ea o


matrice de proiecie i considernd ) (

x f P d = , vom arta c d
constituie o direcie admisibil de coborre.
Deoarece P

este proiector, ) (

x f P d = este o direcie de coborre.


Pentru a arta c d este o direcie admisibil, este suficient s artm c
0
1
d A i Ed = 0. innd cont c 0

= P M , rezult:
0 ) (

1
= =

x f P M d
E
A
, (16)
121
i deci 0

1
= d A , Ed = 0. Rmne s artm c 0

d r
j
.
nmulind egalitatea (4.66) cu P r
j

, obinem:


+ = + + =
j j j j j j j j
r P r u d r u r W M P r x f P r

)

(

) (

0 . (17)

Relaia a fost obinut innd cont c 0

=

M P .

n l
n m
R E
R A

1
,
n l m
R M
E
A
+
=

) ( 1
, (18)

= =
+


+ +
v
u
R x f M M M w
n l m
x n
l m l n
) ( 1
) ( ) (
) ( ) (

, (19)

[ ] [ ] [ ]
j j
l
m
j
l
m
j
u r
v
v
u
u
u
E A
v
v
u
u
u
E A

+

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
1
1
1
1
1
1
. (20)
Cum u
j
< 0 i 0

>

j j
r P r ( P

proiector i deci matrice pozitiv definit),


rezult c 0 d r
j
.
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 R R x f
n
: ) ( , n cazul restriciilor poliedrale e x E b x A = , .
122
Etapa de iniializare. Se impune
n
R x
1
pentru a satisface restriciile
impuse b x A
1
i e x E =
1
. Reordonm restriciile astfel nct putem
fixa partiiile

=
2
1
2
1
,
b
b
b
A
A
A nct
1 1 1
b x A = i
2 1 2
b x A < . Facem k =
1 i trecem la etapa de baz.
Etapa de baz. Pasul 1. Fie

=
E
A
M
1
. Dac M nu are nici un element,
atunci P = I
n
, n caz contrar, M M M M P =
1
) ( 1 . Calculm
) (
k
x f P d = . Dac 0
k
d , trecem la pasul 2.
Dac 0 =
k
d , calculm ) ( ) (
1
k
x f M M M W =

. Fie

=
v
u
W . Dac
0 u ne oprim, iar x
k
este un punct Kuhn-Tucker. Dac nu, 0 u atunci
alege, 0 <
j
u , eliminm din A
1
linia j-a i relum pasul 1.
Pasul 2. Se determin lungimea optim a pasului de cutare
k
soluionnd
problema:
minimalizeaz ) (
k k
d x f +

max
0
unde
max
se determin ca i n cazul metodei direciilor admisibile de
cutare. Construim
k k k k
d x x + =
+

1
, stabilim partiiile A
1
, A
2
ale lui A i
b
1
, b
2
ale lui b nct
1 1 1
b x A
k
=
+
,
1 1 2
b x A
k
<
+
.
Facem 1 + k k 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):
123
Nr.
crt.
Funcia Restricii
Pct.
ini.
f(x
0
) Minim
Valoare
de
minim
1.
2 2
1 2
1 2 1
2
2 2
2 4
6
+ +
+

x x
x x x
x

1 2
1
2
2 2
0
0
x x
x
x
+


0.5,
0.5




-3.5
1
,
3
5
6







4.16
2.
1 2
1 2
x x
e x x


1 2
1
2
1
0
0
x x
x
x
+


[ ]
0, 0

1 [ ]
0,1
-0.6
3.
2 2
1 2 1
2
4
2
+

x x x
x

1 2
1 2
1
2
2 4
2 6
0
0
x x
x x
x
x
+
+


[ ]
1,1 -4
1.6,
0.8




4.8
4.
2 2
2 1
1 2
0.5 0.5
2 5
+
+
x x
x x

1 2
1 2
1
2
2 3 6
4 5
0
0
x x
x x
x
x
+
+


[ ] 0, 0

5
13
,
17
18
17







101
34

5.
2
1 1
2
2 2
2 0.2
3 0.2
+
+
x x
x x

1 2
1 2
1
2
2 3 13
2 10
0
0
x x
x x
x
x
+
+


[ ]
1,1 -4.6 [ ]
2, 3
-10.4
6.
2 2
1 2 1
2
2.4
5.6
+

x x x
x

1 2
1 2
1 2
1
2
2 3 3 0
3 0
2 4 0
0
0
x x
x x
x x
x
x

+


[ ]
0,1 -4.6
1.2,
1.8



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

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