You are on page 1of 31

December 2, 2011

METODI OPTIMIZACIJE

Metodi optimizacije

Seminarski rad

Newton-Raphson metoda i metoda Nelder-Mead


Dositej ajinovi 1173/10 Marko Potkonjak 267/04

Profesor: Bo irar Rosi

Datum: 02.12.2011
-0-

December 2, 2011

METODI OPTIMIZACIJE

SADR AJ 1. Uvod 1.1 Problem optimizacije 1.2 Pristupi 2. Newton-Raphson metoda 2.1 Primer Newton-ove metoda u programskom paketu Matlab 3. Nelder-Mead metoda 3.1 Primer Nelder-Mead metode u programskom paketu Matlab 4. Literatura 2 3 4 6 12 15 23 29

-1-

December 2, 2011

METODI OPTIMIZACIJE

1. Uvod
U matematici, kompjuterskoj nauci ili menad mentu, optimizacija zna i odabir najboljih elemenata iz nekog skupa mogu ih alternativa. U najprostijem slu aju optimizacioni problem se sasvoji u maksimizovanju ili mininizovanju realne funkcije tako to sistematski biramo ulazne vrednosti iz dozvoljenog skupa a zatim ra unamo vrednost funkcije.

slika 1: maksimum paraboloida (crvena ta ka)

Uop teno govore i, optimizacija podrazumeva pronala enje "najbolje raspolo ive" vrednosti neke funkcije cilja od svih mogu ih re enja, u definisanom domenu kori enjem primenjene matematike. Deferma i Lagran su prvi do li do ra unskih formula za identifikovanje optimuma, dok su Njutn i Gaus predlo ili iterativne metode za pribli avanje optimumu.

-2-

December 2, 2011

METODI OPTIMIZACIJE

1.1 Problem optimizacije

 Dato je: y y y - kriterijum - uslovi izra eni nejednakostima - uslovi izra eni jednakostima

 Tra i se: y koje zadovoljava date uslove i maksimizira (minimizira)

 Napomena: y maksimizujemo po kona nom broju varijabli, a ne po funkciji

-3-

December 2, 2011

METODI OPTIMIZACIJE

1.2 Pristupi
Postoje dva na ina pristupanju re avanja problema optimizacije, analiti ke i numeri ke metode. Analiti ke metode su osavremenjavanjem alata za prora un manje prisutne zbog este kompleksnosti samog problema. Numeri ke metode omogu avaju iterativni pristup pronala enju re enja, lako se koriste primenom ra unara, br e se dolazi do re enja, ali se mora poznavati teorija u smislu odabira najbolje metode za re avanje datog problema i moraju se posedovati osnovna znanja iz programiranja.

slika 2: Pristupi optimizacije, sa naglaskom na gradijentne metode.

-4-

December 2, 2011

METODI OPTIMIZACIJE

Postoje: linearni slu ajevi ( , - linearne funkcije) gde se do re enja dolazi eksplicitno, u kona nom broju koraka kori enjem poznatih metoda (npr. Simplex);

