⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myadapting.m

📁 用遗传算法求解二维函数的最大值问题
💻 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 + -