无线传感器网络基于位置的均匀分簇层次路由算法的制作方法

文档序号:13450735阅读:340来源:国知局
无线传感器网络基于位置的均匀分簇层次路由算法的制作方法

本发明涉及一种路由算法,具体涉及一种无线传感器网络基于位置的均匀分簇层次路由算法,属于通信技术领域。



背景技术:

无线传感器网络(wirelesssensornetwork,wsn)是由随机分布在监测区域内的大量传感器节点以自组织的方式形成的多跳无线传感网络。传感器节点可以感知周围环境,具有采集数据、信息处理融合、短距离传输数据的功能。如何利用受限资源来实现数据的高效采集和传输是wsn路由算法的重要职责。

wsn路由算法多种多样,研究表明,相比于平面路由算法,分层路由算法中簇头策略和融合技术可减少数据传输量,适合大规模网络,具有更好的性能。典型算法有leach算法、heed算法、teen算法、pegasis算法等。相比于非均匀分簇路由算法,均匀分簇路由算法分簇区域相同,簇内节点数目相近,传输数据的能耗也基本均衡,更有利于网络的长久运行。典型算法有gaf算法、grid算法、geogrid算法等。

grid算法是一种基于位置信息的均匀分簇路由算法。监测区域中建立正方形网格簇,并指定距网格中心最近的节点为网关节点。网关节点和路由查询区的设置减少了传输负担,但查询的方向性较弱。

geogrid算法虽在路由查询方式有所改进,但查询方向性仍有待提高。



技术实现要素:

为解决现有技术的不足,本发明的目的在于提供一种具有较高的查询方向性、能有效节约能量、确保数据安全传输的无线传感器网络基于位置的均匀分簇层次路由算法。

为了实现上述目标,本发明采用如下的技术方案:

无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,包括以下步骤:

step1、对探测区域进行正六边形均匀分簇,正六边形簇依据距离sink节点的远近进行分层,从第一层到第m层,直至覆盖所有传感器节点;

step2、考虑剩余能量和网络负载因素,建立合理的簇头选举机制:

首先,构建簇内候选节点i的适应度函数f(i):

其中,α,β,γ为加权系数,α+β+γ=1,einitial(i)和eremain(i)分别是簇内候选节点i的初始能量和剩余能量,ein(i)是簇内候选节点i到所在簇内其他节点的能耗之和,einbest,i是簇内候选节点i所在簇的节点到簇内其他节点的能耗之和中的最小值,eout(i)是簇内候选节点i到相邻的六个候选节点的能耗之和,eoutbest,i是簇内候选节点i所在簇的节点到相邻的六个候选节点的能耗之和中的最小值;

然后,选取适应度函数最大的节点作为簇头节点;

step3、对簇内数据进行融合并进行预编码处理;

step4、建立逐层路由:

路由节点由簇头担任,用参数(sn,rn,θ)表示簇头,当s(sns,rns,θs)和d(snd,rnd,θd)分别为信源节点和信宿节点时,首先依据信源信宿的层数和角度、采用梯形查询策略确定路由的搜索区域,然后考虑簇头位置与剩余能量两方面因素进行路由节点选择,以跳数为单位,当前路由节点选择下一跳路由节点的路由选择因子的计算公式为:

其中,λ和μ为平衡系数,λ+μ=1且λ>0,μ>0,pr0为源节点和目标节点之间的梯形系数,pr'为下一跳候选路由节点和目标节点之间的梯形系数,einitial和eremain是下一跳候选路由节点的初始能量和剩余能量;

当前路由节点选取最小路由选择因子值对应的那一个簇头作为下一跳转发数据的路由节点;

step5、数据传输和解密。

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step1中,为方便数据采集,首先建立一张正六边形簇编号表,具体如下:

假设正六边形边长为l,l=1,以sink节点为原点建立坐标系,正六边形质心所在的层数、坐标角度分别用rn和θ表示,并沿内层向外层、逆时针方向为簇编号,设sink节点的编号为0,正六边形网格(rn,θ)的编号sn为:

式中,k为叠加因子。

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step2中,选取的簇头节点工作一段时间以后,运用簇头自动辞退机制对某些不符合条件的簇头节点进行自动辞退,簇头自动辞退机制的原则有两个:

第一个原则:簇头的剩余能量须大于einitial(i)/10,否则簇头自动辞退,让符合条件节点担任簇头,若无符合条件的节点,则依据选举机制选出最优簇头,直至节点死亡;

第二个原则:节点担任簇头时的剩余能量为eremain(i)时,若eremain(i)大于einitial(i)/10,工作一段时间以后,当簇头的剩余能量为eremain(i)/2时,簇头自动辞退。

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step3中,对簇内数据进行融合的过程如下:

首先,簇内节点向簇头发送简报;

然后,簇头通过收到的节点简报判断节点采集数据是否相同,若有重复,则随机选取对应节点中的一个接受其信息;

最后,簇头建立tdma时间调度表采集数据,信源簇头进行数据融合后的数据为x=[x1,x2,...,xk]t

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step3中,对融合后的数据进行预编码处理的过程具体如下:

首先,假设sink节点是一直安全可靠的,在传感器布置之前存储一个相同的满秩的m×m维的预编码矩阵h,并且预编码矩阵h的任意维主子阵都是满秩的:

然后,将预编码矩阵h调整为hk,调整方法如下:

(1)当k=m时,h不需要调整大小;

(2)当k<m时,h取自身的k维主子阵得到hk:

(3)当k>m时,用全1矩阵ii对h进行扩展,得到hk:

最后,进行线性编码y=xhk。

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step4中,前述梯形查询策略如下:

若abs(θs-θd)<π,则搜索区域为((rns,rnd),(θs,θd));

若abs(θs-θd)>π且θs<π,则搜索区域为((rns,rnd),(θd,2π+θs));

若θs>π,则搜索区域为((rns,rnd),(θs,2π+θd))。

前述的无线传感器网络基于位置的均匀分簇层次路由算法,其特征在于,在step5中,数据传输和解密的过程如下:

依照step4中建立的路由,信源所在的簇头将信息发送给信宿节点,信宿将收到的编码信息y进行译码,将预编码矩阵h调整为hk,再对y进行解码最终得到信源数据x。

本发明的有益之处在于:

(1)本发明的算法采用路由查询策略和路由选择策略,在综合考虑簇头节点位置因素与节点剩余能量两方面因素的基础上,设置路由查询区域和路由选择因子,使选择的下一跳路由节点更优化地接近目标节点,所以具有较高的查询方向性;

(2)本发明的算法采用选举簇头机制和维护机制,保证了网络均衡和节点长久工作(geogrid算法以距离网格中心最近节点为簇头,直至节点死亡,容易致使节点过早死亡),在延长生命周期这方面有很大提升;

(3)本发明的算法采用数据融合策略和层次路由策略,建立了更高效、优化、节能的路由链路传输数据;

(4)本发明的算法采用数据编码技术对数据进行加密处理,保证了数据的安全性。

附图说明

图1是本发明的路由算法的流程图;

图2是网络拓扑架构图;

图3是网格编号图;

图4是梯形路由查询策略示意图;

图5是存活节点数随时间变化图;

图6是网络能耗随时间变化图;

图7是wsn节点平均能耗随网络规模变化图。

具体实施方式

本发明在综合考虑无线传感器网络能耗、生存周期和网络安全的基础上,提出了基于位置的均匀分簇层次安全路由算法。该算法在对区域进行正六边形划分的基础上,建立簇头选举和维护机制,利用数据融合技术、路由选择策略进行数据传输,并采用预编码技术保证了数据的安全传输。

以下结合附图和具体实施例对本发明作具体的介绍。

参照图1,本发明的无线传感器网络基于位置的均匀分簇层次路由算法,其包括以下步骤:

step1:对探测区域进行正六边形均匀分簇

正六边形具有良好的区域覆盖性,我们利用正六边形的这个特性对探测区域进行均匀分簇,如图2所示。正六边形簇依据距离sink节点的远近进行分层,从第一层到第m层,直至覆盖所有传感器节点。

(1)正六边形簇编号表

为方便数据采集,首先建立一张正六边形簇编号表。假设正六边形边长为l,l=1。以sink节点为原点建立坐标系,正六边形质心所在的层数、坐标角度分别用rn和θ表示,并沿内层向外层、逆时针方向为簇编号。如图3所示,设sink节点的编号为0,正六边形网格(rn,θ)的编号sn为:

式中,k为叠加因子。

(2)传感器节点所在正六边形簇的判断

设传感器节点的通信半径为r,为了保证相邻簇之间可直接通信,令正六边形边长l=r/4。

sink节点位置为(x0,y0),广播数据包为(sk,x0,y0,l),所有传感器节点只广播一次该数据包。设传感器节点a坐标(x,y),收到数据包后,计算相对坐标(x′,y′):

(x',y')=(x-x0,y-y0)

并计算传感器节点a到sink节点的距离l'和方位角θ':

分析网格的质心:

当质心的横坐标为sqrt(3)/2×l的奇数倍时,对应的纵坐标为3/2×l的奇数倍;

当质心的横坐标为sqrt(3)×l的整数倍时,对应的纵坐标为3×l的整数倍。

由此,传感器节点可以找到距离最近的正六边形簇(sn,l',θ',x',y')。

step2:对簇头(簇首)进行自动选举和辞退

(1)建立合理的簇头自动选举机制

在wsn中,簇头能耗较大,为此,需考虑剩余能量和网络负载因素,建立合理的簇头选举机制。

首先,构建簇内候选节点i的适应度函数f(i):

其中,α,β,γ为加权系数,α+β+γ=1。einitial(i)和eremain(i)分别是簇内候选节点i的初始能量和剩余能量。ein(i)是簇内候选节点i到所在簇内其他节点的能耗之和,einbest,i是簇内候选节点i所在簇的节点到簇内其他节点的能耗之和中的最小值,eout(i)是簇内候选节点i到相邻的六个候选节点的能耗之和,eoutbest,i是簇内候选节点i所在簇的节点到相邻的六个候选节点的能耗之和中的最小值。

然后,选取适应度函数最大的节点作为簇头节点。

(2)建立合理的簇头自动辞退机制

簇头自动辞退机制的原则有两个:

第一个原则:簇头的剩余能量须大于einitial(i)/10,否则簇头自动辞退,让符合条件节点担任簇头,若无符合条件的节点,则依据选举机制选出最优簇头,直至节点死亡;

第二个原则:节点担任簇头时的剩余能量为eremain(i)时,若eremain(i)大于einitial(i)/10,工作一段时间以后,当簇头的剩余能量为eremain(i)/2时,簇头自动辞退。

step3:对簇内数据进行融合并进行预编码处理

簇头采集数据时,采取数据融合策略,以减少数据冗余。

首先,簇内节点向簇头发送简报,简报包含节点id、数据类型、剩余能量等简要信息。

然后,簇头通过收到的节点简报判断节点采集数据是否相同,若有重复,则随机选取对应节点中的一个接受其信息。

最后,簇头建立tdma时间调度表采集数据。

信源簇头进行数据融合后的数据为x=[x1,x2,...,xk]t,为了保证数据的安全传输,我们引入了预编码技术,对数据进行预编码处理。

假设sink节点是一直安全可靠的。在传感器布置之前存储一个相同的满秩的预编码矩阵h,并且预编码矩阵h的任意维主子阵都是满秩的:

预编码技术的实现:

信源数据为x=[x1,x2,...,xk]t,将预编码矩阵h调整为hk(调整方法在下面的内容中介绍),进行线性编码y=xhk。

预编码矩阵h调整方法如下:

(1)当k=m时,h不需要调整大小;

(2)当k<m时,h取自身的k维主子阵得到hk:

(3)当k>m时,用全1矩阵ii对h进行扩展,得到hk:

依据h的初始设置可以得到hk为满秩矩阵,可以进行编译码操作。

step4:建立逐层路由

下面讨论任意节点间的路由建立。

路由节点由簇头担任,簇头可用参数(sn,rn,θ)表示。

为保证路由的快速查找,算法设计路由查询策略和路由选择策略。

(1)路由查询策略

当s(sns,rns,θs)和d(snd,rnd,θd)分别为信源节点和信宿节点时,首先依据信源信宿的层数和角度确定路由的查找范围range(即搜索区域)。

梯形查询策略:如图4所示,节点s(sns,rns,θs)和d(snd,rnd,θd),若abs(θs-θd)<π,则搜索区域为((rns,rnd),(θs,θd));若abs(θs-θd)>π且θs<π,则搜索区域为((rns,rnd),(θd,2π+θs));若θs>π,则搜索区域为((rns,rnd),(θs,2π+θd))。

(2)路由选择策略

考虑簇头位置与剩余能量两方面因素,进行路由节点选择。

依据梯形查询策略确立搜索区域,设△θ为搜索区域的角度差。这里以跳数为单位,则梯形的高为|rns-rnd|,上底和下底为别为:

其中,rnmin=min{rns,rnd},rnmax=max{rns,rnd}。

定义有关梯形底边和高的比例系数pr:

当前路由节点选择下一跳路由节点的路由选择因子的计算公式为:

其中,λ和μ为平衡系数,λ+μ=1且λ>0,μ>0;pr0为源节点和目标节点之间的梯形系数,pr'为下一跳候选路由节点和目标节点之间的梯形系数,einitial和eremain是下一跳候选路由节点的初始能量和剩余能量。

当前路由节点选取最小路由选择因子值对应的那一个簇头作为下一跳转发数据的路由节点。

step5:数据传输和解密

依照step4中建立的路由,信源所在的簇头将信息发送给信宿节点,信宿将收到的编码信息y进行译码,将预编码矩阵h调整为hk,再对y进行解码最终得到信源数据x。

注意:因为信息x和y同维数,所以此处预编码矩阵h调整为hk方法和step3中方法一样。

算法仿真:

我们利用matlab仿真工具对本发明的算法(为方便阅读,将本发明算法称为hucr算法),与geogrid算法进行仿真比较。

在半径为160m的圆形仿真区域中随机生成200个节点,sink节点位于中心位置。详细的仿真参数参见表1。

表1仿真参数设置

我们分别从生命周期、能量消耗和网络规模三方面对算法进行仿真比较。

(1)生命周期

在网络节点分布一定时,wsns存活节点数目随时间变化的算法比较图如图5所示。

由图5可以看出:与geogrid算法相比,hucr算法的曲线的下降速度较为缓慢,geogrid算法节点在290轮全部死亡,hucr算法节点在345轮全部死亡。

可见,hucr算法延长了网络的生命周期。

(2)能量消耗

wsn节点的平均能量消耗随时间的变化的算法比较图如图6所示。

由图6可以看出:hucr算法在任意时刻都比geogrid算法的网络能耗少很多,当geogrid算法已耗尽能量时,hucr算法仍保留了大约五分之二的能量。

可见,hucr算法大幅度节约了网络节点的能量。

(3)网络规模

在节点密度和连通性一定时,研究两种算法在网络规模从100到500变化时,wsn节点平均能耗的变化情况(在第200轮通信)如图7所示。

由图7可以看出:网络规模变大时,两种算法节点平均能耗都呈上升趋势,geogrid算法的节点平均能耗高,hucr算法的节点平均能耗较低。

可见,hucr算法更适应大规模网络。

由上面的三组实验我们可以得出这样的结论:hucr算法表现更好,有效降低了网络能耗,延长了网络生命周期,适用于大规模网络。

主要原因分析如下:

(1)geogrid算法以距离网格中心最近节点为簇头,直至节点死亡,容易致使节点过早死亡,且路由查询方向性较弱,而hucr算法采用选举簇头机制和辞退机制保证了网络均衡和节点长久有效工作;

(2)数据融合策略和层次路由策略以及自动查询路由策略建立了更高效、优化、节能的路由链路传输数据,通常1bit信息传输100m的能耗约等于进行1000条计算命令的能耗,在数据传输过程中,节点间的通信消耗远大于节点信息处理和计算的能耗,在大规模网络中,hucr算法同样具有良好的优势。

需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

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