粒子群算法

粒子群算法

  粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation)。
  源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解.
  PSO的优势:在于简单容易实现并且没有许多参数的调节。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
  鸟(粒子)根据自身经验(自己经过的最高点)、以及所有鸟经验(所有粒子中的最高点)进行探索,每次飞的时间是1(迭代1次),速度是v,这一次飞过的路程 s=v*1(x的变化量),假如有奖励就过去,没有就停留在原地,再结合自身经验以及别人的经验思考,下一秒我要怎么飞比较好。 由于每次飞行时间是固定的,因此 位移=速度。

标准PSO算法的流程

  鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子i在N维空间的位置表示为矢量Xi=(x1,x2,…,xN),飞行速度表示为矢量Vi=(v1,v2,…,vN)。
  每个粒子都有一个由目标函数决定的适应值(fitness value),并且知道自己到目前为止发现的最好位置(pbest)和现在的位置Xi。这个可以看作是粒子自己的飞行经验。
  除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbest是pbest中的最好值),这个可以看作是粒子同伴的经验。
  粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。
  1)初始化一群微粒(群体规模为N),包括随机位置和速度;
  2)评价每个微粒的适应度;
  3)对每个微粒,将其适应值与其经过的最好位置pbest作比较,如果较好,则将其作为当前的最好位置pbest;
  4)对每个微粒,将其适应值与其经过的最好位置gbest作比较,如果较好,则将其作为当前的最好位置gbest;
  5)根据公式(2)、(3)调整微粒速度和位置;
  6)未达到结束条件则转第2)步。
  迭代终止条件根据具体问题一般选为最大迭代次数Gk或(和)微粒群迄今为止搜索到的最优位置满足预定最小适应阈值。
  参考资料:
https://blog.csdn.net/myarrow/article/details/51507671
http://lib.csdn.net/article/ai/62101

主要的参数

  1)群体规模N,惯性因子 ,学习因子c1和c2,最大速度Vmax,最大迭代次数Gk。
  2)群体规模N:一般取20~40,对较难或特定类别的问题可以取到100~200。
  3)最大速度Vmax:决定当前位置与最好位置之间的区域的分辨率(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒子不能在局部极小点之外进行足够的探索,会陷入到局部极值区域内。这种限制可以达到防止计算溢出、决定问题空间搜索的粒度的目的。
  4)权重因子:包括惯性因子和学习因子c1和c2。使粒子保持着运动惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。c1和c2代表将每个粒子推向pbest和gbest位置的统计加速项的权值。

与遗传算法的对比

  优点:粒子群算法相比于遗传算法更加的简单易懂,其调节参数较少。在大多数情况下,所有粒子可能比遗传算法中的进化个体以更快速度收敛于最优解。
  不同点:PSO由于不需要编码,没有GA算法中由于编码带来的求解精度限制.在GA算法中,染色体之间共享信息,所以整个种群的移动是比较均匀地向最优区域移动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值