目录
1 粒子群算法简介
1.1 与遗传算法对比
1.2 基本思想
1.3 相关概念
2 算法流程及参数
2.1 算法流程
2.2 算法参数
1 粒子群算法简介
粒子群优化算法是模仿生物社会系统,更确切地说,是由简单个体组成的群体与环境以及个体之间的互动行为,是一种基于群智能方法的进化计算技术,它由Eberhant 博士和 Kennedy 博士等于 1995年提出,源于对鸟群捕食的行为研究。粒子群算法同遗传算法类似,是一种基于群体迭代的优化工具。
1.1 与遗传算法对比
- 相同点:系统初始化为一组随机解,通过迭代搜寻最优值。
- 不同点:没有遗传算法用的交叉以及变异,而是粒子在解空间追随最优的粒子进行搜索。
- 优点:更简单、容易实现并且没有许多参数需要调整。
因为以上特点,粒子群算法一提出短短几年时间便获得了很大的发展,出现了大量的研究成果,并被应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
1.2 基本思想
粒子群算法源于对鸟群捕食行为的模拟。一群鸟在一个固定区域里随机搜索食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前自己所处的位置离食物还有多远,那么找到食物的最优策略是什么?最简单有效的方法就是搜寻目前离食物最近的鸟的周围区域。粒子群算法从这种模型中得到启示并用于解决优化问题。
1.3 相关概念
在粒子群算法中,每个优化问题的解都是搜索空间中的一只鸟,称为“粒子”。所有的粒子看成搜索空间中没有质量和体积的点,而且都有一个适应值,这个适应值根据被优化的函数确定。每个粒子还有一个速度决定它们飞翔的方向和距离,这个速度根据它自己的飞行经验和同伴的飞行经验进行动态调整。
优化问题的解 | 鸟,称为“粒子” |
适应值 | 优化函数确定 |
速度 | 自己的飞行经验和同伴的飞行经验进行动态调整 |
粒子群算法初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过两种经验来更新自己。自己的飞行经验就是粒子经历过的最好位置(有最好的适应值),即本身所找到的最优解,这个解叫做个体极值。同伴的飞行经验就是群体所有粒子经历过的最好位置,即整个种群目前找到的最优解,这个叫做全局极值。另外,也可以不用整个群体而只用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。
自己飞行经验 | 粒子经历过的最好位置 | 本身找到的最优解(个体极值) |
同伴飞行经验 | 所有粒子经历过的最好位置 | 整个种群找到的最优解(全局极值) |
部分同伴飞行经验 | 部分粒子经历过的最好位置 | 部分个体找到的最优解(局部极值) |
注:最好位置,即有最好的适应值。
假设在一个D维的目标搜索空间中有m个粒子组成一