文档介绍:粒子群优化算法综述
尹兆杰
(内蒙古民族大学数学学院内蒙古通辽 028000)
摘要粒子群优化( PSO) 算法是一种基于群智能方法的演化计算技术,通过粒子间的相互作用发现复杂搜索空间中的最优区域,优势在于简单容易实现而且功能强大。由于它简单易操作的特点,PSO 一提出,立刻引起演化计算等领域学者们的广泛关注,并在函数优化、神经网络训练、工业系统优化和模糊系统控。制等领域得到了广泛的应用。本文从粒子群优化算法的理论分析切入,阐述了PSO 算法的基本原理、若干类改进的PSO 算法及其应用。
关键词粒子群算法算法改进应用
引言
Kennedy和Eberhart[1、2]于1995 年提出粒子群优化算法( Particle Swarm Optimization,PSO) ,它是一种基于种群智能方法的演化计算技术。因受鸟类捕食行为的启发,设想有一群鸟在随机搜寻一块食物,则找到食物的最简单有效的方法就是搜寻距离食物最近的鸟的周围区域。PSO 从这种模型中得到启示并用于优化问题。PSO 一提出,其简单易操作的特点立刻引起演化计算等领域学者们的广泛关注。PSO 在解决许多GO 问题上被证明是一种有效的方法; 在函数优化、神经网络训练、工业系统优化和模糊系统控制等领域得到了广泛的应用。
2. 算法原理
在粒子群优化算法中,每个个体称为一个“粒子”,其实每个粒子代表着一个潜在的解。例如,在一个D 维的目标搜索空间中,每个粒子看成是空间里的一个点。设群体由m 个粒子构成。M 也被称为群体规模,过大的m 会影响算法的运算速度和收敛性。
设为第个粒子的维位置矢量,根据事先设定的适应值函数(与要解决的问题有关)计算当前的适应值, 即可衡量粒子位置的优劣; 为粒子的飞行速度,即粒子移动的距离; 为粒子位置迄今为止搜索到的最优位置;为整个粒子群迄今为止搜索到的最优位置。在每次迭代中,粒子根据以下式子更新速度和位置:
其中是迭代次数,为之间的随机数,这两个参数是用来保持群体的多样性。为学习因子,也称为加速因子,使粒子具有自我总结和向群体中优秀个体学习的能力, 从而向自己的历史最优点以及群体历史最优点靠近。这两个参数对粒子群算法的收敛起的作用不是很大,但如果适当调整这两个参数,可以减少局部最小值的困扰
,当然也会使收敛速度变快。由于粒子群算法中没有实际的机制来控制粒子速度,所以有必要对速度的最大值进行限制,但速度超过这个阈值时,设其为这个参数被证明是非常重要的,因为值太大会导致粒子跳过最好解, 但太小的话容易导致对搜索空间的不充分搜索。此外速度最小取值为位置的取值范围为
式的第二项是“认知”部分,代表了粒子对自身的学习。而公式的第三项是“社会”部分,代表着粒子间的协作。式正是粒子根据它上一次迭代的速度、它当前位置和自身最好经验与群体最好经验之间的距离来更新速度。然后粒子根据式飞向新的位置。
从此可得到粒子群优化算法是主要遵循了五个基本原则,定义为:
邻近原则:粒子必须能够执行简单的空间和实践计算;
品质原则:粒子群必须能够对周围环境的品质因素有所反应;
多样性反应原则:粒子群不应该在过于狭窄的范围内活动;
定性原则:粒子群不应该在每次环境改变的时候都改变自身的行为;
适应性原则:在能够接受的计算量下,粒子群能够在适当的时候改变他们的行