首页> 中国专利> 一种基于改进鲸鱼群算法的无线传感器网络路由方法

一种基于改进鲸鱼群算法的无线传感器网络路由方法

摘要

本发明公开了一种基于改进鲸鱼群算法的无线传感器网络路由方法,包括对网络中的传感器节点分别进行编码;汇聚节点收集每个传感器的信息,构成全局信息;根据全局信息进行路由计算,获得每个传感器的最优转发路径;传感器根据路由表中的最优转发路径,将包含有信息的数据包发送给汇聚节点;汇聚节点接收数据包,获取节点的剩余能量信息,并对全局信息进行更新。本发明技术方案的方法,通过对WSA进行改进,利用其多峰优化的优异性能,解决了无线传感器网络路由问题。通过对鲸鱼群算法的编码策略和目标函数模型进行相应的改进,既考虑了路径的传播能耗也考虑了路径的长度,有效地提高了能效并延长整个无线传感器网络寿命。

著录项

  • 公开/公告号CN107846719A

    专利类型发明专利

  • 公开/公告日2018-03-27

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201711353411.9

  • 申请日2017-12-15

  • 分类号H04W40/10(20090101);H04W84/18(20090101);

  • 代理机构42224 武汉东喻专利代理事务所(普通合伙);

  • 代理人李佑宏

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-06-19 04:52:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-30

    授权

    授权

  • 2018-04-20

    实质审查的生效 IPC(主分类):H04W40/10 申请日:20171215

    实质审查的生效

  • 2018-03-27

    公开

    公开

说明书

技术领域

本发明属于无线传感器网络拓扑控制领域,具体涉及一种基于改进鲸鱼群算法的无线传感器网络路由方法。

背景技术

计算机系统、传感器技术、无线通信技术以及分布式信息处理等技术的飞速发展推动了连通人类与现实物理世界的无线传感器网络技术的迅速发展。无线传感器网络是下一代网络中的关键技术之一,也是21世纪最重要的新兴技术之一,已经广泛运用于军事领域以及经济和生活领域,以实现物理世界与人类社会的互连。

在无线传感器网络的应用场景中,通常有少则几十,多则成千上百个传感器节点布置在感知区域,这些传感器节点具有体积小、能量有限、计算能力有限等特点,通常采用电池供电,传感器节点在有些场景中不可更换电池,因此,能量的高效利用对延长整个网络的生命周期至关重要。其中无线传感器网络路由算法是提高无线传感器网络能效,延长网络生命周期的关键技术之一。由于无线传感器网络有很强的应用相关性,不同应用采用的路由算法性能差别很大,至今没有一种通用的路由算法,通常只针对特定的应用场景选择特定的路由算法。目前,路由算法主要包括传统的路由算法和基于启发式方法的路由算法,传统的路由算法包括Flooding、SPIN、MTE、Directed Diffusion、LEACH等;基于启发式方法的路由算法包括EEABR、SDG、EBAB、QELAR、QoS-PSO等。并且随着物联网的不断发展,应用启发式方法设计路由算法实现智能路由是未来的趋势和研究热点。

如图1所示,无线传感器网络1由汇聚节点2、几十到几百个传感器节点3构成,各传感器节点3均由处理单元、数据采集单元、数据传输单元(接收和传送电路以及传送放大器)以及供电单元构成;各传感器节点监测所在环境信息,并处理成为相关数据包,各传感器节点和邻居节点之间能够直接通信,然后,以多跳传输方式将数据传送给汇聚节点2,汇聚节点2将传感器节点3监测处理得到的数据通过因特网或卫星4传送给客户端5进行处理;其中,邻居节点为在汇聚节点或传感器节点特定发送功率下能够接收到信息的传感器节点;汇聚节点具有较强的计算能力、存储能力和通信能力,并且具有不间断的电源供应。

鲸鱼群算法(Whale Swarm Algorithm,WSA)(详见参考文献:Bing Zeng,Liang Gao*,Xinyu Li.Whale Swarm Algorithm for Function Optimization,Intelligent Computing T heories and Application:13th International Conference,ICIC 2017,Liverpool,UK,August 7-10,2017,Proceedings,Part I,Springer International Publishing,Cham,2017,pp.624-639.)是一种元启发式算法。该算法模拟鲸鱼觅食过程,通过鲸鱼间的相互通信来寻找食物源。当鲸鱼发现了食物源,它会发出声音通知附近的其它鲸鱼关于食物质量的好坏和数量的多少的信息。因此,每条鲸鱼将收到大量来自附近鲸鱼的通知信息,然后根据这些信息移动到适当的地方寻找食物。WSA算法框架简单,容易实现,非常适合由于解决工程优化问题。

但是WSA算法需要针对不同的问题设置衰减系数η,并且不能在迭代过程中有效跳出局部最优解,因此,WSA在求解多峰优化问题时还存在比较大的局限性。针对多峰函数优化问题,现有技术进一步对WSA进行了改进,提出了带迭代计数器的鲸鱼群算法(WSA with Iterative Counter,WSA-IC)。WSA-IC有四大优点:1)不需要针对不同的问题设置衰减系数η,没有任何小生境参数;2)可以在迭代过程中有效识别并跳出已经找到的最优解,从而节省不必要的函数评价,提高全局搜索能力;3)算法特定的参数不需要针对不同问题手动设置;4)种群大小不需要与最优解的个数精确匹配。

WSA-IC是用于求解连续优化问题的,而无线传感器网络路由问题是一个离散优化问题,路径所包含的传感器节点个数不能确定,即设计变量的个数不能确定,各路径的长度不一定相同,因此,WSA-IC不能直接用于无线传感器网络路由问题的求解,需要对其改进。

为便于理解本发明,首先以下对本发明实施例中出现的有关术语进行统一说明和解释:

传感器节点:进行信息采集,并将采集的信息向汇聚节点发送的节点。

跳数:当前传感器节点发送数据包到汇聚节点需要经过的最少传感器节点数;

邻居:节点通信范围内的其他传感器节点为该传感器节点的邻居;

剩余能量:传感器节点的电量剩余值;

全局信息:包括普通传感器节点的邻居节点集合、传感器节点间的距离各传感器节点(包括普通传感器节点和簇头节点)的剩余能量以及传感器节点到汇聚节点的跳数;

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于改进鲸鱼群算法的无线传感器网络路由方法。本发明技术方案的方法,针对鲸鱼群算法在解决无线传感器网络能量优化路由时存在的问题,对鲸鱼群算法进行了改进,利用其多峰优化的优异性能解决无线传感器网络路由问题。本发明技术方案的方法还对鲸鱼群算法的编码策略和目标函数模型进行相应的改进,既考虑了路径的传播能耗也考虑了路径的长度,有效地提高了能效并延长整个无线传感器网络寿命。

为实现上述目的,按照本发明的一个方面,提供了一种基于改进鲸鱼群算法的无线传感器网络路由方法,其特征在于,包括

汇聚节点收集网络中每个传感器的邻居节点信息、跳数信息以及剩余能量信息,构成全局信息;

根据全局信息,对整个传感器网络进行路由计算,获得每个传感器的最优转发路径;

传感器对信息进行采集和/或处理,生成包含有自身剩余能量信息的数据包,根据最优转发路径将数据包发送给汇聚节点;

汇聚节点接收数据包,获取传感器节点的剩余能量信息,并对全局信息进行更新;

其中,所述路由计算优选通过鲸鱼群算法完成,其中包括下列步骤,

S1设置鲸鱼群算法参数,并对鲸鱼群算法中的每个鲸鱼个体进行初始化,获取初始鲸鱼种群;计算每个鲸鱼个体的适应度值;设置遍历序号i=1,进入步骤S2;

S2根据适应度值以及鲸鱼个体间的距离,确定当前鲸鱼是否存在引导个体;所述引导个体是所有优于当前鲸鱼的鲸鱼个体中,离当前鲸鱼最近的鲸鱼个体;若存在,进入步骤S3;否则进入步骤S5;

S3根据个体移动规则,以及当前鲸鱼的信息及其引导个体的信息,确定当前鲸鱼的预期下代鲸鱼,计算预期下代鲸鱼的适应度值并比较;若预期下代鲸鱼的适应度值小于当前鲸鱼的适应度值,则用预期下代鲸鱼鲸鱼替换当前鲸鱼,并将当前鲸鱼的迭代计数器设置为0,进入步骤S7;否则进入步骤S4;

S4比较当前鲸鱼的迭代计数器值与鲸鱼群稳定性阈值的大小;若当前鲸鱼的迭代计数器值小于鲸鱼群稳定性阈值,则将该迭代计数器值加1,进入步骤S7;否则重新初始化当前鲸鱼的位置,计算该鲸鱼的适应度值,进入步骤S7;

S5生成当前鲸鱼的副本,对该副本执行邻域搜索后,计算该副本的适应度值并比较;若该副本的适应度值小于当前鲸鱼的适应度值,则将当前鲸鱼替换为其副本,并将当前鲸鱼对应的鲸鱼迭代计数器值设置为0,进入步骤S7;否则进入步骤S6;

S6若当前鲸鱼的迭代计数器小于鲸鱼群稳定性阈值,则对该迭代计数器加1,进入步骤S7;否则比较当前鲸鱼的适应度值与全局最优解的适应度值的大小,若当前鲸鱼的适应度值小于全局最优解的适应度值,则更新全局最优解的适应度值为当前鲸鱼的适应度值,更新全局最优解,初始化当前鲸鱼的位置,并计算该鲸鱼的适应度值,进入步骤S7;若不小于则重新初始化当前鲸鱼的位置,并计算该鲸鱼的适应度值,进入步骤S7;

S7将i+1赋值给i;若i小于鲸鱼个体数量,进入步骤S2;若i不小于鲸鱼个体数量,判断其是否满足终止条件,若满足进入步骤S8;否则设置遍历序号i=1,进入步骤S2;

S8判断最后一代种群中是否有比全局最优解更好的鲸鱼个体,有则替代当前全局最优解,获取最终的全局最优解,即为最优路由方案。

详细来说,本发明技术方案的具体过程包括:

(Ⅰ)全局信息的传递和汇聚。首先,对网络中包括汇聚节点在内的各传感器节点分别进行编号,作为它们各自唯一的标识。然后,进行全局信息汇聚,汇聚节点在网络内向邻居节点广播路由消息,其中包括汇聚节点的跳数信息;普通传感器节点收到路由广播后,对自身跳数信息及邻居信息进行配置并进行延时,延时结束后普通传感器节点向其邻居节点广播路由消息,其中包括节点自身的跳数信息;普通传感器节点一段时间未收到广播路由消息后,向汇聚节点发送自身所有邻居节点信息、自身跳数信息和自身剩余能量信息;通过上述步骤,可以实现全局信息的传递和汇聚。

(Ⅱ)汇聚节点通过所述全局信息,对整个传感器网络进行路由的优化计算与配置,具体为:路由计算,得到每个传感器节点的最优转发路径,从而获得所有传感器节点到汇聚节点的最优路由方案;路由配置,汇聚节点使用上述最优路由方案向所有传感器节点发送其最优转发路径信息,所有传感器节点收到最优转发路径后将其保存在路由表中;

(Ⅲ)普通传感器节点监测采集和处理应用信息,将其处理成数据包,并将自身的剩余能量信息加入数据包中,然后根据路由表中保存的最优路由,向汇聚节点发送数据包;汇聚节点接收到数据包后,得到节点的剩余能量信息,并对全局信息进行更新。

其中,通过路由计算改进鲸鱼群算法具体过程为:

(01)设置鲸鱼群算法参数,其中包括稳定性阈值Ts和选择概率其中稳定性阈值的取值为源节点的跳数乘以所有节点邻居个数的最大值;

(02)初始化鲸鱼群算法的每个鲸鱼个体,得到初始鲸鱼种群:

Ω={Ω12,,Ωi,…,Ω|Ω|};

其中,|Ω|为鲸鱼个体数量,Ωi为第i个鲸鱼个体;

(03)计算每个鲸鱼个体的适应度值:

F={f(Ω1),f(Ω2),…,f(Ωi),…,f(Ω|Ω|)};

其中,f(Ωi)为第i个鲸鱼个体的适应度;

(04)设置遍历序号i=1;

(05)判断终止条件是否满足,若满足则转步骤(19),否则,转步骤(06);

(06)寻找离鲸鱼Ωi的“较优且最近”的鲸鱼Y,若Y存在,则转步骤(07),否则转步骤(12);“较优且最近”的鲸鱼即为当前鲸鱼的引导个体,是所有优于当前鲸鱼的鲸鱼个体中,离当前鲸鱼最近的鲸鱼个体;

(07)根据个体移动规则,通过鲸鱼Ωi和鲸鱼Y,计算鲸鱼Ωi的预期下代鲸鱼X';

(08)计算X'的适应度值f(X'),若f(X')小于f(Ωi),则转步骤(09),否则转步骤(10);

(09)将鲸鱼群中第i个鲸鱼Ωi替代为其预期下代鲸鱼X',将该鲸鱼迭代计数器Ωi.c设置为0,转步骤(18);

(10)若第i个鲸鱼的迭代计数器Ωi.c小于Ts,则对该迭代计数器Ωi.c加1,转步骤(18),否则转步骤(11);

(11)重新初始化第i个鲸鱼Ωi的位置,并计算该鲸鱼的适应度值f(Ωi),转步骤(18);

(12)生成第i个鲸鱼Ωi的副本X”;

(13)对鲸鱼副本X”执行邻域搜索,并计算邻域搜索后的该副本的适应度值f(X”),若f(X”)小于f(Ωi),则转步骤(14),否则转步骤(15);

(14)将鲸鱼群中第i个鲸鱼Ωi替代为鲸鱼副本X”,并将该鲸鱼迭代计数器Ωi.c设置为0,转步骤(18);

(15)若第i个鲸鱼的迭代计数器Ωi.c小于Ts,则对该迭代计数器Ωi.c加1,转步骤(18),否则转步骤(16);

(16)若第i个鲸鱼的适应度值f(Ωi)小于全局最优解的适应度值fgbest,则将fgbest设置为f(Ωi),将全局最优解GBest设置为Ωi

(17)重新初始化第i个鲸鱼Ωi的位置,并计算该鲸鱼的适应度值f(Ωi);

(18)将i+1赋值给i,若i小于鲸鱼个体数量|Ω|,则转步骤(05),否则转步骤(04);

(19)判断最后一代种群中是否有比GBest更好的鲸鱼个体,有则替代GBest,GBest为当前最优解,即最优路由方案。

上述优化过程中的适应度函数,优选进行如下设计:

针对一条包含l个节点的路径X=(s,x2,x3,…,xi,…,d),源节点s发送的数据包大小为k-bits,优选建立如下目标函数模型:

式中,Emin表示路径X中剩余能量最少的节点的剩余能量;Eaver表示路径X中各节点的剩余能量平均值;E(X)表示路径X传送该数据包,各节点(除去根节点)的能耗总和,其计算公式优选如下:

式中,表示节点xi向节点xi+1发送k比特数据所消耗的能量,为节点xi到节点xi+1的距离,ERx(k)为节点接收k比特数据所消耗的能量。由于感知能耗和数据处理能耗相对于射频通信能耗小得多,所以,本发明方法建立能耗模型时仅考虑节点的无线通信模块的通信能耗。该模型根据发送节点到接收节点之间的传输距离,决定功率放大损耗采用自由空间模型还是多路径衰减模型,如果传输距离小于阈值d0,功率放大损耗采用自由空间模型,否则,功率放大损耗采用多路径衰减模型。节点发送k比特数据到距离该节点d米的节点,从而可以获得一个优选的能量消耗公式为:

节点接收k比特数据的能耗为:

ERx(k)=Eelec*k;

式中,Eelec表示发送电路或接收电路的单元能耗;εfs表示采用自由空间模型时,发送放大电路的单元能耗;εmp表示采用多路径衰减模型时,发送放大电路的单元能耗。

作为本发明技术方案的一个优选,初始化包括,

S11将源节点设置为鲸鱼个体的第一个节点,源节点为当前节点;

S12判断当前节点是否为根节点;若是则进入步骤S17,否则进入步骤S13;

S13设置迭代序号k=0;

S14生成一个不小于0的随机数;

S15若该随机数大于0,则设置k为k+1,所述随机数设置为该随机数减去当前节点的第k个邻居节点的选择概率,进入步骤S15;否则进入步骤S16;

S16将下一跳节点编号设置为当前节点的第k个邻居节点的编号,当前节点设置为该下一跳节点,进入步骤S12;

S17完成鲸鱼个体的初始化。

作为本发明技术方案的一个优选,选择概率的计算公式优选如下:

如果并且则

否则,

P(xi,xj)=0;

其中,xi为当前节点,分别为节点xj、xk的跳数;为节点xi通信范围内的节点集合,为集合的容量;Q为正在初始化的路径;MaxHop为集合中跳数最大的节点的跳数,MinHop为集合中跳数最小的节点的跳数。

作为本发明技术方案的一个优选,鲸鱼Ωv为步骤S3中鲸鱼Ωu的引导个体,鲸鱼的Ωu的预期下代鲸鱼的具体计算过程包括

S31生成一个空集合X',将源节点加入到X'中,即X'的第一个节点为源节点;设置序号i”=1;

S32若X'i”不为根节点,进入步骤S33;否则进入步骤S313;

S33生成一个空集合R;在节点X'i的邻居节点集合X'i”.Rge中,找到所有不在集合X'中的节点加入到集合R中;若集合R为空集合,则清空集合X',将源节点加入到X',重设序号i”=1,进入步骤S33;否则进入步骤S34;

S34设置k=i”+1;若k小于或等于鲸鱼Ωu个体长度|Ωu|,且k小于或者等于鲸鱼Ωv个体长度|Ωv|,则进入步骤S35,否则进入步骤S37;

S35若鲸鱼Ωv的第k个节点(Ωv)k不在集合X'中,且X'i与(Ωv)k的距离小于节点通信最大距离,进入步骤S36;否则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S36若鲸鱼Ωv的第k个节点(Ωv)k等于鲸鱼Ωu的第k个节点(Ωu)k,则将(Ωv)k加入集合X'中,进入步骤S312;否则生成一个0到1的随机数,若该随机数小于鲸鱼群算法的选择概率,则将(Ωv)k加入集合X'中,进入步骤S312;若该随机数不小于选择概率,则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S37若k大于鲸鱼Ωu个体长度|Ωu|,且k小于或者等于鲸鱼Ωv个体长度|Ωv|,则进入步骤S38,否则进入步骤S310;

S38若鲸鱼Ωv的第k个节点(Ωv)k不在集合X'中,且X'i与(Ωv)k的距离小于节点通信最大距离,则进入步骤S39,否则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S39生成一个0到1的随机数;若该随机数小于则将(Ωv)k加入集合X'中,进入步骤S312,否则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S310若k小于或者等于鲸鱼Ωu个体长度|Ωu|,且k大于鲸鱼Ωv个体长度|Ωv|,则转步骤S311,否则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S311若鲸鱼Ωu的第k个节点(Ωu)k不在集合X'中,且X'i与(Ωu)k的距离小于节点通信最大距离,则将(Ωu)k加入集合X'中,进入步骤S312,否则从集合R中随机选择一个节点加入集合X'中,进入步骤S312;

S312将i”+1赋值给i”,进入步骤S32;

S313鲸鱼个体移动完成,X'为鲸鱼的Ωu的预期下代鲸鱼。

作为本发明技术方案的一个优选,邻域搜索包括,

S41从当前种群中选取适应度值最好的鲸鱼个体Ωb

S42生成一个2到|Ωb|-1的随机数rand,其中|Ωb|为鲸鱼个体Ωb所代表路径的长度;

S43将既在节点xrand的上一跳节点的通信范围内,也在其下一跳节点的通信范围内的节点,加入到新生成的集合L中;

S44在集合L中随机选择一个节点代替xrand,即为邻域搜索后获得的鲸鱼。

作为本发明技术方案的一个优选,优选通过编辑距离算法实现当前鲸鱼引导个体的鲸鱼的寻找。

寻找Ωi的“较优且最近”的鲸鱼Y(即Ωi的引导个体),需要计算鲸鱼个体间的距离,本发明采用编辑距离算法,具体如下:

编辑距离算法是用来计算一个字符串转成另一个字符串所需的最少编辑操作次数,该操作次数即为两个字符串之间的编辑距离。允许的编辑操作包括三种:1)将一个字符替换成另一个字符;2)插入一个字符;3)删除一个字符。

若editDist(i,j)表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离,则如下动态规划公式成立:

1)如果i等于0,且j等于0,则editDist(i,j)=0;

2)如果i等于0,且j大于0,则editDist(i,j)=j;

3)如果i大于0,且j等于0,则editDist(i,j)=i;

4)如果i大于或等于1,且j大于或等于1,editDist(i,j)=min{editDist(i–1,j)+1,editDist(i,j–1)+1,editDist(i–1,j–1)+cost(i,j)},当第一个字符串的第i个字符不等于第二个字符串的第j个字符时,cost(i,j)=1;否则,cost(i,j)=0。

作为本发明技术方案的一个优选,优选采用离散个体编码方式对传感器节点进行编码。

鲸鱼群的鲸鱼个体编码设计,采用离散的个体编码方式,即一条鲸鱼个体表示一条路径,X=(s,x2,x3,…,xi,…,d),式中,X表示一个鲸鱼个体,即一个解,也即一条路径;s表示源节点,x2表示路径中的第二个节点,xi表示路径中的第i个节点,d表示根节点。

作为本发明技术方案的一个优选,汇聚节点通过数据包对全局信息进行实时更新,并对传感器网络进行周期性的路由计算和配置。

具体来说,前述步骤(Ⅱ)中的全局信息通过所述数据包进行实时性的更新,从而可实现传感器网络路由的周期更新,即以若干时间为周期,重新进行步骤(Ⅱ)。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

1)本发明技术方案的方法,采用离散化编码方式对鲸鱼个体进行编码以解决WSA-IC算法是求解连续优化问题的元启发式算法,不能直接用来求解离散化问题。针对离散优化问题的离散编码方式,将算法的迭代公式离散化,即针对需要求解的离散优化问题改进算法的迭代规则,使算法的种群可以迭代更新。

2)本发明技术方案的方法,设计了节点概率计算公式,采用轮盘选择的初始化方法,从而使得节点xi通信范围内的跳数更小的节点被选择作为下一跳节点的概率更大,生成较好的初始解。这种轮盘选择策略可以用来生成较好的初始个体,极大地减少了初始化时间,并提高了WSA-ICR算法的收敛速度,从而提高了算法的求解效率

3)本发明技术方案的方法,改变个体移动规则,针对WSN能量优化路由问题,改进了WSA-IC算法的个体迭代规则,即个体移动规则。为了保证当前个体向它的“较优且最近”的个体随机移动,本发明技术方案中提出了一个新的参数—选择概率鲸鱼Ωu在它的“较优且最近”的个体Ωv的引导下,得到预期下代鲸鱼X'。

4)本发明技术方案的方法,加入了编辑距离算法以计算个体间的距离,以及在迭代过程中对当前种群中的最好个体引入了邻域搜索策略,有利于加强该个体的局部搜索能力,从而加速收敛到该个体所在区域的最优解,进一步提高了鲸鱼群算法的准确度。

附图说明

图1为本发明实施例中的无线传感器网络系统的结构示意图;

图2为本发明实施例中的无线传感器网络路由方法的流程示意图;

图3为本发明实施例中的基于改进鲸鱼群算法的无线传感器网络路由方法计算最优路径的流程示意图;

图4为本发明实施例中的一个优选路径的示意图;

图5为本发明实施例中鲸鱼个体初始化流程示意图;

图6为本发明实施例中鲸鱼个体移动流程示意图;

图7为本发明实施例中鲸鱼个体邻域搜索的流程示意图;

图8为本发明实施例中鲸鱼个体邻域搜索的示意图;

图9(a)为本发明实施例的实验1在边长为200m的正方形区域,随机生成的包含50个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(b)为本发明实施例的实验2在边长为300m的正方形区域,随机生成的包含100个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(c)为本发明实施例的实验3在边长为400m的正方形区域,随机生成的包含150个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(d)为本发明实施例的实验4在边长为500m的正方形区域,随机生成的包含200个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(e)为本发明实施例的实验5在边长为600m的正方形区域,随机生成的包含250个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(f)为本发明实施例的实验6在边长为700m的正方形区域,随机生成的包含300个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(g)为本发明实施例的实验7在边长为800m的正方形区域,随机生成的包含350个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(h)为本发明实施例的实验8在边长为900m的正方形区域,随机生成的包含400个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(i)为本发明实施例的实验9在边长为1000m的正方形区域,随机生成的包含450个传感器节点(含1个汇聚节点)的无线传感器网络;

图9(j)为本发明实施例的实验10在边长为1100m的正方形区域,随机生成的包含500个传感器节点(含1个汇聚节点)的无线传感器网络;

图10(a)为本发明实施例1中实验2各节点的初始能量从6J、12J以及18J中随机选择,各实施例中的汇聚节点为源节点初次计算路径时,本发明和现有算法IHSBEER的适应度收敛情况对比实验结果;

图10(b)为本发明实施例1中实验4各节点的初始能量从6J、12J以及18J中随机选择,各实施例中的汇聚节点为源节点初次计算路径时,本发明和现有算法IHSBEER的适应度收敛情况对比实验结果;

图10(c)为本发明实施例1中实验6各节点的初始能量从6J、12J以及18J中随机选择,各实施例中的汇聚节点为源节点初次计算路径时,本发明和现有算法IHSBEER的适应度收敛情况对比实验结果;

图10(d)为本发明实施例1中实验8各节点的初始能量从6J、12J以及18J中随机选择,各实施例中的汇聚节点为源节点初次计算路径时,本发明和现有算法IHSBEER的适应度收敛情况对比实验结果;

图11(a)为本发明实施例2中所有节点的初始能量均为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点时,本发明和现有算法EEABR、ACORC、IHSBEER的平均剩余能量对比实验结果;

图11(b)为本发明实施例2中所有节点的初始能量均为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点时,本发明和现有算法EEABR、ACORC、IHSBEER的剩余能量标准差对比实验结果;

图11(c)为本发明实施例2中所有节点的初始能量均为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点时,本发明和现有算法EEABR、ACORC、IHSBEER的最小剩余能量对比实验结果;

图11(d)为本发明实施例2中所有节点的初始能量均为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点时,本发明和现有算法EEABR、ACORC、IHSBEER的网络生命周期对比实验结果。

图12(a)为本发明实施例3中所有节点的初始能量均为6J,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的平均剩余能量对比实验结果;

图12(b)为本发明实施例3中所有节点的初始能量均为6J,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的剩余能量标准差对比实验结果;

图12(c)为本发明实施例3中所有节点的初始能量均为6J,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的最小剩余能量对比实验结果;

图12(d)为本发明实施例3中所有节点的初始能量均为6J,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的网络生命周期对比实验结果。

图13(a)为本发明实施例4中所有节点的初始能量从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的平均剩余能量对比实验结果;

图13(b)为本发明实施例4中所有节点的初始能量均从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的剩余能量标准差对比实验结果;

图13(c)为本发明实施例4中所有节点的初始能量均从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的最小剩余能量对比实验结果;

图13(d)为本发明实施例4中所有节点的初始能量均从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包时,本发明和现有算法EEABR、ACORC、IHSBEER的网络生命周期对比实验结果。

图14(a)为本发明实施例4中实验10,汇聚节点接收数据包的数量从2000、5000增加到29000时,本发明和现有算法EEABR、ACORC、IHSBEER的平均剩余能量对比实验结果;

图14(b)为本发明实施例4中实验10,汇聚节点接收数据包的数量从2000、5000增加到29000时,本发明和现有算法EEABR、ACORC、IHSBEER的剩余能量标准差对比实验结果;

图14(c)为本发明实施例4中实验10,汇聚节点接收数据包的数量从2000、5000增加到29000时,本发明和现有算法EEABR、ACORC、IHSBEER的最小剩余能量对比实验结果。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面结合具体实施方式对本发明进一步详细说明。

如图2所示,按照本发明实施例的一种基于改进鲸鱼群算法的高能效无线传感器网络路由方法,包括全局信息的传递和汇聚步骤、路由计算与配置步骤、发送数据包步骤。

(1)全局信息的传递和汇聚,具体为:

a.唯一标识确定,对网络中包括汇聚节点在内的各传感器节点分别进行编号,作为它们各自唯一的标识;

b.全局信息汇聚,汇聚节点在网络内向邻居节点广播路由消息,其中包括汇聚节点的跳数信息(汇聚节点跳数设置为0);普通传感器节点收到路由广播后,对自身跳数信息及邻居信息进行配置(根据收到节点的跳数加1,并将广播该跳数信息的节点设置为邻居节点)并进行延时,延时结束后普通传感器节点向其邻居节点广播路由消息,其中包括节点自身的跳数信息;普通传感器节点一段时间未收到广播路由消息后,向汇聚节点发送自身所有邻居节点信息、自身跳数信息和自身剩余能量信息;

通过上述步骤,实现全局信息的传递和汇聚。

(2)汇聚节点通过所述全局信息,对整个传感器网络进行路由的优化计算与配置,具体为:

a.路由优化计算,由汇聚节点根据全局信息,使用TWSR算法进行路由优化技术,得到每个传感器节点的最优转发路径,从而获得所有传感器节点到汇聚节点的最优路由方案,具体计算流程如下所示:

b.路由配置,汇聚节点使用上述最优路由方案向所有传感器节点发送其最优转发路径信息,所有传感器节点收到最优转发路径后将其保存在路由表中;

(3)普通传感器节点监测采集和处理应用信息,将其处理成数据包,并将自身的剩余能量信息加入数据包中,然后根据路由表中保存的最优路由,向汇聚节点发送数据包;汇聚节点接收到数据包后,得到节点的剩余能量信息,并对全局信息进行更新。

本方案中,优选地,在完成上述步骤后,还包括更新全局信息及路由周期更新步骤。汇聚节点对数据包进行处理,利用数据包中的剩余能量信息更新全局信息,其中某节点的剩余能量以所接收到的信息中的最小值为有效值。本发明技术方案中优选以20轮数据包接收为周期,使用最新的全局信息,重新进行步骤(2)。

如图3所示,所述路由优化计算使用改进鲸鱼群算法,具体为:

子步骤1、设置鲸鱼群算法参数,稳定性阈值Ts=源节点的跳数*所有节点邻居个数的最大值,选择概率

子步骤2、每个鲸鱼个体进行初始化,得初始鲸鱼种群Ω={Ω12,…,Ωi,…,Ω|Ω|},其中,|Ω|为鲸鱼个体数量,Ωi为第i个鲸鱼个体;

其中,本发明鲸鱼群的鲸鱼个体编码设计,采用离散的个体编码方式,即一条鲸鱼个体表示一条路径,如下所示:

X=(s,x2,x3,…,xi,…,d);

式中,X表示一个鲸鱼个体,即一个解,也即一条路径;s表示源节点,x2表示路径中的第二个节点,xi表示路径中的第i个节点,d表示根节点。

如图4所示,X=(s,27,26,62,82,89,87,88,76,d)表示一个解,即一条路径,其中,s表示源节点,d表示根节点。

如图5所示,具体每个鲸鱼个体初始化流程如下:

(2.1)设置序号j=1,x1=s,即将源节点设置为鲸鱼个体的第一个节点;

(2.2)若xj不为根节点,则转步骤(2.3),否则转步骤(2.7);

(2.3)设置迭代序号k=0;

(2.4)生成一个0到1之间的随机数rand;

(2.5)若rand大于0,则k设置为k+1,rand设置为rand减去xj的第k个邻居节点的选择概率,转步骤(2.5),否则转步骤(2.6);

(2.6)将xj+1设置为xj的第k个邻居节点的编号,将j设置为j+1,转步骤(2.2);

(2.7)完成鲸鱼个体的初始化;

其中针对WSN能量路由问题,本发明定义了节点xi选择节点xj作为下一跳传感器节点的概率计算公式,如下所示:

如果并且则

否则,

P(xi,xj)=0;

式中,分别表示节点xj、xk的跳数;表示节点xi通信范围内的节点集合,表示集合的容量;Q表示正在初始化的路径,其中保存着已被选中的节点编号;MaxHop表示集合中跳数最大的节点的跳数,MinHop表示集合中跳数最小的节点的跳数。

以图4中的WSN场景为例,采用轮盘选择法初始化一条路径的过程如下所示:首先,将源节点s加入到空集合Q,此时Q={s};然后,根据概率计算公式计算集合Ns={9,17,18,27,28}中各节点的选择概率,得到P(s,9)=0.171,P(s,17)=0.195,P(s,18)=0.219,P(s,27)=0.219,P(s,28)=0.195;接着,产生一个0到1之间的随机数R=0.7,将R减去节点9的选择概率:R-P(s,9)=0.7-0.171=0.529>0,因此,将差值减去节点17的选择概率:0.529-P(s,17)=0.529-0.195=0.334>0,继续将差值减去节点18的选择概率:0.334-P(s,18)=0.334-0.219=0.115>0,继续将差值减去节点27的选择概率:0.115-P(s,27)=0.115-0.219=-0.104<0,所以,节点27被选为源节点的下一跳节点,同时被加入到集合Q,此时Q={s,27}。接着根据概率计算公式计算集合N27={s,18,26,28,32,35,36}中各节点的选择概率,得到P(27,s)=0,P(27,18)=0.159,P(27,26)=0.182,P(27,28)=0.136,P(27,32)=0.159,P(27,35)=0.182,P(27,36)=0.182;然后,产生一个0到1之间的随机数R=0.2,将R减去节点s的选择概率:R-P(27,s)=0.2-0=0.2>0,因此,将差值减去节点18的选择概率:0.2-P(27,18)=0.2-0.159=0.041>0,继续将差值减去节点26的选择概率:0.041-P(27,26)=0.041-0.182=-0.141<0,所以,节点26被选为源节点的下一跳节点,同时被加入到集合Q,此时Q={s,27,26}。重复这个步骤,直到根节点d被选中加入到集合Q,如Q=(s,27,26,62,82,89,87,88,76,d),即完成一条路径的初始化。

子步骤3、计算每个鲸鱼个体的适应度值,F={f(Ω1),f(Ω2),…,f(Ωi),…,f(Ω|Ω|)},其中,f(Ωi)为第i个鲸鱼个体的适应度,具体适应度函数设计为;

针对一条包含l个节点的路径X=(s,x2,x3,…,xi,…,d),源节点s发送的数据包大小为k-bits,建立如下目标函数模型:

式中,Emin表示路径X中剩余能量最少的节点的剩余能量;Eaver表示路径X中各节点的剩余能量平均值;E(X)表示路径X传送该数据包,各节点(除去根节点)的能耗总和,其计算公式如下所示:

式中,表示节点xi向节点xi+1发送k比特数据所消耗的能量,为节点xi到节点xi+1的距离,ERx(k)为节点接收k比特数据所消耗的能量。由于感知能耗和数据处理能耗相对于射频通信能耗小得多,所以,本发明方法建立能耗模型时仅考虑节点的无线通信模块的通信能耗。该模型根据发送节点到接收节点之间的传输距离,决定功率放大损耗采用自由空间模型还是多路径衰减模型,如果传输距离小于阈值d0,功率放大损耗采用自由空间模型,否则,功率放大损耗采用多路径衰减模型。节点发送k比特数据到距离该节点d米的节点,能量消耗如下所示:

节点接收k比特数据的能耗如下所示:

ERx(k)=Eelec*k;

式中,Eelec表示发送电路或接收电路的单元能耗;εfs表示采用自由空间模型时,发送放大电路的单元能耗;εmp表示采用多路径衰减模型时,发送放大电路的单元能耗。

子步骤4、设置遍历序号i=1;

子步骤5、判断终止条件是否满足,若满足则转子步骤19,否则转子步骤6;

子步骤6、寻找离鲸鱼Ωi的“较优且最近”的鲸鱼Y,若Y存在,则转子步骤7,否则转子步骤12;“较优且最近”的鲸鱼即为当前鲸鱼的引导个体,是所有优于当前鲸鱼的鲸鱼个体中,离当前鲸鱼最近的鲸鱼个体;

其中,所述寻找Ωi的“较优且最近”的鲸鱼Y,需要计算鲸鱼个体间的距离,本发明采用编辑距离算法,具体如下:

编辑距离算法是用来计算一个字符串转成另一个字符串所需的最少编辑操作次数,该操作次数即为两个字符串之间的编辑距离。允许的编辑操作包括三种:1)将一个字符替换成另一个字符;2)插入一个字符;3)删除一个字符。

若editDist(i,j)表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离,则如下动态规划公式成立:

1)如果i等于0,且j等于0,则editDist(i,j)=0;

2)如果i等于0,且j大于0,则editDist(i,j)=j;

3)如果i大于0,且j等于0,则editDist(i,j)=i;

4)如果i大于或等于1,且j大于或等于1,editDist(i,j)=min{editDist(i–1,j)+1,editDist(i,j–1)+1,editDist(i–1,j–1)+cost(i,j)},当第一个字符串的第i个字符不等于第二个字符串的第j个字符时,cost(i,j)=1;否则,cost(i,j)=0。

假设两条鲸鱼个体(即两个解)X1,X2如下所示:

X1={s,18,27,36,62,81,89,85,76,d}

X2={s,28,27,26,62,82,89,81,85,88,76,d}

利用编辑距离算法求得X1与X2之间的编辑距离表如下所示。

表1 X1与X2之间的编辑距离表

从上表可以看出,X1与X2之间的编辑距离为5,对应的5个编辑操作为:18替换成28,36替换成26,81替换成82,在89后插入81,在85后插入88。

子步骤7、根据个体移动规则,通过鲸鱼Ωi和鲸鱼Y,计算鲸鱼Ωi的预期下代鲸鱼X',如图6所示,具体如下(为了更好的描述,下面用符号Ωu代替Ωi,Ωv代替Y,即鲸鱼Ωv为鲸鱼Ωu“较优且最近”的个体):

(7.1)生成一个空集合X';

(7.2)将源节点加入到X'中,即X'1=s,其中s为源节点编号,X'的第一个节点为源节点;

(7.3)设置序号i”=1;

(7.4)若X'i”不为根节点,则转步骤(7.5),否则转步骤(7.23);

(7.5)生成一个空集合R;

(7.6)在节点X'i的邻居节点集合X'i”.Rge中,找到所有不在集合X'中的节点,将其加入到集合R中;

(7.7)若集合R为空集合,则转步骤(7.8),否则转步骤(7.9);

(7.8)清空集合X',将源节点加入到X',重设序号i”=1,转步骤(7.5);

(7.9)设置k=i”+1;

(7.10)若k小于或者等于鲸鱼Ωu个体长度|Ωu|,且k小于或者等于鲸鱼Ωv个体长度|Ωv|,则转步骤(7.11),否则转步骤(7.15);

(7.11)若鲸鱼Ωv的第k个节点(Ωv)k不在集合X'中,且X'i与(Ωv)k的距离小于节点通信最大距离commuRge,则转步骤(7.12),否则转步骤(7.14);

(7.12)若鲸鱼Ωv的第k个节点(Ωv)k等于鲸鱼Ωu的第k个节点(Ωu)k,则将(Ωv)k加入集合X'中,转步骤(7.22),否则转步骤(7.13);

(7.13)生成一个0到1的随机数rand,若rand小于则将(Ωv)k加入集合X'中,转步骤(7.22),否则从集合R中随机选择一个节点加入集合X'中,转步骤(7.22);

(7.14)从集合R中随机选择一个节点加入集合X'中,转步骤(7.22);

(7.15)若k大于鲸鱼Ωu个体长度|Ωu|,且k小于或者等于鲸鱼Ωv个体长度|Ωv|,则转步骤(7.16),否则转步骤(7.19);

(7.16)若鲸鱼Ωv的第k个节点(Ωv)k不在集合X'中,且X'i'与(Ωv)k的距离小于节点通信最大距离commuRge,则转步骤(7.17),否则转步骤(7.18);

(7.17)生成一个0到1的随机数rand,若rand小于则将(Ωv)k加入集合X'中,转步骤(7.22),否则从集合R中随机选择一个节点加入集合X'中,转步骤(7.22);

(7.18)从集合R中随机选择一个节点加入集合X'中,转步骤(7.22);

(7.19)若k小于或者等于鲸鱼Ωu个体长度|Ωu|,且k大于鲸鱼Ωv个体长度|Ωv|,则转步骤(7.20),否则转步骤(7.21);

(7.20)若鲸鱼Ωu的第k个节点(Ωu)k不在集合X'中,且X'i与(Ωu)k的距离小于节点通信最大距离commuRge,则将(Ωu)k加入集合X'中,转步骤(7.22),否则从集合R中随机选择一个节点加入集合X'中,转步骤(7.22);

(7.21)从集合R中随机选择一个节点加入集合X'中;

(7.22)将i”+1赋值给i”,转步骤(7.4);

(7.23)鲸鱼个体移动完成,X'为鲸鱼的Ωu的预期下代鲸鱼;

也就是说,首先生成一个空集合X'用来保存被选中的节点。然后,将源节点加入到X'。接着,判断X'中的最后一个节点是不是根节点,如果是,则Ωu的预期下代位置X'生成完毕;如果不是,则需要继续选择下一跳节点。在选择X'中的最后一个节点的下一跳节点时,首先,生成一个空集合R用来保存X'中的最后一个节点的通讯范围内不在X'中的节点编号。如果R是空集合,则表示X'中的最后一个节点的通讯范围内的节点都在X'中,因为路径中不能存在回路,所以,此时X'中的最后一个节点没有可选的下一跳节点,需要清空X',重新选择节点;如果R不是空集合,则表示X'中的最后一个节点存在可选的下一跳节点。

如果R不是空集合,在选择X'的最后一个节点的下一跳节点时,需要考虑四种情况,这是针对WSN能量优化路由问题改进WSA-IC算法个体移动规则的关键所在:

1)Ωu、Ωv所代表的路径的长度都大于或等于|X'|+1,例如:

X'=(s,27,36,26)

Ωu'=(s,18,27,36,62,81,89,85,76,d)

Ωv'=(s,28,27,26,62,82,89,81,85,88,76,d)

其中,|Ωu|=10,|Ωv|=12,|X'|+1=5。首先,判断Ωv中的第|X'|+1个节点是否不存在于X'中,并且该节点是否在X'中的最后一个节点的通信范围之内:如果答案为“否”,则从R中随机选择一个节点加入X';如果答案为“是”,则继续判断Ωu和Ωv中的第|X'|+1个节点是否相同:如果答案为“是”,则将Ωv中的第|X'|+1个节点加入X';如果答案为“否”,则产生一个0到1之间的随机数,如果该随机数小于则将Ωv中的第|X'|+1个节点加入X',否则,从R中随机选择一个节点加入X'。对于例子中的情况,Ωv中的第5个节点(节点62)不属于X',该节点在X'中的最后一个节点(节点26)的通信范围内,并且Ωu中的第5个节点也是节点62,所以,将节点62加入X',做为X'中的最后一个节点的下一跳节点,此时X'=(s,27,36,26,62)。

2)Ωu所代表的路径的长度小于|X'|+1,并且Ωv所代表的路径的长度大于或等于|X'|+1,例如:

X'=(s,27,36,26,62,81,89)

Ωu'=(s,36,82,85,76,d)

Ωv'=(s,28,27,26,62,82,89,81,85,88,76,d)

其中,|Ωu|=6,|Ωv|=12,|X'|+1=8。首先,判断Ωv中的第|X'|+1个节点是否不存在于X'中,并且该节点是否在X'中的最后一个节点的通信范围之内:如果答案为“否”,则从R中随机选择一个节点加入X';如果答案为“是”,则产生一个0到1之间的随机数,如果该随机数小于则将Ωv中的第|X'|+1个节点加入X',否则,从R中随机选择一个节点加入X'。对于例子中的情况,Ωv中的第8个节点(节点81)属于X',所以,从R中随机选择一个节点加入X',假设节点87被选中,此时X'=(s,27,36,26,62,81,89,87)。

3)Ωu所代表的路径的长度大于或等于|X'|+1,并且Ωv所代表的路径的长度小于|X'|+1,例如:

X'=(s,27,36,26,62,65,89)

Ωu'=(s,28,27,26,62,82,89,87,85,88,76,d)

Ωv'=(s,36,82,85,76,d)

其中,|Ωu|=12,|Ωv|=6,|X'|+1=8。首先,判断Ωu中的第|X'|+1个节点是否不存在于X'中,并且该节点是否在X'中的最后一个节点的通信范围之内:如果答案为“是”,则将Ωu中的第|X'|+1个节点加入X';如果答案为“否”,则从R中随机选择一个节点加入X'。对于例子中的情况,Ωu中的第8个节点(节点87)不属于X',并且该节点在X'中的最后一个节点(节点89)的通信范围内,所以,将节点87加入X',作为X'中的最后一个节点的下一跳节点,此时X'=(s,27,36,26,62,65,89,87)。

4)Ωu、Ωv所代表的路径的长度都小于|X'|+1,例如:

X'=(s,27,36,26,62,65,89,87,85)

Ωu'=(s,27,62,81,88,76,d)

Ωv'=(s,36,82,85,76,d)

其中,|Ωu|=7,|Ωv|=6,||+1=10。此时,只需从R中随机选择一个节点加入X'即可。对于这种情况,从R中随机选择一个节点加入X',假设节点88被选中,此时,X'=(s,27,36,26,62,65,89,87,85,88)。

直到X'中的最后一个节点是根节点d,鲸鱼Ωu的预期下代位置X'计算完毕。

子步骤8、计算X'的适应度值f(X'),若f(X')小于f(Ωi),则转子步骤9,否则转子步骤10;

子步骤9、将鲸鱼群中第i个鲸鱼Ωi替代为其预期下代鲸鱼X',将该鲸鱼迭代计数器Ωi.c设置为0,转子步骤18;

子步骤10、若第i个鲸鱼的迭代计数器Ωi.c小于Ts,则对该迭代计数器Ωi.c加1,转子步骤18,否则转子步骤11;

子步骤11、重新初始化第i个鲸鱼Ωi的位置,并计算该鲸鱼的适应度值f(Ωi),转子步骤18;

子步骤12、生成第i个鲸鱼Ωi的副本X”;

子步骤13、对鲸鱼副本X”执行邻域搜索,并计算邻域搜索后的该副本的适应度值f(X”),若f(X”)小于f(Ωi),则转子步骤14,否则转子步骤15;

其中所述邻域搜索,如图7所示,具体实施步骤如下:

(13.1)从当前种群中选取最好的鲸鱼个体Ωb

(13.2)生成一个2到|Ωb|-1的随机数rand,其中|Ωb|为鲸鱼个体Ωb所代表路径的长度;

(13.3)生成一个集合L,将即在节点(Ωb)rand的上一跳节点的通信范围内,也在其下一跳节点的通信范围内的节点,加入到集合L中;

(13.4)在集合L中随机选择一个节点代替(Ωb)rand,新生成的鲸鱼为邻域搜索后的鲸鱼;

以图8为例,图中的路径X=(s,27,26,62,82,89,87,88,76,d),从X中随机选择一个节点,假设节点62被选中,则从N26∩N82={62,65,66}中随机选择一个节点替换节点62,假设节点65被选中,则邻域搜索后的路径为X”=(s,27,26,65,82,89,87,88,76,d)。如果该个体通过邻域搜索找到更好的解,则将邻域搜索后的解替换掉原来的解,并将该个体的迭代计数器置0,否则,维持原来的解不变,并进行迭代计数器的检查。

子步骤14、将鲸鱼群中第i个鲸鱼Ωi替代为鲸鱼副本X”,并将该鲸鱼迭代计数器Ωi.c设置为0,转子步骤18;

子步骤15、若第i个鲸鱼的迭代计数器Ωi.c小于Ts,则对该迭代计数器Ωi.c加1,转子步骤18,否则转子步骤16;

子步骤16、若第i个鲸鱼的适应度值f(Ωi)小于全局最优解的适应度值fgbest,则将fgbest设置为f(Ωi),将全局最优解GBest设置为Ωi

子步骤17、重新初始化第i个鲸鱼Ωi的位置,并计算该鲸鱼的适应度值f(Ωi);

子步骤18、将i+1赋值给i,若i小于鲸鱼个体数量|Ω|,则转子步骤5,否则转子步骤4;

子步骤19、判断最后一代种群中是否有比GBest更好的鲸鱼个体,有则替代GBest,GBest为当前最优解,即最优路由方案。

本发明方案的效果可以通过以下仿真实验和比较进一步验证:

图9(a)所示正方形区域为本发明实施例的实验1中随机生成的包含50个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为200m;

图9(b)所示正方形区域为本发明实施例的实验2中随机生成的包含100个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为300m;

图9(c)所示正方形区域为本发明实施例的实验3中随机生成的包含150个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为400m;

图9(d)所示正方形区域为本发明实施例的实验4中随机生成的包含200个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为500m;

图9(e)所示正方形区域为本发明实施例的实验5中随机生成的包含250个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为600m;

图9(f)所示正方形区域为本发明实施例的实验6中随机生成的包含300个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为700m;

图9(g)所示正方形区域为本发明实施例的实验7中随机生成的包含350个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为800m;

图9(h)所示正方形区域为本发明实施例的实验8中随机生成的包含400个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为900m;

图9(i)所示正方形区域为本发明实施例的实验9中随机生成的包含450个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为1000m;

图9(j)所示正方形区域为本发明实施例的实验10中随机生成的包含500个传感器节点(含1个汇聚节点)的无线传感器网络,其中正方形边长为1100m;

图9(a)~图9(j),小圆形代表传感器节点,星形代表汇聚节点。

选取图9(a)~图9(j)所示随机生成的10个无线传感器网络,将本发明中的路由算法与经典的智能优化路由算法比较,包括(Energy-Efficient Ant-Based Routing)EEABR、(Improved Harmony Search Energy-Efficient Routing)IHSBEER、(Ant Colony Optimization Router Chip)ACORC等算法,在平均剩余能量、剩余能量标准差、最小剩余能量以及生命周期(本发明中的生命周期为传感器网络中出现第一个能量耗尽的传感器节点时,消息发送的轮数)这4个评价指标方面进行比较。编程语言为C++,计算机配置为:3.2GHz和3.6GHz的intel core I5-3470处理器、4GB内存。

下面通过两个具体的实验来对本发明技术方案的实施例进行进一步的说明。

实验比较分为四部分,第一部分实验中,实施例1在10个无线传感器网络中选择4个为代表,传感器节点初始能量从6J、12J以及18J中随机选择;第二部分实验中,实施例2在10个无线传感器网络中,所有节点的初始能量均为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点;第三部分试验中,实施例3在10个无线传感器网络中,所有节点的初始能量均为6J,各场景中的节点周期性地向汇聚节点发送数据包;第四部分试验中,实施例4在10个无线传感器网络中,所有节点的初始能量从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包。实验和算法相关参数分别如表2和表3所示,实验结果取10次运算的平均值。

表2实验相关参数

参数通信范围150m数据包大小800bitsEelec50nJ/bitεfs0.1nJ/bit/m2εmp0.000013nJ/bit/m4d087.0m函数评价次数10000独立运行次数10

表3算法相关参数

各参数符号释义如下:

α:启发因子;β:期望因子;ρ:信息素残留参数;系数;phero:初始信息素;2.HMS:和声库大小;HMCRmin、HMCRmax:和声库选择概率的最小值和最大值;interval:路由重新计算轮数间隔;3.|Ω|:种群大小;hop:当前节点的跳数;mnn:所有节点中,邻居节点最多的节点的邻居节点数量。

实施例1:

在实施例1中,本发明路由方法在图9(b)、图9(d)、图9(f)以及图9(h)的无线传感器网络运行,其中各节点的初始能量从6J、12J以及18J中随机选择。各无线传感器网络中的汇聚节点为源节点初次计算路径时,WSA-ICR算法与IHSBEER算法的适应度收敛情况如图10(a)~10(d)所示。本实施例为了便于比较各算法在其它评价指标方面的表现,首先比较路由算法在适应度收敛情况方面的性能。由于ACORC算法和EEABR算法是基于蚁群算法的分布式路由算法,不需要计算适应度值,因此,仅将WSA-ICR算法与IHSBEER算法在适应度收敛方面进行比较。从图10(a)~10(d)中可以看出,在所有实验中,本发明的WSA-ICR算法无论是在适应度收敛速度方面,还是在求得的最优解的质量方面都有着很好的表现。这是得益于WSA-IC算法优秀的迭代规则:每条鲸鱼个体在其“较优且最近”的鲸鱼的引导下进行移动,如果发现了更好的新位置,则该鲸鱼移动到该新的位置;否则,该鲸鱼保持原地不动。这样,WSA-IC算法可以快速收敛到各个体附近的极值点。同时,本章加入的邻域搜索策略可以提高解的精度。更重要的是,WSA-IC算法可以在迭代过程中识别和跳出已找到的极值点,从而尽可能地提高算法的全局搜索能力,极大地提高了求解全局最优解的能力。

实施例2:

在实施例2中,对于3个评价指标(平均剩余能量、剩余能量标准差、最小剩余能量),10个网络中每个传感器节点的初始能量初始化为6J,所有数据包均从固定源节点发出,经其它节点转发至汇聚节点,直到每个汇聚节点接收到6000个数据包时停止计算;对于第4个评价指标(即网络生命周期),当网络中有任何一个传感器节点的能量耗尽时就停止计算。图11(a)~11(d)是各传感器节点初始化能量相同时的实验结果。图11(a)、11(b)、11(c)分别是各网络中的汇聚节点接收到6000个数据包后,网络中各传感器节点的平均剩余能量、剩余能量标准差以及最小剩余能量的10次运行均值。图10(d)是个网络中出现第一个传感器节点能量耗尽时,网络生命周期的10次运行均值。

更多的平均剩余能量意味着更少的能量消耗。从图11(a)可以看出,WSA-ICR算法在所有实验中都能比其它算法取得好得多的平均剩余能量值。这表明,当各传感器节点的初始能量相同,从固定源节点发送数据包到汇聚节点时,WSA-ICR算法相比其它算法可以节省更多的网络能量。

均衡网络的能耗对延长整个网络的生命周期有着重要的影响,节点的剩余能量标准差越小意味着整个网络的能量消耗越均衡。从图11(b)可以看出,WSA-ICR算法在绝大部分实验中都能取得最小的剩余能量标准差,并且,随着节点数量的增加,其它对比算法与WSA-ICR算法的差距越大。

最小剩余能量直接决定着网络的生命周期,网络中节点剩余能量最少的节点的剩余能量越大,网络的生命周期越长。从图11(c)可以看出,WSA-ICR算法在大部分实验中都能取得最大的最小剩余能量,特别是与EEABR算法和ACORC算法相比,WSA-ICR算法取得的最小剩余能量值要大得多。因此,在大部分实验中,WSA-ICR算法会比其它算法取得更长的网络生命周期。如图11(d)所示,WSA-ICR算法能比EEABR算法和ACORC算法取得大得多的生命周期。;

实施例3:

在实施例3中,对于3个评价指标(平均剩余能量、剩余能量标准差、最小剩余能量),10个网络中每个传感器节点的初始能量初始化为6J,所各场景中的节点周期性地向汇聚节点发送数据包,直到每个汇聚节点接收到26000个数据包时停止计算;对于第4个评价指标(即网络生命周期),当网络中有任何一个传感器节点的能量耗尽时就停止计算。

图12(a)~12(d)是各传感器节点初始化能量相同时的实验结果。图12(a)、12(b)、12(c)分别是各网络中的汇聚节点接收到26000个数据包后,网络中各传感器节点的平均剩余能量、剩余能量标准差以及最小剩余能量的10次运行均值。图12(d)是个网络中出现第一个传感器节点能量耗尽时,网络生命周期的10次运行均值。

从图12(a)可以看出,WSA-ICR算法在所有实验中都能比其它算法取得好得多的平均剩余能量值。这表明,当各传感器节点的初始能量相同,网络中有多个传感器节点发送数据包到汇聚节点时,WSA-ICR算法相比其它算法可以节省更多的网络能量。从图12(b)可以看出,WSA-ICR算法在所有实验中都能比IHSBEER算法取得小的多的剩余能量标准差。这表明,当网络中有多个传感器节点发送数据包到汇聚节点时,WSA-ICR算法能比IHSBEER算法更好的均衡网络的能耗。同时,从图12(b)可以看出,WSA-ICR算法在所有实验比ACORC算法取得的剩余能量标准差都大;在前5个实验中,EEABR算法比WSA-ICR算法取得的剩余能量标准差小。可见,当网络中有多个传感器节点发送数据包到汇聚节点时,ACORC算法和EEABR算法能够很好的均衡网络的能耗。但是如图12(a)所示,ACORC算法和EEABR算法在各实验中取得的平均剩余能量较小,这是因为ACORC算法和EEABR算法在选择下一跳节点时,每个节点都只是在局部选择一个较好的下一跳节点,不能保证最终的路径是一条全局最优或近优的能耗路径,会导致整个网络的能量下降较快。而WSA-ICR算法能够求得全局最优或近优的能耗路径,在保证较好地均衡网络能耗的前提下,可以尽量减少网络的总能耗。从图12(c)可以看出,WSA-ICR算法在所有实验中都能比其它算法取得更大的最小剩余能量值。因此,WSA-ICR算法会比其它算法取得更长的网络生命周期。如图12(d)所示,针对各实验取得的生命周期,WSA-ICR算法与IHSBEER算法相比分别提高了220.2%、231.1%、209.2%、200.7%、168.6%、216.8%、260.7%、424.4%、342.1%、451.8%、627.5%、663.4%、886.7%。

实施例4:

在实施例4中,对于3个评价指标(平均剩余能量、剩余能量标准差、最小剩余能量),10个网络中每个传感器节点的初始能量从6J、12J以及18J中随机选择,各场景中的节点周期性地向汇聚节点发送数据包,直到每个汇聚节点接收到26000个数据包时停止计算;对于第4个评价指标(即网络生命周期),当网络中有任何一个传感器节点的能量耗尽时就停止计算。

从图13(a)可以看出,WSA-ICR算法在所有实验中都能比其它算法取得好得多的平均剩余能量值。这表明,当各传感器节点的初始能量不同,网络中有多个传感器节点发送数据包到汇聚节点时,WSA-ICR算法相比其它算法也可以节省更多的网络能量。从图13(b)可以看出,WSA-ICR算法在所有实验中都能比ACORC算法和EEABR算法取得更小的剩余能量标准差。这表明,当各传感器节点的初始能量不同,网络中有多个传感器节点发送数据包到汇聚节点时,WSA-ICR算法能比ACORC算法和EEABR算法更好的均衡网络的能耗。从图13(c)可以看出,WSA-ICR算法在所有实验中都能比其它算法取得大得多的最小剩余能量值。因此,WSA-ICR算法会比其它算法取得更长的网络生命周期。如图13(d)所示,针对各实验取得的生命周期,WSA-ICR算法与IHSBEER算法相比分别提高了221%、260.5%、209.9%、188.3%、179.7%、250.8%、255.4%、215.8%、146.4%、179.5%;WSA-ICR算法与ACORC算法相比分别提高了248.5%、373.6%、409%、427.9%、632.1%、420.8%、524.3%、763.4%、676.1%、653.1%;WSA-ICR算法与EEABR算法相比分别提高了253.1%、390.5%、464.7%、507.3%、990.3%、645.5%、938%、1463.5%、1340.2%、1486.9%。

为进一步证明WSA-ICR算法的优势,针对第十个实验,记录了汇聚节点接收数据包的数量从2000、5000增加到29000时,所有节点的平均剩余能量、剩余能量标准差以及最小剩余能量,如图14(a)~14(c)所示。从图14(a)~14(c)可以看出,在汇聚节点接收数据包的整个过程中,WSA-ICR算法始终能比IHSBEER算法、ACORC算法以及EEABR算法取得更多的平均剩余能量以及更大的最小剩余能量。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号