📄 myadapting.m
字号:
%计算适应值 myadapting.m
for i=1:nind
adapt1(i)=0; %初始化
end
for i=1:nind
adapt2(i)=0; %初始化
end
%解码
for i=1:nind
for j=1:bits
if pop(i,j)==1
adapt1(i)=adapt1(i)+2^(bits-j);
end
end
x1(i)=min+adapt1(i)*(max-min)/(2^bits-1);
for j=bits+1:2*bits
if pop(i,j)==1
adapt2(i)=adapt2(i)+2^(2*bits-j);
end
end
x2(i)=min+adapt2(i)*(max-min)/(2^bits-1);
%计算适应值
eval(i)= 100*(x1(i)^2-x2(i)^2)^2+(1-x1(i))^2; %对于极大值问题,适应度就等于目标函数值
end
%迭代次数到达最大遗传代数时做出群体适应值分布图
if (Gen==G)
figure(2);
plot(eval);
legend('最大遗传代数时目标函数值分布图')
end
global best_pos;
eval_best(G)=0; %最佳个体
best_pos=0; %最佳个体在种群中的位置
for i=1:nind
eval_ave(Gen)=eval_ave(Gen)+eval(i);
if eval_best(Gen)<eval(i)
eval_best(Gen)=eval(i);
best_pos=i;
end
end
eval_ave(Gen)=eval_ave(Gen)/nind;
clear i;
clear j;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -