(1) 当前位置;
(2) 当前速度;
(3) 当前位置与自己最好位置之间的距离;
(4) 当前位置与群体最好位置之间的距离。
优化搜索正是在由这样一群随机初始化形成的粒子而组成的一个种群中,以迭代的方式进行的。
2.1.1 基本原理
粒子群优化算法源于对鸟群捕食行为的模拟。设想这样一个场景【9】:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在那里,但是它们知道当前的位置距离食物还有多远。那么找到食物的最简单有效的策略是什么呢?最简单有效的就是搜寻目前距离食物最近的鸟的周围区域,利用搜索过程中离食物最近鸟的经验及自身经验,整个鸟群便很容易找到食物的位置所在。PSO 算法就是从这种生物碱种群行为特性中得到启发并用于求解优化问题。
假设在一个D文的目标搜索空间中【10】,有m个粒子组成一个群落,其中第i个粒子的位置表示为一个D文的向量Xi=(xi1,xi2,xi3...xid);第i个粒子的历史最优位置为Pi=(pi1,pi2,...,pid);整个粒子群迄今为止搜索到的最好位置记为Pg=(pg1,pg2,...,pgd);第i个粒子的“飞翔”速度也是一个D文的向量Vi=(vi1,vi2,...,vid);决定粒子在搜索空间单位迭代次数的位移。PSO是一种基于迭代的工具。粒子按如下公式来调整自己的位置:
其中,k为迭代次数,加速常数c1和c2为非负数;rand()为在 间取值的随机函数;Vmax是常数,限制了速度的最大值(由用户设定),粒子在每一文飞行的速度,不能超过算法设定的最大速度Vmax。当Vmax较大时,微粒的飞行速度大,有利于全局搜索,但有可能飞过最优解;Vmax较小时,微粒可在特定区域内精细搜索, 但容易陷入局部最优。公式(2-1)主要通过三部分来计算粒子i新的速度:粒子前一时刻的速度,粒子当前位置与自己最好位置之间的距离,粒子当前位置与群体最好位置之间的距离。粒子通过公式(2-2)计算新位置的坐标,通过式(2-1)、(2-2)粒子决定下一步的运动位置【11】。粒子在解空间内不断个体极值和全局极值进行搜索,直至达到规定的迭代次数或满足规定的误差标准为止 。(粒子移动搜索的原理图如图2-1所示)
图2-1 粒子搜索移动原理图
式(2-1)中第一部分为微粒先前的速度,它使微粒有在搜索空间中扩张的趋势,从而使算法有全局搜索的能力;第二部分为“认知(cognition)”部分,表示微粒吸取自身经验知识的过程;第三部分为“社会(social)”部分,表示微粒学习其他粒子经验的过程,表现了微粒间信息的共享与社会协作。没有第二部分的模型被称为只有社会部分的模型(Social_Only Model),该模型收敛速度比较快,但对于复杂问题易陷入局部最优值。没有第三部分的模型被称为只有认知的模型(Cognition_Only Model),该模型在处理问题时从未得到可以接受的解,因为个体间没有联系,一个规模为m的群体等价于m个微粒单独运行,所以得到最优解的几率非常小。
2.1.2 基本PSO算法流程
基本PSO算法的实现步骤如下:
(1)初始化粒子群设定加速系数c1,c2,最大进化代数,初始搜索点的位置及其速度,每个粒子的Pbest值为当前位置。
(2) 计算粒子适应度值已知各粒子的位置,根据适应度函数(如最小均方误差函数)求解各粒子的适应度值。
(3) 求解Pbest和Gbest值如果粒子的适应度值好于该粒子当前的个体极值,则将Pbest设置为该粒子的位置,且更新个体极值。如果所有粒子的个体极值中最好的好于当前的全局极值,则将Gbest设置为该粒子的位置,记录该粒子的序号,并更新全局极值。 粒子群优化算法的研究与改进(5):http://www.youerw.com/zidonghua/lunwen_7052.html