4.1粒子群算法基本原理粒子群优化算法I45]最原始的工作可以追溯到1987年Reynolds对鸟群社会系统Boids(Reynolds对其仿真鸟群系统的命名)的仿真研究。通常,群体的行为可以由几条简单的规则进行建模,虽然每个个体具有简单的行为规则,但是却群体的行为却是非常的复杂,所以他们在鸟类仿真中,即Boids系统中采取了下面的三条简单的规则:(1)飞离最近的个体(鸟),避免与其发生碰撞冲突;(2)尽量使自己与周围的鸟保持速度一致;(3)尽量试图向自己认为的群体中心靠近。虽然只有三条规则,但Boids系统已经表现出非常逼真的群体聚集行为。但Reynolds仅仅实现了该仿真,并无实用价值。1995年Kennedy's和Eberhart在Reynolds等人的研究基础上创造性地提出了粒子群优化算法,应用于连续空间的优化计算中。Kennedy和Eberhart在boids中加入了一个特定点,定义为食物,每只鸟根据周围鸟的觅食行为来搜寻食物。Kennedy和Eberhart的初衷是希望模拟研究鸟群觅食行为,但试验结果却显示这个仿真模型蕴含着很强的优化能力,尤其是在多维空间中的寻优。最初仿真的时候,每只鸟在计算机屏幕上显示为一个点,而“点”在数学领域具有多种意义,于是作者用"粒子(particle)"来称呼每个个体,这样就产生了基本的粒子群优化算法[49]。假设在一个D维搜索空间中,有m个粒子组成一粒子群,其中第i个粒子的空间位置为X二(x,x,xx)i二1,2,...,m,它是优化问题的一个潜在解,ii1i2i3iD将它带入优化目标函数可以计算出其相应的适应值,根据适应值可衡量x的优i劣;第i个粒子所经历的最好位置称为其个体历史最好位置,记为P二(p,p,p,…,p)i二1,2,...,m,相应的适应值为个体最好适应值Fi同时,ii1i2i3iD每个粒子还具有各自的飞行速度V=(v,v,v,...,v)i=1,2,...,m。所有粒子经ii1i2i3iD历过的位置中的最好位置称为全局历史最好位置,记为Pg二(Pg,Pg,Pg,...,Pg),相应的适应值为全局历史最优适应值。在基本PSO123D算法中,对第n代粒子,其第d维(IWdWD)元素速度、位置更新迭代如式(4-1)、(4-2):vn+1=vn+cXrX(pn—Xn)+CX厂X(pn—Xn)(4-1)idid11idid22gdidXn+1=Xn+vn(4-2)ididid其中:3为惯性权值:cl和c2都为正常数,称为加速系数:r1和r2是两个在[0,1]范围内变化的随机数。第d维粒子元素的位置变化范围和速度变化范围分别限制为[X,X]和[V,V]。迭代过程中,若某一维粒子元素d,mind,maxd,mind,max的X或V超出边界值则令其等于边界值。idid粒子群速度更新公式(4-1)中的第1部分由粒子先前速度的惯性引起,为“惯性”部分;第2部分为“认知”部分,表示粒子本身的思考,即粒子根据自身历史经验信息对自己下一步行为的影响;第3部分为“社会”部分,表示粒子之间的信息共享和相互合作,即群体信息对粒子下一步行为的影响。基本PSO算法步骤如下:(1)粒子群初始化;(2)根据目标函数计算各粒子适应度值,并初始化个体、全局最优值;3)判断是否满足终止条件,是则搜索停止,输出搜索结果;否则继续下步;(4)根据速度、位置更新公式更新各粒子的速度和位置;(5)根据目标函数计算各粒子适应度值;(6)更新各粒子历史最优值以及全局最优值;(7)跳转至步骤3。对于终止条件,通常可以设置为适应值误差达到预设要求,或迭代次数超过最大允许迭代次数。基本的连续PSO算法中,其主要参数,即惯性权值、加速系数、种群规模和迭代次数对算法的性能均有不同程度的影响。惯性权值3的取值对PSO算法的收敛性能至关重要。在最初的基本粒子群算法中没有惯性权值这一参数。最初的PSO算法容易陷入局部最小,于是在其后的研究中引入了惯性权值来改善PSO算法的局部搜索能力,形成了目前常用的基本PSO算法形式。取较大的3值使得粒子能更好地保留速度,从而能更快地搜索解空间,提高算法的收敛速度;但同时由于速度大可能导致算法无法更好地进行局部搜索,容易错过最优解,特别是过大的3会使得PSO算法速度过大而无法搜索到全局最优。取较小的3值则有利于局部搜索,能够更好地搜索到最优值,但因为粒子速度受其影响相应变小从而无法更快地进行全局搜索,进而影响算法收敛速度;同时过小3值更是容易导致算法陷入局部极值。因此,一个...