一种节点簇头选举方法及系统与流程

文档序号:17179790发布日期:2019-03-22 20:48阅读:625来源:国知局
一种节点簇头选举方法及系统与流程

本申请属于数据处理领域,具体涉及一种节点簇头选举方法及系统。



背景技术:

无线传感器网络在传感器节点增减、拓扑的变化、维护等时刻能够高效的实现数据的传递。由于是通过自组织形成的网络,因此每个节点的地位是平等的,都可以完成数据的传输任务,一般任何节点都具有存储、计算、融合数据的能力。但是,传感器节点的能量消耗均衡对于无线传感器网络具有重大的意义。由于传感器节点分散在不同的监控区域内,每个节点都可能成为簇头或普通节点,因此,每个节点的健壮性是保证整个网络连通性的前提。因而需要设计简单高效的节点成簇方法来完成数据的传输。

目前常用的成簇方法主要有:高效簇头选举方法和低能量自适应簇头选举方法。

高效簇头选举方法是利用贪婪算法构造一条链式结构路径。在链式路径上选举一个节点作为簇头节点与基站进行通信。该方法采用令牌控制链路上的数据传递到簇头节点,当链路上的数据传递全部结束后,开始新一轮的簇头选举。该方法中没有考虑节点的剩余能量,一旦簇头节点能量耗尽,将会影响整个网络的连通性。

低能量自适应簇头选举方法是随机选举簇头节点,然后监控区域内的非簇头节点根据接收到的信号强度选举要加入的簇,最后簇头节点将各个簇内节点监控的数据进行融合后发送到基站。该方法选举簇头具有一定的盲目性,没有考虑簇内节点到簇头的距离以及节点剩余能量等因素,导致网络消耗能量大。

当前的成簇方法要么是没有考虑节点的剩余能量,要么是选举簇头有一定的盲目性。造成网络能量的大量消耗。



技术实现要素:

本申请提供一种节点簇头选举方法,以解决现有的簇头选举方法要么是没有考虑节点的剩余能量,要么是选举簇头有一定的盲目性的问题。本申请另外提供一种节点簇头选举系统。

本申请提供一种节点簇头选举方法,包括:

基站获取网络中当前周期内的最优簇头个数占网络中所有节点的比例;

所述基站根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值,并将所述当前周期内簇头选举的阈值回传至对应的各个节点;

各个所述节点将对应的当前周期内簇头选举的阈值广播至各自的邻居节点;

所述基站选举各个所述节点的当前周期内簇头选举的阈值中最大的阈值作为网络中当前周期内的簇头。

可选的,根据权利要求1所述的节点簇头选举方法,其特征在于,所述基站获取网络中当前周期内的最优簇头个数占网络中所有节点的比例步骤之前,包括:

所述基站通过公式计算所述当前周期内的最优簇头个数占网络中所有节点的比例;

其中3k为当前周期内的最优簇头个数,n为节点个数;

可选的,根据权利要求2所述的节点簇头选举方法,其特征在于,所述基站通过公式计算最优簇头个数占网络中所有节点的比例步骤之前,还包括:

所述基站通过公式zi=fi×ci×ecur(i)计算各个所述节点的当前周期内的簇头竞争度;

其中,fi为节点i接收到消息的频率,ci为节点i的中心度,ecur(i)为节点i的剩余能量;

所述基站根据各个所述节点的当前周期内的簇头竞争度选出成为簇头概率最大的3k个节点。

可选的,根据权利要求3所述的节点簇头选举方法,其特征在于,所述基站通过公式zi=fi×ci×ecur(i)计算各个所述节点的当前周期内的簇头竞争度步骤之前,还包括:

所述基站通过公式计算所述当前周期内的网络中的最优簇头个数;

其中,n为节点个数,εfs为节点发送方与节点接收方之间的距离小于设定的距离阈值时功率放大所需要的能量;εamp为发送方与节点接收方之间的距离大于设定的距离阈值时功率放大所需要的能量;m为网络监测区域的面积;dn-bs为节点与基站之间的平均距离。

可选的,根据权利要求1所述的节点簇头选举方法,其特征在于,所述基站根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值步骤,包括:

所述基站通过公式计算各个所述节点的当前周期内簇头选举的阈值;

其中,p0为当前周期内的最优簇头个数占网络中所有节点的比例,r是当前的轮数,eini(i)是参与竞争簇头节点的初始能量,ecur(i)是参与竞争簇头节点的剩余能量,dmax和dmin是节点距离基站的最大距离和最小距离,dbs是节点到基站的距离,ci是节点的中心度,cmax是所有节点中的中心度的最大值,g为在最近轮中没有成为簇头的节点集合。

本申请还提供一种节点簇头选举系统,包括:

基站,用于获取网络中当前周期内的最优簇头个数占网络中所有节点的比例;根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值,并将所述当前周期内簇头选举的阈值回传至对应的各个节点;选举各个所述节点的当前周期内簇头选举的阈值中最大的阈值作为网络中当前周期内的簇头;

节点,用于将对应的当前周期内簇头选举的阈值广播至各自的邻居节点。

可选的,所述基站还用于通过公式计算所述当前周期内的最优簇头个数占网络中所有节点的比例;其中3k为当前周期内的最优簇头个数,n为节点个数。

可选的,所述基站还用于通过公式zi=fi×ci×ecur(i)计算各个所述节点的当前周期内的簇头竞争度;根据各个所述节点的当前周期内的簇头竞争度选出成为簇头概率最大的3k个节点;其中,fi为节点i接收到消息的频率,ci为节点i的中心度,ecur(i)为节点i的剩余能量。

可选的,所述基站还用于通过公式计算所述当前周期内的网络中的最优簇头个数;

其中,n为节点个数,εfs为节点发送方与节点接收方之间的距离小于设定的距离阈值时功率放大所需要的能量;εamp为发送方与节点接收方之间的距离大于设定的距离阈值时功率放大所需要的能量;m为网络监测区域的面积;dn-bs为节点与基站之间的平均距离。

可选的,所述基站用于根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值的部分,包括:

所述基站具体用于通过公式计算各个所述节点的当前周期内簇头选举的阈值;

其中,p0为当前周期内的最优簇头个数占网络中所有节点的比例,r是当前的轮数,eini(i)是参与竞争簇头节点的初始能量,ecur(i)是参与竞争簇头节点的剩余能量,dmax和dmin是节点距离基站的最大距离和最小距离,dbs是节点到基站的距离,ci是节点的中心度,cmax是所有节点中的中心度的最大值,g为在最近轮中没有成为簇头的节点集合。

本申请引入了节点比例因子,通过节点比例因子能够让邻居节点比较密集的节点有更大的概率成为簇头。同时,一个周期包括多轮,避免多次进行簇头选举消耗过多的能量。该方法在保证网络连通性的同时,能够最大限度的均衡网络能量消耗,延长网络生存时间。

附图说明

图1为本申请第一实施例提供的一种节点簇头选举方法的流程图;

图2为本申请第二实施例提供的一种节点簇头选举方法的流程图;

图3为本申请第二实施例提供的簇头修正的示意图;

图4为本申请第三实施例提供的一种节点簇头选举系统的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本申请的技术方案,下面结合附图和具体实施方式对本申请作进一步详细描述。

本申请提供一种节点簇头选举方法、系统。以下分别结合本申请提供的实施例的附图逐一进行详细说明。

本申请第一实施例提供的一种节点簇头选举方法如下:

如图1所示,其示出了本申请实施例提供的一种节点簇头选举方法的流程图,包括以下步骤。

步骤s101,基站获取网络中当前周期内的最优簇头个数占网络中所有节点的比例。

步骤s102,基站根据当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值,并将当前周期内簇头选举的阈值回传至各个节点。

步骤s103,各个节点将对应的当前周期内簇头选举的阈值广播至对应的邻居节点。

步骤s104,基站选举各个节点的当前周期内簇头选举的阈值中最大的阈值作为网络中当前周期内的簇头。

本申请实施例引入了节点比例因子,通过节点比例因子能够让邻居节点比较密集的节点有更大的概率成为簇头。同时,一个周期包括多轮,避免多次进行簇头选举消耗过多的能量。该方法在保证网络连通性的同时,能够最大限度的均衡网络能量消耗,延长网络生存时间。

本申请第二实施例提供的一种节点簇头选举方法如下:

如图2所示,其示出了本申请实施例提供的一种节点簇头选举方法的流程图,包括以下步骤。

步骤s201,基站通过公式计算当前周期内的网络中的最优簇头个数。其中,n为节点个数,εfs为节点发送方与节点接收方之间的距离小于设定的距离阈值时功率放大所需要的能量;εamp为发送方与节点接收方之间的距离大于设定的距离阈值时功率放大所需要的能量;m为网络监测区域的面积;dn-bs为节点与基站之间的平均距离。

一般来说,无线传感器网络有大量节点,且能量有限不能直接跟基站进行通信。就需要有效的路由协议,而分簇路由协议是其中一种,它将邻近区域的节点组成一个簇,并选出簇头,簇内节点先将数据传给簇头,簇头将数据融合之后再转发给下一跳或直接转发给基站。

当前的成簇方法要么是没有考虑节点的剩余能量,要么是选举簇头有一定的盲目性。为了能够最大限度的均衡网络能量消耗,本申请实施例提出一种应用于新型节点的节点簇头选举方法。首先通过基站对网络进行初始化,然后基于网络中的所有n个节点进行簇头选举,所有节点在一个m×m的正方形区域中。

