无线传感网中基于数据驱动的分簇的节能的数据收集方法转让专利

申请号 : CN201910001087.7

文献号 : CN109525956B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张丽翠张春霞王鹏程

申请人 : 吉林大学

摘要 :

本发明公开了无线传感网中基于数据驱动的分簇的节能的数据收集方法,该方法主要由基于数据的分簇算法以及基于这种簇结构的数据收集框架构成,本文提出的基于数据的分簇能够实时对网络中的数据序列进行聚类,并根据聚类结果进行分簇,数据收集框架使得每个节点在本地检测数据冗余性并过滤冗余数据,最终通过构建节能的簇结构以及在数据收集过程中避免冗余数据的传输来达到节能的效果。

权利要求 :

1.无线传感网中基于数据驱动的分簇的节能的数据收集方法,其特征在于,包括:步骤一、Sink节点收集所有传感器节点的数据、位置和能量信息,对所有传感器节点的数据序列使用fuzzy ART进行聚类,确定同属于一个类别的不同节点,其具有形状相似性;

以及

Sink节点确定任意两个节点的数据序列X{x1,x2,..,xn}和Y{y1,y2,..,yn}中至少存在k对(xi,yi)使|xi-yi|≤ε和 成立的不同节点,其具有幅度相似性;

参数ε和θ是与应用相关的用户定义的参数;

步骤二、Sink节点进行基于各因素加权的K-means分簇,得到由簇头和从节点组成的分簇拓扑结构,再进行锚节点选举,将结果发送给传感器节点;所有传感器节点接收所述Sink节点的数据;

步骤三、簇结构形成后,无线传感网周期性地进行收集数据;

其中,在每个所述周期中,所述簇头随机选择部分非锚节点进入睡眠状态,为非睡眠节点分配TDMA时隙并且发送TDMA指令;

所述锚节点接收TDMA指令,感知环境数据并依次广播自己的数据序列;

所述睡眠锚节点接收TDMA指令,进入睡眠状态;

所述非睡眠的非锚节点接收TDMA指令,感知环境数据,接收本节点对应锚节点的数据并检测与本地数据序列的形状相似性或者幅度相似性,如果所述相似性不变则不发送数据,如果所述相似性改变则发送新的参数给所述簇头,如果不再相似则压缩数据序列后发送给所述簇头;

所述簇头接收本簇内节点的数据并与自己的数据发送给所述Sink节点,更新本簇的睡眠概率,完成一轮数据收集;

步骤四、数据收集后,所述sink节点根据历史相关性信息和锚节点数据恢复网络中每一点的数据,并检测不相关节点与邻簇簇头的相关性,并将不相关节点调整到与其相关的最近的邻簇中;所述Sink节点读取簇头的剩余能量,剩余能量低于阈值时进行重分簇,当重分簇时Sink节点使用原簇结构收集所有节点数据;

在所述步骤一中,所述聚类过程采用Fuzzy ART进行聚类,同时采用如下方式更新获胜神经元的连接权重向量:Wj=β|I∧Wj|+(1-β)Wj;

式中,β表示学习率,0≤β≤1;

其中,βik表示第k轮中的第i个输入的学习率, 表示第k轮中的第i个输入的学习率,表示当前实际连接权重向量与理想的连接权重向量的差,ξ表示常数,表示第k轮总体的学习率, 表示第k轮中各输入与所属类中心的距离之和;

在所述步骤二中,基于加权的K-means分簇中的初始中心的选择包括:Sink节点将剩余能量最大的节点放入初始簇头集合,对剩余所有节点的能量排序,选出能量最大的节点,判断在初始簇头集合中是否存在一个簇头到该节点距离小于R,如果不存在,将该节点放入初始簇头集合中;Sink节点继续对剩余的节点进行能量排序与判断,直到所有的节点都被遍历,得到的初始簇头集合为初始中心;其中,R是距离阈值参数;

在所述步骤二中,基于加权的K-means分簇中的节点划分通过逻辑距离度量dis(·)进行计算:所述逻辑距离度量为

式中,dis(i,j)表示第i个节点到第j个簇的逻辑距离, 和 表示加权系数,满足表示本节点与该簇的同质性,ncorrelated表示第j个簇中有多少节点与本节点形状相似或者幅度相似,nall表示目前第j个簇中总的节点个数,d2(i,j)表示第i个节点到第j个簇头的距离,Q3=M·ε(d(i,j)-R),M表示常数,ε(·)表示单位阶跃函数;

对每个非中心节点计算相对于所有簇的逻辑距离度量,选择最小的簇加入;

基于加权的K-means分簇中的重新计算簇中心的过程为通过使用score(·)函数从簇内的所有节点中重新选择簇头;

其中,

式中, 表示加权系数, 表示

节点i到本簇其他节点的距离之和,NCM表示本簇中的从节点个数,dmax表示本簇中距离最远的两个节点之间的距离, 表示本节点到本簇内最远节点的距离,Emax表示本簇中剩余能量最大的节点的能量,Eresidual表示本节点的剩余能量,ncorrelated表示在本簇中与节点i相关的节点的个数;

对所有节点计算score(·)函数值,选择值最大的作为簇头;

在所述步骤三中,非睡眠非锚节点检测与锚节点的数据序列的形状相似性过程为:将两序列最大最小归一化后,将其中一个序列作为初始的连接权重向量W,并且将另一个作为输入向量I,判断是否同时满足 和 若不等式成立,则视为两节点形状相似;ρ是收敛参数。

2.如权利要求1所述的无线传感网中基于数据驱动的分簇的节能的数据收集方法,其特征在于,在所述步骤二中,锚节点选择过程为;

首先将簇头标记为锚节点,并且遍历本簇内未标记的节点,将其中与本簇内任意所述锚节点相关的节点标记为非锚节点,在未标记的节点中,选择与簇头距离最近的节点标记为锚节点,重复该过程直到簇内所有的节点都被标记为锚节点或者非锚节点为止。

3.如权利要求1所述的无线传感网中基于数据驱动的分簇的节能的数据收集方法,其特征在于,在所述步骤四中,数据恢复过程为:使用锚节点数据作为幅度相似的非锚节点的数据;

其中,对于形状相似的非锚节点,恢复的数据为

式中, b=MinY-A·MinX,A,b是存储在本地节点的关系参数,MaxY,MinY是锚节点上一轮数据的最大值和最小值,MaxX,MinX是上一轮数据的最大最小值。

说明书 :

无线传感网中基于数据驱动的分簇的节能的数据收集方法

技术领域

[0001] 本发明属于无线传感网领域,具体涉及无线传感网中基于数据驱动的分簇的节能的数据收集方法。

背景技术

[0002] 有关无线传感网节能的方法有很多,比较有效的节能方法是构建节能的簇结构,并在簇结构之上实现网内数据融合和数据处理,由于通信能耗是主要的能耗来源,因此这种方法能够有效的节能。现存的比较成熟的节能的分簇方法有基于概率的分簇,如Heinzelman等人提出的LEACH算法能够使得每个节点均匀的充当簇头,基于各因素加权的分簇如Ding提出的DWEHC协议,该协议中每个节点根据剩余能量、簇半径、到邻节点之间的距离等因素来计算权重函数从而评选出簇头,基于智能搜索技术的分簇算法如Salehpour提出的基于蚁群算法的分簇算法和基于博弈论的分簇算法如sun等人提出的GBUC算法等。
[0003] 在研究节能的分簇算法时,越来越多的人将传感器节点的数据域考虑进来,出现了许多基于数据的分簇算法或者基于簇结构的节能的数据收集框架,此时数据收集和融合过程与分簇过程变为紧耦合关系。基于数据的分簇大多需要测量节点的时空相关性,一些算法基于节点数据直观的幅度和趋势来判断节点相关性如Liu提出的EEDC算法、基于数据密度的DSCC算法,另一些则基于数据映射或数据模型参数来进行分簇,如基于双预测模型的DSCCF算法、基于PCA压缩的SDCC算法、基于线性回归模型的DLRDG算法等。还有许多挖掘节点时空相关性的分簇和数据收集算法如Deligiannakis提出的基于自回归算法SBR的数据收集框架,用于通过挖掘时间相关性减少通信能耗。Pham提出一种基于时空相关性的分簇和压缩策略SCCS,在缓存中寻找代表性数据点从而减少数据发送量,另外SCCS仅在时间发生地区的节点之上构建簇结构,充分利用了节点的空间相关性。Xu提出了一种基于小波变换的无线传感网中的数据压缩方法,该算法将网络分成网格,每个网格中的节点被视为具有时空相关性,通过对数据进行小波变换来压缩数据,并通过环状拓扑发送数据给簇头。但是本算法并没有考虑到事件本身的统计特征,也未考虑到传感器节点是否有能力进行小波变换。
[0004] 在现存的算法中,依赖于节点时间相关性的算法的节能性能受被检测对象的变化影响较大,当被检测对象剧烈变化时,算法往往不再节能。而现存的依赖于空间相关性的分簇算法中,如使用PCA压缩性能作为分簇指标的,或者使用映射向量相似性来测量节点之间的空间相关性的方法,一方面计算量较大而传感器是资源受限的导致算法不适用,另一方面,当空间相关性变化时,这类算法的计算和通信开销都会变大。为了更加精确地挖掘和利用节点之间的时空相关性,同时减小传感器节点处的计算开销,找到既能够适应被监测对象的时空变化又节能的簇结构,同时从数据源头减少冗余数据的传输,本文提出一种基于数据的分簇算法和基于这种簇结构的节能的数据收集策略。

发明内容

[0005] 本发明设计开发了无线传感网中基于数据驱动的分簇的节能的数据收集方法,本发明的发明目的之一是通过挖掘了节点相关性,与睡眠调度算法相结合从而减少数据收集阶段的冗余数据的传输。
[0006] 本发明的发明目的之二是基于各因素加权的K-means分簇算法,该算法能在更大范围内搜索节能的簇结构。
[0007] 本发明的发明目的之三是基于广播的数据收集策略与睡眠调度算法和压缩算法相结合能够进一步减少通信量。
[0008] 本发明的发明目的之四是提出维护簇结构的方法,解决充分利用了集中式分簇的优势,减小了簇维护的开销的问题。
[0009] 本发明提供的技术方案为:
[0010] 无线传感网中基于数据驱动的分簇的节能的数据收集方法,包括:
[0011] 步骤一、Sink节点收集所有传感器节点的数据、位置和能量信息,对所有传感器节点的数据序列使用fuzzy ART进行聚类,确定同属于一个类别的不同节点,其具有形状相似性;以及
[0012] Sink节点确定任意两个节点的数据序列X{x1,x2,..,xn}和Y{y1,y2,..,yn}中至少存在k对(xi,yi)使|xi-yi|≤ε和 成立的不同节点,其具有幅度相似性;
[0013] 步骤二、Sink节点进行基于各因素加权的K-means分簇,得到由簇头和从节点组成的分簇拓扑结构,再进行锚节点选举,将结果发送给传感器节点;所有传感器节点接收所述Sink节点的数据;
[0014] 步骤三、簇结构形成后,无线传感网周期性地进行收集数据;
[0015] 其中,在每个所述周期中,所述簇头随机选择部分非锚节点进入睡眠状态,为非睡眠节点分配TDMA时隙并且发送TDMA指令;
[0016] 所述锚节点接收TDMA指令,感知环境数据并依次广播自己的数据序列;
[0017] 所述睡眠锚节点接收TDMA指令,进入睡眠状态。
[0018] 所述非睡眠的非锚节点接收TDMA指令,感知环境数据,接收本节点对应锚节点的数据并检测与本地数据序列的形状相似性或者幅度相似性,如果所述相似性不变则不发送数据,如果所述相似性改变则发送新的参数给所述簇头,如果不再相似则压缩数据序列后发送给所述簇头;
[0019] 所述簇头接收本簇内节点的数据并与自己的数据发送给所述Sink节点,更新本簇的睡眠概率,完成一轮数据收集;
[0020] 步骤四、数据收集后,所述Sink节点根据历史相关性信息和锚节点数据恢复网络中每一点的数据,并检测不相关节点与邻簇簇头的相关性,并将不相关节点调整到与其相关的最近的邻簇中;所述Sink节点读取簇头的剩余能量,剩余能量低于阈值时进行重分簇,当重分簇时Sink节点使用原簇结构收集所有节点数据。
[0021] 优选的是,在所述步骤一中,所述聚类过程采用Fuzzy ART进行聚类,同时采用如下方式更新获胜神经元的连接权重向量:
[0022] Wj=β|I∧Wj|+(1-β)Wj;
[0023] 式中,β表示学习率,0≤β≤1;
[0024]
[0025]
[0026]
[0027] 其中,βik表示第k轮中的第i个输入的学习率, 表示第k轮中的第i个输入的学习率, 表示当前实际连接权重向量与理想的连接权重向量的差,ξ表示常数, 表示第k轮总体的学习率, 表示第k轮中各输入与所属类中
心的距离之和。
[0028] 优选的是,在所述步骤二中,基于加权的K-means分簇中的初始中心的选择包括:
[0029] Sink节点将剩余能量最大的节点放入初始簇头集合,对剩余所有节点的能量排序,选出能量最大的节点,判断在初始簇头集合中是否存在一个簇头到该节点距离小于R,如果不存在,将该节点放入初始簇头集合中;Sink节点继续对剩余的节点进行能量排序与判断,直到所有的节点都被遍历,得到的初始簇头集合为初始中心;其中,R是距离阈值参数。
[0030] 优选的是,在所述步骤二中,基于加权的K-means分簇中的节点划分通过逻辑距离度量dis(·)进行计算:
[0031] 所述逻辑距离度量为
[0032]
[0033] 式中,dis(i,j)表示第i个节点到第j个簇的逻辑距离, 和 表示加权系数,满足 表示本节点与该簇的同质性,ncorrelated表示第j个簇中有多少节点与本节点形状相似或者幅度相似,nall表示目前第j个簇中总的节点个数,d2(i,j)表示第i个节点到第j个簇头的距离,Q3=M·ε(d(i,j)-R),M表示常数,ε(·)表示单位阶跃函数;
[0034] 对每个非中心节点计算相对于所有簇的逻辑距离度量,选择最小的簇加入。
[0035] 优选的是,在所述步骤二中,基于加权的K-means分簇中的重新计算簇中心的过程为通过使用score(·)函数从簇内的所有节点中重新选择簇头;
[0036] 其中,
[0037]
[0038] 式中, 表示加权系数,表示节点i到本簇其他节点的距离之和,NCM表示本簇中的从节点个数,dmax表示本簇中距离最远的两个节点之间的距离, 表示本节点到本簇内最远节点的距离,Emax表示本簇中剩余能量最大的节点的能量,Eresidual表示本节点的剩余能量,ncorrelated表示在本簇中与节点i相关的节点的个数;
[0039] 对所有节点计算score(·)函数值,选择值最大的作为簇头。
[0040] 优选的是,在所述步骤二中,锚节点选择过程为;
[0041] 首先将簇头标记为锚节点,并且遍历本簇内未标记的节点,将其中与本簇内任意所述锚节点相关的节点标记为非锚节点,在未标记的节点中,选择与簇头距离最近的节点标记为锚节点,重复该过程直到簇内所有的节点都被标记为锚节点或者非锚节点为止;
[0042] 优选的是,在所述步骤三中,非睡眠非锚节点检测与锚节点的数据序列的形状相似性过程为:
[0043] 将两序列最大最小归一化后,将其中一个序列作为初始的连接权重向量W,并且将另一个作为输入向量I,判断是否同时满足 和 若不等式成立,则视为两节点形状相似。
[0044] 优选的是,在所述步骤四中,数据恢复过程为:
[0045] 使用锚节点数据作为幅度相似的非锚节点的数据;
[0046] 其中,对于形状相似的非锚节点,恢复的数据为
[0047] 式中, b=MinY-A·MinX,A,b是存储在本地节点的关系参数。
[0048] 本发明与现有技术相比较所具有的有益效果:
[0049] 1、与现有的节点相关性测量方法相比,本发明采用的结合形状相似性测量和幅度相似性测量的节点相关性测量方法,能够同时识别强信号区域和小信号区域的冗余节点;
[0050] 2、与现有的节点相关性测量方法相比,Fuzzy ART聚类能够将环境变化剧烈区域内的节点分成更少的种类,识别更多节点内在的相关性,从而能够在数据收集阶段过滤掉更多数据。实验证明,本专利能够识别和过滤比经典的EEDC和DSCCF算法更多的冗余数据;
[0051] 3、与现有的分簇方法相比,基于各因素加权的K-means分簇算法在分簇时除了考虑从节点与簇头相关性和簇头剩余能量以外,还综合考虑了各种影响簇结构能量有效性的因素,包括从节点到簇头的距离、簇头的广播半径、簇头到所有从节点的距离、簇头的节点代表性等因素。与现有分簇方法相比,基于各因素加权的K-means分簇算法考虑的因素更加全面;
[0052] 4、与现有的分簇算法相比,基于各因素加权的K-means分簇算法充分利用了集中式分簇掌握全局信息的优势,在分簇时通过使用K-means框架,重复执行从节点选簇和簇内簇头选举两个过程,能够在更大范围内寻找更加节能的簇结构。通过在K-means框架中加入初始簇头选举过程,能够减小K-means陷入局部最小的风险。实验表明,与经典的EEDC和DSCCF相比,本专利能够显著地延长网络寿命;
[0053] 5、与现有的数据收集算法相比,基于广播的数据收集方法具有与双预测模型同样的特点,即能够在数据源头抑制冗余数据的产生和传播,但是双预测模型的有效性依赖于时间相关性,而基于广播的数据收集方法依赖于节点之间的空间相关性。实验表明,在被检测对象剧烈变化时,本专利的数据收集过程能够过滤掉比DSCCF中的双预测模型更多的冗余数据。

