当前位置:首页 > 百科

微粒群算法

微粒群算法,又称粒子群优化(Particle Swarm Optimization, PSO),是由J. Kennedy和R. C. Eberhart等于1995年开发的一种演化计算技术,来源于对一个简化社来自会模型的模拟。其中"群(swarm)"来360百科源于微粒群符合M. 坐乐交纪出代影及M. Millonas在开发应生长服美层用于人工生命(artificial life)的模型时所提出的群体智能的5个基本原则。"粒子(p宽静革article)"是一个折衷的选择,因为既需要将群体中的成员描述为没有质量、没有体控犯县书车门积的,同时也需要描述它的速度和加速状态。

  • 中文名称 微粒群算法
  • 外文名称 Particle Swarm Optimization
  • 又称 粒子群优化
  • 缩写 PSO

起源

  PSO算法最初是为了图形化的模拟鸟群优美而不可预测的运动。而通过对动物社会行为的观察,发现在群体中对信息的社会共享提供一个演化的优势,斤己次改米首银源胶并以此作为开发算法的基来自础。通过加入近邻的速度匹配、并曲雨唱阻济心考虑了多维搜索和根据距离的加速,形万考灯态蛋李数重满措充成了PSO的最初版本。之后引入了惯性权重w来更好的控制开发(exploitation)和探索(exploration),形成了标准版本。

原理

  PSO算法是基于群体的,根据对环境的适应度汉格织反块入回益将群体中的个体移动律宁德还运苏食富到好的区域。然而它不对个体使用演化算法,而照六绝巴起是将每个个体看作是D维搜索空间中的一个没有体积的微粒(点),在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。第i个微粒表示为Xi = (xi1,xi2,…,xiD),它经历过的最好位置(有最好的适应值)记为Pi = (pi1,pi2,…,piD),也称为pbest。在群体所有微粒经历过的最好位置的索引号用符号g表示,即Pg,也称为gbest。微粒i的速度用Vi = (vi1,vi2,…,viD)表示。对每一代,它的第d维(1 ≤ d ≤ D)根据如下方程进行变化:

  vid = w*360百科vid+c1*rand在注又军怕编世()*(pid-xid)+c2*Rand()*(pgd-xid)(1a)

  xid = xid+vi亮官到更d (1b)

  其中w为被新积群肉混惯性权重(inertia weight),c1和c2为加速常数(accele倍酸清航ration constants),ran广胜d()和Rand()为两个在[0,1]范围里变剧组清破么跑害确饭化的随机值。

  此外,微粒的速度Vi被一个最大速度Vmax所限制。如果当前对微粒的加速导致它的在某维的速度vid超过该维的最大速度vmax,d,则该维的速度被限制为该维最大速度vmax,d。

  对公式(1a),块款步陈甲殖第一部分为微粒先前行为的惯性,第二部分七读为"认知(cognition)"部分,表示微粒本身的思考;第三部分为"社会(social)"部分,表示微粒间的信息共享与相互合作。

  "认知"部分可以由Thorndike的效应法则(law of effect)所解释,即一个宁宁攻答钢检操旧得到加强的随机行为在将来更有可能出现。富决于展元罪思交这里的行为即"认知",并假设获得正确的知识是得到加强的,这样的一个模型假定微粒被激励着去减小误差。

  "社会"部分可以由Bandura的替代强化察赶得(vicarious reinforcement)所解释。根据该理论的预期,当观察者观察到一个模型在加强某一行为时,将增加它实行该行为的几率。即微粒本身的认知将被其它微粒所模仿。

  PSO算法使用如下心理学假设:在寻求一致的认知过程中,个体往往记住自身的信念,并同时考虑同事们的信念。当其察觉同事的信念较好的时候,将进行适应性地调整。

算法流程

  a). 初始化一群微粒(群体规模为m),包括随机的位置和速度;

  b). 评价每个微粒的适来自应度;

  c). 对每个微粒,将它的适应值和它经历过的最好位360百科置pbest的作比较,如果较好,则将其作为当前的最好位置pbest;

  d). 对每个计车收越挥丝位称木目微粒,将它的适应值和全局所经历最好位置gbest的作比较,如果较好,则重新设置gbest的索引号;

  e). 根据方程⑴变化微粒的速度和位置;

  f). 如未达到结束条件(通常为足够好的适应值或达到一个预设最大代数Gmax),回到b)。

算法参数

  PSO参数包括:群体规模m,惯性权重w,加速常数c1和c2,最大速度Vmax,最大代数Gmax。

  Vmax决定在当前位置与最好位置之间的区域的分辨率(或精度)。如果Vmax太高,微粒可能会飞过好解,如果Vmax太小,微粒不能进行足够的探索,导致陷入局部优值。该限制有三个目的:防止计算溢出;实现人工学习和态度转变;决定问题空间搜索的粒度。

  惯性权重w使微粒保板阳亲兵经铁岁注聚奏持运动的惯性,使其有扩展搜索空间的趋势,有能力探索新的区域。

其它相关

  加速常数c1和c2代表将每个微粒推向pbest和gbest位置的统计加速项概识的权重。低的值允许微粒在被拉回来之前可以在目标缩有双件育迅由种左五区域外徘徊,而高的值导致微粒突然的冲向或者越过目标区域。

  如果没有后两部分,即c1 = c2 = 0,微粒将一直以当前的速度飞行,直到到达边界。由于它只能搜索有限的区域,将很难找到好的解。

  如果创术没有第一部分,即w = 0,则速度只取决于微粒当前的位置和它们历史最好位置pbest和gbest,速度本身没有记忆性。假设一个微粒位于全局最好位置,它将保持静止。而其它微粒则飞向它本身最好位置pbest和全局最好位置gbest的加权中心。在这种条件下,微粒群将统计的收缩到当前的乙死兰格轮全局最好位置,更象一个局部算边值被翻唱府固高以终法。

  在加上第一部分后,微粒有扩展搜索空间的趋势,即第一部分有全局搜索的能力。这也使得w的作用为针对不同的搜索问题,纸居推阻调整算法全局和局部搜索能力的平衡。

  如果没有第二部分,即c1 = 0,则微粒没有认知能力,也就是"只有社会(social-only)"的模型。在微粒的相互作用下,有能力到达新的搜索空间。它的收敛速度比标准版本更快,但是对复杂问题,比标准版本更容易陷入局部优值点。

  如果没有第三部分,即c2 = 0,则微粒之间没有社会信息共享,也就是"只有认知(cognition-only)"的模型。因为个体间没有交互,一个规模为m的群体等价于m个单术源乡基专刑粒响走育个微粒的运行。因而得到解的几率非常小。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:数学发展史
下一篇:微糙三脉紫菀

相关文章