2. 蒙大拿州立大学计算机科学系 美国 博兹曼 59717
2. Department of Computer Science, Montana State University Bozeman, USA 59717
无线传感器网络涉及如覆盖、检测时间、能量消耗、网络生存时间、鲁棒性、安全、隐私、数据共享、延迟等问题通常需要较为复杂的算法和技术。为了实现其特有目的,WSN需要成为可自动配置、可调、远程控制的网络。移动agent(mobile agent,MA)技术可为WSN应用领域中的若干目标提供可行的解决方案。
MA是一种特殊的软件,能够自主运行,并在部署后能够从一个节点移动到另一个节点进行自动的数据处理,是WSN完成复杂应用、实现节点自治的有效途径。文献[1]使用MA在WSN中对移动目标进行自动跟踪。与传统的agent不同,MA在无线传感器网络中通过其移动性能够承担很多重复工作,并由于MA是目标指向的,能够为用户提供管理抽象能力,当其部署在网络中后能够独立完成工作。MA仅在需要时才通知用户目标的完成状态。基于WSN的agent需要具有迁移能力,能够在确保其数据完整的前提下完成状态的转移。移动agent具有比固定的agent更强的自治性。
基于移动agent技术的WSN架构能够为群智能算法[2]提供支撑框架。该研究有以下特点:1) 移动agent在局部随机产生降低了sink节点的数据传输量。2) 多移动agent协同能够扩大区域覆盖率。3) 随机生成和随机迁移的活动节点需要较少的活动完成对事件监控。
1 相关工作由于WSN节点几乎都在无人管理的环境部署,因此WSN节点需要极强的自适应能力。文献[3]提出动态宏程序(dynamic macro-programming)的WSN的概念。该研究定义了元代理(meta-agent)的概念,即固定代理给远端的移动agent发出查询消息(uQueries)以完成相应的任务。由于该技术提出基于移动agent的节点能够被赋予多种不同的能力,因此通过uQueries能够增加节点的动态工作能力。
为了提高数据融合精度,减少传输数据的能量消耗,研究WSN的数据和压缩融合技术是必要的,相关研究主要集中在成簇、成链、树和移动agent等方面。事件检测是基于移动agent的WSN研究重点,文献[4]给出了使用MA产生和维护从设计用户界面到发现事件节点的最优路径的技术,从而达到WSN快速响应的目的。MA由当地的代理产生并在网络中迁徙,对最优路径进行维护和升级。但根据仿真结果,MA在事件发生处的密集较高,可能导致节点的能量消耗过快。
除了研究基于移动agent的WSN结构外,还有一些专用移动agent结构,如文献[5]通过建立容错模型和分布式数据库,构建能够检测错误并修复的移动agent结构,以减少持续维护网络管理流量的开销。发放子代理的过程可以程序化,并且能够分批进行。
2 RMAWSN系统模型移动agent通过迁移代码可以方便地进行任务重置,在本地进行数据处理,完成多点协同合作等功能,较通过固定节点完成所有独立任务的WSN而言更为灵活。图 1展示了3种基于移动agent的无线传感器数据传输模式。图 1c为本文讨论的采用随机产生和迁移的无线传感器获取数据的模式,称为基于随机移动agent的WSN(random mobile agent-based WSN,RMAWSN)。
RMAWSN中的MA有两种状态,即激活与休眠状态。每个代理激活状态意味着代理能够执行代理各种行为,如环境检测。处于休眠状态的代理能够自动激活,或者根据网络状态激活。休眠状态的代理不意味着节点也处于休眠状态,节点依然能够接收无线信号,执行其他日常工作。
RMAWSN中,每个激活状态的代理运行一个定时器,限制MA的激活时间,因此MA拥有短周期特点。定时器的计数根据代理移动步数减少。每个代理处于休眠状态并等待被激活。采用短周期MA的原因有以下几点:1)能够避免激活代理的分布不均;2) 能够避免MA在一个区域重复迁移;3) 能够控制网络中激活状态代理的数目,提高能量的使用率。
图 1a为移动agent的分布式传感器网络(mobile agent-based distributed sensor network, MADSN)[6]的示意图,该移动agent采用CS模式的WSN的数据传输过程。在sink节点需要多次往返传输数据。监控区域发生异常事件后,附近的传感器需要通知sink节点,在sink节点决策后,派出MA进行监测。该过程需要确定源节点,即能够探测到事件的传感器节点,MA能够根据源节点的分布自行完成行程规划。
如图 1b所示,基于移动agent的WSN(mobile agent-based WSN,MAWSN)[7]提出了采用母agent (mother agent)的结构以减少数据传输量。sink节点向目标区域发送母agent,母代理到达目的节点后,发送若干子代理到事件区域周围。每个子代理在完成事件检测后,需要单独从sink节点出发并返回sink节点。
如图 1c所示,RMAWSN模式的节点在本地即可获取数据。MA并不由sink节点发出,而在网络中自动生成,并能够随机地迁移。代理在发现事件后可以根据行程规划进行迁移,获取数据后,再单程返回sink节点。这种模式在WSN网络规模较大时,能得到更佳的能耗效率。
定义节点发送、接收、感知过程的单位能耗分别为et、er、es;未携带数据的代理lnew假设从每个节点能够获取的数据为lnew。假设图 1中访问的所有节点传输距离相同,代理头部信息相同,图 1中,代理访问的源节点数为n,从sink节点到源节点经过的节点数为m。
${E_{\rm{m}}} = {l_{{\rm{new}}}}({e_{\rm{t}}} + {e_{\rm{r}}})$ |
MA获得数据后,中继节点的能耗也相应地增加为:
${E_{\rm{m}}} = ({l_{{\rm{new}}}} + {l_{{\rm{node}}}})({e_{\rm{t}}} + {e_{\rm{r}}})$ |
在图 1a中,m个MA从sink节点出发,迁移到事件附近的m个源节点,并返回sink节点,总能耗为:
${E_{\rm{a}}} = mn{l_{{\rm{new}}}}({e_{\rm{t}}} + {e_{\rm{r}}}) + n({l_{{\rm{new}}}}{\rm{ + }}{l_{{\rm{node}}}})({e_{\rm{s}}}{\rm{ + }}{e_{\rm{t}}}{\rm{ + }}{e_{\rm{r}}}) + mn({l_{{\rm{new}}}}{\rm{ + }}{l_{{\rm{node}}}}{\rm{)(}}{e_{\rm{t}}}{\rm{ + }}{e_{\rm{r}}})$ | (1) |
在图 1b中,MA从sink节点出发,迁移至源节点,并将数据返回到sink节点的过程,总能耗为:
$ \begin{array}{c} {E_{\rm{b}}} = m{l_{{\rm{new}}}}({e_{\rm{t}}} + {e_{\rm{r}}}) + n{l_{{\rm{new}}}}({e_{\rm{t}}} + {e_{\rm{r}}}) + \\ n({l_{{\rm{new}}}} + {l_{{\rm{node}}}})({e_{\rm{s}}} + {e_{\rm{t}}} + {e_{\rm{r}}}) + \\ m({l_{{\rm{new}}}} + {l_{{\rm{node}}}})({e_{\rm{t}}} + {e_{\rm{r}}}) \end{array}$ | (2) |
在图 1c中,假设节点随机游动k次后发现事件,在遍历n个源节点后返回sink节点的能耗为:
$ \begin{array}{c} {E_{\rm{c}}} = k{l_{{\rm{new}}}}({e_{\rm{t}}} + {e_{\rm{r}}} + {e_{\rm{s}}}) + \\ n({l_{{\rm{new}}}}{\rm{ + }}{l_{{\rm{node}}}})({e_{\rm{s}}} + {e_{\rm{t}}} + {e_{\rm{r}}}) + \\ m({l_{{\rm{new}}}} + {l_{{\rm{node}}}})({e_{\rm{t}}} + {e_{\rm{r}}}) \end{array}$ | (3) |
由式(1)和式(2),将图 1a的MADSN构架与图 1b的MAWSN构架的能耗进行对比,得:
$ {E_{\rm{a}}} - {E_{\rm{b}}} = {l_{{\rm{new}}}}{\rm{(}}{e_{\rm{t}}} + {e_{\rm{r}}})(mn - m - n)$ | (4) |
通过式(4)能够看出,若源节点与sink节点越远,源节点数量越多,MAWSN模式较MADSN模式的效率要高很多。
图 1c的RMAWSN模式与图 1b的MAWSN模式相比,得:
$ {E_{\rm{b}}} - {E_{\rm{c}}} = {l_{{\rm{new}}}}[(m + n)({e_{\rm{t}}} + {e_{\rm{r}}}) - k({e_{\rm{s}}} + {e_{\rm{t}}} + {e_{\rm{r}}})]$ | (5) |
根据式(5),当$m + n \ge \frac{{{e_{\rm{t}}} + {e_{\rm{r}}} + {e_{\rm{s}}}}}{{{e_{\rm{t}}} + {e_{\rm{r}}}}}k$时,MAWSN模式的能耗比RMAWSN模式高,因此在特定的情况下,RMAWSN模式的代理能耗效率更好,更适于较大规模的WSN应用。
3 RMAWSN的覆盖区域随机产生和随机移动的MA能够获取更好的目标监测能力和更少的活动传感器。本节采用区域覆盖方法评估RMAWSN的随机模型,基于文献[8, 9]中寻找最佳突破路径(maximal breach path)和最佳支撑路径(maximal support path)使用的部分定义。
定义节点的感知范围半径为r;被测物体从S点到D点的路径轨迹为曲线p。设曲线p1和p2在p的两侧,并分别离曲线p的距离为r。p1和p2构成的封闭区域为$||{Z_p}||$。
$||{Z_p}||$内若无探测器,即传感器节点无法发现穿越该区域的物体[10],因此物体沿路径p被探测到的可能性为:
$ {P_d}(p) = 1 - P(Np = 0) = 1 - {e^{ - \lambda ||Np||}}$ | (6) |
设S、D两点之间曲线p的长度为x,即:
$||{Z_p}|| = 2rx + \pi {r^2} $ | (7) |
式中,2rx为p1和p2构成的条状区域面积;πr2为条状区域两端分别与点S和点D为中心的两个半圆面积(其半径为r)。将式(7)代入式(6),得检测到的概率:
${P_d}(p) = 1 - P(Np = 0) = 1 - {e^{ - \lambda 2rx + {\rm{\pi }}{r^2}}} $ | (8) |
通过式(7),确定发现物体的概率和穿过该区域的最短路径长度,可以推算出穿过区域时,节点能够发现试图穿过该区域的物体所需部署的密度:
$\lambda > \frac{{ - \ln (1 - {P_{\rm{d}}}(p))}}{{{\rm{2}}rx + \pi {r^2}}} $ | (9) |
若确定检测到目标的概率Pd(p)和目标穿越区域的路径长度x,即区域中活动节点的密度就能根据式(9)计算出。需要提出,当$x \to \infty $时,表示被测物体在区域中不断徘徊,被测的可能性为百分之百。即当$x \to \infty $时,且物体不知活动节点位置,$P_d^\infty \to 1$。
定义被测物体移动速度为v,节点部署密度为${\lambda _s}$,将传感器区域分为n个小区域,即$||{Z_i}||(i = 1,2, \cdots ,n)$,节点穿过区域的时间t = n/v。将t分为m份,定义每一份为一个步长,一个步长的距离为n/m。若物体在$||Z||$移动一个步长的距离,被发现的概率定义为ps。
根据式(7),${\lambda _s}$和Ps的关系为:
${P_{\rm{s}}} = 1 - {e^{ - {\lambda _s}(2rn/m + \pi {r^2})}} $ | (10) |
物体移动一个步长的时间后,所有探测节点根据部署密度${\lambda _s}$重新部署。物体穿过m个步长被发现的概率为:
${P_d} = 1 - {(1 - {p_{\rm{s}}})^m}$ | (11) |
若m足够大,且探测物体的速度已知时,Ps可以设置很小,即根据式(9),传感器节点部署密度${\lambda _s}$可以设置得很小。
由于激活的移动agent密度较随机固定激活节点数量少,显然该算法在网络中所需的总能量要小。同时由于移动agent的随机移动和自动随机产生机制,能量消耗的分布也能满足均匀分布的目标,避免监测区域中过早出现监测空洞。因此通过移动agent形式的MA在寻找事件的过程中,能量消耗和覆盖效率均能获得很好的平衡。
根据式(11),若网络中激活状态的代理密度接近${\lambda _s}$,传感器网络能够有效地检测和跟踪到目标。为了获得所需密度${\lambda _s}$,每个代理保持一个定时器t1,t2记录未被MA访问的时间。假设网络中所有节点数为∑Ni,若t1=tmax,代理将根据概率Paf=λS/∑Ni激活,并设置定时器t1=0。若t1 < tmax,代理处于休眠状态,若另一个MA访问该节点(与该节点通信)时,休眠代理将设置定时器t1=0。
根据式(10),激活状态的代理需要随机在区域$||{Z_p}||$中移动或出现才能达到Pd(p),因此MA需要能够随机迁移到通信范围内的休眠代理。
4 RMAWSN仿真结果本文采用基于RMAWSN模式的人工鱼群算法(short life artificial fish swarm algorithm, SLAFSA)[11]进行仿真验证。表 1为实验的详细参数。网络存在10个MA,在50×50的网络中一共部署136个节点,节点的通信距离为10,感知距离为4。RMAWSN的MA将运行15次。实验中随机放置了10个事件,仿真结果显示所有事件在5步后均被发现。设定发现事件的MA消失,长时间未被访问的节点根据概率Paf自动激活MA。
参考文献
|