本发明涉及环境监测和传感器网络领域,尤其涉及一种基于小世界特性的动态分簇路由优化算法的研究。
背景技术:
随着我国城市建设的高速发展,对水资源的需求日益增加,不合理的利用水资源造成河流水质污染的程度不断增加,这严重威胁着当地社会经济自然的可持续发展。为了预防水质污染事件造成重大灾害及损失,需要对水质参数进行在线检测。传统水质监测方法频次低、周期长,无法反映水质突变情况,且易造成二次污染。水质传感器网络部署在监测的河湖水环境中,将检测到的水质信息发送到汇聚节点,再通过无线通信网络传输给监控管理中心。在水质监测任务中,水质传感器网络的整体能量有限,所以如何设计出高效节能的路由算法,提高网络的生命周期是首要考虑的问题。
目前,许多专家学者针对水质传感器网络进行了研究,希望通过有效的路由协议来延长网络的生命周期。基于水质传感器网络的资源有限性,本发明在水质传感器网络中引入复杂网络的小世界网络特性并进行优化,提出一种基于小世界特性的动态分簇路由优化算法,以延长水质传感器网络的生命周期。
技术实现要素:
本发明的目的在于提出一种基于小世界特性的动态分簇路由优化算法,可为水质传感器网络的有效运行提供理论基础,可广泛应用于水环境监测、水污染的预测和治理等领域。
为达到上述目的,本发明提出一种基于小世界特性的动态分簇路由优化算法,具体包括在水质传感器网络中引入小世界特性和改进基于小世界特性的水质传感器网络路由算法两个基本步骤。
步骤一,在本发明的一个实施例中,所述在水质传感器网络中引入小世界特性进一步包括:
网络网格维数为m×n,汇聚节点位于(xs,ys),超级链路的跳数为α,需要优化配置超级链路以获取最佳的通信成本。利用如下公式:
式中,0≤xk≤m-1,0≤yk≤n-1,xk∈int,yk∈int,k=1,2,…α。x1…α和y1…α表示α对异构节点在网络中的位置,函数min()用于计算从普通节点通过无线多跳或超级链路到汇聚节点的最短路径。然后,利用遗传算法寻求最优解,得到异构节点的最优位置。
步骤二,在本发明的一个实施例中,所述改进基于小世界特性的水质传感器网络路由算法进一步包括:
距离异构节点以及汇聚节点较近的节点能量消耗较大,设置簇内的成员节点数目较少,簇头节点负责传输的簇内数据较少,从而平衡能量消耗;预设簇的最大半径为rmax,通过控制半径的取值范围,使得离汇聚节点和异构节点最近的竞争半径为(1-c)rmax,其中,c是用于控制取值范围的参数,c∈(0,1);簇头vch确定其竞争半径rch的计算公式如下:
其中,dmax和dmin为网络节点到达汇聚的最大值和最小值,dv表示节点v到达异构节点的距离,通过竞争半径rch的计算公式确定竞争半径,并生成簇内成员节点能量状况的列表,比较能量值的大小,选择能量值最大的节点,担当簇头节点;
按普通节点距离异构节点的距离形成大小不同的簇,并且在簇内按轮选取簇头;由于簇头担负着与异构节点之间的信息传送,选择簇内能量值最大的节点,担当簇头节点,在此基础上设置能量阈值e(q),当簇头能量小于能量阈值时,进行下一轮簇头选举,簇头作为下一轮簇的簇内节点;规定普通节点能量的最大值为emax,即簇头节点的当前能量e≤emax,规定能量阈值公式如下所示:
其中,q为通过竞争半径rch的计算公式确定竞争半径后簇内的成员节点个数,e1,e2,…,eq为各个成员节点的能量状况;由能量阈值公式可知第一轮选取簇内能量最大的节点为簇头节点,随着网络的运行,簇头能量消耗较快,为了避免簇头节点的死亡,按轮选取簇头节点,平衡了簇内成员节点的能量;为了进一步延长网络的生命周期,在簇头选取完成之后,如果节点未检测到水质信息将处于空闲状态,空闲状态相对于睡眠状态的能量消耗较大,在空闲状态控制节点为睡眠状态,以此减少节点能量的消耗,延长网络的生命周期;
网络中节点数据传输方式如图2所示。在水质传感器节点检测到水域信息后根据节点距离汇聚节点(sink)的距离分为以下两种情况。普通节点v1到sink的距离在一跳之内,所以直接将数据发送至sink;普通节点v2到sink的距离较远,不能一跳到达,此时节点v2将数据发送至它所在簇的簇头节点vch。再确定vch到sink的距离。①簇头节点vch1到sink的距离在一跳之内,它直接将处理后的数据发送至sink;②簇头vch2到异构节点h1的距离在一跳之内,所以将处理后数据发送至异构节点h1,再由h1的超级链路传输至sink;③对于簇头vch3,由于到sink和异构节点的距离都较远,均不能一跳到达,因此将数据经其他簇头节点多跳转发至距其最近的异构节点h2,再由h2的超级链路传输至sink。
在该路由算法中借鉴动态分簇思想,普通节点将数据传给所在簇的簇头,一方面,簇头可以对簇内成员节点的数据进行压缩、去冗余等处理,以减少数据传输过程中的能耗;另一方面,由于簇头的轮换,节点的传输路径发生相应的变化,从而使网络节点的能量均匀消耗,提高整体网络的生命周期;此外,通过有效的能量阈值并控制睡眠状态,都能够平衡网络的能量消耗,进而提高网络的整体生命周期。
为了证明本发明算法的有效性引入两种异构算法进行对比实验,改进的leach-c分簇异构网络路由算法(improvedleach-c,ilc)和最佳位置分簇异构网络路由算法(bestsinklocations,bsl)。为了对实验结果进行分析,采用matlab进行仿真实验,假设100个节点随机分布在100×100m正方形网络区域,sink位于传感器网络区域的内部。
图3为四种算法每轮存活的节点个数仿真对比图。其中,rpsc算法表示在水质传感器网络中引入复杂网络的小世界网络特性(routingprotocolofwaterqualitysensornetworksbasedonsmall-worldcharacteristics,rpsc),irpsc表示本发明提出的基于小世界特性的动态分簇路由优化算法(improvedroutingprotocolofwaterqualitysensornetworksbasedonsmall-worldcharacteristics,irpsc),实验结果表明,irpsc算法的网络生命周期最长,其次是rpsc算法、bsl算法,ilc算法最短。
本发明提出的一种基于小世界特性的动态分簇路由优化算法,可有效延长水质传感器网络的生命周期,为水环境的有效监测和综合治理提供充实的理论依据。
附图说明
图1为本发明实施例的一种基于小世界特性的动态分簇路由优化算法流程图;
图2为本发明实施例的一种基于小世界特性的动态分簇路由优化算法数据传输方式;
图3为本发明实施例的网络生命周期仿真结果对比图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的意义。下面所描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明是针对水环境监测过程中,针对复杂的水域环境,提出的一种基于小世界特性的动态分簇路由优化算法。
为了能够对本发明有更清楚的理解,在此进行简要描述。本发明包括两个基本步骤:步骤一,在水质传感器网络中引入小世界特性;步骤二,改进基于小世界特性的水质传感器网络路由算法。
具体的,图1所示为本发明实施例的一种基于小世界特性的动态分簇路由优化算法的流程图,包括以下步骤:
步骤s101,在水质传感器网络中引入小世界特性。
网络网格维数为m×n,汇聚节点位于(xs,ys),超级链路的跳数为α,需要优化配置超级链路以获取最佳的通信成本。利用如下公式:
式中,0≤xk≤m-1,0≤yk≤n-1,xk∈int,yk∈int,k=1,2,…α。x1…α和y1…α表示α对异构节点在网络中的位置,函数min()用于计算从普通节点通过无线多跳或超级链路到汇聚节点的最短路径。然后,利用遗传算法寻求最优解,得到异构节点的最优位置。
步骤s102,改进基于小世界特性的水质传感器网络路由算法。
在本发明的一个实施例中,距离异构节点以及汇聚节点较近的节点能量消耗较大,设置簇内的成员节点数目较少,簇头节点负责传输的簇内数据较少,从而平衡能量消耗;预设簇的最大半径为rmax,通过控制半径的取值范围,使得离汇聚节点和异构节点最近的竞争半径为(1-c)rmax,其中,c是用于控制取值范围的参数,c∈(0,1);簇头vch确定其竞争半径rch的计算公式如下:
其中,dmax和dmin为网络节点到达汇聚的最大值和最小值,dv表示节点v到达异构节点的距离,通过公式(2)确定竞争半径,并生成簇内成员节点能量状况的列表,比较能量值的大小,选择能量值最大的节点,担当簇头节点;
按普通节点距离异构节点的距离形成大小不同的簇,并且在簇内按轮选取簇头;由于簇头担负着与异构节点之间的信息传送,选择簇内能量值最大的节点,担当簇头节点,在此基础上设置能量阈值e(q),当簇头能量小于能量阈值时,进行下一轮簇头选举,簇头作为下一轮簇的簇内节点;规定普通节点能量的最大值为emax,即簇头节点的当前能量e≤emax,规定能量阈值公式如式(3)所示:
其中,q为通过式(2)确定竞争半径后簇内的成员节点个数,e1,e2,…,eq为各个成员节点的能量状况;由式(3)可知第一轮选取簇内能量最大的节点为簇头节点,随着网络的运行,簇头能量消耗较快,为了避免簇头节点的死亡,按轮选取簇头节点,平衡了簇内成员节点的能量;为了进一步延长网络的生命周期,在簇头选取完成之后,如果节点未检测到水质信息将处于空闲状态,空闲状态相对于睡眠状态的能量消耗较大,在空闲状态控制节点为睡眠状态,以此减少节点能量的消耗,延长网络的生命周期;
网络中节点数据传输方式如图2所示。在水质传感器节点检测到水域信息后根据节点距离汇聚节点(sink)的距离分为以下两种情况。普通节点v1到sink的距离在一跳之内,所以直接将数据发送至sink;普通节点v2到sink的距离较远,不能一跳到达,此时节点v2将数据发送至它所在簇的簇头节点vch。再确定vch到sink的距离。①簇头节点vch1到sink的距离在一跳之内,它直接将处理后的数据发送至sink;②簇头vch2到异构节点h1的距离在一跳之内,所以将处理后数据发送至异构节点h1,再由h1的超级链路传输至sink;③对于簇头vch3,由于到sink和异构节点的距离都较远,均不能一跳到达,因此将数据经其他簇头节点多跳转发至距其最近的异构节点h2,再由h2的超级链路传输至sink。
在该路由算法中借鉴动态分簇思想,普通节点将数据传给所在簇的簇头,一方面,簇头可以对簇内成员节点的数据进行压缩、去冗余等处理,以减少数据传输过程中的能耗;另一方面,由于簇头的轮换,节点的传输路径发生相应的变化,从而使网络节点的能量均匀消耗,提高整体网络的生命周期;此外,通过有效的能量阈值并控制睡眠状态,都能够平衡网络的能量消耗,进而提高网络的整体生命周期。
为了证明本发明算法的有效性引入两种异构算法进行对比实验,改进的leach-c分簇异构网络路由算法(improvedleach-c,ilc)和最佳位置分簇异构网络路由算法(bestsinklocations,bsl)。为了对实验结果进行分析,采用matlab进行仿真实验,假设100个节点随机分布在100×100m正方形网络区域,sink位于传感器网络区域的内部。
图3为四种算法每轮存活的节点个数仿真对比图。其中,rpsc算法表示在水质传感器网络中引入复杂网络的小世界网络特性(routingprotocolofwaterqualitysensornetworksbasedonsmall-worldcharacteristics,rpsc),irpsc表示本发明提出的基于小世界特性的动态分簇路由优化算法(improvedroutingprotocolofwaterqualitysensornetworksbasedonsmall-worldcharacteristics,irpsc),实验结果表明,irpsc算法的网络生命周期最长,其次是rpsc算法、bsl算法,ilc算法最短。
通过本发明提出的一种基于小世界特性的动态分簇路由优化算法,可有效延长水质传感器网络的生命周期,,为水环境的有效监测和综合治理提供充实的理论依据。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或对其中部分技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,本发明的范围由所附权利要求及其等同限定。
1.一种基于小世界特性的动态分簇路由优化算法,其特征在于:将小世界特性引入水质传感器网络中,并在此基础上引入动态分簇思想进行路由算法的改进;
所述将小世界特性引入水质传感器网络中,并在此基础上引入动态分簇思想进行路由算法的改进包括:在水质传感器网络中加入异构节点,并利用遗传算法优化节点位置;由于异构节点及其附近节点需要频繁收发数据,导致异构节点一跳之内的普通节点能量消耗过快,减少网络的生命周期,因此,在此基础上引入动态分簇思想;距离异构节点以及汇聚节点较近的节点能量消耗较大,设置簇内的成员节点数目较少,簇头节点负责传输的簇内数据较少,从而平衡能量消耗;预设簇的最大半径为rmax,通过控制半径的取值范围,使得离汇聚节点和异构节点最近的竞争半径为(1-c)rmax,其中,c是用于控制取值范围的参数,c∈(0,1);簇头vch确定其竞争半径rch的计算公式如下:
其中,dmax和dmin为网络节点到达汇聚的最大值和最小值,dv表示节点v到达异构节点的距离,通过公式(1)确定竞争半径,并生成簇内成员节点能量状况的列表,比较能量值的大小,选择能量值最大的节点,担当簇头节点;
按普通节点距离异构节点的距离形成大小不同的簇,并且在簇内按轮选取簇头;由于簇头担负着与异构节点之间的信息传送,选择簇内能量值最大的节点,担当簇头节点,在此基础上设置能量阈值e(q),当簇头能量小于能量阈值时,进行下一轮簇头选举,簇头作为下一轮簇的簇内节点;规定普通节点能量的最大值为emax,即簇头节点的当前能量e≤emax,规定能量阈值公式如式(2)所示:
其中,q为通过式(1)确定竞争半径后簇内的成员节点个数,e1,e2,…,eq为各个成员节点的能量状况;由式(2)可知第一轮选取簇内能量最大的节点为簇头节点,随着网络的运行,簇头能量消耗较快,为了避免簇头节点的死亡,按轮选取簇头节点,平衡了簇内成员节点的能量;为了进一步延长网络的生命周期,在簇头选取完成之后,如果节点未检测到水质信息将处于空闲状态,空闲状态相对于睡眠状态的能量消耗较大,在空闲状态控制节点为睡眠状态,以此减少节点能量的消耗,延长网络的生命周期;
网络中节点数据传输方式为:在水质传感器节点检测到水域信息后根据节点距离汇聚的距离分为以下两种情况;普通节点到汇聚节点的距离在一跳之内,直接将数据发送至汇聚节点;普通节点到汇聚节点的距离较远,不能一跳到达,首先将数据发送至它所在簇的簇头节点,再确定簇头节点到汇聚节点的距离;①簇头节点到汇聚节点的距离在一跳之内,它直接将处理后的数据发送至汇聚节点;②簇头节点到异构节点的距离在一跳之内,将处理后数据发送至异构节点,再由异构节点的超级链路传输至汇聚节点;③若簇头节点到汇聚节点和异构节点的距离都较远,均不能一跳到达,则将数据经其他簇头节点多跳转发至距其最近的异构节点,再由该异构节点的超级链路传输至汇聚节点;
在该路由算法中借鉴动态分簇思想,普通节点将数据传给所在簇的簇头,一方面,簇头可以对簇内成员节点的数据进行压缩、去冗余等处理,以减少数据传输过程中的能耗;另一方面,由于簇头的轮换,节点的传输路径发生相应的变化,从而使网络节点的能量均匀消耗,提高整体网络的生命周期;此外,通过有效的能量阈值并控制睡眠状态,都能够平衡网络的能量消耗,进而提高网络的整体生命周期。
技术总结