2.793

2018影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

萤火虫算法智能优化粒子滤波

田梦楚 薄煜明 陈志敏 吴盘龙 赵高鹏

田梦楚, 薄煜明, 陈志敏, 吴盘龙, 赵高鹏. 萤火虫算法智能优化粒子滤波. 自动化学报, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
引用本文: 田梦楚, 薄煜明, 陈志敏, 吴盘龙, 赵高鹏. 萤火虫算法智能优化粒子滤波. 自动化学报, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
TIAN Meng-Chu, BO Yu-Ming, CHEN Zhi-Min, WU Pan-Long, ZHAO Gao-Peng. Firefly Algorithm Intelligence Optimized Particle Filter. ACTA AUTOMATICA SINICA, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
Citation: TIAN Meng-Chu, BO Yu-Ming, CHEN Zhi-Min, WU Pan-Long, ZHAO Gao-Peng. Firefly Algorithm Intelligence Optimized Particle Filter. ACTA AUTOMATICA SINICA, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221

萤火虫算法智能优化粒子滤波


DOI: 10.16383/j.aas.2016.c150221
详细信息
    作者简介:

    田梦楚 南京理工大学自动化学院博士研究生.主要研究方向为目标跟踪和智能优化算法.E-mail:tianmengchu@163.com

    薄煜明 南京理工大学自动化学院教授.主要研究方向为控制理论与应用和智能优化算法.E-mail:byming65@126.com

    吴盘龙 南京理工大学自动化学院副教授.主要研究方向为多传感器信息融合和目标跟踪.E-mail:lxxwpl@hotmail.com

    赵高鹏 南京理工大学自动化学院讲师.主要研究方向为信息融合和智能控制.E-mail:zhaogaopeng@sina.com

    通讯作者: 陈志敏 中国卫星海上测控部博士后.主要研究方向为目标跟踪,控制理论与应用,智能优化算法.本文通信作者.E-mail:chenzhimin@188.com
  • 基金项目:

    国防重点预研资助项目 40405070102

    国家自然科学基金 61501521, U1330133, 61473153, 61403421, 61203266

Firefly Algorithm Intelligence Optimized Particle Filter

More Information
    Author Bio:

    Ph.D. candidate at the School of Automation, Nanjing University of Science and Technology. Her research interest covers target tracking and intelligent optimization algorithm

    Professor at the School of Automation, Nanjing University of Science and Technology. His research interest covers control theory and control applications, and intelligent optimization algorithm

    Associate professor at the School of Automation, Nanjing University of Science and Technology. His research interest covers multi-sensor information fusion and target tracking

    Lecturer at the School of Automation, Nanjing University of Science and Technology. His research interest covers information fusion and intelligent control

    Corresponding author: CHEN Zhi-Min Postdoctor at China Satellite Maritime Tracking and Controlling Department. His research interest covers target tracking, control theory and control applications, and intelligent optimization algorithm. Corresponding author of this paper
  • Fund Project:

    and Key Defense Advanced Research Project of China 40405070102

    Supported by National Natural Science Foundation of China 61501521, U1330133, 61473153, 61403421, 61203266

图(9) / 表(1)
计量
  • 文章访问数:  1223
  • HTML全文浏览量:  160
  • PDF下载量:  1588
  • 被引次数: 0
出版历程
  • 收稿日期:  2015-04-13
  • 录用日期:  2015-09-14
  • 刊出日期:  2016-01-01

萤火虫算法智能优化粒子滤波

doi: 10.16383/j.aas.2016.c150221
    基金项目:

    国防重点预研资助项目 40405070102

    国家自然科学基金 61501521, U1330133, 61473153, 61403421, 61203266

    作者简介:

    田梦楚 南京理工大学自动化学院博士研究生.主要研究方向为目标跟踪和智能优化算法.E-mail:tianmengchu@163.com

    薄煜明 南京理工大学自动化学院教授.主要研究方向为控制理论与应用和智能优化算法.E-mail:byming65@126.com

    吴盘龙 南京理工大学自动化学院副教授.主要研究方向为多传感器信息融合和目标跟踪.E-mail:lxxwpl@hotmail.com

    赵高鹏 南京理工大学自动化学院讲师.主要研究方向为信息融合和智能控制.E-mail:zhaogaopeng@sina.com

    通讯作者: 陈志敏 中国卫星海上测控部博士后.主要研究方向为目标跟踪,控制理论与应用,智能优化算法.本文通信作者.E-mail:chenzhimin@188.com

摘要: 针对粒子滤波(Particle filter, PF)重采样导致的粒子贫化以及需要大量粒子才能进行状态估计的问题,本文结合粒子滤波的运行机制,对萤火虫算法的寻优方式进行修正,设计了新的萤火虫位置更新公式和荧光亮度计算公式,并在此基础上提出了萤火虫算法智能优化粒子滤波.该方法引入了萤火虫群体的优胜劣汰机制以及萤火虫个体的吸引和移动的行为,使粒子群智能地向高似然区域移动,提高了粒子群的整体质量.实验表明该方法提高了粒子滤波的预测精度,同时大大降低了状态值预测所需的粒子数量.

English Abstract

田梦楚, 薄煜明, 陈志敏, 吴盘龙, 赵高鹏. 萤火虫算法智能优化粒子滤波. 自动化学报, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
引用本文: 田梦楚, 薄煜明, 陈志敏, 吴盘龙, 赵高鹏. 萤火虫算法智能优化粒子滤波. 自动化学报, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
TIAN Meng-Chu, BO Yu-Ming, CHEN Zhi-Min, WU Pan-Long, ZHAO Gao-Peng. Firefly Algorithm Intelligence Optimized Particle Filter. ACTA AUTOMATICA SINICA, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
Citation: TIAN Meng-Chu, BO Yu-Ming, CHEN Zhi-Min, WU Pan-Long, ZHAO Gao-Peng. Firefly Algorithm Intelligence Optimized Particle Filter. ACTA AUTOMATICA SINICA, 2016, 42(1): 89-97. doi: 10.16383/j.aas.2016.c150221
  • 非线性系统广泛存在于实际工程应用中,例如工业控制、 目标跟踪、故障检测等,并且在系统中还可能存在非高斯噪声,这些因素会降低基于卡尔曼理论框架的常规滤波算法的性能[1-2].粒子滤波(Particle filter,PF)[3]是一种基于蒙特卡罗思想的滤波技术,由于其状态函数和观测函数没有做非线性及非高斯的假设,因此粒子滤波可以不受系统非线性和非高斯噪声的限制.针对粒子滤波的权值退化问题,可以采用重采样方法进行解决[4].但是重采样算法仅复制大权值样本[5-6],会导致粒子的贫化现象[7-8],即高权值粒子被多次复制,小权值粒子被直接舍弃.虽然较小权值的粒子对于目标状态估计的贡献有限,但是却代表着一定的状态信息,重采样阶段对粒子的舍弃,必将影响到状态估计的精度.

    针对粒子滤波的样本贫化问题,国内外学者进行了大量研究,文献[9]提出了基于权值选择的粒子滤波,该方法从大量粒子中选择权值较大的粒子用于下一时刻的状态估计,可以减轻粒子的贫化程度,但容易导致粒子权值的退化. 文献[10]提出了确定性重采样粒子滤波算法,该算法避免对低权重粒子的盲目舍弃,从而确保粒子的多样性. 文献[11] 提出了饱和粒子滤波改进算法,根据不同系统的特点选择特定的重采样方法使粒子逼近真实值. 但上述两种方法依然是基于传统重采样的框架,未能彻底解决粒子贫化的问题.

    基于群智能优化思想的PF是现代粒子滤波发展的一个崭新方向[12],将粒子滤波中的粒子视为生物集群中的个体,利用模拟生物集群的运动规律使粒子的分布更加合理.由于基于群智能优化的粒子滤波主要是对粒子的分布进行迭代寻优[13-14],并不涉及对低权重粒子的舍弃,因此可以从根本上解决粒子的贫化现象.国内外学者已成功将蚁群算法、粒子群算法、遗传算法等经典群智能优化算法与粒子滤波进行结合,并在此基础上提出了各种改进算法. 文献[15]将粒子群优化算法和蚁群优化算法的优化思想共同作用到粒子滤波的样本更新中,实现粒子之间信息共享,从而增强了算法的全局寻优能力. 文献[16]提出了自适应粒子群优化改进粒子滤波算法,自适应地控制邻域粒子的数量,提高了样本分布的合理性和滤波的精度. 文献[17]提出了基于遗传算法的粒子滤波,避免了粒子搜索区域的盲目扩大和粒子的早熟,提高了滤波算法的效率.

    萤火虫算法[18] 由剑桥大学Yang于2009 年提出,作为最新的群智能优化算法之一,该算法具有更好的收敛速度和收敛精度,且易于工程实现,但由于萤火虫算法自身运行机制的特殊性,将萤火虫算法与粒子滤波进行直接融合会存在难以避免的问题,例如粒子交互会导致运算复杂度的大幅增加、局部最优现象会导致鲁棒性的降低等,因此,目前国内外关于将萤火虫算法与PF 进行融合的报道较少. 2014 年,文献[19] 虽然提出了基于人工萤火虫群优化的粒子滤波算法,但该算法只是利用了萤火虫算法的粒子转移公式用来重组样本,没有进行粒子的迭代寻优,并不是真正意义上的群智能优化粒子滤波算法,此外该算法仍然需要抛弃低权重的粒子,无法从根本上解决粒子的贫化现象.

    针对上述问题,本研究对萤火虫算法的位置更新机制和荧光亮度更新机制进行改进,利用全局最优信息指导粒子集的整体移动,成功地将萤火虫群优化思想和粒子滤波进行结合,避免粒子交互带来的运算复杂度的明显增加,同时很好地提高了粒子滤波的精度.

    • 粒子滤波是贝叶斯估计基于抽样理论的一种近似算法,它将蒙特卡罗和贝叶斯理论结合在一起[20],其基本思想是在状态空间中寻找一组随机样本对条件后验概率密度进行近似,用样本均值代替原先需要根据后验概率密度函数所进行的积分运算,从而获得最小的方差估计. 假定非线性动态过程表示如下:

      $${{x}_{k}}=f({{x}_{k-1}},{{v}_{k-1}})$$ (1)
      $${{y}_{k}}=h({{x}_{k}},{{w}_{k}})$$ (2)

      其中,$x_{k} $ 为状态值,$f(\cdot )$ 为状态函数,$v_{k-1} $为系统噪声,$y_{k} $ 为观测值,$h(\cdot )$ 为观测函数,$w_{k} $为量测噪声.

      设状态初始概率密度为$p(x_{0} |y_{0} )=p(x_{0} )$,则状态预测方程为

      $$p({{x}_{k}}|{{y}_{1:k-1}})=\int{p({{x}_{k}}|{{x}_{k-1}})p({{x}_{k-1}}|{{y}_{1:k-1}})\text{d}{{x}_{k-1}}}$$ (3)

      状态的更新方程为

      $$p({{x}_{k}}|{{y}_{1:k}})=\frac{p({{y}_{k}}|{{x}_{k}})p({{x}_{k}}|{{y}_{1:k-1}})}{p({{y}_{k}}|{{y}_{1:k-1}})}$$ (4)
      $$p({{y}_{k}}|{{y}_{1:k-1}})=\int{p({{y}_{k}}|{{x}_{k}})p({{x}_{k}}|{{y}_{1:k-1}})\text{d}{{x}_{k}}}$$ (5)

      设已知且易采样的重要性函数为$q(x_{0:k} |y_{1:k} )$,将其改写成

      $$q({{x}_{0:k}}|{{y}_{1:k}})=q({{x}_{0}})\prod\limits_{j=1}^{k}{q({{x}_{j}}|{{x}_{0:j-1}},{{y}_{1:j}})}$$ (6)

      则权值公式为

      $$\begin{array}{*{35}{l}} {{w}_{k}}=&\ \frac{p({{y}_{1:k}}|{{x}_{0:k}})p({{x}_{0:k}})}{q({{x}_{k}}|{{x}_{0:k-1}},{{y}_{1:k}})q({{x}_{0:k-1}},{{y}_{1:k}})}= \\ {}&\ {{w}_{k-1}}\frac{p({{y}_{k}}|{{x}_{k}})p({{x}_{k}}|{{x}_{k-1}})}{q({{x}_{k}}|{{x}_{0:k-1}},{{y}_{1:k}})} \\ \end{array}$$ (7)

      从$p(x_{k-1} |y_{1:k-1} )$ 中采样$N$ 个样本点$\{x_{k-1}^{i}\}_{i=1}^{N} $,则概率密度为

      $$p({{x}_{k-1}}|{{y}_{1:k-1}})=\sum\limits_{i=1}^{N}{w_{k-1}^{i}\delta ({{x}_{k-1}}-x_{k-1}^{i})}$$ (8)

      其中,$\delta (\cdot )$ 为狄拉克函数.

      概率密度更新公式为

      \begin{align}w_{k}^{i} =w_{k-1}^{i} \frac{p(y_{k} |x_{k}^{i} )p(x_{k}^{i}|x_{k-1}^{i} )}{q(x_{k}^{i} |x_{k-1}^{i} ,y_{k} )}\end{align} (9)

      状态输出

      \begin{align}x_{k} =\sum\limits_{i=1}^N {w_{k}^{i} x_{k}^{i} }\end{align} (10)

      从上述过程可以看出,从$k=0$ 时刻开始,粒子滤波系统首先对样本进行初始化.系统确定目标状态的先验概率,给每个粒子赋予相应的初始值. 在下一时刻,系统首先进行状态转移,每个粒子按照设置的状态转移方程对自身的状态进行传播,然后进行系统观测,得到观测值,计算所有粒子的权重.最后进行粒子加权,从而得到后验概率的输出,同时样本经过重采样后继续进行系统状态的转移,构成了一个循环跟踪系统.

    • 萤火虫算法是通过模拟萤火虫的群体行为构造出的一类随机优化算法[21].其仿生原理是: 用搜索空间中的点模拟自然界中的萤火虫个体,将搜索和优化过程模拟成萤火虫个体的吸引和移动过程,将求解问题的目标函数度量成个体所处位置的优劣,将个体的优胜劣汰过程类比为搜索和优化过程中用好的可行解取代较差可行解的迭代过程.

      目前公认的萤火虫算法有两种版本,一种是由印度学者Krishnanand等于2006 年提出,称为GSO (Glowworm swarm optimization)[22];另一种由剑桥学者Yang 等于2010 年提出,称为FA (Firefly algorithm)[23]. 两种算法的仿生原理相同,但在具体实现方面有一定差异. 考虑到与粒子滤波算法的相容性,本研究以FA 为基础进行改进和扩展. 在FA 中,萤火虫发出光亮的主要目的是作为一个信号系统,以吸引其他的萤火虫个体,其假设为: 1) 萤火虫不分性别,它将会被吸引到所有其他比它更亮的萤火虫那去;2) 萤火虫的吸引力和亮度成正比,对于任何两只萤火虫,其中一只会向着比它更亮的另一只移动,然而,亮度是随着距离的增加而减少的; 3) 如果没有找到一个比给定的萤火虫更亮,它会随机移动.

      如上所述,萤火虫算法包含两个要素,即亮度和吸引度.亮度体现了萤火虫所处位置的优劣并决定其移动方向,吸引度决定了萤火虫移动的距离,通过亮度和吸引度的不断更新,从而实现目标优化. 从数学角度对萤火虫算法的主要参数进行如下描述:

      1) 萤火虫的相对荧光亮度为

      $$I={{I}_{0}}\times {{\text{e}}^{-\gamma {{r}_{ij}}}}$$ (11)

      其中,$I_{0} $ 为萤火虫的最大萤光亮度,与目标函数值相关,目标函数值越优自身亮度越高; $\gamma $ 为光强吸收系数,荧光会随着距离的增加和传播媒介的吸收逐渐减弱; $r_{ij} $ 为萤火虫$i$与$j$ 之间的空间距离.

      2) 萤火虫的吸引度为

      $$\beta ={{\beta }_{0}}\times {{\text{e}}^{-\gamma r_{ij}^{2}}}$$ (12)

      其中,$\beta_{0} $ 为最大吸引度; $\gamma $ 为光强吸收系数; $r_{ij}$ 为萤火虫$i$ 与$j$ 之间的距离.

      3) 萤火虫$i$ 被吸引向萤火虫$j$ 移动的位置更新公式如式(13) 所示:

      $${{x}_{i}}={{x}_{i}}+\beta \times ({{x}_{j}}-{{x}_{i}})+\alpha \times \left( rand-\frac{1}{2} \right)$$ (13)

      其中,$x_{i} $,$x_{j} $ 为萤火虫$i$和$j$ 所处的空间位置; $\alpha$$\in$ $[0,1]$ 为步长因子; rand 为$\left[{0,1} \right]$上服从均匀分布的随机数.

    • 传统的粒子滤波重采样方法通过删除小权值粒子集来避免粒子匮乏的现象,但经过多次迭代后,将带来粒子的贫化问题. 针对以上问题,本研究提出利用萤火虫算法对粒子滤波进行优化的思想.

      萤火虫算法先将萤火虫群体随机分布在解空间中,每个萤火虫个体由于所处位置不同,其发出的荧光亮度也不同,通过比较荧光亮度,亮度高的萤火虫可以吸引亮度低的萤火虫向自身移动,移动的距离主要取决于吸引度的大小和步长的大小. 根据式(4) 来计算更新后的位置. 这样通过多次移动后,所有个体都将聚集在亮度最高的萤火虫的位置上,从而实现最终的寻优.

      从上述运行机制看,可以考虑利用FA的群智能性优化粒子滤波的样本,但如果直接将萤火虫群优化思想与粒子滤波直接进行融合,会导致许多的问题(具体分析在第4.1 节和第4.2 节中).因此需要对萤火虫算法的内部寻优机制进行修正和改进.

    • 针对FA-PF 位置更新方式的设计,本文从运算复杂度和全局寻优能力两方面进行研究分析.

      1) 在标准萤火虫群优化算法的寻优机制中,萤火虫根据其邻域中各个萤火虫的荧光素浓度来决定其移动方向,从位置更新公式可以看出,要完成该步骤,粒子滤波需要用粒子$i$($i=1,2,\cdots,N$,$i\ne j)$ 和其余粒子$j$ $(j=1,2,\cdots,N$,$j\ne i)$ 进行交互运算,这将使粒子滤波运算复杂度提高一阶,会严重影响滤波的实时性.

      2) 在标准萤火虫算法的位置更新机制中,完成每次交互,都需根据最大吸引度、光强吸收系数以及距离等参数重新计算粒子$i$和每个粒子$j$ 之间的吸引度,这又从另外一个方面提高了粒子滤波的运算复杂度.

      3) 萤火虫算法与其他群智能优化算法一样,都存在出现局部极值现象的可能性. Yang也意识到了这个问题,因此在位置更新公式中增加了扰动项$\alpha$ $×$ $(rand-1/2) $,该方法可以一定程度上降低局部极值出现的概率,但现有的研究均表明,在群智能优化算法中仅简单地增加$rand$ 扰动项来克服局部极值现象,效果并不理想.

      针对以上问题,本研究对萤火虫群优化算法的位置更新公式进行改进,设置粒子目标函数的计分板,将各个迭代子时刻的粒子目标函数值与计分板的目标函数值进行对比,从而得到当前滤波时刻所有粒子所经历的全局最优值,用全局最优值代替粒子$j$ 与粒子$i$ 进行信息交互. 为此,重新定义萤火虫算法的位置更新公式:

      定义 1. 修正位置更新公式.

      $$\begin{align} & x_{k}^{i}=x_{k}^{i}+\beta \times \left( gbes{{t}_{k}}-x_{k}^{i} \right)+ \\ & \alpha \times \left( rand-\frac{1}{2} \right) \\ \end{align}$$ (14)

      其中,$x_{k}^{i} $ 为序号为$i$ 的粒子在$k$ 时刻的状态值,$\beta $为粒子间的吸引度,$\alpha $ 为步长因子,$rand$ 是$\left[{0,1}\right]$ 之间的随机数,$gbest_{k} $ 为全局最优值. 从理论上分析,首先,由于粒子群的全局最优值只有一个,因此粒子滤波中的粒子$i$只需与全局最优值进行对比,避免了高一阶的交互运算和对粒子间吸引度的重复计算,该阶段的运算复杂度可由原先的${\rm O}(N^{2})$ 减少至${\rm O}(N)$,从而确保了滤波算法的实时性. 其次,用全局最优值代替粒子$j$与粒子$i$进行信息交流,实质上是用全局最优值来指导粒子群的整体运动,可以明显提高萤火虫优化部分的全局寻优能力,从而可以明显降低出现局部极值的概率. 最后,该改进思路可以使滤波算法用更少的迭代次数和粒子数寻找到更优值,这又从另一个方面明显减少粒子滤波的运算复杂度,更易于工程实现.

    • 标准萤火虫算法中,每一只萤火虫都需要和其他的萤火虫对比在当前所处位置的荧光亮度,亮度高的萤火虫可以吸引亮度低的萤火虫向自己移动,若将该方式直接应用于粒子滤波,这会再次增加粒子滤波的运算复杂度.同时,本研究考虑到若要确保滤波器的精度,需在萤火虫的自适应迭代寻优中引入最新的观测值,因此本研究提出修正的荧光度计算公式.

      定义 2. 修正荧光亮度计算公式

      \begin{align}I={\rm abs}(z_{\rm new} -z_{\rm pred} (i))\end{align} (15)

      其中,$I$ 为修正后的荧光亮度,$z_{\rm new} $ 为滤波器最新的观测值,$z_{\rm pred} $ 为滤波器预测的观测值.

      从修正后荧光亮度计算公式可以看出,其利用观测值和每个粒子的预测观测值进行对比,由于每个时刻的观测值只有一个,因此可以避免每一个粒子和其他的粒子对比在当前所处位置的荧光亮度所带来的运算复杂度.

      若要将修正荧光亮度计算公式扩充到多维情况下,其核心思路是求出预测观测值和最新观测值在多维空间中的空间差值,例如红外目标跟踪中的二维坐标信息,目标的预测坐标值为$(x_{p} ,y_{p})$,最新观测坐标值为$(x_{o} ,y_{o} )$,则修正荧光亮度计算公式可以设计为

      \begin{align}I={\rm abs}(x_{p} -x_{o} )+{\rm abs}(y_{p} -y_{o} )\end{align} (16)

      如果是雷达目标跟踪中的三维坐标信息,目标的预测坐标值为$(x_{p},y_{p} ,z_{p} )$,最新观测坐标值为$(x_{o} $,$y_{o} $,$z_{o} )$,则修正荧光亮度计算公式可以设计为

      \begin{align}I=&\ {\rm abs}(x_{p} -x_{o} )+{\rm abs}(y_{p} -y_{o} )~+ \notag\\&\ {\rm abs}(z_{p} -z_{o} )\end{align} (17)
    • 修正后的萤火虫算法与原始萤火虫算法相比,其用全局最优值来代替粒子间的相互对比,这会提高萤火虫算法的全局寻优能力,且明显减少运算复杂度;但是辩证地说,这也降低了萤火虫算法的局部寻优能力,而上述修正萤火虫算法的特点是非常适用于粒子滤波的,首先,FA-PF是在标准粒子滤波的基础上进行萤火虫算法迭代寻优,而粒子滤波中状态值的分布本身就有一定的准确性,因此局部寻优能力的降低对粒子滤波影响不是很大; 其次,FA-PF本身的迭代次数不是很多,因此其需要很强的全局寻优能力来指导粒子移动,而这正是修正萤火虫算法的特点; 最后,修正萤火虫算法在运算实时性方面优势明显,这也是粒子滤波所迫切需要的. 综上,本文提出的萤火虫算法智能优化粒子滤波是可行的.

    • 步骤 1. 在初始时刻,采样$N$ 个粒子$\{x_{0}^{i} ,i=$$1,\cdots,N\}$ 作为算法的初始粒子. 重要性密度函数用式(18) 表示

      \begin{align}x_{k}^{i} \sim q\left(x_{k}^{i} |x_{k-1}^{i} ,z_{k}\right)=p\left(x_{k}^{i} |x_{k-1}^{i} \right)\end{align} (18)

      步骤 2. 模拟萤火虫优化思想的吸引行为和移动行为.

      1) 计算粒子$i$ 和全局最优值之间的吸引度.

      \begin{align}\beta =\beta_{0} × {\rm e}^{-\gamma r_{i}^{2} }\end{align} (19)

      其中,$\beta_{0} $ 为最大吸引度,$\gamma $ 为光强吸收系数,$r_{i}$ 为粒子$i$ 与全局最优值$gbest_{k} $ 之间的空间距离.

      2) 根据吸引度更新粒子的位置.

      \begin{align}x_{k}^{i } =&\ x_{k}^{i } +\beta × \left(gbest_{k} -x_{k}^{i } \right) +\notag\\&\ \alpha × \left(rand-\frac{1}{2}\right)\end{align} (20)

      步骤 3. 计算并对比荧光亮度值,更新全局最优值.

      \begin{align}&gbest_{k}\in \left\{x_{k}^{1} ,x_{k}^{2} ,x_{k}^{3} ,\cdots,x_{k}^{N} |I(x)\right\}= \notag\\[2mm]&\qquad \max \left\{I(x_{k}^{1} ),I(x_{k}^{2} ),I(x_{k}^{3}),\cdots,I(x_{k}^{N} )\right\}\end{align} (21)

      步骤 4. 从荧光度计算公式可以看出,荧光度值随预测观测值与真实观测值的差值呈反方向变化,本文设置迭代终止阈值为0.01,当荧光度函数值大于0.01 时,则算法停止迭代,否则继续迭代至最大迭代次数. 当算法符合设定的阈值$\varepsilon $ 时,说明粒子已经分布在真实值附近,或者达到最大迭代次数时,此时停止优化.否则转入步骤2.

      步骤 5. 权重补偿及更新. 萤火虫算法与PF结合的核心思路是对PF 中的每一个粒子都进行萤火虫迭代寻优操作,使得粒子沿目标状态后验密度值更高的方向移动,提高粒子对状态估计的准确性.但萤火虫算法改变了各粒子在状态空间的位置,此时粒子集所表示的分布密度函数不再是$p(x_{k} |y_{1:k-1} )$,这样贝叶斯滤波的理论基础会丢失. 因此,本文借鉴文献[24] 的思想,在粒子位置更新的同时对权重进行补偿及更新,其具体方式如下:

      \begin{align}w_{k}^{i} =\frac{p(x_{k} =s_{k}^{i} |z_{1:k-1} )}{q(s_{k}^{i})}p(z_{k} |x_{k} =s_{k}^{i} )\end{align} (22)

      其中,$s_{k}^{i} $ 为$k$ 时刻的粒子$i$,$q(\cdot )$为重要性函数. 在权重补偿之后,优化前后的粒子集至少从理论上讲是服从同一分布的,即$p(x_{k}|y_{1:k-1} )$,从而保持了贝叶斯滤波的理论基础.

      步骤 6. 进行归一化.

      \begin{align}w_{k}^{i} =\frac{w_{k}^{i}}{\sum\limits_{i=1}^N {w_{k}^{i} }}\end{align} (23)

      步骤 7. 状态输出.

      \begin{align}\widetilde{x}=\sum\limits_{i=1}^N {w_{k}^{i} x_{k}^{i} }\end{align} (24)

      上述思路充分利用了整个粒子集中的有效信息,有利于粒子跳出局部极值,减少算法的迭代次数浪费在状态值变化不明显的情形,使得改进算法更多地由于达到初始设置的阈值$\varepsilon $而停止优化,减少了算法迭代至最大迭代次数才停止的概率,从而进一步提高了运算速度. 在有效粒子样本的数量上,上述方式可以增加粒子的多样性,从而提高粒子样本的质量.

      由于萤火虫算法的收敛能力较强,因此我们在FA-PF中通过设置最大迭代次数和终止阈值的方式对算法的迭代次数进行限制,使得粒子群整体向真实区域移动,但又避免最终收敛,具体原因如下: 1) FA-PF 的核心思想是让粒子集对高似然区域有更合理的覆盖,既要有一定广度,保证能在下一时刻能捕获真实值,又要有一定集中度以保证采样效率,并不是要将粒子全部集中在真实值附近.如果所有的粒子均集中在真实值附近,反而会降低粒子的多样性. 2) 如果迭代次数过多,会造成FA-PF 的运算复杂度较PF 有明显提高,这会降低FA-PF 的实时性.

    • 实验硬件条件为英特尔i5-4200U 处理器、8G内存,软件环境为Matlab2010b,选取单变量非静态增长模型,仿真对象的过程模型和量测模型如下:

      过程模型:

      $$\begin{align} &x(t)=0.5x(t-1)+\frac{25x(t-1)}{1+{{[x(t-1)]}^{2}}}~+ \\ &8\cos [1.2(t-1)]+w(t) \\ \end{align}$$ (25)

      量测模型:

      \begin{align}z(t)=\frac{x(t)^{2}}{20}+v(t)\end{align} (26)

      式中,$w(t)$ 和$v(t)$ 为零均值高斯噪声.由于该系统是高度非线性,并且似然函数呈双峰状,因此,传统的滤波方法很难处理此系统.设系统噪声方差$Q$ $=$ $1$ 和$Q=10$,量测噪声方差$R=1$,滤波时间步数为50,在萤火虫算法中,一般设置最大吸引度为[0.8,1]区间内的常数,本文设置最大吸引度为0.85; 步长因子一般设置为[0,1]之间的常数,步长因子越高,则全局寻优能力越强,但会降低收敛精度;步长因子越低,则局部寻优能力越强,但会降低收敛速度,本文设置步长因子为0.4. 此外,光强吸收系数一般情况下设置为1.

      上述设置均是在参考现有文献通常参数设置的基础上,经过多次实验得到.根据前期研究,目前较为通用的设置为最大吸引度为1、步长因子为0.3、最大光强吸收系数为1,萤火虫算法FA 在群智能优化算法中,所需设置的参数相对较少,一般情况下该通用设置可以使得FA-PF 在多数非线性问题中均取得优于PF的效果,但不一定是最佳效果,因此需要在上述通用设置的基础上利用数值法进行参数微调,这样可以取得最佳效果. 本文利用PF 和FA-PF对该非线性系统进行状态估计和跟踪.

      均方根误差公式为

      $$RMSE={{\left[ \frac{1}{T}\sum\limits_{t=1}^{T}{({{x}_{t}}-{{{\hat{x}}}_{t}}}{{)}^{2}} \right]}^{\frac{1}{2}}}$$ (27)

      为了证明FA-PF 的优势,这里在仿真实验中将FA-PF 同时和PF以及粒子群优化粒子滤波(Particle swarm optimized particle filter,PSO-PF)[25] 进行对比测试. 在PSO-PF 部分,设置学习因子$c_{1}$$=$ $c_{2} =2$,惯性权重线性递减,其最大值为0.9,最小值为0.3.

    • 1) 当粒子数$N=20$、$Q=1$ 时,仿真结果如图 1图 2 所示.

      图  1  滤波状态估计 (${N}=20$,$Q= 1$)

      Figure 1.  State estimation of filter ($N= 20$,$Q= 1$)

      图  2  滤波误差绝对值 ($N= 20$,$Q= 1$)

      Figure 2.  Absolute value of filter error ($N= 20$,$Q= 1$)

      2) 当粒子数$N=50$、$Q=1$ 时,仿真结果如图 3图 4 所示.

      图  3  滤波状态估计 ($N= 50$,$Q= 1$)

      Figure 3.  State estimation of filter ($N= 50$,$Q= 1$)

      图  4  滤波误差绝对值 ($N= 50$,$Q= 1$)

      Figure 4.  Absolute value of filter error ($N= 50$,$Q= 1$)

      3) 当粒子数$N=100$、$Q=1$ 时,仿真结果如图 5图 6 所示.

      图  5  滤波状态估计 ($N= 100$,$Q=1$)

      Figure 5.  State estimation of filter ($N= 100$,$Q= 1$)

      图  6  滤波误差绝对值 ($N= 100$,$Q= 1$)

      Figure 6.  Absolute value of filter error ($N= 100$,$Q= 1$)

      表 1  实验结果对比

      Table 1.  Comparison of simulation results

      参数PFRMSE PSO-PFFA-PFPF运算时间(s)PSO-PFFA-PF
      $N= 20,~ Q= 1$ 6.5276 4.6309 4.2862 0.0928 0.1259 0.1108
      $N= 50,~ Q= 1$ 5.5987 4.2807 4.10670.1167 0.1492 0.1367
      $N = 100,~ Q = 1$ 4.7243 4.1109 4.0929 0.1245 0.1977 0.1674
      $N = 20,~ Q = 1$0 7.8860 5.3516 5.02350.0947 0.1284 0.1162
      $N = 50,~ Q = 1$0 6.2733 4.8920 4.7043 0.1150 0.1576 0.1425
      $N = 100,~ Q = 1$0 5.3569 4.5583 4.5481 0.1233 0.2031 0.1739

      图 16 中可以看出,相对于标准PF 和PSO-PF,本文提出的FA-PF 算法具有更精确的状态值预测精度,这是因为FA-PF在PF 的基础上,通过迭代寻优的粒子状态更新方式提高了粒子分布的合理性. 从表1中可以看出,FA-PF 在粒子数为20 的情况下,无论是在运算时间还是在运算精度上,均优于粒子数为100 的PF,说明了FA-PF 可以用很少的粒子数达到所需的精度,且具有很高的精度速度综合性价比. 但我们也看到,FA-PF 与PSO-PF 相比,前者在粒子数为20 和50 时精度优势更为明显,而当粒子数为100 时,两者的精度大致相同,这说明FA-PF 更适合在粒子数更少的情况下使用.此外,与PSO-PF 相比,FA-PF 的位置更新公式的运算操作数相对更少,因此其整体运算时间也是略小于PSO-PF. 综上分析,FA-PF具有更高的运算综合效率.

      从理论上说,粒子滤波的运算复杂度与粒子数呈近似线性关系,但本节仿真测试的目的之一是为了证明FA-PF可以利用很少的粒子数达到所需的精度,因此在实验中设置的粒子数较少,而粒子数从20 提高到100所增加的时间远小于仿真程序启动运行等动作的基本时间开销,这里不能体现出近似线性的关系,若在此基础上进一步增加粒子数,则可体现出明显的近似线性的关系.

    • 为了测试FA-PF运行时的样本多样性,也结合实际应用中滤波器长时间工作的需求,这里将运行步数增加至100.取滤波器在$k= 10$、$k= 25$、$k= 95$ 时刻的粒子分布情况,如图 79 所示.

      图  7  $k= 10$ 时粒子状态分布情况

      Figure 7.  Particle distribution when $k= 10$

      图  8  $k= 25$ 时粒子状态分布情况

      Figure 8.  Particle distribution when $k= 25$

      图  9  $k=$ 95 时粒子状态分布情况

      Figure 9.  Particle distribution when $k=$ 95

      图 79 可以看出,标准PF 算法的粒子多样性表现较为一般,尤其在滤波后期,粒子分布往往集中在少数的状态值上,降低了粒子的多样性,不利于滤波器的状态估计. 而在FA-PF 中,粒子在整体向高似然真实区域移动的同时,在低似然区域也合理地保留了部分粒子,其在整个滤波的过程中确保了粒子多样性. 此外,FA-PF没有进行传统的重采样,可以避免粒子贫化现象的出现.

    • 传统的粒子滤波往往需要大量的粒子才能进行有效的状态估计,并且重采样引起的粒子贫化会严重影响粒子滤波的性能.本文结合粒子滤波的特点,对萤火虫算法的位置更新公式和荧光亮度计算公式进行改进,提出了萤火虫算法智能优化粒子滤波,避免了FA 和PF进行交互运算而产生的高运算复杂度,同时结合了最新的观测值,使粒子模拟萤火虫个体,智能地向全局范围内更优的位置移动,提高了样本整体的质量.实验结果证明了本文算法可以明显提高粒子滤波的综合性能,且很好地保持了粒子的多样性.

参考文献 (25)

目录

    /

    返回文章
    返回