永发信息网

咨询一个最简单的PSO算法的程序

答案:1  悬赏:60  手机版
解决时间 2021-03-22 07:46
咨询一个最简单的PSO算法的程序
最佳答案
%------基本粒子群优化算法(Particle Swarm Optimization)-----------
%------作用:求解优化问题
%------初始格式化----------
format long;
c1=1.4962; %学习因子1
c2=1.4962; %学习因子2
w=0.7298; %惯性权重
MaxDT=1000; %最大迭代次数
D=10; %搜索空间维数(未知数个数)
N=40; %初始化群体个体数目
eps=10^(-6); %设置精度(在已知最小值时候用)
%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------
for i=1:N
p(i)=fitness(x(i,:),D);
y(i,:)=x(i,:);
end
pg=x(1,:); %Pg为全局最优
for i=2:N
if fitness(x(i,:),D)
pg=x(i,:);
end
end
%------进入主要循环,按照公式依次迭代,直到满足精度要求------------
for t=1:MaxDT
for i=1:N
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:),D) p(i)=fitness(x(i,:),D);
y(i,:)=x(i,:);
end
if p(i)
pg=y(i,:);
end
end
Pbest(t)=fitness(pg,D);
end
%------最后给出计算结果
disp('*************************************************************')
disp('函数的全局最优位置为:')
Solution=pg
disp('最后得到的优化极值为:')
Result=fitness(pg,D)
disp('*************************************************************')
%------算法结束---

如果想要适应度函数源程序(fitness.m),可以再联系
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么总是会有一些心痛的感觉
横山桥初级中学物理兴趣小组在探究“观察水沸
2017年我组装电脑装win7今年有谁和我一样组装
八字口号大全,想一个带“荣耀不败”的八字口
超市里购买购物卡可以不留单位名称或者个人姓
郑州市水利局家属院怎么去啊,有知道地址的么
昨天家里的狗狗 对着脸我喷气 打喷嚏
作文(30分)每一个人都是一个美丽的世界。在
男友的父亲很固执怎么办
江苏师范大学与华中师范大学哪个好
下图表示真核细胞中4种生物膜上发生的化学变
电脑恢复出厂设置,一直停留在38%快半个小时
CF 7月27号怎么登不上去
云南巍山有什么好吃的?
3.6目前的破解模式能玩上PSP游戏吗
推荐资讯
中石化加油卡电子充值卡怎么使用
物流业务员,有什么注意事项,有什么技巧。还
水土保持工程按其作用分为哪三类
初三物理学什么,高考物理主要考什么?必修几
手脚纹路多是什么原因
牛佬在暗示什么?大梵在泰国应该不淡定了吧
4分30秒等于几秒
襄城区襄樊襄南招待所在什么地方啊,我要过去
小学课文《捞铁牛》中的铁牛是不是山西永济的
多年牙垢怎么去除,牙齿上的黑色的牙垢怎么去
老有所依乔振宇第几集出现
纽曼充电宝摔了会影响充电次数吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?