粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)

  • 随机全局优化技术
  • 概念简明、实现方便、收敛速度快、设置参数少
  • 高效搜索算法
  • 应用与函数优化、神经网络训练、模糊系统控制等领域

      模拟鸟群捕食的行为过程,鸟群会同步在某个时刻突然大量的聚集,或者突然改变飞行方向,或者突然散开,各自向不同的方向飞去,鸟群中个体之前努力保持最优距离的结果。

核心思想:通过群体中个体之前的相互写作和信息共享来寻找最优解

      在粒子群算法中,每只鸟作为群体(swarm)中的一个个体,被抽象为没有质量和体积的粒子(particle),并延申d维空间,粒子的群体个数为n;
      则第i(i = 1,2,…,n)个粒子在d维空间表示为矢量xi = (xi1, xi2, … xid)。
      飞行速度表示为矢量vi = (vi1, vi2, … vid),决定粒子在搜索空间内固定迭代次数的位移。
      优化问题中的一个可能解是由改算法中每个粒子来诠释的,诠释解的好坏则由适应度函数来衡量,每一个粒子都有一个由目标函数决定的适应值,PSO随机给一群粒子和粒子的速度赋值,xi的好坏由适应度函数值的大小权衡,适应度函数值是根据xi代入一个目标函数进行计算得出的。
      每个粒子知道自己到目前位置发现的最好的位置(个体极值pbest)和现在的位置xi,可以看作粒子自己的飞行经验。每个粒子还知道目前为止整个种群中所有粒子发现的最好位置(gpest)可以看作是同伴的经验。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动

      初始化一群随机粒子(随机解),通过迭代来找到最优解,在每次迭代前通过跟踪两个“极值”来更新自己
更新公式(原始)
在这里插入图片描述
c1、c2:学习因子,通常取2(用于调整粒子的自身信息和全局信息在其运动过程中所起的作用);
r1、r2: 随机数,取值范围(0,1);

由每一个粒子的适应度对粒子的全局极值gbest和个体极值pbest进行更新
在这里插入图片描述
在这里插入图片描述
限制最大速度为vmax
粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第1张图片

可以从原始公式看出,粒子i新速度有三个部分共同决定:

  • 粒子i当前位置与其最优位置之间的距离;
  • 粒子i当前位置与群体最优位置之间的距离;
  • 粒子i上一时刻的速度(惯性)

粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第2张图片

粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第3张图片

算法流程
粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第4张图片
为改变算法的收敛性能,在原始公式v的位置引入惯性权重w(去继承原本的速度),其大小决定对粒子当前速度继承的多少,

惯性权重线性递减法
粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第5张图片
惯性权重非线性变化法
粒子群(Particle Swarm Optimization PSO)算法(优化进化课程随笔)_第6张图片
在这里插入图片描述
平整度的一个指标。

群体n:

  • 过小,陷入局部最优的可能性很大,
  • 过大,导致计算时间的大幅度增加

你可能感兴趣的:(优化进化课程随笔)