一种自适应分簇路由方法、装置及电子设备与流程

文档序号:12038486阅读:415来源:国知局
一种自适应分簇路由方法、装置及电子设备与流程

本发明涉及无线技术领域,特别是涉及一种自适应分簇路由方法、装置及电子设备。



背景技术:

随着无线传感器技术的飞速发展和日益成熟,大量的低成本无线传感器设备用于监测和跟踪服务,特别是对于人无法进入的监测区域,可以将无线传感器部署到该监测区域中,无线传感器可以自行组织成无线网络,监测该监测区域的各种信息并传输给网络中心,完成监测任务,然而,由于无线传感器体积通常非常小,具有有限的电源供应,并且,对该监测区域的每个无线传感器进行充电或更换电池是不现实的,因此,提高网络能量效率、平衡网络能量损耗和延长网络的生存时间是至关重要的。

为了延长无线网络的生存时间,现有技术中提出了一种leach协议(lowenergyadaptiveclusteringhierarchy,低功耗自适应分簇路由协议),该协议将网络生命周期以“轮”为单位划分,每一轮分为“成簇”和“稳定传输”两个阶段。在成簇阶段,该协议是以循环的方式随机选择无线网络中的无线传感器(在无线网络中,可以将无线传感器称作节点,下称节点)成为簇头节点,将整个网络的能量负载平均分配到每个节点中,从而达到提高网络整体生存时间的目的。然而,由于该协议是随机的选择无线网络中的节点成为簇头节点,可能会将剩余能量较少的节点选为簇头节点,这样会使得剩余能量较少的簇头节点过早的死亡,造成该簇头节点的簇内成员数据传输失败。

基于leach协议改进的协议,在选择簇头时,考虑了节点与基站间的距离,但是,该协议在选择簇头时,也可能会将剩余能量较少的节点选为簇头节点,同样会造成该簇头节点的簇内成员数据传输失败,造成无线网络不稳定。



技术实现要素:

本发明实施例的目的在于提供一种自适应分簇路由方法、装置及电子设备,以实现按照剩余能量选择最优的簇头,平衡节点间能量消耗,保证整个网络的稳定。具体技术方案如下:

第一方面,本发明实施例提供了一种自适应分簇路由方法,所述方法应用于基站,包括:

对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,其中,簇区包括多个节点;

获取簇区的第一节点在当前轮开始时的剩余能量,其中,第一节点为多个节点中的任一个节点;

预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,其中,成员节点为簇区中除簇头节点外的节点;

根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值;

获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值,其中,随机数为0-1之间的数;

在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

可选的,对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,包括:

获取基站通信范围内的所有节点的标识信息和位置信息,通过k-means聚类算法对所有节点进行分簇,得到基站通信范围内的簇区。

可选的,获取簇区的第一节点在当前轮开始时的剩余能量,包括:

获取第一节点在当前轮的上一轮开始时的剩余能量;

当第一节点在当前轮的上一轮为簇头节点时,获取第一节点在当前轮的上一轮的下一跳簇头节点的位置信息,计算第一节点与下一跳簇头节点的距离,其中,下一跳簇头节点为接收第一节点发送的数据包的节点;

获取第一节点在当前轮的上一轮、所在簇区的成员节点产生的数据包的信息量、第一节点发送广播信息的信息量、转发上一跳簇头节点数据包的能量消耗以及簇区的半径,通过公式:

计算第一节点的实际能量消耗;

其中,上一跳簇头节点为发送数据包给第一节点的节点,e'ch(di1)表示实际能量消耗,nk表示第k个簇区节点的总数为n,l'data表示第一节点所在簇区和第一节点的上一跳簇头节点所在簇区内的每个节点实际产生的数据包的信息量,eelec表示预设电子能量成本,l'adv表示第一节点实际发送广播信息的信息量,εfs表示预设的自由空间模型因子,表示第k个簇区的半径,即第k个簇区中最远的节点与簇心节点的距离,di1表示第一节点与下一跳簇头节点的距离,mn为第一节点的上一跳簇头节点所在簇区的节点总数;

当第一节点在当前轮的上一轮为成员节点时,获取第一节点实际产生数据包的信息量、接收簇头节点发送的广播信息的信息量以及簇区的半径,通过公式:

计算第一节点的实际能量消耗,其中,表示第一节点实际能量消耗;

将第一节点在当前轮的上一轮开始时的剩余能量减去第一节点的实际能量消耗,得到第一节点在当前轮开始时的剩余能量。

可选的,簇区还包括簇心节点,在对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区之后,本发明实施例的自适应分簇路由方法还包括:

通过dijkstra最短路径算法计算簇区的簇心节点的路由路径;

相应的,预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,包括:

获取簇区的簇心节点的路由路径,确定簇区的簇心节点的下一跳簇心节点,并计算第一节点与下一跳簇心节点的距离;

获取预设的节点产生数据包的信息量、预设的发送广播信息的信息量、预设的转发上一跳簇心节点数据包的能量消耗以及簇区的半径,通过公式:

预估第一节点作为簇区的簇头节点的第一能量消耗;

其中,ech(di2)为第i个节点的第一能量消耗,nk表示第k个簇区的节点的总数,ldata表示预设的节点产生数据包的信息量,eelec表示预设电子能量成本,ladv表示预设的发送广播信息的信息量,εfs表示预设的自由空间模型因子,表示第k个簇区的半径,di2表示簇区的第i个节点与下一跳簇心节点的距离,mn为第k个簇区的簇心节点的上一跳簇心节点所在簇区的节点的总数为m;

通过公式:

预估第一节点作为簇区的成员节点的第二能量消耗,其中,表示第二能量消耗。

可选的,在获取簇区的第一节点在当前轮开始时的剩余能量之后,本发明实施例的自适应分簇路由方法还包括:

判断第一节点在当前轮开始时的剩余能量是否大于预设能量门限值;

相应的,根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值,包括:

在第一节点在当前轮开始时的剩余能量大于预设能量门限值时,根据第一节点第一能量消耗、第一节点的第二能量消耗以及第一节点在当前轮开始时的剩余能量,通过公式:

计算第一节点作为簇区的簇头节点的概率,其中,pi为簇区的第i个节点作为簇头节点的概率,ech(di2)为第i个节点的第一能量消耗,ech(dj)为簇区中除第i个节点外的节点中第j个节点的第一能量消耗,eres(i)为第i个节点的剩余能量,eres(j)为簇区中除第i个节点外的节点中第j个节点的剩余能量;

通过公式:

计算第一节点的簇头门限值,其中,thres(i,r)表示簇区的第i个节点在第r轮的簇头门限值。r为轮数,gi(r)=1表示第i个节点在第轮至第轮之间作过簇头,gi(r)=0表示第i个节点在第轮至第轮之间未作过簇头,表示求的余数。

可选的,在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点之后,本发明实施例的自适应分簇路由方法还包括:

通过dijkstra最短路径算法计算簇区的簇头节点到基站的路由路径。

可选的,在通过dijkstra最短路径算法计算簇区的簇头节点到基站的路由路径之后,本发明实施例的自适应分簇路由方法还包括:

分别计算第二节点与簇区的簇头节点、簇区的簇头节点的下一跳簇头节点之间的距离,其中,第二节点为簇区中除簇头节点外的节点;

在第二节点与簇区的簇头节点的下一跳簇头节点之间的距离小于第二节点与簇区的簇头节点之间的距离时,发送请求短帧指令给第二节点,其中,该请求短帧指令为指示第二节点发送请求额外时分多址调度的短帧请求给簇区的簇头节点的下一跳簇头节点的指令。

第二方面,本发明实施例还提供了一种自适应分簇路由装置,应用于基站,所述装置包括:

分簇模块,用于对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,其中,簇区包括多个节点;

剩余能量获取模块,用于获取簇区的第一节点在当前轮开始时的剩余能量,其中,第一节点为多个节点中的任一个节点;

能量消耗预估模块,用于预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,其中,成员节点为簇区中除簇头节点外的节点;

簇头门限值计算模块,用于根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值;

判断模块,用于获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值,其中,随机数为0-1之间的数;

选择模块,用于在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

可选的,分簇模块,具体用于获取基站通信范围内的所有节点的标识信息和位置信息,通过k-means聚类算法对所有节点进行分簇,得到基站通信范围内的簇区。

第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存储计算机程序;

处理器,用于在执行存储器上所存储的程序时,实现第一方面提供的一种自适应分簇路由方法;

通信接口,用于电子设备与外部设备进行数据交换。

第四方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面提供的一种自适应分簇路由方法的步骤。

本发明实施例提供的一种自适应分簇路由方法、装置及电子设备,在簇头选择时考虑每个节点剩余能量、每个节点与下一跳簇心节点之间的距离,更好地平衡簇区内节点间能量消耗,使得簇头节点有足够的电量传输数据,保证整个网络的稳定,延长整个网络的生存时间。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

图1a为本发明实施例的自适应分簇路由方法应用于无线网络的结构示意图;

图1b为应用本发明实施例的自适应分簇路由方法对无线网络中所有节点进行分簇的结构示意图;

图1c为应用本发明实施例的自适应分簇路由方法计算无线网络中的簇头节点的路由路径的结构示意图;

图2为本发明实施例的一种自适应分簇路由方法的第一种实施方式的流程图;

图3为本发明实施例的一种自适应分簇路由方法的第二种实施方式的流程图;

图4为本发明实施例的一种自适应分簇路由方法调整成员节点路由路径的结构示意图;

图5a为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的簇区和簇心路由路径的结构示意图;

图5b为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的簇头节点及簇头节点的路由路径的结构示意图;

图5c为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的调整簇区的成员节点发送数据包的路由路径的结构示意图;

图6为本发明实施例的一种自适应分簇路由装置的结构示意图;

图7为本发明实施例的一种自适应分簇路由方法应用于电子设备的结构示意图。

具体实施方式

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

为了解决现有技术存在的问题,本发明实施例提供了一种自适应分簇路由方法、装置及电子设备,以在簇头选择时考虑每个节点剩余能量、每个节点与下一跳簇心节点之间的距离,更好地平衡簇内节点间能量消耗,使得簇头节点有足够的电量传输数据,保证整个网络的稳定,延长整个网络的生存时间。

为了清楚地说明本发明实施例的一种自适应分簇路由方法,首先对本发明实施例的自适应分簇路由方法的应用场景进行介绍,如图1a所示,为本发明实施例的自适应分簇路由方法应用于无线网络的结构示意图;在该无线网络中,包括:基站101、无线传感器节点102、无线传感器节点103、无线传感器节点104、无线传感器节点105、无线传感器节点106、无线传感器节点107、无线传感器节点108、无线传感器节点109、无线传感器节点110、无线传感器节点111。其中,基站101是应用本发明实施例的自适应分簇路由方法的基站。

基站101可以应用本发明实施例的自适应分簇路由方法对上述10个无线传感器节点进行分簇,得到多个簇区,然后每轮选择每个簇区中的一个无线传感器节点作为该簇区的簇头节点。在选择簇头节点时,考虑该簇区的每个节点的剩余能量、每个节点与下一跳簇心节点的距离,从而可以平衡簇区内每个节点的能量消耗,防止将剩余能量较低的节点选择为簇头节点,保证整个网络的稳定,延长整个网络的生存时间。在选择簇头节点后,基站可以发送簇头节点的配置信息给该簇区的成员节点,以使得该簇区的成员节点能够发送数据包给该簇头节点。

在本发明实施例的一种可能的实现方式中,可以首先对基站通信范围内的所有节点进行分簇,然后以轮为周期进行簇头选择,在经过若干轮的簇头选择后,簇区的每个节点可以轮流作为簇头节点参与数据包的转发。

在一次分簇后,当某一个簇区的所有成员节点的能量都耗尽时,基站则记录该簇区的能量耗尽的节点的标识信息,然后对其通信范围内的其他节点重新分簇。

例如,基站可以在本地建立一个能量耗尽的节点列表,然后将能量耗尽的节点的标识信息保存在该列表中,节点的标识信息可以是节点id,也可以是节点的物理地址。

下面,对本发明实施例的一种自适应分簇路由方法进行介绍,如图2所示,为本发明实施例的一种自适应分簇路由方法的第一种实施方式的流程图,该方法可以包括:

s201,对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区。其中,该簇区包括多个节点。

当基站通信范围内的节点数目比较多的时候,如果在该基站通信范围内只选择一个节点作为簇头节点时,可能会使得该基站通信范围内距离该簇头节点比较远的节点发送数据包的能量消耗比较大,也会使得该簇头节点接收数据包的数目比较多,而造成该簇头节点的能量消耗较大,因此,在应用本发明实施例的自适应分簇路由方法时,可以首先对基站通信范围内的所有节点进行分簇,在对基站通信范围内的所有节点分簇时,可以均匀分簇,也可以非均匀分簇。

在一种较佳的实现方式中,为了平衡每个簇的能量消耗,可以通过k-means聚类算法对该基站通信范围内的所有节点进行均匀分簇:

步骤a,基站可以获取通信范围内的每个节点的位置信息和标识信息。

步骤b,根据每个节点的位置信息,均匀的选择k个节点为k个待确定簇心节点,并以k个待确定簇心节点建立k个簇区。

其中,n为基站通信范围内所有节点的总数。

具体的,在根据每个节点的位置信息,均匀的选择k个节点为k个待确定簇心节点时,本发明实施例提供了一种可能的实现方式:

可以对基站通信范围内的所有节点构成的区域进行均分,每个区域的面积大小相同或相似,然后,选择每个区域中处于区域中心的节点为待确定簇心节点,从而可以得到k个待确定簇心节点。

步骤c,通过公式

得到将所有节点聚类后的k个簇区,其中,sh表示第h个节点的位置信息,μk表示待确定簇心节点中第k个簇心节点的位置信息,argmin||sh-μk||2表示使||sh-μk||2取最小值时,k的值,ch表示第h个节点加入第k个簇区的标号,0≤k≤k。

例如,在图1a中,无线传感器节点102可以通过上述公式计算与所有k个待确定簇心节点的距离,并将无线传感器节点102加入到与无线传感器节点102距离最近的待确定簇心节点所在簇区,假设无线传感器节点102与无线传感器节点103的距离最近,则无线传感器节点102加入无线传感器节点103所在簇区,构成聚类后的簇区。

假设通过上述公式聚类后,得到聚类后的簇区分别为:无线传感器节点102、无线传感器节点103为第一簇区,无线传感器节点105、无线传感器节点104、无线传感器节点106为第二簇区,无线传感器节点107、无线传感器节点108为第三簇区。无线传感器节点109、无线传感器节点110、无线传感器节点111为第四簇区。

步骤d,根据每个簇区内的节点的位置信息,通过公式

计算第k个簇区的新的簇心节点。

其中,μ'k表示第k个簇区的新的簇心节点的位置信息,|ak|表示第k个簇区中节点的数量,ak表示第k个簇区的节点的集合。

在通过步骤c将所有节点聚类后得到的k个簇区,在本步骤中,可以计算k个簇区中每个簇区的新的簇心节点。

步骤e,通过公式

判断第k个簇区的新的簇心节点与第k个待确定簇心节点的变化值是否小于预设簇心变化阈值;

步骤f,在第k个簇区的新的簇心节点与第k个待确定簇心节点的变化值大于预设簇心变化阈值时,以第k个簇区的新的簇心节点为第k个待确定簇心节点,重复执行步骤c、步骤d;

步骤g,在第k个簇区的新的簇心节点与第k个待确定簇心节点的变化值小于预设簇心变化阈值时,将第k个簇区的新的簇心节点作为第k个簇区的簇心节点,得到基站通信范围内的k簇区。

假设,分簇后得到的分簇结果如图1b,如图1b所示,为应用本发明实施例的自适应分簇路由方法对无线网络中所有节点进行分簇的结构示意图。在该图中,对无线网络中所有节点进行分簇后,得到的分簇结果为:簇区11包括的节点为:无线传感器节点102、无线传感器节点103,簇心节点112;簇区12包括的节点为:无线传感器节点105、无线传感器节点104、无线传感器节点106,簇心节点113;簇区13包括的节点为无线传感器节点107、无线传感器节点108,簇心节点114;簇区14包括的节点为:无线传感器节点109、无线传感器节点110、无线传感器节点111,簇心节点115。

其中,簇心节点为所在簇区中心,簇心节点的位置信息为所在簇区中心的位置信息。

在分簇完成后,基站可以发送广播配置信息给通信范围内的所有节点,该配置信息可以包括:节点所属簇区的簇区标号、节点所属簇区的簇心节点的位置信息等。

通过该步骤,可以对基站通信范围内的所有节点进行均匀分簇,从而可以避免在通过后续步骤得到簇头节点时,簇头节点在整个通信范围内的分配不均而造成簇区内成员节点的能量损耗过大。

s202,获取簇区的第一节点在当前轮开始时的剩余能量。其中,第一节点为多个节点中的任一个节点。

在对基站通信范围内的所有节点进行分簇后,可以通过本发明实施例的自适应分簇路由方法进行多轮选择簇头,并且可以在选择簇头后进行路由通信。

应当理解的是,在分簇完成后的第一轮,获取的簇区的第一节点在当前轮开始时的剩余能量为该第一节点的最大能量。

具体的,第一节点在当前轮开始时的剩余能量可以由第一节点在当前轮开始时进行测量得到,应用本发明实施例的自适应分簇路由方法的基站可以发送获取剩余能量的指令给第一节点,获取该第一节点在当前轮开始时的剩余能量。

也可以由基站对第一节点在当前轮的上一轮的能量消耗进行计算,并结合第一节点在当前轮的上一轮开始时的剩余能量,得到第一节点在当前轮开始时的剩余能量。

假设,该簇区为图1b所示的应用本发明实施例的自适应分簇路由方法对无线网络中所有节点进行分簇的结构示意图中的簇区13,在该簇区中,包括无线传感器节点107、无线传感器节点108,可以分别获取上述两个节点在当前轮开始时的剩余能量。

通过获取簇区的第一节点在当前轮开始时的剩余能量,可以在选择簇头时,将节点的剩余能量作为该节点是否可以成为簇头节点的能量因素。从而,保证后续步骤选择的簇头节点有足够的能量完成在该轮的通信。

s203,预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗。

其中,成员节点为簇区中除簇头节点外的节点。

这里,可以根据经验对第一节点作为簇区的簇头节点的第一能量消耗进行预估,对第一节点作为簇区的成员节点的第二能量消耗进行预估。

例如,可以将与该无线网络环境相同或类似的无线网络环境作为参考对象,对该第一节点作为簇区的簇头节点的第一能量消耗和该节点作为簇区的成员节点的第二能量消耗进行预估,也可以根据该第一节点在当前轮之前多轮的实际能量消耗对该第一节点作为簇区的簇头节点的第一能量消耗和该节点作为簇区的成员节点的第二能量消耗进行预估。

例如,可以通过本步骤分别预估图1b中簇区13的两个无线传感器节点在当前轮作为簇区13的簇头节点的第一能量消耗和作为簇区13的成员节点的第二能量消耗。

s204,根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值。

这里,可以首先计算第一节点作为簇区的簇头节点的概率,然后根据第一节点作为簇区的簇头节点的概率计算第一节点的簇头门限值。

具体的,可以通过公式:

计算第一节点作为簇区的簇头节点的概率,然后通过公式:

计算第一节点的簇头门限值。

其中,pi为簇区的第i个节点作为簇头节点的概率,ech(di2)为第i个节点的第一能量消耗,ech(dj)为簇区中除第i个节点外的节点中第j个节点的第一能量消耗,eres(i)为第i个节点的剩余能量,eres(j)为簇区中除第i个节点外的节点中第j个节点的剩余能量;thres(i,r)表示第i个节点在第r轮的簇头门限值。r为轮数,gi(r)=1表示第i个节点在第轮至第轮之间作过簇头,gi(r)=0表示第i个节点在第轮至第轮之间未作过簇头,表示求的余数。

