维普资讯 http://www.cqvip.com 第34卷第5期 电子科技大学学报 Journal of UEST of China Vo1.34 NO.5 2005年1O月 Oct.2005 粒子群优化算法及其与遗传算法的比较 沈艳 ,郭 兵2,古天祥 成都610054,2.四川大学计算机学院成都610041) (I.电子科技大学机械电子-I-程学院【摘要】粒子群优化算法是根据乌群觅食过程中的迁徙和群集模型而提出的用于解决优化问题。该文讨论 粒子群优化算法的基本原理和实现步骤,分析了该算法中各参数的设置。通过一个测试函数,对粒子群优化算法 与遗传算法进行了比较,结果表明粒子群优化算法在找寻最优解效率上好于遗传算法。 关键词群集智能;粒子群:遗传算法:优化 0224 文献标识码A 中图分类号Particle Swarm Optimization Algorithm and Comparison with Genetic Algorithm SHENYan‘,GUOBing2,GUTian—xiang‘ (1.School ofElectromechanical Engineering,UEST ofChina Chengdu 610054,2.School ofComputer,Sichuan Univarcity Chengdu 610041) Abstract Particle swarm optimization,rooting from simulation of swarm of bird,solves optimization problem.Firstly,discusses particle swarm optimization algorithm principle and step of implementation,and then analyzes each of parameter.Particle swarm optimization algorithm compares wih genetitc algorithm through the same mathematic function.The comparative result indicates that Particle swarm optimization algorithm can obtain the optimum solutions more easily than genetic algorithm and it is a good optimization method wih s ̄ong competittion. Key words warm intelligence;particle swarm,genetic algorithm;optimization 自然界经过数万年的演化,以最优的方式及其规律存在。“师法自然”,人们受自然界的运行发展机制 的启发,建立和发展了一系列的优化算法,如遗传算法(Genetic Algorithm,GA)、模拟退火、人工神经网络 等,这些算法已广泛应用于工程中,解决许多研究过程中遇到的困难。 随着人们对鸟类的群集(Flocking)行为的研究,如大雁飞行自动排成人字形、蝙蝠在洞穴中快速飞行却 互不相碰等。1995年,文献【l,2】对鸟群觅食过程中的迁徙和群集进行模拟:鸟群觅食时,从一地到另一地 的迁徙过程中,总是有一只鸟对食源的大致方向具有较好的洞察力,同时,在找寻食源的途中,它们通过 套自己独有的方式随时相互传递着信息,特别是较好的信息。在“好消息”的指引下,导致鸟群“一窝 蜂”的奔向食源,达到在食源的群集。粒子群优化算法从中得到启示并用于解决优化问题。 1粒子群优化算法 1.1基本原理 在粒子群优化(Particle Swarm Optmiization,PSO)算法中,一只鸟称为“粒子”,解群相当于一个鸟群, 地到另一地的迁徙相当于解群的进化,“好消息”相当于解群每代进化中的最优解,食源相当于全局最 收稿日期:2003—10—29 作者简介:沈艳(1973一),女,博士,讲师,主要从事人工智能、智能化、网络化测控技术方面的研究. 维普资讯 http://www.cqvip.com 第5期 沈艳等: 粒子群优化算法及其与遗传算法的比较 697 优解。 假设在一个JⅣ维目标搜索空间中,有m个粒子组成一个群落,其中第价粒子在Ⅳ圣隹空间里的位置 = xo,…, 。f:1,2,…, ;飞行速度 ( l, ,…, ,j=1,2,…, ;适应 ̄fitnessf=厂 ),则P6 和 = , , , 胁,…, 分别为第i个粒子曾经达到的最大适应值及其对应的位置。G6 f为在群 体所有粒子经历过的最好位置,其索引号为g。则对每一代,其第雄根据如下方程变化: Vid=wvfd+q ( 一 )+c r2( 蓦耐一 ) X =X『d+Vtd(1) (2) 式中 为粒子iZ行速度矢量的第雠分量;Xid为粒子i位置矢量的第d维分量:,.,,r2为【0,1】之间的随机 一 )项为“认知项 一 )项为“社会项(Social Term)”,它代表粒子 数;c。,C2为加速度系数;W为惯性权重。式(1)中,首项为粒子先前的速度:cl ( (Cognitive Term)”,该项与粒子的认知经验相关;c2r2( 1.2实现步骤 间的信息共享与合作。式(2)为粒子f的新坐标位置。它们共同决定粒子i下一步的运动位置。 粒子群优化算法的实现步骤为:(1)初始化粒子群。设群体规模为m,在允许的范围内随机设置粒子的 初始位置和速度;(2)评价每个粒子的适应值,即计算每个粒子的目标函 ̄fimess,;(3)对所有的f∈{1,2,…, m),如果触 6巴 ,则令,彳仂缁 6 , ,如 ̄fimessr>gbest,则重新设置gbest的索引号g;(4)根 据式(1)、(2)调整每一个粒子的位置和速度;(5)检查终止条件。如果达到最大迭代次数g 一或最好解停 滞不再变化,终止迭代,否则返回(2 。 粒子群优化算法主要包括[3】:(1)粒子以随机的方式在整个问题空间中流动并且可以对自己所处的环境 进行评价(计算适应度)。(2)每个粒子均可以记忆自己到过的最好位置和感知邻近粒子已达到的最好位置。 (3)在改变速度的时候同时考虑自己到过的最好位置和邻近粒子已达到的最好位置。 1.3参数分析 PSO算法参数包括:群体规模m,惯性权重w,加速度系数 ,c2,最大代数g (1)惯性权重w--它使粒子保持运动惯性,使其有扩展搜索空间的趋势,有能力探索新的区域。如果w=0, 由于速度本身没有记忆性,只取决于粒子当前位置和其历史最好位置尸6 和 巴 ,所以,粒子群将收缩到 当前的全局最好位置,更像一个局部算法;如果w:/:0,微粒有扩展搜索空间的趋势,即有全局搜索能力。 因此,对于较大的W值有利于跳出局部极小点,而较小的W值有利于算法收敛。(2)加速度系数c 、c::该 项参数用于调整粒子的自身经验与社会经验在其运动中所起的作用,表示将每个粒子推向尸6鲫I和 位置 的统计加速项的权重。低的值允许粒子在被拉回前可以在目标区域外徘徊,而高的值则导致粒子突然冲向 或越过目标区域。如果c.=0,则粒子没有认知能力。在粒子的相互作用下,不仅能到达新的搜索空间,但 也容易陷入局部极值点:如果C2=0,粒子间没有社会信息共享,其算法变成一个多起点的随机搜索;如果 c。=c2=0,粒子将一直以当前的速度飞行,直到到达边界。通常c。、c2的范围在0"-'4之间。(3)粒子个数和维 数:粒子个数一般取20"-'40,对于大部分的问题10个粒子已经足够取得好的结果,对于比较难的问题或者 特定类别的问题,粒子数可以取 ̄UIO0或200。 2举例与比较 2.1测试函数 本文采用测试函数 )=xsin(10mc)+1.0,IE[__1,2】,测试函数如图1所示。图中, 它在区间f-1,2】上的最优解为:x=1.851 5, )=2.851 2。 是一个多峰函数, 2.2参数对粒子群优化算法影响 (1)cl、 的不同取值对PSO的影响如图2所示,图中,cl=C2=0.5,最优解出现在24代;cl=c2=1,最优解 出现在23代;CI=C2=1,最优解出现在20代;cl=C2=2,最优解出现在17代;cl=C2=2.5,最优解出现在27代; c1=c2=4,最优解没有出现。(2)惯性权重W的不同取值对PSO的影响如图3所示,图中,w=1.05时,粒子群 优化算法的搜索效率和搜索精度高。 维普资讯 http://www.cqvip.com 698 电子科技大学学报 3.0 第34卷 菩 亘 羽 。. l !三 I 2.5 2.0 1.5 0 l0203040 50 籁 gen gen gen 图1测试函数图 图2 cl、c2的不同取值对PSO的影响 弘譬最墓面 图3 w不同取值对PSO的影响 2.3粒子群优化算法与遗传算法比较 遗传算法的控制参数设定如下:群体规模大dx20,个体串长度为22;杂交概率0.9,变异概率为0.01; 最大遗传代数100;粒子群优化算法的控制参数设定为:群体规模大dx20,最大进化代数:50,c。=c2=2; 遗传算法与粒子群优化算法的解随进化代数的变化情况如图4、5所示,比较结果如图6所示。由图4~6, 粒子群优化算法的最优解出现在17代,而遗传算法的最优解出现在49代,粒子群优化算法在找寻最优解效 率上要好于遗传算法。 b gen=15 图4遗传算法的解随进化代数的变化情况 a gen=3 C gen=50 图5粒子群优化算法的解随进化代数的变化情况 维普资讯 http://www.cqvip.com 第5期 沈艳等: 粒子群优化算法及其与遗传算法的比较 699 由此可见,虽然粒子群优化算法和遗传算法有很多共同之处:两者都随机初始化种群,都使用评价函 数来衡量个体的优劣程度,并根据由评价函数得到的适应值来进行一定的随机搜索。但粒子群优化算法搜 索速度快,在搜索性能上好于遗传算法,这是因为:(1)粒子群优化算法没有遗传操作,如交叉(Crossover) 和变异(Mutation),而是利用个体在解空间中的随机速度来改变个体,其解群相对进化代数而言,表现出更 强的随机性,其计算复杂度比遗传算法低。(2)粒子具有“记忆”的特性,它们通过“自我”学习和向“他 人”学习,使其下一代解有针对性的从“先辈”那里继承更多的信息,从而能在较短的时间内找到最优解。 (3)与遗传算法相比,粒子群优化算法的信息共享机制是很不同的:在遗传算法中,染色体互相共享信息, 所以整个种群的移动是比较均匀的向最优区域移动:在粒子群优化算法中,信息流动是单向的,即只 ̄ffgbest 将信息给其他的粒子,这使得整个搜索更新过程跟随当前最优解。 从以上实验及分析可以看出粒子群优化算法在多数的情况下,比遗传算法更快的收敛于最优解。 图6粒子群优化算法与遗传算法的比较 3结束语 粒子群优化算法是通过粒子间的相互作用发现复杂搜索空间中的最优区域,是一类随机全局优化技 术。其优势在于简单容易实现而又功能强大。目前,粒子群优化算法最成功地运用是在进化神经网络方面, 但对其的研究才刚起步,相对其他较成熟的进化算法,还没有形成系统的分析方法和一定的数学基础,且 应用范围较小。随着研究的进一步深入,该算法将会应用到越来越多的领域中。 本文研究工作得到电子科技大学青年基金(jx0403 8)资助,在此表示感谢。 参考文献 [1】Kennedy J,Eberhart R C.Particle SW ̄/1 optimization[c】.Proc.IEEE hat.Conf..on Neural Networks,Perth,WA, Australia,1995.1 942-1 948 [2】Eberhart R C,Kennedy J A.A new optimizer using particle swarm theory[C].Proc.The Sixth Int.Symposium on Micro Machine and Human Science,Nagoya,Japan,1 995.39-43 [3】Kennedy J,Eberhart R C,Shi Y Swarm intelligence[M].San Francisco:Morgan Kaufmann Publishers,200 1 [4】Dautenhahn K.Book review:Swarm nitelligence[J].Genetic Programming and Evolvable Machines,2002,3(1):93- 97 编辑漆蓉