i nelinearni slu ajevi (bilo koja funkcija od

,

nelinearna. Nema

algoritma koji je primenljiv za sve nelinearne probleme. U zavisnosti od tipa problema odlu ujemo se za neki od metoda, a korisne informacije su zakrivljenost funkcije, dimenzionalnost i tip ograni enja.

Napomena: Obe metode o kojima je re u ovom radu (Njutn-Rafson i Nelder-Midova) se bave nelinearnim problemima, i u osnovi su gradijentne metode, s toga je taj pristup i nagla en na slici 2 sa prethodne strane.

-5-

December 2, 2011

METODI OPTIMIZACIJE

2. Newton-Raphson metoda
Mnogi problemi u in enjerstvu i nauci zahtevaju pronala enje re enja neke nelinearne jedna ine (tra enje korena). Ovo je jedan od najstarijih problema u matematici. Problem se, u stvari, svodi na slede e: Za datu neprekidnu nelinearnu funkciju f(x), treba na i vrednosti x ! \ takvu da je f (\ ) ! 0 . Postupku re avanja nelinearnih jednacina mo emo razlikovati dve faze: y Lokalizacija nula y Pobolj anje re enja

Pobolj anje re enja predstavlja odre ivanje re enja do eljene ta nosti pomo u neke od sistematskih procedura. U tu svrhu mogu se koristiti:

y Osnovne karakteristike u pronala enju korena y Metode na zatvorenom intervalu y Metode na otvorenom intervalu

-6-

December 2, 2011

METODI OPTIMIZACIJE

Metode na otvorenom intervalu: y y y y Metoda proste iteracije Njutnova metoda Modifikovana Njutnova metoda Metoda secice

Njutnova metoda (Newton-Raphsonova metoda) je jedna od najpoznatijih i najefikasnijih procedura u celoj numeri koj analizi. Metoda uvek konvergira ako je po etna aproksimacija dovoljno blizu re enju. Konvergencija Njutnove metode je kvadratna. Grafi ka interpretacija metode data je na slici 3. Prvi korak metode je lokalna aproksimacija funkcije f(x) pomocu linearne funkcije g(x) koja predstavlja tangentu funkcije f(x) u tacki . Re enje jednacine g(x) = 0, , predstavlja slede u aproksimaciju re enja jedna ine f(x) = 0.

Slika 3: Grafi ka interpretacija Njutnove metode

-7-

December 2, 2011

METODI OPTIMIZACIJE

Kako bismo izveli algoritam za Njutnovu metodu, postavimo slede u relaciju: 


 

Re enje ove jedna ine za xi  1 , pri emu je f ( xi  1) ! 0 daje:  

to predstavlja rekurzivnu formulu za Njutnovu metodu. Jedna ina 1.2 se ponavlja dok se ne zadovolji jedan od ili oba kriterijuma konvergencije:     

Njutnova metoda mo e se dobiti i direktno iz Tejlovorog niza, ako se zanemare lanovi vi eg reda, tj.  i kona no:  



-8-

December 2, 2011

METODI OPTIMIZACIJE

Konvergencija Newtonove metode se mo e odrediti na slede i na in. Jedna ina (1.2) predstavlja jednacinu oblika:  pri emu je funkcija g(x) data sa:



S toga, Njutnova metoda predstavlja specijalni slu aj metode proste iteracije i konvergira ako je ispunjen uslov

 

Diferenciranjem jedna ine (1.7) dobijamo:

Kako za koren jedna ine va i x ! \ i f (\ ) ! 0, s tim je g ' ( x) ! 0, tako je zadovoljen uslov (1.8), a metoda je konvergentna.

-9-

December 2, 2011

METODI OPTIMIZACIJE

Brzina konvergencije se mo e odrediti ako se od obe strane jedna ine (1.7) oduzme \ ,i sa e ! x  \ ozna i gre ka. Na taj na in se dobija:     

Razvojem funkcije f(x) u Taylorov red, i zanemaruju i iznad drugog reda, za x ! \ va i:   

lanove

Ako sada poslednji izraz uvrstimo u jedna inu (1.10), pri emu je f (\ ) ! 0 dobijamo:

Obzirom da za i p g, xi p \ , f (\ ), f (xi ) p f (\ ) imamo:

 Poslednja jedna ina jasno pokazuje da je Njutnova metoda metoda ta nosti drugog reda, tj. kvadratna, to u praksi zna i da se sa svakom iteracijom udvostru ava broj zna ajnih cifara. Ipak, veoma je va no da uslov (1.8) bude ispunjen, da po etna aproksimacija bude to bli e re enju, po to se mo e dogoditi da procedura konvergira prema nekom drugom korenu (re enju).
- 10 -

December 2, 2011

METODI OPTIMIZACIJE

Ova metoda ima odli ne osobine za lokalnu konvergenciju, ali globalna konvergencija mo e biti slaba zbog zanemarivanja vi ih lanova Tejlorovog reda. Me utim, Njutnova metoda ima i nedostataka, jer je za neke funkcije vrlo te ko analiti ki izra unati prvi izvod, a za neke funkcije to uop te nije mogu e. Osim toga, mo e se desiti da u toku iterativnog procesa prvi izvod bude jednak nuli, ime ne bi bilo mogu e nastaviti postupak re avanja. U takvim slu ajevima koriste se neke druge metode, kao to je modifikovana Njutnova metoda ili metoda se ice.

Prednosti: Ta nost metode je drugog reda, pa se svakom iteracijom udvostru ava broj zna ajnih cifara Odli ne osobine lokalne konvergencije Nedostaci: Problem analiti kog odre ivanja prvog izvoda za slo enije funkcije

- 11 -

December 2, 2011

METODI OPTIMIZACIJE

2.1 Primer Newton-ove metoda u programskom paketu Matlab


function x = newton(f_str,df_str,x0,n) f = inline(f_str); df = inline(df_str); disp('Broj iteracija =') disp(0) x = x0; xn = 0; disp('Xn =') disp(x) disp('f(x) =') disp(f(x)) disp('f''(x) =') disp(df(x)) for i = 1:n xn = x - (f(x)/df(x)); if x == xn disp('Ovo je najvisa postignuta tacnost') i = i-1; break end x = [-10.0:0.01:10.0]; plot(x,f(x)); x = xn; disp('Broj iteracija =') disp(i) disp('Xn =') disp(x) disp('f(x) =') disp(f(x)) disp('f''(x) =') disp(df(x)) end disp('Broj izvrsenih iteracija:') disp(i) end

Napomena: funkcija se u komandnom prozoru unosi na slede i na in: newton(funkcija',prvi izvod funkcije',prva procena,broj iteracija) npr: newton('x.^3+cos(x)','3.*x.^2-sin(x)',0.1,10)
- 12 -

December 2, 2011

METODI OPTIMIZACIJE

Prikaz re enja:
Broj iteracije = 0 Xn = 0.1000 f(x) = 0.9960 f'(x) = -0.0698 Broj iteracije = 1 Xn = 14.3626 f(x) = 2.9625e+003 f'(x) = 617.8758 Broj iteracije = 2 Xn = 9.5679 f(x) = 874.8892 f'(x) = 274.7743 Broj iteracije = 3 Xn = 6.3838 f(x) = 261.1569 f'(x) = 122.1593 . . .

- 13 -

December 2, 2011

METODI OPTIMIZACIJE

. . .

Broj iteracije = 10 Xn = -0.8655 f(x) = -8.1536e-005 f'(x) = 3.0087 Broj izvrsenih iteracija: 10

ans = -0.8655

Slika 3a: Grafi ki prikaz re enja

- 14 -

December 2, 2011

METODI OPTIMIZACIJE

3. Metoda Nelder-Mead
Ovu nelinearnu optimizacionu metodu su razvili Nelder I Mead 1965. Godine, i ona ne zahteva prora unavanje izvoda. Formira se geometrijsko telo Simplex sa N+1 temena, a problem je Ndimenzionalan. Siplex se pomera u prostoru pomo u osnovnih transformacija dok se ne prona e najbolje re enje. Od strane korisnika se defini e samo jedna ta ka simplex-a, , a ostalih N ta ka su prona ene po formuli. Cilj metode je pomeranje Simplex-a, dok ne okru i minimum, a onda da se skuplja oko minimuma dok ne u e u granice prihvatljive gre ke. Mana ovog metoda je to moramo imati zaseban algoritam za tra enje minimuma i to nije naro ito brz.

Inicijalni trougao BGW Neka je f(x,y) funkcija koju treba minimizovati. Za po etak, imamo tri temena trougla: , Za funkciju prona ene su vrednosti za te tri ta ke: za . Vrednosti su onda slo ene tako da je . Ta ke obele avamo sa:   

- 15 -

December 2, 2011

METODI OPTIMIZACIJE

Da bi se nazna ilo da je B najbolja ta ka, G dobra I W najgora ta ka.

Sredi nja ta ka dobre stranice Proces konstrukcije koristi sredi nju ta ku linije koja spaja B I G. Nalazi se usrednjavanjem koordinata:  Refleksija kori   

enjem ta ke R

Funkcija opada kako se pomeramo du stranice trougla od ta ke do ta ke , a tako e opada i dok se pomeramo du stranice trougla od ta ke do . Stoga je izvodljivo da uzima manje vrednosti u ta kama koje le e dalje od ta ke , na suprotnoj strani linije koja le i izme u ta aka i . Izabra emo test ta ku koju smo dobili refleksijom trougla preko stranice . Da bismo odredili , prvo moramo da na emo srednju ta ku stranice . Onda povla imo liniju od do i nazivamo je du ina . Ova linija je produ ena za du inu , kroz ta ku , kako bismo odredili polo aj ta ke . (slika 4). Vektorska formula za dobijanje ta ke R je:  

- 16 -

December 2, 2011

METODI OPTIMIZACIJE

Slika 4: Trougao

i sredi nja ta ka

Ekspanzija kori

enjem ta ke E

Ukoliko je vrednost funkcije u tacki manja od vrednosti funkcije u ta ki , onda smo se pomerili u pravom smeru prema minimumu. Pitamo se da li je minimum funkcije samo malo udaljen od ta ke . S toga produ avamo liniju kroz I do ta ke za du inu . Tako smo formirali trougao . (slika 5). Ukoliko je vrednost funkcije u manja od vrednosti funkcije u , onda smo prona li bolju ta ku nego to je . Vektorska formula za E je:  

- 17 -

December 2, 2011

METODI OPTIMIZACIJE

Slika 5: Trougao

, ta ka

i produ ena ta ka

Kontrakcija koriste i ta ku C Ukoliko su vrednosti u ta kama I jednake, jo jedna ta ka mora biti testirana. Mo da je vrednost funkcije manja u ta ki , ali ne mo emo zameniti sa , jer moramo da oformimo trougao. Razmotri emo dve sredi nje ta ke, i stranica i , respektivno. (slika 6). Ta ka u kojoj je vrednost funkcije manja nazivamo ta kom i time formiramo novi trougao .U dvodimenzionalnim problemima, izbor izme u i je nepotreban, ali je va an u vi edimenzionim problemima.

- 18 -

December 2, 2011

METODI OPTIMIZACIJE

Slika 6: Kontrakcija (smanjenje) ta ke

ili

Smanjenje prema ta ki B Ukoliko vrednost funkcije u nije manja od vrednosti u , ta ke I moraju se skupiti ka (slika 7). Ta ka je zamenjena sa ,a sa , koja je sredi nja ta ka linije koja spaja I .

- 19 -

December 2, 2011

METODI OPTIMIZACIJE

Slika 7: Smanjenje trougla prema ta ki

Logi ne odluke za svaki korak Efikasan algoritam za prora unavanje bi trebalo da vr i procenu funkcije samo ukoliko je potrebno. U svako koraku, pronalazi se ta ka koja zamenjuje . im je ona prona ena, dalja pretraga nije potrebna, a iteracioni korak se zavr ava.

- 20 -

December 2, 2011

METODI OPTIMIZACIJE

Primer: Kori  enjem Nelder-Mead na i re enje funkcije         

Po injemo od tri temena:  Funkcija        

 uzima slede e vrednosti u temenima:  

     Vrednosti se moraju uporediti da bi utvrdili koja ja ta ka ;  Teme        i  su

,i

 e biti zamenjeno. Ta ke     

Vrednost funkcije       , to je manje od  pa je u pitanju ekspanzija. Po to je     pomerili smo se u pravom smeru, i ta ka mora biti konstruisana:     
- 21 -

December 2, 2011

METODI OPTIMIZACIJE

Vrednost funkcije        i tacke novog trougla su: V1 = (1.8, 1.2), V2 = (1.2, 0.0), V3 = (0.0, 0.8).

,sto je manje od

Proces se nastavlja i generi e se sekvenca trouglova koja konvergira ka kona noj ta ki (slika 8). U tabeli 1 date su vrednosti funkcije tacaka trouglova za sve iteracije.

Slika 8: Sekvenca trouglova za ravanske i prostorne probleme

Tabela 1: vrednosti funkcije

- 22 -

December 2, 2011

METODI OPTIMIZACIJE

3.2 Primer metode Nelder-Mead u programskom paketu Matlab

function [ x_opt, n_feval ] = nelder_mead ( x, function_handle, flag ) % Autor: % % Jeff Borggaard % % Parametri: % % Ulaz, realni X (M+1,M) koji predstavljaju tacke koje sluze za % pretpostavljanje pocetnih vrednosti resenja. Ako je dimenzija prostora % M, onda matrica mora sadrzati M+1 tacaka. Na primer, za 2D prostor % moraju se dati tri tacke. Svaki red matrice predstavlja jednu tacku; % za ravan ovo znaci da bi X bila matrica dimenzije 3x2. % % Input, handle FUNCTION_HANDLE, izraz funkcije pod navodnicima, % ili ime M-filea koji definise funkciju, sa znakom "@" koji prethodi % funkciji. % % Ulaz, logicki indikator koji je opcioni argument. Ako je prisutan, i % postavljen na 1 program ce pokazaci graficku sliku konture i proceduru % pronalazenja resenja. Ovo samo ima smisla za dvodimenzionalne

- 23 -

December 2, 2011

METODI OPTIMIZACIJE
% probleme, odnosno za N=2. % % Izlaz, realan X_OPT, optimalna vrednost X-a pronadjenog pomocu algoritma. rho xi gam sig = = = = 1; 2; 0.5; 0.5; % % % % rho xi 0 < 0 < > 0 > max(rho, 1) gam < 1 sig < 1

tolerance = 1e-6; max_feval = 250; % Initialization [temp,n_dim] = size(x); if (temp-n_dim ~= 1) fprintf ( 1, '\n' ); fprintf ( 1, 'NELDER_MEAD - Fatal error!\n' ); error('number of points must be = number of design variables + 1\n'); end if (nargin==2) flag = 0; end if (flag) xp = linspace(-5,5,101); yp = xp; for i=1:101 for j=1:101 fp(j,i) = feval(function_handle,[xp(i),yp(j)]); end end figure(27) hold on contour(xp,yp,fp,linspace(0,200,25)) if (flag) plot(x(1:2,1),x(1:2,2),'r') plot(x(2:3,1),x(2:3,2),'r') plot(x([1 3],1),x([1 3],2),'r') pause plot(x(1:2,1),x(1:2,2),'b') plot(x(2:3,1),x(2:3,2),'b') plot(x([1 3],1),x([1 3],2),'b') end end index = 1:n_dim+1;

- 24 -

December 2, 2011

METODI OPTIMIZACIJE
[f ] = evaluate(x,function_handle); n_feval = n_dim + 1; [f,index] = sort ( f ); x = x(index,:); % % % Begin the Nelder Mead iteration. converged = 0; diverged = 0; while ( ~converged & ~diverged ) % % % % % % % % % Compute midpoint of simplex opposite worst point. x_bar = sum(x(1:n_dim,:)) / n_dim; Compute reflection point. x_r f_r = (1+rho)*x_bar - rho*x(n_dim+1,:); = feval(function_handle,x_r); n_feval = n_feval+1;

Accept the point: if (f(1) <= f_r & f_r <= f(n_dim)) x(n_dim+1,:) = x_r; f(n_dim+1 ) = f_r; if (flag), title('reflection'), end

% % %

Test for possible expansion. elseif (f_r < f(1)) x_e = (1+rho*xi)*x_bar - rho*xi*x(n_dim+1,:); f_e = feval(function_handle,x_e); n_feval = n_feval+1; if (f_e<f_r) % accept the expanded point x(n_dim+1,:) = x_e; f(n_dim+1 ) = f_e; if (flag), title('expansion'), end else x(n_dim+1,:) = x_r; f(n_dim+1 ) = f_r; if (flag), title('eventual reflection'), end end

elseif (f(n_dim) <= f_r & f_r < f(n_dim+1)) % outside contraction x_c = (1+rho*gam)*x_bar - rho*gam*x(n_dim+1,:); f_c = feval(function_handle,x_c); n_feval = n_feval+1; if (f_c <= f_r) % accept the contracted point x(n_dim+1,:) = x_c;

- 25 -

December 2, 2011

METODI OPTIMIZACIJE
f(n_dim+1 ) = f_c; if (flag), title('outside contraction'), end else [x,f] = shrink(x,function_handle,sig); n_feval = n_feval+n_dim; if (flag), title('shrink'), end end else % f_r must be >= f(n_dim+1), try an inside contraction x_c = (1-gam)*x_bar + gam*x(n_dim+1,:); f_c = feval(function_handle,x_c); n_feval = n_feval+1; if (f_c < f(n_dim+1)) % accept the contracted point x(n_dim+1,:) = x_c; f(n_dim+1 ) = f_c; if (flag), title('inside contraction'), end else [x,f] = shrink(x,function_handle,sig); n_feval = n_feval+n_dim; if (flag), title('shrink'), end end end % % % % % % % % % % % Resort the points. note that we are not implementing the usual Nelder-Mead tie-breaking rules (when f(1) = f(2) or f(n_dim) = f(n_dim+1)... [ f, index ] = sort ( f ); x = x(index,:); test for convergence converged = f(n_dim+1)-f(1) < tolerance; test for divergence diverged = n_feval>max_feval; if (flag) plot(x(1:2,1),x(1:2,2),'r') plot(x(2:3,1),x(2:3,2),'r') plot(x([1 3],1),x([1 3],2),'r') pause plot(x(1:2,1),x(1:2,2),'b') plot(x(2:3,1),x(2:3,2),'b') plot(x([1 3],1),x([1 3],2),'b') end end if ( 0 ) fprintf('The best point x^* was: %d %d\n',x(1,:)); fprintf('f(x^*) = %d\n',f(1)); end

- 26 -

December 2, 2011

METODI OPTIMIZACIJE

x_opt = x(1,:); if ( diverged ) fprintf ( 1, '\n' ); fprintf ( 1, 'NELDER_MEAD - Warning!\n' ); fprintf ( 1, ' The maximum number of function evaluations was exceeded\n') fprintf ( 1, ' without convergence being achieved.\n' ); end return end function f = evaluate(x,function_handle); %****************************************************************** ***********80 % %% EVALUATE handles the evaluation of the function at each point. % [temp,n_dim] = size(x); f = zeros(1,n_dim+1); for i=1:n_dim+1 f(i) = feval(function_handle,x(i,:)); end return end function [ x, f ] = shrink(x,function_handle,sig) %****************************************************************** ***********80 % %% SHRINK ... % % In the worst case, we need to shrink the simplex along each edge towards % the current "best" point. This is quite expensive, requiring n_dim new % function evaluations. [temp,n_dim] = size(x); x1 = x(1,:); f(1) = feval(function_handle,x1); for i=2:n_dim+1 x(i,:) = sig*x(i,:) + (1-sig)*x(1,:); f(i ) = feval(function_handle,x(i,:)); end return

- 27 -

December 2, 2011
end

METODI OPTIMIZACIJE

Ova funkcija se mo e uneti argumentima u komandnom prozoru:

nelder_mead ( x, function_handle, flag )

A prilo ena je i posebna funkcija (example.m) u kojoj bismo mi definisali samu funkciju cilja:
function f = example ( x ) f = ( 2*cos (x(1)) - exp (x(2)))^6;

Pozivanje funkcije nelder_mead.m, uz samu funkciju kao parametar definisan u example.m vr i se pokretanjem fajla pozivanje.m koji mora biti u istom folderu kao i dva navedena.
n=2; x_init=[3, -3; 2, -4; -1, -2]; x_opt = nelder_mead ( x_init, @example, 1 )

to zna i - optimizacija vrednosti x-a vr i se nelder_mead metodom definisanom u svom fajlu, sa inicijalnom vredno u x-a (x_init) koju smo sami pretpostavili (x_init=[3, -3; 2, -4; -1, -2]), uzev i izraz funkcije cilja definisane u svom fajlu (@example), setovanjem indikatora na 1, ime potvr ujemo da elimo plotovanje grafi kog prikaza.

Re enje:
- 28 -

December 2, 2011

METODI OPTIMIZACIJE

x_opt = 1.5679 -3.7949

Slika 9: Grafi ki prikaz re enja

- 29 -

December 2, 2011

METODI OPTIMIZACIJE

Literatura:
[1] - Prof. dr. Bo idar Rosi - Metodi optimizacije (hendouti) [2] - Introduction to Optimum Design 2nd ed - J. Arora (Elsevier, 2004) WW [3] - http://en.wikipedia.org/wiki/Mathematical_optimization [4] - http://en.wikipedia.org/wiki/Optimization_problem [5] - http://en.wikipedia.org/wiki/Newton%27s_method [6] - http://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method [7] - http://www.albertomoraglio.com/gnma.pdf [8] - Matlab:A Practical Introduction to Programming and Problem Solving - Stormy Attaway [9] - applied numerical methods using Matlab - Won Young Yang, Wenwu Cao, Tae-Sang Chung, John Morris

- 30 -