37
2 OPTIMIZACIONI PROBLEMI BEZ OGRANIČENJA Matematičk i zapis neograničenog optimizacionog problema glasi min () x fx (15) gde vektor 1 2 T n x xx x predstavlja optimizacione promenljive, a () f predstavlja funkciju cilja (kriterijumsku funkciju). Cilj je da se odredi vektor x tako da je vrednost funkcije cilja minimalna. Ovaj optimizacioni problem predstavlja minimizacioni problem. Maksimizacioni problem (funkcija () f treba da dosegne maksimalnu vrednost) rešava se preko minimizacionog problema koristeći funkciju () f . 35

2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2 OPTIMIZACIONI PROBLEMI BEZ OGRANIČENJA Matematičk i zapis neograničenog optimizacionog problema glasi

min ( )x

f x (15)

gde vektor 1 2

T

nx x x x predstavlja optimizacione promenljive, a ( )f

predstavlja funkciju cilja (kriterijumsku funkciju).

Cilj je da se odredi vektor x tako da je vrednost funkcije cilja minimalna. Ovaj

optimizacioni problem predstavlja minimizacioni problem.

Maksimizacioni problem (funkcija ( )f treba da dosegne maksimalnu vrednost)

rešava se preko minimizacionog problema koristeći funkciju ( )f .

35

Page 2: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2.1 ANALITIČKA REŠENJA I METODE ZA GRAFIČKO REŠAVANJE

MINIMIZACIONOG PROBLEMA Iz matematike je poznato da dovoljni uslovi za neograničeni optimizacioni

problem glase: u optimalnoj tački x prvi izvodi funkcije cilja po optimizacionim

promenljivima jednaki su nula

Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke

mogu biti optimalne.

Rezavanje ovih jednačina može biti teško u slučaju optimizacionih problema sa

većim brojem promenljivih.

Grafičkim metodama mogu se rešiti optimizacioni problemi sa jednom i dve

promenljive, dok sa tri i više promenljivih ne mogu.

36

Page 3: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 7. Koristeći grafičke i analitičke metode ispitati optimalnost funkcije iz

Primera 1.

Rešenje.

1. Analitičko rešenje

syms t

y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5;

y1=diff(y,t); % odredjuje prvi izvod

figure, ezplot(y1,[0,4]), grid % crta prvi izvod

t1=vpasolve(y1,t,1.5); % odredjuje prvu nulu prvog izvoda

t2=vpasolve(y1,t,3); % odredjuje drugu nulu prvog izvoda

y2=diff(y1); % odredjuje drugi izvod

y2_1=subs(y2,t,t1); % odredjuje vrednost 2. izvoda u prvoj

% ekstemnoj tacki

y2_2=subs(y2,t,t2); % odredjuje vrednost 2. izvoda u drugoj

% ekstemnoj tacki

37

Page 4: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

if y2_1 < 0

fprintf('Maksimum: (%6.2f,%6.2f)\n',t1, subs(y,t,t1))

else

fprintf('Minimum: (%6.2f,%6.2f)\n',t1, subs(y,t,t1))

end

if y2_2 < 0

fprintf('Maksimum: (%6.2f,%6.2f)\n',t2, subs(y,t,t2))

else

fprintf('Minimum: (%6.2f,%6.2f)\n',t2, subs(y,t,t2))

end

figure, ezplot(y,[0,4]), grid % crta funkciju

hold on

plot(t1,subs(y,t,t1),'o',t2,subs(y,t,t2),'o') % oznacava tacke

% minimuma i maksimuma

hold off

38

Page 5: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

39

Page 6: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2.2 NUMERIŠKO REŠAVANJE OPTIMIZACIONIH PROBLEMA BEZ OGRANIČENJA

U Matlabu i Optimization Toolbox podržane su redom sledeće funkcije za

neograničenu optimizaciju: fminsearch, fminunc.

40

Page 7: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 8a. Odrediti minimum funkcije

Rešenje.

1. Korišćenje fminsearch()

syms x

% Anonimna funkcija

f=@(x)(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2));

% Pocetni uslov

x0=[2; 1];

% Rešavanje optimizacije

xmin=fminsearch(f,x0);

% Prikaz rezultata

xmin

fprintf('Minimalna vrednost: %10.6f \n',f(xmin))

41

Page 8: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2. Korišćenje fminunc()

syms x

% Anonimna funkcija

f=@(x)(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2));

% Pocetni uslov

x0=[2; 1];

% Rešavanje optimizacije

OPT=optimset; % uzima podrazumevane vrednosti za options

OPT.Display='iter'; % Prikazuje vrednosti tokom iteracija

xmin = fminunc(f,x0,OPT);

% Prikaz rezultata

xmin

fprintf('Minimalna vrednost: %10.6f \n',f(xmin))

