美文网首页生信算法生物信息学与算法
优化算法笔记(四)粒子群算法(2)

优化算法笔记(四)粒子群算法(2)

作者: stronghorse | 来源:发表于2019-06-26 23:46 被阅读21次

    3.粒子群算法模型

    介绍完了粒子群算法的流程,再来详细介绍一下粒子群算法的模型。
      鸟群有三个决定其搜索结果的参数
      C1:自我学习因子
      C2:全局学习因子
      W:惯性系数
      maxV:最大速率。
      对于每只鸟,有两个属性:
      位置:X_i^t=(x_{i,1}^t,x_{i,2}^t,...,x_{i,D}^t)
      速度:V_i^t=(v_{i,1}^t,v_{i,2}^t,...,v_{i,D}^t)
      其中t表示第t次迭代(第t次开会),i表是这只鸟的序号是i,D表示搜索空间的维度,对于鸟群来说D=2(在平面内搜寻)。
      其速度更新公式如下:
      v_{i,d}^{t+1}=v_{i,d}^t+r_1C_1(P_{i,d}^t-x_{i,d}^t)+r_2C_2(G_{i,d}^t-x_{i,d}^t)
       r_1,r_2表示均匀分布在(0,1)内的随机数。
      位置更新公式如下:
      x_{i,d}^{t+1}=x_{i,d}^t+v_{i,d}^{t+1}

    4.实验初步

    上面都是些什么鬼,完全看不懂……,很正常,下面我们来个例子看看上面那些都是什么东西。
      C1:自我学习因子,就是一只鸟飞向自己到过的最优位置的权重,可以理解为C1越大,该鸟飞向自己到过的最优位置的意愿越强烈。
      C2:全局学习因子,也叫社会学习因子,即一只鸟飞向群体到过的最优位置的权重, C2越大,该鸟飞向群体到过的最优位置的意愿越强烈。


      如上图,假设随机变量r1=r2=1,如果该鸟当前速度V=0,C1=C2=1时,,则该鸟的速度为A->B,它将飞到B点,若C1=0,C2=1,则该鸟将飞到P点,若C1=1,C2=0,则鸟将飞到G点。

      一般,取C1=C2=2,由于r1和r2为(0-1)的随机数,在速度V=0的情况下,该鸟可能从点A飞到平行四边形ADEC内的任一位置,其中AG=GD,AP=PC。点B为该鸟飞向的期望位置。
      W为惯性系数,即鸟在下一次飞行时将会以上一次的速度为基础,根据自己的意愿的出最终的速度。
      举个简单的例子,搜索平面内距点M最近的点。这是一个二维的问题,假设M的坐标为(a,b),我们可以该问题转化为求使的值最小的一组解,那么粒子群算法的适应度函数为。
      实验开始了
    参数
    问题维度(维度) 2
    鸟的数量(种群数) 20
    开会次数(最大迭代次数) 50
    C1 2
    C2 2
    W 1
    maxV 5
    取值范围 (-100,100)

    为了方便求解我们设M点为原点,即a=b=0。


    此时问题为在上图的区域内寻找距原点最近的点的坐标。我们看一下粒子群算法的寻找过程。

      可以发现所有的小鸟都向着我们的目标点不断的靠近。它们最终收敛在了一个很小的范围内。我们所得到的最终的结果是(0.01559301434688,-0.113289020661651),该点距原点距离为的平方为0.014876507,虽然很近了,但这可不是一个较好的结果。
      虽然小鸟们已经聚集在了最优点附近的小范围内,但却没有进一步向原点靠近。这是为什么呢,下一节我们一起来研究一下。
    上一篇 优化算法笔记(三)粒子群算法(1)
    下一篇 优化算法笔记(五)粒子群算法(3)

    相关文章

      网友评论

        本文标题:优化算法笔记(四)粒子群算法(2)

        本文链接:https://www.haomeiwen.com/subject/omrkcctx.html