百度定义

粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统(Multiagent Optimization System, MAOS)。粒子群优化算法是由Eberhart博士和kennedy博士发明。

算法流程

粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置 ,速度代表移动的快慢,位置代表不同的解。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值 ,找到整个粒子群最优的个体极值作为当前全局最优解 ,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。

粒子群算法的思想相对比较简单,主要分为:

1、初始化粒子群;

2、评价粒子,即计算适应值;

3、寻找个体极值 ;

4、寻找全局最优解 ;

5、修改粒子的速度和位置;

6、跳转至2,继续执行。

1、初始化

首先设置速度区间。位置信息即为整个搜索空间,在速度区间和搜索空间上随机初始化速度和位置。设置群体规模 。

2、个体极值与全局最优解

个体极值为每个粒子找到的历史上最优的位置信息,并从这些个体历史最优解中找到一个全局最优解。

3、更新速度和位置的公式

更新公式为:

其中, 称为惯性因子, 和 称为加速常数,一般取 。 表示区间 上的随机数。 表示第 个变量的个体极值的第 维。 表示全局最优解的第 维。

4、终止条件

有两种终止条件可以选择,一是最大代数: ;二是相邻两代之间的偏差在一个指定的范围内即停止。我们在实验中选择第一种。

与遗传算法的比较

共同点

①种群随机初始化。

②对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。

③种群根据适应值进行复制。

④如果终止条件满足的话,就停止,否则转步骤② 。

从以上步骤,我们可以看到PSO和遗传算法有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。但是,PSO没有遗传操作如交叉(crossover)和变异(mutation),而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。

不同点

与遗传算法比较,PSO的信息共享机制是很不同的。在遗传算法中,染色体(chromosomes)互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。在PSO中, 只有全局最优解给出信息给其他的粒子, 这是单向的信息流动。整个搜索更新过程是跟随当前最优解的过程。与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。

优缺点

演化计算的优势,在于可以处理一些传统方法不能处理的。例子例如不可导的节点传递函数或者没有梯度信息存在。

但是缺点在于:

1.在某些问题上性能并不是特别好。

2.对于有多个局部极值点的函数,容易陷入到局部极值点中,得不到正确的结果。

3.由于缺乏精密搜索方法的配合,PSO算法往往不能得到精确的结果

最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题。

参考链接:

https://baike.baidu.com/item/%E7%B2%92%E5%AD%90%E7%BE%A4%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95/2500389?fromModule=lemma_inlink&fromtitle=%E7%B2%92%E5%AD%90%E7%BE%A4%E7%AE%97%E6%B3%95&fromid=1733544