42

Page 9: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

MINIIZACIJA FUNKCIJE ZADATE POMOĆU M-FAJLA

x0=[2; 1];

xmin = fminsearch(@fun_cilja1,x0);

xmin

fprintf('Minimalna vrednost: %10.6f \n',fun_cilja1(xmin))

function f = fun_cilja1(x)

f=(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2));

end

43

Page 10: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2.3 GLOBALNI I LOKALNI MINIMUMI

Globalni minimum funkcije y = f (x) na intervalu [ , ]a b je najveća vrednost

koju funkcija y = f (x) postiže na tom intervalu.

Analogno se definiše i globalni maksimum.

44

Page 11: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 9. Posmatrajmo funkciju

Nacrtati ovu funkciju i izračunati tačke minimuma iz različitih početnih uslova.

Rešenje.

f=@(t)exp(-2*t).*cos(10*t)+exp(-3*(t+2)).*sin(2*t);

fplot(f,[0 4])

t0=0.2; [t1,f1]=fminsearch(f,t0)

t0=0.8; [t2,f2]=fminsearch(f,t0)

t0=1.5; [t3,f3]=fminsearch(f,t0)

t0=2.2; [t4,f4]=fminsearch(f,t0)

hold on

plot(t1,f1,'o',t2,f2,'o',t3,f3,'o',t4,f4,'o')

hold off

Zaključ: Za različite početne tačke, dobijaju se različite optimalne tačke.

Dobijene optimalne tačke nazivaju se lokalni minimumi. Globalni i lokalni

minimumi se mogu prikazati na krivoj.

45

Page 12: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

U Matab-u (Global Optimization Toolbox) postoje specijalizovane funkcije za

nalaženje globalnog minimuma, kao što su: patternsearch, ga i GlobalSearch.

46

Page 13: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

2.4 REŠAVANJE OPTIMIZACIONIH PROBLEMA KORIŠĆENJEM

GRADIJENATA FUNKCIJE Kada brzina konvergencije optimizacionog problema postane spora, mogu se koristiti informacije o gradijentu funkcije kako bi se ovaj proces ubrzao.

Primer 10. Za datu funkciju naći minimum.

Rešenje.

% Grafik funkcije

[x,y]=meshgrid(0.5:0.01:1.5);

z=100*(y.^2-x).^2+(1-x).^2;

contour3(x,y,z,100),

zlim([0,310])

f=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;

ff=optimset;

ff.TolX=1e-10;

ff.TolFun=1e-20;

47

Page 14: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

%Poziv funkcije bez koriscenja gradijenta

x=fminunc(f,[0;0],ff)

% Odredjivanje gradijenta

syms x1 x2;

f=100*(x2-x1^2)^2+(1-x1)^2;

J=jacobian(f,[x1,x2])

% Poziv funkcije sa gradijentom

ff.GradObj='on';

x=fminunc(@fun_sa_Jacobian,[0;0],ff)

% Funkcija + gradijent

function [y,Gy]=fun_sa_Jacobian(x)

y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;

Gy=[-400*(x(2)-x(1)^2)*x(1)-2+2*x(1); 200*x(2)-

200*x(1)^2];

end

48

Page 15: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Grafik funkcije z=100*(y.^2-x).^2+(1-x).^2 dobijen pomoću contour3.

49

Page 16: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3 OPTIMIZACIONI PROBLEMI SA OGRANIČENJIMA Ukoliko nametnemo ograničenja po promenljivim, dobija se sledeći

optimizacioni problem sa ograničenjima

gde ispod min stoje ograničenja.

Opšti opis optimizacionog problema glasi

gde je 1 2

T

nx x x x vektor promenljivih, a ( ) 0G x predstavlja ograničenje.

Ograničenja mogu biti tipa nejednakosti ili jednakosti, koja mogu biti linearna

ili nelinearna. Takođe postoje ograničenja po slobodnim promenljivim.

Oblast rešenja x koja zadovoljava ograničenja ( ) 0G x naziva se “dopustivi

region” (feasible region).

50

Page 17: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3.1 REŠAVANJE PROBLEMA LINEARNOG PROGRAMIRANJA Problemi linearnog programiranja predstavljaju specijalni slučaj ograničenih

problema programiranja čija funkcija cilja, kao i ograničenja su linearne

funkcije po x .

Opšti matematički opis je:

Ograničenja su podeljena na:

linearna ograničenja tipa jednakosti eq eq

A x B ,

linearna ograničenja tipa nejednakosti Ax B

ograničenja po promenljivim m M

x x x

Postoji veliki broj algoritama za ovu vrstu optimizacije. Simpleks algoritam je

jedan od najefikasnijih i implementiran je u Matlab funkciji linprog().

51

Page 18: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

, , , ,eq eq

f A b A b imaju isto značenje kao u opisu optimizacionog problema, dok

su: ,m M

x lb x ub

52

Page 19: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 12. Rešiti sledeći problem linearnog programiranja

Rešenje.

f=[-2 -1 -4 -3 -1];

A=[0 2 1 4 2; 3 4 5 -1 -1];

B=[54; 62];

Ae=[]; Be=[];

xm=[0, 0, 3.32, 0.678, 2.57];

xM=[inf, inf, inf, inf, inf];

ff=optimset;

ff.TolX=1e-15;

ff.TolFun=1e-10;

ff.TolCon=1e-9;

[x,f_opt,flag,izlaz]=linprog(f,A,B,Ae,Be,xm,xM,ff)

Primer 13. Rešiti sledeći problem linearnog programiranja

53

Page 20: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Rešenje.

% Uzimamo negativnu funkciju zbog max

f=-[3/4,-150,1/50,-6];

A=[1/4,-60,-1/50,9; 1/2,-90,-1/50,3]; B=[0;0];

Aeq=[]; Beq=[];

xm=[-5;-5;-5;-5];

xM=[Inf;Inf;1;Inf];

ff=optimset;

ff.TolX=1e-15; ff.TolFun=1e-10; TolCon=1e-9;

[x,f_opt,flag,izlaz]=linprog(f,A,B,Aeq,Beq,xm,xM,[0;0;0;0],ff)

54

Page 21: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3.2 REŠAVANJE PROBLEMA KVADRATNOG PROGRAMIRANJA Problemi kvadratnog programiranja su druga kategorija jednostavnih

optimizacionih problema sa ograničenjima.

U kvadratnom programiranju, funkcija cilja je kvadratna funkcija promenljive

x . Ograničenja su još uvek linearna.

Opšta forma kvadratnog programiranja je

Ovde se sa Tx Hx opisuju članovi tipa 2

ix i

i jx x .

U Matlabu postoji funkcija quadprog() koja rašava problem kvadratnog

programiranja.

55

Page 22: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

x0 – početna vrednost za rešenje

56

Page 23: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 14. Rešiti sledeći problem kvadratnog programiranja

Rešenje.

Najpre zapisujemo funkciju cilja u pogodnom obliku

% Uzimamo dvostruke koeficijente zbog (1/2)x’*H*x

H=diag([2,2,2,2]);

f=[-2,-4,-6,-8];

A=[1,1,1,1; 3,3,2,1];

B=[5;10];

Aeq=[]; Beq=[];

lb=[0 0 0 0];

[x,f_opt]=quadprog(H,f,A,B,Aeq,Beq,lb,[],[])

57

Page 24: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3.3 REŠAVANJE OPŠTIH NELINEARNIH OPTIMIZACIONIH PROBLEMA Opšti oblik nelinearnog optimizacionog problema je:

gde je 1 2

T

nx x x x vektor promenljivih, a

( ) 0G x predstavlja ograničenja koja mogu biti tipa nejednakosti (linearna,

nelinearna), tipa jednakosti (linearna, nelinearna) i ograničenja po slobodnim

promenljivim.

Prema tome, opšti oblik nelinearnog optimizacionog problema izgleda:

58

Page 25: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

U Matlabu postoji funkcija fmincon() za rešavanje nelinearne optimizacije.

fun - m-funkcija ili anonimna funkcija kojom se opisuje funkcija cilja.

x0 - početna vrednost za rešenje.

A, b – linearna ograničenja tipa nejednakosti

Aeq, beq - linearna ograničenja tipa jednakosti

lb, ub – ograničenja po promenljivim

nonlcon - m-funkcija za opisivanje nelinearnih ograničenja:

prvi izlaz ove funkcije predstavlja nelinearna ograničenja tipa nejednakosti,

drugi izlaz ove funkcije predstavlja nelinearna ograničenja tipa jednakosti.

59

Page 26: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 15. Rešiti sledeći problem nelinearnog programiranja

Rešenje 1.

f=@(x)1000-x(1)*x(1)-2*x(2)*x(2)-x(3)*x(3)-x(1)*x(2)-x(1)*x(3);

x0=[1;1;1];

xm=[0;0;0]; xM=[];

A=[]; B=[];

Aeq=[]; Beq=[];

[x,f_opt,c,d]=fmincon(f,x0,A,B,Aeq,Beq,xm,xM,@opt_con1)

function [c,ceq]=opt_con1(x)

% Nelinearna ogranicenja

% Ogranicenja tipa jednakosti

ceq=[x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25; …

8*x(1)+14*x(2)+7*x(3)-56];

c=[]; % Ogranicenja tipa nejednakosti

end

60

Page 27: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Rešenje 2. Pošto je drugo ograničenje tipa jednakosti linearno, ono se može

