粒子群算法报告

2022-04-16 11:22:16   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《粒子群算法报告》,欢迎阅读!
粒子,算法,报告


粒子群优化算法

粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation,Eberhart士和kennedy博士于1995年提出。源于对鸟群捕食的行为研究

设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在那。但是它们知道自己当前的位置距离食物还有多远。 那么找到食物的最优策略是什么?

最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

鸟被抽象为没有质量和体积的微粒(),并延伸到N维空间,粒子I N维空间的位置表示为矢量Xi(x1x2,„,xN),飞行速度表示为矢量Vi(v1v2,„,vN).每个粒子都有一个由目标函数决定的适应值(fitness value)并且知道自己到目前为止发现的最好位(pbest)和现在的位置Xi这个可以看作是粒子自己的飞行经验除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbestpbest中的最好值).这个可以看作是粒子同伴的经验粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动

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 是粒子的速度; pbestgbest如前定义;

rand()是介于(01)之间的随机数; Xi 是粒子的当前位置。

c1c2学习因子,通常取c1 c22

在每一维,粒子都有一个最大限制速度Vmax,如果 某一维的速度超过设定的Vmax ,那么这一维的速度 就被限定为Vmax Vmax >0

以上两个公式为基础,形成了后来PSO 的标准形式。从社会学的角度来看,公式(1)的第一部分称为记忆项,表示上次速度大小和方向的影响;公式第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动

1998shiA 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,惯性因子ω学习因子c1c2最大速度Vmax,迭代次数Gk 群体规模m 一般取2040,对较难或特定类别的问题可以取到100200

最大速度Vmax决定当前位置与最好位置之间的区域的分辨率(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒子不能在局部极小点之外进行足

够的探索,会陷入到局部极值区域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒度的目的。

权重因子 包括惯性因子ω,学习因子c1c2 使粒子保持着运动惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。C1c2代表将每个粒子推向Pbestgbest位置的统计加速项的权值。较低的值允许粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲向或越过目标区域。




本文来源:https://www.wddqxz.cn/1d5396bd960590c69ec3767b.html

相关推荐