如果滤波条件为假,那么节点位置的概率分布p(lt|Ot)值为零,否则p(lt Ot)将符合均匀分布,这样.就可以从节点的所有可能位置集合中去除那些与观测值不一致的位置。经滤波后,节点剩余的可能位置也许会少于N个。预测过程和滤波过程将不断重复进行,并结合已经发现的节点可能位置,直至获得节点的至少N个可能位置。
1.4 重要性采样
算法的最终目标是估计节点可能位置的后验概率分布p(lt|O0,O1,…Ot)。首先,通过一个标准化重要性采样函数π获得一系列相互独立的节点位置采样值;然后,对每个采样值的权重值进行调整并且使用这些权重值对节点所在可能位置的后验概率分布作出估计。算法采用了下列递归式重要性函数。
式(3)表示节点的位置预测,节点借助先前所在的可能位置预测其当前的可能位置。式(4)表示节点的位置更新,节点根据获得的观测值对新的采样值不断进行权重值更新与调整。然后。通过式(5)对权重值Wit;进行归一化处理得到Wit用权重值序列(lit,wit)对节点位置的后验概率分布作出估计。通过式(3)和式(4)的反复计算,很容易地确定概率值p(lk|lk-1)和p(l1|Ot)的大小。
2 MCL算法优化
传感器节点在计算资源与存储资源等方面一般比较紧缺,可通过多边形内点测试法首先近似确定节点的运行方向,该方法完全基于节点间的连通性,仅需要信标节点的跳数位置广播信息,因此对节点没有额外的功耗和硬件需求。图3为多边形内点测试法的一种情况,如图3(a)假设M获得与A之间的跳数为4,则节点1与A之间的跳数为3,节点2与A之间跳数为5;M获得与B之间的跳数为3,则节点2与B之间的跳数为2,节点1与B之间的跳数为4。当M移动到节点1位置,则可以得出节点M靠近了节点A远离了节点B,可以得出节点M不能同时靠近或远离三个顶点,必定在三角形内部,当节点M同时靠近或远离三个顶点.必定在三角形外部。对图3(b)当节点M从三角形ABC内离开进人三角形ABD中时,即可得到节点的大致运行方向。则式(2)的滤波条件可简化为
此处的T'为节点N在区域ABD内的邻居节点可以侦听到而节点N本身无法侦听到的全部信标节点。
对节点运行方向的估计可大大减少MCL算法的位置预测和位置滤波阶段的计算量,节省了节点的能耗。并且更加容易滤除与观测值不一致的位置.提高定位精度。
3 算法性能评价
在一定的通讯开销和硬件配置条件下,评价一种节点定位方法优劣的重要标准是位置估计精度的高低。通过仿真对MCL.定位算法、改进后的MCL,定位算法和质心定位(Centroid)算法进行了比较。
仿真实验过程中,无线传感器网络、节点以及算法的相关参数都是不断变化的。节点随机部署在一个500 m×500 m的矩形区域内。而且假定信标节点与普通节点的无线传输距离为恒定值r(r=50 m),节点的位置信息广播之间的时间间隔为固定值tu并且以节点在每一时间段tu内移动的距离r表示节点移动速度。
由图4(a)可以看出,MCL定位算法的精度在初始阶段会随着时间变化提升很快并进入稳定阶段,在稳定阶段,节点新的观测值(位置滤波器)与由于节点移动带来的不确定性对定位精度的影响达到某种平衡,位置估计误差将最终稳定在一个最小值上下波动。可以看出MCL算法的定位精度与质心定位算法相比有着相当大的优势。
图4(b)中可以看出改进后的MCL定位算法能够更快的达到稳定,并且定位精度也有了少许提升。
4 结语
本文提出了将MCL算法应用于无线传感器网络节点定位中。在节点随机运动的情况下,不需要配备额外的硬件设施,就可以获得较高的定位精度,解决了具有移动性的无线传感器网络中的节点定位问题。并在算法初始阶段结合质心算法进行定位.通过估计节点方向来简化算法,优化了MCL算法的定位性能。