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

📄 adapting.m

📁 Matlab psp code is a good operator
💻 M
字号:
%适值计算
% 测试函数为f(x,y)=100(x^2-y)^2+(1-x)^2, -2.048<x,y<2.048 f=20+x.^2-10*cos(2*pi*x)+y.^2-10*cos(2*pi*y), -5.12<=x,y<=5.12

%计算适应值并赋值
for k=1:N;
for j=1:N;
for i=1:popsize
    %pop(i,8)=20+pop(i,1).^2-10*cos(2*pi*pop(i,1))+pop(i,2).^2-10*cos(2*pi*pop(i,2));
   TSpop(i,j)=pop(j,i)*L(i,k)*pop(k,j)./(pop(j,i)*d(i,j);
    if Tpop(i,j)>Tspop(i,j)    %若当前适应值优于个体最优值,则进行个体最优信息的更新
        Tspop(i,j)=Tpop(i,j);          %适值更新pop(i,7)个体最优pop(i,8)适应值
        %pop(i,5:6)=pop(i,1:2);      %位置坐标更新
    Spop(i,j)=pop(i,j);
    end
end
end
%计算完适应值后寻找当前全局最优位置并记录其坐标
for j=1:N
if best_fitness(j)>min(Tspop(:,j))
    best_fitness(j)=min(Tspop(:,j));     %全局最优值
    gbest_x=pop(find(Tspop(:,j)==min(Tspop(:,j))),1);    %全局最优粒子的位置   
    %gbest_y=pop(find(Tpop(:,7)==min(pop(:,7))),2);
end
end


best_in_history(exetime)=best_fitness;  %记录当前全局最优

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -