Professional Documents
Culture Documents
Metode Optimiranja Gavran
Metode Optimiranja Gavran
SEMINARSKI RAD
POSTUPCI OPTIMIRANJA: Postupci direktnog traenja za odreivanje minimuma funkcija vie varijabli
Ivan Gavran
SADRAJ 1 Uvod...........................................................................................................................................1 2 Osnovne koncepcije optimiranja funkcija.......................................................................................2 2.1 Definiranje funkcije cilja.........................................................................................................2 2.2 Ogranienja varijabli..............................................................................................................3 2.3 Lokalni i globalni minimumi funkcije cilja.................................................................................3 3 Pronalaenje minimuma funkcije jedne varijable............................................................................4 3.1 Redukcija unimodalnog intervala............................................................................................4 3.2 Metoda zlatnog reza..............................................................................................................4 3.3 Fibonacci metoda..................................................................................................................5 3.4 Metoda kvadratne interpolacije...............................................................................................7 4 Postupci direktnog traenja (bez upotrebe derivacije) za odreivanje minimuma funkcija vie varijabli ........................................................................................................................................9 4.1 Traenje po koordinatnim osima.............................................................................................9 4.2 Postupak po Hookeu i Jeevesu.............................................................................................10 4.3 Simpleks postupak po Nelderu i Meadu.................................................................................12 5 Opis programskog ostvarenja simulatora Simpleks algoritma........................................................15 5.1 Suelje programa simulatora................................................................................................15 5.2 Ciljne funkcije.....................................................................................................................16 6 Zakljuak..................................................................................................................................18 7 Popis literature..........................................................................................................................19
1 Uvod
Ljudi optimiraju. Ljudi putuju uglavnom najkraim putem, avio-kompanije rasporeuju osoblje i avione tako da minimiziraju trokove, u industriju se proizvodni procesi oblikuju i provode tako da se maksimizira produktivnost. Priroda optimira. Fiziki sustavi tee stanju najmanje energije. Molekule u izoliranim kemijskim sustavima meusobno djeluju jedna s drugom sve dok ukupna potencijalna energija njihovih elektrona ne dostigne minimum. Zrake svijetlosti se ire stazom koja minimizira vrijeme rasprostiranja zrake. Postupci optimiranja bitan su alat u znanstvenom odluivanju i u analizi fizikalnih sustava. Da bi se uope moglo govoriti o optimiranju, najprije je potrebno identificirati cilj, odnosno kvantitativnu mjeru ponaanja sustava kojeg se prouava. Cilj moe biti zarada, vrijeme, potencijalna energija ili neka druga veliina ili kombinacija veliina koja se moe predstaviti numerikom vrijednou. Cilj ovisi o odreenim karakteristikama sustava koje se nazivaju varijable. Cilj postupaka optimiranja je odrediti kombinaciju vrijednosti varijabli koje e najbolje ispunjavati cilj. esto su vrijednosti varijable na neki nain ograniene. To je posljedica toga to stvarne veliine predstavljene varijablama poprimaju vrijednosti iz odreenog raspona. Na primjer varijabla koja predstavlja kanjenje paketa u raunalnoj mrei ne moe poprimiti negativnu vrijednost. Proces definiranja cilja, varijabli i eventualnih ogranienja za dati problem se naziva postupak modeliranja. Oblikovanje dobrog modela je prvi korak, a vrlo esto i najvaniji, u procesu optimiranja. Ako je model prejednostavan tada nee dobro opisivati sustav koji se eli optimirati, ali s druge strane ako je model presloen postupak optimiranja moe postati preteak za rjeavanje. Nakon to se definirao model mogu se koristiti postupci optimiranja kako bi se pronalo rjeenje problema. Postupci optimiranja se u praksi ostvaruju implementacijom algoritama optimiranja na raunalima. Ne postoji jedan openiti algoritam optimiranja koji je prikladan za sve probleme. U praksi postoji veliki broj algoritama, od kojih je svaki prikladan za odreenu skupinu optimizacijskih problema. U ovom seminari su opisani postupci optimiranja funkcija vie varijabli bez upotrebe derivacija, odnosno postupci direktnog traenja. Ostatak rada je organiziran na slijedei nain; U 2. poglavlju kratko su izneseni osnovni koncepti i matematika formulacija postupaka optimiranja te su definirane oznake koje se koriste u ostalim poglavljima. U 3. poglavlju su opisani postupci optimiranja funkcija jedne varijable jer se oni koriste u nekim algoritmima optimiranja funkcija vie varijabli. Nakon toga su u 4. poglavlju opisani postupci direktnog traenja minimuma funkcija vie varijabli. Opisana su 3 postupka traenja minimuma: pretraivanje po koordinatnim osima, postupak po Hookeu i Jeevesu i simpleks postupak po Nelderu i Meadeu. U 5. poglavlju je opisano programsko ostvarenje simpleks algoritma traenja minimuma.
x1 x 2 . x= . . xn
stupasti vektor varijabli modela.
F ( x ) = f k2 ( x )
k =1
Sve parcijalne funkcije cilja uzimaju se s jednakom vanosti. 2. teinska suma kvadrata parcijalnih funkcija
F ( x ) = t k f k2 ( x )
k =1
Izborom teinskih faktora moe se odrediti relativna vanost pojedine parcijalne funkcije cilja. 3. kriterij maksimalne apsolutne vrijednosti
f ( x ) = max f k ( x )
k
Ovaj kriterij obino vodi do parcijalnih funkcija koje osciliraju oko srednjih vrijednosti s jednakim pozitivnim i negativnim iznosima. U postupcima optimiranja uestalije se koriste prve dvije metode konstrukcije fukcije sveukupne funkcije cilja, jer se primjenom tree metode generira funkcija cilja s diskontinuiranim prvim derivacijama koje se u nekim postupcima optimiranja teko obrauju.
gi ( x ) 0
i = 1, 2, . . ., l
dok se ogranienja s jednadbama definiraju kao skup od k jednadbi
hi ( x ) = 0
i = 1, 2, . . ., k
Ogranienja varijabli moraju biti zadovoljena u toki minimuma funkcije cilja. No radi poboljanja efikasnosti algoritma optimiranja, zahtjeva se da ogranienja budu zadovoljena tijekom cijelog postupka optimiranja. Na taj nain se postupak optimiranja izvodi samo u podruju koje je definirano ogranienjima, a vektori varijabli koji zadovoljavaju ogranienja se nazivaju doputenim vektorima.
d i ai bi ci = =k bi ai bi ai
Ako se pretpostavi da je f(di) > f(ci) tada za slijedei korak treba odabrati toke
ai +1 = ai bi +1 = d i d i +1 = ci
dok se druga interna toka dobiva iz uvjeta
bi +1 ci +1 =k bi +1 ai +1
Ako vrijedi da je f(ci) > f(di) tada se za granice novog intervala u koraku i+1 biraju toke ci i bi , a interna toka d postaje interna toka c u sljedeem koraku, dok se nova interna toke d rauna pomou faktora k. Postupak se provodi dok se minimum ne locira u prethodno zadanom, po volji malom, intervalu. Ova metoda je dobila naziv zlatni rez jer se u svakom intervalu ini tzv. zlatni rez tekueg intervala. Naime moe se analitikim postupkom pokazati da faktor k ima vrijednost 0,618 to je upravo odnos veliina u zlatnom rezu.
Slika 3.2 Postupak po Fibonacciju Kao to slika 3.2 prikazuje, redukcije intervala nakon pojedinog koraka iznosi: korak N-1:
IN 1 = = 1 I N 1 2 2 I N 1 2 2 = = I N 2 3 3
I i +1 N i = I i N i +1
I 2 N 1 = I1 N
Iz gornjeg prikaza redukcija po koracima postupka moe se izraziti ukupna redukcija intervala koji se dobije u N-1 koraka, s ukupno N izraunavanja funkcije (u svakom koraku po jedno, a u prvom koraku dva izraunavanja).
I N N 1 N 1 1 = = I1 N i =1 N i +1
Broj koraka postupka moe se odrediti iz uvjeta:
ba N
odnosno odeivanjem prvog lana u Fibonaccijevom nizu koji zadovoljava navedeni uvjet uz prethodno zadane granice intervala a i b, te eljeni konani interval. Nakon to se izrauna Fibonaccijev broj, broj koraka se odreuje tako da se indeks Fibnoaccijevog broja umanji za 1. Interne toke c i d se raunaju prema izrazima:
d =a+ c=b
N 1 ( b a) N N 1 (b a) N
f(x)
ai
ci ai+1
di ci+1
bi bi+1
Slika 3.3 Kvadratna interpolacija Metoda kvadratne interpolacije se zasniva na pretpostavci da ako se funkcija u okoliu minimuma ponaa priblino kvadratno onda se redukcija intervala u kojem lei minimum moe provesti kvadratnom interpolacijom. Postupak kvadratne interpolacije (slika 3.3) se primjenjuje na unaprijed zadanom intervalu (a, b) u kojem je funkcija unimodalna i unutar kojeg je odabrana jedna toka c. Kroz toke a, b i c se definira parabola. Tjeme tako definirane parabole se oznai tokom d. Toka d se rauna prema izrazu
d=
1 c 2 b 2 f ( a ) + a 2 c 2 f ( b) + b2 a 2 f ( c ) ( c b) f ( a ) + ( a c ) f ( b) + ( b a ) f ( c ) 2
Redukcija intrervala se provodi odbacivanjem jednog od rubnih podintervala ovisno o odnosima toaka
c i d te odnosima vrijednosti funkcije u tim tokama. Ako se indeksom i oznae vrijednosti toaka a, b, c, d u i -tom koraku postupka, tada se vrijednosti toaka u sljedeem koraku raunaju prema
sljedeim pravilima:
ako je di < ci i ako je o o f(di) < f(ci) onda ai+1= ai, bi+1= ci, ci+1= di f(di) > f(ci) onda ai+1= di, bi+1= bi, ci+1= ci
ako je di > ci i ako je o o f(di) < f(ci) onda ai+1= ci, bi+1= bi, ci+1= di f(di) > f(ci) onda ai+1= ai, bi+1= di, ci+1= ci
Ovaj algoritam, kao i dva prethodno opisana, zavrava kada se minimum ogranii s unapred zadanim, po volji malim intervalom. Takoer je pokazano da je ovaj algoritam efikasniji od prethodna dva, odnosno da vodi bre, s manjim brojem izraunavanja funkcije, do ograniavanja intervala minimuma.
4 Postupci direktnog traenja (bez upotrebe derivacije) za odreivanje minimuma funkcija vie varijabli
Skupina postupaka za pronalaenje minimuma kod kojih nije potrebno izraunavati parcijalne derivacije funkcije cilja po parametrima pretrage nazivaju se postupci s direktnim traenjem. Strategija traenja minimuma mora biti takva da se sa to manjim brojem izraunavanja ciljne funkcije odredi poloaj toke u n-dimenzionalnom prostoru parametara za koju ciljna funkcija poprima najmanji iznos. U nastavku poglavlja opisane su tri metode direktnog traenja: traenje po koordinatnim osima, postupak traenja po Hookeu i Jeevesu i simpleks postupak po Nelderu i Meadu.
x2
F=4
F=3
F=2 F=1
x1
Slika 4.4 Traenje minimuma po koordinatnim osima Dijagram toka postupka traenja po koordinatnim osima prikazan je na slici 4.2. Jedna iteracije u tom postupku sastoji se od traenja u svim koordinatnim smjerovima. Kriterij za zaustavljanje postupka moe biti takav da se zahtijeva da apsolutna vrijednost promjene parametara u dvije uzastopne iteracije bude manja od odabranog malog iznosa , odnosno da vrijedi: |x j x j-1| gdje indeks j oznaava broj iteracije, a je vektor unaprijed zadanih malih iznosa odstupanja parametara.
Ovaj postupak je najjednostavniji, ali i najneefikasniji od svih opisanih postupaka, jer se u pojedinoj iteraciji ne uzima u obzir nikakvo saznanje o funkciji cilja iz prethodnih iteracija. Osnovni nedostatak ovog postupka je da je kretanje prema minimumu vrlo sporo, ako uska dolina u smjeru koji se ne poklapa s jednim od koordinatnih smjerova. Spomenuti sluaj je prikazan na slici 4.1.
Postavi poetnu toku x0
j =1
i =1
i= i+1
j = j +1
NE
10
Drugi dio, kretanje u odabranom smjeru, sastoji se od pomaka na pravcu koji je odreen dvijema baznim tokama i to za duinu koja je jednaka udaljenosti tih dviju baznih toaka. Odnosno nova toka se dobiva pomou izraza x = 2x 1 x 0. Vrijednost funkcije u toj toki se ne usporeuje direktno s vrijednosti funkcije u prethodnoj toki, nego se iz te toke zapoinje novi proces istraivanja. Ako je vrijednost funkcije u novodobivenoj baznoj toki x 2 manja, ponovno se izvodi kretanje po pravcu koji spaja bazne toke. Openito se to kretanje moe opisati s x = 2x j x j-1. Ako je vrijednost funkcije u novoj baznoj toki vea, tada se vraa na prethodnu baznu toku i poinje se postupak istraivanja sa smanjenim korakom, obino s polovicom prethodnog koraka. Postupak se tavrava ako korak padne ispod unarpijed zadanog iznosa.
x = x0
definicija dx
i=1
F = F(x)
xi = xi + dxi
NE
i>N DA
11
j = 1, . . ., n+1
i izraunavaju se pripadne vrijednosti funkcije F(x j). Zatim se odredi toka x h u kojoj je vrijednost funkcije najvea i toka x l u kojoj je vrijednost funkcije najmanja, tj. F(x h) > F(x j), za svaki j h F(x l) < F(x j), za svaki j l Nakon toga se odreuje centroid x c svih toaka osim x h.
xc=
1 n+1 n j =1 x j
j h
U dvodimenzionalnom prostoru centroid je polovite razmaka dviju toaka, kao to je prikazano na slici 4.4.
xh
x2
xc x1
Slika 4.7 Centroid u dvodimenzionalnom prostoru Nakon to se odredio centroid moe se pristupiti procesu traenja nove toke simpleksa koja e zamijeniti toku x h. Za to se koriste tri operacije prokazane na slici 4.5: refleksija, ekspanzija i kontrakcija.
12
x2 xr xc xh a x1 b
xh
x2 c b xe xr
x2
xc
xh
x1
xk
d a
xc
x1
a) REFLEKSIJA
b) EKSPANZIJA
c) KONTRAKCIJA
Postupkom refleksije se toka x h reflektira u odnosu na toku x c i dobiva se reflektirana toka x r. Refleksija je definirana kao
x = (1 + ) x
r
b a
gdje je koeficijent refleksije iji je iznos jednak omjeru udaljenosti b i a prikazanih na slici 4.5.a Ekspanzija simpleksa se definira kao udaljavanje toke x r od centroida x c ako se moe oekivati smanjenje funkcije u tom smjeru (slika 4.5.b). Ako se definira koeficijent ekspanzije kao
=
tada se ekspanzija definira izrazom
c b
x = (1 ) x
e
U nekim sluajevima je potrebno izvriti kontrakciju simpleksa, na nain da se toka x h priblii centroidu. Kontrakcija je geometrijski prikazana na slici 4.5.c, a toka x k se rauna prema izrazu:
x = (1 ) x
k
d a
Primjenom opisanih metoda transformacije, simpleks se moe reflektirati, rasti, smanjivati i na taj nain konano dosei minimum. Redosljed primjene pojedine transformcije i opis rada algoritma prikazan je dijagramom toka na slici 4.6. Dijagram toka odnosi se za postupak po Nelderu i Meadu, nazvan po njegovim autorima. Ako refleksija, ekspanzija i kontrakcija ne dovedu do uspjeha, odnosno nove toke u kojoj je vrijednost funkcije cilja manja od F (x h), tada se simpleks treba smanjiti, i to tako da se sve toke pomaknu prema toki x l s najmanjom vrijednou funkcije. 13
j = 1, . . ., n+1
odabrati xj
NE
F(x r) > F(x h)
Refleksija dobiva se xr NE
DA xh zamijeniti s xr
DA
F(xr) > F(xj ) za sve j h
DA Ekspanzija dobiva se xe NE
F(x e ) < F(xl )
NE
Kontrakcija dobiva se xk
DA
DA xh zamijeniti s xe xh zamijeniti NE s xr
NE xh zamijeniti s xr
sve toke pomaknuti na polovicu razmaka prema xl
NE
rjeenje zadovoljava
DA
Kraj
Slika 4.8 Dijagram toka simpleks postupka po Nelderu i Meadu Nelder i Mead su definirali slijedei kriterij zaustavljanja:
1 n +1 F ( x j ) F ( xc ) n j =1
gdje je unaprijed zadani mali broj.
Numerikim eksperimentiranjem pokazano je da postupak po Nelderu i Meadu vrlo efikasan, te da su preporuljive vrijednosti koeficijenata
=1
= 0.5
=2
14
Goal Function Settings: odabire se jedna od ponuenih funkcija koje se optimiraju. Nakon to
se odabere funkcija prikazuju se unapred zadani optimalni parametri simpleks postupka ( , ,
15
16
Simpleks
17
6 Zakljuak
U ovom seminarskom radu opisani su postupci direktnog traenja (bez upotreba derivacije) za odreivanje minimuma funkcija vie varijabli. Kako bi se razumjeli postupci traenja minimuma najprije su u 2. poglavlju navedene osnovni pojmovi vezani uz optimiranje funkcija. U 3. poglavlju su opisani postupci traenja minimuma funkcija jedne varijable jer se oni koriste u nekim postupcima traenja minimuma funkcija vie varijabli. U 4. poglavlju su opisani sljedei postupci pronalaenja minimuma funkcija vie varijabli: Postupak traenja po koordinatnim osima, Postupak po Hookeu i Jeevesu i Simpleks postupak po Nelderu i Meadeu. U praktinom dijelu rada programski je ostvaren simulator simpleks postupka koji grafiki prikazuje tijek simpleks postupka. Opis programa naveden je u 5. poglavlju.
18
7 Popis literature
[1] [2] Stanko Turk, Leo Budin: "Analiza i projektiranje raunalom", kolska knjiga, Zagreb, 1989. Jorge Nocedal, Stephen.J. Wright: "Numerical optimization", Springer, 1999.
19