具体的,在基站对网络进行初始化之后,基站利用功率放大所需的能量、节点与基站之间的平均距离、网络监测区域的面积、节点与基站之间的平均距离等参数计算出当前周期产生的最优簇头个数。每个周期包括若干轮数,具体可按照需要自行设定,例如,每个周期包括10轮。

需要说明的是,εfs为节点发送方与节点接收方之间的距离小于设定的距离阈值时功率放大所需要的能量,如果节点发送方与节点接收方的距离越小,则能量消耗越小,因此,εfs越大则对应的最优簇头个数越大。同理,εamp为发送方与节点接收方之间的距离大于设定的距离阈值时功率放大所需要的能量,因此,εamp越小则对应的最优簇头个数越大。网络监测区域的面积m越大,最优簇头个数也越大。节点与基站之间的平均距离越小,则最优簇头个数也越大。节点个数n越大,则最优簇头个数也越大。分母的2π是预先计算出的一个系数,此处不作具体解释。

步骤s202,基站通过公式zi=fi×ci×ecur(i)计算各个节点的当前周期内的簇头竞争度;其中,fi为节点i接收到消息的频率,ci为节点i的中心度,ecur(i)为节点i的剩余能量。

具体的,在基站计算出当前周期产生的最优簇头个数之后,基站利用节点i接收到消息的频率、节点i的中心度、节点i的剩余能量参数计算出各个节点的当前周期内的簇头竞争度。

需要说明的是,节点i接收到消息的频率fi表示的是一个周期内节点节点i与邻居节点进行通信的次数。节点i的中心度ci表示的是节点i能与周围邻居节点能直接进行通信的个数,即通信路径的条数。

步骤s203,基站根据各个节点的当前周期内的簇头竞争度选出成为簇头概率最大的3k个节点。

具体的,在基站计算出各个节点的当前周期内的簇头竞争度之后,基站向监控区域内的所有节点广播选举簇头的指令消息,节点打开侦听信道来接收广播。基站收到所有节点的数据后根据各个节点的当前周期内的簇头竞争度zi的数值大小选出较大的作为最可能成为簇头的3k个节点,如果有值相同的全部选出。

步骤s204,基站通过公式计算当前周期内的最优簇头个数占网络中所有节点的比例;其中3k为当前周期内的最优簇头个数,n为节点个数。

具体的,在基站选出成为簇头概率最大的3k个节点之后,基站利用当前周期内的最优簇头个数、网络内节点个数计算出当前周期内的最优簇头个数占网络中所有节点的比例。

步骤s205,基站获取网络中当前周期内的最优簇头个数占网络中所有节点的比例。

步骤s206,基站根据当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值,并将当前周期内簇头选举的阈值回传至对应的各个节点。

其中,基站根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值步骤,包括:

所述基站通过公式计算所述各个节点的当前周期内簇头选举的阈值;其中,p0为当前周期内的最优簇头个数占网络中所有节点的比例,r是当前的轮数,eini(i)是参与竞争簇头节点的初始能量,ecur(i)是参与竞争簇头节点的剩余能量,dmax和dmin是节点距离基站的最大距离和最小距离,dbs是节点到基站的距离,ci是节点的中心度,cmax是所有节点中的中心度的最大值,g为在最近轮中没有成为簇头的节点集合。

具体的,在分簇阶段,基站利用当前周期内的最优簇头个数占网络中所有节点的比例、节点剩余能量、节点到基站的距离、节点的中心度等参数计算各个节点的当前周期内簇头选举的阈值。基站计算出各个节点的当前周期内选举簇头的阈值后,将所述簇头选举的阈值回传至对应的各个节点。阈值的含义是,综合考虑各个参数计算出的各个节点的阈值最大的作为簇头。

需要说明的是,mod的意思是取余数,是最近的轮数,为没有成为簇头的比例。各个节点的初始能量eini(i)是一个固定值,各个节点的剩余能量ecur(i)是一个变量,eini(i)与ecur(i)的比值越大则t(n)越大。节点到基站的距离dbs越小,t(n)越大。节点的中心度ci越大,则t(n)越大。尽量使邻居节点多、距离近、能量高的节点t(n)的值更大,进而有更大的可能性担任簇头。

在一种可能实现的方案中,选举出的簇头节点可能会存在不合理的情况,则簇头进入修正阶段。比如,某些选举出的簇头节点在其他簇头节点的通信范围之内,即有初步选举的簇头节点ni在节点nj的通信的范围内,同时节点nj在节点ni的通信范围内,因此需要对簇头节点进行修正。

