基于自适应Kalman滤波的改进PSO算法

作者:戴邵武;王克红;戴洪德 刊名:海军航空工程学院学报 上传者:段鸿飞

【摘要】针对基于Kalman滤波的PSO算法在设计与应用过程中存在的不足,提出了基于自适应Kalman滤波的改进PSO算法。利用粒子群状态空间Markov链模型,建立粒子群系统状态方程;采用粒子的速度和位置作为观测量,构建观测方程;引入记忆衰减因子动态调整Kalman滤波模型参数及噪声方差阵,降低模型误差,提高粒子的位置估计精度。仿真实验表明:改进的PSO算法无论在优化精度、收敛速度,还是在稳定性方面都有很大的改进和提高,这就有效避免了粒子的"早熟"收敛问题;尤其在处理复杂多峰问题上,改进算法表现出很明显的优越性。

全文阅读

粒子群优化(ParticleSwarmOptimization,PSO)算法是美国社会心理学家Kennedy与电气工程师Eb-erhart于1995年提出的,算法源于模拟鸟群飞行觅食行为,通过个体间的合作与竞争来实现全局搜索[1]。但是基本PSO算法存在“早熟”、易陷入局部最优以及探测能力不足的缺点。为此,许多学者从PSO算法模型参数[2-3]、邻域拓扑结构[4]、粒子信息共享机制[5]、概率分布[6]等方面出发,提出了多种改进算法。随着PSO算法研究的不断深入,一些学者通过引入其他学科理论提出了混合PSO算法[7-8]。美国学者Monson.C在2004年提出了卡尔曼粒子群优化算法[9],重点关注PSO算法中粒子的运动,应用Kalman滤波来更新粒子的位置,增强粒子的开拓能力,但又不损失算法的快速性。武汉大学的黄天戍教授也对基于Kalman滤波器原理的PSO算法[10]进行了研究,证明了基于Kalman滤波的PSO算法(KalmanPSO,KPSO)在全局搜索能力和局部搜索能力方面都强于基本PSO算法。Satap-athy应用基于Kalman滤波的PSO算法成功解决了数据分类问题[11]。尽管如此,Monson在文献中只报道了Kalman滤波对基本PSO算法搜索能力的提升,但对滤波器的设计没有进行深入的探讨,对滤波器应用过程中存在的缺陷没有分析;粒子运动的建模也只采用了线性模型,而实际的粒子运动是非常复杂的随机运动,滤波模型参数难以适应实际系统,容易导致滤波发散。针对上述问题,本文提出了基于自适应Kalman滤波的改进PSO算法(AdaptiveKalmanPSO,AKP-SO),设计了Kalman滤波模型,引入衰减因子动态调整滤波器参数,降低模型误差,提高了粒子位置的估计精度。1粒子群优化算法1.1粒子群优化算法描述PSO算法中,每个优化问题的解被看作搜索空间的一个点,称之为“粒子”。所有粒子都有一个由被优化的函数来决定的适应值,在整个迭代进化过程中,粒子通过跟踪个体最优解pbest和群体最优解gbest来动态更新自己的速度和位置,速度和位置更新方程如下[12]:???vk+1i=vki+c1r1(gbest)k-xki+c2r2(pbest)ki-xkixk+1i=xki+vk+1i。(1)式(1)中:vki、xki、pbestki是粒子i在第k时刻迭代中的速度、位置和个体最优位置;gbestk是整个种群在第k时刻迭代中的最优位置;r1、r2是[0,1]上的随机数;为惯性系数;c1、c2是加速系数(或称学习因子)。为减少进化过程中粒子离开搜索空间的可能性,vi通常限定于一定范围,即vi[-v]max,vmax。1.2PSO状态空间的Markov链模型根据文献[12-13],PSO算法中粒子的速度、位置、个体最优位置、全局最优位置共同组合构成的状态是一个Markov状态,即粒子下一时刻的状态空间仅仅与前一时刻的状态空间有关,且状态空间为可列集,粒子不同时刻的状态序列构成马尔科夫链。考虑最小化优化问题minf(y),y?D,其中:D是优化问题的维数,y?D是优化问题的可行域,f:?D?是需要最小化的目标函数。根据式(1)重新列写PSO算法为:?vki=vk-1i+c1r1(gbest)k-1-xk-1i+c2r2(pbest)k-1i-xk-1ixki=xk-1i+vkipbestki=12(x)ki+pbestk-1i+12(x)ki-pbestk-1i?gbestk=pbestkj,j=argmin0iN{f(pbest)}ki。(2)式(

参考文献

引证文献

问答

我要提问