【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《粒子群算法报告》,欢迎阅读!
粒子群优化算法
粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),由Eberhart博士和kennedy博士于1995年提出。源于对鸟群捕食的行为研究。
设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当前的位置距离食物还有多远。 那么找到食物的最优策略是什么?
最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I 在N维空间的位置表示为矢量Xi=(x1,x2,„,xN),飞行速度表示为矢量Vi=(v1,v2,„,vN).每个粒子都有一个由目标函数决定的适应值(fitness value),并且知道自己到目前为止发现的最好位置(pbest)和现在的位置Xi.这个可以看作是粒子自己的飞行经验.除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbest是pbest中的最好值).这个可以看作是粒子同伴的经验.粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。
PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。
(1) 式:V(i)=V(i)+c(1) ×rand()×(pbest(i)-x(i))+c(2) ×rand()×(gbest(i)-x(i)) (2) 式:x(i)=x(i)+V(i) 其中:
Vi 是粒子的速度; pbest和gbest如前定义;
rand()是介于(0、1)之间的随机数; Xi 是粒子的当前位置。
c1和c2是学习因子,通常取c1= c2=2
在每一维,粒子都有一个最大限制速度Vmax,如果 某一维的速度超过设定的Vmax ,那么这一维的速度 就被限定为Vmax 。( Vmax >0)
以上两个公式为基础,形成了后来PSO 的标准形式。从社会学的角度来看,公式(1)的第一部分称为记忆项,表示上次速度大小和方向的影响;公式第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。
1998年shi等人在进化计算的国际会议上发表了一篇论文《A modified particle swarmoptimizer》对前面的公式(1)进行了修正。引入惯性权重因子。
(3) 式:V(i)= ω×V(i)+c(1) ×rand()×(pbest(i)-x(i))+c(2) ×rand()×(gbest(i)-x(i)) 其中ω非负,称为惯性因子。
公式(2)和(3)被视为标准pso算法。 标准PSO算法的流程:
Step1:初始化一群微粒(群体规模为m),包括随机位置和 速度;
Step2:评价每个微粒的适应度;
Step3:对每个微粒,将其适应值与其经过的最好位置
pbest作比较,如果较好,则将其作为当前的
最好位置pbest;
Step4:对每个微粒,将其适应值与其经过的最好位置
gbest作比较,如果较好,则将其作为当前的 最好位置gbest;
Step5:根据(2)、(3)式调整微粒速度和位置; Step6:未达到结束条件则转Step2。 参数有:
群体规模m,惯性因子ω,学习因子c1和c2最大速度Vmax,迭代次数Gk。 群体规模m 一般取20~40,对较难或特定类别的问题可以取到100~200。
最大速度Vmax决定当前位置与最好位置之间的区域的分辨率(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒子不能在局部极小点之外进行足
够的探索,会陷入到局部极值区域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒度的目的。
权重因子 包括惯性因子ω,和学习因子c1和c2。 使粒子保持着运动惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。C1和c2代表将每个粒子推向Pbest和gbest位置的统计加速项的权值。较低的值允许粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲向或越过目标区域。
本文来源:https://www.wddqxz.cn/1d5396bd960590c69ec3767b.html