能量均衡的无线传感器网络非均匀分簇路由协议

一、簇的形成

DEBUC(distributed energy-balanced unequal clustering routing protocol)采用分布式簇头竞争算法,簇头的选举完全依据局部竞争。参与簇头竞争的候选簇头节点保存一个邻居节点信息表,见表1,并按一定规则竞争成为最终簇头。候选簇头之间竞争的规则定义如下:
规则1. 在竞选过程中,若候选簇头 v i v_i vi宣布其竞选获胜,则在 v i v_i vi的竞争半径内的所有候选簇头均不能成为最终簇头,需要退出竞选过程。
候选簇头 v i v_i vi的邻居节点集合包括与 v i v_i vi具有规则1所约束的竞争关系的所有候选簇头节点,其定义如下:
定义1. 在 DEBUC 簇头竞选算法中,候选簇头 v i v_i vi的邻居节点集合 N T i NT_i NTi N T i = { v j ∣ v j 是 候 选 簇 头 , 且 d ( v i , v j ) < m a x ( v i . R c o m p , v j . R c o m p ) } (1) NT_i=\{v_j|v_j是候选簇头,且 d(v_i,v_j)<max(v_i.R_{comp},v_j.R_{comp})\}\tag{1} NTi={vjvjd(vi,vj)<max(vi.Rcomp,vj.Rcomp)}(1)由于在 WSNs 的实际应用中,节点的密度一般较高(如20个节点/平方米),因此没有必要每个节点都成为候选簇头。设置一个门限值 T T T以控制候选簇头节点的比例。同时,每个候选簇头节点设置一个竞争范围 R c o m p R_{comp} Rcomp,它是该节点与基站距离的函数,用于控制簇头在网络中的分布。为了使距离基站较近的簇具有较小的几何尺寸,在距离基站较近的区域应选举更多的簇头。因此,候选簇头节点的竞争半径应正比于它与基站的距离。亦即,随着候选簇头到基站距离的减小,其竞争半径应该随之减小。假设 R c o m p o R_{comp}^o Rcompo是预先定义的最大竞争半径,候选簇头节点 v i v_i vi R c o m p R_{comp} Rcomp v i . R c o m p = ( 1 − c d m a x − d ( v i , B S ) d m a x − d m i n ) R c o m p o (2) vi.R_{comp}=\left(1-c\frac{d_{max}-d(v_i,BS)}{d_{max}-d_{min}}\right)R_{comp}^o\tag{2} vi.Rcomp=(1cdmaxdmindmaxd(vi,BS))Rcompo(2)其中, d m a x d_{max} dmax d m i n d_{min} dmin分别代表节点和基站的最大和最小距离, d ( v i , B S ) d(v_i,BS) d(vi,BS)代表节点 v i v_i vi和基站的距离, c c c是位于0~1之间的常数。根据公式(2)可知,候选簇头节点的竞争范围在 ( 1 − c ) R c o m p o (1-c)R_{comp}^o (1c)Rcompo R c o m p o R_{comp}^o Rcompo之间变化。
在这里插入图片描述

表1 候选簇头邻居节点信息表

簇头选举算法的伪代码如图1所示。在簇头选举算法中,控制信息的广播半径是 R c o m p o R_{comp}^o Rcompo,以保证候选簇头节点能接收其邻居节点的信息。首先,每个候选簇头节点广播包括自身 I D ID ID、竞争范围和剩余能量的 C O M P E T E _ H E A D _ M S G COMPETE\_HEAD\_MSG COMPETE_HEAD_MSG消息,而普通节点则进入休眠状态直到簇头选举算法结束,如图中第1行 ~ 第9行所示。接收这些消息后,候选簇头节点更新其邻居节点信息表,如第10行~第13行所示。下一步是候选簇头节点竞争簇头阶段。其
他一些算法(如EEUC)中,剩余能量大于所有邻居节点的候选簇头节点竞选成功并广播消息通知其邻居节点,邻居节点收到该消息后放弃竞争并广播消息。在这种方式下,候选簇头节点竞争簇头时需要广播和接收大量消息,特别是当节点密度较大时。DEBUC 在簇头竞争阶段采用计时广播代替协商机制,如第19行~第27行所示。候选簇头节点 v i v_i vi依据自身时间进度广播 F I N A L _ H E A D _ M S G FINAL\_HEAD\_MSG FINAL_HEAD_MSG消息,宣布自己成为簇头。 t i = k × T C H × E ˉ N T i R E i (3) t_i=k×T_{CH}×\frac{\bar{E}_{NTi}}{RE_i}\tag{3} ti=k×TCH×REiEˉNTi(3)其中, k k k是均匀分布在 ( 0.9 , 1 ) (0.9,1) (0.9,1)之间的随机数,用于减小广播消息时间冲突的可能性; T C H T_{CH} TCH是预先定义的簇头选择所 需的时间; R E i RE_i REi v i v_i vi的剩余能量; E ˉ N T i \bar{E}_{NTi} EˉNTi v i v_i vi邻居节点的平均剩余能量。如果 R E i < E ˉ N T i RE_i<\bar{E}_{NTi} REi<EˉNTi v i v_i vi放弃竞争簇头,如第14行~第18行所示。根据公式(3),广播时间 t t t取决于节点的剩余能量和其邻居节点的平均剩余能量。如果节点在其所处区域具有较大的能量,则它成为簇头的等待时间较短,概率较大。
C l u s t e r   H e a d s   S e l e c t i o n   A l g o r i t h m Cluster\,Heads\,Selection\,Algorithm ClusterHeadsSelectionAlgorithmFor every node in the network
1: μ ← R A N D ( 0 , 1 ) μ\leftarrow RAND(0,1) μRAND(0,1)
2: if μ < T μ<T μ<T then
3: b e V o l u n t e e r N o d e ← T R U E \quad beVolunteerNode\leftarrow TRUE beVolunteerNodeTRUE
4: end if
5: if b e V o l u n t e e r N o d e = T R U E beVolunteerNode=TRUE beVolunteerNode=TRUE then
6: C o m p e t e H e a d M s g ( I D , R c o m p , R E ) \quad CompeteHeadMsg(ID,R_{comp},RE) CompeteHeadMsg(ID,Rcomp,RE)
7: else
8: s l e e p \quad sleep sleep
9: end if
For every volunteer node v i v_i vi
10: on receiving a C O M P E T E _ H E A D _ M S G COMPETE\_HEAD\_MSG COMPETE_HEAD_MSG from volunteer node v j v_j vj
11: if d ( v i , v j ) < v j . R c o m p d(v_i,v_j)<v_j.R_{comp} d(vi,vj)<vj.Rcomp OR d ( v i , v j ) < v i . R c o m p d(v_i,v_j)<v_i.R_{comp} d(vi,vj)<vi.Rcomp then
12: \quad add v j v_j vj to v i v_i vi neighbor set N T i NT_i NTi
13: end if
For every volunteer node v i v_i vi
14: if R E i > = E ˉ N T i RE_i>=\bar{E}_{NTi} REi>=EˉNTi
15: \quad compute t i t_i ti according to Eq.(3)
16: else
17: v i \quad v_i vi give up the competition and become an ordinary node
18: end if
For every volunteer node v i v_i vi
19: while (the timer T C H T_{CH} TCH is not expired)
20: \quad if ( C u r r e n t T i m e < t i CurrentTime<t_i CurrentTime<ti)
21: \quad\quad if (heard F I N A L _ H E A D _ M S G FINAL\_HEAD\_MSG FINAL_HEAD_MSG from a neighbor N T i NT_i NTi)
22: \quad\quad\quad give up the competition and stop the timer t i t_i ti
23: \quad\quad end if
24: \quad else if ( C u r r e n t T i m e = t i CurrentTime=t_i CurrentTime=ti)
25: F i n a l H e a d M s g ( I D ) \quad\quad FinalHeadMsg(ID) FinalHeadMsg(ID)
26: \quad end if
27: end while

图1 簇头选择算法伪代码

簇头选择完成后,普通节点退出休眠状态,簇头广播 C H _ A D V _ M S G CH\_ADV\_MSG CH_ADV_MSG消息。普通节点根据接收消息的强度加入最近的簇头,并发送 J O I N _ C L U S T E R _ M S G JOIN\_CLUSTER\_MSG JOIN_CLUSTER_MSG消息通知簇头。网络非均匀分簇完成。图2是DEBUC非均匀分簇的一个例子,基站位于 ( 200 , 450 ) (200,450) (200,450)。从图中可以明显看出,越是靠近基站的簇,其几何尺寸越小。
在这里插入图片描述

图2 传感器节点非均匀分簇例子

二、仿真分析

网络环境与参数见表2。
在这里插入图片描述

表2 网络环境与参数

本次实验仿真10轮,其中4轮的分簇结果如图3~6所示。在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

图3~6 DEBUC非均匀分簇图

三、参考文献

[1] 蒋畅江, 石为人, 唐贤伦, 等. 能量均衡的无线传感器网络非均匀分簇路由协议[J]. 软件学报, 2012(5): 1222-1232.

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值