例如,可以通过上述步骤分别计算图1b中所示的簇区13中的无线传感器节点107、无线传感器节点108的簇头门限值。假设,无线传感器节点108在第轮至第轮之间作过簇头,则无线传感器节点108在当前轮的簇头门限值为0。无线传感器节点107没有做过簇头,则无线传感器节点107的簇头门限值thres(107,r)为

通过本步骤,基站可以按照计算得到第一节点作为簇头节点的概率来得到该第一节点的簇头门限值,从而可以在选择簇头节点时更好的平衡簇区内节点的能量消耗。

s205,获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值。其中,随机数为0-1之间的数。

在计算第一节点的簇头门限值后,应用本发明实施例自适应分簇路由方法的基站可以发送获取第一节点的随机数的指令,第一节点可以将生成的随机数反馈给该基站。

该基站在获取到第一节点发送的随机数后,可以与计算得到的第一节点的簇头门限值进行比较,判断该第一节点生成的随机数是否小于第一节点的簇头门限值,从而可以判断该第一节点是否可以在当前轮作为该簇区的簇头节点。

假设,通过步骤s204计算得到的无线传感器节点107的簇头门限值是0.8,获取到的无线传感器节点107的随机数为0.65。则无线传感器节点107的随机数小于簇头门限值。

s206,在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

例如,通过步骤s205对无线传感器节点107的随机数和簇头门限值的判断,在本步骤中,可以选择无线传感器节点107作为簇区13在当前轮的簇头节点。

在本步骤中,通过选择随机数小于簇头门限值的第一节点作为簇区在当前轮的簇头节点,可以更好的平衡簇区内节点的能量消耗,延长整个网络的生存时间。

在通过上述步骤选择簇区的簇头节点后,可能在该簇区的当前轮中未选择到簇头节点,也就是说,该簇区在当前轮的簇头节点的数量为0,也可能该簇区在当前轮中选择的簇头节点数量大于或等于2。

针对上述情况,本发明实施例还提供了对应的解决方法:

当该簇区在当前轮的簇头节点的数量为0时,则基站选择该簇区中距离簇心节点最近的成员节点作为虚拟簇头,该虚拟簇头节点只负责转发数据包;其他节点作为成员节点。

当该簇区在当前轮中选择的簇头节点数量大于或等于2时,基站可以计算该簇区中簇头节点与该簇区簇心节点的距离,然后选择与该簇区簇心节点距离最近的簇头节点作为主簇头节点,该簇区的其他簇头节点作为辅助簇头节点,该辅助簇头节点用于转发该簇区节点成员发送的数据包给该簇区的主簇头节点。

当基站选择簇区的簇头节点后,可以发送称为簇头的指令为该节点,以使得该节点向该簇区的成员节点广播该簇头节点的标识信息、位置信息以及时分多址时隙的安排信息等。

本发明实施例提供的一种自适应分簇路由方法,在簇头选择时考虑每个节点剩余能量、每个节点与下一跳簇心节点之间的距离,更好地平衡簇区内节点间能量消耗,使得簇头节点有足够的电量传输数据,保证整个网络的稳定,延长整个网络的生存时间。

在通过本发明实施例的一种自适应分簇路由方法的第一种实施方式得到簇区的簇头节点后,本发明实施例还提供了一种自适应分簇路由方法,以实现降低簇头节点发送数据包给基站的能量消耗,延长无线网络的生存时间。如图3所示,为本发明实施例的一种自适应分簇路由方法的第二种实施方式的流程图,在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点之后,该方法还可以包括:

s207,通过dijkstra最短路径算法计算簇区的簇头节点到基站的路由路径。

通过运用本发明实施例的一种自适应分簇路由方法的第一种实施方式可以得到基站通信范围内所有簇区的簇头节点。在本步骤中,可以通过dijkstra最短路径算法和所有簇区的簇头节点的位置信息计算每个簇区的簇头节点到基站的路由路径。

具体的,可以首先计算每两个簇头节点之间的距离,每个簇头节点与基站之间的距离。然后以所有簇头节点和基站为顶点,以每两个簇头节点之间的距离、每个簇头节点与基站之间的距离为边,得到一个包括所有簇头节点和基站的无向图。再通过该无向图,运用dijkstra最短路径算法,可以得到该簇区的簇头节点的路由路径。

假设,通过本发明实施例的一种自适应分簇路由方法的第一种实施方式对图1b所示的簇区11、簇区12、簇区13和簇区14选择簇头节点后,簇区11的簇头节点为102,簇区12的簇头节点为104,簇区13的簇头节点为107,簇区14的簇头节点为109。

则可以通过本步骤分别计算簇头节点102、簇头节点104、簇头节点107和簇头节点109的路由路径。如图1c所示,为应用本发明实施例的自适应分簇路由方法计算无线网络中的簇头节点的路由路径的结构示意图。在图1c中,簇头节点102的路由路径为:无线传感器节点102→基站;簇头节点104的路由路径为:无线传感器节点104→无线传感器节点102→基站;簇头节点107的路由路径为:无线传感器节点107→无线传感器节点102→基站;簇头节点109的路由路径为:无线传感器节点109→无线传感器节点102→基站。

通过计算每个簇头节点到基站的路由路径,可以使得簇头节点在发送数据包给基站时,降低发送数据包的能量消耗,延长无线网络的生存时间。

在获取簇区的第一节点在当前轮开始时的剩余能量时,本发明实施例提供了一种可能的实现方式,可以包括:

步骤a,获取第一节点在当前轮的上一轮开始时的剩余能量。

具体的,当第一节点的当前轮的上一轮为第一轮时,第一节点在当前轮的上一轮开始时的剩余能量则为该节点的最大能量。该最大能量为该第一节点在生产时设定的能量的最大容量。

步骤b,当第一节点在当前轮的上一轮为簇头节点时,获取第一节点在当前轮的上一轮的下一跳簇头节点的位置信息,计算第一节点与下一跳簇头节点的距离。

其中,下一跳簇头节点为接收第一节点发送的数据包的节点;

假设,该第一节点为无线传感器节点109,在当前轮的上一轮为簇头节点,该第一节点在当前轮的上一轮的下一跳簇头节点为102,也就是说,在当前轮的上一轮,该第一节点的下一跳簇头节点为102。这里,可以根据无线传感器节点109和无线传感器节点102的位置信息,计算两者之间的距离。

具体的,当该当前轮为第二轮时,则该当前轮的上一轮为第一轮。

步骤c,获取第一节点在当前轮的上一轮、所在簇区的成员节点产生的数据包的信息量、第一节点发送广播信息的信息量、转发上一跳簇头节点数据包的能量消耗以及簇区的半径,通过公式:

计算第一节点的实际能量消耗;

其中,上一跳簇头节点为发送数据包给第一节点的节点,e'ch(di1)表示实际能量消耗,nk表示第k个簇区节点的总数为n,l'data表示第一节点所在簇区和第一节点的上一跳簇头节点所在簇区的每个节点实际产生的数据包的信息量,eelec表示预设电子能量成本,l'adv表示第一节点实际发送广播信息的信息量,εfs表示预设的自由空间模型因子,表示第k个簇区的半径,即第k个簇区中最远的节点与簇心节点的距离,di1表示第一节点与下一跳簇头节点的距离,mn为第一节点的上一跳簇头节点所在簇区的节点总数;

当该第一节点在当前轮的上一轮为簇头节点时,需要转发该簇区的成员节点产生的数据包,发送广播信息给该簇区的成员节点以及转发该第一节点的上一跳簇头节点发送的数据包,因此,在计算该第一节点为簇头节点的实际能量消耗时,可以以上述三个方面为能量消耗因素计算该第一节点的实际能量消耗。

步骤d,当第一节点在当前轮的上一轮为成员节点时,获取第一节点实际产生数据包的信息量、接收簇头节点发送的广播信息的信息量以及簇区的半径,通过公式:

计算第一节点的实际能量消耗,其中,表示第一节点实际能量消耗;

当该第一节点在当前轮的上一轮为簇区的成员节点时,需要发送自身产生的数据包以及接收簇头节点发送的广播信息,因此,在计算该第一节点为簇区成员节点的实际能量消耗时,可以以此为能量消耗因素,计算该第一节点的实际能量消耗。

步骤e,将第一节点在当前轮的上一轮开始时的剩余能量减去第一节点的实际能量消耗,得到第一节点在当前轮开始时的剩余能量。

在得到第一节点在当前轮的上一轮为簇区的簇头节点或者簇区的成员节点的实际能量消耗后,在本步骤中,可以将第一节点在当前轮的上一轮开始时的剩余能量减去该实际能量消耗得到第一节点在当前轮开始时的剩余能量。

具体的,计算第一节点在当前轮开始时的剩余能量可以在当前轮的上一轮结束时进行计算,也可以在当前轮开始时计算。计算第一节点在当前轮开始时的剩余能量可以由基站计算,也可以由第一节点自身进行计算。

在本发明实施例的一种可能的实现方式中,在对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区之后,本发明实施例的自适应分簇路由方法还可以包括:

通过dijkstra最短路径算法计算簇区的簇心节点的路由路径。

具体的,计算该簇区的簇心节点的路由路径的方法可以参照计算簇区的簇头节点到基站的路由路径的方法进行计算,这里不再赘述。

在计算簇区的簇心节点的路由路径后,本发明实施例的自适应分簇路由方法还提供了一种预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗的方法。在预估第一节点作为簇区的簇头节点的第一能量消耗时,可以包括:

步骤a,获取簇区的簇心节点的路由路径,确定簇区的簇心节点的下一跳簇心节点,并计算第一节点与下一跳簇心节点的距离。

