📄 ga.m
字号:
function [gbestvalue,gbest,q1,endpop,dd]=ga(initpop,ff,num,bounds);
SC=0.7;
CP=0.7;
P=0.01;
pop=copy(initpop,bounds,SC,num);
[cpop ,len]=cross(pop,bounds,CP);
[pops]=mutation(cpop,bounds,P);
for i=1:num
sol=pops(i,:);
%惩罚策略
for jj=1:length(sol)
if sol(jj)<bounds(jj,1)
sol(jj)=rand*(bounds(jj,2)-bounds(jj,1));
end
if sol(jj)>bounds(jj,2)
sol(jj)=rand*(bounds(jj,2)-bounds(jj,1));
end
end
[f(i)]=Myfun(sol,size(bounds,1));
if f(i)<ff(i)
ff(i)=f(i);
initpop(i,:)=pops(i,:);
end
end
dd=ff;
endpop=initpop;
q1=1;
gbestvalue=ff(1);
gbest=initpop(1,:);
for k=1:num
if ff(k)<gbestvalue
gbestvalue=ff(k);
gbest=pops(k,:);
q1=k;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -