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

下载本文档

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

文档简介

1、粒子群算法及其MATLAB实现60组 张晓寒 杨凌霄 唐鹏程PSOPSO算法的根本实际算法的根本实际PSOPSO算法概述算法概述PSOPSO算法源程序案例算法源程序案例PSOPSO算法运用案例算法运用案例粒子群算法粒子群算法粒子群算法particle swarm optimization,简称PSO是依托群鸟寻食模型Boid寻觅最优值。鸟寻食模型需求对鸟的位置和飞翔速度赋予初值,采用对称随机初始化战略,使其在寻优空间范围内随机初始化分布,然后鸟根据本人寻觅食物的阅历以及鸟群信息共享,不断向目的接近,经过有限次位移,绝大部分鸟聚集在一同并且找到了食物或离食物非常近。PSO算法的根本实际PSO算法

2、最早是由美国电气工程师Eberhart和社会心思学家Kennedy在1995年基于群鸟寻食提出来的。群鸟寻食过程中,每只鸟的初始形状和飞行方向是随机的,每只鸟都不知道食物在哪里,随着时间推移,处于随机形状的鸟会经过相互学习和本身阅历,自行组织成一个群落,向着食物目的前进。 每只鸟可以经过本身阅历和外界信息估计当前所处位置对于能找到食物有多大价值,即顺应值。顺应值函数:基于某种规范对个体进展评价的函数每只鸟可以记住本人所找到的最好位置,即部分最优pbest;每只鸟还可以记住一切个体能找到的一切最好位置,即全局最优(gbest)。整个鸟群的寻食中心将向全局最优挪动,经过鸟群位置的挪动,即迭代过程,

3、可以使鸟群向目的食物逼近。第i个粒子在D维搜索空间的位置为 粒子的位置可以作为潜在解,将 带入目的函数可以计算出其顺应值,根据顺应值的大小衡量优劣。 粒子个体经过的最好位置记为 =( , ) 整个群体的一切粒子经过的最好位置记为 () 粒子i的速度记为);为【0,1】之间的随机数,这两个参数是用来坚持群体的多样性。在每次迭代中,粒子根据以下公式更新速度和位置:+(;约束因子:控制速度的权重PSO算法的参数选取1.1.粒子数粒子数 粒子数普通取值为粒子数普通取值为20402040,特殊的难题需求,特殊的难题需求100200100200个粒子。个粒子。 粒子数越多,搜索范围越大,粒子数越多,搜索范

4、围越大,越容易找到全局最优解,算法运转时间也越长。越容易找到全局最优解,算法运转时间也越长。2.2.惯性因子惯性因子 惯性因子惯性因子w w对于粒子群算法的收敛性起到很对于粒子群算法的收敛性起到很大作用。大作用。w w值越大,粒子飞翔幅度越大,容易错失部分值越大,粒子飞翔幅度越大,容易错失部分寻优才干,而全局搜索才干较强寻优才干,而全局搜索才干较强;w;w值越小,那么部分值越小,那么部分寻优才干加强,全局寻优才干减弱。寻优才干加强,全局寻优才干减弱。经过调整w的大小来控制历史的速度对当前速度的影响程度,使其成为兼顾全局搜索和部分搜索的一个折中。惯性因子w的大小决议了对粒子当前速度承继的多少。假

5、设惯性因子w是变量,通常在迭代开场时将惯性因子w设置的较大,然后在迭代过程中逐渐减小。这样可以使粒子群在开场优化时搜索到较大的解空间,得到适宜的粒子,然后在后期逐渐收缩到较好的区域进展更精细的搜索,以加快收敛速度和目的精度。3.3.加速常数加速常数 对于简单的常规问题,普通情况下去对于简单的常规问题,普通情况下去2.02.0。 加速常数调整本身阅历和社会阅历在其运动中加速常数调整本身阅历和社会阅历在其运动中所起作用的权重。假设那么粒子没有本身阅历,只需社会所起作用的权重。假设那么粒子没有本身阅历,只需社会阅历,它的收敛速度能够较快,容易堕入部分最优点;假阅历,它的收敛速度能够较快,容易堕入部分

6、最优点;假设,那么粒子群没有共享信息,只需本身阅历,得到最优设,那么粒子群没有共享信息,只需本身阅历,得到最优解的几率非常小。假设粒子将在没有任何阅历和信息的情解的几率非常小。假设粒子将在没有任何阅历和信息的情况下盲目地搜索到有限区域,很难找到最优解。况下盲目地搜索到有限区域,很难找到最优解。4.4.最大飞翔速度最大飞翔速度 为使粒子有效地进展搜索,需求运用参数对为使粒子有效地进展搜索,需求运用参数对粒子运动速度进展限制。参数有利于防止搜索范围毫粒子运动速度进展限制。参数有利于防止搜索范围毫无意义的发散,防止粒子群由于飞翔速度过大错过最无意义的发散,防止粒子群由于飞翔速度过大错过最优目的值。优

7、目的值。 为了跳出部分最优,需求较大的寻优步长,为了跳出部分最优,需求较大的寻优步长,而在接近最优值时,采用更小的步长会更好。假设的而在接近最优值时,采用更小的步长会更好。假设的选择是固定不变的,通常设定为每维变化范围的选择是固定不变的,通常设定为每维变化范围的10%20%10%20%。PSO算法程序设计PSOPSO算法实现的步骤:算法实现的步骤:1.1.初始化粒子群速度和位置、惯性因子、初始化粒子群速度和位置、惯性因子、加速常数、最大迭代次数和算法终止的最小允加速常数、最大迭代次数和算法终止的最小允许误差。许误差。2.2.评价每个粒子的初始顺应值。评价每个粒子的初始顺应值。3.3.将初始顺应

8、值作为当前全局最优值,将最正将初始顺应值作为当前全局最优值,将最正确顺应值对应的位置作为全局最优值的位置。确顺应值对应的位置作为全局最优值的位置。4.4.将最正确初始顺应值作为当前全局最优值,将最正确初始顺应值作为当前全局最优值,将最正确顺应值的位置作为全局最优值的位置。将最正确顺应值的位置作为全局最优值的位置。5.5.根据更新公式更新每个粒子当前的飞行速度。根据更新公式更新每个粒子当前的飞行速度。6.对每个粒子的飞翔速度进展限幅处置,使其不超越设定的最大飞翔速度。7.根据更新公式更新每个粒子当前所在位置。8.比较当前粒子的顺应值能否比历史部分最优好,假设好,那么当前粒子顺应值作为粒子部分最优

9、值,其对应的位置作为部分最优值的位置。9.找出全局最优值,将当前全局最优值的位置作为粒子群的全局最优值所在位置。10.反复步骤59,直到满足设定的最小误差或到达最大迭代次数。11.输出粒子群全局最优值和其对应的位置以及每个粒子的部分最优值和其对应的位置。程序设计流程图程序设计流程图 否 是开场初始化各参数计算各粒子顺应值找出个体和群体最优值更新各个粒子的速度和位置终止条件?终了PSOPSO算法源程序范例算法源程序范例function main()clc;clear all; close all;tic; %程序运转计时E0=0.001; %允许误差MaxNum=100; %粒子最大迭代次数na

10、rvs=1; %目的函数的自变量个数particlesize=30; %粒子群规模c1=2; %每个粒子的个体学习因子,也称为加速常数c2=2; %每个粒子的社会学习因子,也成为加速常数w=0.6; %惯性因子求解maxf(x)=2.1vmax=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命令

11、定义顺应度函数如下fitness=inline(1/(1+(2.1*(1-x+2*x.2).*exp(-x.2/2),x); %inline定义的顺应度函数会使程序运转速度大大降低for i=1:particlesize for j=1:narvs f(i)=fitness(x(i,j); %fitness顺应度函数用于评价每个粒子的初始顺应值 endendpersonalbest_x=x; %将初始顺应值作为当前全局最优值 personalbest_faval=f; %将各顺应值对应的位置作为每个粒子的部分最优值所在的位置globalbest_faval i=min(personalbest

12、_faval); %将最正确初始顺应值对应的位置作为全局最优值所在的位置globalbest_x=personalbest_x(i,:); %将最正确初始顺应值作为当前全局最优值k=1;while k = MaxNum for i=1:particlesize for j=1:narvs f(i)=fitness(x(i,j) end if f(i)vmax; v(i,j)=vmax;elseif v(i,j)-vmax; v(i,j)=-vmax; %对每一个粒子的飞翔速度进展限幅处置 end end x(i,:)=x(i,:)+v(i,:); %更新粒子当前所在的位置 end if abs

13、(globalbest_faval)Vmax endV1(i,j,num)=Vmax; elseif endV1(i,j,num)Vmax endV2(s2,num)=Vmax; elseif endV2(s2,num)Xmax endP1(i,j,num)=Xmax; elseif endP1(i,j,num)Xmax endP2(s2,num)=Xmax; elseif endP2(s2,num)Xmin endP2(s2,num)=Xmin; end end W1=endP1(1:HiddenUnitNum,1:R,num); W2=endP1(1:HiddenUnitNum,R+1:R

14、+S2,num); B1=endP1(1:HiddenUnitNum,R+S2+1,num); B2=endP2(1:S2,num); for q=1:SamNum TempOut=logsig(W1*SamIn(:,q)+B1); NetworkOut(1,q)=W2*TempOut+B2; end E=NetworkOut-SamOut; SSE=sumsqr(E) %便于在命令窗口察看网络误差的变化情况 endE(1,num)=sumsqr(E)/(SamNum*S2); if endE(1,num)=Maxgeneration) Done=1; end if PgvalueE0 Don

15、e=1; end startP1=endP1; startP2=endP2; startV1=endV1; startV2=endV2; startE=endE; generation=generation+1;endW1=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神经网络训练及测试情况神经网络训练及测试情况由图可以看出网络拟合效果比较好,网络训练和网络推理才干良好。终了终了谢谢大家谢谢大家问题提问问题提问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

提交评论