基本粒子群算法的原理和matlab程序.docx

基本粒子群算法的原理和matlab程序.docx

ID:48596998

大小:38.94 KB

页数:6页

时间:2020-02-26

基本粒子群算法的原理和matlab程序.docx_第1页
基本粒子群算法的原理和matlab程序.docx_第2页
基本粒子群算法的原理和matlab程序.docx_第3页
基本粒子群算法的原理和matlab程序.docx_第4页
基本粒子群算法的原理和matlab程序.docx_第5页
资源描述:

《基本粒子群算法的原理和matlab程序.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基本粒子群算法的原理和matlab程序作者——niewei120(nuaa)一、粒子群算法的基本原理粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy和Eberhart提出,是一种通用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO算法利用这种模型得到启示并应用于解决优化问题。PSO算法中,每个优化问题的解都是粒子在搜索空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的

2、最优粒子在解空间中搜索。PSO算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO算法。速度、位置的

3、更新方程表示为:  每个粒子自身搜索到的历史最优值pi,pi=(pi1,pi2,....,piQ),i=1,2,3,....,n。所有粒子搜索到的最优值pg,pg=(pg1,pg2,....,pgQ),注意这里的pg只有一个。是保持原来速度的系数,所以叫做惯性权重。是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。是[0,1]区间内均匀分布的随机数。是对位置更新的时候,在速度前面加的一个系数,这个系数我们

4、叫做约束因子。通常设置为1。粒子群优化算法的流程:二、粒子群算法的matlab实现主函数:function[Result,OnLine,OffLine,MinMaxMeanAdapt]=PSO_Stand(SwarmSize,ParticleSize,ParticleScope,IsStep,IsDraw,LoopCount,IsPlot)%输入参数:SwarmSize:种群大小的个数%输入参数:ParticleSize:一个粒子的维数%输入参数:ParticleScope:一个粒子在运算中各维的范围;%        ParticleScope格式:%  

5、        3维粒子的ParticleScope格式:%                          [x1Min,x1Max%                          x2Min,x2Max%                          x3Min,x3Max]%输入参数:InitFunc:初始化粒子群函数%输入参数:StepFindFunc:单步更新速度,位置函数%输入参数:AdaptFunc:适应度函数%输入参数:IsStep:是否每次迭代暂停;IsStep=0,不暂停,否则暂停。缺省不暂停%输入参数:IsDraw:是否图形化

6、迭代过程;IsDraw=0,不图形化迭代过程,否则,图形化表示。缺省不图形化表示%输入参数:LoopCount:迭代的次数;缺省迭代100次%输入参数:IsPlot:控制是否绘制在线性能与离线性能的图形表示;IsPlot=0,不显示;%                IsPlot=1;显示图形结果。缺省IsPlot=1%返回值:Result为经过迭代后得到的最优解%返回值:OnLine为在线性能的数据%返回值:OffLine为离线性能的数据%返回值:MinMaxMeanAdapt为本次完整迭代得到的最小与最大的平均适应度[ParSwarm,OptSwarm]

7、=InitSwarm(SwarmSize,ParticleSize,ParticleScope);%初始化粒子群ifIsStep~=0disp('开始迭代,按任意键:')pauseend%开始更新算法的调用%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fork=1:LoopCount%显示迭代的次数:disp('----------------------------------------------------------')TempStr=sprintf('第%g次迭代',k);disp(TempStr);disp('-------

8、--------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。