在通过dijkstra最短路径算法计算簇区的簇心节点的路由路径后,可以得到该簇心节点的下一跳簇心节点,从而可以得到该下一跳簇心节点的位置,因此,可以计算该第一节点与下一跳簇心节点的距离。

例如,假设在图1b中,簇心节点分别为簇心节点112、簇心节点113、簇心节点114、簇心节点115。通过dijkstra最短路径算法计算得到的簇心节点112的路由路径为:簇心节点112→基站101;簇心节点113的路由路径为:簇心节点113→簇心节点112→基站101;簇心节点114的路由路径为:簇心节点114→簇心节点115→基站101;簇心节点115的路由路径为:簇心节点115→基站101。假设,该第一节点为无线传感器节点108,则第一节点的下一跳簇心节点为簇心节点115。

步骤b,获取预设的节点产生数据包的信息量、预设的发送广播信息的信息量、预设的转发上一跳簇心节点数据包的能量消耗以及簇区的半径,通过公式:

预估第一节点作为簇区的簇头节点的第一能量消耗;

其中,ech(di2)为第i个节点的第一能量消耗,nk表示第k个簇区的节点的总数,ldata表示预设的节点产生数据包的信息量,eelec表示预设电子能量成本,ladv表示预设的发送广播信息的信息量,εfs表示预设的自由空间模型因子,表示第k个簇区的半径,di2表示簇区的第i个节点与下一跳簇心节点的距离,mn为第k个簇区的簇心节点的上一跳簇心节点所在簇区的节点的总数为m。

在预估第一节点作为簇区的簇头节点的第一能量消耗时,由于簇头节点接收本簇区成员节点的数据包,发送广播信息给簇区内成员节点以及转发数据包,因此,可以根据预设的节点产生数据包的信息量、预设的发送广播信息的信息量、预设的转发上一跳簇心节点数据包的能量消耗以及簇区的半径,通过上述公式预估第一节点作为簇区的簇头节点的第一能量消耗。

在预估第一节点作为簇区的成员节点的第二能量消耗,可以通过公式:

预估第一节点作为簇区的成员节点的第二能量消耗,其中,表示第二能量消耗。

在预估第一节点作为簇区的成员节点的第二能量消耗时,由于簇区的成员节点是发送数据包给簇头节点、接收簇头节点发送的广播信息,因此,可以根据预设的节点产生数据包的信息量、预设的发送广播信息的信息量以及簇区的半径,通过上述公式预估第一节点作为簇区的成员节点的第二能量消耗。

通过本步骤预估第一能量消耗和第二能量消耗,可以使得预估的结果更加准确,增加选择簇头节点的精确度。

在本发明实施例的一种可实现的方式中,为了降低基站的计算量,在获取簇区的第一节点在当前轮开始时的剩余能量之后,本发明实施例的自适应分簇路由方法还可以判断第一节点在当前轮开始时的剩余能量是否大于预设能量门限值。

这里,预设能量门限值是根据经验进行设置的,通过判断第一节点在当前轮开始时的剩余能量与预设能量门限值的大小关系,可以仅对剩余能量大于预设能量门限值的节点计算簇头门限值,从而可以仅在剩余能量大于预设能量门限值的节点中选择簇头节点,降低计算的复杂度。

在本发明实施例的另一种可实现的方式中,第一节点可以在第一节点本地比较剩余能量与预设能量门限值的大小,在剩余能量小于预设能量门限值时,可以在发送数据包时,在该数据包中添加能量耗尽标识发送给基站,基站可以在接收到数据包的同时获取到该能量耗尽标识,可以重新计算该簇区的簇心节点。

在本发明实施例的一种可实现的方式中,为了降低簇区中处于边缘位置的成员节点发送数据包的能量消耗,可以针对簇区中处于边缘位置的成员节点发送数据包的路由路径进行调整。具体的,在调整簇区中处于边缘位置的成员节点发送数据包的路由路径时,可以通过以下方法进行调整:

步骤a,分别计算第二节点与簇区的簇头节点、簇区的簇头节点的下一跳簇头节点之间的距离。

其中,第二节点为簇区中除簇头节点外的节点。该第二节点为处于该簇区的边缘位置的节点。

在调整该节点发送数据包的路由路径时,可以先计算该第二节点与所处簇区的簇头节点的距离、该第二节点与所处簇区的簇头节点的下一跳簇头节点之间的距离。

例如,如图4所示,为本发明实施例的自适应分簇路由方法调整节点路由路径的结构示意图,包括:基站401、簇区41、簇区42,簇区41的簇头节点402、簇区42的成员节点404、簇头节点403。簇头节点402为簇头节点403的下一跳簇头节点。可以通过本步骤a计算簇区42的成员节点404与簇头节点403之间的距离dac,簇区42的成员节点404与簇区41的簇头节点402之间的距离dbc。

步骤b,在第二节点与簇区的簇头节点的下一跳簇头节点之间的距离小于第二节点与簇区的簇头节点的之间的距离时,发送请求短帧指令给第二节点。

其中,该请求短帧指令为指示第二节点发送请求额外时分多址调度的短帧请求给簇区的簇头节点的下一跳簇头节点的指令,该请求短帧指令可以包括基站的标识信息、第二节点的标识信息及下一跳簇头节点的标识信息。

