Sunteți pe pagina 1din 11

Lucrare de laborator

Metoda cutrii ciclice dup axele de coordonate

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i


rularea unui algoritm bazat pe metoda cutrii ciclice dup axele de
coordonate s familiarizeze pe cei interesai cu problemele care apar n
minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

Metoda pe care o prezentm n continuare este o metod rudimentar


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

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


numai pentru funcii de dou variabile).
Punctul de iniializare a cutrii se consider

y1 = f ( x11 , x 21 ) .

Pstrnd neschimbat valoarea x 21 , urmrim o procedur de minimizare


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

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


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

C1
C2<C1
C3<C2
C4<C3

y 2 = f ( x21 , x22 )

y1 = f ( x11 , x21 )

( x12 , x21 )

x1
Figura 10. Metoda cutrii ciclice dup axele de coordonate

Descrierea algoritmic a unei astfel de proceduri este urmtoarea:


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

final). Se aleg direciile de cutare d1 = e1 , d 2 = e2 , ... d n = en , unde ei


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

Etapa de baz. Pasul 1. Se determin

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

i se calculeaz y j +1 = y j + j d j . Dac j < n atunci j j + 1 i se reia


pasul 1. Dac j = n, se trece la pasul 2.

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


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

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

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

8
6
4

x2

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

-6

-4

-2

0
x1

Figura 11. Curbele de izonivel pentru funcia prezentat


38

Aplicnd algoritmul prezentat materializat n subrutina coord.m,


obinem urmtoarele rezultate:
y =
1.0009
1.0005
A =
Columns 1 through 11
7.0000
1.0627

1.0153

7.0000
1.0309

2.6458

2.6458

1.0153

7.0000

1.0309

1.2754

1.0038

1.6266

1.0076

1.2754

1.0627

1.0038

1.6266

1.0076

1.1293

1.1293

1.0019

Columns 12 through 13
1.0009

1.0009

1.0019

1.0005

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

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

Nr. Crt

Funcia

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

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

[3, 4]

[1,1]

4.

5 ( x1 3) + ( x2 5 )

[0, 0]

[3,5]

5.

x12 x1 x2 + x22

[1, 2]

[0, 0]

39

6.

9 x12 + 16 x22 90 x1 128 x2

[0,3]

[5, 4]

-481

7.

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

[1,1]

1 4
3 , 3

8.

x12 x1 x2 + x22 2 x1 + x2

[3,5]

[1, 0]

-1

9.

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

[1,1]

[ 4,14]

-152

10.

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

[ 3, 5]

[ 2,3]

-23

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

-1.25

12.

x12 + x22 + x1 x2

[1,1]

[0, 0]

13.

x12 + 16 x22

[ 2, 2]

[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

14
3

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

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

40

Lucrare de laborator

Metoda cutrii ciclice cu pas accelerat

1. Scopul lucrrii

Scopul principal al acestei lucrri este ca prin implementarea i


rularea unui algoritm bazat pe metoda cutrii ciclice dup axele de
coordonate cu pas accelerat s familiarizeze pe cei interesai cu problemele
care apar n minimizarea funciilor de o singur de mai multe variabile.
2. Prezentarea lucrrii

mbuntirea procesului de cutare poate fi fcut intercalnd ntre


dou etape de cutare ciclic dup axele de coordonate, un proces de cutare
pe o direcie impus de soluiile finale n cadrul ciclurilor amintite: x k i
x k +1 cu forma d k = x k +1 x k .

x2
y|

y
x2

n figura 12, pentru o


funcie obiectiv ipotetic, sunt

x3

prezentate primele dou cicluri


de cutare ntr-un algoritm cu

x1

pas accelerat.

x1

Figura 12. Un ciclu de cutare

Cutarea se lanseaz n

x1 i dup evalurile minimului n lungul direciilor Ox1 i Ox2 , obinem


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

de coordonate care stabilete soluia x3 . n continuare, intercalm un nou


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

de cutare i x1 n punctul de iniializare a cutrii. Considerm y1 = x1


i k = j = 1 i se trece la etapa de baz.
Etapa de baz. Pasul 1. Calculm

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

i construim y j +1 = y j + j d j . Dac j < n , atunci j j + 1 i se reia


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

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

Impunem y1 = x k +1 + * d , j = 1 , k k + 1 i relum pasul 1.


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

Considerm funcia obiectiv ce urmeaz a fi modificat de forma:


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

Rezultatele comparative sunt prezentate n tabelul 7.1:


Cond

Ctare ciclic

iniiale

Cutare ciclic

Pas
accelerat

Cutare ciclic

10

5.3111 5.3111 3.8921 3.8921 3.0036

3.0032 3.0032

10

10

1.0011 1.0011

1.7704 1.7704 1.2973 1.0011

Tabelul 7.1. Rezultatele pentru exemplul considerat

Atingerea soluiei de minim se obine n opt iteraii n condiiile


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

10

10

7
x2

11

x2

11

5
Pas accelerat

3
2

3
0

5
x1

10

a) cutare ciclic cu pas accelerat

5
x1

10

b) cutare ciclic dup axele


de coordonate

Figura 13. Rezultatele metodei dihotomice

Considerm funcia (funcia Rosenbrock):


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

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


precizia impus.
Precizia

= 0 .1

= 0.01

= 0.001

Cutare ciclic

0.07sec. 0.451sec. 47.067sec.

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


Tabelul 7.2. Rezultatele pentru exemplu
44

Rezultatele sunt prezentate n tabelul 7.2, n care au fost incluse i


datele referitoare la durata de calcul necesar asigurrii aceleai precizii
utiliznd metoda cutrii ciclice dup axele de coordonate.
50

Timpi de calcul [sec.]

40

30

20

10

2
Precizia impusa prin k.

Figura 14. Dependena timpului de calcul - precizie

n figura de mai sus sunt prezentate dependenele timpilor de calcul necesari


asigurrii unei precizii impuse pentru cele dou metode de cutare analizate.
Observaii. O prim observaie care trebuie fcut este legat de

posibilitile de comparare a mai multor proceduri de cutare a minimului.


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

3. Chestiuni de studiat

Se consider funcia (forma funciei va fi impus de conductorul lucrrii) a


crei form este prezentat n tabelul de mai jos:
Punct de Punct de Valoare de
iniializare minim
minim

Nr.
Crt

Funcia

1.

6 x1 + 2 x12 2 x1 x2 + 2 x22

[ 1, 1]

[ 2, 1]

-6

2.

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

[ 1, 1]

[5, 0.5]

7.5

3.

( x1 1)

[3, 4]

[1,1]

[0, 0]

[3,5]

[0, 0]
[5, 4]

+ 100 ( x1 x2 )

4.

5 ( x1 3) + ( x2 5 )

5.

x12 x1 x2 + x22

6.

9 x12 + 16 x22 90 x1 128 x2

[1, 2]
[0,3]

7.

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

[1,1]

1 4
3 , 3

8.

x12 x1 x2 + x22 2 x1 + x2

[1, 0]

9.

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

[3,5]
[1,1]

10.

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

[ 3, 5]

11.

x1 x2 + 2 x12 + 2 x1 x2 + x22

[1,1]

3
1, 2

12.

x12 + x22 + x1 x2

13.

x12 + 16 x22

[1,1]
[ 2, 2]

[0, 0]
[0, 0]

[ 5, 8]

[1,1]

14.

(1 x1 )

+ ( x1 x2 )

[ 4,14]
[ 2,3]

0
-481

14
3

-1
-152
-23
-1.25
0
0
0

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


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