CATEGORII DOCUMENTE |
ALGORITMUL HOOKE-JEEVES |
Fiind date n perechi de valori (xi, yei), cu ajutorul algoritmului Hooke-Jeeves se realizeaza determinarea unei functii de regresie y(x) astfel incat sa se minimizeze suma patratelor diferentelor dintre valorile initiale yei si valorile yi ale functiei de regresie in puctele xi:
minim |
(A.3.1) |
Algoritmul este folosit cu precadere atunci cand nu se poate aplica metoda celor mai mici patrate datorita faptului ca sistemul de ecuatii obtinut prin egalarea cu zero a derivatelor partiale nu este liniar si nici nu poate fi liniarizat prin logaritmare.
Desfasurarea algoritmului Hooke-Jeeves poate fi comparata cu deplasarea unui 'vector de cautare', intr-un spatiu k-dimensional, pe directia pe care este minima valoarea expresiei
|
(A.3.2) |
Printre datele initiale ale algoritmului trebuie sa se afle o estimare a formei functiei de regresie y(x), aceasta fiind caracterizata prin parametrii cj, j = 1...k ale caror valori vor fi modificate de la o iteratie la alta in scopul obtinerii expresiei optime a functiei y(x).
Utilizarea algoritmului presupune de asemenea furnizarea ca date initiale a urmatoarelor valori:
Dc : valoarea initiala a incrementului cu care vor fi modificati parametrii cj;
e : limita inferioara a valorii sumei H(x) la care va avea loc oprirea algoritmului;
e : limita inferioara a valorii incrementului Dc, la care va avea loc oprirea algoritmului.
In prima iteratie, atat originea cat si varful vectorului de cautare se afla in punctul ale carui coordonate sunt reprezentate de estimatiile initiale cj, j = 1...k. Se noteaza cu bj, j = 1...k, coordonatele originii si cu vj, j = 1...k, coordonatele varfului vectorului de cautare. Evident, la prima iteratie (pasul 0):
bj = vj = cj, j = 1...k |
(A.3.3) |
si se calculeaza valorile
B = H(b), V = H(v) |
(A.3.4) |
Tot la prima iteratie, se considera ca directia de cautare este paralela cu prima axa de coordonate a spatiului k-dimensional (d=
Pasul 1: Se deplaseaza varful vectorului de cautare, cu distanta Dc, in sensul negativ al directiei de cautare:
vd = vd - Dc |
(A.3.5) |
si se recalculeaza valoarea H(v) in noua pozitie:
V' = H(v) |
(A.3.6) |
Daca nu este indeplinita conditia
V' V |
(A.3.7) |
se trece la pasul 2, daca da, se recalculeaza valoarea V = H(v) si se trece la pasul 4.
Pasul 2: Se efectueaza o deplasare a varfului vectorului de cautare, cu aceeasi marime, in sensul pozitiv al directiei de cautare:
vd = vd + 2.Dc |
(A.3.8) |
si se recalculeaza
V' = H(v) |
(A.3.9) |
Daca nici in aceasta noua pozitie a varfului vectorului de cautare nu este indeplinita conditia
V' V |
(A.3.10) |
se trece la pasul 3, daca da, se recalculeaza valoarea V = H(v) si se trece la pasul 4.
Pasul 3: Se revine la punctul de pornire:
vd = vd - Dc |
(A.3.11) |
Pasul 4: Se defineste drept directie de cautare urmatoarea dimensiune a spatiului k-dimensional:
d = d + 1 |
(A.3.12) |
Daca s-a depasit numarul de dimensiuni al spatiului de cautare:
d > k |
(A.3.13) |
se trece la pasul 5, daca nu, se revine la pasul 1.
Pasul 5: Daca valoarea functiei H este mai mica in varful v al vectorului de cautare decat in baza b a acestuia:
V = H(v) < B = H(b) |
(A.3.14) |
se trece la pasul 6, daca nu, se trece la pasul 7.
Pasul 6: Daca valoarea V este inferioara limitei e reprezentand precizia necesara pentru calculul sumei H, rezulta ca valorile
cj = vj, j = 1...k |
(A.3.15) |
sunt valorile optime cautate ale coeficientilor functiei de regresie y(x), iar algoritmul se opreste.
Daca nu este indeplinita conditia V e , atunci vectorul de cautare este translatat pe suportul sau, astfel incat baza sa ajunga in locul varfului:
(tj = bj, bj = vv, vj = 2 . bj - tj), j = 1...k |
(A.3.16) |
si se revine la pasul 0.
Pasul 7: Se retrage varful vectorului de cautare in baza acestuia:
(vj = bj), j = 1...k |
(A.3.17) |
si se injumatateste valoarea incrementului de cautare:
|
(A.3.18) |
Daca noua valoare Dc este mai mica decat limita de precizie a cautarii e , se considera ca valorile (cj = bj), j=1...k sunt valorile optime cautate ale coeficientilor functiei de regresie y(x), iar algoritmul se opreste. Daca nu este indeplinita conditia
Dc e2 |
(A.3.19) |
se revine la pasul 0.
Pentru o mai buna intelegere a algoritmului, organigrama acestuia este prezentata in figura A.3.1.
Pentru datele din tabelul A.3.1, se doreste determinarea coeficientilor unei functii de regresie de forma
|
(A.3.20) |
Tabelul A.3.1
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
xi |
0,2 |
0,3 |
0,4 |
0,5 |
0,6 |
0,7 |
0,8 |
0,9 |
1,0 |
|
yei |
0,06 |
0,12 |
0,16 |
0,22 |
0,25 |
0,28 |
0,29 |
0,30 |
0,29 |
0,28 |
Pornind de la o estimatie initiala a coeficientilor
c1 = c2 = 3 |
(A.3.21) |
si de la o valoare a incrementului
Dc = |
(A.3.22) |
in tabelul A.3.2 pot fi urmarite valorile calculate pe parcursul iteratiilor succesive, pana la realizarea conditiei de precizie
V < e = |
(A.3.23) |
In iteratia 2 poate fi urmarita efectuarea pasului 1 pe prima directie de cautare, in sens negativ (deplasarea din v1 = 3 in v1 = 2,9), iar in iteratia 3 efectuarea aceluiasi pas pe cea de-a doua directie, dar in sens pozitiv (deplasarea din v2 = 3 in v2 = 3,1). Aceleasi operatii au fost efectuate si in perechiile de iteratii 5-6, 8-9, 11-12 etc.
Figura A.3.1: Organigrama algoritmului Hooke - Jeeves
In iteratia 4 poate fi urmarita deplasarea bazei vectorului de cautare in punctul (2,9; 3,1) si a varfului acestuia in punctul (2,8; 3,2), conform pasului 6 al algoritmului. Operatii analoage sunt efectuate si in iteratiile 7, 10, 13 etc.
In iteratia 24, deoarece valorile V = H(v) calculate in iteratiile 21, 22 si 23 au fost mai mici decat valoarea B = H(b), marimea incrementului de cautare a fost injumatatita (pasul 7).
Tabelul A.3.2
Nr. iter. |
Dc |
b1 |
b2 |
B |
v1 |
v2 |
V |
1 |
3 |
3 |
934,331 |
3 |
3 |
934,331 |
|
2 |
2,9 |
3 |
856,224 |
||||
3 |
2,9 |
3,1 |
779,805 |
||||
4 |
2,9 |
3,1 |
779,805 |
2,8 |
3,2 |
651,603 |
|
5 |
2,7 |
3,2 |
596,627 |
||||
6 |
2,7 |
3,3 |
552,525 |
||||
7 |
2,7 |
3,3 |
552,525 |
2,5 |
3,2 |
495,459 |
|
8 |
2,4 |
3,2 |
449,075 |
||||
9 |
2,4 |
3,3 |
419,908 |
||||
10 |
2,4 |
3,3 |
419,908 |
2,1 |
3,3 |
307,384 |
|
11 |
2 |
3,3 |
274,111 |
||||
12 |
2 |
3,4 |
265,556 |
||||
13 |
2 |
3,4 |
265,556 |
1,6 |
3,5 |
158,921 |
|
14 |
1,5 |
3,5 |
136,657 |
||||
15 |
1,5 |
3,4 |
135,466 |
||||
16 |
1,5 |
3,4 |
135,466 |
1 |
3,4 |
48,937 |
|
17 |
0,9 |
3,4 |
36,800 |
||||
18 |
0,9 |
3,3 |
36,349 |
||||
19 |
0,9 |
3,3 |
36,349 |
0,3 |
3,2 |
0,167 |
|
20 |
0,3 |
3,1 |
0,115 |
||||
21 |
0,3 |
3,1 |
0,115 |
-0,3 |
2,9 |
42,577 |
|
22 |
-0,2 |
2,9 |
29,457 |
||||
23 |
-0,2 |
3 |
27,204 |
||||
24 |
0,05 |
0,3 |
3,1 |
0,115 |
0,3 |
3,1 |
0,115 |
25 |
0,3 |
3,05 |
0,096 |
||||
26 |
0,3 |
3,05 |
0,096 |
0,3 |
3 |
0,080 |
|
27 |
0,3 |
2,95 |
0,067 |
||||
28 |
0,3 |
2,95 |
0,067 |
0,3 |
2,85 |
0,046 |
|
29 |
0,3 |
2,8 |
0,037 |
||||
30 |
0,3 |
2,8 |
0,037 |
0,3 |
2,65 |
0,019 |
|
31 |
0,3 |
2,6 |
0,014 |
||||
32 |
0,3 |
2,6 |
0,014 |
0,3 |
2,4 |
0,004 |
|
33 |
0,3 |
2,35 |
0,003 |
||||
34 |
0,3 |
2,35 |
0,003 |
0,3 |
2,1 |
0,0007 |
|
35 |
0,3 |
2,05 |
0,0003 |
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1563
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved