一种改进的粒子群优化算法-《价值工程》武燕 张冰
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种改进的粒子群优化算法
武燕Wu Yan;张冰Zhang Bing
(江苏科技大学电子信息学院,镇江212003)
(School of Electronics and Information,Jiangsu University of Science and Technology,Zhenjiang 212003,China)
摘要:介绍基本粒子群优化算法的原理、特点,并在此基础上提出了一种改进的粒子群算法。通过在粒子初始化时引入相对基的原理使粒子获得更好的初始解,以及在迭代过程中引入变异模型,部分粒子生成相对应的扩张及收缩粒子,比较其适应度,保留最佳粒子进行后期迭代,使算法易跳出局部最优。通过经典函数的测试结果表明,新算法的全局搜索能力有了显著提高,并且能够有效避免早熟问题。
Abstract: This paper introduces the principles and characteristics of Particle Swarm Optimization algorithm,and puts forward an improved particle swarm optimization algorithm. It adopted Opposition-Based Learning in initialization to get a better solution and adopted variation model which make some particles generate two corresponding shrink and expand particles and keep the best fitness particle iterate in later iteration to avoid getting into local minumum. The experimental results of classical function show this algorithm improves the global convergence ability and efficiently prevents the algorithm from the local optimization and early maturation.
关键词:粒子群优化算法;相对基;变异模型
Key words: Particle Swarm Optimization(PSO);Opposition-Based Learning;variation model
中图分类号:TP301.6 文献标识码:
A 文章编号:1006-4311(2011)07-0161-02
0 引言
粒子群优化算法(Particle Swarm Optimization,PSO)是一种新型的仿生算法,由Kennedy和Eberhart于1995年提出[1,2]。该算法是基于群体智能(Swarm I ntelligence,
SI)的优化算法,其功能与遗传算法(Genetic Algorithm,GA)非常相似[3]。PSO优化算法因其需要调节的参数少,具有简单且易于实现的优点,因此越来越多地被应用于函数优化、神经网络训练、模式分类以及其他领域[4]。但是,其数学基础不完善,实现技术不规范,在适应度函数选取、参数设置、收敛理论等方面还存在许多需要深入研究的问题。本文主要是介绍PSO算法原理和特点,并在此基础上提出一种改进的PSO算法,并用测试函数对其进行验证。
1 粒子群算法的基本原理和特点
1.1 算法原理粒子群优化算法的基本概念是源于对鸟群捕食行为的模仿研究,人们从鸟群捕食过程当中得到启示,并用于解决优化问题。在PSO算法中,每个优化问题的解都是搜索空间中一个粒子。所有的粒子都有一个由被优化的函数决定的适应度值,每个粒子还有一个速度(v)决定它们飞行的方向和距离。PSO初始化为一群随机粒子,然后粒子根据当前的最优粒子在解空间中搜索最优解。在每一次迭代中,粒子都是通过跟踪两个“极值”来更新自己,一是就是粒子自身找到的最优解,称个体极值(pbest);另一个极值是整个群体找到的最优解,称全局极值(gbest)。如果粒子的群体规模为M,目标搜索空间为D维,则第i(i=1,2,…,M)个粒子的位置可表示为Xi,它所经过的“最好”位置记为pi,速度用Vi表示,群体中“最好”粒子的位置的位置记为pg表示,那么粒子i将根据下面的公式来更新自己的速度和位置:
(2) 其中,d=1,2,…D,c1,c2为大于零的学习因子或称作加速系数;r1和r2是[0,1]上的随机数;ω(t)是Shi提出的ω线性递减的模型,即。其中,ωmax和ωmin分别是惯性权重的最大和最小值,iter[5]是最大迭代次数,iter是当前迭代次数,这样则可以保证在算法开始时,各微粒能以较大的速度步长在全局范围内探测到较好的结果;在搜索后期,较小的ω值则能保证微粒在极点周围做精细的搜索,从而使算法有较大的几率以一定精度收敛于全局最优值。
1.2 算法特点虽然PSO的功能与遗传算法极其类似,但存在如下显著的优点:无交叉和变异运算,仅依靠粒子速度完成搜索空间;有记忆性,每个粒子和群体的历史最优位置可以
记忆并传递给其他粒子,而且需要调整的参数少,结构简单,易于实现;跟遗传算法采用的二进制编码不同,PSO采用实数编码,直接由问题的解决定,问题解的变量数作为粒子的维数;收敛速度快,在迭代过程中只有最优的粒子把信息传递给其他粒子,属于单向的信息流动,整个搜索更新过程是跟随当前最优解的寻优迭代过程。
2 PSO算法的改进
PSO算法虽然推出的时间不长,但有着许多的改进方法,一般而言都是在局部最优搜索问题及速度更新问题上。本文根据PSO算法的特点,在初始化以及迭代过程中作了一些改进,提出了一种基于相对基初始化及变异模型的PSO算法(OBC-PSO)。
2.1 相对基初始化相对基学习(Opposition-Based Learning)是Tizhoosh于2005年提出的一种新的机器学习算法[6]。它的主要思想是:在求解优化问题时,同时考察一个可行解和它的相对解,通过评价他们的优劣来获得较优的候选解。一般来说,在对解无任何先验知识的情况下,通常我们是采用随机法初始化群体。本文将相对基学习嵌入到PSO算法中,通过同时评价一个可行解及其相对解的优劣,以获得较优的初始候选解,从而提高收敛速度。具体方法如下:
①随机生成均匀分布的初始群体X=X i,V i i=1,2,…,N;
②计算相对群体OX:分别对X中的每个粒子按(3)、(4)式计算其相对粒子(包括位置和速度),构成相对群体OX=OX i,OV i i=1,2,…,N;
ox id=L d+U d-x id(3)
ov id=V min d+V max d-v id(4)
其中L d和U d分别表示第d维分量取值范围的上下界x id∈L d,U d;每个粒子的速度限制在区间V min d,V max d内,一般地,V min d=-V max d且V max d=0.1U d-L d;
③最后根据个体适应度值从X和OX中选择N个粒子作为初始种群X0=X o i,V0i i=1,2,…,N
(5)
在对待求的实际问题无先验知识的情况下,利用相对基思想可以获得更优的初始候选解,提高算法的效率。
2.2 变异模型PSO算法在后期迭代过程中比较容易陷入局部最优,针对这一问题,本文引入了变异模型。为了加快搜索速度,发生变异的对象,不仅是处于历史全局最优位置的一个