Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


ALGORITMUL HOOKE-JEEVES

algoritmi



+ Font mai mare | - Font mai mic



ALGORITMUL HOOKE-JEEVES

1. Notiuni teoretice

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.

2. Exemplu de calcul

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1460
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved