PSO 算法
1. 引言
粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有 Eberhart 博士
和 kennedy 博士发明。源于对鸟群捕食的行为研究。
PSO 同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠
代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation),而是粒子在
解空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍
同遗传算法比较,PSO 的优势在于简单容易实现并且没有许多参数需要调整。目前已广
泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。
2. 背景: 人工生命
"人工生命"是来研究具有某些生命基本特征的人工系统. 人工生命包括两方面的内容
1. 研究如何利用计算技术研究生物现象
2. 研究如何利用生物技术研究计算问题
我们现在关注的是第二部分的内容. 现在已经有很多源于生物现象的计算技巧. 例如, 人
工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的.
现在我们讨论另一种生物系统- 社会系统. 更确切的是, 在由简单个体组成的群落与环境
以及个体之间的互动行为. 也可称做"群智能"(swarm intelligence). 这些模拟系统利用局部信
息从而可能产生不可预测的群体行为
例如 floys 和 boids, 他们都用来模拟鱼群和鸟群的运动规律, 主要用于计算机视觉和计算机
辅助设计.
在计算智能(computational intelligence)领域有两种基于群智能的算法. 蚁群算法(ant
colony optimization)和粒子群算法(particle swarm optimization). 前者是对蚂蚁群落食物采集
过程的模拟. 已经成功运用在很多离散优化问题上.
粒子群优化算法(PSO) 也是起源对简单社会系统的模拟. 最初设想是模拟鸟群觅食的过
程. 但后来发现 PSO 是一种很好的优化工具.
3. 算法介绍
如前所述,PSO 模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在
这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食
物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近
的鸟的周围区域。
PSO 从这种模型中得到启示并用于解决优化问题。PSO 中,每个优化问题的解都是搜
索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应
值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随
当前的最优粒子在解空间中搜索