Diplomska naloga (.pdf)
Diplomska naloga (.pdf)
Diplomska naloga (.pdf)
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