基于麻雀算法改进的无线传感器网络Dv-hop定位算法

文章目录

  • 基于麻雀算法改进的无线传感器网络Dv-hop定位算法
    • 1.DV-Hop算法原理
    • 2.麻雀算法改进DV-Hop算法原理
    • 3.算法测试
    • 4.参考文献
    • 5.Matlab代码

摘要:本文介绍基于麻雀改进的DV-Hop算法。

1.DV-Hop算法原理

DV-Hop算法的定位步骤如下:

(1)各锚节点向通信范围内的邻居节点广播自身的位置信息。接收节点则记录到每个锚节点的最小跳数,同时忽略来自同一个锚节点的较大的跳数信息,而后将跳数值加1转发给邻居节点。

(2)每个锚节点根据所记录的其他锚节点的坐标信息和跳数,通过式(1)估算网络平均跳距距离。
HopSizei=∑j≠i(xi−xj)2+(yi−yj)2∑j≠ihopSij(1)HopSize_i=\frac{\sum_{j\neq i}\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}}{\sum_{j\neq i }hopS_{ij}}\tag{1} HopSizei​=∑j​=i​hopSij​∑j​=i​(xi​−xj​)2+(yi​−yj​)2​​(1)
式中, jjj为锚节点iii数据表中的其他锚节点号, hopSijhopS_{ij}hopSij​ 为锚节点iii和jjj​​之间的跳数。

