资源描述:
《基本PSO算法的matlab源程序教学文案.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基本PSO算法的matlab源程序精品文档主函数源程序(main.m) %------基本粒子群优化算法(ParticleSwarmOptimization)-----------%------名称:基本粒子群优化算法(PSO)%------作用:求解优化问题%------说明:全局性,并行性,高效的群体智能算法%------初始格式化--------------------------------------------------clearall;clc;formatlong;%------
2、给定初始化条件----------------------------------------------c1=1.4962; %学习因子1c2=1.4962; %学习因子2w=0.7298; %惯性权重MaxDT=1000; %最大迭代次数D=10; %搜索空间维数(未知数个数)N=40; %初始化群体个体数目eps=10^(-6);
3、 %设置精度(在已知最小值时候用)%------初始化种群的个体(可以在这里限定位置和速度的范围)------------fori=1:N forj=1:D x(i,j)=randn; %随机初始化位置 v(i,j)=randn; %随机初始化速度 endend%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------fori=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:
4、);endpg=x(1,:); %Pg为全局最优fori=2:N iffitness(x(i,:),D) pg=x(i,:); endend%------进入主要循环,按照公式依次迭代,直到满足精度要求------------fort=1:MaxDT fori=1:N v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
5、 x(i,:)=x(i,:)+v(i,:); iffitness(x(i,:),D)
p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);收集于网络,如有侵权请联系管理员删除精品文档 end ifp(i) pg=y(i,:); end end Pbest(t)=fitness(pg,D);end%
6、------最后给出计算结果disp('*************************************************************')disp('函数的全局最优位置为:')Solution=pg'disp('最后得到的优化极值为:')Result=fitness(pg,D)disp('*************************************************************')%------算法结束---DreamSunGL&HF-
7、---------------------------------- 适应度函数源程序(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:D sum=sum+x(i)^2;endresult=sum;收集于网络,如有侵权请联系管理员删除