CN111277968B - 一种基于堆栈自编码器的无线传感器网络非测距定位方法 - Google Patents

一种基于堆栈自编码器的无线传感器网络非测距定位方法 Download PDF

Info

Publication number
CN111277968B
CN111277968B CN202010064911.6A CN202010064911A CN111277968B CN 111277968 B CN111277968 B CN 111277968B CN 202010064911 A CN202010064911 A CN 202010064911A CN 111277968 B CN111277968 B CN 111277968B
Authority
CN
China
Prior art keywords
node
information
anchor node
vector
anchor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010064911.6A
Other languages
English (en)
Other versions
CN111277968A (zh
Inventor
刘星成
纪文杰
刘异橦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202010064911.6A priority Critical patent/CN111277968B/zh
Publication of CN111277968A publication Critical patent/CN111277968A/zh
Application granted granted Critical
Publication of CN111277968B publication Critical patent/CN111277968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/38Services specially adapted for particular environments, situations or purposes for collecting sensor information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种基于堆栈自编码器的无线传感器网络非测距定位方法,包括:锚节点向网络中的节点广播自身的锚节点信息,节点收集所有锚节点信息;锚节点将收集到的锚节点信息构建跳数向量和距离向量并发送到sink节点;sink节点将接收到的两个向量作为训练数据训练堆栈自编码器得到距离估计模型,并将模型发送给网络中的未知节点;未知节点将收集到的锚节点信息输入到模型中,模型的输出为未知节点到达锚节点的距离估计向量;未知节点根据距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标。本发明根据网络实际所处环境的特性,通过学习网络中锚节点收集的数据提高非测距定位方法在所部属的网络的实用性,实现在不同网络下的精准定位。

Description

一种基于堆栈自编码器的无线传感器网络非测距定位方法
技术领域
本发明涉及通信领域,尤其涉及一种基于堆栈自编码器的无线传感器网络非测距定位方法。
背景技术
无线传感器网络节点定位是在网络中存在若干位置已知的锚节点(Anchornodes)的前提下,对网络中位置未知的节点进行位置估计。目前WSNs中的定位算法可以分为两大类,分别是测距(Range-based)和非测距(Range-free)。基于测距的定位算法需要在传感器节点上安装额外的硬件设备来收集测距相关的物理参数,例如到达角(AoA),到达时间(ToA)和接收信号强度(RSS)等,以测量收发机之间的距离。该类方法通常能获得较高的定位精度,但额外硬件的安装和使用将使得网络的成本和功耗变大,因此该类方法多应用于部署在小区域的小规模网络,例如室内环境。
如图1所示为现有技术中具有代表性的非测距定位方法,其中DV-Hop是由锚节点根据泛洪收集到的跳数和距离信息计算平均跳进(Average Hop Progress,AHP),再利用节点间的跳数乘以AHP得到节点间的距离,最后使用多边定位法定位;LAEP是由传感器节点根据网络节点密度计算得到每跳期望距离(Expected Hop Progress,EHP),再用节点间的跳数乘以EHP得到节点间的距离从而实现定位;SM是由未知节点利用距离估计的局部性,通过邻居已定位节点发来的PHL(Per Hop Length)向量计算到锚节点的距离,再利用GDOP度量选择几何位置分布较好的锚节点进行定位。
由于在实际的大型传感器网络部署中,传感器节点通常是通过飞行器的低空播撒来部署的,这种方式将导致网络中节点的位置分布不均匀,再者所要监测的环境通常存在障碍物、湖泊等节点无法部署的区域,由此将在网络中形成“覆盖空洞”,如图2所示,“覆盖空洞”的出现将导致节点间的最短路由路径产生迂回,实际中无线电信号受到障碍物、衰落以及多径效应等的影响,在相同传输距离的情况下,信号的接收功率不尽相同,如图3所示,无线电不规则(Radio Irregularity)同样将给利用节点间跳数进行距离估计的定位方案带来不利影响。
以上的各种不利于定位的外界影响统称为各向异性因素,而存在这些因素的网络称为各项异性网络,而现有的定位方法受到网络中的各向异性因素的影响导致未知节点与锚节点之间的最短距离与实际距离往往相差较大,因而获得的未知节点的位置信息也往往误差较大,从而导致未知节点位置信息估计不准确,降低了无线传感器网络定位的精度。无线传感器网络中各向异性因素的存在将对定位算法的性能产生较大的影响,而且各项异性因素在不同部署环境的网络中差异巨大,使得设计的定位方案在不同网络中的性能波动较大,难以在所有环境的网络中均取得较好的定位性能,加上目前大部分定位算法采用的坐标计算方式存在固有缺陷,进一步限制了算法的定位精度。
发明内容
本发明旨在解决上述现有技术中至少一种不足(缺陷),提供一种基于堆栈自编码器的无线传感器网络非测距定位方法,能根据网络实际所处环境的特性,通过学习网络中锚节点收集的数据提高非测距定位方法在所部属的网络的实用性,实现在不同网络下的精准定位。
提供一种基于堆栈自编码器的无线传感器网络非测距定位方法,包括:
S1、锚节点向网络中的节点广播自身的锚节点信息,节点收集所有锚节点信息,所述节点包括未知节点和锚节点;
S2、锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量,并将所述跳数向量和距离向量发送到选定的sink节点,所述sink节点为网络中计算资源最强的锚节点;
S3、sink节点将接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器得到距离估计模型,并将所述距离估计模型发送给网络中的未知节点;
S4、未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量;
S5、未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标。
将锚节点自身收集到的其他锚节点信息并分别构建跳数向量和距离向量,并将跳数向量和距离向量发送到选定的sink节点,再由sink节点将收到的跳数向量和距离向量作为训练数据训练堆栈自编码器得到距离估计模型,使得距离估计模型能根据网络实际所处环境的特性,通过学习网络中锚节点收集的其他锚节点信息提高该距离估计模型在所部属网络的适用性;sink节点将距离估计模型发送给网络中的未知节点,未知节点将收集到的锚节点信息输入到距离估计模型中得到距离估计向量,再根据距离估计向量构建目标函数并将目标函数的最小值对应的解为自身坐标,从而利用未知节点可以通过多跳传输与网络中所有锚节点进行通信,实现整个网络中所有未知节点的定位,即实现百分之百的定位覆盖,保证了在各向异性因素存在的网络的有效性。
进一步地,所述锚节点信息具体为包含锚节点的ID信息、位置信息和跳数信息的message数据包。
通过接收锚节点信息,节点即可根据锚节点信息中的位置信息构建距离向量和根据跳数信息构建跳数向量。
进一步地,所述节点收集所有锚节点信息还包括:
S11、节点在内存中建立并维护一个锚节点信息表AT,用于保存收集到的锚节点信息;
S12、节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于所述节点所维护的锚节点信息表AT中并完成message数据包的转发。
通过节点在内存中建立一个锚节点信息表AT来保存收集到的锚节点信息,有利于对收集到的锚节点信息进行管理;节点检查该锚节点信息中的ID信息是否存储于节点所维护的锚节点信息表AT中,将不符合要求的锚节点信息抛弃,从而可以节省节点的内存,提高message数据包的转发的效率。
进一步地,所述锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量的构建方式具体为:所述网络中存在Na个锚节点,锚节点的ID信息为1~Na,跳数向量和距离向量的维度均为Na,则锚节点i的跳数向量为
Figure BDA0002375672950000031
距离向量为
Figure BDA0002375672950000032
其中锚节点i的跳数向量hi为从其锚节点信息表AT中获得的跳数信息,每个元素表示锚节点i到ID信息对应的锚节点的最小跳数;距离向量di表示锚节点i与ID信息为1~Na的锚节点之间的欧式距离,根据锚节点信息表AT中保存的锚节点的位置信息由公式
Figure BDA0002375672950000033
计得,其中xi为锚节点i位置信息中的横坐标,yi为锚节点i位置信息中的纵坐标,xj为锚节点j位置信息中的横坐标,yj为锚节点j位置信息中的纵坐标。
进一步地,所述sink节点自身收集网络中的锚节点信息,并根据锚节点信息分别构建跳数向量和距离向量。
进一步地,所述sink节点量接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器的具体步骤为:
S31、将自身构建的跳数向量和接收到的跳数向量形成跳数矩阵,将自身构建的距离向量和接收到的距离向量形成距离矩阵;
S32、以跳数矩阵为训练数据训练堆栈自编码器的第一个自编码器,根据第一个自编码器的输出采用梯度下降法获得第一编码权值和第一编码偏置;
S33、根据公式P=f(W1·H+b1)获得第二个自编码器的训练数据P并训练堆栈自编码器的第二个自编码器,根据第二个自编码器的输出采用梯度下降法获得第二编码权值和第二编码偏置,其中W1为第一编码权值,H为跳数矩阵,b1为第一编码偏置;
S34、在堆栈自编码器上添加一个线性预测层,以跳数矩阵和距离矩阵为训练数据进行有监督训练,通过反向传播和梯度下降法获得线性预测层的权值矩阵、偏置向量和距离估计模型。
通过sink节点将自身收集到的和接收到的跳数向量和距离向量形成跳数矩阵和距离矩阵作为训练数据训练堆栈自编码器,使训练后的堆栈自编码器得出的距离估计模型覆盖网络中所有锚节点,使得未知节点可以通过多跳传输与网络中所有锚节点进行通信,实现整个网络中所有未知节点的定位。
进一步地,所述未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量具体为:未知节点将收集到的每个锚节点的跳数信息构建跳数向量并将跳数向量输入到距离估计模型中,距离估计模型的输出向量即为未知节点到达每个锚节点的距离估计向量。
进一步地,所述未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标具体为:未知节点k根据获得距离估计向量
Figure BDA0002375672950000041
构建目标函数为
Figure BDA0002375672950000042
ek的最小值所对应的解
Figure BDA0002375672950000043
即作为未知节点的估计坐标,其中(xi,yi)为锚节点i的位置信息,
Figure BDA0002375672950000051
hk表示将未知节点k收集的锚节点数据并建构的跳数向量,
Figure BDA0002375672950000052
表示将跳数向量hk输入距离估计模型得到的距离估计向量,
Figure BDA0002375672950000053
Figure BDA0002375672950000054
表示锚节点i在未知节点k坐标计算过程中的权重,其中hki表示未知节点k收集的锚节点i的跳数信息,max(hk)表示未知节点k跳数向量的最大跳数。
未知节点将收集到的锚节点跳数信息构建跳数向量输入到距离估计模型中,并根据距离估计模型的输出向量构建目标函数得到未知节点的定位,提高了未知节点坐标估计的精度。
进一步地,所述节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于其所维护的锚节点信息表AT中并完成message数据包的转发具体包括以下判断步骤:
S121、节点判断所述message数据包中的ID信息是否存在于该节点所维护的锚节点信息表AT中,存在则执行步骤S122,不存在则将所述message数据包中的ID信息、位置信息和跳数信息保存到其锚节点信息表AT中并执行步骤S123;
S122、节点判断所述message数据包中的跳数信息是否小于锚节点信息表中对应于该ID信息的message数据包中的跳数信息,是则更新锚节点信息表中对应于该ID信息的message数据包中的跳数信息,并执行步骤S123,否则执行步骤S124;
S123、节点将所述message数据包中的跳数信息加一后转发给该节点的邻居节点,当节点接收到所有锚节点发送的message数据包后,结束message数据包的转发;
S124、节点将所述message数据包丢弃。
通过检查该锚节点信息中的ID信息是否存储于节点所维护的锚节点信息表AT中,将不存在锚节点信息表AT中或者存在锚节点信息表AT但小于跳数信息的锚节点信息进行存储并转发给邻居节点,否则将message数据包抛弃,从而可以节省节点的内存,提高message数据包的转发的效率。
进一步地,所述锚节点信息表AT的长度等于网络中锚节点的数量。
通过将建立长度等于网络中锚节点的数量的锚节点信息表AT,从而使节点可以快速准确的得到网络中锚节点的数量。
与现有技术相比,本发明的有益效果为:采用堆栈自编码器距离估计模型能根据网络实际所处环境的特性,通过学习网络中锚节点收集的其他锚节点的数据信息保证经过训练的距离估计模型在所部属网络的适用性;未知节点根据距离估计模型的输出向量构建目标函数并未不同锚节点引入权值使得其在未知节点坐标计算中所占的重要程度更加合理,进而未知节点实现在不同网络下的精确定位。
附图说明
图1为现有技术的非测距的节点定位方法图;
图2为覆盖空洞导致迂回路径的示意图;
图3为本发明的基于堆栈自编码器的无线传感器网络非测距定位方法的流程图;
图4为本发明message数据包示意图;
图5为本发明节点检查锚节点信息的流程图;
图6为本发明仿真实验中的Square形简单网络示意图;
图7为本发明仿真实验中的S-shaped复杂网络示意图;
图8为本发明仿真实验中的Square形网络中的距离估计误差;
图9为本发明仿真实验中的Square形网络中的定位误差;
图10为本发明仿真实验中的S-shaped网络中的距离估计误差;
图11为本发明仿真实验中的S-shaped网络中的定位误差。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
如图3所示,在本实施例中,提供一种基于堆栈自编码器的无线传感器网络非测距定位方法,包括:
S1、锚节点向网络中的节点广播自身的锚节点信息,节点收集所有锚节点信息,所述节点包括未知节点和锚节点;
S2、锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量,并将所述跳数向量和距离向量发送到选定的sink节点,所述sink节点为网络中计算资源最强的锚节点;
S3、sink节点将接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器得到距离估计模型,并将所述距离估计模型发送给网络中的未知节点;
S4、未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量;
S5、未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标。
本实施例是在无线传感器网络中存在若干位置已知的锚节点的条件下,通过利用节点之间的连通关系,即节点间最短路由路径跳数,实现未知节点定位。在具体实施过程中,当无线传感器网络部署完毕后,网络中的锚节点在接收到控制中心发来的定位命令后,开始向网络中的节点广播自身的锚节点信息,网络中的节点(包括锚节点和未知节点)收集所有锚节点广播的锚节点信息;随后将网络中计算资源最强的锚节点选择为sink节点,锚节点将自身收集到的锚节点信息分别构建跳数向量h和距离向量d,并将跳数向量h和距离向量d打包发送给已选定的sink节点;sink节点在接收到网络中其他锚节点发送来的跳数向量h和距离向量d后,由于本身也是锚节点,因此sink节点本身也收集了网络中其他锚节点广播的锚节点信息并分别构建了跳数向量和距离向量,sink节点将自身收集并构建的跳数向量、距离向量和接收到其他锚节点发送的跳数向量和距离向量作为训练数据堆栈自编码器从而获得距离估计模型,使得距离估计模型能根据网络实际所处环境的特性,通过学习网络中锚节点收集的其他锚节点信息保证该距离估计模型在所部属网络的适用性;sink节点将获得的距离估计模型发送给网络中的未知节点,未知节点接收到距离估计模型后将自身收集到的锚节点信息输入到距离估计模型中,距离估计模型根据输入的锚节点信息输出距离估计向量,然后未知节点根据距离估计向量构建目标函数,并将目标函数最小值对应的解作为自身坐标,从而利用未知节点可以通过多跳传输与网络中所有锚节点进行通信,实现整个网络中所有未知节点的定位,即实现百分之百的定位覆盖,保证了在各向异性因素存在的网络的有效性。
在本实施例中,所述锚节点信息具体为包含锚节点的ID信息、位置信息和跳数信息的message数据包。
在本实施例中,所述节点收集所有锚节点信息还包括:
S11、节点在内存中建立并维护一个锚节点信息表AT,用于保存收集到的锚节点信息,所述锚节点信息表AT的长度等于网络中锚节点的数量;
S12、节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于所述节点所维护的锚节点信息表AT中并完成message数据包的转发。
通过节点在内存中建立一个锚节点信息表AT来保存收集到的锚节点信息,有利于对收集到的锚节点信息进行管理;节点检查该锚节点信息中的ID信息是否存储于节点所维护的锚节点信息表AT中,将不符合要求的锚节点信息抛弃,从而可以节省节点的内存,提高message数据包的转发的效率。
在本实施例中,所述锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量的构建方式具体为:所述网络中存在Na个锚节点,锚节点的ID信息为1~Na,跳数向量和距离向量的维度均为Na,则锚节点i的跳数向量为
Figure BDA0002375672950000081
距离向量为
Figure BDA0002375672950000082
其中锚节点i的跳数向量hi为从其锚节点信息表AT中获得的跳数信息,每个元素表示锚节点i到ID信息对应的锚节点的最小跳数;距离向量di表示锚节点i与ID信息为1~Na的锚节点之间的欧式距离,根据锚节点信息表AT中保存的锚节点的位置信息由公式
Figure BDA0002375672950000083
计得,其中xi为锚节点i位置信息中的横坐标,yi为锚节点i位置信息中的纵坐标,xj为锚节点j位置信息中的横坐标,yj为锚节点j位置信息中的纵坐标。
在本实施例中,所述sink节点量接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器的具体步骤为:
S31、将自身构建的跳数向量和接收到的跳数向量形成跳数矩阵,将自身构建的距离向量和接收到的距离向量形成距离矩阵;
S32、以跳数矩阵为训练数据训练堆栈自编码器的第一个自编码器,根据第一个自编码器的输出采用梯度下降法获得第一编码权值和第一编码偏置;
S33、根据公式P=f(W1·H+b1)获得第二个自编码器的训练数据P并训练堆栈自编码器的第二个自编码器,根据第二个自编码器的输出采用梯度下降法获得第二编码权值和第二编码偏置,其中W1为第一编码权值,H为跳数矩阵,b1为第一编码偏置;
S34、在堆栈自编码器上添加一个线性预测层,以跳数矩阵和距离矩阵为训练数据进行有监督训练,通过反向传播和梯度下降法获得线性预测层的权值矩阵、偏置向量和距离估计模型。
在本实施例中,所述未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量具体为:未知节点将收集到的每个锚节点的跳数信息构建跳数向量并将跳数向量输入到距离估计模型中,距离估计模型的输出向量即为未知节点到达每个锚节点的距离估计向量。
在本实施例中,所述未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标具体为:未知节点k根据获得距离估计向量
Figure BDA0002375672950000091
构建目标函数为
Figure BDA0002375672950000092
ek的最小值所对应的解
Figure BDA0002375672950000093
即作为未知节点的估计坐标,其中(xi,yi)为锚节点i的位置信息,
Figure BDA0002375672950000094
hk表示将未知节点k收集的锚节点数据并建构的跳数向量,
Figure BDA0002375672950000095
表示将跳数向量hk输入距离估计模型得到的距离估计向量,
Figure BDA0002375672950000096
表示锚节点i在未知节点k坐标计算过程中的权重,其中hki表示未知节点k收集的锚节点i的跳数信息,max(hk)表示未知节点k跳数向量的最大跳数。
在本实施例中,所述节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于其所维护的锚节点信息表AT中并完成message数据包的转发具体包括以下判断步骤:
S121、节点判断所述message数据包中的ID信息是否存在于该节点所维护的锚节点信息表AT中,存在则执行步骤S122,不存在则将所述message数据包中的ID信息、位置信息和跳数信息保存到其锚节点信息表AT中并执行步骤S123;
S122、节点判断所述message数据包中的跳数信息是否小于锚节点信息表中对应于该ID信息的message数据包中的跳数信息,是则更新锚节点信息表中对应于该ID信息的message数据包中的跳数信息,并执行步骤S123,否则执行步骤S124;
S123、节点将所述message数据包中的跳数信息加一后转发给该节点的邻居节点,当节点接收到所有锚节点发送的message数据包后,结束message数据包的转发;
S124、节点将所述message数据包丢弃。
在本实施例的具体实施过程中,本实施例方法具体可以分为三个阶段:数据收集、建立距离估计模型和未知节点的定位,下面将阐述各阶段的具体操作:
数据收集:
当无线传感器网络部署完毕后,网络中的锚节点在接收到控制中心发来的定位命令后,开始向网络中广播锚节点信息,具体为包含自身ID信息、位置信息和跳数信息(HopCount,初始化为1)三个字段的message数据包,如图4所示为message数据包示意图;网络中的节点(包括锚节点和未知节点)在内存中建立并维护一个锚节点信息表AT(AnchorTable),用于保存收集到的锚节点信息,锚节点信息表AT的长度等于网络中锚节点的数量;节点在收到锚节点发送的message数据包后,先检查该message数据包中ID信息字段是否存在于其所维护的锚节点信息表AT中,具体如图5所示,该过程具体包括以下判断步骤:
S121、节点判断所述message数据包中的ID信息是否存在于该节点所维护的锚节点信息表AT中,存在则执行步骤S122,不存在则将所述message数据包中的ID信息、位置信息和Hop Count三个字段保存到其锚节点信息表AT中并执行步骤S123;
S122、节点判断所述message数据包中的Hop Count字段是否小于锚节点信息表中对应于该ID信息的message数据包中的Hop Count字段,是则更新锚节点信息表中对应于该ID信息的message数据包中的Hop Count字段,并执行步骤S123,否则执行步骤S124;
S123、节点将所述message数据包中的Hop Count字段加一后转发给该节点的邻居节点,当节点接收到所有锚节点发送的message数据包后,结束message数据包的转发;
S124、节点将所述message数据包丢弃。
当网络中的节点接收到所有锚节点发送的message数据包后,message数据包的转发过程结束,随后,网络中计算资源最强的锚节点将被选择为sink节点,其他锚节点将自身收集到的锚节点数据分别构建为跳数向量h和距离向量d,并将跳数向量h和距离向量d打包发送给已选定的sink节点。在此,以锚节点i为例子说明一个节点的跳数向量h和距离向量d的构建方式,假设网络中存在Na个锚节点,且记网络中锚节点的ID为1~Na,则这两个向量的维度均为Na,并可表示为如下:
Figure BDA0002375672950000111
Figure BDA0002375672950000112
其中锚节点i的跳数向量hi为从其锚节点信息表AT中获得的跳数,每个元素表示锚节点i到ID信息对应的锚节点的最小跳数,而距离向量di表示锚节点i与ID信息为1~Na的锚节点之间的欧式距离,根据锚节点信息表AT中保存的锚节点的位置信息由公式(3)计算得到。
Figure BDA0002375672950000113
建立距离估计模型
sink节点在收到网络中其他锚节点发送来的跳数向量h和距离向量d后,由于本身也是锚节点,因此在sink节点处也收集了锚节点广播的message数据包,并根据message数据包分别构建了Na个不同的跳数向量和对应的Na个距离向量;随后sink节点将自身构建的Na个不同的跳数向量、对应的Na个距离向量和接收的其他锚节点发送来的跳数向量h和距离向量d分别形成跳数矩阵H和距离矩阵D:
Figure BDA0002375672950000114
Figure BDA0002375672950000115
Sink节点将跳数矩阵H和距离矩阵D作为训练数据训练堆栈自编码器以获得距离估计模型,所述自编码器是一个三层神经网络,分别是输入层、隐藏层和输出层,输入层到隐藏层的计算过程成为编码阶段,隐藏层到输出层的计算过程成为解码阶段;编码阶段可以提取输入的特征,通过自编码器的堆叠可以提取输入中的复杂特征。训练堆栈自编码器的具体过程为:
S31、将自身构建的跳数向量和接收到的跳数向量形成跳数矩阵H,将自身构建的距离向量和接收到的距离向量形成距离矩阵D;
S32、以跳数矩阵H为训练数据,训练第一个自编码器:自编码器的输入层大小为Na,隐藏层大小为Nh,输出层大小为Na,其中隐藏层的激活函数f(x)为公式(6)所示的ReLU(Rectified Linear Unit)函数,输出层为线性函数g(x)=x。
Figure BDA0002375672950000121
设第一个自编码器的输出为
Figure BDA0002375672950000122
通过梯度下降法优化公式(7)获得第一编码权值W1和第一编码偏置b1,即输入层到隐藏层的权重和偏置:
Figure BDA0002375672950000123
S33、在获得第一个自编码器的第一编码权值W1和第一编码偏置后b1,以第一个自编码器的隐藏层输出作为第二个自编码器的输入,即通过公式(8)获得第二个自编码器对应的训练数据P:
P=f(w1·H+b1) (8)
第二个自编码器的输入层,隐藏层和输出层大小均为Nh,隐藏层激活函数,输出层激活函数以及训练方式与训练第一编码器中的一致,通过梯度下降法优化公式(9)获得第二个自编码器的第二编码权值W2和第二编码偏置b2
Figure BDA0002375672950000124
S34、获得了堆栈自编码器的两个隐藏层后,为了让模型具备距离估计能力,在堆栈自编码器上添加一个线性预测层,线性预测层的大小为Na,以跳数矩阵H和距离矩阵D为训练数据,进行有监督训练,通过反向传播和梯度下降法优化公式(10),获得线性预测层的权值矩阵W3和偏置向量b3,从而获得距离预测模型F。
Figure BDA0002375672950000125
最后,sink节点将训练好的距离估计模型F和对应的第一编码权值W1、第一编码偏置后b1、第二编码权值W2、第二编码偏置b2和线性预测层的权值矩阵W3和偏置向量b3发送给网络中所有的未知节点。
未知节点的定位:
当网络中的未知节点收到sink节点发送的距离估计模型F和对应的第一编码权值W1、第一编码偏置后b1、第二编码权值W2、第二编码偏置b2和线性预测层的权值矩阵W3和偏置向量b3这些参数后,将收集到每个锚节点跳数信息并构建的跳数向量输入到距离估计模型F中,距离估计模型的输出向量即为未知节点到达每个锚节点的距离估计向量;以未知节点k为例说明:未知节点k将其在数据收集阶段收集的所有锚节点的锚节点信息并存储在其创建和维护的锚节点信息表AT中,根据锚节点信息构成未知节点的跳数向量
Figure BDA0002375672950000131
将该跳数向量hk输入到距离估计模型F得到未知节点k的距离估计向量
Figure BDA0002375672950000132
Figure BDA0002375672950000133
其中
Figure BDA0002375672950000134
表示未知节点k到锚节点i的估计距离,
Figure BDA0002375672950000135
未知节点k获得距离估计向量
Figure BDA0002375672950000136
后,构造如下目标函数:
Figure BDA0002375672950000137
其中
Figure BDA0002375672950000138
为未知节点k的估计坐标,(xi,yi)为锚节点i的坐标,
Figure BDA0002375672950000139
wki表示锚节点i在未知节点k坐标计算过程中的权重,其计算方式如下:
Figure BDA00023756729500001310
其中hki表示未知节点k收集的锚节点i的跳数信息,max(hk)表示未知节点k跳数向量的最大跳数,最后根据公式(14)来获得公式(12)的最小值所对应的解
Figure BDA00023756729500001311
该解
Figure BDA00023756729500001312
即为未知节点k的估计坐标:
Figure BDA00023756729500001313
在本实施例具体实施过程中,为了验证训练好的距离估计模型F针对无线传感器网络的节点定位算法的有效性,进行了仿真实验。实验环境的计算机配置:CPU为core(TM)i7-8700K,内存为16G,操作系统为Windows 10,使用python 3.5编程。具体实验参数设置为:首先在一个100m×100m的正方形区域内生成包含总共300个节点的网络,节点的传输半径为固定为20m,其中锚节点的数量(Number of Anchors)从10到50不等。为了验证本方法对各向异性因素存在的网络的有效性,仿真实验中,设置了如图6和图7所示的两种不同网络,图6是部署区域为Square形的存在节点不均匀分布和无线电不规则(DoI,Degree ofIrregularity)两种各项异性因素的简单网络,而图7的S-shaped网络是在图6两种各项异性因素的基础上在其部署区域中引入覆盖空洞的复杂网络。上述两图中的Area length和Area Width分别代表部署区域的长度和宽度,实验中均设置为100m,图中的正方形均代表锚节点,圆形均代表未知节点,三角形均代表sink节点。实验中,在总共300个传感器节点的条件下,通过改变网络中锚节点所占的数量以观察所提出方案在不同网络和不同锚节点数量下的性能表现。
首先使用堆栈自编码器作为距离估计,然后通过设计的坐标计算公式对未知节点进行定位。为了评估算法的有效性,我们引入归一化距离估计误差(Normalized DistanceEstimation Error,NDEE)和定位精度的归一化均方根误差(Normalized Root MeanSquare Error,NRMSE)来评价算法的性能,两个指标的具体计算方式分别为:
Figure BDA0002375672950000141
Figure BDA0002375672950000142
其中Na和Nu分别代表锚节点数量和未知节点数量,R代表节点的传输半径,实验中给所有节点设置相同的传输半径20m,
Figure BDA0002375672950000143
代表利用本实施例的方法计算出的未知节点k的坐标,(xk,yk)代表未知节点k的真实坐标。
如图8所示,图8展示了本实施例的方法在图6所示的Square形简单网络中的距离估计误差。随着锚节点数量(Number of Anchors)的增加,本实施例的方法距离估计误差逐步下降,且在锚节点数量越多时,与对比算法相比,距离估计精度的提升越发明显。在该网络中,距离估计精度提升的原因是本实施例的方法在距离估计模型中引入非线性函数ReLU(Rectified Linear Unit),与其他方案所使用的跳数乘以每跳距离的线性方法相比,在网络存在各向异性因素的情况下具备更强的拟合能力,并且随着网络中锚节点数量的增加,网络能够收集到更多的训练数据,因此训练出来的距离估计模型具备更强的泛化能力,所以随着锚节点数量的增加,本实施例的方法的估计精度提升越明显。
如图9所示,图9展示了本实施例的方法在图6所示的Square形简单网络中,随着锚节点数量(Number of Anchors)增加,本实施例的方法的定位性能。如图10所示,本实施例的方法的定位精度随着锚节点数量的增加而提高,其原因有二:一是锚节点数量增加提高了距离估计精度,如图8所示;二是锚节点数量增加有效降低了geometric dilution ofprecision(GDOP)度量,从而提高定位精度。其中,在锚节点数量等于10时,在图8所示的距离估计误差性能图中,本实施例的方法与LAEP算法有相似的距离估计误差值。但从图9所示的定位性能结果看出,本实施例的方法在此情况下定位性能优于LAEP算法。其原因是LAEP等算法使用的最小二乘法在计算坐标时存在优化目标上的缺陷,由此也验证了本实施例的方法的坐标计算方法在提高定位性能方面的有效性。
如图10所示,图10展示了本实施例的方法在图7所示的S-shaped复杂网络中的距离估计误差。随着锚节点数(Number of Anchors)增加,本实施例的方法在距离估计精度上与其他方案相比,性能增益愈发显著。由于SM算法是为复杂环境下的网络设计的定位算法,因此在S-shaped网络中,该算法的距离估计精度与DV-Hop和LAEP相比有了一定的提升,而本实施例的方法通过无论是在如图6所示的较为简单的网络中,还是图7所示的复杂网络中,均获得了较好的距离估计精度,表明本实施例的方法的距离估计模型在各种网络中的有效性和适应性。
如图11所示,图11展示了本实施例的方法在图7所示的S-shaped复杂网络中的定位性能。该结果与图10的距离估计精度表现出一致性,本实施例的方法随着锚节点的增加,定位精度逐步提升,且与对比算法相比,定位性能表现优异。结合图9中本实施例的方法在Square形网络中的定位表现,本实施例的方法在绝大部分情况下的定位误差均低于0.3,而其它算法在不同条件的网络中出现了定位性能的较大波动,并且这些算法在某些网络条件下的定位结果甚至不可用。例如在复杂的S-shaped网络中,DV-Hop和LAEP两个算法的定位误差一直大于0.8,与在简单网络中的性能存在较大的差异,而SM的表现则与它们相反。综合上述实验结果和分析,本实施例的方法在定位性能提升的同时,确保了算法在不同网络中性能表现的稳定性,表明本实施例的方法的有效性。

Claims (4)

1.一种基于堆栈自编码器的无线传感器网络非测距定位方法,其特征在于,包括以下步骤:
S1、锚节点向网络中的节点广播自身的锚节点信息,节点收集所有锚节点信息,所述节点包括未知节点和锚节点;
S2、锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量,并将所述跳数向量和距离向量发送到选定的sink节点,所述sink节点为网络中计算资源最强的锚节点;
S3、sink节点将接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器得到距离估计模型,并将所述距离估计模型发送给网络中的未知节点;
S4、未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量;
S5、未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标;
所述锚节点信息具体为包含锚节点的ID信息、位置信息和跳数信息的message数据包;
所述锚节点将自身收集到的锚节点信息分别构建跳数向量和距离向量的构建方式具体为:所述网络中存在Na个锚节点,锚节点的ID信息为1~Na,跳数向量和距离向量的维度均为Na,则锚节点i的跳数向量为
Figure FDA0003541123110000011
距离向量为
Figure FDA0003541123110000012
其中锚节点i的跳数向量hi为从其锚节点信息表AT中获得的跳数信息,每个元素表示锚节点i到ID信息对应的锚节点的最小跳数;距离向量di表示锚节点i与ID信息为1~Na的锚节点之间的欧式距离,根据锚节点信息表AT中保存的锚节点的位置信息由公式
Figure FDA0003541123110000021
计得,其中xi为锚节点i位置信息中的横坐标,yi为锚节点i位置信息中的纵坐标,xj为锚节点j位置信息中的横坐标,yj为锚节点j位置信息中的纵坐标;
所述sink节点自身收集网络中的锚节点信息,并根据锚节点信息分别构建跳数向量和距离向量;
所述sink节点量接收到的跳数向量和距离向量作为训练数据训练堆栈自编码器的具体步骤为:
S31、将自身构建的跳数向量和接收到的跳数向量形成跳数矩阵,将自身构建的距离向量和接收到的距离向量形成距离矩阵;
S32、以跳数矩阵为训练数据训练堆栈自编码器的第一个自编码器,根据第一个自编码器的输出采用梯度下降法获得第一编码权值和第一编码偏置;
S33、根据公式
Figure FDA0003541123110000022
获得第二个自编码器的训练数据P并训练堆栈自编码器的第二个自编码器,根据第二个自编码器的输出采用梯度下降法获得第二编码权值和第二编码偏置,其中W1为第一编码权值,H为跳数矩阵,b1为第一编码偏置;
S34、在堆栈自编码器上添加一个线性预测层,以跳数矩阵和距离矩阵为训练数据进行有监督训练,通过反向传播和梯度下降法获得线性预测层的权值矩阵、偏置向量和距离估计模型;
所述未知节点将收集到的锚节点信息输入到距离估计模型中,距离估计模型的输出为未知节点到达锚节点的距离估计向量具体为:未知节点将收集到的每个锚节点的跳数信息构建跳数向量并将跳数向量输入到距离估计模型中,距离估计模型的输出向量即为未知节点到达每个锚节点的距离估计向量;
所述未知节点根据所述距离估计向量构建目标函数,将目标函数的最小值对应的解作为自身坐标具体为:未知节点k根据获得距离估计向量
Figure FDA0003541123110000031
构建目标函数为
Figure FDA0003541123110000032
ek的最小值所对应的解
Figure FDA0003541123110000033
即作为未知节点的估计坐标,其中(xi,yi)为锚节点i的位置信息,
Figure FDA0003541123110000034
hk表示将未知节点k收集的锚节点数据并建构的跳数向量
Figure FDA0003541123110000035
表示将跳数向量hk输入距离估计模型得到的距离估计向量,
Figure FDA0003541123110000036
表示锚节点i在未知节点k坐标计算过程中的权重,其中hki表示未知节点k收集的锚节点i的跳数信息,max(hk)表示未知节点k跳数向量的最大跳数。
2.根据权利要求1所述的一种基于堆栈自编码器的无线传感器网络非测距定位方法,其特征在于,所述节点收集所有锚节点信息还包括:
S11、节点在内存中建立并维护一个锚节点信息表AT,用于保存收集到的锚节点信息;
S12、节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于所述节点所维护的锚节点信息表AT中并完成message数据包的转发。
3.根据权利要求2所述的一种基于堆栈自编码器的无线传感器网络非测距定位方法,其特征在于,所述节点接收到锚节点发送的锚节点信息后,检查该锚节点信息中的ID信息是否存储于其所维护的锚节点信息表AT中并完成message数据包的转发具体包括以下判断步骤:
S121、节点判断所述message数据包中的ID信息是否存在于该节点所维护的锚节点信息表AT中,存在则执行步骤S122,不存在则将所述message数据包中的ID信息、位置信息和跳数信息保存到其锚节点信息表AT中并执行步骤S123;
S122、节点判断所述message数据包中的跳数信息是否小于锚节点信息表中对应于该ID信息的message数据包中的跳数信息,是则更新锚节点信息表中对应于该ID信息的message数据包中的跳数信息,并执行步骤S123,否则执行步骤S124;
S123、节点将所述message数据包中的跳数信息加一后转发给该节点的邻居节点,当节点接收到所有锚节点发送的message数据包后,结束message数据包的转发;
S124、节点将所述message数据包丢弃。
4.根据权利要求2所述的一种基于堆栈自编码器的无线传感器网络非测距定位方法,其特征在于,所述锚节点信息表AT的长度等于网络中锚节点的数量。
CN202010064911.6A 2020-01-20 2020-01-20 一种基于堆栈自编码器的无线传感器网络非测距定位方法 Active CN111277968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010064911.6A CN111277968B (zh) 2020-01-20 2020-01-20 一种基于堆栈自编码器的无线传感器网络非测距定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010064911.6A CN111277968B (zh) 2020-01-20 2020-01-20 一种基于堆栈自编码器的无线传感器网络非测距定位方法

Publications (2)

Publication Number Publication Date
CN111277968A CN111277968A (zh) 2020-06-12
CN111277968B true CN111277968B (zh) 2022-05-03

Family

ID=70999018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010064911.6A Active CN111277968B (zh) 2020-01-20 2020-01-20 一种基于堆栈自编码器的无线传感器网络非测距定位方法

Country Status (1)

Country Link
CN (1) CN111277968B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235759B (zh) * 2020-09-15 2022-05-17 武汉工程大学 一种多机器人路由优化方法及装置
CN112995942B (zh) * 2021-03-09 2022-07-15 中山大学 一种基于邻接矩阵构造的跳数矩阵恢复方法
CN113347565B (zh) * 2021-06-02 2022-11-01 郑州轻工业大学 各向异性无线传感器网络的扩展区域多跳节点测距方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554873A (zh) * 2015-11-10 2016-05-04 胡燕祝 一种基于pso-ga-rbf-hop的无线传感器网络定位算法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2307902B1 (en) * 2008-07-04 2013-09-25 Commonwealth Scientific and Industrial Research Organisation Wireless localisation system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554873A (zh) * 2015-11-10 2016-05-04 胡燕祝 一种基于pso-ga-rbf-hop的无线传感器网络定位算法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Centralized cooperative positioning and tracking with realistic communications constraints;Christian Mensing;《IEEE》;20101203;全文 *
Optimal Nonlinear Estimation for Localization of Wireless Sensor Networks;Yongqiang Cheng;《IEEE》;20110830;全文 *
无线传感器网络分布式非测距定位算法的研究;赵朝丽;《中国硕士论文全文数据库》;20090115;全文 *
无线传感器网络的节点定位技术研究;杨斌;《中国硕士论文全文数据库》;20150115;全文 *

Also Published As

Publication number Publication date
CN111277968A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111277968B (zh) 一种基于堆栈自编码器的无线传感器网络非测距定位方法
Yedavalli et al. Ecolocation: a sequence based technique for RF localization in wireless sensor networks
Wattenhofer et al. XTC: A practical topology control algorithm for ad-hoc networks
Shakshuki et al. Comparative study on range free localization algorithms
Karim et al. RELMA: A range free localization approach using mobile anchor node for wireless sensor networks
Woo et al. Range-free localization with isotropic distance scaling in wireless sensor networks
CN110087306B (zh) 一种针对无线传感器网络的节点定位方法
Tripathi Base station positioning, nodes’ localization and clustering algorithms for wireless sensor networks
Aka et al. An efficient anchor-free localization algorithm for all cluster topologies in a wireless sensor network
Woo et al. Reliable anchor node based range-free localization algorithm in anisotropic wireless sensor networks
Hariharan et al. A multi-hop protocol using advanced multi-hop Dijkstras algorithm and tree based remote vector for wireless sensor network
Zhang et al. An improved DV-Hop localization algorithm based on the node deployment in wireless sensor networks
Tay et al. Selective iterative multilateration for hop count-based localization in wireless sensor networks
Perkins et al. Reducing localization errors in sensor ad hoc networks
Gupta et al. Understanding topology challenges in the implementation of wireless sensor network for cold chain
Zhu et al. H-DHAC: A hybrid clustering protocol for wireless sensor networks
Shrivastava et al. Aosp-based secure localization for wireless sensor network
Liu et al. A Weight-based DV-HOP Improved Localization Algorithm for Wireless Sensor Networks.
Brida et al. Performance analysis of positioning in wireless sensor networks
Shah et al. A modified anchor free localization technique for wireless sensor network
KR101530058B1 (ko) 무선 센서 네트워크에서의 위치 측정 방법
Haj Seyed Javadi et al. Localization of sensor nodes in the Internet of Things using fuzzy logic and learning automata
Li et al. Study of a cost-effective localization algorithm in wireless sensor networks
CN116170741A (zh) 一种不规则网络节点分布下非测距节点定位方法
Acharya et al. Distributed Construction of the Critical Geometric Graph in Dense Wireless Sensor Networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant