基本粒子群算法的matlab源程序(共2页).doc
《基本粒子群算法的matlab源程序(共2页).doc》由会员分享,可在线阅读,更多相关《基本粒子群算法的matlab源程序(共2页).doc(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Posted on 2008-05-07 09:09 realghost 阅读(840) 主函数源程序(main.m)%-基本粒子群优化算法(Particle Swarm Optimization)-%-名称:基本粒子群优化算法(PSO)%-作用:求解优化问题%-说明:全局性,并行性,高效的群体智能算法%-作者:孙明杰(dreamsun2001)%-单位:中国矿业大学理学院计算数学硕2005%-时间:2006年8月17日 %-%-初始格式化-clear all;clc;format long;%-给定初始化条件-c1=1.4962; %学习因子1c2=1.4962;
2、%学习因子2w=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;%随机初始化速度 endend%-先计算各个粒子的适应度,并初始化Pi和Pg-for i=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);endpg=x(1,:); %Pg为全局最优for
3、i=2:N if fitness(x(i,:),D)FITNESS(PG,D) pg=x(i,:); endend%-进入主要循环,按照公式依次迭代,直到满足精度要求-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) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:); end if p(i)FITNESS(PG,D) pg=y(i,:); end end Pbest(t)=fitness(pg,D);end%-最后给出计算结果disp(*)disp(函数的全局最优位置为:)Solution=pgdisp(最后得到的优化极值为:)Result=fitness(pg,D)disp(*)%-算法结束-DreamSun GL & HF- 适应度函数源程序(fitness.m)function result=fitness(x,D)sum=0;for i=1:D sum=sum+x(i)2;endresult=sum;专心-专注-专业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本粒子 算法 matlab 源程序
限制150内