本发明涉及无线传感器网络技术领域,尤其涉及一种基于改进麻雀搜索算法的无线传感器网络分簇路由方法。
背景技术:
无线传感器网络(wsn)是信息科学领域中一个全新的发展方向,同时也是新兴学科和传统学科进行领域间交叉的结果。无线传感器网络被广泛用于战场监视,大规模环境监测和大区域内的目标追踪等领域。因为无线传感器网络节点一般采用电池供电,工作环境通常比较恶劣,而且数量大,更换非常困难,所以低功耗是无线传感器网络最重要的设计准则之一。因此,为减少数据的传送量,降低节点能耗,分簇方法被广泛用于网络路由协议中。
leach协议通过节点轮流当选簇头来均衡网络整体能耗,但由于簇头选择具有随机性,会出现簇头能量过低的情况,leach-c协议在leach协议上确提出了最优簇头数,在簇头选举的过程中考虑了节点位置及能量,但是leach-c协议并没有考虑到簇内节点通信情况。heed算法是leach算法的一种改进算法,其虽然把节点的剩余能量作为选择节点的因素,但路由阶段所需开销较大。pso是一种基于种群的群智能优化算法,pso-c算法考虑节点间簇内通信距离和所有簇首剩余能量,利用pso算法选出最佳簇首集合,但收敛性不高。近年来国内外学者采用了不同的群智能优化算法来优化无线传感器网络的分簇路由协议,利用萤火虫算法优化分簇,利用蚁群算法优化分簇,利用人工蜂群算法优化分簇等等,但这些算法仍存在收敛特性不高、比较复杂和精度不高等问题。
技术实现要素:
为了解决上述问题,本发明提供了一种基于改进麻雀搜索算法的无线传感器网络分簇路由方法,该方法包括:簇头节点的选择、非簇头节点入簇、建立簇头中继和数据传输过程,包括以下步骤:
s1、无线传感器网络初始化:若干个传感器节点随机部署在监测区域,所有传感器节点初始能量相同且能量有限,基站能量不受限,传感器节点和基站都保持静止;
s2、基站收集网络中所有传感器节点的位置信息;
s3、基站更新网络中所有传感器节点的剩余能量和节点密度信息;
s4、基于步骤s2和步骤s3中所述传感器节点的位置、剩余能量和节点密度信息,利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点;
s5、步骤s4中各簇头节点分别进行广播,每个非簇头节点选择距离该节点最近的簇头节点加入簇,直至所有非簇头节点全部加入簇,此时,网络中存在若干个簇;其中,所述簇中包含一个簇头节点和若干个非簇头节点,每个簇的簇头节点和非簇头节点都不相同;
s6、基于三角形原则,建立各簇头节点的簇头中继;
s7、基于步骤s6中各簇头节点的簇头中继,执行数据传输,当网络中任一簇头节点的剩余能量小于预设的能量阈值,且至少一个传感器节点存活,则返回步骤s3,直至无线传感器网络中所有传感器节点均死亡。
进一步地,在步骤s4中,选择一个簇头集合的依据:簇头节点的节点密度、簇头节点的剩余能量、簇內通信成本、簇头节点与基站的距离,其中,所述簇头集合为利用改进的麻雀搜索算法选择出的若干个簇头节点构成的集合;
改进的麻雀搜索算法中,包括:
(1)建立目标优化函数:
①节点密度函数:
其中,f1表示所述簇头集合中,所有簇头节点的节点密度之和的倒数值,
②簇头节点的剩余能量函数:
其中,f2表示所述簇头集合中,所有簇头节点的剩余能量之和的倒数值,e(chj)为第j个簇头节点的剩余能量;
③簇内通信成本函数:
其中,f3表示所述簇头集合中,所有簇头节点的平均通信距离之和,chj表示第j个簇头节点,j∈[1,2,...,m],m表示簇头节点的总数,nj为簇头节点chj的邻居节点的数目,d(k,chj)为任一邻居节点k与簇头节点chj的距离,若某一传感器节点位于簇头节点chj所在簇内,则该传感器节点就称为该簇头节点chj的邻居节点;
④簇头节点与基站的距离函数:
其中,f4表示所述簇头集合中,所有簇头节点与基站的距离平均值,bs表示基站,d(chj,bs)表示第j个簇头节点与基站的距离;
(2)建立适应度函数:
fitness=ρf1 ηf2 εf3 ψf4
其中,ρ、η、ε和ψ分别为f1、f2、f3和f4的权值,且ρ η ε ψ=1,簇头节点选取即是使适应度函数fitness达到最小值时对应的若干个传感器节点;
(3)改进发现者位置更新公式:
其中,
(4)改进跟随者位置更新公式:
其中,
(5)改进侦察预警公式:
其中,
进一步地,利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点,具体步骤为:
s10、初始化麻雀种群、麻雀位置和迭代次数,初始种群中,第i只麻雀表示为xi={ai1,ai2,...,aim},其中,i∈[1,n],n表示麻雀的总数,即为簇头节点选择方案的总数,每一只麻雀代表一种簇头节点选择方案,aij为一个向量,表示第i种簇头节点选择方案中第j个簇头节点包含的信息,m表示簇头节点的总数;
s11、计算种群中每只麻雀的适应度值,并更新最优个体位置;
s12、判断是否达到最大迭代次数,若是,输出最优解,即得到一种最优的簇头节点选择方案;若否,执行步骤s13;
s13、更新发现者的位置;
s14、更新跟随者的位置;
s15、随机选择警戒者并更新位置,返回步骤s11。
进一步地,步骤s10中,所述信息为簇头节点的节点密度、簇头节点的剩余能量、簇內通信成本、簇头节点与基站的距离;
进一步地,步骤s6中,建立某一簇头节点a的簇头中继即为在剩余的簇头节点中选择某一簇头节点b作为簇头中继;具体方法为:
假设步骤s4中利用改进的麻雀搜索算法选取的簇头节点构成的集合为x1,对于x1中某一簇头节点a,x1中除a之外的剩余节点构成的集合为x2,找出x2中与簇头节点a及基站构成钝角三角形的所有簇头节点,这些簇头节点构成的集合为x3,剔除x3中的若干个簇头节点,具体的剔除原则为:
若某一簇头节点b与簇头节点a及基站构成的钝角三角形中,该簇头节点b对应的角为钝角,则该簇头节点b保留,否则,该簇头节点从x3中剔除;
剔除若干个簇头节点后,剩余的簇头节点构成集合x4,分别计算簇头节点a与x4中任一簇头节点r的距离,及该任一簇头节点r与基站的距离,将上述两个距离分别取平方后求和,获得该距离平方和为
在fa中选择最小值所对应的簇头节点作为簇头节点a的簇头中继。
本发明提供的技术方案带来的有益效果是:对麻雀搜索算法进行了改进,改进的麻雀搜索算法具有好的收敛性,精度较高,不易陷入局部最优,将其用于无线传感器网络分簇中,选举的簇头合理,不易出现节点快速死亡的现象,提高了网络整体寿命。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例中基于改进麻雀搜索算法的无线传感器网络分簇路由方法的流程图;
图2是本发明实施例中基于改进麻雀搜索算法的簇头选举算法的流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
本发明的实施例提供了一种基于改进麻雀搜索算法的无线传感器网络分簇路由方法。
请参考图1,图1是本发明实施例中基于改进麻雀搜索算法的无线传感器网络分簇路由方法的流程图,该方法包括簇头节点的选择、非簇头节点入簇、建立簇头中继和数据传输过程,包括以下步骤:
s1、无线传感器网络初始化:若干个传感器节点随机部署在监测区域,所有传感器节点初始能量相同且能量有限,基站能量不受限,传感器节点和基站都保持静止;
所有节点均按照无线通信能量消耗模型来更新自身的剩余能量,所述无线通信能量消耗模型具体为:
发射器发送kbit数据到距离d的接收器所消耗的能量为:
接收器接受kbit数据所消耗的能量为:
erx(k)=keelec
其中,eelec为无线电模型接受或发送单位比特数据的耗散能量,d0为阈值距离,εfs为自由空间信道模型的信号放大功率,εamp为多路信道衰减模型的信号放大功率,发射器根据发送距离d选择不同的放大模型;
s2、基站收集网络中所有传感器节点的位置信息;
s3、基站更新网络中所有传感器节点的剩余能量和节点密度信息;
s4、基于步骤s2和步骤s3中所述传感器节点的位置、剩余能量和节点密度信息,利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点;
选择一个簇头集合的依据:簇头节点的节点密度、簇头节点的剩余能量、簇內通信成本、簇头节点与基站的距离,其中,所述簇头集合为利用改进的麻雀搜索算法选择出的若干个簇头节点构成的集合;
改进的麻雀搜索算法中,包括:
(1)建立目标优化函数:
①节点密度函数:
其中,f1表示所述簇头集合中,所有簇头节点的节点密度之和的倒数值
传感器节点密度越大,即该传感器节点周围的节点越多,在数据传输过程中,耗能就越小,因此,尽可能选择节点密度较大的节点作为簇头节点;
②簇头节点的剩余能量函数:
其中,f2表示所述簇头集合中,所有簇头节点的剩余能量之和的倒数值,e(chj)为第j个簇头节点的剩余能量;
簇头在通信过程中,消耗能量多,应该尽可能选择剩余能量较高的节点作为簇头节点;
③簇内通信成本函数:
其中,f3表示所述簇头集合中,所有簇头节点的平均通信距离之和,chj表示第j个簇头节点,j∈[1,2,...,m],m表示簇头节点的总数,nj为簇头节点chj的邻居节点的数目,d(k,chj)为任一邻居节点k与簇头节点chj的距离,若某一传感器节点位于簇头节点chj所在簇内,则该传感器节点就称为该簇头节点chj的邻居节点;
为了降低簇内通信成本,应该尽可能选择平均通信距离较小的节点作为簇头节点;
④簇头节点与基站的距离函数:
其中,f4表示所述簇头集合中,所有簇头节点与基站的距离平均值,bs表示基站,d(chj,bs)表示第j个簇头节点与基站的距离;
由于簇头需大量将来自簇内普通节点的信息转发给基站,为了降低簇间通信成本,应该尽可能选择离基站距离近的节点作为簇头节点;
(2)建立适应度函数:
fitness=ρf1 ηf2 εf3 ψf4
其中,ρ、η、ε和ψ分别为f1、f2、f3和f4的权值,且ρ η ε ψ=1,簇头节点选取即是使适应度函数fitness达到最小值时对应的若干个传感器节点;
(3)改进发现者位置更新公式:
其中,
(4)改进跟随者位置更新公式:
其中,
(5)改进侦察预警公式:
其中,
s5、步骤s4中各簇头节点分别进行广播,每个非簇头节点选择距离该节点最近的簇头节点加入簇,直至所有非簇头节点全部加入簇,此时,网络中存在若干个簇;其中,所述簇中包含一个簇头节点和若干个非簇头节点,每个簇的簇头节点和非簇头节点都不相同;
s6、基于三角形原则,建立各簇头节点的簇头中继;
建立某一簇头节点a的簇头中继即为在剩余的簇头节点中选择某一簇头节点b作为簇头中继;具体方法为:
假设步骤s4中利用改进的麻雀搜索算法选取的簇头节点构成的集合为x1,对于x1中某一簇头节点a,x1中除a之外的剩余节点构成的集合为x2,找出x2中与簇头节点a及基站构成钝角三角形的所有簇头节点,这些簇头节点构成的集合为x3,剔除x3中的若干个簇头节点,具体的剔除原则为:
若某一簇头节点b与簇头节点a及基站构成的钝角三角形中,该簇头节点b对应的角为钝角,则该簇头节点b保留,否则,该簇头节点从x3中剔除;
剔除若干个簇头节点后,剩余的簇头节点构成集合x4,分别计算簇头节点a与x4中任一簇头节点r的距离,及该任一簇头节点r与基站的距离,将上述两个距离分别取平方后求和,获得该距离平方和为fra,r∈[1,r],r表示x4中簇头节点的总数,
在fa中选择最小值所对应的簇头节点作为簇头节点a的簇头中继;
例如:利用三角形原则选择中继簇头节点,如果一个簇头节点a与另一个簇头节点b及基站三点构成一个钝角三角型,且簇头节点b对应的角为钝角,则簇头节点a,b之间距离和簇头节点b到基站距离为钝角三角形的两短边,簇头节点a到基站距离为钝角三角形的长边,钝角三角形中两短边平方和小于长边平方,则簇头节点b作为簇头节点a的簇头中继的候选节点;
由于区域内大部分簇头节点传输信息时,发送kbit数据到距离d的基站所消耗的能量为etx(k,d)=keelec kεfsd2,其中,eelec为无线电模型接受或发送单位比特数据的耗散能量,d为传输距离,εfs为自由空间信道模型的信号放大功率,簇头节点消耗的能量与距离平方正相关,因此,利用钝角三角形两短边平方和小于第三边平方的原则来建立簇头中继可以减少簇头节点传输能量消耗。
s7、基于步骤s6中各簇头节点的簇头中继,执行数据传输,当网络中任一簇头节点的剩余能量小于预设的能量阈值,且至少一个传感器节点存活(传感器节点的剩余能量大于0),则返回步骤s3,直至无线传感器网络中所有传感器节点均死亡(传感器节点的剩余能量为0)。
请参考图2,图2是本发明实施例中基于改进麻雀搜索算法的簇头选举算法的流程图;麻雀搜索算法是根据麻雀觅食并逃避捕食者的行为而提出的群智能优化算法,麻雀搜索算法主要模拟了麻雀群觅食的过程,算法过程也是发现者-跟随者模型的一种,同时还叠加了侦查预警机制。相比于传统群智能优化算法具有更好的收敛特性,算法简单,精度较高,但其容易陷入局部最优且全局搜索能力较弱。
针对麻雀搜索算法容易陷入局部最优且全局搜索能力较弱的弱点,对其进行了去除向原点收敛的操作,减少向最优位置的跳跃,换成向最优位置的移动的改进。具体实现方式为对算法中的发现者位置更新公式、跟随者位置更新公式以及侦查警戒公式进行改进,避免陷入局部最优且全局搜索能力增强的效果;
原始的麻雀搜索算法中,种群每一代发现者的位置更新公式如下:
其中,t表示迭代次数,t∈[1,itermax],itermax表示最大迭代次数,
可以看出,当r2大于st时,该发现者将按正态分布随机移动到当前位置附近(其值收敛于最优位置),当r2小于st时,麻雀的每一维都在变小,因此,在r2小于st时,改进的发现者更新位置的策略为乘以一个均值为1,方差为1的正态分布随机数(1 q)。
原始的麻雀搜索算法中,种群每一代跟随者位置更新公式如下:
其中,
可以看出,当i>n/2时,跟随者的位置为一个标准正态分布随机数与一个以自然对数为底数的指数函数的积,当种群收敛时,其取值符合标准正态分布随机数(其值会收敛于0);
当i≤n/2时,跟随者的位置为当前最优的麻雀的位置加上该麻雀与最优位置每一维距离随机加减后,将总和均分到每一维上;
在对跟随者位置更新公式进行改进之后,每只麻雀均会在全维度上向所跟随的发现者随机靠近。
在麻雀觅食的同时他们中的部分会负责警戒,当危险靠近时,他们会放弃当前的食物,即无论该麻雀是发现者还是跟随者,都将放弃当前的食物而移动到一个新的位置。
每代种群中,将随机选择一部分个体进行预警行为。
其位置更新公式如下:
可以看出,如果该预警的麻雀处于当前的最优位置时,它会逃离到自身附近的一个位置,具体有多近取决于自身距离最差位置与自身位置食物与最差食物的差别的比值;如果该麻雀不是处于最优位置的那一只,它将逃到当前最优位置附近(其值收敛于最优位置)。
在对侦察预警公式进行改进之后,如果该麻雀是最优位置的麻雀,则它会逃到最优位置和最差位置之间的随机位置,否则,它会逃到自己和最优位置之间的随机位置。
利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点,具体步骤为:
s10、初始化麻雀种群、麻雀位置和迭代次数,初始种群中,第i只麻雀表示为xi={ai1,ai2,...,aim},其中,i∈[1,n],n表示麻雀的总数,即为簇头节点选择方案的总数,每一只麻雀代表一种簇头节点选择方案,aij为一个向量,表示第i种簇头节点选择方案中第j个簇头节点包含的位置、剩余能量、与基站的距离和节点密度信息,m表示簇头节点的总数;
s11、计算种群中每只麻雀的适应度值,并更新最优个体位置;
s12、判断是否达到最大迭代次数,若是,输出最优解,即得到一种最优的簇头节点选择方案;若否,执行步骤s13;
s13、更新发现者的位置;
s14、更新跟随者的位置;
s15、随机选择警戒者并更新位置,返回步骤s11。
为更好的理解上述过程,本发明中进行举例说明:
假如网络中包含20个传感器节点(节点编号分别为1-20),每个节点均包含其坐标位置、剩余能量、与基站的距离(坐标欧式距离)以及节点密度;
假设麻雀搜索算法中,初始种群中包含3只麻雀,在上述20个传感器节点中,选择5个传感器节点作为簇头节点;
第1只麻雀选择节点1,2,3,4,5作为簇头节点,则x1={a11,a12,a13,a14,a15},x2={a21,a22,a23,a24,a25},其中,a11表示节点1包含的位置、剩余能量、与基站的距离以及当节点密度信息,a12表示节点2包含的位置、剩余能量、与基站的距离以及节点密度信息,a13表示节点3包含的位置、剩余能量、与基站的距离以及节点密度信息,a14表示节点4包含的位置、剩余能量、与基站的距离以及节点密度信息,a15表示节点5包含的位置、剩余能量、与基站的距离以及节点密度信息,;
第2只麻雀选择节点1,2,4,5,6作为簇头节点,则x2={a21,a22,a23,a24,a25},其中,a21表示节点1包含的位置、剩余能量、与基站的距离以及节点密度信息,a22表示节点2包含的位置、剩余能量、与基站的距离以及节点密度信息,a23表示节点4包含的位置、剩余能量、与基站的距离以及节点密度信息,a24表示节点5包含的位置、剩余能量、与基站的距离以及节点密度信息,a25表示节点6包含的位置、剩余能量、与基站的距离以及节点密度信息;
这里,以第1只麻雀为例,来进行各目标函数的计算:
对于目标函数f1,节点1,2,3,4,5作为簇头节点,其余节点根据距离最短原则加入簇,假如节点6,7,8均加入a11,节点9,10,11均加入a12,节点12,13,14均加入a13,节点15,16,17均加入a14,节点18,19,20均加入a15;此时,先分别计算出簇头节点1,2,3,4,5的节点密度,并将所有节点密度求和后取倒数值,即为目标函数f1的值;
对于目标函数f2,将节点1,2,3,4,5的剩余能量求和后取倒数值,即为目标函数f2的值;
对于目标函数f3,先分别计算出节点6-20到各自所述簇内的簇头节点的距离,并将所有距离求和后取平均值,即为目标函数f3的值;
对于目标函数f4,分别计算出节点1,2,3,4,5到基站的距离,并将所有距离求和后取平均值,即为目标函数f4的值;
计算第1只麻雀的适应度函数值:fitness=ρf1 ηf2 εf3 ψ;
计算每只麻雀适应度值后,选取适应度值最小的那只麻雀为最优解,此时,簇头节点选取完成,剩余节点根据距离最短原则分别加入簇,然后进行数据传输。
为验证本发明所提方案的有效性,用如下所示的函数进行试验,来验证改进后的麻雀搜索算法是否会陷入局部最优,所述函数为:
f(x1,x2)=(x1-a)2 (x2-b)2
预设参数如下:
实验结果表明:原算法中,在迭代过程中,麻雀们会在原点和最优解之间不停徘徊,最后大约在迭代次数40次时选择聚集到了最优位置附近,平均值为0.0013。
改进的麻雀搜索算法中,在迭代次数为20次时收敛于最优值,平均值为0.0012。
由此可知,改进之后的算法较原算法避免了陷入局部最优,全局搜索能力提高。
本发明的有益效果是:对麻雀搜索算法进行了改进,改进的麻雀搜索算法具有好的收敛性,精度较高,不易陷入局部最优,将其用于无线传感器网络分簇中,选举的簇头合理,不易出现节点快速死亡的现象,提高了网络整体寿命。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.基于改进麻雀搜索算法的无线传感器网络分簇路由方法,该无线传感器网络分簇路由方法包括:簇头节点的选择、非簇头节点入簇、建立簇头中继和数据传输过程,其特征在于:该无线传感器网络分簇路由方法具体包括以下步骤:
s1、无线传感器网络初始化:若干个传感器节点随机部署在监测区域,所有传感器节点初始能量相同且能量有限,基站能量不受限,传感器节点和基站都保持静止;
s2、基站收集网络中所有传感器节点的位置信息;
s3、基站更新网络中所有传感器节点的剩余能量和节点密度信息;
s4、基于步骤s2和步骤s3中所述传感器节点的位置、剩余能量和节点密度信息,利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点;
s5、步骤s4中各簇头节点分别进行广播,每个非簇头节点选择距离该节点最近的簇头节点加入簇,直至所有非簇头节点全部加入簇,此时,网络中存在若干个簇;其中,所述簇中包含一个簇头节点和若干个非簇头节点,每个簇的簇头节点和非簇头节点都不相同;
s6、基于三角形原则,建立各簇头节点的簇头中继;
s7、基于步骤s6中各簇头节点的簇头中继,执行数据传输,当网络中任一簇头节点的剩余能量小于预设的能量阈值,且至少一个传感器节点存活,则返回步骤s3,直至无线传感器网络中所有传感器节点均死亡。
2.如权利要求1所述的基于改进麻雀搜索算法的无线传感器网络分簇路由方法,其特征在于:在步骤s4中,选择一个簇头集合的依据:簇头节点的节点密度、簇头节点的剩余能量、簇內通信成本、簇头节点与基站的距离,其中,所述簇头集合为利用改进的麻雀搜索算法选择出的若干个簇头节点构成的集合;
改进的麻雀搜索算法中,包括:
(1)建立目标优化函数:
①簇头节点的节点密度函数:
其中,f1表示所述簇头集合中,所有簇头节点的节点密度之和的倒数值,
②簇头节点的剩余能量函数:
其中,f2表示所述簇头集合中,所有簇头节点的剩余能量之和的倒数值,e(chj)为第j个簇头节点的剩余能量;
③簇内通信成本函数:
其中,f3表示所述簇头集合中,所有簇头节点的平均通信距离之和,chj表示第j个簇头节点,j∈[1,2,...,m],m表示簇头节点的总数,nj为簇头节点chj的邻居节点的数目,d(k,chj)为任一邻居节点k与簇头节点chj的距离,若某一传感器节点位于簇头节点chj所在簇内,则该传感器节点就称为该簇头节点chj的邻居节点;
④簇头节点与基站的距离函数:
其中,f4表示所述簇头集合中,所有簇头节点与基站的距离平均值,bs表示基站,d(chj,bs)表示第j个簇头节点与基站的距离;
(2)建立适应度函数:
fitness=ρf1 ηf2 εf3 ψf4
其中,ρ、η、ε和ψ分别为f1、f2、f3和f4的权值,且ρ η ε ψ=1,簇头节点选取即是使适应度函数fitness达到最小值时对应的若干个传感器节点;
(3)改进发现者位置更新公式:
其中,
(4)改进跟随者位置更新公式:
其中,
(5)改进侦察预警公式:
其中,
3.如权利要求2所述的基于改进麻雀搜索算法的无线传感器网络分簇路由方法,其特征在于:
利用改进的麻雀搜索算法来选择若干个传感器节点分别作为簇头节点,具体步骤为:
s10、初始化麻雀种群、麻雀位置和迭代次数,初始种群中,第i只麻雀表示为xi={ai1,ai2,...,aim},其中,i∈[1,n],n表示麻雀的总数,即为簇头节点选择方案的总数,每一只麻雀代表一种簇头节点选择方案,aij为一个向量,表示第i种簇头节点选择方案中第j个簇头节点包含的信息,m表示簇头节点的总数;
s11、计算种群中每只麻雀的适应度值,并更新最优个体位置;
s12、判断是否达到最大迭代次数,若是,输出最优解,即得到一种最优的簇头节点选择方案;若否,执行步骤s13;
s13、更新发现者的位置;
s14、更新跟随者的位置;
s15、随机选择警戒者并更新位置,返回步骤s11。
4.如权利要求3所述的基于改进麻雀搜索算法的无线传感器网络分簇路由方法,其特征在于:步骤s10中,所述信息为簇头节点的节点密度、簇头节点的剩余能量、簇內通信成本、簇头节点与基站的距离。
5.如权利要求1所述的基于改进麻雀搜索算法的无线传感器网络分簇路由方法,其特征在于:步骤s6中,建立某一簇头节点a的簇头中继,即为在剩余的簇头节点中选择某一簇头节点b作为簇头中继;具体方法为:
假设步骤s4中利用改进的麻雀搜索算法选取的簇头节点构成的集合为x1,对于x1中某一簇头节点a,x1中除a之外的剩余节点构成的集合为x2,找出x2中与簇头节点a及基站构成钝角三角形的所有簇头节点,这些簇头节点构成的集合为x3,剔除x3中的若干个簇头节点,具体的剔除原则为:
若某一簇头节点b与簇头节点a及基站构成的钝角三角形中,该簇头节点b对应的角为钝角,则该簇头节点b保留,否则,该簇头节点从x3中剔除;
剔除若干个簇头节点后,剩余的簇头节点构成集合x4,分别计算簇头节点a与x4中任一簇头节点r的距离,及该任一簇头节点r与基站的距离,将上述两个距离分别取平方后求和,获得该距离平方和为
在fa中选择最小值所对应的簇头节点作为簇头节点a的簇头中继。
技术总结