17.04.2015 Views

Diplomska naloga (.pdf)

Diplomska naloga (.pdf)

Diplomska naloga (.pdf)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

52<br />

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />

%FUNKCIJA, KI NAREDI NOVO POPULACIJO<br />

function Nova<br />

%Definiramo vse potrebne globalne spremenljivke.<br />

... (elitizem, st_osebkov, st_plasti, P, f, opt)<br />

pop=P;<br />

f1=f;<br />

%Če optimiziramo po debelini absorberja.<br />

if opt==0<br />

%Če osebek predstavlja nedopustno rešitev, mu damo utež<br />

%(št_plasti_v_absorberju)*0.004.<br />

for n=1:st_osebkov<br />

if f1(n)==1<br />

f1(n)=0.4e-2*st_plasti;<br />

end<br />

end<br />

clear n<br />

%Ker je osebek z manjšo vrednostjo kriterijske fn. boljši, za uteži<br />

%uporabimo obratne vrednosti kriterijske fn.<br />

f1=ones(size(f))./f;<br />

%Če optimiziramo po širini frekvenčnega pasu absorberja.<br />

elseif opt==1<br />

%Če osebek predstavlja nedopustno rešitev, mu damo utež (vrednost_najboljšega)*0.1.<br />

for n=1:st_osebkov<br />

if f1(n)==0<br />

f1(n)=f1(1)*0.1;<br />

end<br />

end<br />

clear n<br />

end<br />

x=sum(f1);<br />

delne_vsote(1)=f1(1);<br />

for j=2:st_osebkov<br />

delne_vsote(j)=delne_vsote(j-1)+f1(j);<br />

end<br />

%Upoštevamo elitizem.<br />

j=round(st_osebkov*elitizem);<br />

if (st_osebkov-j)/2-fix((st_osebkov-j)/2)==0<br />

j=j+1;<br />

end<br />

while j

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!