粒子群算法简单介绍

原理

粒子群算法(也称粒子群优化算法(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. 社会部分,粒子有向群体或领域历史最佳位置逼近的趋势。

特点

  • 粒子群算法是一种高效的并行搜索算法。
  • 粒子群算法保留了基于种群的全局搜索策略,操作模型比较简单,避免了复杂的遗传操作。
  • 保留了每个粒子的个体历史极值。
  • 算法在后期收敛速度缓慢。
  • 粒子群算法对种群大小不十分敏感。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:彭帅 学号:17021210850 【嵌牛导读】:蚁群算法(ACO)是受自然界中蚂蚁搜索食物行为的启发,是一...
    重露成涓滴阅读 38,781评论 0 8
  • 算法背景 粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启...
    Muggle01阅读 9,840评论 0 5
  • 多目标优化问题详解 2017年9月2日byxyjisaw 生活中 ,许多问题都是由相互冲突和影响的多个目标组成。人...
    jacke121阅读 10,534评论 0 3
  • 三峡人家(龙进溪) 三峡人家是第一个自费景点。未上船之前,看到行程上写道,三峡人家或屈原故里任选一个。上了船后,两...
    笑对红尘阅读 4,134评论 2 6
  • 你看我 像一只尖酸刻薄的蝼蚁 在这一刻 把所有的利齿爪牙伸出来 我想喝血 吞咽他们身体里的丑陋,欲望,自私 让我膨...
    三势阅读 1,677评论 1 8