📄 adapting.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 + -