标准粒子群算法(PSO)及其Matlab程序和常见改进算法

标准粒子群算法(PSO)及其Matlab程序和常见改进算法

ID:43352087

大小:19.49 KB

页数:5页

时间:2019-09-30

标准粒子群算法(PSO)及其Matlab程序和常见改进算法_第1页
标准粒子群算法(PSO)及其Matlab程序和常见改进算法_第2页
标准粒子群算法(PSO)及其Matlab程序和常见改进算法_第3页
标准粒子群算法(PSO)及其Matlab程序和常见改进算法_第4页
标准粒子群算法(PSO)及其Matlab程序和常见改进算法_第5页
资源描述:

《标准粒子群算法(PSO)及其Matlab程序和常见改进算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、粒子群算法概述粒子群优化算法(PSO)是一种进化计算技术(evolutionarycomputation),1995年由Eberhart博士和kennedy博士提出,源于对鸟群捕食的行为研究。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。 PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度

2、决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。 PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个”极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。二、算法原理粒子群算法采用常数学习因子,及惯性权重,粒子根据如下的公式更新自己的速度和位置。 Vki=ωkVi−1i+c1r1(Qbi−Qk−1i)+c2r2(Qbg−Qk−

3、1i)Qki=Qk−1i+Vki三、算法步骤1、随机初始化种群中各微粒的位置和速度; 2、评价个粒子的适应度,将各粒子的位置和适应度储存在各微粒的pbest(Qbi)中,将所有pbest中适应度最优的个体的位置和适应度存储在gbest(Qbg)中。 3、更新粒子的速度和位移。 Vki=ωkVi−1i+c1r1(Qbi−Qk−1i)+c2r2(Qbg−Qk−1i)Qki=Qk−1i+Vki4、对每个微粒,与其前一个最优位置比较,如果较好,则将其作为当前的最优位置。 5、比较当前所有的pbest和上一迭代周期的gbest,更新gbest。 6、若满足停止条件(达到要求精度或迭代次数)

4、,搜索停止,输出结果,否则,返回2。四、算法改进1、带压缩因子的粒子群算法。 主要是限定学习因子,粒子的更新公式变为为: Vki=ϕ[Vi−1i+c1r1(Qbi−Qk−1i)+c2r2(Qbg−Qk−1i)]Qki=Qk−1i+Vki其中, ϕ=22−C−C2−4C√,其中C=c1+c22、权重改进的粒子群算法。 随着迭代次数的增加,惯性权重从最大变化到最小。变化的公式是: ω=ωmax−t∗(ωmax−ωmin)tmax3、自适应权重法。主要是为了平衡全局搜索和局部搜索能力。权重的表达式为: ω=⎧⎩⎨ωmin−(ωmax−ωmin)∗(f−fmin)favg−fminωma

5、x,f≤favg,f>favg4、随机权重法。 {ω=μ+σ∗N(0,1)μ=μmin+(μmax−μmin)∗rang(0,1)5、变学习因子的粒子群算法。 (1)、 c1=c2=cmax−t∗(cmax−cmin)tmax (2)、 {c1=c1,ini+c1,fin−c1,initmax c2=c2,ini+c2,fin−c2,initmax 6、二阶粒子群算法。 Vki=ϕ[Vi−1i+c1r1(Qbi−2Qki+Qk−1i)+c2r2(Qbg−2Qki+Qk−1i)]Qki=Qk−1i+Vki五、粒子群算法参数介绍标准粒子群算法中,有以下几个参数: 1、fitness,

6、待优化的目标函数 2、粒子数目:N 3、学习因子1:c1 4、学习因子2:c2 5、惯性权重:w 6、最大迭代系数:M 7、自变量的个数:D 1、finess是待优化的目标函数,如何构造函数是用粒子群算法的前提,构造函数的结构直接决定了计算结果的好坏,特别是在多目标优化的问题中。 2、学习因子一般取2,c1决定着其局部搜寻能力,c2决定着其全局搜寻能力。 3、惯性权重大,便于全局搜索,惯性权重小,便于局部搜索。 4、最大迭代系数一般取1000—10000,具体看精度要求。 5、自变量的个数有目标函数决定。学习因子、惯性权重是改进粒子群算法的关键 更新函数决定了粒子群算法的本质能力

7、。function[xm,fv]=PSO(fitness,N,c1,c2,w,M,D)%fitness,待优化的目标函数%粒子数目:N%学习因子1:c1,一般取2%学习因子2:c2,一般取2%惯性权重:w%最大迭代系数:M%自变量的个数:D%目标函数取最大值是的自变量值:xm%目标函数的最小值:fvformatlong;vmax=0.2*2*pi;vmin=-0.2*2*pi;xmax=1*pi;xmin=-1*pi;fori=1:Nforj=1:Dx(i,j)=randn;v(

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

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

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