一种基于聚类优化的节点定位方法与流程

文档序号:11207737阅读:364来源:国知局
一种基于聚类优化的节点定位方法与流程

本发明涉及无线定位技术领域,特别是涉及一种基于聚类优化的节点定位方法。



背景技术:

近年来,随着物联网发展的推进,无线传感器网络得到了非常广泛的应用,比如在智能家居、工业控制、智能交通、智慧城市、医疗卫生、军事国防等。无线传感器网络也正在改变我们的生活,并逐渐成为我们生活中不可或缺的一部分。在无线传感器网络中,我们有时需要与网络上的监控对象进行交互,为了便于对监控对象采取相应的措施,需要监控对象所在的物理位置。如果监控对象的位置不明确,则与此相关的研究工作可能是毫无意义的。因此,在无线传感器网络系统中,定位是一项基本的重要功能。

无线传感器网络中节点定位技术是目前研究的热点问题之一,当前的定位算法大致可以分为两大类,一类基于测距的定位算法,另一类基于非测距的定位算法。这两类算法各有优缺点,第一类算法主要以距离测量作为基础,通过三边测量法或极大似然估计法等方法对未知节点进行定位;其优点是定位误差较小、定位准确度较高,但其缺点是对节点的硬件要求较高,增加网络的成本。第二类算法由于与距离无关,对传感器节点的硬件要求相对较低,同时也降低了全网的成本,但定位精度不如第一类算法。由于无线传感器网络中对定位精度的要求通常与应用有关,所以通常根据不同的应用采取不同的定位算法。

在大规模无线传感器网络中,考虑到经济成本、节点硬件简单性等特点,在该网络上大多采用的是基于非测距的定位算法,其中,dv-hop节点定位算法受到了许多学者的格外关注。由于dv-hop算法在定位上存在许多不足之处,dv-hop(distancevector-hop)定位算法是类似于网络中距离向量路由机制的一种与距离无关的分布式定位算法。利用距离向量定位机制实现未知节点与信标节点间的最小跳数,再通过最小跳数估算平均每一跳的距离,然后通过最小跳数与平均每跳距离之积求得未知节点与信标节点间的估计距离值,最后借助极大似然估计法或三边测量法计算未知节点的坐标位置。然而采用dv-hop算法进行定位仍存在定位噪声点,定位效果较低,存在误差偏多,如此定位准确性不高。



技术实现要素:

本发明的目的是提供一种基于聚类优化的节点定位方法,以实现提高定位准确性。

为解决上述技术问题,本发明提供一种基于聚类优化的节点定位方法,该方法包括:

在网络中任意选择三个信标节点作为信标节点组合,得到cm3个信标节点组合,并判断每个信标节点组合是否满足共线度阈值,将满足共线度阈值的信标节点组合添加到容器colset;其中,m是网络中信标节点的个数;

对容器colset中的每个信标节点组合,判断信标节点组合是否通过pit测试,将不能通过pit测试的信标节点组合从容器colset中剔除;

对容器colset中的每个信标节点组合,采用信标节点组合中的三个信标节点对未知节点进行初步定位估计,将初步定位估计结果添加到定位候选集locset;

采用聚类算法对定位候选集locset进行聚类优化,将数据点归类并去除定位候选集locset中的噪声数据点,寻找最大核心数据点簇,确定未知节点的估计位置坐标。

优选的,所述对容器colset中的每个信标节点组合,采用信标节点组合中的三个信标节点对未知节点进行初步定位估计,将初步定位估计结果添加到定位候选集locset,包括:

对于信标节点组合中的三个信标节点,使用加权平均跳距方法估计未知节点与任意两个信标节点之间的距离;

通过信标三角形与未知节点的未知关系,利用三角形性质计算未知节点与信标节点组合中剩余的一个信标节点之间的距离,借助三边测量法对未知节点进行初步位置估计;

通过容器colset中的每个信标节点组合对未知节点进行三次的初步定位估计,将每一次的初步定位估计结果添加到未知节点的定位候选集locset中。

优选的,所述将不能通过pit测试的信标节点组合从容器colset中剔除之后,还包括:

更新容器colset。

优选的,所述聚类算法包括dbscan聚类算法。

优选的,所述采用聚类算法对定位候选集locset进行聚类优化,将数据点归类并去除定位候选集locset中的噪声数据点,寻找最大核心数据点簇,确定未知节点的估计位置坐标,包括:

在定位候选集locset上运行dbscan聚类算法,将密度可达的数据点归为一类,同时去除locset中的噪声点,获得去除噪声数据点之后的一个或多个类簇;

从获取的类簇中查找到最大的类簇,求取所述最大的类簇的平均值,将所述平均值作为未知节点的最终位置坐标。

优选的,所述在定位候选集locset上运行dbscan聚类算法之前,还包括:

设置dbscan算法中的数据点密度阈值参数minpts;

依据数据点密度阈值参数minpts和定位候选集locset建立k-dist图,确定dbscan算法中的数据点领域半径参数eps;

将minpts、eps和locset作为dbscan算法运行前的输入值。

优选的,所述pit测试为最佳三角形内点测试。

本发明所提供的一种基于聚类优化的节点定位方法,在网络中任意选择三个信标节点作为信标节点组合,得到个信标节点组合,并判断每个信标节点组合是否满足共线度阈值,将满足共线度阈值的信标节点组合添加到容器colset;其中,m是网络中信标节点的个数;对容器colset中的每个信标节点组合,判断信标节点组合是否通过pit测试,将不能通过pit测试的信标节点组合从容器colset中剔除;对容器colset中的每个信标节点组合,采用信标节点组合中的三个信标节点对未知节点进行初步定位估计,将初步定位估计结果添加到定位候选集locset;采用聚类算法对定位候选集locset进行聚类优化,将数据点归类并去除定位候选集locset中的噪声数据点,寻找最大核心数据点簇,确定未知节点的估计位置坐标。可见,相对传统dv-hop定位算法,本方法首先运用共线度判别法和最佳三角形内点测试法筛选参与定位的信标节点组,其次估计未知节点与任意两个信标节点的距离,计算出未知节点与剩余信标节点的距离,然后对未知节点进行初步定位估计,每组信标节点都可以产生对未知节点的三次初步定位估计,将每次的初步定位估计结果添加到定位候选集,最后借助聚类算法对定位候选集进行优化,将定位噪声点去除,留下定位核心数据点,求出未知节点最佳可能的位置,本方法比dv-hop定位算法定位效果更优,降低了误差,提高了定位的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明所提供的一种基于聚类优化的节点定位方法的流程图;

图2为基于dbscan聚类优化的dv-hop定位算法流程图;

图3(a)是本发明方法中信标节点占比对平均定位误差的影响仿真图;

图3(b)是本发明方法中点通信半径对平均定位误差的影响仿真图;

图3(c)是本发明方法中节点总数对平均定位误差的影响仿真图。

具体实施方式

本发明的核心是提供一种基于聚类优化的节点定位方法,以实现提高定位准确性。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的一种基于聚类优化的节点定位方法的流程图,该方法包括:

s11:在网络中任意选择三个信标节点作为信标节点组合,得到cm3个信标节点组合,并判断每个信标节点组合是否满足共线度阈值,将满足共线度阈值的信标节点组合添加到容器colset;

其中,m是网络中信标节点的个数;

s12:对容器colset中的每个信标节点组合,判断信标节点组合是否通过pit测试,将不能通过pit测试的信标节点组合从容器colset中剔除;

s13:对容器colset中的每个信标节点组合,采用信标节点组合中的三个信标节点对未知节点进行初步定位估计,将初步定位估计结果添加到定位候选集locset;

s14:采用聚类算法对定位候选集locset进行聚类优化,将数据点归类并去除定位候选集locset中的噪声数据点,寻找最大核心数据点簇,确定未知节点的估计位置坐标。

可见,相对传统dv-hop定位算法,本方法首先运用共线度判别法和最佳三角形内点测试法筛选参与定位的信标节点组,其次估计未知节点与任意两个信标节点的距离,计算出未知节点与剩余信标节点的距离,然后对未知节点进行初步定位估计,每组信标节点都可以产生对未知节点的三次初步定位估计,将每次的初步定位估计结果添加到定位候选集,最后借助聚类算法对定位候选集进行优化,将定位噪声点去除,留下定位核心数据点,求出未知节点最佳可能的位置,本方法比dv-hop定位算法定位效果更优,降低了误差,提高了定位的准确性。

基于上述方法,进一步的,步骤s13具体包括以下步骤:

s21:对于信标节点组合中的三个信标节点,使用加权平均跳距方法估计未知节点与任意两个信标节点之间的距离;

s22:通过信标三角形与未知节点的未知关系,利用三角形性质计算未知节点与信标节点组合中剩余的一个信标节点之间的距离,借助三边测量法对未知节点进行初步位置估计;

s23:通过容器colset中的每个信标节点组合对未知节点进行三次的初步定位估计,将每一次的初步定位估计结果添加到未知节点的定位候选集locset中。

进一步的,步骤s12中,将不能通过pit测试的信标节点组合从容器colset中剔除之后,还包括:更新容器colset。

详细的,所述聚类算法包括dbscan聚类算法。

进一步的,步骤s14包括以下步骤:

s31:在定位候选集locset上运行dbscan聚类算法,将密度可达的数据点归为一类,同时去除locset中的噪声点,获得去除噪声数据点之后的一个或多个类簇;

s32:从获取的类簇中查找到最大的类簇,求取所述最大的类簇的平均值,将所述平均值作为未知节点的最终位置坐标。

其中,步骤s31之前还包括:设置dbscan算法中的数据点密度阈值参数minpts;依据数据点密度阈值参数minpts和定位候选集locset建立k-dist图,确定dbscan算法中的数据点领域半径参数eps;将minpts、eps和locset作为dbscan算法运行前的输入值。

其中,信标节点也称为锚节点或参考节点,该类节点的特点是位置信息已知,之所以位置信息已知是因为该类节点具有gps定位模块或者是人工预设的方式确定该节点的自身位置信息而不需要通过其他途径再去对此节点进行定位获得。

其中,平均跳距为在整个网络中,任意两个节点之间的估计距离之和与节点间跳数总和的比值,称为整个网络的平均跳距,根据不同的跳距计算规则获得的两节点间的平均跳距可能不尽相同。

其中,所述pit测试为最佳三角形内点测试。最佳三角形内点测试首先利用网络中相对节点密度较高的区域来模拟节点的移动以求得未知节点是否在任意三个信标节点确定的三角形内,如果未知节点在三角形内部,则计算所有满足该未知节点在多组三个信标节点确定的三角形区域的重叠部分,然后求得多边形重叠部分中的质心作为未知节点的估计位置。假设部署网络中有n个信标节点,那么共有中不同的选取方法,在中不同的选取中依次测试未知节点是否在每个三角形内部,重复该操作直到满足定位所需精度或穷尽所有可能的组合。

具体的,在已知数据集和minpts之下,通过计算求出每个数据点与第k个最近数据点之间的距离,然后对此进行由小到大排序,这个过程就是建立k-dist图。minpts的取值是通过一种启发式方法来确定,一般为了减少计算量,事先将minpts取为4比较合适。为了计算方便,将minpts的值取值为4,对locset建立k-dist图,从而确定参数eps的值,将minpts、eps和locset作为聚类算法dbscan运行前的输入值。

k-dist图的具体建立步骤如下:

(1)计算每个数据点与其他数据点的距离,构建大小为n×n的距离矩阵distn,矩阵的每一行都代表一个数据点与其他数据点的距离;

(2)对距离矩阵distn的每一行找出最小值,然后将一个无穷大替换之,而距离矩阵的其他数据均保持不变;

(3)转至步骤(2)继续执行,直到找到每个数据点的第k个最近距离为止,也即执行步骤2的次数为k+1次,因为第一次执行步骤2时,找到的最小距离是数据点与其自身的距离,全都是0的数据;

(4)得到所有数据点第k个最近距离之后,将这些数据从小到大排序,x轴为数据点序,y轴为第k个最近距离值。

更详细的,采用dbscan聚类算法对定位候选集进行优化,将数据点归类并去除定位候选集locset中的噪声数据点的具体步骤为:

1、首先确定minpts的值,然后选择每个数据点的第k个近邻数据点的距离,建立k-dist图,通过对k-dist图的观察,寻找到曲线图中凹陷对应的距离值作为eps的值;

2、从数据集中任意选择一个不属于任何簇的数据点作为簇标号c建立的起点,然后对该数据点进行eps领域内的查询和统计,判断统计的数量与minpts比较,若大于或等于minpts,则说明该数据点是核心数据点,将它领域内的所有数据点同时标记相同类型的簇标号c,接着把该数据点eps领域内的核心数据点添加到容器list中;若小于minpts,暂时标记为噪声数据点;

3、从容器list中取出一个数据点,然后查询并统计该数据点的eps领域内的数据点,将该领域内所有的数据点标记c,最后,把该领域内的核心数据点添加到容器list中;

4、重复步骤3,如此这般,不断扩大簇c直到没有新的数据点被标记为c,此时,簇c已完全建立,下一步继续选择其他可能的簇类。转到步骤1继续执行;

5、当找不到不属于任何簇的数据点,同时所有数据点都以试探过,则剩余的不在任何一个簇中的数据点,均已被标记为噪声数据点。

可见,本发明采用基于密度聚类优化的改进策略,首先对传统dv-hop定位算法采用加权方式改进平均跳距,运用共线度判别法和最佳三角形内点测试法筛选参与定位的信标节点组,其次估计未知节点与任意两个信标节点的距离,利用三角形性质,计算出未知节点与剩余信标节点的距离,然后利用三边测量法对未知节点进行初步定位估计,每组信标节点都可以产生对未知节点的三次初步定位估计,将每次的初步定位估计结果添加到定位候选集,并且借助dbscan聚类算法对定位候选集进行优化,将定位噪声点去除,留下定位核心数据点,求出未知节点最佳可能的位置,本方法比dv-hop定位算法定位效果更优,降低了误差,提高了定位的准确性。

本方法在部署网络中通过改进型的dv-hop定位算法获得对未知节点的定位候选集locset,利用基于密度的聚类算法dbscan对其进行聚类优化,寻找最大核心数据点簇,进而确定未知节点的估计位置坐标。

图2为基于dbscan聚类优化的dv-hop定位算法流程图,详细的,dv-hop定位算法过程分为三个步骤:

第一步的目的是使连通网络中的每一个节点都记录着与各信标节点之间的最小跳数信息和各信标节点的位置信息。为了实现该目的,首先每个信标节点通过可控的洪泛机制向整个网络广播自身的定位信标数据包。数据包中的信息量包含时间戳、信标节点序号、当前跳数值h以及信标节点自身位置(x,y),当前跳数值h的字段初始值为零。接着,当其邻居节点接收到了该数据包后,与当前保存的数据包进行对比分析,以便决定是否对该节点之前保存的数据包中的数据进行更新保存,使节点随时保存当前情况下最优的数据包中记录,该记录此时当前的跳数值最小,且所需时间也最短,然后再转发给周围的邻居节点,在转发之前,先修改当前的跳数信息字段值,使其该字段值加一。经过如此连续转发之后,连通网络中的每一个节点都将获得上述两种关键信息。

第二步需完成计算未知节点与各信标节点间的估计距离。首先估算信标节点的平均跳距:

其中,(xi,yi)、(xj,yj)是信标节点i和j的坐标,hij是信标节点间i、j的最小跳数值。

