(i)固定属性z 包括代理ID(Agent _ ID) 、簇首(Cluster) 、生存时间(LifeTime) 。其中,代理ID 是移动Agent 的唯一标识,用来表示移动Agent 是簇内还是簇间移动Agent o 簇首表示移动Agent 属于哪个簇(由Sink 节点创建的簇间移动Agent 不具备此属性h 生存时间表示移动Agent 从创建到死亡的时间。
(ii)变量属性z 包括下一跳节点(NextHop) 、采集轮数(Round) 、节点黑名单<BlackList) 。其中,下一跳节点表示移动Agent 下一跳访问的传感器节点,由移动Agent 迁移路由算法决定。移动Agent 采集的一轮表示移动Agent 从Sink(簇首)节点出发,沿指定路径迁移完成果集和数据融合任务之后,再回到Sink(簇首)节点的过程。Round 初始值等于0 ,每完成一轮采集, Round 值加1 直至LifeTime=O 。如果当前传感器节点的剩余能量Er 小于某一阔值时,则被纳入节点黑名单,移动Agent 避开该节点访问下一结点。
(iii)负载:包括处理代码(Processing Code) 和节点信息。处理代码表示移动Agent 进行数据采集和融合处理的相关代码。节点信息包括三个部分:节点IO(Node _ 10) 、剩余能量(Er) 、传感数据<Da-ta) 。节点信息之前保存在本地静态Agent 中,当移动Agent 迁移至该节点时,即从本地静态Agent 中获取相关的节点信息,并携带这些信息迁移至下一跳节点。移动Agent 在迁移过程中访问的节点数目和节点顺序决定了节点能耗、路径损耗以及监测准确度,会对网络的整体性能造成很大的影响。因此,为均衡能耗、延长网络生命期,文中提出一种基于邻居节点和剩余能量相结合的簇内移动Agent 迁移路由算法。设定迁移路由的初始节点和最终节点为簇首节点。算法步骤如下:
①由簇首节点C1 创建一个簇内移动Agent ,且当前Round = 0, Life Time 为最大值;
②按照Disk(C1, rc) 找出该簇首节点C1 通信范围内的邻居节点集合N(C1) ;
③找出邻居节点集合N(C1) 中剩余能量Er 最大的节点C2;
④移动Agent 迁移至句,且LifeTime -1 ,并将节点C2 标记为visited;
⑤按照Disk(C2, rc) 找出节点Cz 通信范围内的邻居节点集合N(c2) ;
⑥按照②③步骤依次找出移动Agent 迁移的下一跳节点直到"且满足Cj εDisk(ci; , rc);
⑦移动Agent 返回至簇首节点Cj , 且当前Round=l ,表示完成一轮的迁移过程;
⑧重复以上步骤直至LifeTime=0 。
4 模型评估
4. 1 节能分析
参照文献[5J 的移动Agent 能耗模型来进行基于Agent 的温室无线传感网络分簇管理模型的能耗分析。在此仅以簇内能耗分析为例。设移动Agent 的大小为M bits ,节点传感数据为N bits ,节点P1,P2 带宽为BW 的信息传送时间为
tm=σ(P1,P2)+(M+N)/BW
其中, σ(P1,P2)是网络延迟。没有采用移动Agent 时,簇内节点向簇首信息传送所消耗的总能量为:
其中, i=0 , 1, … ,n; n 表示节点的总数;tr 表示数据请求时间; ts 表示传感节点向簇首发送信息节点需要的时间zFf 表示传感节点采集信息消耗的能量吵t 表示节点的传输能耗。
采用移动Agent 时,消耗的总能量为
4.2 网络生命期仿真
为了验证文中模型在延长网络生命期上的优越性,给出了与传统分簇方法的仿真对比图。传统分簇方法中节点将采集数据直接发送至簇首节点。实验中随机布置100 个传感器节点,对比2 种情况下的生命期。具体仿真对比图见图3: 图中传统分簇方法在1 300 轮时节点趋于全部死亡,基于Agent 的分簇方法在1 700 轮时节点趋于全部死亡;后者生存轮数较前者延长,有效地延长了网络生命期。
5.结语
针对温室结构的固有特点,将Agent 技术引入到温室无线测控网络中,构建了基于Agent 的温室无线传感网络分簇管理模型,创建了本地静态Agent 和移动Agent 两种Agent ,由本地静态Agent 负责簇头选举计算,移动Agent 负责传感数据采集。由分析可知,基于Agent 的温室无线传感网络分簇管理模型能够大大节约节点能耗。与传统分簇方法仿真对比进一步得出该模型延长网络生命期的有效性。但是该模型中未涉及移动Agent 具体的传感数据融合过程,下一步的工作重点就是完善移动Agent 结构中的处理代码,以便更好地完成数据融合。