粒子群优化算法及其相关研究综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
粒子群优化算法及其相关研究综述
摘要:粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。本文围绕粒子群优化算法的原理、特点、改进与应用等方面进行全面综述,侧重于粒子群的改进算法,简短介绍了粒子群算法在典型理论问题中的应用,最后对其未来的研究提出了一些建议及研究方向的展望。
关键词:粒子群优化;PSO;群智能优化;智能算法
Abstract: Particle swarm optimization is a new swarm intelligence-based heuristic global search algorithm, through competition and collaboration between the particles in order to achieve the advantages of looking at complex global search space. It has easy to understand, easy to implement, strong global search ability and other characteristics, much attention in the field of science and engineering, has become one of the fastest growing intelligent optimization algorithms. This paper focuses on aspects of the principle of particle swarm optimization, characteristics, improvement and application of a comprehensive review, focusing on improved PSO algorithm, a brief description of the particle swarm algorithm in a typical problem in the theory, and finally presented its future research Looking for some advice and research directions.
Key Words: Particle Swarm optimization; PSO; Swarm intelligence optimization;Intelligent algorithm
1 引言
粒子群算法(Particle Swarm optimization,PSO)的基本概念源于对于鸟群捕食行为的简化社会模型的模拟,由Kenndy和Eberhart等人提出[1-2],1995年IEEE国际神经网络学术会议发表了题为“Particle Swarm Optimization”的论文,标志着PSO算法诞生。它同遗传算法类似,通过个体间的协作和竞争实现全局搜索系统初始化为一组随机解,称之为粒子。通过粒子在搜索空间的飞行完成寻优,在数学公式中即为迭代,它没有遗传算法的交叉及变异算子,而是粒子在解空间追随最优的粒子进行搜索。目前,粒子群优化算法应用于神经网络的训练、函数优化、多目标优化等领域并取得了较好的效果,有着广阔的应用前景。
粒子群算法本质上是一种随机搜索算法,并能以较大的概率收敛于全局最优解。实践证明,它适合在动态、多目标优化环境中寻优,与传统的优化算法相比较具有更快的计算速度和更好的全局搜索能力。但是,PSO的发展历史尚短,在理论和实践方面还存在一些不足。粒子群优化算法根据全体粒子和自身粒子的搜索经验向着最优解的方向发展,在进化后期收敛速度变慢,同时,算法收敛精度不高,尤其是对于高维度极值的复杂优化问题。
1.1 粒子群算法原理
PSO 从鸟群聚集模型[3]中得到启示并用于解决优化问题。PSO 中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索[1]。
PSO 初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。
设在一个D 维空间中,由m 个粒子组成的种群1(,...,,...,)i D X x x x =,其中第i 个
粒子位置为12(,,...,)T i i i iD x x x x =,其速度为12(,,...,,...,)T i i i id iD V v v v v =。它的个体极
值为12(,,...,)T i i i iD p p p p =,种群的全局极值为12(,,...,)T g g g gD p p p p =,按照追随
当前最优例子的原理,粒子i x 将按(1)式、(2)式改变自己的速度和位置[4]。
))()()(())()()(()()1(2211t x t p t r c t x t p t r c t v t v ij gj ij ij ij ij -+-+=+ (1)
)1()()1(++=+t v t x t x ij ij ij (2)
式中j=1,2,…,D ,i=1,2,…m ,m 为种群规模,t 为当前进化代数,12,r r 为分布于[0,1]之间的随机数[5];12,c c 为加速常数。从式(1)中可知,每个粒子的速度由三部分组成:第一部分是粒子在上一次迭代中的速度,反映了粒子的运动“习惯(habit)”,代表粒子有维持自己先前速度的趋势;第二部分为“认知(cognition)”部分,反映了粒子对自身历史经验的记忆(memory)或回忆(remembrance),代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会(social)”部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体或邻域历史最佳位置逼近的趋势。
1.2 粒子群算法流程
PSO 的算法流程如下所述,图1为PSO 算法的流程图:
(1)初始化所有的个体(粒子),初始化它们的速度和位置,并且将个体的历史最优gBest 设为当前位置,而群体中最优的个体作为当前的gBest 。
(2)在当代的进化中,计算各个粒子的适应度函数值。
(3) 如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优将会被当前位置所替代。
(4)如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子的历史最优所替代。
(5)对每个粒子按照公式(1)和公式(2)对速度和位置进行更新。
(6)迭代次数增加1,如果还没有到达结束条件,转到步骤(2),否则输出gBest 并结束。