在分别计算第二节点与簇区的簇头节点、簇区的簇头节点的下一跳簇头节点之间的距离后,可以通过比较第二节点与簇区的簇头节点之间的距离、第二节点与簇区的簇头节点的下一跳簇头节点之间距离判断该第二节点是否为需要调整路由路径的节点。

假设,dac>dbc,则簇区42的成员节点404与簇头节点403之间的距离大于簇区42的成员节点404与簇区41的簇头节点402之间的距离。因此,需要调整簇区42的成员节点404发送数据包的路由路径。

具体的,在调整簇区42的成员节点404发送数据包的路由路径时,可以通过发送请求短帧指令给簇区42的成员节点404,以使得簇区42的成员节点404发送额外时分多址调度的短帧请求给簇区41的簇头节点402。簇区41的簇头节点402在接收到该簇区42的成员节点404发送的额外时分多址调度的短帧请求后,可以为该簇区42的成员节点404分配时分多址时隙。

通过本步骤,可以降低处于簇区边缘位置的节点发送数据包的能量消耗。延长无线网络的生存时间。

具体的,为了更清楚的说明本发明实施例,本发明实施例选择了100个无线传感器节点和一个基站进行了仿真分析,如图5a所示,为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的簇区和簇心路由路径的结构示意图,在该图中,数字1~10所示的点分别代表不同簇区的簇心节点,不同形状的点代表分簇得到的不同簇区。簇心的路由路径为:9→6→10→3→基站;4→7→2→基站;1→7→2→基站;8→2→基站;5→2→基站。

图5b为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的簇头节点及簇头节点的路由路径的结构示意图。每个簇区的成员节点可以将数据包发送给该区的簇头节点,再由簇头节点将数据包整理后发送给基站。

图5c为应用本发明实施例的一种自适应分簇路由方法仿真分析得到的调整簇区的成员节点发送数据包的路由路径的结构示意图,在该图中,对标号为1的簇心节点所在簇区的部分节点发送数据包的路由路径进行了调整,调整为向标号为7的簇心节点所在簇区的簇头节点发送数据包。

相应于上述方法实施例,本发明实施例还提供了一种自适应分簇路由装置,如图6所示,为本发明实施例的一种自适应分簇路由装置的结构示意图,该装置可以包括:

分簇模块601,用于对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,其中,簇区包括多个节点;

剩余能量获取模块602,用于获取簇区的第一节点在当前轮开始时的剩余能量,其中,第一节点为多个节点中的任一个节点;

能量消耗预估模块603,用于预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,其中,成员节点为簇区中除簇头节点外的节点;

簇头门限值计算模块604,用于根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值;

判断模块605,用于获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值,其中,随机数为0-1之间的数;

选择模块606,用于在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

本发明实施例提供的一种自适应分簇路由装置,在簇头选择时考虑每个节点剩余能量、每个节点与下一跳簇心节点之间的距离,更好地平衡簇区内节点间能量消耗,使得簇头节点有足够的电量传输数据,保证整个网络的稳定,延长整个网络的生存时间。

具体的,分簇模块601,具体用于获取基站通信范围内的所有节点的标识信息和位置信息,通过k-means聚类算法对所有节点进行分簇,得到基站通信范围内的簇区。

本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:

步骤a,对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,其中,簇区包括多个节点;

步骤b,获取簇区的第一节点在当前轮开始时的剩余能量,其中,第一节点为多个节点中的任一个节点;

步骤c,预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,其中,成员节点为簇区中除簇头节点外的节点;

步骤d,根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值;

步骤e,获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值,其中,随机数为0-1之间的数;

步骤f,在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

上述电子设备提到的通信总线704可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口702用于上述电子设备与其他设备之间的通信。

存储器703可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器701可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的一种自适应分簇路由的电子设备,在簇头选择时考虑每个节点剩余能量、每个节点与下一跳簇心节点之间的距离,更好地平衡簇区内节点间能量消耗,使得簇头节点有足够的电量传输数据,保证整个网络的稳定,延长整个网络的生存时间。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现以下方法:

步骤a,对基站通信范围内的所有节点进行分簇,得到基站通信范围内的簇区,其中,簇区包括多个节点;

步骤b,获取簇区的第一节点在当前轮开始时的剩余能量,其中,第一节点为多个节点中的任一个节点;

步骤c,预估第一节点作为簇区的簇头节点的第一能量消耗和预估第一节点作为簇区的成员节点的第二能量消耗,其中,成员节点为簇区中除簇头节点外的节点;

步骤d,根据第一能量消耗、第二能量消耗以及第一节点在当前轮开始时的剩余能量,计算簇区的第一节点的簇头门限值;

步骤e,获取第一节点生成的随机数,并判断第一节点生成的随机数是否小于第一节点的簇头门限值,其中,随机数为0-1之间的数;

步骤f,在第一节点生成的随机数小于第一节点的簇头门限值时,选择第一节点作为簇区在当前轮的簇头节点。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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