ga.m
来自「本程序为遗传算法源程序」· M 代码 · 共 40 行
M
40 行
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 + =
减小字号Ctrl + -
显示快捷键?