锚节点将所计算的平均跳距广播至整个网络后,未知节点仅记录所收到的第一个平均跳距,并向邻居节点转发,未知节点接收到平均跳距后,跟据所记录的跳数信息,按式(2)估算未知节点 i 到某个锚节点的距离:
Li=Si∗HopSize(2)L_i=S_i*HopSize \tag{2} Li​=Si​∗HopSize(2)
(3)设P1(x1,y1),...,Pn(xn,yn)P_1(x_1,y_1),...,P_n(x_n,y_n)P1​(x1​,y1​),...,Pn​(xn​,yn​)表示nnn个锚节点的坐标位置,待定位节点D的位置为 (x,y)(x,y)(x,y) ,其与标节点估计距离分别为d1,d2,...,dn−1d_1,d_2,...,d_{n-1}d1​,d2​,...,dn−1​​ ,可以建立式(3)的方程。
{(x1−x)2+(y1−y)2=d12(x2−x)2+(y2−y)2=d22...(xn−x)2+(yn−y)2=dn2(3)\begin{cases} (x_1-x)^2+(y_1-y)^2=d_1^2\\ (x_2-x)^2+(y_2-y)^2=d_2^2\\ ...\\ (x_n-x)^2+(y_n-y)^2=d_n^2 \end{cases}\tag{3} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​(x1​−x)2+(y1​−y)2=d12​(x2​−x)2+(y2​−y)2=d22​...(xn​−x)2+(yn​−y)2=dn2​​(3)
第一个方程组减去第后一个方程后,到得:
{2(x1−xn)x+2(y1−yn)y=x12−xn2+y12−yn2−d12+dn22(x2−xn)x+2(y2−yn)y=x22−xn2+y22−yn2−d22+dn2...2(xn−1−xn)x+2(yn−1−yn)y=xn−12−xn2+yn−12−yn2−dn−12+dn2(4)\begin{cases} 2(x_1-x_n)x+2(y_1-y_n)y=x_1^2-x_n^2+y_1^2-y_n^2-d_1^2+d_n^2\\ 2(x_2-x_n)x+2(y_2-y_n)y=x_2^2-x_n^2+y_2^2-y_n^2-d_2^2+d_n^2\\ ...\\ 2(x_{n-1}-x_n)x+2(y_{n-1}-y_n)y=x_{n-1}^2-x_n^2+y_{n-1}^2-y_n^2-d_{n-1}^2+d_n^2\\ \end{cases}\tag{4} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​2(x1​−xn​)x+2(y1​−yn​)y=x12​−xn2​+y12​−yn2​−d12​+dn2​2(x2​−xn​)x+2(y2​−yn​)y=x22​−xn2​+y22​−yn2​−d22​+dn2​...2(xn−1​−xn​)x+2(yn−1​−yn​)y=xn−12​−xn2​+yn−12​−yn2​−dn−12​+dn2​​(4)
用线性方程组表示为AL=bAL = bAL=b,其中,
A=[2(x1−xn)2(y1,yn)......2(xn−1−xn)2(yn−1−yn)](5)A=\left[\begin{matrix} 2(x_1-x_n)&2(y_1,y_n)\\ ...&...\\ 2(x_{n-1}-x_n)&2(y_{n-1}-y_n) \end{matrix}\right]\tag{5} A=⎣⎡​2(x1​−xn​)...2(xn−1​−xn​)​2(y1​,yn​)...2(yn−1​−yn​)​⎦⎤​(5)

L=[xy](6)L=\left[\begin{matrix} x\\ y\end{matrix}\right]\tag{6} L=[xy​](6)

b=[x12−xn2+y12−yn2+dn2−d12...xn−12−xn2+yn−12−yn2+dn2−dn−12](7)b=\left[\begin{matrix} x_1^2-x_n^2+y_1^2-y_n^2+d_n^2-d_1^2\\ ...\\ x_{n-1}^2-x_n^2+y_{n-1}^2-y_n^2+d_n^2-d_{n-1}^2 \end{matrix}\right]\tag{7} b=⎣⎡​x12​−xn2​+y12​−yn2​+dn2​−d12​...xn−12​−xn2​+yn−12​−yn2​+dn2​−dn−12​​⎦⎤​(7)

采用最小二乘法得到方程组的解为:
L=(ATA)−1ATbL=(A^TA)^-1A^Tb L=(ATA)−1ATb

2.麻雀算法改进DV-Hop算法原理

麻雀算法原理参考我的博客:https://blog.csdn.net/u011835903/article/details/108830958

从第1节基础的DV-Hop算法原理可知,基础DV-hop在求解未知节点时采用的是最小二乘法,可以利用麻雀算法来改进该步骤,利用麻雀算法寻找未知节点到信标节点的实际距离与估计距离之间的最小误差,从而达到对未知节点位置的估计。定义麻雀算法的寻优参数为未知节点,构造适应度函数为:
fitness(x,y)=∑i=1M((xi−x)2+(yi−y)2−di2)2fitness(x,y)=\sum_{i=1}^M(\sqrt{(x_i-x)^2+(y_i-y)^2}-d_i^2)^2 fitness(x,y)=i=1∑M​((xi​−x)2+(yi​−y)2​−di2​)2

3.算法测试

设定节点覆盖范围为200x200,总节点数为:200,信标节点数20,通信半径为30,未知节点数为180。采用归一化平均定位误差作为评价指标:
error=∑i=1m(xi−xi∗)2+(yi−yi∗)2k∗m∗r(8)error = \frac{\sum_{i=1}^m\sqrt{(x_i-x_i^*)^2+(y_i-y_i^*)^2}}{k*m*r}\tag{8} error=k∗m∗r∑i=1m​(xi​−xi∗​)2+(yi​−yi∗​)2​​(8)
式中,mmm为未知节点的数目;kkk为实验次数;rrr​为节点的通信半径;(xi,yi)(x_i,y_i)(xi​,yi​)为未知节点的估计坐标;(xi∗,yi∗)(x_i^*,y_i^*)(xi∗​,yi∗​)为该未知节点的真实坐标。


基础DV-hop的归一化定位误差:0.4409
SSA-DV-hop的归一化定位误差:0.19953

从最终归一化定位误差来看,麻雀算法的结果,明显优于传统DV-hop算法的结果。

4.参考文献

[1]吴曦德,方杰,杨世杰,周庆标.基于GPSO-DVHop的传感器节点定位方法[J].计算机工程与应用,2013,49(22):95-99.

[1]张恒. 无线传感器节点定位方法的研究与实现[D].华南理工大学,2012.

5.Matlab代码

基于麻雀算法改进的无线传感器网络Dv-hop定位算法 - 附代码相关推荐

  1. 【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码

    1 内容介绍 无线传感器网络(WirelessSensorNetwork,WSN)是由若干个分布在被监控范围内的传感器节点构成的网络,这些节点以随机或者确定位置分布的形式布置在被监测范围内,可以收集温 ...

  2. 基于最佳簇半径的无线传感器网络分簇路由算法

    文章目录 一.理论基础 1.能耗模型 2.基于最佳簇半径的分簇路由算法 (1)分簇优化 (2)簇间通信 二.仿真实验 三.参考文献 一.理论基础 1.能耗模型 本文采用一阶无线电模型作为能量消耗模型. ...

  3. 【预测模型】基于麻雀算法改进广义回归神经网络(GRNN)实现数据预测matlab代码

    1 简介 为实现精准施肥"减施增效"的数字化农业施肥技术,本文基于并运用了麻雀搜索算法,对广义回归神经网络(GRNN)进行了结合与改进,并构建作物广义回归神经网络(GRNN)结合麻 ...

  4. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码

    基于头脑风暴优化的BP神经网络(预测应用) - 附代码 文章目录 基于头脑风暴优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSO优化BP神经网络 3.1 BP神经网络参数设置 3.2 ...

  5. 【LEACH协议】基于matlab最佳簇半径的无线传感器网络分簇路由算法【含Matlab源码 2087期】

    ⛄一. 数据融合的LEACH协议简介 1 基于自适应数据融合的LEACH协议 1.1 基本定义和概念 无线传感器网络中的一个簇可以用一个无向加权全连通图G=(V,E)来表示,V是簇中所有传感器节点的集 ...

  6. 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码

    基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...

  7. rssi室内定位算法原理_RSSI的室内人员卡尔曼滤波定位算法

    [1] 彭 宇,王 丹.无线传感器网络定位技术综述[J].电子测量与仪器学报,2011(5):389-399. PENG Yu,WANG Dan.Overview of wireless sensor ...

  8. 基于多种分类方式的新闻文本种类预测[2021论文附代码]

    很典型的多个特征维度的新闻种类分类,包含了例如文本信息如何转换成数字特征,如何设置停用词,如何去掉符号转大小,如何解决内存不足等等许多问题的解决.包括使用各种分类方法测试最终选择最优的模型.      ...

  9. 基于语义分割和生成对抗网络的缺陷检测算法

    一.缺陷类型 如下图所示,缺陷类型主要有缺损和裂纹两个类型. 二.语义分割网络 FCN网络 网上介绍FCN的教程很多,在这里不再详细讲述,具体请参考链接: https://www.cnblogs.co ...

最新文章

  1. 判断一个IP区间(或IP)是否被另一个IP区间所包含
  2. 海思3536:kernel编译和mpp_single编译过程报错及解决方法
  3. 下载nodejs的mysql安装包下载_nodejs安装包下载|nodejs(javascript运行环境) v5.3.0 最新稳定版 - 软件下载 - 绿茶软件园|33LC.com...
  4. sqllite配置(参考别人)
  5. Linux中sysstat服务,Linux 性能优化工具包 sysstat 以及 sysstat 服务
  6. 一文带你全面了解电商在线支付
  7. when is valid from and valid to filled in SAP IBASE buffer table
  8. html实体转换成xa0,关于javascript:反应道具:在JSX动态内容中使用HTML实体?
  9. HDU1225 字符串
  10. java2实用教程 第6版(课后习题总结)
  11. 在线音乐播放器 --- 图片上传
  12. ubuntu装指定分区_Ubuntu安装时怎样分区
  13. API LayoutInflater
  14. NTKO控件安装失败解决方式
  15. bp神经网络综合评价例题,bp神经网络综合评价法
  16. 计算机硬件未来发展前景,计算机硬件发展趋势
  17. 关于GHO文件怎么安装,GHO文件怎么打开等问题解答
  18. 计算机登录账户删除著名恢复,win10系统删除计算机无用账户的恢复步骤
  19. 对开源软件的认识与实践-刘彬
  20. java版阿里云发送短信

热门文章

  1. 纯前端实现—满天星效果
  2. 开源在今天意味着什么?
  3. 利用 Cocos2dx-3.0 新物理特性模拟弹珠迷宫
  4. gnu radio学习(二)Stream Tags流标签详解
  5. c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
  6. 2020年程序员客栈云端收入排行榜
  7. Beautiful Soup 中文文档
  8. java编写两个线程,一个线程打印1-52的整数,另一个线程打印字母A-Z。打印顺序为12A34B56C….5152Z。即按照整数和字母的顺序从小到大打印,并且每打印两个整数后,打印一个字母,交替
  9. Out of range value for column 'phon' at row 1
  10. Unity(四十三):存档、文本文件读写