clear all;
clc;
c1=2;%学习因子1
c2=2;%学习因子2
wmax=0.5;%权值最大值
wmin=1;%权值最小值
%w=1;
MaxDT=100;%最大迭代次数
D=30;%D维搜索空间
N=100;%N个Particle
eps=10^(-6);%精度
a=-5.12;%最优值系数下限
b=5.12;%最优值系数上限
f=100;%目标达优值
vmax=1;
avg=0;
%h=0;
%while h<100
% h=h+1;
%初始化x(i),v(i)............................
for i=1:N
for j=1:D
x(i,j)=a+rand*(b-a);
%v(i,j)=rand*(b-a);
v(i,j)=rand*vmax;
end
p(i)=fitness(x(i,:),D);%个体i最优值
y(i,:)=x(i,:);%个体i最优解
end
%x=a+rand(N,D)*(b-a);
%v=rand(N,D)*vmax;
pg=x(1,:);%全局最优解
for i=2:N
if fitness(x(i,:),D)<fitness(pg,D)
pg=x(i,:);
end
end
%迭代x(i),v(i);更新p(i),pg............................
t=1;
for t=1:MaxDT
%while abs(fitness(pg,D))>eps
w=wmax-(wmax-wmin)*t/MaxDT;
for i=1:N
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
for j=1:D
if v(i,j)>vmax
v(i,j)=vmax;
elseif v(i,j)<-vmax
v(i,j)=-vmax;
end
end
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:),D)<p(i)
p(i)=fitness(x(i,:),D);
y(i,:)=x(i,:);
end
if p(i)<fitness(pg,D)
pg=y(i,:);
end
end
% if t>MaxDT-10||t<11
% disp('迭代次数....................................')
% t
% disp('全局最优值')
% fitness(pg,D)
% disp('i个体最优解')
% p(:)'
% disp('..........................................')
%end
t=t+1;
end
%disp('*************************************************************')
%disp('Solution')
%Solution=pg
%disp('Result')
% h
r=fitness(pg,D)
%disp('*************************************************************')
%程序结果不稳定,运行100次求平均
% avg=avg+r;
%end
%avg=avg/100
pso.rar_PSO实例_pso算法实例
版权申诉
175 浏览量
2022-09-21
19:46:30
上传
评论
收藏 2KB RAR 举报
weixin_42651887
- 粉丝: 79
- 资源: 1万+
最新资源
- index.jsp
- Screenshot_20240521_090410_com.huawei.android.launcher.jpg
- 单文件制作工具 7.0.2.3851-x86-x64
- Linux命令.xmind
- 基于Transformer实现的跨域Cross-view实时Map-view语义分割算法-附项目源码-优质项目实战.zip
- linux常用命令大全-.zip
- 2024彩虹聚合DNS管理系统源码 管理系统快速开发平台 聚合平台管理.zip
- elasticsearch介绍-.zip
- nodejs安装及环境配置-.zip
- 谷歌浏览器自动化测试版113.0.5672.0(包含linux,windows32/64,mac三个版本,不会自动更新)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