粒子群算法及其改进技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第31卷湖北师范学院学报(自然科学版)V o l 31第2期Journal o fH ube iN or m a lU n i versity(N at u ra l Sc i ence)N o 2,2011
粒子群算法及其改进技术研究
李 志,陈年生,郭小珊,柯宗武
(湖北师范学院计算机科学与技术学院,湖北黄石 435002)
摘要:粒子群算法是一种基于种群的随机优化技术,1995年由Eberha rt博士和K ennedy博士提出,该算法
源于对鸟群觅食和鱼群学习行为的研究,在很多领域得到了广泛应用,本文介绍了粒子群算法的基本原
理,并针对粒子群算法在不同应用领域的需求,详细讨论了粒子群算法的各种改进技术,最后,对粒子群算
法未来发展进行了展望。
关键词:粒子群算法;惯性权重;学习因子
中图分类号:TP393 文献标识码:A 文章编号:1009 2714(2011)02 0104 05
粒子群优化算法(Particle Sw ar m Opti m ization,PSO)[1,2]是一种基于种群的随机优化技术,1995年由Eberhart博士和Kennedy博士提出,该算法源于对鸟群觅食和鱼群学习行为的研究,它吸取了人工生命、鸟群觅食、鱼群学习和群理论的思想,又具有进化算法的特点。PSO算法最早用来训练神经网络,目前的应用包括训练博弈代理、电力系统、图像与数据聚类、优化设计、控制器设计、调度、模型选择、生物信息学、数据挖掘、音乐生成、机器学习与训练、模式识别、信号控制、函数优化等诸多方面[3]。针对不同应用领域以及不同领域需求的基本粒子群算法在收敛速度以及求解精度上存在不足,因而出现了很多粒子群改进算法。
1 粒子群算法
1.1 基本粒子群算法的基本原理
粒子群优化算法要求每个粒子在进化过程中维护两个向量,一个是粒子i在t时刻的速度向量v t
i =[v t i1,v t i2, v t id],另一个是粒子i在t时刻的位置向量x t i=(x t i1,x t i2, x t id),其中d为求解问题的维数。粒子的速度决定了其运动的方向和速率,而位置则体现了粒子所代表的解在解空间中的位置。算法同时还要求每个粒子各自维护一个自身的历史最优位置向量pB es,t另外群体还维护一个全局最优向量gBes,t代表所有粒子的pBest中最优的那个。
粒子群算法和遗传算法相比没有了选择算子、交叉算子和变异算子[3],粒子在t+1时刻速度和位置更新公式为:
v t+1id= v t id+c1 r1 (pB est t id-x t id)+c2 r2 (gB est t gd-x t id)(1) x t+1id=x t id+v t+1id(2)
在公式(1)中, 是惯性权重,c
1和c
2
是加速系数(也称为学习因子),r
1
和r
2
是两个[0,1]区间
上的随机数。粒子通过不断进化得到全局最优解。有实验表明,较大的惯性权重有利于展开全局寻优,较小惯性权重有利于局部寻优,而c1和c2通常取2
收稿日期:2010 11 13
基金项目:湖北省高等学校优秀中青年科技创新团队计划项目(T200806)、湖北省教育厅中青年项目(Q20082203)等资助
作者简介:李 志(1977 ),男,湖北黄石人,硕士研究生
1.2 粒子群算法的流程
基本PSO算法流程如下所述[3]:
S tep1:随机初始化种群中各粒子速度和位置,并且将个体的历史最优pBest设为当前位置,而群体中最优的个体作为当前的gBes;t
S tep2:在每一代的进化中,计算各个粒子的适应度函数值;
S tep3:如果该粒子当前的适应度函数值比其历史最优值要好,利用当前位置替换个体的历史最优位置;
S tep4:如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子的历史最优所代替;
S tep5:对每个粒子i的第d维的速度和位置分别按公式(1)和公式(2)进行更新;
S tep6:如果还没有达到结束条件,转到S tep2,否则输出gBest并结束。
2 粒子群算法的改进
针对不同应用,粒子群算法受到诸如问题的维数、粒子的个数、加速系数、惯性权重、迭代次数、种群多样性等方面的影响,这些影响可能使得算法的收敛性和解的精确度达不到应用的要求,因而很多研究者在参数研究、拓扑结构和与其它算法的混合方面进行深入探讨和改进。
2.1 惯性权重改进算法
惯性权重 在PSO改进过程中,是一个非常重要的改进参数,它决定了粒子先前飞行速度对当前飞行速度的影响程度。当 较大时,全局搜索能力强,局部搜索能力弱;当 较小时,全局搜索能力弱,局部搜索能力强。因此选择合适的惯性权重可以提高算法性能,提高寻优能力,同时减少迭代次数。
当惯性权重较大时,有利于全局搜索,虽然收敛速度快,但不易得到精确解;反之,有利于局部搜索得到精确解,但收敛速度慢且有时会陷入局部极值。针对以上问题研究者在惯性权重研究上主要采用了线性策略和非线性策略[6]。
1)线性策略:在一般的全局优化算法中,总是希望前期有较高的全局搜索能力而在后期加快收敛速度,所以线性策略都是线性递减策略。文献[4]最早提出了惯性权重递减策略;文献[5]将 的值设置为0.9到0.4线性下降,使得PSO在开始的时候探索较大的区域,较快地定位最优解的大致范围,随着 逐步减小,开始精细的局部搜索,这种线性策略在迭代初期搜索能力强,但是如果初期搜索不到最好点将陷入局部最优;文献[7]提出了一种线性微分递减策略,该算法在一定程度上减弱了经典递减策略的局限性,在算法性能上有了很大改善。
2)非线性策略:线性策略在处理很多问题时存在进入局部极值点邻域内就很难跳出的问题,为了解决这个问题,非线性惯性策略主要有以下改进策略:
先增后减策略:文献[8]提出了先增后减策略,实验证明,先增后减惯性权重,前期有较快地收敛速度,后期的局部搜索能力也不错,在一定程度上保持了递减和递增策略的优点。
带阈值的非线性递减策略:文献[9]在典型线性递减策略的基础上引入递减指数和迭代阈值,实验表明无论在搜索最优值精度、收敛速度方面还是稳定性方面都有明显的优势。
带控制因子的非线性递减惯性权重策略:文献[10]提出的带控制因子的非线性递减惯性权重策略的计算公式为:
(t)=( start- end-d1)=e1
1+d2t/t m ax(3)式中,d1,d2为控制因子,实验表明:d1=0.2,d2=0.7时算法的性能会大大提高。
3)其他策略:文献[11]提出一种自适应的惯性权重法,其中权重变量正比于相应的种群的改变量,这种方法可以减少迭代次数。文献[12]提出了一种依据早熟收敛程度和适应值进行自适应调整的策略,文献[13]提出根据距全局最优点的距离调整惯性权重策略,文献[14]提出随机调整策略。
2.2 学习因子改进算法