张浩然
责任编辑:苏向阳
文章发表于微信公众号【运筹OR帷幄】:优化 | 粒子群算法介绍
编者按:
粒子群算法是计算数学中用于解决最优化的搜索算法,也是最为经典的智能算法之一。应用主要是在工程和计算机科学还有行为管理研究科学里面。通过阅读这篇文章,你将了解粒子群算法的概念,优缺点以及发展方向。
1、简介
粒子群算法(Particle Swarm Optimization,简称PSO)是1995年Eberhart博士和Kennedy博士一起提出的[1]。粒子群算法是通过模拟鸟群捕食行为设计的一种群智能算法。区域内有大大小小不同的食物源,鸟群的任务是找到最大的食物源(全局最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自位置的信息,让其他的鸟知道食物源的位置最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,问题收敛。学者受自然界的启发开发了诸多类似智能算法,如蚁群算法[2]、布谷鸟搜索算法[3]、鱼群算法[4]、捕猎算法等等[5]。有兴趣的读者可以深入了解一下。
2、算法策略
粒子群算法的目标是使所有粒子在多维超体(multi-dimensional hyper-volume)中找到最优解。首先给空间中的所有粒子分配初始随机位置和初始随机速度。然后根据每个粒子的速度、问题空间中已知的最优全局位置和粒子已知的最优位置依次推进每个粒子的位置。随着计算的推移,通过探索和利用搜索空间中已知的有利位置,粒子围绕一个或多个最优点聚集或聚合。该算法设计玄妙之处在于它保留了最优全局位置和粒子已知的最优位置两个信息。后续的实验发现,保留这两个信息对于较快收敛速度以及避免过早陷入局部最优解都具有较好的效果。这也奠定了后续粒子群算法改进方向的基础。
3、算法步骤
基础粒子群算法步骤较为简单。粒子群优化算法是由一组粒子在搜索空间中运动,受其自身的最佳过去位置pbest和整个群或近邻的最佳过去位置gbest的影响。每次迭代粒子i的第d维速度更新公式为:
粒子i的第d维位置更新公式为: