丁俊美
(合肥财经职业学院人工智能学院,安徽 合肥 230601)
LEACH算法是一种经典的单跳分簇协议,其算法思想是:LEACH每"轮"(round)都进行簇头的选取,为了能使所有节点负载均衡,LEACH算法中传感器节点成为簇头的机会均等,并随机循环下去,避免了部分节点能量消耗过快,造成网络过早死亡。但是LEACH协议没有将节点剩余能量考虑进簇头选取中,传感器种类和分布对其能耗均有影响,而能量较低的节点成为簇头,则影响网络的寿命。另外,LEACH协议随机性选择簇头,簇头的个数和位置无法达到最优化,成员节点分布不均匀,部分距离簇头较远的节点能耗过高。因此,将着重对这些问题进行研究和改进。
1.1 簇头数最优算法能量模型
LEACH协议中簇头数是随机确定的,簇头数过多,造成多余的簇头节点能量消耗,加快网络死亡速度;簇头数过少,则有部分普通节点未被覆盖。因此,必须计算出簇头的最优个数,使阈值T(N)公式中的P(簇头数与节点总数之比的百分数)值最优化。
LEACH协议使用的能量消耗模式是一阶无线通信模式[1],如图1所示。
在上述模式下,节点能耗主要发生在接收和发送数据的过程中。节点发送lbit数据到距离为d的接收节点需耗费的能量如公式(1)所示:
ETX(l,d)=Eelec(l)+E(TX-mp)(l,d)=
(1)
图1 无线通信模型
接收lbit数据,节点将耗费能量如公式(2)所示:
ERX(l)=Eelec×l
(2)
式(2)中,发送lbit数据耗费能量为ETX-mp,接收lbit数据耗费能量为ERX,在多路衰减模型下,功率放大系数为εmp[2]。在自由空间模型下,功率放大系数为εfs,εmp和εfs是常数,由发射距离和接收误码率等因素决定,d0是决定何种模型的阈值。当d (3) 式(3)中,L是系统能耗因子,ha是发送天线高度,hb是接收天线高度,λ是载波波长。 (1)簇形成阶段的能量消耗 1)簇头节点能耗 簇头向普通节点发送广播信息,根据多路衰减模型[4],即d≥d0,保证簇头的广播信息能覆盖网络大部分区域,簇头节点此时消耗的能量如公式(4)所示: Eelec·l+εmp·l·dtoBS4 (4) (5) 在一轮中,簇头总耗能如公式(6)所示: (6) 2)普通节点能耗 普通节点接收簇头信消耗能如公式(7)所示: Eelec·l (7) 普通节点向簇头发送加入簇信息,这里采用自由空间模型,即d Eelec·l+εfs·l·dtoCH2 (8) 在一轮中,每个成员节点总耗能如公式(9)所示: Eno-ch=2·Eelec·l+εfs·l·dtoCH2 (9) 3)每个簇在成簇过程中总的耗能如公式(10)所示: (10) 4)K个簇消耗的总能量如公式(11)所示: (11) (2)簇头数优化算法 簇头位置、簇内节点个数和位置实际上是不确定的,也就是dtoCH的值是不确定的,使用数学期望值的方法求得最优dtoCH的值,代入能量模型公式中计算出最优簇头数K。 ∬r2ρ(r,θ)rdrdθ (12) (13) 把式(13)代入式(11)中,结果如公式(14)所示: EZ=l·[(3N-2K)·Eelec+K·εmp· (14) 对EZ求导数,并令其等于0,产生式如公式(15)所示: (15) 对式(15)进行分解得到最优簇头数K的如公式(16)所示: (16) 在每轮中,LEACH协议将节点的随机数与T(N)进行比较,如果大于T(N),则为成员节点,否则为簇头。算法在簇头选取时可以将能量比例加入LEACH算法中,即在阈值T(N)公式中加入剩余能量Er与初始能量Ei的比值,优先选取剩余能量多的节点成为簇头,能量比例参数如公式(17)所示: (17) LEACH协议中,簇头分布不均会使成员节点能耗加快。可以在LEACH协议阈值公式中加入节点度参数,节点可以根据接收信号强度值,计算出节点间距离,从而可以确定该节点的度Nd,节点度参数如公式(18)所示: (18) 式(18)中最合适簇头数量为K,所有存活的节点数为Nr。Nd为节点n的节点度。将参数S(n)代入到T(N)公式中,对于节点度较小的节点,参数S(n)也较小,降低该节点成为簇头的概率,反之,概率增大。改进后LEACH协议的T(N) 如公式(19)所示: (19) 式(19)中τ为常量,表示能耗比例和节点度比例在T(N)式中占的比重。通过上面阈值T(N)计算公式,可以使节点的能耗更加均衡,使网络生存周期得到延长。 使用MATLAB进行仿真分析,实验仿真参数如下:监测区域100m*100m、节点数100个、Sink节点坐标(50,50)m、数据包长度4000Bytes、初始能量0.5,Eelec为50 nJ/bit·m2,εmp为0.0013 pJ/bit·m4,εfs为10 pJ/bit·m2。经过簇头数最优算法计算后得到4≤K≤5,则p的最优值为0.04-0.05之间。这里为便于比较,将改进后的LEACH算法称为NEW算法,两种算法的簇头数都选取5个,即P值为0.05。 在计算T(N)的公式中,τ的取值对实验结果有一定的影响,经过综合比较,当τ=6时,网络能耗最低、网络数据发送量达到最大、首个节点和全部节点死完时间最长。因此选取τ=6,分别对LEACH和NEW两种算法发送数据量、能量消耗、存活节点数进行比较,仿真结果如表1所示。 表1 LEACH与改进LEACH(NEW)数据对比表 通过仿真,在开始阶段LEACH和改进后LEACH协议能量消耗、节点存活和数发送量相差较小,但是在中期过后,改进后的LEACH算法降低了网络能耗,增长了网络存活时间,增多了发送的总数据量。 基于LEACH协议进行修改,加入了簇头数最优算法,解决了LEACH算法中随机选择簇头数问题,使能量耗费更加均衡。并在簇头选取算法中加入了能量因子和节点度因子,使剩余能量和节点度较大的节点优先成为簇头,并使簇头分布更加均匀。经过对LEACH算法的改进,使各类传感器节点能量消耗更加均衡,延长了网络的存活时间。1.2 最优簇头数计算
1.3 簇头选择算法