张晓寒杨凌霄唐鹏程——粒子群算法PPT课件_第1页
张晓寒杨凌霄唐鹏程——粒子群算法PPT课件_第2页
张晓寒杨凌霄唐鹏程——粒子群算法PPT课件_第3页
张晓寒杨凌霄唐鹏程——粒子群算法PPT课件_第4页
张晓寒杨凌霄唐鹏程——粒子群算法PPT课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-,1,粒子群算法及其MATLAB实现,60组张晓寒杨凌霄唐鹏程,-,2,PSO算法的基本理论PSO算法概述PSO算法源程序案例PSO算法应用案例,-,3,粒子群算法,粒子群算法(particleswarmoptimization,简称PSO)是依托群鸟觅食模型(Boid)寻找最优值。鸟觅食模型需要对鸟的位置和飞翔速度赋予初值,采用对称随机初始化策略,使其在寻优空间范围内随机初始化分布,然后鸟根据自己寻找食物的经验以及鸟群信息共享,不断向目标靠近,经过有限次位移,绝大部分鸟聚集在一起并且找到了食物或离食物非常近。,-,4,PSO算法的基本理论,PSO算法最早是由美国电气工程师Eberhart和社会心理学家Kennedy在1995年基于群鸟觅食提出来的。群鸟觅食过程中,每只鸟的初始状态和飞行方向是随机的,每只鸟都不知道食物在哪里,随着时间推移,处于随机状态的鸟会通过相互学习和自身经验,自行组织成一个群落,向着食物目标前进。,-,5,每只鸟能够通过自身经验和外界信息估计当前所处位置对于能找到食物有多大价值,即适应值。适应值函数:基于某种标准对个体进行评价的函数每只鸟能够记住自己所找到的最好位置,即局部最优(pbest);每只鸟还能够记住所有个体能找到的所有最好位置,即全局最优(gbest)。整个鸟群的觅食中心将向全局最优移动,通过鸟群位置的移动,即迭代过程,可以使鸟群向目标食物逼近。,-,6,第i个粒子在D维搜索空间的位置为粒子的位置可以作为潜在解,将带入目标函数可以计算出其适应值,根据适应值的大小衡量优劣。粒子个体经过的最好位置记为=(,)整个群体的所有粒子经过的最好位置记为()粒子i的速度记为();为【0,1】之间的随机数,这两个参数是用来保持群体的多样性。在每次迭代中,粒子根据以下公式更新速度和位置:+(;约束因子:控制速度的权重,-,7,PSO算法的参数选取,1.粒子数粒子数一般取值为2040,特殊的难题需要100200个粒子。粒子数越多,搜索范围越大,越容易找到全局最优解,算法运行时间也越长。2.惯性因子惯性因子w对于粒子群算法的收敛性起到很大作用。w值越大,粒子飞翔幅度越大,容易错失局部寻优能力,而全局搜索能力较强;w值越小,则局部寻优能力增强,全局寻优能力减弱。,-,8,通过调整w的大小来控制历史的速度对当前速度的影响程度,使其成为兼顾全局搜索和局部搜索的一个折中。惯性因子w的大小决定了对粒子当前速度继承的多少。如果惯性因子w是变量,通常在迭代开始时将惯性因子w设置的较大,然后在迭代过程中逐步减小。这样可以使粒子群在开始优化时搜索到较大的解空间,得到合适的粒子,然后在后期逐渐收缩到较好的区域进行更精细的搜索,以加快收敛速度和目标精度。,-,9,3.加速常数对于简单的常规问题,一般情况下去2.0。加速常数调整自身经验和社会经验在其运动中所起作用的权重。若则粒子没有自身经验,只有社会经验,它的收敛速度可能较快,容易陷入局部最优点;若,则粒子群没有共享信息,只有自身经验,得到最优解的几率非常小。若粒子将在没有任何经验和信息的情况下盲目地搜索到有限区域,很难找到最优解。,-,10,4.最大飞翔速度为使粒子有效地进行搜索,需要使用参数对粒子运动速度进行限制。参数有利于防止搜索范围毫无意义的发散,防止粒子群由于飞翔速度过大错过最优目标值。为了跳出局部最优,需要较大的寻优步长,而在接近最优值时,采用更小的步长会更好。如果的选择是固定不变的,通常设定为每维变化范围的10%20%。,-,11,PSO算法程序设计,PSO算法实现的步骤:1.初始化粒子群(速度和位置)、惯性因子、加速常数、最大迭代次数和算法终止的最小允许误差。2.评价每个粒子的初始适应值。3.将初始适应值作为当前全局最优值,将最佳适应值对应的位置作为全局最优值的位置。4.将最佳初始适应值作为当前全局最优值,将最佳适应值的位置作为全局最优值的位置。5.根据更新公式更新每个粒子当前的飞行速度。,-,12,6.对每个粒子的飞翔速度进行限幅处理,使其不超过设定的最大飞翔速度。7.根据更新公式更新每个粒子当前所在位置。8.比较当前粒子的适应值是否比历史局部最优好,如果好,则当前粒子适应值作为粒子局部最优值,其对应的位置作为局部最优值的位置。9.找出全局最优值,将当前全局最优值的位置作为粒子群的全局最优值所在位置。10.重复步骤59,直到满足设定的最小误差或达到最大迭代次数。11.输出粒子群全局最优值和其对应的位置以及每个粒子的局部最优值和其对应的位置。,-,13,程序设计流程图,否是,开始,初始化各参数,计算各粒子适应值,找出个体和群体最优值,更新各个粒子的速度和位置,终止条件?,结束,-,14,PSO算法源程序范例,functionmain()clc;clearall;closeall;tic;%程序运行计时E0=0.001;%允许误差MaxNum=100;%粒子最大迭代次数narvs=1;%目标函数的自变量个数particlesize=30;%粒子群规模c1=2;%每个粒子的个体学习因子,也称为加速常数c2=2;%每个粒子的社会学习因子,也成为加速常数w=0.6;%惯性因子,求解maxf(x)=2.1,-,15,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:particlesizeforj=1:narvsf(i)=fitness(x(i,j);%fitness(适应度函数)用于评价每个粒子的初始适应值endend,-,16,personalbest_x=x;%将初始适应值作为当前全局最优值personalbest_faval=f;%将各适应值对应的位置作为每个粒子的局部最优值所在的位置globalbest_favali=min(personalbest_faval);%将最佳初始适应值对应的位置作为全局最优值所在的位置globalbest_x=personalbest_x(i,:);%将最佳初始适应值作为当前全局最优值k=1;whilek=MaxNumfori=1:particlesizeforj=1:narvsf(i)=fitness(x(i,j)endiff(i)vmax;v(i,j)=vmax;elseifv(i,j)-vmax;,-,18,v(i,j)=-vmax;%对每一个粒子的飞翔速度进行限幅处理endendx(i,:)=x(i,:)+v(i,:);%更新粒子当前所在的位置endifabs(globalbest_faval)VmaxendV1(i,j,num)=Vmax;elseifendV1(i,j,num)VmaxendV2(s2,num)=Vmax;elseifendV2(s2,num)XmaxendP1(i,j,num)=Xmax;elseifendP1(i,j,num)XmaxendP2(s2,num)=Xmax;elseifendP2(s2,num)XminendP2(s2,num)=Xmin;endendW1=endP1(1:HiddenUnitNum,1:R,num);W2=endP1(1:HiddenUnitNum,R+1:R+S2,num);B1=endP1(1:HiddenUnitNum,R+S2+1,num);B2=endP2(1:S2,num);forq=1:SamNumTempOut=logsig(W1*SamIn(:,q)+B1);NetworkOut(1,q)=W2*TempOut+B2;endE=NetworkOut-SamOut;SSE=sumsqr(E)%便于在命令窗口观察网络误差的变化情况endE(1,num)=sumsqr(E)/(SamNum*S2);ifendE(1,num)=Maxgeneration)Done=1;endifPgvalueE0Done=1;endstartP1=endP1;startP2=endP2;startV1=endV1;startV2=endV2;startE=endE;generation=generation+1;end,-,30,W1=Pg1(1:HiddenUnitNum,1:R);W2=Pg1(1:HiddenUnitNum,R+1:R+S2);B1=Pg1(1:HiddenUnitNum,R+S2+1);B2=Pg2(:,1);NewW1=W1;NewW2=W2;NewB1=B1;NewB2=B2;,PSO-BP神经网络训练及测试情况,由图可以看出网络拟合效果比较好,网络训练和网络推理能力良好。,-,31,结束谢谢大家,-,32,问题提问,1.粒子群算优缺点:优点:参数少,原理简单,容易实现;能够同时利用个人局部信息和群体全局信息进行搜索;容易越过局部最优进行全局最优搜索缺点:PSO局部搜索能力较差,探索精度不高;算法不能保证肯定能找到全局最优2.参数选取的基本原则:惯性因子w可取0,1区间的随机数,当w为定值时,一般取0.60.75区间的合理值。加速常数c1、c2一般都取2.0,最大飞翔问题可根据实际问题分析。3.与其他算法想比,粒子群算法有哪些特殊的地方?粒子群算法可以进行局部和全局寻优,对于目标函数仅能提供极少搜索最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论