粒子滤波算法性能研究本科毕业设计.docx_第1页
粒子滤波算法性能研究本科毕业设计.docx_第2页
粒子滤波算法性能研究本科毕业设计.docx_第3页
粒子滤波算法性能研究本科毕业设计.docx_第4页
粒子滤波算法性能研究本科毕业设计.docx_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计题 目 粒子滤波算法性能研究 学 院 管理科学与工程学院 专 业 电子信息工程 60安徽财经大学管理科学与工程学院本科毕业论文摘要粒子滤波算法是一种基于社会型生物群体智能的全局搜索算法,粒子滤波算法通过粒子群中粒子间的合作在复杂的搜索空间中找到全局的最优解。这种算法具有易理解、易实现、参数少、搜索能力强等特点,受到了学术界广泛关注,已经成为发展最快的优化算法之一。论文介绍了粒子滤波算法的原理、特点。围绕粒子滤波算法的原理特点和参数的设置进行了各方面的阐述和论证,利用程序迭代多次观察粒子分布的方法,系统的分析了粒子滤波算法中的各个参数,论证评估了各种改进粒子滤波算法的方法的性能和可行性。最后对粒子滤波算法的研究和应用提出了一些建议和展望。关键词:粒子滤波算法;改进;最优解;参数设置abstractparticle swarm optimization algorithm is a social humanoid swarm intelligence-based global search algorithm, particle swarm optimization algorithm to find the global optimal solution in a complex search space through cooperation between particles in particle swarm. pso algorithm is easy to understand, easy to implement, parameters, search ability, has been widespread concern in academic circles, has become the fastest growing one of the optimization algorithm. the paper describes the principles, characteristics of particle swarm optimization algorithm. around the principle characteristics and parameters of particle swarm optimization algorithm settings exposition and demonstration by an iterative repeatedly observed particle distribution method to analyze the various parameters of the particle swarm algorithm demonstrated a variety of improved particle swarm algorithm performance and feasibility of the method. finally, the study and application of the particle swarm optimization algorithm put forward some proposals and outlook.key words: particle swarm optimization; improved; optimal solution;parameter settings安徽财经大学管理科学与工程学院本科毕业论文目录1.引言21.1相关背景21.2研究内容和实际意义22.粒子滤波算法22.1粒子滤波算法的起源22.2粒子滤波算法算法原理和参数分析22.3粒子滤波算法流程22.4标准粒子滤波算法举例23.粒子滤波算法性能和改进23.1标准粒子滤波算法23.2粒子滤波算法的改进23.2.1带压缩因子的粒子滤波算法23.2.2线性递减权重的粒子滤波算法23.2.3自适应权重法23.2.4随机权重法23.2.5同步变化学习因子法23.2.6异步变化的学习因子法23.2.7二阶粒子滤波算法23.2.8二阶振荡粒子滤波算法24.总结和展望2安徽财经大学管理科学与工程学院本科毕业论文粒子滤波算法性能研究1.引言1.1相关背景最近几年,人们通过对社会型生物的群体行为观察模拟,提出了一种新的生物启发式计算方法群体智能算法。群体智能算法中最具有代表性的两种算法是基于蚂蚁寻找路径的蚂蚁算法和通过鸟类觅食行为总结的粒子滤波算法。自从群体智能算法提出以来,引发了各个领域专家们的广泛关注,成为了人工智能以及电子,生物,经济等尖端的跨学科研究领域。在大自然中我们经常可以看到这样想现象:一群鸟寻找食物,这个过程是随机的。在搜索区域里有一只虫子,任何一只鸟不知道虫子在哪里,但是他们知道自己当前所处位置到虫子的距离。鸟群找到虫子最佳方法是什么?最简单的方法是从离虫子最近的鸟周围的区域开始搜索,利用搜索过程中的离虫子最近的那只鸟的经验以及每只鸟自身的经验,鸟群便能很快找到虫子的位置。我们将鸟儿寻找食物的过程和粒子滤波算法相比较:每个最优解都是定义域里的一只鸟,将每只鸟都看成定义域里的一个微粒,这个粒子没有质量没有体积,只有速度和位置。这些粒子的适应值是由优化函数所决定的,每个粒子在进行初始化的时候都有一个随机的速度和随机的位置,其中微粒的速度确定了微粒飞行的方向和距离。假设,鸟类记录了到其当前位置所经历过的最佳位置。这是微粒的飞行经验。每个微粒都知道所有的微粒在整个鸟群中找到的最优解。这是整个种群的经验。所以,这个问题解决的过程,可以看作是一群鸟,在一起合作寻找虫子,虫子的位置是最佳的解决方案。 粒子滤波算法反映的是鸟群中信息的共享。可以看出,粒子滤波算法是简化的社会系统的仿真。在1995年,j.kennedy和r.c.eberhart首次提出粒子滤波算法。这种算法是一种基于群体的优化技术,通过一组群体在搜索空间进行搜索。并且它不需要梯度信息,对问题的依赖性小,概念简单,程序易实现,参数较少。所以自从pso粒子滤波算法诞生之日起就引来了各个国家的研究人员的关注,掀起了一股研究热潮,在诸多领域学科得到了成功的应用。由于粒子滤波算法研究历史尚短,算法的理论基础比较薄弱,其理论研究和实践应用范围还都需要进一步拓展。本课题正是在这样一个背景下开展了对粒子滤波算法性能方面的研究和改进。1.2研究内容和实际意义粒子滤波算法从随机解出发,迭代来寻找问题的最优解。通过答案的适应度来评价解的品质。其具有精度高,收敛快,实现容易等特点粒子滤波算法在各类优化问题中应用十分广泛,如求解旅行商问题、背包问题、车间调度问题、自动目标检测、生物信号识别、基于粒子滤波算法的神经网络训练、物流配送中心选址等。2.粒子滤波算法2.1粒子滤波算法的起源粒子滤波算法的产生来源于简化的社会模型。它是人们受到鸟群、鱼群和我们人类自己的社会行为的启发而提出来的。大自然界中存在许多群居生活的生物,如鱼群、鸟群。许多科学家对这种群居生活的生物的行为进行过大量研究。上世纪80年代,生物学家c.w.reynolds提出了模拟鸟群飞行的模型,这是一个影响力非常大的鸟群聚集模型。我们可以这么设定这个模型,每只鸟的运动只受它周围的鸟儿的影响,每只鸟的运动都需要符合这三个规则:(1)避免碰撞:鸟儿的运动过程中不能和临近的鸟儿发生碰撞;(2)速度一致:和周围的鸟儿的平均速度相等;(3)向中心聚集:向周围鸟群的平均位置运动。模拟实验发现在初始时段处于随机状态的鸟通过自我组织逐渐聚集在一起,形成许多个小群落,并以同样的速度运行,然后一些小的群落聚集在一起,形成了巨大的群落,群落可分散成若干小的群落。粒子的这些行为和现实生活中鸟类的飞行特性基本相同。从生物学观点来看,一个鸟类的群体里所有的鸟儿一起起飞这个整体的行为是建立在每只鸟对周围的局部感知上面,这中间并不存在一个集中控制者。也就是说整个种群是组织起来的,但是没有一个组织者,群体之间相互协调过程中也没有一个协调者。人们在对于一个事情做出决定的时候,都是基于两种信息:自己的经历和他人的意见。我们也可以这么理解,人们根据自己的经验和自己交际圈中他人的经历进行综合考虑,做出决策。粒子滤波算法的核心思想就是种群中每个个体之间对自我经历的经验分享,有利于整个生物种群的进化。1995年,美国的j.kennedy和r.c.eberhart正式提出粒子滤波算法。 2.2粒子滤波算法算法原理和参数分析所有微粒的适应值finess都是由函数所决定的,我们在初始化粒子的时候还会赋予他一个随机的初始速度来控制微粒飞行的方向和距离。所有的微粒都存储了自己所经历过的所有的位置和其中的最优的位置,这些存储的数据都是属于粒子自己的经验。每个粒子还存储了整个粒子群中全部的粒子所经历过的所有的位置中最优的点,这是粒子群的经验。粒子根据自己的经验和粒子群的经验来做继续运动的方向和速度的决策。粒子滤波算法第一步随机初始化一定数量的微粒,然后微粒们就开始跟着目前的最优解的微粒运动搜索整个定义域,在不断的迭代终寻找到整个空间的最好的位置。我们可以假设,在d维空间中第i个粒子的位置是 ,它的速度是 ,每迭代一次,微粒都会跟踪自身所找到的最好的位置和全局搜索到的最好的位置来更新自己,如下即粒子更新自己的公式: (2.2.1) (2.2.2)方程2.2.1的右边是有三部分相加而成,第一部分是惯性权重w和粒子在t时刻的速度的乘积,代表粒子有维持先前速度的趋势,w是表示粒子对t时刻速度的继承了多少,w的值在0到1之间;第二部分是粒子对本身经验的记忆,代表着粒子对本身历史最佳的位置靠近的趋势;第三部分是粒子间的协同合作和共享信息的粒子群的经验,代表粒子有向群体的最优解的位置靠近的趋势。w是惯性权重,r1和r2是0到1之间均匀分布的随机数或者高斯随机变量,c1和c2为学习因子。粒子滤波算法的性能根本上就是取决于算法中参数的设置,下面是粒子滤波算法中各个参数的设置原则:惯性权重w:惯性权重是粒子滤波算法中非常重要的改进参数,惯性权重决定了粒子现在飞行的速度对前一时刻粒子飞行速度的继承程度,惯性权重的更改可以用来平衡粒子滤波算法在整个优化函数定义区间内的搜索能力和对于某个局部区间内的搜索能力。惯性权重的取值越小,算法对于整个定义域的搜索能力越弱,对局部的精细搜索能力越强,惯性权重越大,算法对局部的搜索能力越强,对于整个定义域的搜索能力就越弱。因此,惯性权重取恰当的值,可以提高算法性能,减少迭代次数,提高算法寻找最优解的能力,减少程序运行的时间。但是,要想达到算法性能最优,还存在一定的难度,因为当惯性权重的取值较大时,有利于全局搜索,虽然收敛速度快,但是不易得到比较精确的解;惯性权重值较小时有利于局部搜索和得到更为精确的解,但是收敛速度慢而且容易陷入局部极值。w的取值范围是0到1之间。粒子数:即粒子的数量,根据要解决的问题决定。一般来说取1530个足够,对于非常简单的优化问题810个粒子就可以,比较复杂的函数则需要50个以上的粒子。粒子的维度d:即未知数个数。粒子范围:优化问题的定义域。学习因子:学习因子决定了粒子本身的经验和群体经验对于粒子运动的影响,反应了粒子之间的经验交流。学习因子,顾名思义,就是粒子的学习能力,粒子的学习能力包括粒子对于自己经历的经验总结和整个种群中优秀个体的学习能力。如果设置较大或者较小的c1、c2值都不利于粒子的探索。在搜索的末期,粒子应该避免陷入局部极值。通常取c1=c2=2,也可以取其他值,一般来说c1和c2的值在1到2.5之间。其他参数:粒子滤波算法中参数较少,所以每个参数的设置对算法性能有较大的影响,种群大小(即粒子数目),最大迭代次数对于算法的影响也是非常大的,一般的,迭代次数和粒子数目都是和求得的解的精确程度是正相关的。但是问题并不是绝对的,因为算法本质是一种随机求解的算法,即使设置相同的参数,每次求得的结果也是不同的。如果对于多峰函数,粒子滤波算法还有可能陷入局部最优解。粒子的数目也不是越多越好,关键是在于我们合理搭配各个参数,这样才能求得更精确的解。2.3粒子滤波算法流程如图2.3是粒子滤波算法的流程图:图2.3 粒子滤波算法流程图基本粒子滤波算法的基本步骤如下:(1) 初始化种群中所有的微粒所在位置和运动速度,赋两个随机值给这两个量;(2) 计算全部粒子的适应值,将所有粒子所经过的所有位置的最优解存储于pbest中,将所有pbest中的最优解赋予gbest。(3) 利用下面的方程来控制微粒速度、位移的改变;(4) 对于每个粒子,将其目前所在的适应值与最优解pbest进行比较,如果适应值较好,则将适应值赋给最优解pbest;(5) 比较pbest和gbest,将更优的解赋给gbest;(6) 如果满足迭代的终止次数,停止搜索,输出gebst,否则返回步骤(3)继续运行算法。输出得到的结果2.4标准粒子滤波算法举例测试函数: 通过matlab我们可以得到这个函数的图象如图2.4.1所示:图2.4.1 函数图像该函数的极值是在(0,0)处, 我们在运行程序的时候得到xm,fv,r三个值,其中r表示得到点到的最优解的距离,我们把整个程序重复运行500次,把得到的r做成柱状图。取40个粒子,c1=c2=2,惯性权重w=0.78,迭代次数m=100,可以得到一组解,然后将这个程序循环500次,得到500组解,并且将500次的r做成柱状图,如图2.4.2所示:图2.4.2 m=100时程序运行结果柱状图里每个柱从左到右表示的意思分布是r在,以上这十个区间以内的频数,我们可以观察到r有一大半的数量级是的,可是还有30%多粒子的r是在这个数量级的这次m=1000的时候迭代500次得到的r的分布柱状图2.4.3 :图2.4.3 m=1000时程序运行结果我们可以看到,当m=1000的时候,r的所有的值都是处于数量级的,并且大部分都是在以下,可以说增加迭代次数m,r的取值更小,也就是我们求出来的解距离最优值更近,算法的性能得到的明显的提高。但是,是不是m的值可以无限度的提高从而优化算法的性能呢?下面我们将迭代次数m设置为5000,然后将程序运行500次,得到r的分布图如图2.4.4:图2.4.4 m=5000时得到的r的分布图我们可以看到r在各个区间内的取值变化并不大,也就是说增加迭代次数到5000的时候算法的性能并没有多大的提高,只是增加了程序运行中的计算量。无限次的迭代并不能无限度的提高算法的性能,算法进行过程中迭代1000次已经是足够的了。一般来说,各种优化算法都是有各自的局限性。我们需要做的就是改良参数的搭配,引入其他参数来改进粒子滤波算法。3.粒子滤波算法性能和改进3.1标准粒子滤波算法在算法的改进这一节中有关r的柱状图中从左到右共11栏的意义分别是:010-30,10-3010-27,10-2710-24,10-2410-21,10-2110-18,10-1810-15,10-1510-12,10-1210-9,10-910-6,10-610-3,10-31。这一节中我们用的测试函数是:函数图象如图3.1.1:图3.1.1 函数2图象此函数的最小点是,最小值是0。这个函数用标准粒子滤波算法,粒子数目n=40,学习因子c1=c2=2,惯性权重w=0.78,迭代次数m=1000; 程序运行500次得到的r的分布柱状图是图3.1.2:图3.1.2 标准粒子滤波算法程序运行结果我们计算得到的500个r的平均值是3.0562x10-11。因为这个函数比较简单,所以得到的r也比较小,大部分r在这个区间内。3.2粒子滤波算法的改进3.2.1带压缩因子的粒子滤波算法学习因子c1和c2反应粒子群中微粒间信息的交流和共享。当c1的取值较大时,粒子会具有较强的局部搜索能力,而c2值较大时,粒子会过早的收敛。为了更好的控制粒子的飞行速度,使算法对于全局的搜索能力和对于局部的搜索能力达到更加平衡的效果,clerc构造了带压缩因子的粒子滤波算法,其速度公式更改为: 为了使算法更好的求解,c1与c2的和要求大于4。粒子数目n=30,c1=2.8,c2=1.3,迭代次数m=1000的时候,程序运行500次,得到的柱状图如图3.2.1:图3.2.1 压缩因子粒子滤波算法程序运行结果我们得到的500个r的平均值是6.2548x10-22,通过图3.2.1可以看到算法得到的结果已经明显改善,不但r的分布更加集中,而且80%以上的粒子都是在区间范围内的。3.2.2线性递减权重的粒子滤波算法较大的惯性权重可以控制微粒进行全局的大范围的探索,而较小的惯性权重则使算法更加精细的搜索更小的范围,使算法的结果更加收敛。因此,针对粒子滤波算法容易早熟以及算法后期在全局最优解附近的震荡现象,我们可以采用线性变化的权重,让惯性权重从最大值线性减小到最小值,这样w随着算法迭代的进行的变化公式为:,其中、分别指w的最大值和最小值,t表示当前迭代次数,表示最大迭代次数,通常取=0.9,=0.4。这样粒子群更新速度和位移的公式还是2.2.1和2.2.2,不过又加上了一个w更新的公式:。同样采用上面的测试函数: 取n=40,c1=c2=2,惯性权重最大值取0.9,最小值取0.4,我们得到的r的分布图如图3.2.2所示:图3.2.2 线性递减惯性权重粒子滤波算法程序运行结果500个r的平均值为5.2360x10-25,其中绝大部分r的取值都在区间内,大部分在区间内。比标准粒子滤波算法精确的多,也比带有压缩因子的粒子滤波算法更加精确。但是可以看到r更加分散了,分散在两个区间内,所以我们可以说,对于例子中的函数,线性递减的粒子滤波算法是不够稳定的。就这个函数而言,线性递减权重粒子滤波算法得到的非常精确的最优解,但是因为权重的线性递减matlab多计算了一次,所以这个算法所对应的程序在matlab中运行速度明显比标准粒子滤波算法慢。3.2.3自适应权重法下面我们采用一种非线性变化的惯性权重来平衡算法对于对全局和局部优化搜索能历:上式中的表示w的最大值、表示的是w的最小值,f表示粒子当前目标函数值,表示所有粒子的平均值,表示目标最小值。在这个粒子滤波算法改进方法中,目标函数在最优解的变化影响改变惯性权重的值,所以我们把他称为自适应权重法。这种方法得到的r的500次结果做出来的图象如图3.2.3:图3.2.3 自适应权重粒子滤波算法程序运行结果自适应权重法所得到的500个r的平均值是3.0589x10-28,所有的r全部是位于区间内的,其中有一部分是在区间内,自适应权重法比线性递减权重法得到的最优解的精度更高,也更加集中。3.2.4随机权重法将标准粒子滤波算法中的惯性权重设定为随机数,而且随机数是复合某种随机分布的(例如高斯分布),这样可以减轻一部分w线性递减的不足。首先,如果在微粒寻找初期就接近了嘴有点,随机的w可能会产生比较小的w,这样可以加快算法在这个点的收敛速度。另外,如果算法迭代初期得不到最优解,并且w是线性递减的,那么算法就无法收敛到这个最好的点,而随机生成的w将会克服这种局限性。w的计算公式:其中n(0,1)表示符合正态分布的随机数,rand(0,1)表示0到1之间的随机数。这个算法取40个粒子,学习因子c1=c2都取2,惯性权重的平均值的最大值取0.8,惯性权重的平均值的最小值取0.5,随机权重平均值方差取0.2,每进行一次算法要迭代5000次,然后将程序运行1000次,得到1000个r,r的分布图如3.2.4所示:图3.2.4 随机权重粒子滤波算法程序运行结果我们得到的500个r的平均值是8.0234x10-22,从上图中我们可以看出来,随机权重法相对于标准粒子滤波算法也有了较大的改善,整个图中r集中在区间内,但是相比较前几种改进方法,随机权重法还不算太精确,而且随机权重法得到的r的分布也是比较分散的,说明对于测试函数来说,随机权重法也不是一个非常稳定的算法3.2.5同步变化学习因子法这种改进方法是把两个学习因子设定在一个范围,当算法进行迭代到第t次的时候,两个学习因子的取值是:这样学习因子就随着迭代次数不断的变化,这样运行程序之后得到的结果如图2.3.5所示:图2.3.5 同步学习因子的粒子滤波算法从图中我们可以看到大部分的r在区间内,计算500个r的平均值是5.1287x10-28,对于这个函数来说,同步变化的学习因子粒子滤波算法也是一种非常好的改进方法。3.2.6异步变化的学习因子法异步变化学习因子法,顾名思义,两个学习因子随着程序的运行算法的迭代而进行异步变化。这样可以使得算法在一开始的时候粒子具有比较强的自我经历总结能力和较弱的群体经验学习能力。而在后期粒子就会具有更强的群体经验学习能力和较弱的自我经历总结能力。也就是说算法在前期可以更好的探索全局,后期更精细的收敛到整个问题的最优解,学习因子的公式: , 我们一般设定c1的初始值=c2的终值=2.5、c2的初始值=c1的终值=0.5,惯性权重w=0.9时,程序运行1000次得到的r的分布图:图3.2.6图3.2.6 异步学习因子程序运行结果异步变化的学习因子粒子滤波算法是目前为止所有的pso改进策略里比较好的一种,其对于标准粒子滤波算法已经有了较大的改善,得到的r绝大部分位于区间内,通过图3.2.6我们可以看到r的分布是非常集中的。500个r的平均值是2.7514x10-16,并且算法需要进行的计算量比较大。3.2.7二阶粒子滤波算法在标准的粒子滤波算法中,粒子当前飞行速度是粒子所处位置的函数,而如果我们采用二阶粒子滤波算法,粒子飞行速度的改变与微粒位置变化有关,粒子的速度变化公式是:根据算法的具体实现步骤,把这个速度公式带入算法步骤中,不过这个算法中c1+c2的值最好在2附近。图3.2.7是r的柱状图:图3.2.7 二阶粒子滤波算法程序运行结果从图3.2.7中我们可以看到,二阶粒子滤波算法得到的解大部分是在之间。所以说二阶粒子滤波算法还不如普通的标准粒子滤波算法。我们可以通过引入一个振荡来优化二阶粒子滤波算法。3.2.8二阶振荡粒子滤波算法这是一个渐近收敛的算法,我们为了进一步提高粒子群的多样性,现在在粒子群中引入一个振荡环节,用来改善算法全局收敛性。其速度更新方程为:其中是随机数。在算法前期取, ,使得算法具有较强的整体搜索能力,算法后期取,使得算法渐进收敛。此算法的步骤和标准粒子滤波算法有些差别,具体实现步骤如下:(1)初始化种群中所有的微粒所在位置和运动速度,赋两个随机值给这两个量;(2)观察每个粒子的适应值,用pbest存储微粒所经历最好的位置和适应值,gbest存储pbest的最好的值。(3)如果当前的进化代数小于最大的进化代数的一半,根据下面的方差对粒子的速度和位置进化; 其中 , ;如果当前进化代数大于或者等于最大迭代次数的1/2,根据下面的方程对粒子的速度和位置进行进化; 其中,;(4)将每个粒子的目前所在的适应值与最优解pbest进行比较,将更好的值赋给最优解pbest;(5) 比较pbest和gbest,将更优的解赋给gbest;(6)若满足停止条件,搜索终止,输出结果,否则返回(3)继续搜索此算法运行结果r的分布如图3.2.8:图3.2.8二阶振荡粒子滤波算法程序运行结果从图中得到的结果我们可以看到,加入振荡之后,二阶振荡粒子滤波算法比二阶粒子滤波算法好了很多,并且比粒子滤波算法更好。但是我们可以看到得到的r是非常分散的,这说明这种改进方法并不稳定。r的平均值是7.2158x10-18,但是算法的运算量显著增大,程序运行非常缓慢。4.总结和展望对于一个复杂函数的极值,我们在物理学、数学中不等式的证明、市场营销问题、蜂房的最优化问题、现代军事战争、物流管理等实际问题中有着广泛的应用。粒子滤波算法作为一个新的求极值的算法,有关它的研究还是处于初级阶段。粒子滤波算法可以和遗传算法,神经计算,模糊系统,蚂蚁算法,模拟退火算法等各种算法结合适应,它的应用是非常广泛的。本文中只是就其中的一部分问题进行了相关的研究,还有许多领域需要我们进一步的研究和开拓。参考文献:1陈水利,蔡国荣,等.粒子滤波算法加速因子的非线性策略研究j.长江大学学报(自然版)理工卷,2007,14(4):142崔红梅,朱庆保,等.微粒群算法中的参数选择 j.计算机应用,2007,23(23):89913冯翔,崔国龙,郭文忠.pso中加速因子的设置与试验j.集美大学学报,2006,11(2):1461514韩江洪,李正荣,魏振春.一种自适应粒子滤波算法及其仿真研究j.系统仿真学报,2006,18(10):296929715胡建秀,曾建潮.具有随机惯性权重的粒子滤波算法j.计算机的仿真,2007,22(8):1631676余炳辉,王金文.随机摄动粒子滤波算法j.计算机工程与应用,2008,22(11):79837李士勇,等.蚁群算法及应用m.哈尔滨:哈尔滨工业大学出版社,2004:55588 崔红梅,陈国龙.微粒群算法中惯性权重的调整策略j.计算机仿真,2007,22(7):22329龚纯,王正林.精通matlab最优化计算m.北京:电子工业出版社,2009,26931210 李丽,牛奔.粒子滤波算法m(第一版).北京:冶金工业出版社,2009.10,51011 栾丽君,谭丽静,牛奔.基于粒子滤波算法与差分进化算法算法的一种新型全局优化算法j.2007,33(5):30835512 王俊伟.粒子滤波算法的改进和应用d.沈阳:东北大学博士学位论文,200613 俞欢军,许宁.混合粒子滤波算法研究j.信息与控制,2005,8:40841114 高海冰.基于粒子群优化的神经网络训练算法研究j.电子学报,2004.31(8).151715 杨静宇.群体智能算法及其应用m(第二版).北京:水利水电出版社.2006.2329附录:程序1:函数表达式程序:fitness.mfunction f = fitness(x)f=0.5+(sin(x(1)2+x(2)2)2-0.5)/(1.0+0.001*(x(1)2+x(2)2)2); % if x(1)=0% x(1)=x(1)+1e-09;% end% if x(2)=0% x(2)=x(2)+1e-09;% end%f=-(sin(10*x(1)*sin(10*x(2)/(100*x(1)*x(2)-0.45*cos(5*x(1)*cos(5*x(2);%f=-(0.5-(sin(x(1)2+x(2)2)2-0.5)/(1.0+0.001*(x(1)2+x(2)2)2)*exp(-0.01*(x(1)2+x(2)2);%f=-(sin(10*x(1)/(10*x(1)*(sin(10*x(2)/(10*x(2);程序2:粒子滤波算法程序pso.mfunction xm,fv,r = pso(fitness,n,c1,c2,w,m,d)%fitness%n%1c1%2c2%w%m%dd%xm%fvformat long; %- for i=1:n for j=1:d x(i,j)=randn; % v(i,j)=randn; % end end %-pipg- for i=1:n p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg = x(n,:); %pg for i=1:(n-1) if fitness(x(i,:)fitness(pg) pg=x(i,:); end end %- for t=1:m for i=1:n v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)fitness(pg) pg=y(i,:); end end pbest(t)=fitness(pg);endxm = pg;fv = fitness(pg);r=(dot(xm,xm)0.5;%计算得到的点到(0,0)的距离程序3:带压缩因子的粒子滤波算法:yspso.mfunction xm,fv,r = yspso(fitness,n,c1,c2,m,d)phi = c1 + c2;if phi = 4 disp(c1 c2 4 ); xm = nan; fv = nan; return;endformat long; %- for i=1:n for j=1:d x(i,j)=randn; % v(i,j)=randn; % end end %-pipg- for i=1:n p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg = x(n,:); %pg for i=1:(n-1) if fitness(x(i,:)fitness(pg) pg=x(i,:); end end %- for t=1:m for i=1:n ksi = 2 / abs(2 - phi - sqrt(phi2 - 4*phi); v(i,:) = v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); v(i,:) = ksi*v(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)fitness(pg) pg=y(i,:); end end pbest(t)=fitness(pg);endxm = pg;fv = fitness(pg);r=(dot(xm,xm)0.5; 程序4:线性权重递减的粒子滤波算法:linwpso.mfunction xm,fv,r = linwpso(fitness,n,c1,c2,wmax,wmin,m,d)format long; %- for i=1:n for j=1:d x(i,j)=randn; % v(i,j)=randn; % end end %-pipg- for i=1:n p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg=x(n,:); %pg for i=1:(n-1) if fitness(x(i,:)fitness(pg) pg=x(i,:); end end %- for t=1:m for i=1:n w = wmax - (t-1)*(wmax-wmin)/(m-1); v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)fitness(pg) pg=y(i,:); end end pbest(t)=fitness(pg);endxm = pg;fv = fitness(pg);r=(dot(xm,xm)0.5;程序5:自适应权重法sapso.mfunction xm,fv,r = sapso(fitness,n,c1,c2,wmax,wmin,m,d)format long;%- for i=1:n for j=1:d x(i,j)=randn; % v(i,j)=randn; % end end %- for i=1:n p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg=x(n,:); %pg for i=1:(n-1) if fitness(x(i,:)fitness(pg) pg=x(i,:); end end %- for t=1:m for j=1:n fv(j) = fitness(x(j,:); end fvag = sum(fv)/n; fmin = min(fv); for i=1:n if fv(i) = fvag w = wmin + (fv(i)-fmin)*(wmax-wmin)/(fvag-fmin); else w = wmax; end v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)fitness(pg) pg=y(i,:); end end end xm = pg; fv = fitness(pg);r=(dot(xm,xm)0.5; 程序6:随机权重法:function xm,fv,r = randwpso(fitness,n,c1,c2,mean_max,mean_min,sigma,m,d) format long; %- for i=1:n for j=1:d x(i,j)=randn; % v(i,j)=randn; % end end %-pipg- for i=1:n p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论