附图说明

[0054] 图1为本发明所述的基于数据驱动的分簇的节能的数据收集方法的框架图。
[0055] 图2为本发明所述的网络示意图。
[0056] 图3为本发明所述的fuzzy ART网络结构图。
[0057] 图4为本发明所述的K-means初始类中心选择流程图。
[0058] 图5为本发明所述的锚节点选择流程图。
[0059] 图6为本发明所述的被监测对象在时刻1的数据模型。
[0060] 图7为本发明所述的被监测对象在时刻2的数据模型。
[0061] 图8为本发明所述的W-Kmeans初始分簇结果。
[0062] 图9为本发明所述的W-Kmeans簇结构调整结果。
[0063] 图10为本发明所述的三种算法的存活节点个数对比图。
[0064] 图11为本发明所述的三种算法的网络剩余能量对比图。
[0065] 图12为本发明所述的三种算法的均方根误差对比图。
[0066] 图13为本发明所述的三种算法的数据传输率对比图。

具体实施方式

[0067] 下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
[0068] 本发明提出了一种用于无线传感网的节能的数据收集方法,其主要由基于数据的分簇算法以及基于这种簇结构的数据收集框架构成,本发明提出的基于数据的分簇能够实时对网络中的数据序列进行聚类,并根据聚类结果进行分簇,数据收集框架使得每个节点在本地检测数据冗余性并过滤冗余数据,最终通过构建节能的簇结构以及在数据收集过程中避免冗余数据的传输来达到节能的效果。
[0069] 无线传感网常常被用于环境监测,如火灾监测、有毒气体监测、地震带监测和放射性区域监测等等。在大规模环境监测中,被检测对象往往是连续变化的,而传感网往往是被密集部署的,使得无线传感网中各个节点数据存在时间和空间相关性,本专利则根据节点相关性进行分簇;在信号变化较大的区域,节点之间的信号形状趋势往往是相同的,而在无信号或小信号的区域,节点数据的形状趋势因噪声干扰而不相同,但是幅度基本相同;因此本发明在检测节点相关性时同时考虑了形状相似性和幅度相似性,Fuzzy ART算法能够对序列进行聚类,并记录该类的形状,Fuzzy ART能够自动识别网络中有多少中数据序列,计算量小;因此本发明使用Fuzzy ART进行节点之间的形状相似性检测,并且为了提高数据恢复的精度,本专利对Fuzzy ART进行了改进。
[0070] 数据驱动的分簇一般是将数据相似的节点分到一个簇中,用于进行数据估计和压缩,为了得到更加节能的簇结构,本专利将加权思想与K-means算法相结合,利用K-means算法框架,重复进行从节点选簇和簇内头节点选择直到收敛;其中,从节点选簇的过程使用本专利定义的逻辑距离,逻辑距离由从节点到簇头的物理距离和相似性定义而成,簇内头节点选举过程采用本发明定义的score函数,该函数由到其他节点距离之和、节点剩余能量、簇半径、相似节点个数四种因素加权构成;该分簇算法不仅考虑了节点相似性,还考虑到多种影响簇能耗的因素,能够在较大范围内搜索节能的簇结构。
[0071] 为了在源头减少冗余数据的传输,本发明专利提出了一种节能的数据收集算法,该算法融合了代表性机制、过滤机制和睡眠调度机制;首先,在每个簇中选出锚节点,使用锚节点的数据来代表整个簇内数据,为了实时检测簇内节点的相关性,本框架采用睡眠调度机制,每轮数据收集阶段簇内的从节点都以一定的概率进入睡眠状态,即不监听和接收数据,非睡眠状态的从节点采集数据并接收锚节点数据,重新检测锚节点与本节点的相关性,若相关性不变,则不发送数据,若改变则发送参数给簇头,若不再存在相关性,则发送压缩数据给簇头;最终该框架最大程度地减少了冗余数据在网内的传输,从而减小了通信开销并延长网络寿命。本专利的框架图如图1所示,网络示意图如图2所示。
[0072] 本发明专利提出的节能的数据收集框架分为四个部分,其包括节点相关性监测、基于数据的分簇、数据收集和簇结构维护。
[0073] 其中,节点相关性监测部分具体包括:
[0074] 步骤一、形状相似性监测
[0075] 各节点收集固定长度的数据并发送给Sink节点,在Sink节点处对网络内所有数据序列使用改进的Fuzzy ART进行聚类,同类的数据序列被视为具有形状相似性。
[0076] 如图3所示,Fuzzy ART由两层神经元组成,输入层和识别层,每个识别层神经元对应一个类别,改进的Fuzzy ART算法具体包括:
[0077] 步骤1、Sink节点对所有的数据序列进行归一化:使用在Fuzzy ART算法中比较流行的最大最小归一化方法,一个节点的数据序列可表示为,归一化后的向量表示为X'=[x1',x'2,..,x'n];其中, σ是一个任意小的常数用于避免归一化后向量中出现零元素;
[0078] 步骤2、对所有归一化后的向量进行补编码:补编码向量由原始向量和各元素补编码构成的向量组成,补编码后的向量为:
[0079] X=[x1,x2,..,xn];
[0080]
[0081] 其中,
[0082] 步骤3、初始化Fuzzy ART模型:首先初始化种类个数为1,初始化连接权重向量为全1向量W1=[1,..,1];
[0083] 步骤4、种类选择:将所有节点数据归一化并补编码后的向量依次循环输入到Fuzzy ART中进行种类选择;其中,在种类选择过程中,计算输入向量在各个识别层神经元处的分类函数值,并选出具有最大函数值的识别层神经元作为获胜节点,分类函数Tj用于计算输入向量与第j种类型的连接权重向量的相似程度:
[0084] 其中,p∧q向量中的第i个元素为(p∧q)i=min{pi,qi}, α是选择参数,0<α<1;
[0085] 步骤5、谐振或者重置:当获胜识别层神经元被选出后,进行假设检验,即若第j个识别层神经元被选出后,则假设该输入向量属于第j种类型,此时需要检查第j个识别层神经元的连接权重向量与输入向量是否足够相似:
[0086] 式中,ρ是收敛参数0≤ρ≤1;
[0087] 当输入向量和连接权向量满足该不等式关系时,说明该输入向量与这种类型的中心向量足够相似,此时Fuzzy ART进入学习阶段即步骤6,更新该类别的连接权重向量,否则将该类别的分类函数值置为0,重新执行第4步来重新选择获胜神经元,即重新选择类别;
[0088] 步骤6、模型学习与更新:更新获胜神经元的连接权重向量:
[0089] Wj=β|I∧Wj|+(1-β)Wj;
[0090] 式中,β表示学习率,0≤β≤1;
[0091] 为了防止在模型更新的过程中类中心漂移太远,导致原本属于本类的样本不再与本类相似,即出现分类错误,本发明定义了新的学习率β:
[0092]
[0093]
[0094]
[0095] 本发明将所有输入都依次输入到Fuzzy ART网络模型一次的过程称为一轮;其中,βik表示第k轮中的第i个输入的学习率; 表示第k轮中的第i个输入的学习率;表示当前实际连接权重向量与理想的连接权重向量的差,即表示新输入
与该类别中心的偏离程度; 与偏离程度成反比,当新输入的向量偏离类中心较远时,学习率较小,反之,学习率较大;ξ是一个常数,表示学习率上限; 能够使得在一轮学习过程中,类别中心保持稳定,从而提高聚类精度; 表示第k轮总体的学习率,
表示第k轮中各输入与所属类中心的距离之和,随着Fuzzy ART的
学习与更新,各输入到所属类中心的距离之和应该越来越小,当前后两轮总距离相差较大时,表示Fuzzy ART模型性能提升较快,则下一轮的整体学习率 较大,当前后两轮总距离基本相同时,说明模型性能基本不变,则下一轮的整体学习率 较小; 加快了模型的收敛速度;最终每轮每个输入的学习率同时受两种学习率的影响,由两种学习率之积决定;
[0096] 步骤7、输入下一个节点的归一化并补编码后的向量到Fuzzy ART网络模型中,执行步骤4~7直到模型中所有识别层神经元的连接权重向量不再变化;
[0097] 最终,Fuzzy ART模型完成了对节点数据序列的聚类,同属于一个类别的节点具有形状相似性。
[0098] 步骤二、幅度相似性检测
[0099] 在sink节点处对所有节点的数据序列进行幅度相似性检测:任意两个节点的数据序列X{x1,x2,..,xn}和Y{y1,y2,..,yn},当存在至少k对儿(xi,yi)使|xi-yi|≤ε和 成立则两节点幅度相似。参数ε和θ是与应用相关的用户定义的参数。
[0100] 当两节点是幅度相似或者形状相似,则两节点是相关节点。
[0101] 基于数据的分簇部分具体包括:
[0102] 由于传感器计算和存储资源有限,本发明专利使用集中式分簇方法,将复杂的计算过程在sink节点处执行,一方面减少了传感器之间的交互从而减少通信能耗,另一方面有利于在全局范围内寻找节能的簇结构;sink节点首先收集各个传感器节点的数据序列、剩余能量和位置信息,在sink节点处计算任意两个节点之间的形状相似性和幅度相似性,并运行分簇算法和锚节点选择算法,最后将分簇结果和节点与锚节点之间的关系参数发送给相应的传感器节点;基于数据的分簇包括K-means分簇和锚节点选择。
[0103] 为了将同类节点分到一个簇中,同时保证簇的结构足够节能,本发明使用K-means框架,并与基于各因素加权的分簇算法相结合,由于K-means算法的性能与k个中心的初始值选举有关,初值的随机选择导致K-means无法达到全局最优,本发明专利结合无线传感网背景,在K-means框架中加入初始中心的选择,使之适用于传感网的分簇。
[0104] 簇结构形成后,同一个簇内可能存在不只一种节点,意味着在数据域,一个簇内可能存在多种数据图样,本发明专利在sink节点处对各个簇进行锚节点选择,并在数据收集时使用锚节点数据代表整个簇的数据,每个锚节点负责在每轮数据收集阶段发送一种数据图样,非锚节点的数据可根据锚节点数据和关系参数估计得到,节点之间的关系参数存储在sink节点和相应的传感器节点中。
[0105] 步骤一、K-means分簇
[0106] K-means主要分为三个步骤:(1)中心选择(2)数据划分(3)计算每个聚类的平均值作为新的中心;循环执行(2)(3)步骤直到中心不再变化;本发明专利对K-means的改进具体包括:
[0107] 步骤1、如图4所示,初始中心的选择:定义一个集合,存放所有已确定的簇中心;起初集合为空,Sink节点对所有节点的能量排序,选出能量最大的节点作为拟定的簇中心,并判断它与集合中所有节点距离是否大于R,如果满足条件,将该节点放入集合中;Sink节点继续对剩余的节点进行能量排序与判断,直到所有的节点都被遍历后停止初始中心的选择;其中,R是用户定义的与应用相关的参数;这种方法的优点是保证了簇中心分布均匀,另外能够保证初始簇中心能量都足够大。
[0108] 步骤2、节点划分:本发明定义了一种逻辑距离度量dis(·),用于计算节点加入某一个簇的不适宜程度:
[0109]
[0110] 式中,dis(i,j)表示第i个节点到第j个簇的逻辑距离,该距离度量是两种因素加权和,另外再加上一个惩罚项;其中, 和 是加权系数,满足表示本节点与该簇的同质性,ncorrelated表示第j个簇中有多少节点与本节点形状相似或者幅度相似,nall表示目前第j个簇中总的节点个数,d2(i,j)表示第i个节点到第j个簇头的距离;至此,距离度量函数值越小,表示第i个节点与第j个簇的节点越相似并且与簇头越近,为了防止距离簇头R以外的节点加入到本簇中,在公式中入了惩罚项Q3=M·ε(d(i,j)-R),其中,M是一个足够大的常数,ε(·)是单位阶跃函数,R与1中的定义相同,是用户定义的距离阈值。
[0111] 在步骤2中,遍历所有的非中心节点,对每个非中心节点计算相对于所有簇的dis(·)函数值,选择dis(·)值最小的簇加入;
[0112] 步骤3、重新计算中心:本发明专利将该步骤改为从簇内的所有节点中重新选举簇头的过程,本发明专利同样使用各因素加权思想,定义了score(·)函数来衡量某一节点充当簇头的适宜程度:
[0113]
[0114] 其中, 是加权系数,满足表示节点i到本簇其他节点的距离之和,NCM表示本簇中的从节点个数,dmax表示本簇中距离最远的两个节点之间的距离, 表示本节点到本簇内最远节点的距离,Emax表示本簇中剩余能量最大的节点的能量,Eresidual表示本节点的剩余能量,ncorrelated表示在本簇中与节点i相关的节点的个数。
[0115] 在步骤3中,sink节点对每个簇进行簇头重新选择,计算本簇中所有节点的score(·)函数值,选择score(·)值最大的作为簇头。
[0116] 步骤二、锚节点选择
[0117] 如图5所示,对每个簇进行一下步骤:
[0118] 步骤1、将簇头标记为锚节点;
[0119] 步骤2、遍历本簇内未标记的节点,将其中与本簇内任意锚节点相关的节点标记为非锚节点;
[0120] 步骤3、在未标记的节点中,选择与簇头距离最近的节点标记为锚节点;
[0121] 步骤4、重复执行步骤2,3直到簇内所有的节点都被标记为锚节点或者非锚节点为止;
[0122] 当完成锚节点选择后,一个锚节点对应多个非锚节点,在数据收集阶段,每个非锚节点将只接收一个锚节点的数据,当sink节点完成锚节点选择后,sink节点将分簇结果和锚节点标记以及各非锚节点与锚节点的关系参数发送给相应的传感器节点。
[0123] 数据收集部分具体包括:
[0124] 节点相关性检测和基于数据的分簇都是为了支撑节能的数据收集,在数据收集阶段,簇头周期性地收集和转发数据;在每轮数据收集中,簇头首先根据睡眠概率随机选择部分非锚节点进入睡眠状态,为非睡眠节点分配TDMA时隙并且发送TDMA指令。然后锚节点接收TDMA指令,感知环境数据并依次广播自己的数据序列。睡眠锚节点接收TDMA指令,进入睡眠状态。非睡眠的非锚节点接收TDMA指令,感知环境数据,接收本节点对应锚节点的数据并检测与本地数据序列的形状相似性或者幅度相似性,如果所述相似性不变则不发送数据,如果所述相似性改变则发送新的参数给所述簇头,如果不再相似则压缩数据序列后发送给所述簇头。簇头接收本簇内节点的数据包并与自己的数据打包发送给所述sink节点,最后更新本簇的睡眠概率,完成一轮数据收集。
[0125] 具体步骤如下:
[0126] 步骤一、簇头初始化睡眠调度概率
[0127] 每个簇头处保留一个本簇内节点的睡眠概率,概率初始化为一个常数;大小不同的簇的睡眠概率不同,非锚节点较多的簇具有较大的簇睡眠概率,非锚节点较少的簇具有较小的簇睡眠概率;在每轮开始阶段,簇头根据本簇睡眠概率选出本轮的非睡眠节点,并为本簇内的锚节点和非睡眠节点分配TDMA时隙,广播给簇内从节点。
[0128] 步骤二、锚节点广播数据
[0129] 当接收到簇头的TDMA控制报文后,簇内锚节点依次广播本地数据,其中簇头作为锚节点总是第一个广播数据;由于被监测的对象往往具有很强的时间相关性,本发明专利参考DSCCF中的压缩方法来压缩数据;在本实施例中,对于一个数据序|di+1-di|<εL列D=[1,1,1,2,2,3,3,3,3],则写成[数值,长度]的形式[1,3,2,2,3,4],对于数据序列D=[d1,d2,..,dn],当时,将di+1看作与di大致相等,可对二者进行长度编码,该算法用于压缩传感器节点的完整数据序列。
[0130] 步骤三、非锚节点过滤或压缩数据
[0131] 当锚节点依次广播完压缩数据后,非锚节点接收对应锚节点的数据,并检测检测本地节点数据序列与锚节点数据序列的幅度相似性和形状相似性。幅度相似性测量同上文,形状相似性测量时将其中一个序列最大最小归一化后作为初始的连接权重向量W,对另一个序列进行最大最小归一化后作为I,判断是否同时满足 和 若不等式成立,则视为两节点形状相似。当相似性未改变时,节点不发送数据;当检测出新的相似性后,本地节点发送参数给簇头;当两节点不存在相关性时,本地节点发送压缩后的数据序列给簇头;由此,冗余数据能够在数据源头被检测出并被过滤和压缩。
[0132] 步骤四、簇头收集数据并更新睡眠调度概率
[0133] 簇头接收本簇内所有发送数据的从节点的数据包,并将自己的剩余能量、本地压缩数据与从节点发送的内容打包发送给sink节点;同时,簇头根据接收到的从节点数据包类型,统计相似性发生变化和不相关从节点个数,并据此更新本簇的睡眠概率作为下一轮睡眠概率。当相关性发生变化的节点个数超过阈值时,本簇睡眠概率减半;当个数为零时,下一轮睡眠概率增加一个步长Δ。
[0134] 簇结构的维护部分具体包括:
[0135] Sink节点周期性接收簇头的数据,并使用本地参数和数据包中的锚节点数据和更新参数来估计所有节点的数据;随后,sink节点查看所有锚节点的剩余能量并判断是否充分簇;当簇头剩余能量小于两轮数据收集所需能量时,sink节点广播重分簇指令。当锚节点死亡时,sink节点从该锚节点的非锚从节点中选出距离簇头最近的节点作为锚节点代替死亡的锚节点。当非锚节点死亡时,不需要重分簇,可使用锚节点来估计死亡节点数据。重分簇时使用原簇结构,原簇头收集本簇内所有节点的压缩数据和剩余能量并发送给sink节点;
[0136] sink节点估计非锚节点数据过程如下:
[0137] 对于幅度相似节点,使用锚节点数据作为幅度相似的非锚节点的数据。对于形状相似的非锚节点,恢复的数据为
[0138] 其中 b=MinY-A·MinX,A,b是存储在非锚节点本地和sink节点处的关系参数,其中X=[x1,x2,..,xk]表示锚节点数据序列, 是非锚从节点
的估计数据序列,MaxY,MinY是锚节点上一轮数据的最大值和最小值,MaxX,MinX是上一轮数据的最大最小值;
[0139] 集中式分簇方法便于对簇结构进行调整,为检测节点之间相关性的改变,如不同簇中的节点产生了相关性,每轮数据收集后,sink节点对所有与锚节点不相关的从节点和非簇头锚节点进行如下步骤:
[0140] 步骤1、计算与各个簇头的形状相似性和幅度相似性;
[0141] 步骤2、在具有相关性的簇头中,选择距离最近的簇头;
[0142] 步骤3、检测到该簇头的距离是否小于距离阈值R,若是则将本节点作为非锚节点加入该簇。若不是则放弃对本节点的调整;
[0143] 步骤4、当锚节点加入到其他簇中,从该节点对应的原非锚节点中选择到原簇头最近的一个节点作为新的锚节点,来接替离开的锚节点;
[0144] 当sink节点调整完毕后,将调整信息发送给簇头。
[0145] 实施例
[0146] 仿真条件如下:仿真平台使用Matlab,环境参数如下,200个节点随机分布于100m×100m网络中,初始能量为0.01J,BS的坐标为(150,0)。
[0147] 本专利参考XiaoLin Wu在文献BP neural network based continues objects distribution detection in WSNs中的连续对象模型,使用高斯烟羽模型产生连续被检测对象,被监测区域信号幅值在0到200之间,并加入均值和方差均为1的高斯白噪声,每时刻以0.05的概率随机产生新的风速值和信号源强度,以此来模拟被检测对象。
[0148] 如图6、图7所示,显示了两不同时刻的被监测对象信号强度,其余环境参数使用Heinzelman W B的An application-specific protocol architecture for wireless microsensor networks中的参数,如表1所示,
[0149] 表1仿真参数表
[0150]
[0151] 1、相似性检测:在本专利中,每轮数据收集过程中每个节点采集8个数据点后才发送数据,即数据序列的长度统一设为8,在改进的fuzzy ART形状相似性检测中,将参数设置为α=0.5,ρ=0.7,τ=100,ξ=0.7。在幅度相似性检测中,将参数设为ε=2, 相似性检测结果显示,网络中存在8种形状相似的节点和64种幅度相似的节点。
[0152] 2、分簇:在改进的K-means分簇方法中,使用节点之间的幅度和形状相似性、位置信息和剩余能量进行分簇。参数设为R=30,M=106,在本实施例中,分簇结果如图8所
示。
[0153] 3、数据收集:初始化每个簇的睡眠概率为0,即初始时所有从节点都是非睡眠状态,当簇头检测到本轮有超过一半的非锚节点相似性发生变化,则睡眠概率减小一半若相似性发生变化的非锚节点少于簇内节点的四分之一,则睡眠概率增加0.1;数据压缩时长度编码中的εL=1。当非锚节点接收到锚节点数据后,重新检测幅度相似性和形状相似性时的参数与上文相同。
[0154] 4、簇维护:锚节点剩余能量小于0视为死亡,簇头剩余能量小于5×10-6时重分簇。簇结构调整过程中的距离阈值R同上文;簇结构调整后的分簇结构如图9所示。与图8中数据相相比,其中12个节点发生了变化8个节点所在簇发生变化。
[0155] 为了对比本专利的性能,本文还对现存的两种经典的基于数据的分簇和节能的数据收集框架:EEDC框架(An Energy-Efficient Data Collection Framework for Wireless Sensor Networks by Exploiting Spatiotemporal Correlation)和DSCCF框架(Distributed Similarity based Clustering and Compressed Forwarding for wireless sensor networks)进行了仿真,主要从传感网的寿命、误差和数据传输率三方面进行比较,其中数据传输率定义为每轮实际发送的数据量与每轮未过滤数据时应传输的数据量的比值。
[0156] 图10显示了三种数据收集方法下,随着采样点个数的增加,网络剩余的存活节点个数,其中DC-EEDC代表本专利中的数据收集算法。从图中可以看出,在DSCCF框架下在采集到2000个点时,网络节点几乎全部死亡,在EEDC框架下当采集到约1.4×104个点时网络节点全部死亡,而本专利的DC-EEDC框架能够持续采集约3.4×104。由于被监测对象随时间的剧烈变化,使得DSCCF需要频繁更新和发送本地数据预测模型参数,导致需要传输的数据量增大。同时DSCCF框架使用分布式分簇和沿簇头骨干网传输的方法也使得网内通信次数增加,从而增加DSCCF的通信能耗。而EEDC框架不充分的相关性测量方法使得EEDC将200个网络节点分成几十个小簇,未能识别出更多的冗余节点,使得数据传输量仍然很大。同时EEDC集中式数据收集使得存在大量的远距离传输,产生大量的通信能耗。而本专利的DC-EEDC框架通过相关性测量方法能够识别更多的冗余节点从而显著降低了通信能耗,同时DC-EEDC框架结合有效的分簇算法进一步降低了通信开销,有效的延长了网络寿命。图11显示了三种数据收集方法下,网络剩余总能量随着采样点个数的增加的变化曲线,很明显DSCCF网络能量很快被消耗完,而EEDC框架由于使用了PLAMLiS压缩方法有效地减少了每轮数据收集时每个节点的数据传输量,同时由于EEDC控制开销极小,因此EEDC框架下网络剩余能量下降的比DSCCF慢。本专利的DC-EEDC框架在识别和分布式过滤冗余节点数据的同时还使用了长度编码,它的识别冗余数据的能力优于EEDC框架,同时网络拓扑结构的节能特性也使得DC-EEDC框架在延长网络寿命、减缓网络能耗方面更加优越。图12显示了在最大误差均为2.5的情况下,三种算法的均方根误差。其中DSCCF数据恢复的精度最高,由于预测模型预测不准确使得节点长期处于非预测状态,每轮有大量节点发送原始数据,因此精度最高,但其代价是能耗较大。而EEDC框架的误差来源于PLAMLiS压缩和睡眠调度,由于EEDC框架识别出的冗余节点较少,因此睡眠调度产生的误差较小。而DC-EEDC的误差主要来源于长度编码压缩、Fuzzy ART数据恢复和幅度相似性节点数据恢复以及睡眠调度,过滤的冗余数据最多,误差也最大,但是能够通过调整参数εL、ρ、ε、θ和psleep来调整DC-EEDC的精度。图13显示了三种算法的数据传输率,数据传输率=实际传输的数据个数/采样数据个数。显然与另外两个算法比,本算法在网络中传输的数据量最少,最大限度地减少了冗余数据的传输。下面分析四种性能指标出现的原因:DSCCF算法通过在节点本地建立数据预测模型,对每个采样点进行数据预测,然而这种模型严重依赖于被检测对象的时间相关性,在被检测对象剧烈变化时,DSCCF中大部分节点的预测模型不准确使得节点频繁的发送原始数据,因此DSCCF出现能耗高、精度高、数据传输率高的特点。而EEDC是一种无簇头的簇结构,从节点直接与sink节点交互,每个节点采集数据序列后进行PLAMLIS数据压缩。EEDC中节点之间几乎不需要交互,使得EEDC算法本身开销小,再结合数据压缩和睡眠调度算法使得EEDC总体能耗较小,数据传输率较低。由于所有节点需要直接与sink节点通信,使得距离sink节点较远的节点很早就死掉,因此EEDC算法的节能效果严重依赖于sink节点的位置。而本算法虽然分簇开销较大,但是分簇次数少,簇结构调整开销小。同时本算法能够很好的挖掘节点之间的数据相关性,使用数量较少的锚节点数据就能够代表整个网络数据,从源头阻止了冗余数据的传输,从而通过减小通信能耗来达到延长网络寿命的目的。
[0157] 尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。