Sunteți pe pagina 1din 5

L7.

Metode numerice pentru extremizarea funcțiilor de o variabilă - I


Metode de explorare. Metode de eliminare: metoda căutării exhaustive,
metoda căutării dihotomice, metoda înjumătățirii intervalului

I. Introducere

O problemă de optimizare care implică o funcție obiectiv și/sau constrângeri care nu sunt
funcții explicite de variabilele de decizie sau care nu pot fi manipulate ușor nu se poate rezolva
folosind metodele analitice prezentate în lucrările anterioare. Din acest motiv au fost dezvoltate
tehnici de optimizare numerică pentru găsirea soluției unor astfel de probleme. În cazul
problemelor de extremizare fără restricții, cele mai eficiente metode sunt cele de căutare.
Principiul metodelor de căutare constă în găsirea unei secvențe de aproximații din ce în ce mai
bune ale optimului x * , procedura încheindu-se când este îndeplinit un criteriu de stop (de
convergenţă). Căutarea se realizează după formula iterativă x k 1  x k  k hk , unde hk   n este
direcția de deplasare și scalarul k este pasul de deplasare pe direcția hk . Eficiența metodelor
depinde de eficieța alegerii direcției de deplasare și a pasului. Există metode ce necesită ca pasul
de deplasare să fie optim, adică să asigure descreșterea maximă a funcției pe direcția de
deplasare aleasă. Determinarea pasului optim constă în a stabili min f ( x k  hk ) , adică în

minimizarea unei funcții de o singură variabilă ( x k și hk fiind fixați).
Există mai multe tipuri de metode de extremizare unidimensională: de explorare, de
eliminare și de interpolare. Metodele de explorare se folosesc, în general, pentru determinarea
intervalului de incertitudine inițial în care se află punctul de minim în cazul aplicațiilor în care nu
se cunoaște acest interval. Dintre metodele de eliminare vor fi prezentate metoda căutării
exhaustive, metoda căutării dihotomice, metoda înjumătățirii intervalului, metoda Fibonacci și
metoda secțiunii de aur (unele în lucrarea de față, ultimele două în lucrarea următoare). Există
metode de interpolare ce nu necesită utilizarea derivatelor (metoda de interpolare pătratică – va fi
studiată în laboratorul următor), respectiv metode ce necesită derivate – interpolarea cubică,
metoda Newton, cvasi-Newton, metoda secantei.

II. Metode de explorare


În majoritatea problemelor practice de optimizare se cunoaște intervalul căruia îi aparține
punctul de optim. Există însă situații când intervalul de incertitudine inițial nu este cunoscut și
căutarea trebuie făcută fără restricții asupra variabilelor de proiectare. Metodele de explorare
permit găsirea intervalului de incertitudine inițial. Se poate determina și punctul de minim al
funcției dar aceste metode au o precizie scăzută, fiind mai utile pentru stabilirea grosieră a
domeniului în care se află minimul funcţiei unidimensionale.
Se pleacă de la un punct de start x0 și se face căutarea într-o direcție favorabilă (pozitivă
sau negativă) cu un pas  . Acuratețea metodei este dată de lungimea pasului de căutare (cu cât
pasul este mai mic, cu atât intervalul de incertitudine final este mai mic). Dezavantajul unui pas
de căutare mic constă în numărul mare de iterații ale algoritmului. Spre exemplu, dacă funcția
are punctul de minim x*  50000 și punctul de start este 0, iar pasul 0.1, funcția trebuie evaluată
de 5000001 ori. Pentru a înlătura acest dezvantaj se poate face o căutare cu pas accelerat (spre
exemplu se poate dubla pasul la fiecare iterație). În această situație, intervalul de incertitudine
este grosier, dar ținînd cont de faptul că metoda se folosește pentru furnizarea unui interval de
incertitudine inițial pentru alte metode mai eficiente, se poate adopta această soluție.
În cazul în care se dorește obținerea punctului de minim prin această metodă (și nu a unui
interval în care se găsește acesta), se folosește varianta cu pas constant, iar punctul de minim va
fi ales ca fiind mijlocul intervalului de incertitudine final.
Algoritm – metoda de explorare cu pas constant
1. Se introduc datele iniţiale: punctul de start x0 şi pasul  .
2. Se calculează x1  x0 , f1  f ( x1 ) .
3. Se calculează x2  x1   , f 2  f ( x2 ) .
4. Se compară f1 cu f 2
a. Dacă f 2  f1 se trece la 5.
b. Dacă f 2  f1 se trece la 6.
c. Dacă f 2  f1 se trece la 7.
5. Se face x1  x2 , f1  f 2 şi se revine la 3.
6. Ultimul test a arătat o creştere a funcţiei. Există două variante:
a. Dacă s-a efectuat un singur pas, direcţia testată nu este bună, deci    şi se revine
la 3. Dacă şi în noul ciclu, la pasul 4 rezultă f 2  f1 , atunci x1  x1   şi se trece la 7.
b. Dacă s-a efectuat mai mult de un pas, rezultă că procesul de căutare este
încheiat, depăşindu-se punctul de minim x * . Se face x1  x1   şi se trece la 7.
7. Dacă x1  x2 , intervalul de incertitudine final este [ x1 , x2 ] ; dacă x1  x2 , intervalul
de incertitudine final este [ x2 , x1 ] ; punctul de minim este x*  ( x1  x2 ) / 2 .

