Optimizacija 1 / 43
2 / 43 Uvod u optimizaciju Zadana funkcija Uvod u optimizaciju f : R n R Cilj: Naći x, točku minimuma funkcije f : - Problem je jednostavno opisati x = arg min x R n f (x). - Rješavanje je jedno od najtežih područja numeričke analize. - Cilj optimizacije je definirati prikladne, tj. što brže postupke, za rješavanje ovog tipa problema. - Neke poteškoće: - nepoznata analitička svojstva funkcije f - globalni minimum
Uvod u optimizaciju Traženje minimuma x = arg min f (x). x R n je potuno analogan problem nalaženju maksimuma funkcije f. Traženje maksimuma od f ekvivalentno je traženju minimuma funkcije f : f (x) = min f (x). n n max x R x R Termin optimizacija ravnopravno se koristi s terminom minimizacija funkcija. Često se minimum funkcije f ne traži na cijelom području R n, već na nekom podskupu D R n : min f (x). x D Problem minimizacije s ograničenjima. - Problem izgleda jednostavniji (zbog manjeg područja minimizacije),ali metode za njegovo rješavanje su složenije nego za polazni problem. 3 / 43
4 / 43 Uvod u optimizaciju -Uz funkciju f moramo voditi računa i o rubu područja D (često definiranog pomoću skupa funkcija). Primjer: Funkcija f (x) = x 2 ima globalni minimum u 0. Ako tražimo minimimum na intervalu [a, b]: minimum funkcije f jednak 0 ako je 0 [a, b] ili min{f (a), f (b)} ako 0 / [a, b]. - u razmatranje smo trebali uzeti i rubove intervala.
5 / 43 Uvod u optimizaciju U praksi se često javlja problem optimizacije s posebnim oblikom funkcije f i skupa D. Npr., - D presjek poluravnina u R n - f je linearna funkcija problem linearnog programiranja. - f kvadratična funkcija (polinom) problem kvadratičnog programiranja.
6 / 43 Jednodimenzionalna minimizacija. Metoda zlatnog reza Jednodimenzionalna minimizacija. Metoda zlatnog reza f : R R Zadane su tri točke a < b < c Poznate su vrijednosti funkcije f u njima: f (a), f (b) i f (c) Vrijedi: f (b) f (a) i f (b) f (c) - vrijednost funkcije f je najmanja u srednjoj točki b. - točka lokalnog minimuma nalazi u intervalu [a, c]
7 / 43 Jednodimenzionalna minimizacija. Metoda zlatnog reza -Izaberimo novu točku x iz intervala [b, c]. - Pretpostavit ćemo da je x (b, c). - Dvije mogućnosti: f (x) f (b) ili f (x) < f (b). - Ako je f (x) f (b) - minimum nalazi u [a, x] (jer je f (b) f (a) i f (b) f (x)) - novu točku biramo iz trojke (a, b, x). - Ako je f (x) < f (b) - minimum se nalazi u intervalu [b, c] - novu točku biramo iz trojke (b, x, c). Opisani postupak je osnova metode zlatnog reza. Preostalo je još za razmotriti način izbora nove točke x.
8 / 43 Jednodimenzionalna minimizacija. Metoda zlatnog reza Neka je w omjer u kojem b dijeli interval [a, c]: w = b a c a Izaberemo točku x (b, c). Označimo i c b c a = 1 w. z = x b c a. - Za f (x) f (b) minimum je lociran na intervalu širine x a - Za f (x) < f (b) minimum je lociran na intervalu širine c b. 1. zahtjev. I u jednom i u drugom slučaju širina intervala je jednaka: x a = c b, z + w = x b + b a = x a c a c a = c b c a = 1 w. z = 1 2w - točke x i b smještene su simetrično s obzirom na središte intervala [a, c].
9 / 43 Jednodimenzionalna minimizacija. Metoda zlatnog reza Povoljnim izborom početne točke b možemo postići da vrijedi 2. zahtjev. x dijeli interval [b, c] u istom omjeru kao što b dijeli interval [a, c]. c b c a = c x c b, 1 w = 1 z 1 w. z = 1 2w w 2 3w + 1 = 0. - dva rješenja zanima nas ono koje je manje od 1: w = 3 5 2 0.38197. Gornji je broj poznat kao zlatni broj pa se metoda s ovakvim izborom nove točke x naziva metodom zlatnog reza.
Jednodimenzionalna minimizacija. Metoda zlatnog reza Algoritam za metodu zlatnog reza. Neka točke a (0), b (0) i c (0) zadovoljavaju b (0) a (0) c (0) a (0) = w = 3 5 2 te f (b (0) ) f (a (0) ) i f (b (0) ) f (c (0) ). 1. i = 0 2. Odredimo x (i) = c (i) + a (i) b (i). 3. Ako je f (x (i) ) < f (b (i) ) tada a (i+1) = b (i), b (i+1) = x (i), c (i+1) = c (i), inače a (i+1) = a (i), b (i+1) = b (i), c (i+1) = x (i). 4. Ako je c (i+1) a (i+1) ε tada x = (a (i+1) + c (i+1) )/2, KRAJ. 5. i = i + 1 6. Vrati se na korak 2. 10 / 43
11 / 43 Jednodimenzionalna minimizacija. Metoda zlatnog reza Uočimo da vrijedi c (i+1) a (i+1) = (1 w) c (i) a (i) 0.61803 c (i) a (i) - metoda konvergira linearno prema točki minimuma x. Za inicijalno odre divanje trojke (a (0), b (0), c (0) ) krenemo od bilo kojeg para točaka a i b. Bez smanjenja općenitosti pretpostavimo da je f (a) f (b). Točku c odredimo tako da b dijeli interval [a, c] u zlatnom omjeru. Ukoliko je f (b) f (c) našli smo traženu trojku. U suprotnom slučaju ponovimo postupak s točkama a i c (ili b i c). Oprez. Općenito nema garancije da ćemo naći početnu trojku.
12 / 43 Zadana je funkcija Cilj je odrediti Ideja: f : R n R min f (x). x R n Za neku zadanu točku odredi točku takva da je x 0 R n x 1 R n f (x 1 ) < f (x 0 ). - postupak ponovimo.
13 / 43 Za točku x i R n, tražimo točku x i+1 R n za koju je f (x i+1 ) < f (x i ). Generiramo niz točaka x 0, x 1, x 2,... za koje je f (x 0 ) > f (x 1 ) > f (x 2 ) > Ako je niz (f (x i )) i odozdo ograničen, tada postoji lim f (x i ). i - lim x i ne treba nužno postojati. i Npr., za f (x) = e x je lim i f (x i ) = 0, no lim i x i ne postoji. x i = i Za egzistenciju lim i kompaktan. x i nužno je da postoji x 0 R n takav da je skup {x f (x) f (x 0 )}
Osnovno je pitanje kako izabrati x i+1. s - smjer u kojem funkcija f lokalno pada u okolini točke x:. f (x + λs) < f (x), za mali λ, λ R, λ > 0. Promatrajmo funkciju g : R R definiranu s g(λ) = f (x + λs). Vrijedi: g(0) = f (x). f glatka funkcija (f C 1 ) g C 1. f pada u smjeru s oko točke x g pada u 0, tj. g (0) < 0. Jer Definiramo skup g (λ) = f (x + λs), s, g (0) = f (x), s < 0. D(x) = {s f (x), s < 0}. Ovaj skup nazivamo skup smjerova silaska a njegove elemente smjerovi silaska. 14 / 43
15 / 43 Osnova niza minimizacijskih metoda. Za zadani x i R n definiramo x i+1 = x i + λ i s i gdje je s i D(x i ). Konstantu λ i nazivamo korakom minimizacije. Odabiremo je tako da bude zadovoljeno f (x i+1 ) < f (x i ). To je moguće jer je s i smjer silaska. Izbor smjera silaska ovisi o izboru metode minimizacije. Različite metode na različite načine odre duju izbor smjera silaska.
16 / 43 Veličina koraka minimizacije je bitna za konvergenciju metode. Nije dovoljno odrediti točku x i+1 koja zadovoljava f (x i+1 ) < f (x i ). Primjer. Minimizacija funkcije f (x) = x 2. Izborom - niz točaka (x i ) i konvergira x 0 = 2, x 1 = 1.5,..., x i = 1 + 1 i + 1, - niz padajućih vrijednosti (f (x i )) i tako der konvergira. - ovi nizovi ne konvergiraju prema točki minimuma, odnosno minimumu funkcije f.
17 / 43 Jedan od načina izbora koraka λ i je maksimalno spuštanje u smjeru s i. Tada je λ i = arg min λ>0 f (x i + λs i ). - Ovakav pristup zahtijeva primjenu analitičkih metoda. - nije jednostavno pri upotrebi računala, naročito ako je funkcija f složenijeg oblika. Drugi način je približno odre divanje λ i nekom minimizacijskom metodom. - koristimo metode za jednodimenzionalnu minimizaciju (npr. metodu zlatnog reza).
18 / 43 Točka x i+1 nije nužno točka (globalnog ili lokalnog) minimuma u njoj ponavljamo cijeli postupak: izabiremo novi smjer silaska i korak minimizacije. - korak minimizacije nije nužno izračunati egzaktno ili s prevelikom točnošću - utrošeno vrijeme ne rezultira s odgovarajućim rezultatom. Jedan od alternativnih pristupa je neegzaktno pretraživanje po pravcu. - u konačnom broju koraka odre duje se λ i - ne minimizira se f (x i + λs i ) - dovoljno se smanjuje vrijednost f (x i+1 ) u odnosu na f (x i ) tako da minimizacijska metoda konvergira, tj. da niz (x i ) i konvergira točki minimuma funkcije f.
Gradijentna metoda s je smjer silaska u točki x: za f (x) 0. s = f (x) s, f (x) = f (x), f (x) = f (x) 2 < 0 f (x) = 0 - zadovoljen kriterij konvergencije (skup smjerova silaska je prazan skup). - To ne treba značiti da smo došli do točke minimuma. - ova metoda lokalno bira smjer najbržeg silaska (metoda najbržeg silaska) - nije najbrža u traženju globalnog minimuma. - za primjenu metode funkcija f treba biti glatka (f C 1 ) 19 / 43
20 / 43 Modificirana Newtonova metoda Metoda se zasniva na Newton Raphsonovoj metodi za rješavanje nelinearne jednadžbe h(x) = 0. Newton Raphsonova metoda: x i+1 = x i h(x i) h (x i ). Za h : R n R n : x i+1 = x i [H h (x i )] 1 h(x i ). ( ) hi H h - Jacobijeva matrica - y j ij
21 / 43 Umjesto rješavamo f (x) min f (x) = 0. - nužan uvjet minimuma. - ako je f konveksna funkcija, tada je taj uvjet i dovoljan. Newton-Raphsonova metoda generira niz točaka: x i+1 = x i [ 2 f (x i )] 1 f (x i ), (1) 2 f - Hessijan (ili Hessova matrica) funkcije f : [ 2 f ] ij = 2 f y i y j.
Ovo ne garantira da generirani niz zadovoljava f (x ) < f (x ). 22 / 43 Da li vrijedi f (x i+1 ) < f (x i )? Je li [ 2 f (x i )] 1 f (x i ) D(x i )? Neka je H pozitivno definitna matrica. (Hx, x) > 0 za sve x R n i x 0. za f (x) 0. H f (x), f (x) = H f (x), f (x) < 0 H f (x) D(x). x točka minimuma funkcije f 2 f (x ) je pozitivno definitna. 2 f (x) pozitivno definitna za x iz neke okoline točke minimuma x [ 2 f (x)] 1 pozitivno definitna [ 2 f (x)] 1 f (x) D(x) za x u okolini točke minimuma.
23 / 43 Modificirana Newtonova metoda: s i = [ 2 f (x i )] 1 f (x i ) x i+1 = x i λ i [ 2 f (x i )] 1 f (x i ). - korak minimizacije λ i biramo na jedan od prije opisanih načina. - modifikacija je uvo denje koraka minimizacije λ i u Newtonovu metodu. - nužno je da je funkcija f C 2. - metoda je primjenjiva samo na području gdje je 2 f pozitivno definitna. - ako f nije konveksna funkcija, tada je metoda primjenjiva samo u okolini točke minimuma, a ne na cijelom području minimizacije.
24 / 43 - u svakom je koraku minimizacije nužno izračunati Hessijan, te riješiti sustav 2 f (x i )(x i+1 x i ) = f (x i ) (ovdje nema potrebe za invertiranjem Hessijana). - radi ubrzanja metode, često se Hessijan ne računa u svakoj iteraciji. - prednost metode je brža konvergencija generiranog niza (x i ) i k točki minimuma.
25 / 43 Ilustracija prednosti modificirane Newtonove metode u odnosu na gradijentnu metodu A pozitivno definitna matrica. Minimizirat ćemo kvadratnu formu Gradijent funkcije f je dan s Modificirana Newtonova metoda: uz egzaktan izbor koraka f (y) = 1 Ay, y + b, y + c. 2 f (y) = Ay + b, f (y) = 0 x = A 1 b. x i+1 = x i λ i [ 2 f (x i )] 1 f (x i ), λ i = arg min λ>0 f (x i λ[ 2 f (x i )] 1 f (x i ))
26 / 43 definira iteracije x i+1 = x i λ i A 1 (Ax i + b) = (1 λ)x i A 1 b. Egzaktni izbor koraka daje λ 0 = 1. Za bilo koji izbor x 0 modificirana Newtonova metoda daje egzaktno rješenje u jednom koraku. Gradijentna metoda na ovom primjeru općenito ne dolazi do minimuma u konačnom broju koraka. Primjer. f (y) = 1 2 Ay, y = 1 2 (α 1y 2 1 + α 2y 2 2 ), gdje je 0 < α 1 < α 2. Matrica A je oblika [ α1 0 A = 0 α 2 ].
27 / 43 Za α 1 = α 2 > 0 gradijentna metoda u jednom koraku dolazi do točke minimuma [ ] x 0 =. 0 Početni vektor x 0,1 0 i x 0,2 0. x 0 = [ x0,1 x 0,2 (Ako bi jedna komponenta bila 0, tada gradijentna metoda u jednom koraku došli do minimuma.) ]
28 / 43 Za x i = egzaktni izbor koraka λ i daje [ xi,1 x i,2 ] x i+1,1 = α2 2 (α 2 α 1 )x i,1 xi,2 2 α1 3x i,1 2 + α3 2 x i,2 2, x i+1,2 = α2 1 (α 1 α 2 )x i,2 xi,1 2 α1 3x i,1 2 + α3 2 x i,2 2. (x i,1 0 i x i,2 0) i (α 1 > α 2 > 0) x i+1,1 0 i x i+1,2 0 - indukcijom zaključujemo da niti u jednom koraku ne dolazimo do točke minimuma.
29 / 43 Zadatak 1. Na dite minimum funkcije MATLAB - Optimization toolbox Funkcija: fminunc (@f, x 0 ) f (x) = x 2 + (1 x) 2.
30 / 43 Zadatak 2. Na dite minimum funkcije f (x) = e t + e 2t. Nacrtajte funkciju i označite točku minimuma na grafu.
31 / 43 Zadatak 3. Na dite minimum funkcije f (x) = e t + e 2t + sin 3t. Nacrtajte funkciju i označite točku minimuma na grafu.
32 / 43 Zadatak 4. Napišite funkciju koja će gradijentnom metodom računati mimimum funkcije f. Ulazni parametri su funkcija f, gradijent df, početna aproksimacija x 0 i ε. (Algoritam se zaustavlja kada je norma gradijenta manja od ε). Za funkciju f : R 2 R nacrtajte niz generiranih točaka x i.
33 / 43 Zadatak 5. Napišite funkciju koja će modificiranom Newtonovom metodom računati mimimum funkcije f. Ulazni parametri su početna aproksimacija x 0 i ε. (Algoritam se zaustavlja kada je norma gradijenta manja od ε). Definirajte funkcije f, df i hf koje računaju vrijednost funkcije, njezin gradijent te Hesseovu matricu. Za funkciju f : R 2 R nacrtajte niz generiranih točaka x i.
34 / 43 Zadatak 6. Napišite funkciju koja će metodom najmanjih kvadrata odrediti parametre a i b eksponencijalnog modela: y(x) = a e bx. Testne podatke generirajte za proizvoljne vrijednosti parametara a i b. Nacrtajte podatke i dobiveno rješenje.
35 / 43 Rješenje. function [v]= f(t) global x y e = t(1).*exp(t(2).*x); z = e - y; v = z*z ; end
36 / 43 Zadatak 7. U minimizaciji pomoću funkcije fminunc može se zadati i gradijent. Funkcija koja se minimizira treba računati i gradijent: function [v g]= f(t) Gradijent se nalazi u izlaznom parametru g. Prilikom poziva funkcije fminunc treba u opcijama navesti da je definiran i gradijent: options = optimset( GradObj, on ); fminunc(@f,x0,options) Modificirajte funkciju iz prošlog zadatka te problem riješite koristeći i gradijent.
37 / 43 Minimizacija s ograničenjima Primjer Na dite minimum funkcije f (x, y) = x 2 + 2y 2 na trokutu s vrhovima u točkama ( 1, 1), (2, 1) i (0, 2). Kako opisati trokut? arg min x D f (x), D = Tri točke definiraju tri pravca: ( 1, 1), (2, 1) : y = 1, (2, 1), (0, 2) : y = 1 2 x + 2, (0, 2), ( 1, 1) : y = x + 2.
38 / 43 Trokut je presjek tri poluravnine: ili y 1, y 1 2 x + 2, y x + 2. 0x y 1, 1 2 x + y 2, x + y 2.
39 / 43 Matrični zapis: Az b gdje je A = 0 1 1 2 1 1 1, z = [ x y ] i b = 1 2 2 Matlab: fmincon(@f,x0,a,b) Minimizira funkciju f (x) uz ograničenja Ax b. x0 je početna točka.
40 / 43 Ograničenja s jednakostima Na dite minimum funkcije f na pravcu y = x + 2. Matlab: fmincon(@f,x0,a,b,ae,be) Minimizacija funkcije f (x) uz dodatna linearna ograničenja Ae x = be. Napomena. Ukoliko nema ograničenja s nejednakostima onda treba staviti A = [ ] i b = [ ]. x + y = 2 = Ae = [ 1 1], be = [2] fmincon(@f,x0,[],[],ae,be)
41 / 43 Na dite minimum funkcije f na dužini koja spaja točke (0, 1) i (1, 0). Dužina se nalazi na pravcu x + y = 1. Ne minimiziranmo po cijelom pravcu, već samo po dijelu 0 x 1 i 0 y 1 Ovo možemo zapisati kao [ 0 0 ] [ x y ] [ 1 1 ] Matlab: fmincon(@f,x0,a,b,ae,be,dg,gg) Minimizacija funkcije f (x) uz dodatna ograničenja na x: dg i x i gg i.
42 / 43 Nelinearna ograničenja Na dite minimum funkcije f na krugu sa središtem u (2, 2) i radijusa 1. Ograničenje: (x 2) 2 + (y 2) 2 1. Matlab: fmincon(@f,x0,a,b,ae,be,dg,gg,@noncon) Minimizacija funkcije f (x) uz dodatna nelinearna ograničenja. Funkcija noncon za ulazni parametar x vraća vektore c i ceq koji predstavljaju vrijednosti funkcija iz ograničenja: c(x) 0 i ceq(x) = 0.
43 / 43 function [c ceq] = mycon (x); c = (x(1)-2)ˆ2 + (x(2)-2)ˆ2-1; ceq = []; end fmincon(@f,x0,[],[],[],[],[],[],@mycon)