美文网首页
粒子群算法简单介绍

粒子群算法简单介绍

作者: 学习编程王同学 | 来源:发表于2018-11-08 17:50 被阅读46次

    原理

    粒子群算法(也称粒子群优化算法(particle swarm optimization, PSO)),模拟鸟群随机搜索食物的行为。粒子群算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,叫做“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定它们“飞行”的方向和距离。

    粒子群算法初始化为一群随机的粒子(随机解),然后根据迭代找到最优解。每一次迭代中,粒子通过跟踪两个极值来更新自己:第1个是粒子本身所找到的最优解,这个称为个体极值;第2个是整个种群目前找到的最优解,这个称为全局极值。也可以不用整个种群,而是用其中的一部分作为粒子的邻居,称为局部极值。

    假设在一个D维搜索空间中,有N个粒子组成一个群落,其中第i个粒子表示为一个D维的向量:

    X_i = (x_{i1}, x_{i2}, \ldots, x_{iD}), i=1,2,\ldots ,N

    第i个粒子的速度表示为:

    V_i = (v_{i1}, v_{i2}, \ldots, v_{iD}), i=1,2, \dots, N

    还要保存每个个体的已经找到的最优解p_{best},和一个整个群落找到的最优解g_{best}

    第i个粒子根据下面的公式更新自己的速度和位置:

    v_{id} = w \times v_{id} + c_1 r_1 (p_{id}-x_{id}) + c_2 r_2 (p_{gd}-x_{id}) ,(1)

    x_{id} = x_{id} + v_{id}

    其中,p_{id} 是个体已知最优解,p_{gd} 是种群已知最优解,w 为惯性权重,c_1, c_2 为学习因子(或加速常数 acceleration constant),r_1,r_2 是[0,1]范围内的随机数。

    式(1)由三部分组成:

    1. 惯性或动量部分,反应粒子的运动习惯。
    2. 认知部分,粒子有向自身历史最佳位置逼近的优势。
    3. 社会部分,粒子有向群体或领域历史最佳位置逼近的趋势。

    特点

    • 粒子群算法是一种高效的并行搜索算法。
    • 粒子群算法保留了基于种群的全局搜索策略,操作模型比较简单,避免了复杂的遗传操作。
    • 保留了每个粒子的个体历史极值。
    • 算法在后期收敛速度缓慢。
    • 粒子群算法对种群大小不十分敏感。

    相关文章

      网友评论

          本文标题:粒子群算法简单介绍

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