izbaciti iz nelinearnih ograničenja

ceq=[x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25; 8*x(1)+14*x(2)+7*x(3)-56];

i pridružiti linearnim ograničenjima.

f=@(x)1000-x(1)*x(1)-2*x(2)*x(2)-x(3)*x(3)-x(1)*x(2)-x(1)*x(3);

x0=[1;1;1];

xm=[0;0;0]; xM=[];

A=[]; B=[];

Aeq= [8,14,7]; Beq= 56;

[x,f_opt,c,d]=fmincon(f,x0,A,B,Aeq,Beq,xm,xM,@opt_con2)

function [c,ceq]=opt_con2(x) % Nelinearna ogranicenja

% Ogranicenja tipa jednakosti

ceq=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25;

c=[]; % Ogranicenja tipa nejednakosti

end

61

Page 28: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer 16. Rešimo nelinearni problem iz Primera 15 koristeći gradijent.

Rešenje. Odredimo Jakobijan za funkciju cilja

syms x1 x2 x3;

f=1000-x1*x1-2*x2*x2-x3*x3-x1*x2-x1*x3;

J=jacobian(f,[x1,x2,x3])

Rezultat je:

J =

[ - 2*x1 - x2 - x3, - x1 - 4*x2, - x1 - 2*x3]

Program:

x0=[1;1;1]; xm=[0;0;0]; xM=[]; A=[]; B=[]; Aeq=[]; Beq=[];

x,f_opt,c,d]=fmincon(@opt_fun2,x0,A,B,Aeq,Beq,xm,xM,@opt_con1)

function [c,ceq]=opt_con1(x) % Nelinearna ogranicenja

% Ogranicenja tipa jednakosti

ceq=[x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-25; 8*x(1)+14*x(2)+7*x(3)-56];

c=[]; % Ogranicenja tipa nejednakosti

end

function [y,Gy]=opt_fun2(x) % funkcija i njen Jakobijan

y=1000-x(1)*x(1)-2*x(2)*x(2)-x(3)*x(3)-x(1)*x(2)-x(1)*x(3);

Gy=[-2*x(1)-x(2)-x(3); -4*x(2)-x(1); -2*x(3)-x(1)];

end

62

Page 29: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3.4 OPTIMIZACIJA UZ POMOĆ GRAFIČKOG INTERFEJSA Da bi pokrenuli grafičku aplikaciju za optimizaciju koristimo funkciju

optimtool

Kao rezultat izvršavanja ove funkcije kreira se grafički prozor

63

Page 30: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

64

Page 31: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Primer. Odrediti minimuma sledeće funkcije

pod uslovima

koristeći grafički interfejs. Početno pogađanje je

13x i

21x .

funkcija cilja

nelinearne nejednakosti

linearne nejednakosti

ograničenje

65

Page 32: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Rešenje.

1. Korak: Pišemo m-funkciju cilja objecfun.m:

function f = objecfun(x)

f = x(1)^2 + x(2)^2;

end

2. Korak: Pišemo m-funkciju nelinearnih ograničenja nonlconstr.m (sadrži ograničenja tipa nejednakosti i jednakosti):

function [c,ceq] = nonlconstr(x)

% Nelinearna ogranicenja

% Ograničenja tipa nejednakosti (<=0)

c = [-x(1)^2 - x(2)^2 + 1;

-9*x(1)^2 - x(2)^2 + 9;

-x(1)^2 + x(2);

-x(2)^2 + x(1)];

% Ogranicenja tipa jednakosti ne postoje

ceq = [];

end

66

Page 33: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

3. Korak: Podešavamo i izvršavamo optimizacioni problem pomoću grafičkog interfejsa

67

Page 34: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

68

Page 35: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

69

Page 36: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

70

Page 37: 2 OPTIMIZACIONI PROBLEMI EZ OGRANIČENJA · promenljivima jednaki su nula Rešavanjem prethodnih jednačina dobijaju se ekstremne tačke od kojih neke mogu biti optimalne. Rezavanje

Izborom opcije iz menija File/Generate Code može se snimiti Matlab programski kod u obliku m-funkcije koju smo nazvali Fun_minimizacija.m.

Ovaj kod vrši prethodu optimizaciju, pri čemu zahteva

1. početno pogađanje x0=[3; 1],

2. definisanje ciljne funkcije objecfun.m, 3. funkcije nelinearni nejednakosti nonlconstr.m 4. parametre linearnih nejednakosti Aineq=[-1 -1]; bineq=[-1]

5. parametre ograničenja lb=[0.5 -inf]

x0=[3; 1];

Aineq=[-1 -1];

bineq=[-1];

lb=[0.5 -inf];

[x,fval,exitflag,output,lambda,grad,hessian] =

Kod(x0,Aineq,bineq,lb)

71