- 56
- 0
- 约2.14千字
- 约 40页
- 2021-10-10 发布于广东
- 举报
;目录;算法简介;;;;;;;;算法原理;抽象
鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I 在N维空间的位置表示为矢量Xi=(x1,x2,…,xN),飞行速度表示为矢量Vi=(v1,v2,…,vN).每个粒子都有一个由目标函数决定的适应值(fitness value),并且知道自己到目前为止发现的最好位置(pbest)和现在的位置Xi.这个可以看作是粒子自己的飞行经验.除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbest是pbest中的最好值).这个可以看作是粒子同伴的经验.粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。
;PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。
在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。;Vi 是粒子的速度;
pbest和gbest如前定义;
rand()是介于(0、1)之间的随机数;
Xi 是粒子的当前位置。
c1和c2是学习因子,通常取c1= c2=2
在每一维,粒子都有一个最大限制速度Vmax,如果某一维的速度超过设定的Vmax ,那么这一维的速度就被限定为Vmax 。( Vmax 0)以上面两个公式为基础,形成了后来PSO
的标准形式; 从社会学的角度来看,公式(1)的第一部分称为记忆项,表示上次速度大小和方向的影响;公式第二部分称为自身认知项,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式的第三部分称为群体认知项,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是
通过自己的经验和同伴中最好的经验来决定下一步的运动。
以上面两个公式为基础,形成了后来PSO 的标准形式; 标准PSO算法的流程:
Step1:初始化一群微粒(群体规模为m),包括随机位置和速度;
Step2:评价每个微粒的适应度;
Step3:对每个微粒,将其适应值与其经过的最好位置pbest作比较,如果较好,则将其作为当前的最好位置pbest;
Step4:对每个微粒,将其适应值与其经过的最好位置gbest作比较,如果较好,则将其作为当前的最好位置gbest;
Step5:根据(2)、(3)式调整微粒速度和位置;
Step6:未达到结束条件则转Step2。; 1998年shi等人在进化计算的国际会议上发表了一篇论文《A modified particle swarmoptimizer》对前面的公式(1)进行了修正。引入惯性权重因子。;;; 迭代终止条件根据具体问题一般选为最大迭代次数Gk或(和)微粒群迄今为止搜索到的最优位置满足预定最小适应阈值; 方程(2)和(3)中pbest和gbest分别表示微粒群的局部和全局最优位置,当C1=0时,则粒子没有了认知能力,变为只有社会的模型(social-only):
被称为全局PSO算法.粒子有扩展搜索空间的能力,具有
较快的收敛速度,但由于缺少局部搜索,对于复杂问题
比标准PSO 更易陷入局部最优。
; 当C2=0时,则粒子之间没有社会信息,模型变为
只有认知(cognition-only)模型:
被称为局部PSO算法。由于个体之间没有信息的交流,整个群体相当于多个粒子进行盲目的随机搜索,收敛速度慢,因而得到最优解的可能性小。;参数有:群体规模m,惯性因子 ,学习因子c1和c2最大速度Vmax,迭代次数Gk。
群体规模m 一般取20~40,对较难或特定类别的问题可以取到100~200。
最大速度Vmax决定当前位置与最好位置之间的区域的分辨率(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒子不能在局部极小点之外进行足够的探索,会陷入到局部极值区域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒度的目的。
;权重因子
包括惯性因子 和学习因子c1和c2。 使粒子保持着运动惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。C1和c2代表将每个粒子推向Pbest和gbest位置的统计加速项的权值。较低的值允许粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲向或越过目标区域。;参数设置
如果令c1=c2=0, 粒子将一直以当前速度的飞行,直到边界。很难找到最优解。如果 =0,则速度只取决于当前位置和历史最好位置,速度本身没有记忆性。假设一个粒子处在全局最好位置,它将保持静止,其他粒子则飞向它的最好位置和全局最好位置的加权中心。粒子将收缩到当前全局最好位置。
原创力文档

文档评论(0)