然后在每个信标节点都获得了自身的平均跳距之后,通过可控的洪泛机制向周围邻居节点发送其平均跳距信息,未知节点只保存离其最近的信标节点的平均跳距信息。然后,未知节点利用该信息计算与信标节点间的估计距离:

di=hi·hopsize

其中,hi表示未知节点到信标节点i间的最小跳数值,di表示未知节点与信标节点i的估计距离,hopsize值是离未知节点最近的信标节点的平均跳距。

第三步将实现未知节点的定位。当未知节点通过算法的第二步获得多个例如3个或3个以上估计距离值之后,运用三边测量法或极大似然估计法计算出未知节点的估计坐标。

具体的,本发明借助dbscan聚类算法对定位候选集进行优化,将定位噪声点去除,留下定位核心数据点,dbscan聚类算法是将能够相互密度相连的所有的数据点归为一个簇,整个数据集可能最终会产生一个或多个簇,或许也包含不在任何一个簇的噪声数据点。

本发明提出在部署网络中通过改进型的dv-hop定位算法获得对未知节点的定位候选集,利用基于密度的聚类算法dbscan对其进行聚类优化,寻找最大核心数据点簇,进而确定未知节点的估计位置坐标。

本方法中,在传统的dv-hop对未知节点平均跳距加权处理之后,再利用未知节点与信标三角形之间的拓扑关系,对原有的定位过程进行调整,基于两条估计边对未知节点进行定位估计,形成改进型的dv-hop定位算法(animproveddv-hoplocalizationalgorithm,简称idv-hop)。由于可以在三个信标节点中任意选择两个信标节点运用改进型的dv-hop定位算法对未知节点进行定位,所以在网络上每三个信标节点可能组成一组,而其中的每组信标节点都可以对未知节点进行三次初步定位估计,于是最大可能的初步定位估计次数为其中m是网络中信标节点的总数,在这些初步定位估计之上运用聚类算法对此进行分析,求出未知节点最有可能出现的位置,这个过程就形成了基于聚类分析策略的改进型dv-hop算法(animproveddv-hopalgorithmbasedonclusteringanalysisofdbscan,简称idv-hopcad)。

仿真结果如图3(a)、图3(b)和图3(c)所示,图3(a)是本发明方法中信标节点占比对平均定位误差的影响仿真图,图3(b)是本发明方法中点通信半径对平均定位误差的影响仿真图,图3(c)是本发明方法中节点总数对平均定位误差的影响仿真图,这些图是在matlab建立仿真模型,对dv-hop算法和本文提出的改进算法进行对比分析的结果图,具体是在信标节点比例、节点通信半径和节点总数等因素下分别对三种算法的平均定位误差的影响进行实验,从图3(a)、图3(b)和图3(c)看出,本发明的基于聚类优化的节点定位算法与其余两种算法相比定位误差较小,定位效果更好。

由于dv-hop算法在定位上存在许多不足之处,本发明提出一种基于密度聚类优化的改进策略,首先对传统dv-hop定位算法采用加权方式改进平均跳距,运用共线度判别法和最佳三角形内点测试法筛选参与定位的信标节点组,其次,估计未知节点与任意两个信标节点的距离,利用三角形性质,计算出未知节点与剩余信标节点的距离,然后利用三边测量法对未知节点进行初步定位估计,重复上述操作,每组信标节点都可以产生对未知节点的三次初步定位估计,将每次的初步定位估计结果添加到定位候选集,最后借助dbscan聚类算法对定位候选集进行优化,将定位噪声点去除,留下定位核心数据点,求出未知节点最佳可能的位置。通过matlab建立仿真模型,对dv-hop算法和本发明提出的改进算法进行对比分析,仿真结果表明,基于密度聚类优化的定位算法比dv-hop定位算法定位效果更优,降低了误差,提高了定位的准确性。

以上对本发明所提供的一种基于聚类优化的节点定位方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1