一种复杂环境下的无线传感器网络k-覆盖算法的制作方法

文档序号:15359745发布日期:2018-09-05 00:30阅读:462来源:国知局

本发明涉及一种k-覆盖算法,具体地说,涉及一种复杂环境下的无线传感器网络k-覆盖算法。



背景技术:

无线传感器网络(wsns)由大量能量受限的传感器节点构成,已经被广泛应用于社会的各个领域,具有灵活部署、扩展简单、自组织网络等特点,其性能很大程度上取决于网络的监测质量和生存时间。在不同的应用领域,对网络的监测要求会有所不同。比如在环境复杂的军事边防、野外监测等领域,为了获得较高的监测质量,无线传感器网络必须具备良好的容错能力和稳定性,需要对目标区域实现k-覆盖,也就是说目标区域的每个监测格点至少被k(k>1)个传感器节点所感应。

目前,研究无线传感器网络的覆盖算法比较多,如ccp、dcoa、gaf、eeccp等,但大多数都是基于1-覆盖的,没有考虑对监测质量较高的要求,也有的存在通信和计算开销较大,网络生存时间较短等不足。现有技术中提出了一种基于节点地理位置信息的k-覆盖算法,该算法中网络必须依赖于外部设备,如gps、有向天线等,这无疑增大了安全隐患,也增加了节点的能耗及硬件成本,同时还可能存在定位不精确的问题。另外,在强干扰及危险区域条件下,要实现节点的精确部署是非常困难的,现有技术中还提出了一种依赖移动传感器节点的k-覆盖算法,然而,当目标区域包括障碍物及泥泞地时,移动节点无法按预期移动,且移动节点要比静态节点昂贵得多。



技术实现要素:

本发明的目的在于,提出了一种复杂环境下的无线传感器网络k-覆盖算法。该算法模拟的情景是通过在复杂目标区域上空散投传感器节点,实现对整个目标区域的k-覆盖,并实现网络生存时间最大化。

其技术方案如下:

一种复杂环境下的无线传感器网络k-覆盖算法,包括唤醒、中继选择和模式切换3个子算法,其中:

bs:sink节点;

s.energy[tnow]:节点s的当前剩余能量;

tnow:当前时间;

c(s):节点s每秒的能耗;

具体步骤如下:

1)在初始部署好所有节点后,bs确定感应、中继及睡眠节点集,并通过唤醒算法、平衡边界选择算法和中继选择算法确定数据收集树;

2)bs通过下式计算所有睡眠节点的睡眠时间;

其中,是节点s的剩余能量能维持的最小消耗时长;

3)bs通过泛洪方式将每个节点的模式设置、数据收集树和下个电池耗尽时间通知给所有节点;

4)每个节点切换到指定的模式,并设置目标节点;

5)网络开始工作,每个节点能量随着时间逐渐减小;

6)在下一次的电池耗尽时刻,睡眠节点结束睡眠模式并准备侦听听取来自bs的信息;

7)重复上述1)~6)步骤。

进一步,具体为:

本发明的有益效果为:

本发明的复杂环境下的无线传感器网络k-覆盖算法中,通过随机部署较多的廉价的静态传感器节点,采用唤醒算法制定节点的状态转换模式,均衡了网络中各个节点的能耗,以及采用中继选择算法修改数据采集树的结构,降低了节点间数据传输的距离,节省发送节点的能耗。这些措施最大化的提高了网络的k-覆盖生存时间。实验结果表明,与其他算法比较,本发明算法能够有效减少节点能耗,较大程度的提高网络的k-覆盖生存时间。

附图说明

图1是实现1-覆盖的唤醒过程举例,其中图1(a)为初始状态,图1(b)为第一轮节点选择,图1(c)为第二轮节点选择,图1(d)为选择结束状态;

图2是1-覆盖时生存时间随节点数的变化;

图3是2-覆盖时生存时间随节点数的变化;

图4是3-覆盖时生存时间随节点数的变化。

具体实施方式

下面结合符合具体实施方式对本发明的技术方案作进一步详细地说明。

1网络模型

网络中每个节点有感应、中继和睡眠三种模式,并根据基站制定的时间表切换自身工作模式,节点周期性的感应周围环境数据,如移动目标及温湿度、光照强度等,并把这些数据以多跳方式传输至sink节点(bs)。s={s1,…,sl}表示一组节点,u={u1,u2,…}、v={v1,v2,…}、w={w1,w2,…}分别表示感应模式、中继模式和睡眠模式节点集,且u∪v∪w=s。网络部署后sink节点获知了所有节点的位置信息,并计算所有感应及中继节点到sink节点的通信路径,并通过泛洪向所有感应及中继节点广播新的路径信息。算法采用节点能耗模型,每个节点在感应数据、收发数据及空闲睡眠时都要消耗能量。

trans(x,d)=eelec×x+eamp×x×dn(1)

recep(x)=eelec×x(2)

相关参数见表1所示。(1)式表示节点传送x(bit)的数据d(m)时所需能耗,n(0≤n≤2)的取值由天线属性决定,当天线为定向天线时,n为0,当天线为全向天线时,n为2。(2)式表示节点接收x(bit)的数据所需能耗。

sens()=eelec×d+esens(3)

listen(y)=elisten×y(4)

sleep(y)=esleep×y(5)

以上(3)式、(4)式和(5)式分别表示感应d(bit)数据的能耗、侦听y(sec)时间的能耗和睡眠y(sec)时间的能耗。

2算法分析

2.1目标定义

如果一组节点长时间处于感应模式,其能量将很快耗尽,必须动态地转换此组节点的工作模式。为此算法制定一个时间表(schedule)给出单个节点的模式转换方式。设t0为网络初始部署时间,tend表示由于节点能量耗尽导致网络k-覆盖终止的时间。当s∈s,t∈[t0,tend]时,设mode(s,t)表示节点s在t时刻的工作模式,在[t0,tend]内s的模式转换时间表定义为结合以上定义,可以得到保证目标区域被k-覆盖的条件:

其中:

上式中的s.range表示节点s(s∈u)的感应半径,s.energy(t)表示节点s在t时刻的剩余能量,s.pos和bs.pos表示s节点和sink节点的位置。

由此,定义目标函数为:maximize(tlife)subjectto(6)(7)

其中tlife表示k-覆盖生存时间,即从网络开始到条件(6)不再被任何一组感应模式节点满足的时间区间,算法将依据tlife来制定在满足(6)式条件下每个节点s的时间表schedule(s,[t0,tend])。

2.2目标分析

算法所要解决的问题有三个:(1)查找满足条件(6)并使得tlife最大化的感应节点集。由于感应节点周期性地执行任务,因此它们比中继和睡眠节点要消耗更多的能量;(2)确定感应节点集后怎样确定中继节点集而使得tlife最大化,一些“剩余”节点能够减小关键节点的传输距离和传输数据量,使整个网络的生存时间延长;(3)确定感应节点集和中继节点集后,怎样确定数据收集树使得tlife最大化。必须均衡树上所有节点的能耗,因为离sink节点近的节点将消耗更多的能量容易引起过早“死亡”。以上三个问题是相互关联的,将按以下步骤来解决:

1)找出满足条件(6)的最小感应节点集合u

2)生成以sink节点为根节点的数据收集树,该树包含所有的感应节点u和部分中继节点(v≤s-u)。使得网络的预测生存时间最大化。

网络预测生存时间是没有考虑节点模式变化时的近似网络生存时间,如公式(9)所示。

其中,tnow是当前时间,c(s)是节点s每秒的能耗,c(s)的大小由式(11)、式(12)、式(13)定义。

3)以下一个电池耗尽时间为依据设置睡眠节点(w=s-u-v)的睡眠周期。

4)在下一个电池耗尽时间,执行阶段(1)、(2)和(3)。

下一电池耗尽时间表示单个节点的能量耗尽时刻,定义如公式(10)所示。

其中,是节点s的剩余能量能维持的消耗时长。

当节点s∈u时

当节点s∈v时

当节点s∈w

c(s)=sleep(1)(12)

其中s.desc是以s为根节点的子树中除s之外的感应模式节点数,s.send是节点s的数据传输目标节点,dist(s1,s2)是s1与s2之间的距离。

3算法描述

算法包含唤醒、中继选择和模式切换三部分。算法在初始部署时刻和每轮下一个电池耗尽时刻执行,当没有感应节点集满足条件(6)时,整个网络的生存时间结束。

3.1唤醒策略

唤醒原则是:通过选择睡眠节点逐个成为感应节点,查找能满足对目标区域k-覆盖的感应节点最小集合,具体步骤如下:

1)初始时所有的传感器节点被当作睡眠节点。

2)每个睡眠节点计算其感应范围中减去已经被k-覆盖的区域后所剩下的面域大小ca(contributionarea)。

3)选择具有最大ca的睡眠节点唤醒为感应模式,当存在多个最大ca值的节点时,则随机选择一个。

4)如果没有睡眠节点,算法无条件终止。

5)如果整个目标区域处于k-覆盖,则采用已选择的感应节点集执行,终止算法。否则,转到步骤2。

图1显示了通过唤醒算法选择感应节点的方法。图中的字母表示感应节点,圆圈表示节点的感应范围,“a(65)”表示节点的id为“a”且ca大小为“65”。图1(b)显示了算法第一轮循环的结果。通过选择节点f作为感应节点,相应的ca已经被1-覆盖(灰色圆圈表示),然后进行其他节点选择,图1(c)给出了算法的第二次循环后的结果。在这种情况下节点e和节点j有相同的最大ca值“66”,节点j被随机选择成为感应节点,图1(d)是算法结束后的最终结果。

3.2中继选择

传输距离和数据量大小对节点能耗有很大的影响,由于目标区域中节点的分布是不均匀的,有的区间尽管能够实现k-覆盖,但是时间非常短,本发明采用平衡边界选择算法平衡各节点的数据传输量。为了减小传输距离,本发明采用了中继选择算法,选取中继节点修改由平衡边界选择算法生成的数据树,减小节点的传输距离、节省能耗,提高网络生存时间,算法描述如下:

如果在节点s1(s1∈u∪v)和节点s2(s2∈u∪v))之间的通信距离较长,则在s1和s2之间选择一个距离s1最短的睡眠或中继节点srelay(srelay∈v∪w),使得s1与srelay之间的距离比s1与s2的距离短。由公式(1)可以知道,在s1与s2之间通过srelay的中继作用减小了s1的发送信息能耗,但如果选择中继节点后恶化了目标函数值,则放弃该中继节点的选择。

3.3模式切换

算法的主要描述如下:

1)在初始部署好所有节点后,bs确定感应、中继及睡眠节点集,并通过唤醒算法、平衡边界选择算法和中继选择算法确定数据收集树。

2)bs通过(9)式计算所有睡眠节点的睡眠时间;

3)bs通过泛洪方式将每个节点的模式设置、数据收集树和下个电池耗尽时间通知给所有节点。

4)每个节点切换到指定的模式,并设置目标节点。

5)网络开始工作,每个节点能量随着时间逐渐减小。

6)在下一次的电池耗尽时刻,睡眠节点结束睡眠模式并准备侦听听取来自bs的信息。

7)重复上述1)~6)步骤。

4、仿真实验

本发明以ns-2为实验平台,对提出的k-覆盖算法(proposed)进行了30次仿真实验,并在不同的条件下与balancededgeonly算法、lica算法、aasr算法进行了比较。设定的目标区域大小为50m×50m,sink节点位置为(50,50);在目标区域分别以随机分布的方式部署100、200、300、400、500个节点;覆盖度k取值分别为1、2、3;其余参数设置如表1所示。实验结果取30次实验的平均值,如图2、图3、图4所示。

表1仿真参数

实验结果表明:随着wsn覆盖度k的增加,四种算法的网络生存时间整体上会缩短,但本发明算法获得的网络生存时间的优势也愈发明显。而且,随着wsn节点数目的增大,本发明算法与balancededgeonly算法、lica算法和aasr算法相比,能获得更长的网络生存时间。在目标区域部署500个传感器节点,覆盖度k=3时,本发明算法的网络生存时间要高于其它三种算法中最大的lica算法大约26.56%。这是因为本发明采用的唤醒方法对没有被k-覆盖的单个睡眠节点的感知范围进行大小排序,按由大到小的顺序来选择待切换模式的节点,这样能最大限度的均衡区域内所有的节点的能量消耗,避免某些节点的因过度工作而能量过早耗尽,比随机唤醒方法有效得多。其次,在利用平衡边界选择算法基础上,本发明采用了中继选择算法,减小了单个节点的数据传输距离,节省了能量。

实验结果显示4种算法的k-覆盖时间几乎都与部署的节点数成正比,原因在于感应节点的能量耗尽之前,“剩余”节点通过睡眠模式节省能量。另外,在实验过程中发现,本发明算法所需计算时间很短,当节点数为600时,本发明算法的计算时间最多为1.4秒,这直接节省了sink节点的计算能耗,提高了网络效率。

以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1