例如,如图3所示,节点n4均在n1和n2的通信范围内,因此n4应该成为普通节点,进而退出簇头节点的竞争。同理,n3在n2的通信范围内,因此n3也应该成为普通节点,进而退出簇头节点的竞争。

步骤s207,各个节点将对应的当前周期内簇头选举的阈值广播至各自的邻居节点。

步骤s208,基站选举各个节点的当前周期内簇头选举的阈值中最大的阈值作为网络中当前周期内的簇头。

最后,网络中的各个节点将自身的当前周期内选举簇头的阈值广播给邻居节点,通过比较其周围邻居节点的当前周期内选举簇头的阈值来选举t(n)值最大的节点作为簇头。至此,本轮内的簇头选举完成。

簇头节点邀请区域内的节点加入簇内,监听节点请求加入消息。非簇头节点根据接收消息信号的强弱,加入信号强的簇头,完成建簇。

本申请实施例首先通过基站对网络进行初始化,然后利用功率放大所需要的能量、节点与基站之间的距离等参数得出网络中当前周期的最优簇头个数。同时,利用节点接收到消息的频率、节点的中心度以及节点的剩余能量计算节点的簇头竞争度。基站向监控区域内的所有节点广播选举簇头的指令消息,节点打开侦听信道来接收广播。基站收到所有节点的数据后根据节点簇头竞争度的数值大小选出多个最可能成为簇头的节点。在分簇阶段,计算各个节点当前周期的选取簇头的阈值。然后,簇头进入修正阶段。最后,周期内的首次簇头选举完成。簇头节点广播成簇的消息给周围邻居节点并邀请区域内的节点加入簇内。

本申请实施例引入了节点的中心度、节点到基站的距离、节点的剩余能量、节点比例因子等因素,尽量使邻居节点多、距离近、能量高的节点担任簇头。同时,一个周期包括多轮,避免多次进行簇头选举消耗过多的能量。该方法在保证网络连通性的同时,能够最大限度的均衡网络能量消耗,延长网络生存时间。

本申请第三实施例提供的一种节点簇头选举系统如下:

在上述的实施例中,提供了一种节点簇头选举方法,与之相对应的,本申请还提供了一种节点簇头选举系统。

由于系统实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的节点簇头选举方法实施例的对应说明即可。下述描述的系统实施例仅仅是示意性的,下面结合附图进行说明。

如图4所示,其示出了本申请实施例提供的节点簇头选举系统的结构示意图,包括基站1、节点2。

基站1,用于获取网络中当前周期内的最优簇头个数占网络中所有节点的比例;根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点2的当前周期内簇头选举的阈值,并将所述当前周期内簇头选举的阈值回传至对应的各个节点;选举各个节点2的当前周期内簇头选举的阈值中最大的阈值作为网络中当前周期内的簇头。

节点2,用于将对应的当前周期内簇头选举的阈值广播至对应的邻居节点。

进一步地,基站还用于通过公式计算当前周期内的最优簇头个数占网络中所有节点的比例;其中3k为当前周期内的最优簇头个数,n为节点个数。

进一步地,基站还用于通过公式zi=fi×ci×ecur(i)计算各个节点的当前周期内的簇头竞争度;根据各个节点的当前周期内的簇头竞争度选出成为簇头概率最大的3k个节点;其中,fi为节点i接收到消息的频率,ci为节点i的中心度,ecur(i)为节点i的剩余能量。

进一步地,基站还用于通过公式计算当前周期内的网络中的最优簇头个数;

其中,n为节点个数,εfs为节点发送方与节点接收方之间的距离小于设定的距离阈值时功率放大所需要的能量;εamp为发送方与节点接收方之间的距离大于设定的距离阈值时功率放大所需要的能量;m为网络监测区域的面积;dn-bs为节点与基站之间的平均距离。

进一步地,基站用于根据所述当前周期内的最优簇头个数占网络中所有节点的比例计算各个节点的当前周期内簇头选举的阈值的部分,包括:

基站具体用于通过公式计算各个节点的当前周期内簇头选举的阈值;

其中,p0为当前周期内的最优簇头个数占网络中所有节点的比例,r是当前的轮数,eini(i)是参与竞争簇头节点的初始能量,ecur(i)是参与竞争簇头节点的剩余能量,dmax和dmin是节点距离基站的最大距离和最小距离,dbs是节点到基站的距离,ci是节点的中心度,cmax是所有节点中的中心度的最大值,g为在最近轮中没有成为簇头的节点集合。

可以理解的是,以上实施方式仅仅是为了说明本申请的原理而采用的示例性实施方式,然而本申请并不局限于此。对于本领域内的普通技术人员而言,在不脱离本申请的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本申请的保护范围。

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