粒子群算法的惯性权重调整策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
粒子群算法的惯性权重调整策略
李丽1薛冰2牛奔3
1深圳大学管理学院信管系,广东深圳(518060)
2深圳大学管理学院信管系,广东深圳(518060)
3深圳大学管理学院信管系,广东深圳(518060)
E-mail(小五,Times New Roman)
摘要:惯性权重是粒子群算法改进的一个重要出发点,通过调整惯性权重可以大大提高算法的性能。本文在介绍粒子群算法原理、流程的基础上,分析了惯性权重在算法寻优过程中的重要作用,然后归纳了运用不同方法对惯性权重的改进,进行了简单的讨论,并对下一步工作进行了展望。
关键词:粒子群算法惯性权重改进策略
1 引言
粒子群优化算法(Particle Swarm Optimization,PSO)是1995年由Eberhant和Kennedy 在文献[1]中提出的一种基于群体智能、自适应的搜索优化方法。其基本思想源于对鱼类、鸟类等群体社会行为的观察研究。粒子群算法提出以后,由于其算法概念简单、需要调整的参数较少、容易实现和快速收敛能力,已被广泛地用在科学和工程领域,如电力系统优化(文献[31]—[33])、TSP问题(文献[34])、神经网络训练(文献[35])、函数优化(文献[37]、[38])等。
粒子群算法在应用过程中体现出了很强的寻优能力,但与其他全局优化算法相同,粒子群算法也存在早熟局部收敛和后期震荡现象。针对这些问题,国内外学者经过大量研究工作,提出了多种改进方法,包括参数改进,拓扑结构改进和混合算法等。其中惯性权重是最重要的可调整参数,惯性权重由于其概念简单、容易理解、改进的方法较多、改进的空间较大且容易实现等特点,成为很多学者研究的焦点。通过调整惯性权重的值可以实现全局搜索和局部搜索之间的平衡:较大的权值有利于提高全局搜索能力,而较小的权会提高局部搜索能力。诸多研究者运用线性递减、非线性递减等方法对惯性权重进行调整,实现了算法在不同方面和不同程度上的改进。本文通过对国内外研究人员所提出的调整惯性权重策略进行归纳总结,讨论了各种策略的优缺点,并在此基础上提出了下一步工作方向及需要解决的问题。
2 基本粒子群算法
在粒子群算法中,每个寻优的问题解都被想像成一只“鸟”,也称为一个没有重量和体积的粒子,每个的粒子在n维搜索空间里飞行,并有一个速度决定其飞行的距离与方向,
所有粒子都有一个适应值函数来判断其目前位置的好坏,且在飞行过程中,每一个粒子都是具有记忆性的,能记得所搜寻到的最佳位置。
因此,在飞行过程中,每一代都能找出两个“极值”:每一个粒子到目前为止的搜寻过程中最优解,代表粒子自身认知水平,称之为个体极值Pbest ;所有群体中的最优解,代表社会认知水平,称之为全局极值Gbest 。粒子群算法首先初始化一群随机粒子,然后根据两个“极值”通过更新迭代找到最优解,其基本迭代方程如下:
))((()))((())()1(21t x p rand c t x p rand c t V t V id gd id id id id -⋅⋅+-⋅⋅+=+ (1)
)1()()1(++=+t V t x t x i i i
(2) 其中,id v 表示粒子i 在第d 维的速度,n 维向量),,()
(21i in i i x x x t x ⋯⋯=表示迭代到第t 代时粒子i 的位置,n 维向量),,()(21in i i i v v v t v ⋯⋯=表示粒子i 的速度。1c 、2c 是学习因子,()rand 是均匀分布于[0,1]之间的随机数,id p 表示个体极值Pbest ,gd p 表示全局极值Gbest 。为了防止)(t x i 溢出,设置m ax v 来控制)(t v i 的范围:
⎪⎩⎪⎨⎧≥<=max max max )(.................)(.......).........()(V t V V V t V t V t V i i i i
(3) 具体算法流程如下:
(1) 初始化所有微粒(群体规模为N ,在允许范围内随机设置微粒的初始位置和速度,并将各微粒的id p 设为初始位置,取gd p 为id p 中的最优值。
(2) 评价每个微粒的适应值,即分别计算每个微粒的目标函数值。
(3) 对于每个微粒,将其适应值与所经历过的最好位置id p 的适应值进行比较,若较好,则将其作为当前的最优位置。
(4) 对于每个微粒,将其适应值与群体所经历过的最好位置gd p 的适应值进行比较,若较好,则将其作为当前的全局最优位置。
(5) 根据速度和位置更新方程对微粒的速度和位置进行更新。
(6) 如未达到结束条件,通常为足够好的适应值或是达到一个预设的最大迭代代数,则返回第(2)步。
具体算法流程图如下:
3 惯性权重的提出
经过大量的研究试验,为了提高基本粒子群算法的收敛性能和避免算法陷入局部最优,Y .Shi 和R.C.Eberhant 于1998年在《A modified particle swarm optimizer 》(文献[2])一文中提出了惯性权重这一概念,在进化方程(1)中引入惯性权重因子w ,即:
))((()))((())()1(21t x p rand c t x p rand c t wV t V id gd id id id id -⋅⋅+-⋅⋅+=+ (4) 等式右边的结构和(1)式一样,第一部分是粒子先前的自身速度,用来保证算法的全局收敛性;第二和第三部分是引起微粒速度变化的社会因素,使算法具有局部搜索能力。所以w 起到了一个平衡全局搜索能力和局部搜索能力的作用,w 值较大时全局搜索能力强,局部搜索能力弱;w 值较小时,反之。恰当的w 值可以提高算法性能,提高寻优能力,减少迭代次数。
惯性权重的引入,对粒子群算法的发展起到了很大推动作用,大大拓展了算法改进的空间。但是要达到算法性能最优还存在很多缺陷,因为当w 值较大时,有利于全局搜索,虽收敛速度快,但不易得到精确解;w 值较小时有利于局部搜索和得到更为精确的解,但收敛速度慢且有时会陷入局部极值。如何寻找合适的w 值使之在搜索精度和搜索速度方面起恰当的协调作用,成为很多学者研究的一个新方向,通过几年的发展,已有了不少研究成果。 4 惯性权重调整策略
基于研究各种问题的复杂性和惯性权重在算法迭代过程中所起到的平衡作用,除了固定惯性权重以外,学者们还提出了很多种惯性权重调整策略,主要有线性递减策略、非线性递减策略和自适应调整策略等以下几种:
4.1 线性递减策略
由于在一般的全局优化算法中,总希望前期有较高的全局搜索能力以找到合适的种子,而在后期有较高的开发能力,以加快收敛速度,所以惯性权重的值应该是递减的。其中的线性递减策略主要有以下几种:
4.1.1典型线性递减策略
Y .Shi 和R.C.Eberhant 在文献[2]还中提到了w 应是随着进化线性递减的。这是首次提出的惯性权重递减策略,我们称之为典型线性递减策略,w 的计算公式如下: