- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
粒子群算法及其MATLAB实现;PSO算法的根本理论
PSO算法概述
PSO算法源程序案例
PSO算法应用案例
;粒子群算法;PSO算法的根本理论;每只鸟能够通过自身经验和外界信息估计当前所处位置对于能找到食物有多大价值,即适应值。
适应值函数:基于某种标准对个体进行评价的函数
每只鸟能够记住自己所找到的最好位置,即局部最优〔pbest〕;每只鸟还能够记住所有个体能找到的所有最好位置,即全局最优(gbest)。
整个鸟群的觅食中心将向全局最优移动,通过鸟群位置的移动,即迭代过程,可以使鸟群向目标食物逼近。;第i个粒子在D维搜索空间的位置为
粒子的位置可以作为潜在解,将带入目标函数可以计算出其适应值,根据适应值的大小衡量优劣。
粒子个体经过的最好位置记为=(,)
整个群体的所有粒子经过的最好位置记为()
粒子i的速度记为〔)
;为【0,1】之间的随机数,这两个参数是用来保持群体的多样性。
在每次迭代中,粒子根据以下公式更新速度和位置:
+(
;
约束因子:控制速度的权重
;PSO算法的参数选取;通过调整w的大小来控制历史的速度对当前速度的影响程度,使其成为兼顾全局搜索和局部搜索的一个折中。惯性因子w的大小决定了对粒子当前速度继承的多少。
如果惯性因子w是变量,通常在迭代开始时将惯性因子w设置的较大,然后在迭代过程中逐步减小。这样可以使粒子群在开始优化时搜索到较大的解空间,得到适宜的粒子,然后在后期逐渐收缩到较好的区域进行更精细的搜索,以加快收敛速度和目标精度。;3.加速常数
对于简单的常规问题,一般情况下去2.0。
加速常数调整自身经验和社会经验在其运动中所起作用的权重。假设那么粒子没有自身经验,只有社会经验,它的收敛速度可能较快,容易陷入局部最优点;假设,那么粒子群没有共享信息,只有自身经验,得到最优解的几率非常小。假设粒子将在没有任何经验和信息的情况下盲目地搜索到有限区域,很难找到最优解。;4.最大飞翔速度
为使粒子有效地进行搜索,需要使用参数对粒子运动速度进行限制。参数有利于防止搜索范围毫无意义的发散,防止粒子群由于飞翔速度过大错过最优目标值。
为了跳出局部最优,需要较大的寻优步长,而在接近最优值时,采用更小的步长会更好。如果的选择是固定不变的,通常设定为每维变化范围的10%~20%。;PSO算法程序设计;6.对每个粒子的飞翔速度进行限幅处理,使其不超过设定的最大飞翔速度。
7.根据更新公式更新每个粒子当前所在位置。
8.比较当前粒子的适应值是否比历史局部最优好,如果好,那么当前粒子适应值作为粒子局部最优值,其对应的位置作为局部最优值的位置。
9.找出全局最优值,将当前全局最优值的位置作为粒子群的全局最优值所在位置。
10.重复步骤5~9,直到满足设定的最小误差或到达最大迭代次数。
11.输出粒子群全局最优值和其对应的位置以及每个粒子的局部最优值和其对应的位置。;程序设计流程图;PSO算法源程序范例;
vmax=0.8;%粒子的最大飞翔速度
x=-5+10*rand(particlesize,narvs);%粒子所在的位置
v=2*rand(particlesize,narvs);%粒子的飞翔速度
%用inline定义适应度函数以便将子函数文件与主程序文件放在一起
%目标函数是:y=1+(2.1*(1-x+2*x.^2).*exp(-x.^2/2))
%inline命令定义适应度函数如下
fitness=inline(1/(1+(2.1*(1-x+2*x.^2).*exp(-x.^2/2))),x);%inline定义的适应度函数会使程序运行速度大大降低
fori=1:particlesize
forj=1:narvs
f(i)=fitness(x(i,j));%fitness〔适应度函数〕用于评价每个粒子的初始适应值
end
end
;personalbest_x=x;%将初始适应值作为当前全局最优值
personalbest_faval=f;%将各适应值对应的位置作为每个粒子的局部最优值所在的位置
[globalbest
文档评论(0)