【摘要】:针对基于BP神经网络室内定位算法收敛速度慢和定位精度低的问题,提出了改进的人工鱼群算法(AFSA)和距离加权质心法。通过改进人工鱼觅食和寻优方式来提高人工鱼全局寻优的能力和速度,并用该算法来选取室内定位神经网络参数;通过改进的加权质心法计算距离,以减小室内复杂环境干扰造成的定位的误差。实验证明该改进方法使室内定位的平均精度比BP神经网络模型提高8%左右,并提高了室内定位的可靠性。 【关键词】:室内定位;无线传感网络;人工鱼群算法;加权质心 0引言 无线传感网络室内定位算法分为两大类1:基于测距(range~based)的定位和基于非测距(range-ree)的定位2。室内定位方法有到达时间(TimeOfArrivalTOA),到达时间差(TimeDifferenceOfArrival,TDOA),到达角(AngleOfArrival,AOA)和接收信号强度指示(ReceivedSignalStrengthIndication,RSSI)3,基于位置指纹室内定位等。 室内定位基于测距算法通过测量节点间的距离或角度,使用三边测量三角测量或最大似然估计定位法计算节点位置4,无需测距定位算法则不需要距离和角度信息,算法根据网络连通性等信息来实现节点定位5。传统的基于接收信号强度RSSI的室内定位技术基本上都是以无线信号传播模型为基础,通过拟合或直接根据经验得出信号传播模型中未知参数,再根据位置距离算法来最终实现定位6。但此方法依赖经验,普适性不强,精度不高。为改进传统定位不足之处,目前提出了改进的基于BP神经网络的距离损耗模型7室内定位算法和基于BP神经网络和泰勒级数的室内定位算法8研究模拟Shadowing室内定位9。该定位算法避免了对信号传播模型中参数的拟合,提高了定位精度;但是该算法收敛速度慢,同时定位过程中容易受到外界因素的干扰造成定位精度差,同时没有关注节点能量值大小对定位精度的影响。针对以上问题提出了基于改进人工鱼群算法神经网络参数方 法来提高算法适用性、可靠性和泛化能力。 1基于神经网络RSSI室内定位的不足 无线信号在传播的过程中,随着距离的变化,信号强度的大小发生改变,通过这个特点可以得出信号强度与距离的关系。无线定位中普遍采用Shadowing模型,但是该模型没有考虑室内存在非视距传播的可能性,从而在此得到实际应用的RSSI测距公式10,如式(1)所示: RSSI=A+10nlg(d)⑴ 其中A和n为待定参数。为距离1m处锚节点处接收到的信号强度平均值的绝对值,而n为信号传播环境无关的信号常数。 通过式(1)中距离损耗模的分析可以得出RSSI和传输距离之间存在非线性关系,Kolmogorov定理[11]证明任一连续函数都可由一个三层网络来实现。因此可以用BP神经网络来拟合接收信号强度RSSI与距离d之间的非线性函数关系[12]。 BP神经网络算法的学习过程由信息的前向传播和误差的反向传播组成,需要在实际环境中取得大量的数据来训练神经网络。在神经网络前向传播的过程中,信息从输入层经隐含层处理并传向输出层,神经元的状态只受到上一层神经元的影响,在训练的过程中如果在输出层得不到期望的结果,则会转入算法的反向传播,将误差信号沿原来的连接路径返回,通过修改各层神经元的权值,使得误差均方最小。重复此过程,直至误差满足应用要求。基本的BP算法存在抗干扰能力差、收敛速度慢、易陷入局部极值点的缺点,Matlab神经网络工具箱中提供了十多种快速学习算法[13],经过反复实验和比较,本研究选tmincgf算法。该算法在不增加算法复杂性的前提下,可以提高收敛速度,并且可沿共扼方向达到全局最小点。但是基于BP神经网络的室内定位算法收敛速度相对较慢,泛化能力弱,容易得到局部最优而不是全局最优,造成定位精度偏低、误差较大。 2改进的人工鱼群算法 人工鱼群算法(ArtificialFishSwarmAlgorithm,AFSA)是一种基于动物行为活动特点构建起来的新型智能仿生算法[14],该算法由李晓磊等于2002年提出。算法借鉴鱼类鱼的觅食、随机,聚群追尾等行为,算法从构造单条人工鱼开始,通过寻找人工鱼群中个体的局部最优值,达到全局最优值[15],便引起了广泛的应用,算法主要用于模式识别参数寻优领域。在本文中假设用状态向量X表示第i条人工鱼的个体…其中%表示欲寻优的变量(i,J+E[1,2,ooo,n]);表达式Y=/(x)来表示人工鱼当前位置食物浓度,其中Y为目标函数值;visual表示人工鱼的感知其他人工鱼范围大小;step表示人工鱼移动的步长大小;S表示拥挤度因子。 通过分析目前人工鱼群算法,在人工鱼在觅食行为中,通过多次模拟实验得知步长参数step与视野范围visual大小对人工鱼群算法收敛速度和精度存在很大的影响。如果参数大小设置不合理则人工鱼会陷入局部极值或精度不够等问题。人工鱼觅食行为中由于没有找到较优状态时,会随机选择一个状态,算法没有未充分利用其他人工鱼当前的状态,导致算法收敛速度较慢、计算量增大。通过分析人工鱼群算法优化神经网络的问题,本文对以上不足作以下改进。 1)基于高斯函数的变长步长和视野范围。 前人提出采用递减的二次函数来自动修改步长和视野范围[16,但是没有考虑到,在人工鱼的步长和可视范围越大可以使得人工鱼跳出局部最优值找到全局最优值,但是同样会造成人工鱼状态震荡,造成计算量的增加,收敛速度变慢。 因此本文提出采用高斯函数来自动调整步长,开始人工鱼采用较小的步长和视野寻优;随着迭代次数增加开始按照高斯函数增加step和达到全 局最优状态;但是随着人工鱼群算法的迭代次数增加到一定程度,人工鱼状态已到达局部最优时,这时采用较小步长和视野范围可以提高算法的局部范围内搜索的能力和提高搜索精度,同时能够减少算法的不必要计算开销。step和visual大小调整采用式(2): p=ae_(t_M/2)2/m2jvisual=visua/min+visualXp(2) step=stepmin+stepXp 其中:范围,取值0到vm,,m为视野范围的最大值;step为当前步长,取值范围0到stepmin,为人工鱼的步长的最大值;m为鱼群算法最大的迭代次数;p为系数,其值服从中心在m/2的正态分布;a为系数,其值为常数范围[1m/2]。 2)基于历史最优的觅食行为。 在AFSA中,觅食行为是在可视范围内随机选择一个状态,然后判断其食物浓度是否满足前进条件:若满足,则前进一步;否则继续随机选择状态。整个行为过程是一个试探比较的过程,而移动行为是随机产生的,这将很可能使解有倒退现象产生。 因此,本文对觅食行为进行改进,在每次试探过程中保存较优解,在试探TryNumber次之后,如果仍没有满足前进条件,则向直接移动到保存的尝试过程中最优解,以保证进步的原则并提高了搜索的速度。 为了说明本文算法的有效性,本文在Matlab下实现提出的改进人工鱼群算法(ImprovedArtificialFishSwarmAlgorithm,IAFSA),然后通过选取典型函数做实验对比改进的人工鱼和人工鱼群算法,选取函数f1(x),/2(x)如下: sin(1/x)(x_0.16)2+0.1/2(x)=1+xsin(4nx)_ysin(4ny+n)+sin(6槡%+y2)⑷ 10_15+6槡x2+y2通过Matlab画出的式(3)、(4)图像得知:函数/(x)有多个峰值和多个极值点,训练过程中很容易陷入局部极值,并且全局最值为19.8949;函数兑(x)具有多个极值点并且具有多个最值为2.188。Matlab实现改进后的人工鱼,通过对比发现改进的人工鱼群具有较强的寻优能力,初始化人工鱼的个数n=25,,isua1min=0.6,步长stepmin=0.5,尝试次数TryNumber=6,拥挤度因子S=0.1,每个函数做10次实验求得最优值和迭代次数均值,实验结果如表1所示。 |
核心期刊网(www.hexinqk.com)秉承“诚以为基,信以为本”的宗旨,为广大学者老师提供投稿辅导、写作指导、核心期刊推荐等服务。 核心期刊网专业期刊发表机构,为学术研究工作者解决北大核心、CSSCI核心、统计源核心、EI核心等投稿辅导咨询与写作指导的问题。 投稿辅导咨询电话:18915033935 投稿辅导客服QQ: 投稿辅导投稿邮箱:1003158336@qq.com |