合成微生物。与传统的工业优化方法比较,粒子群算法产生合成结果的适应度是传统方法的两倍。实验充分显示粒子群算法的优越性:尽管劣质成分在一定的迭代代数内能够影响优化搜索的进程,但由于粒子群算法能够搜索到更大范围内的优化问题的解空间,合成结果总能比较理想。
总的来说,粒子群优化算法与其他进化算法一样,可以解决大部分的优化问题,或可以转换为优化问题进行求解的问题。目前,在模糊控制器的设计、车间任务调度、实时机器人路径规划、图像分割、EEG信号模拟、语音识别、烧伤诊断以及探测移动目标等方面已经有成功应用的先例。
2.7 本章小结
本章详细介绍了粒子群算法的起源背景、基本思想以及基本粒子群算法的实现,最后简单介绍了该算法的主要应用及其研究方向。但是通过研究发现,作为一种新兴的智能优化算法,基本粒子群还存在早熟收敛和稳定性差的不足,有必要对其进行改进,进一步地探讨与研究。
第三章 改进的粒子群算法
3.1 引言
针对基本粒子群算法早熟收敛和稳定性差的缺点,基于不同的策略,已产生大量改进的粒子群优化算法。从根本上来说,大多数改进方案都基于与其他优化算法结合的改进,是以大幅度提高算法理解的难度和实现的复杂度为代价的,这就使得粒子群优化算法失去了一些诱人的核心优点,如理解的简单性、实现的简洁性等,这对该算法的大面积工程应用是有所不利的。因此,以改进粒子群算法为出发点寻找尽量简单有效的改进粒子群算法,是十分必要和有意义的。
3.2 改进的粒子群算法综述
对粒子群算法的改进主要集中在对参数的改进以及算法融合两个方面。对参数的改进包括对惯性权值?、学习因子c1和c2、每一代粒子的飞行时间等的调整。对于算法融
合方面,许多学者尝试了将粒子群算法与其他智能计算方法相融合,有结合遗传算法交叉算子的混合粒子群优化算法[14]、基于模拟退火的粒子群算法[32]、免疫粒子群算法[35]、基于群体适应度方差自适应变异的粒子群算法[37]、与差别进化相结合的粒子群算法[48]等,下面简要介绍粒子群算法的几类改进算法。
1)惯性权重法
粒子群优化算法以种群行为来激励粒子的运动。每个潜在的解与粒子的速度相联系,该速度不断地根据粒子自身经验和粒子的社会经验来调整大小、方向,总是希望粒子能朝更好的方向运动。在搜索过程中,全局搜索能力和局部搜索能力的平衡关系对于算法的性能起着举足轻重的作用。初始时,Shi将惯性权值取值定为常数,但后来实验发现,较大的?值有利于跳出局部极小点,较小的?值有利于算法的收敛,而动态的惯性权重能够取得比固定值更好的寻优结果。现在采用较多的是Shi建议的线性递减权重(LDW)策略, 速度更新公式在式(2-1)的基础上加上惯性权值,调整为式(3-1)(3-2)所示。
?t??max??max??mintmax?t (3-1)
(3-2)
vijt?1??tvijt?c1r1?(pbestijt?xijt)?c2r2?(gbestijt?xijt)式中,?max为初始惯性权重;?min为最终惯性权重;tmax为最大迭代次数;t为当前迭代次数。
在算法初期,?取值较大,有利于粒子探索未知区域,扩大搜索空间。在算法后期收敛的情况下,?取值较小,有利于微调对最优区域周围的搜索,从而提高了搜索的精度。典型取值?max=0.9、?min=0.4,但是还有两个缺点:其一迭代初期局部搜索能力较弱,即使初始粒子已接近于全局最优点,也往往错过,而在迭代后期,则因全局搜索能力变弱,而易陷入局部极值。其二最大迭代次数tmax较难预测,从而将影响算法的调节功能。2001年Shi又提出用模糊规则动态地修改?值和随机惯性权重(RIW)取值策略。
张选平等提出了一种动态的改变惯性权值(Dynamically Changing Weight,DCW)的粒子群算法。在该算法中,惯性权重的变化受算法运行态势影响,是由粒子群的进化速度和粒子群的聚集度综合决定的。与LDW算法相比,平均迭代次数至少平均降低25%,收敛速度和收敛精度都明显提高。陈贵敏等在LDW的基础上,又给出了三种非线性的
惯性权重递减策略,发现对于多数连续优化问题,凹函数递减策略优于线性策略,而线性策略优于凸函数策略。
带惯性权值的粒子群算法在刚开始的时候倾向于开掘,然后逐渐转向于开拓,从而在局部区域调整解。这是目前使用最广泛的粒子群算法形式。
2)收缩因子法
Clerc[41]的研究表明使用收缩因子可以保证粒子群算法收敛。收缩因子?是关于c1、
c2的函数,定义的公式如式(3-3)、(3-4)所示。
k?1kkkttvij??[vij?c1r1(pbestij?xij)?c2r2(gbestij?xij)] (3-3)
??22?l?l?4l2,l?c1?c2,l?4 (3-4)
Clerc的带收缩因子的方法中设l为4.1,故收缩因子?为0.729。相当于在速度更新公式中,在前次速度的基础上乘0.729。
收缩因子法可使粒子轨迹最终收敛,且可以有效搜索不同的区域,能得到高质量的解,若与此同时将每维的最大速度设置为一维搜索空间的大小,则可得到更好的效果。
但是,收缩因子法在处理单峰函数或者其它比较光滑的较为简单的函数时,比起基本粒子群算法,收敛速度稍微慢一点。
3)基于学习因子c1和c2的改进
学习因子c1和c2代表了粒子向自身极值pbest和全局极值gbest推进的随机加速权值。小的加速常数值,可使粒子在远离目标区域内振荡;而大的加速常数可使粒子迅速向目标区域移动,甚至又离开目标区域。如果c1?c2?0,则粒子将以当前速度飞行,直到边界。此时,由于粒子只能搜索有限的区域,故很难找到好解。
当c1?0则粒子没有自身认知能力,亦即“只有社会(social-only)认知”的模型。在粒子相互作用下,算法有能力达到新的搜索空间。其收敛速度比标准算法更快,但碰到复杂问题,比标准算法更容易陷入局部极值点。
当c2?0,则粒子之间没有社会信息共享,亦即“只有自身认知(cognition-only)”的模型。由于个体之间没有交互,一个规模为N的群体等价于N个单个粒子的运行,因而得到最优解的概率非常小。
Shi和Eberhar建议,为了平衡随机因素的作用,通常设c1?c2?2,后来Clerc推导出c1?c2?2.05,也有研究者认为c1和c2不等,并由实验得出c1?2.8,c2?1。Ratnaweera等采用了根据迭代次数来动态地修改加速因子的方法,模拟实验结果表明,当c1由2.15线性递减至0.15,c2由0.15线性递增至2.15时,算法所获得适应值最优。这种方法确实加速了算法的收敛,尤其在单峰值函数的测试表现突出。为此付出的代价是算法容易陷入局部最小值,在多峰值函数的测试中容易过早收敛。
但是,实际上这些研究也仅仅局限于部分问题的应用,无法推广到所有问题域。 4)小生境粒子群算法
粒子群算法启发性强、收敛速度快,使得粒子在寻优时过分集中,最后粒子都移向全局最优点,不能用于多模态函数优化。
2002年Brits等[50]将小生境技术引入粒子群优化算法中,小生境法除去影响粒子间信息交流的“社会部分”,增强粒子局部搜索能力,每个粒子飞向离它最近的山峰,即形成小生境。小生境粒子群算法速度更新公式如式(3-5)所示。
t?1tttvij??tvij?c1r1(pbestij?xij) (3-5)
小生境粒子群法收敛速度较慢,主要应用于多峰函优化,对单峰函数效果不佳。 5)自适应调整飞行时间
基本粒子群算法在解空间搜索时,每代粒子的飞行时间恒为1,有时会导致粒子在最优解的附近来回“振荡”现象[51]。自适应调整飞行时间法动态调整飞行时间,随着迭代代数的增加,飞行时间线性减少。具体调整公式如式(3-6)、(3-7)所示。
t?1ttxij?xij?vijTt (3-6)
Tt?T0(1?t0ttmax) (3-7)
式中,Tt表示第t代粒子的飞行时间;T0表示粒子最长飞行时间;t0为比例系数,起调节作用。
自适应调整飞行时间法适用于复杂函数,最优值处在狭长或陡峭的山峰上。但是对于简单函数后期收敛速度较慢。
6)算法融合
Angeline[52]将选择算子引入粒子群算法中,选择每次迭代后较好的粒子复制到下一
代,以保证每次迭代的粒子群都具有良好的性能,这种算法对某些单峰函数效果良好。
Lvbjerg[53]在粒子群每次迭代后,按几率在粒子间交换各维,通过交叉来生成更优秀的粒子群算法对某些多峰函数效果较好。
Higash[54]等人分别提出了自己的变异粒子群算法,基本思路均是希望通过引入变异算子跳出局部极值点的吸引,从而提高算法的全局搜索能力,得到较高的搜索成功率。
高鹰等人则引入免疫机制的概念,提高粒子群的多样性和自我调节能力,以增强粒子的全局搜索能力。
Baskar等人提出了协同粒子群算法,通过使用多群粒子分别优化问题的不同维来对基本算法进行改进尝试。
另外,还出现了一些量子粒子群算法、基于模拟退火的粒子群算法以及求解几何约束问题的粒子群算法等。
以上改进算法各有优缺点,它们引入了一些新的参数,在改进算法性能的同时也一定程度上增加了算法的复杂性。
3.3标准粒子群算法(粒子群算法及应用P19)
为了改善基本粒子群算法的性能,Shi和Eberhart在1998年的IEEE国际进化计算学术会议上发表了题为“A modified particle swarm optimizer”的理论,引入了惯性权重,逐渐地大家都默认这个改进粒子群算法为“标准粒子群算法”。
3.3.1 算法思想
在基本粒子群算法的速度公式上包括三部分:第一部分是粒子调整前的速度;第二部分和第三部分是对粒子速度的调整。
如果没有后面两部分,粒子将会保持相同的速度朝一个方向飞行,直到到达边界,这样粒子很大可能会找不到最优解,除非最优解恰好在粒子直线飞行的轨迹上,但这种情况是很少的。
如果没有第一部分,粒子的飞行速度将仅由它们当前位置和历史最好位置决定,则速度本身是无记忆的,无法将优质信息保留。假定刚开始粒子i处于较优位置,那么粒子的飞行速度将会是0,即它会保持静止状态,直到其他粒子找到比粒子i所处位置还