Algoritm – metoda de explorare cu pas accelerat


1. Se introduc datele iniţiale: punctul de start x0 şi pasul  .
2. Se calculează x1  x0 , f1  f ( x1 ) .
3. Se calculează x2  x1   , f 2  f ( x2 ) .
4. Se compară f1 cu f 2
a. Dacă f 2  f1 se trece la 5.
b. Dacă f 2  f1 se trece la 6.
c. Dacă f 2  f1 se trece la 7.
5. Se face   2 , x1  x2 , f1  f 2 şi se revine la 3.
6. Ultimul test a arătat o creştere a funcţiei. Există două variante:
a. Dacă s-a efectuat un singur pas, direcţia testată a fost contrară celei dorite, deci
se pune    şi se revine la 3. Dacă şi în noul ciclu, la pasul 4 rezultă f 2  f1 ,
atunci x1  x1   şi se trece la 7.
b. Dacă s-a efectuat mai mult de un pas, rezultă că procesul de căutare este încheiat,
depăşindu-se punctul de minim x * . Se face    / 2 , x1  x1   şi se trece la 7.
7. Dacă x1  x2 , intervalul de incertitudine final este [ x1 , x2 ] ; dacă x1  x2 , intervalul
de incertitudine final este [ x2 , x1 ] .

III. Metode de eliminare


Considerăm că trebuie determinat minimul funcţiei unimodale f(x) pe intervalul
[ xm , xM ] . Alegem două puncte x1 şi x2 în interiorul intervalului, calculăm şi comparăm
f1  f ( x1 ) şi f 2  f ( x2 ) .
1. Dacă f1  f 2 (fig.1.a), minimul nu se poate afla în intervalul [ x2 , xM ] şi ca atare
eliminăm intervalul [ x2 , xM ] (prin renotare: xM  x2 ). Se aleg noile puncte x1 şi x2 .
2. Dacă f1  f 2 , trebuie eliminat intervalul din stânga (fig.1.b) [ xm , x1 ] ( xm  x1 ). Se
aleg noile puncte x1 şi x2 .
3. Dacă f1  f 2 , se elimină intervalele din ambele capete [ xm , x1 ] şi [ x2 , xM ] ( xm  x1 ,
xM  x2 ). Se aleg noile puncte x1 şi x2 .
f1 f2
(a)
xm x1 x2 xM
f1 f2
(b)
xm x1 x2 xM
f1 f2
(c)
xm x1 x2 xM

Fig. 1. Principiul metodelor de eliminare


Procedura continuă până se ajunge la un interval de incertitudine care corespunde preciziei
impuse. Minimul funcţiei se află în interiorul intervalului. Procedura prin care se alege noul punct
de test este importantă prin faptul că influenţează rata de descreştere a intervalului de incertitudine.
Din acest punct de vedere metoda Fibonacci şi cea a secţiunii de aur sunt cele mai eficiente.

a) Metoda căutării exhaustive


Metoda căutării exhaustive poate fi utilizată la rezolvarea problemelor pentru care
intervalul căruia îi aparține punctul de minim este finit. Funcția obiectiv se evaluează într-un
număr precizat n de puncte situate la distanțe egale în intervalul L0  [ xm , xM ] . Intervalul inițial
de incertitudine se reduce pe baza ipotezei de unimodalitate. Spre exemplu, dacă presupunem că
funcția din figura 2, definită pe [ xm , xM ] , se calculează în opt puncte interioare situate la distanțe
egale x1 ,..., x8 , atunci punctul de minim ar trebui să se afle în intervalul [ x5 , x7 ] , care va fi
intervalul final de incertitudine.

xm x1 x2 x3 x4 x5 x6 x7 x8 xM

Fig. 2. Metoda căutării exhaustive


Dacă vom presupune că xj este punctul de minim, atunci intervalul final de incertitudine
este dat de:
2
Ln  x j 1  x j 1  L0 (1)
n 1
Observații:
 Deoarece evaluarea funcției se face simultan în n puncte, metoda se mai numește
metoda căutării simultane;
 În general metoda este ineficientă în comparație cu metodele iterative ce vor fi
prezentate ulterior.

b) Metoda căutării dihotomice


Se evaluează funcția obiectiv în două puncte cât mai apropiate de centrul intervalului de
incertitudine (v. figura 3):
L0  L 
x1  xm   , x2  xm  0  , (2)
2 2 2 2
unde  este număr pozitiv mic ales astfel încât cele două puncte în care se va face evaluarea
funcției obiectiv să fie semnificativ diferite.
Noul interval de incertitudine este L0 / 2   / 2 . La fiecare iterație se evaluează funcția în
două puncte poziționate în jurul centrului intervalului de incertitudine, ceea ce duce la eliminarea
a aproape jumătate din intervalul respectiv.
f1 f2

xm x1 x2 xM

/2 /2

L0/2

L0
Fig. 3. Metoda căutării dihotomice

Lungimea intervalelor de incertitudine depinde, evident, de n - numărul de evaluări ale


funcției (număr par), după cum se poate observa în tabelul următor:
Nr. evaluări 2 4 6 n
ale funcției ...
Intervalul final 1 1  L0     1  L0      L0  1 
( L0  )    Ln    1  n / 2 
2  2  2 2  4
de 2 2 2 2n / 2  2 
incertitudine

Algoritm – căutare dihotomică


1. Se alege  și lungimea finală a intervalului de incertitudine (); se introduc xm și xM .
2. Se calculează intervalul de incertitudine L0  xM  xm .
a. Dacă L0   , algoritmul se oprește, minimul aflându-se în intervalul L0 (se poate
considera că punctul de minim este mijlocul intervalului).
b. Dacă L0   , se calculează x1 , x2 cu (2), f1  f ( x1 ) , f 2  f ( x2 ) și se trece la 3.
3. Se compară f1 cu f 2 .
a. Dacă f1  f 2 atunci xM  x2 .
b. Dacă f 2  f1 atunci xm  x1 .
4. Se revine la 2.

c) Metoda înjumătățirii intervalului


Această metodă presupune eliminarea unei jumătăți a intervalul de incertitudine la fiecare
iterație, după cum se poate observa în figura 3.
Algoritm – metoda înjumătățirii intervalului
1. Se împarte intervalul inițial în patru părți egale.
2. Se evaluează funcția în cele trei puncte interioare f1  f ( x1 ), f 0  f ( x0 ), f 2  f ( x2 ) .
3. Se compară f1 , f 0 , f 2 .
a. Dacă f 2  f 0  f1 se elimină intervalul [ x0 , xM ] , adică xM  x0 , x0  x1 și se
trece la 4.
b. Dacă f 2  f 0  f1 se elimină intervalul [ xm , x0 ] , adică xm  x0 , x0  x2 și se
trece la 4.
f2
f0
f1

xm x1 x0 x2 xM
f1
f0
f2

xm x1 x0 x2 xM
f2
f1
f0

xm x1 x0 x2 xM

L0
Fig. 4. Metoda înjumătățirii intervalului

c. Dacă f 2  f 0 și f1  f 0 se elimină intervalele [ xm , x1 ] și [ x2 , xM ] , adică


xm  x1 și xM  x2 și se trece la 4.
4. Se testează dacă noul interval de incertitudine L  xM  xm satisface condiția de stop
L0   . Daca da, STOP. Dacă nu, L  L0 și se revine la 1.

Observații:
1. Valoarea funcției în mijlocul intervalului de incertitudine se calculează doar la prima
iterație.
2. Intervalul de incertitudine final după n evaluări ale funcției (n  3 și par) este dat de:
( n 1)/2
1
Ln    L0 (3)
2

Probleme propuse

Să se scrie programe în MATLAB care să minimizeze o funcție de o variabilă folosind


metodele de explorare cu pas constant și accelerat, metoda căutării dihotomice și metoda
înjumătățirii intervalului. Se vor compara rezultatele și eficiența celor trei metode. Se consideră
funcțiile obiectiv prezentate mai jos (pentru care se va trasa și graficul).

 f ( x)  x 2  2 x  1 , x   ;
 f ( x)  x 4  x 5 , x   ;
 f ( x)  x 4  x 3 , x   ;
0.75 1
 f ( x)  0.65  2
 0.65 tan 1   ; x  [0, 0.5] .
(1  x ) x

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