function[xm,fv]=SimuAPSO(fitness,N,c1,c2,lamda,M,D)
format long;
for i=1:N
for j=1:D
x(i,j)=randn;
v(i,j)=randn;
end
end
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:);
for i=1:(N-1)
if fitness(x(i,:))<fitness(pg)
pg=x(i,:);
end
end
T=fitness(pg)/log(5);
for t=1:M
groupFit=fitness(pg);
for i=1:N
Tfit(i)=exp(-(p(i)-groupFit)/T);
end
SumTfit=sum(Tfit);
Tfit=Tfit/SumTfit;
pBet=rand();
for i=1:N
ComFit(i)=sum(Tfit(1:i));
if pBet<=ComFit(i)
pg_plus=x(i,:);
break;
end
end
C=c1+c2;
ksi=2/abs(2-C-sqrt(C^2-4*C));
for i=1:N
v(i,:)=ksi*(v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg_plus-x(i,:)));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))<p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness(pg)
pg=y(i,:);
end
end
T=T*lamda;
Pbest(t)=fitness(pg);
end
xm=pg';
fv=fitness(pg);
%-------输出每一步的进化迭代曲线
%plot(Pbest,'r-o')
%hold on
%axis([0,500,0.4,0.5])
%title(['适应度曲线 ' '终止代数=' num2str(M)]);
%xlabel('进化代数');ylabel('适应度');
simuapso.zip_simuapso_智能算法_模拟退火 粒子群
版权申诉
3 浏览量
2022-09-24
18:36:31
上传
评论
收藏 870B ZIP 举报
林当时
- 粉丝: 100
- 资源: 1万+
最新资源
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
- 基于Java和JavaScript的茶叶评级管理系统设计源码 - tea
- IMG_5680.JPG
- IMG_0437.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0