«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (2): 221-229  DOI: 10.19678/j.issn.1000-3428.0053812
0

引用本文  

党小超, 李月霞, 郝占军, 等. 一种基于改进蚁群算法的三维K-栅栏覆盖算法[J]. 计算机工程, 2020, 46(2), 221-229. DOI: 10.19678/j.issn.1000-3428.0053812.
DANG Xiaochao, LI Yuexia, HAO Zhanjun, et al. A 3D K-Barrier Coverage Algorithm Based on Improved Ant Colony Algorithm[J]. Computer Engineering, 2020, 46(2), 221-229. DOI: 10.19678/j.issn.1000-3428.0053812.

基金项目

国家自然科学基金(61662070,61762079);甘肃省科技重点研发项目(1604FKCA097,17YF1GA015);甘肃省科技创新项目(17CX2JA037,17CX2JA039)

通信作者

郝占军(通信作者), 副教授

作者简介

党小超(1963-), 男, 教授, 主研方向为物联网、传感器网络;
李月霞, 硕士;
张彤, 硕士

文章历史

收稿日期:2019-01-25
修回日期:2019-03-27
一种基于改进蚁群算法的三维K-栅栏覆盖算法
党小超1,2 , 李月霞1 , 郝占军1,2 , 张彤1     
1. 西北师范大学 计算机科学与工程学院, 兰州 730070;
2. 甘肃省物联网工程研究中心, 兰州 730070
摘要:为解决三维环境下无线传感器网络的K-栅栏覆盖问题,提出一种改进的蚁群优化算法3D-ACO。将三维表面映射到二维平面进行网格划分,通过计算网格梯度并引入空间权重及部署方向角来改进蚁群算法寻找最短路径构建栅栏,采用移动节点填补栅栏间隙以确保构建强栅栏。实验结果表明,与strong optimal和strong greedy算法相比,该算法能够在有效提高节点利用率的同时降低节点能耗,并且在三维环境下所构建的栅栏覆盖具有较强的自适应性。
关键词无线传感器网络    栅栏覆盖    蚁群算法    网格划分    空间权重    部署方向角    
A 3D K-Barrier Coverage Algorithm Based on Improved Ant Colony Algorithm
DANG Xiaochao1,2 , LI Yuexia1 , HAO Zhanjun1,2 , ZHANG Tong1     
1. College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China;
2. Gansu Province Internet of Things Engineering Research Center, Lanzhou 730070, China
Abstract: To address the K-barrier coverage problem of Wireless Sensor Network (WSN) in 3D environment, this paper proposes the 3D-ACO, an improved ant colony optimization algorithm.The 3D surface is mapped to a 2D plane for meshing generation.The spatial weight and deployment direction angle are introduced by mesh gradient to improve the ant colony algorithm, thus finding the shortest path to construct the barrier.The mobile nodes are used to fill the gaps between the barriers, so as to ensure the constructed barriers are strong barriers.Experimental results show that compared with the strong optimal and strong greedy algorithms, the proposed algorithm can effectively improve the utilization of nodes while reducing the energy consumption of nodes.Besides, the barrier coverage constructed in 3D environment has strong adaptability.
Key words: Wireless Sensor Network(WSN)    barrier coverage    ant colony algorithm    meshing generation    spatial weight    deployment direction angle    
0 概述

无线传感器网络(Wireless Sensor Network,WSN)中的栅栏覆盖(Barrier Coverage,BC)问题是该领域的研究热点。栅栏覆盖问题是指在特定区(一般为狭长的带状区域)的边界部署若干个传感器节点构建的传感器网络,在入侵监测方面, 主要关注入侵目标运动路径的覆盖情况, 即考察入侵目标穿越传感器网络时被监测的情况[1]。目前关于栅栏覆盖的研究工作多数基于理想环境下的二维平面, 而现实应用场景, 比如森林防护方面的火势蔓延的动态监测、水域中对外来物种侵入的监测、化工业方面对污染物扩散程度的监测等, 都涉及到复杂地形的三维环境, 因此, 在三维环境下构建栅栏覆盖具有重要的意义。

目前, 栅栏覆盖的研究主要针对构建栅栏、修补栅栏间隙以及在栅栏覆盖中提高节点利用率和降低能耗3个方面。

关于构建栅栏覆盖的相关研究较多。文献[2]通过移动最少数量的传感器, 并以最小的能量成本构建K-栅栏覆盖。文献[3]利用匈牙利算法移动节点完成弱栅栏的构建, 并对水面栅栏覆盖进行研究, 但是弱栅栏容易造成监测事件的丢失。文献[4]利用具有转动能力的移动传感器节点构建强栅栏, 但有向传感器节点检测范围有限, 不适合全方位监测事件。文献[5]通过构建有向栅栏图对目标栅栏区域进行强栅栏的构建。文献[6]针对具有有限移动能力的传感器节点构建K-栅栏覆盖问题进行了相应研究。文献[7]利用移动节点对已存在的栅栏间隙进行填补, 提出基于节点重部署的三维栅栏构建算法。文献[8]提出一种分布式算法, 通过分区技术在不规则形状的长条区域中构建栅栏。文献[9]提出针对WSN中存在位置误差时的栅栏覆盖构建方法。

在传感器最初随机部署以及节点工作一段时间后, 可能会出现栅栏间隙, 这将导致重要事件数据的漏失。为了避免这种情况的发生, 有必要进行栅栏间隙的修补。文献[10]研究了有向传感器网络的间隙问题, 通过确定性部署提出了SRA和CRA 2种间隙修复算法。文献[11]提出一种协调传感器巡逻算法CSP, 通过移动节点监视网络中的各个节点以发现栅栏间隙, 从而实现存在栅栏间隙时的最优修补。文献[12]提出一种覆盖间隙修复算法CGR, 通过检测网络中的低能量节点, 移动该节点周围的可移动节点进行栅栏修复。文献[13]通过移动动态传感器节点来填补栅栏间隙, 并与已部署静态无线传感器节点形成强栅栏, 从而有效地实现混合WSN中的栅栏覆盖, 但所提算法的节点移动能耗并未明显降低。

栅栏覆盖构建算法的性能和栅栏间隙修补的质量可以从节点使用数量和总能耗两方面进行评价。文献[14]通过引入多唤醒的调度机制对节点进行唤醒来降低能耗, 进而实现无线传感器网络覆盖性能的优化。文献[4]研究了移动传感器能量消耗与节点感知半径的关系。文献[15]提出随机化部署节点的非线性栅栏, 通过减少可移动节点的移动距离, 降低整个网络的能量消耗。文献[16]提出一种冗余传感器睡眠调度的分布式协议, 该协议无需事先知道节点的物理位置信息, 可以减少移动传感器数量。文献[17]通过仿生智能算法布谷鸟搜索进行网络覆盖方面的优化。文献[18]提出当部署的传感器节点密度较大时, 在原有节点连通部分的基础上, 用贪婪算法和最优匹配算法完成对栅栏间隙的填补, 减少使用节点数量, 进而实施栅栏的再优化。然而, 上述文献研究的是在二维理想环境下的栅栏覆盖, 并不适用于复杂的三维环境。文献[19]将三维平面二维化, 利用贪婪算法对目标区域进行覆盖, 但该研究是针对区域覆盖方面的研究, 并不适用三维环境下的入侵监测研究。文献[20]通过随机部署节点, 利用差分进化算法对其进行优化, 实现对监测区域的覆盖, 但该方法是对三维区域进行覆盖, 并不能实现栅栏覆盖相对应的入侵监测。

为更好地实现对实际三维环境下的入侵监测, 本文提出一种三维蚁群优化(Three Dimensional Ant Colony Optimization, 3D-ACO)算法, 用以构建三维栅栏覆盖。将三维区域二维网格化, 计算网格梯度并引入空间权重和部署方向角, 采用3D-ACO算法构建栅栏, 利用移动节点进行栅栏间隙填补, 进而提高节点的利用率并降低网络能耗。本文使用混合无线传感器网络, 并且所用的传感器均为全向感知传感器。

1 全向强栅栏覆盖模型 1.1 节点感知模型

本文所用的传感器节点感知模型为全向感知模型, 如图 1所示。图 1(a)为节点p在三维环境下的感知模型, 以三元数组 < p, r, θ>表示, 其中传感器节点的位置坐标用pi(xi, yi, zi)表示, r为节点的感知半径, θ为节点的部署方向角, q为入侵对象, qp节点感知范围内。图 1(b)为节点在二维下的感知模型。

Download:
图 1 全向感知模型 Fig. 1 Omnidirectional perception model

受物理地貌因素影响, 三维环境相对较为复杂, 存在比较陡峭的坡峰, 随机部署会造成一定数量节点的浪费, 致使节点利用率不高。蚁群算法在复杂路线中能够寻找最优路径, 但传统的蚁群算法不适用于在三维环境下构建栅栏覆盖, 且存在容易陷入局部最优解的问题。本文在待部署区域D中随机抛撒节点, 将部署区域进行网格划分并引入网格梯度, 通过空间权重和部署方向角来改进传统的蚁群算法, 从而减少部署节点数量, 并降低其部署难度。本文假设WSN中传感器节点为同构节点, 即所有节点的移动能耗、感知半径、感知范围均相同。在对全向无线传感器网络强1-栅栏构建问题分析之前做出如下定义:

定义1(节点间距离)  相邻传感器节点p1(坐标为(x1, y1, z1))和p2(坐标为(x2, y2, z2))的距离称为传感器节点之间的距离, 以$d\left(p_{1}, p_{2}\right)=\sqrt{\left(x_{2}-x_{1}\right)^{2}+\left(y_{2}-y_{1}\right)^{2}+\left(z_{2}-z_{1}\right)^{2}}$表示。

定义2(节点感知范围)  节点的感知模型为概率感知模型, 即节点感知入侵者的概率随着入侵者和节点之间的距离增加而减小, 如图 1(b)中节点感知范围内任意一点q, 节点p能感知到点q的概率Pq为:

$ {P_q} = \left\{ {\begin{array}{*{20}{l}} {\frac{1}{{1 + c \times d\left( {p,q} \right)}},d\left( {p,q} \right) \le r}\\ {0,d\left( {p,q} \right) > r} \end{array}} \right. $

其中, c为常数。

定义3(节点运动能耗)  节点的移动距离和单位移动能耗的乘积。

定义4(环形强栅栏覆盖)  如果监测区域是理想的平坦地面, 则构建的栅栏近似于直线, 如图 2(a)所示。当监测区域为三维环境, 且存在陡峭坡峰(图 2(b)中阴影部分)时, 构建的栅栏如图 2(b)所示, 称为环形强栅栏。平坦地面上的K-栅栏构建是三维环境下环形K-栅栏构建的一种特殊情形。

Download:
图 2 强1-栅栏覆盖示意图 Fig. 2 Schematic diagram of strong 1-barrier coverage
1.2 网格梯度划分模型

假设需要部署栅栏覆盖的三维复杂环境是长为L、宽为W的丘陵地带, 受地物地貌因素影响, 若存在较陡峭的坡峰, 随机部署会造成节点浪费。针对上述问题, 本文通过网格梯度来限制蚂蚁走向。网格梯度用来表示映射在二维平面方格上三维环境的陡峭程度。该方法对部署节点不再是强行部署, 而是采用划分网格, 并计算其梯度大小来选择部署路径的走向。在混合WSN中构建强1-栅栏时, 本文将部署区域划分成若干个网格, 不同网格的三维高度存在差别, 使用沿坡面上任一方向上高度变化的程度表示网格梯度, 其中一个网格的坡度与方向梯度如图 3所示。

Download:
图 3 坡度与方向梯度示意图 Fig. 3 Graph of slope and direction gradient

本文定义ϕ为沿ψ方向的方向梯度角, 阴影部分为传感器节点p的感知范围, h表示坡面的垂直高度, l表示水平距离, 两者之比为坡度, 用i表示。为坡面与水平面的夹角。

$ i = \frac{h}{l} = \tan \vartheta $ (1)

传感器节点p所在网格坡面沿ψ方向的网格方向梯度g为:

$ g = \frac{{\partial h\left( {x,y} \right)}}{{\partial x}}{x_0}\cos \psi + \frac{{\partial h\left( {x,y} \right)}}{{\partial y}}{y_0}\cos \left( {\frac{{\rm{ \mathsf{ π} }}}{2} - \psi } \right) $ (2)

其中, h(x, y)为坐标(x, y)处的高程, ψ表示与坡向的夹角。当ψ=0时, 梯度和坡度相等。

计算出划分后的每个网格的网格梯度, 放入网格梯度集合G中, 据此引入空间权重。

图 4所示, 地形高低由颜色从浅到深表示, 白色节点为不可移动的静态节点, 黑色节点为可移动的动态节点。假设已经获知节点pi位置坐标为(xi, yi, zi), 随机抛撒节点, 执行3D-ACO进行栅栏覆盖的构建, 如图 4(a)所示。之后通过移动节点填补栅栏间隙, 如图 4(b)中箭头所示, 方格表示蚂蚁在构建栅栏时, 栅栏间隙处的待填补节点位置。改进的蚁群算法在构建栅栏的过程中根据已经加入的空间权重和部署方向角选择下一跳传感器节点。当部署区域内不存在满足条件的节点时, 算法会寻找最优的网格作为待填补虚拟节点位置, 该位置将被标记, 下一条栅栏构建不会重复选取该网格作为部署路径。

Download:
图 4 栅栏构建示意图 Fig. 4 Schematic diagram of barrier construction
2 3D-ACO算法

传统的蚁群算法通过蚂蚁个体间信息的传递, 多个蚂蚁共同协作, 从而寻找蚁穴到食物的最短路径。本文提出一种适用于三维环境下的蚁群算法3D-ACO, 通过引入空间权重和部署方向角度, 限制蚂蚁的活动方向, 使其适用于三维环境下的栅栏构建。将三维待部署区域二维网格化, 计算出各个网格梯度, 根据网格梯度大小由小到大排序, 从当前节点遍历所有节点, 随后随机抛撒m个节点, 执行3D-ACO算法。考虑到构建栅栏为强栅栏和节点的感知范围可能受环境影响, 节点的真实半径有所不同, 所以, 该算法限制蚂蚁的移动能力, 并在无合适节点的位置留下虚拟节点位置, 再通过移动节点填补栅栏间隙, 以确保构建强栅栏。3D-ACO算法框架如图 5所示。

Download:
图 5 3D-ACO算法框架 Fig. 5 Framework of 3D-ACO algorithm
2.1 蚂蚁移动能力的限制

为了构建三维环境下的强栅栏覆盖, 需要对蚂蚁的移动能力进行一定程度上的限制。这是因为WSN的强栅栏覆盖为防止不丢失事件监测, 要求相邻节点间无间隙存在, 即2个节点感知范围内一定存在重叠部分。若节点A和节点B为构建的栅栏覆盖中两相邻节点, 则d(A, B) < 2r。又因本文部署环境是三维山丘陵, 所以传感器部署后的理想感知范围与实际感知到的范围定会存在差距。已知理想探测半径r, 设Rr为节点实际感知半径, 为保证3D-ACO算法构建的是强栅栏, 则有以下定义:

定义5  蚂蚁移动距离小于等于2RrRr=r cos[arctan(i cos ψ)]。

假设传感器节点所在网格范围可近似看作坡度和坡向近似相同的理想坡面, 如图 3所示, g表示沿ψ方向上的网格梯度, 计算公式为:

$ g = \tan \phi $ (3)

由式(1)和式(3)可知:

$ g = i\cos \psi $ (4)

由于地形影响, Rrrψ方向的存在以下关系:

$ {R_r} = r\cos \phi $ (5)

将式(3)、式(4)代入式(5), 得:

$ {R_r} = r\cos \left( {\arctan g} \right) = r\cos \left[ {\arctan \left( {i\cos \psi } \right)} \right] $ (6)

ψ=0时, , 则, 即:

$ {R_r} = r\cos \left[ {\arctan \left( {i\cos \psi } \right)} \right] $ (7)

为构建强栅栏, 相邻节点感知范围一定存在重叠部分。为了保证所构建栅栏为强栅栏, 本文限制蚂蚁的移动能力为2Rr, 当没有合适节点时, 则选定相应填补节点位置, 继续选择下一跳节点。

2.2 启发因子优化

本文通过引入空间权重和选择方向角来改进蚁群算法。在监测区域内随机抛撒传感器节点, 蚂蚁首先从左边界开始出发寻找最优路径, 通过选择方向角和空间权重来优化蚂蚁寻找路径。下面给出空间权重和部署方向角的相关定义, 以及优化函数的详细介绍。

定义6(空间权重)  以起始节点为水平面, 给待选择路径上的网格赋予不同的权值, 称为空间权重。

定义7(部署方向角)  在部署区域D的二维平面内, 当前节点与下一步要选择的节点之间的连线和水平方向的夹角。

下面给出空间权重和部署方向角的优化步骤。

1) 空间权重

本文利用网格方向梯度引入的空间权重来作为蚁群算法的另外一个启发信息。将集合G中各个网格上的节点求出权重, 空间权重用κij表示, 蚂蚁选择下一路径时的选择概率将会受到空间权重的影响, 即空间权重值κij越大, 状态转移概率就越小。

$ {\kappa _{ij}} = \frac{{{g_{\max }} - g}}{g} $ (8)

其中, gmax表示最大梯度值, 即梯度阈值。当节点所在网格梯度比梯度阈值大时, 则重新选择节点。如图 6所示, 节点A与节点B的坡度夹角为为ϑ1, 节点A和节点C的坡度夹角为ϑ2, 节点A和节点C的网格梯度分别为g1g2。当gmax>g1>g2时, κ1>κ2。将空间权重转化为启发因子以改进传统蚁群算法, 对于蚂蚁选择路径而言, 空间权重越大, 则该条路径的选择概率也相应地变大, 即当从节点A选择下一步路径时将选择坡度较平缓的节点B作为下一步选择。

Download:
图 6 基于空间权重的节点选择 Fig. 6 Node selection based on spatial weight

2) 部署方向角

引入空间权重启发因子是为了使ACO算法适用于三维环境下构建栅栏。由于蚂蚁选择路径时所依赖的只有当前节点的pi选择下一节点pj的期望程度和路径的信息量强度, 但这可能使得算法陷入局部最优解, 因此本文引入传感器节点的选择方向角作为蚁群算法的另外一个启发信息。当θ越小时, θij越大, 状态转移概率也越大。

$ {\theta _{ij}} = \frac{{{\rm{ \mathsf{ π} }} - \theta }}{\theta } $ (9)

图 7所示, 0≤θ≤π表示节点的部署方向。当θ=0且所选下一跳节点所在网格的竖直方向梯度均相同时, 节点部署方向为水平方向是最佳的下一跳节点位置。节点A与节点B在二维环境下的夹角为θ, 节点A2和节点C在二维环境下的夹角为θ1, 由式(9)可知, 当节点A选择下一步路径时将选择节点B作为下一步选择。

Download:
图 7 基于部署方向角的节点选择 Fig. 7 Node selection based on deployment direction angle

根据式(8)和式(9), 状态转移概率做如下更改:

$ P_{ij}^k\left( t \right) = \left\{ {\begin{array}{*{20}{l}} {\frac{{\tau _{ij}^\alpha \left( t \right)\eta _{ij}^\beta \left( t \right){\theta _{ij}}\left( t \right){\kappa _{ij}}\left( t \right)}}{{\sum\limits_{s \in {G_{{\rm{allowed}}\left( k \right)}}} {\tau _{is}^\alpha } \left( t \right)\eta _{is}^\beta \left( t \right){\theta _{is}}\left( t \right){\kappa _{is}}\left( t \right)}},j \in {G_{{\rm{allowed}}\left( k \right)}}}\\ {0,j \notin {G_{{\rm{allowed}}\left( k \right)}}} \end{array}} \right. $ (10)

式(10)代表在t时刻蚂蚁k由城市i转移到节点j的转移概率。

2.3 间隙填补

在有向节点模型中, 节点不仅需要移动, 还有可能需要转动, 因此, 节点的能量消耗由转动和移动能量消耗组成。在本文中, 节点采用全向感知模型, 所消耗能量仅为移动节点的消耗。如图 8所示, 在节点移动至待填补位置的过程中, 希望总能耗最小, 故而选择与待填补位置的距离最小的节点进行移动。

Download:
图 8 栅栏间隙填补示意图 Fig. 8 Schematic diagram of barrier gap filling

J为节点移动能耗, WSN中移动节点的运动能耗Jpigi=3.6dpigi, 其中, pi代表移动节点, gi代表待填补位置, dpigi表示移动节点与待填补节点的距离, 并且每移动1个单位长度就消耗3.6 J的能量。移动填补间隙节点有m个, 则所有移动节点的运动能耗之和为构建栅栏的总能耗$J_{\mathrm{t}}=\sum\limits_{i=1}^{m} J_{p_{i} g_{i}}$

由节点位置以及待填补位置的坐标和网格梯度, 可以求得移动节点的移动距离。对于所有的传感器节点, 可以根据距离目标位置的远近选择节点进行移动填补。关于能耗部分将在实验仿真进行详细分析。

2.4 栅栏构建过程

在传统蚁群算法中, 蚂蚁选择下一节点仅依赖τijηij2个因素, 这可能会使节点陷入局部最优解。因此, 本文引入节点的空间权重和部署方向角来限制信息素浓度和选择下一跳节点路径的期望程度对蚂蚁选择概率的影响, 并利用移动节点填补栅栏间隙确保构建强栅栏。随机抛撒节点之后, 划分网格, 不同的节点所在位置高低不同, 即空间权重不同, 蚂蚁从左边界开始寻找最优路径, 当遇到不同的路径时, 通过改进的蚁群算法选择最优路径。当没有可选择节点时, 记录待填补间隙位置, 之后进行移动填补。假设蚂蚁从头出发, 根据优化后的信息寻找最优路径, 以构建强栅栏, 具体步骤如下:

步骤1  在待部署区域D中随机抛撒n个节点, 划分网格, 并记录节点位置和所在网格。

步骤2  计算节点所在网格的网格梯度将其作为节点的空间权重κij, 计算节点间的夹角引入部署方向角θij

步骤3  将上述2个因子加入蚁群算法, 执行3D-ACO算法, 开始遍历传感器节点。

步骤4  遍历所有节点, 更新信息素, 并记录间隙位置。

步骤5  算法迭代, 输出节点使用数量最少的栅栏以及各节点位置。

步骤6  判断节点间距离d < 2Rr, 若是, 继续遍历下一节点; 否则, 执行步骤7。

步骤7  选择距离间隙最短移动距离的节点, 进行节点填补。若未到达终点, 执行步骤6;若到达终点边界, 结束栅栏构建。

2.5 3D-ACO算法性能分析

传统蚁群算法中蚂蚁的转移概率Pijk(t)由τijηij以及两者的作用程度αβ决定。当用于比较复杂的三维环境下寻找最优路径时, 传统的蚁群算法并未考虑到实际环境部署位置高低的问题, 在节点之间收发信息时会造成能耗浪费, 且容易陷入局部最优解。本文引入部署方向角和空间权重, 将κijθij作为改进蚁群算法的启发信息, 并通过能量消耗、收敛速度和局部最优问题来分析空间权重和部署方向角对算法性能的提升作用。

1) 能耗分析

本文构建栅栏所用节点需要消耗能量主要分为:节点发射信息的能量消耗es, 接收信息后处理信息的能量消耗eb, 节点发射信息到节点接收信息之间的能量消耗el, 移动节点所需要的能耗Jt, 其中, elJt主要由节点间距离决定。全部能量消耗计算公式为:

$ {E_{\rm{t}}} = {e_{\rm{s}}} + {e_{\rm{b}}} + {e_1} + {J_{\rm{t}}} $ (11)

传统蚁群算法、本文3D-ACO算法的总能耗分别用式(12)和式(13)表示。

$ {E_{{\rm{ACO}}}} = {N_1}{e_{\rm{s}}} + {Q_1}{e_{\rm{b}}} + \sum\limits_{i = 1}^m {{d_{1ij}}} {e_1} + {J_{1{\rm{t}}}} $ (12)
$ {E_{3{\rm{D}} - {\rm{ACO}}}} = N{e_{\rm{s}}} + Q{e_{\rm{b}}} + \sum\limits_{i = 1}^m {{d_{ij}}} {e_1} + {J_{\rm{t}}} $ (13)

其中, NN1为发射信息节点数量, QQ1为接收信息节点数量。可以看出, 节点能量消耗主要与节点之间传播信息距离以及移动节点填补间隙所需要消耗能量相关。由式(10)可知, 节点i在选择下一跳节点j时, 转移概率Pijk(t)的限制因素里有κijθij。假设在夹角θij不同, 其他条件相同时, 在蚂蚁选择下一跳节点趋于直线的概率方面, 传统蚁群算法与本文算法相比有:

$ P_{1ij}^k\left( t \right) < P_{ij}^k\left( t \right) $

同理, 当节点与之前节点高度差不同(空间权重κij不同), 其他条件相同时, 在蚂蚁选择下一跳节点趋于直线的概率方面, 两算法相比有:

$ P_{1ij}^k\left( t \right) < P_{ij}^k\left( t \right) $

因此, 本文算法所构建更趋向直线且平缓的栅栏覆盖, 也即两蚁群算法中选择下一跳节点总距离有:

$ \sum {{d_{1ij}}} > \sum {{d_{ij}}} $

用式(12)减去式(13)得到:

$ \begin{array}{l} {E_{{\rm{ACO}}}} - {E_{3{\rm{D}} - {\rm{ACO}}}} = \left( {{N_1} - N} \right){e_{\rm{s}}} + \left( {{Q_1} - Q} \right){e_{\rm{b}}} + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\left( {\sum\limits_{i = 1}^m {{d_{1ij}}} - \sum\limits_{i = 1}^m {{d_{ij}}} } \right){e_1} + \left( {{J_{{\rm{1t}}}} - {J_{\rm{t}}}} \right) \end{array} $ (14)

在节点发射信息方面, 传统的蚁群算法与3D-ACO算法都是由节点自身广播信息, 所以, 3D-ACO算法相较于传统的蚁群算法并未增加能耗。同理, 节点接收信息并处理信息时也未增加能耗, 故可以忽略这两部分能耗。现在只考虑节点移动能耗, 以及节点发射信息到节点接收信息之间的能量消耗el, 而这两部分能耗主要与节点移动距离有关系。由于传统的蚁群算法中∑d1ij要大于3D-ACO算法中的∑dij, 因此式(14)大于0。所以, 3D-ACO算法要比传统蚁群算法能耗低。

2) 收敛速度和局部最优问题

传统的蚁群算法前期由于信息匮乏, 收敛速度较慢, 而且其选择下一跳节点时倾向于选择距离最近的节点, 容易陷入局部最优解。本文算法通过网格划分, 引入空间权重和部署方向角, 提前排除不适用下一跳节点选择的节点, 以减少迭代次数, 提高收敛速度, 并且结合空间权重和部署方向角选择更适合构建栅栏覆盖的下一跳节点, 避免陷入局部最优问题。因此, 在三维环境下, 本文3D-ACO算法性能更优。

3 仿真实验

本文仿真实验部署区域为300 m×200 m的矩形区域。随机抛撒传感器节点数量n, 传感器节点感知范围均为球体, 且节点具备移动能力, 本文对监测区域进行强2-栅栏构建的仿真实验。若无特别说明, 实验参数值均以表 1所示参数为准, 仿真实验结果均取100次随机实验平均值, 迭代次数定为300。

下载CSV 表 1 实验参数 Table 1 Experimental parameters

本文从节点的自身因素出发根据节点感知半径的不同进行比较, 此外, 选取strong optimal和strong greedy 2种算法进行仿真实验比较, 并参考其实验数据。在下文实验中, 节点数量为原抛撒节点数量, 所用节点数量是构成栅栏的节点数量, 节点总能耗为全部节点消耗能量, 节点平均能耗为总能耗与所有节点数量的比值。

3.1 感知半径对结果的影响

传感器节点的感知范围随着其感知半径变化而变化, 本文选取了不同感知半径的传感器节点进行仿真实验, 并对引入空间权重和部署方向角的3D-ACO算法进行性能分析, 结果如图 9~图 11所示。

Download:
图 9 节点感知半径对节点总能耗的影响 Fig. 9 Influence of perceived radius of nodes on total energy consumption of nodes
Download:
图 10 节点感知半径对节点平均能耗的影响 Fig. 10 Influence of perceived radius of nodes on average energy consumption of nodes
Download:
图 11 节点感知半径对所用节点数量的影响 Fig. 11 Influence of perceived radius of nodes on number of nodes required

图 9可以看出, 节点总的能量消耗随着节点感知半径的增加而减小。这是由于随着节点感知半径的增加, 节点相应的感知范围也增加, 移动节点移动距离相应减少, 进而使得传感器节点总能耗降低。

图 10可以看出, 随着传感器节点感知半径的增加, 传感器节点平均能耗逐渐降低, 随后趋于平缓。这是因为总能耗降低, 而总节点数量不变, 进而使得节点的平均消耗能量降低。

图 11可以看出, 随着传感器节点感知半径的增加, 传感器节点使用的数量降低。这是因为传感器节点半径的逐渐增大, 缩小了节点之间的部署方向角, 此外, 由于空间权重优化因子的优化, 栅栏构建更为平缓的栅栏覆盖, 构建栅栏使用节点个数减少。

3.2 节点数量对结果的影响

在保证强栅栏可以构建的前提下, 尽可能地减少节点的使用数量以对比相关算法的优劣。strong optimal和strong greedy算法对于节点数量有一定的要求, 因此本文实验节点数从100开始, 以20为梯度值增加, 直至200。节点总能耗、平均能耗以及构建栅栏节点使用数量的结果如图 12~图 14所示。

Download:
图 12 节点数量对节点总能耗的影响 Fig. 12 Influence of number of nodes on total energy consumption of nodes
Download:
图 13 节点数量对节点平均能耗的影响 Fig. 13 Influence of number of nodes on average energy consumption of nodes
Download:
图 14 节点数量对形成栅栏所需节点个数的影响 Fig. 14 Influence of number of nodes on number of nodes required to form a barrier

图 12图 13可以发现, 3种算法的总能耗与传感器节点的平均能耗均随着抛撒节点数量的增加而明显减少, 在同样的节点数量情况下, 3D-ACO算法的总能耗和节点平均能耗则明显地低于其他2种算法。这是因为随着部署区域内传感器节点密度变大, 节点空间距离缩小, 所以构建栅栏时节点移动距离减少, 故而使得总能耗降低。随着总能耗的降低, 而节点数量增加, 平均能耗也降低。从图 14可以看出, 在构建栅栏过程中, 3种算法使用传感器的数量随抛撒节点的增加而变多, 最终趋于平缓。这是因为随着节点数量的增多, 算法会选择更加平缓的路径, 但随着迭代次数的增加, 最优的路径将会被确定。同时还可以看出, 3D-ACO算法使用节点数量明显低于其他2种算法的节点数量, 且增加趋势更为平缓。这是因为3D-ACO算法通过空间权重和部署方向角对蚂蚁寻找节点的限制, 所以在构建栅栏覆盖时, 更倾向于选择空间距离小、署方向角度小的栅栏覆盖路径。

3.3 栅栏数量对结果的影响

本文在同一部署区域的不同栅栏数量K的情况下, 对节点总能耗、平均能耗、需求的总节点数进行比较, 结果分别如图 15~图 17所示。

Download:
图 15 栅栏数量对节点总能耗的影响 Fig. 15 Influence of number of barriers on total energy consumption of nodes
Download:
图 16 栅栏数量对节点平均能耗的影响 Fig. 16 Influence of number of barriers on average energy consumption of nodes
Download:
图 17 栅栏数量对形成栅栏所需节点个数的影响 Fig. 17 Influence of number of barriers on number of nodes required to form a barrier

图 15图 16可以看出, 随着构建栅栏数的增加, 所需传感器节点变多, 因此移动节点消耗总能耗变大, 其平均能耗也在增长。但3D-ACO算法的总能耗和平均能耗相较于其他2种算法越来越小。

图 17可以看出, 在构建相同数量的栅栏情况下, 3D-ACO算法所需的节点数远低于其他2种算法, 例如当栅栏数K=6时, 3D-ACO算法仅需要90个节点左右, 其他2种算法则需要120个节点左右。这是因为3D-ACO算法栅栏的构建存在栅栏重叠的可能, 这种情况在第2节中就已经介绍。所以栅栏覆盖构建过程中随着栅栏条数的增多, 栅栏交叉的几率增大, 节点使用数量减少。

4 结束语

本文提出一种基于改进蚁群算法的三维K-栅栏覆盖算法。引入空间权重改进蚁群算法使其适用于三维栅栏构建, 利用部署方向角防止蚁群算法陷入局部最优, 同时通过限制蚁群的移动能力以及移动节点填补栅栏间隙以确保强栅栏的形成。仿真实验结果表明, 3D-ACO算法在三维环境下部署栅栏时, 可有效提高节点使用率, 并且所构建的栅栏具有较强的自适应性。由于本文算法基于全向感知节点, 下一步将针对在三维环境中有向无线传感器网络的栅栏覆盖问题进行研究。

参考文献
[1]
HAN Ruisong.Research on techniques of coverage enhance-ment and topology control for wireless multimedia sensor networks[D].Beijing: Beijing Jiaotong University, 2018.(in Chinese)
韩睿松.无线多媒体传感器网络覆盖增强与拓扑控制技术研究[D].北京: 北京交通大学, 2018.
[2]
ZHANG Yanhua, SUN Xingming, WANG Baowei. Efficient algorithm for k-barrier coverage based on integer linear programming[J]. China Communications, 2016, 13(7): 16-23. DOI:10.1109/CC.2016.7559071
[3]
TAO Jianlin, MIAO Chunyu, WU Mingdan. Study on a method of WSN weak barrier covering for water surface[J]. Chinese Journal of Sensors and Actuators, 2018, 31(11): 142-147. (in Chinese)
陶建林, 苗春雨, 吴鸣旦. 一种水面WSN弱栅栏覆盖方法研究[J]. 传感技术学报, 2018, 31(11): 142-147.
[4]
BARNOY A, RAWITZ D, TERLECKY P. Maximizing barrier coverage lifetime with mobile sensors[J]. Computer Science, 2017, 8125: 97-108.
[5]
FENG Lin, SUN Zhenlong, QIU Tie.Genetic algorithm-based 3D coverage research in wireless sensor networks[C]//Proceedings of the 7th International Conference on Complex, Intelligent, and Software Intensive Systems.Washington D.C., USA: IEEE Press, 2013: 623-628.
[6]
BAN Dongsong, WEN Jun, JIANG Jie, et al. Constructing k-barrier coverage in mobile wireless sensor networks[J]. Journal of Software, 2011, 22(9): 2089-2103. (in Chinese)
班冬松, 温俊, 蒋杰, 等. 移动无线传感器网络k-栅栏覆盖构建算法[J]. 软件学报, 2011, 22(9): 2089-2103.
[7]
FAN Xinggang, HAO Xiang, CHENG Sihao, et al. Node redeployment for 3D barrier coverage in underwater sensor networks[J]. Chinese Journal of Sensors and Actuators, 2018, 31(2): 304-311. (in Chinese)
范兴刚, 蒿翔, 程斯颢, 等. 基于节点重部署的水下传感器网络三维栅栏覆盖[J]. 传感技术学报, 2018, 31(2): 304-311. DOI:10.3969/j.issn.1004-1699.2018.02.025
[8]
LIU B, DOUSSE O, WANG J, et al.Strong barrier coverage of wireless sensor networks[C]//Proceedings of the 9th ACM International Symposium on Mobile Ad Hoc Networking and Computing.New York, USA: ACM Press, 2008: 411-420.
[9]
WANG Zhibo, CHEN Honglong, CAO Qing, et al. Achieving location error tolerant barrier coverage for wireless sensor networks[J]. Computer Networks, 2017, 112: 314-328. DOI:10.1016/j.comnet.2016.11.014
[10]
CHEN Jiaoyan, WANG Bang, LIU Wenyu, et al. Rotating directional sensors to mend barrier gaps in a line-based deployed directional sensor network[J]. IEEE Systems Journal, 2014, 11(2): 1027-1038. DOI:10.1109/JSYST.2014.2327793
[11]
HE Shibo, CHEN Jiming, LI Xu, et al.Cost-effective barrier coverage by mobile sensor networks[C]//Proceedings of INFOCOM'12.Washington D.C., USA: IEEE Press, 2012: 819-827.
[12]
MOSTAFAEI H, MEYBODI M R. An energy efficient barrier coverage algorithm for wireless sensor networks[J]. Wireless Personal Communications, 2014, 77(3): 2099-2115. DOI:10.1007/s11277-014-1626-1
[13]
WANG Zhibo, LIAO Jilong, CAO Qing, et al. Achieving k-barrier coverage in hybrid directional sensor networks[J]. IEEE Transactions on Mobile Computing, 2014, 13(7): 1443-1455. DOI:10.1109/TMC.2013.118
[14]
DANG Xiaochao, LI Qi, HAO Zhanjun. A sleep scheduling algorithm based on multiple wake-up mechanism[J]. Computer Engineering, 2018, 44(6): 74-79. (in Chinese)
党小超, 李琦, 郝占军. 一种基于多唤醒机制的休眠调度算法[J]. 计算机工程, 2018, 44(6): 74-79. DOI:10.3969/j.issn.1000-3428.2018.06.014
[15]
BAHETI A, GUPTA A.Non-linear barrier coverage using mobile wireless sensors[C]//Proceedings of 2017 IEEE Symposium on Computers and Communications.Washington D.C., USA: IEEE Press, 2017: 804-809.
[16]
GUPTA H P, RAO S V, VENKATESH T. Sleep scheduling protocol for k-coverage of three-dimensional heterogeneous WSNs[J]. IEEE Transactions on Vehicular Technology, 2015, 65(10): 8423-8431.
[17]
PAN Hao, SHU Fuhua. Wireless sensor coverage multi-objective optimization improved based on cuckoo search algorithm[J]. Jilin Normal University Journal(Natural Science Edition), 2017, 38(2): 125-129. (in Chinese)
潘浩, 舒服华. 基于改进布谷鸟算法的无线传感网络覆盖多目标优化[J]. 吉林师范大学学报(自然科学版), 2017, 38(2): 125-129.
[18]
LIU Wei, CUI Li. Ant based approach to the optimal deployment in wireless sensor networks[J]. Journal on Communications, 2009, 30(10): 24-33. (in Chinese)
刘巍, 崔莉. 基于蚁群算法的传感器网络节点部署设计[J]. 通信学报, 2009, 30(10): 24-33.
[19]
WANG Dandan, XU Tingrong. A method of coverage in three-dimensional WSN based on directional gradient[J]. Computer Applications and Software, 2017, 34(9): 138-141. (in Chinese)
王丹丹, 徐汀荣. 基于方向梯度的WSN三维覆盖策略[J]. 计算机应用与软件, 2017, 34(9): 138-141. DOI:10.3969/j.issn.1000-386x.2017.09.028
[20]
SUN Shunyuan, SUN Li, CHEN Shu. Method of deployment and coverage for wireless sensor networks in three dimensional environment[J]. Journal of Jilin University(Science Edition), 2016, 54(5): 1109-1116. (in Chinese)
孙顺远, 孙丽, 陈树. 三维环境下无线传感器网络的部署覆盖方法[J]. 吉林大学学报(理学版), 2016, 54(5): 1109-1116.
Download:
图 1 全向感知模型 Fig. 1 Omnidirectional perception model
Download:
图 2 强1-栅栏覆盖示意图 Fig. 2 Schematic diagram of strong 1-barrier coverage
Download:
图 3 坡度与方向梯度示意图 Fig. 3 Graph of slope and direction gradient
Download:
图 4 栅栏构建示意图 Fig. 4 Schematic diagram of barrier construction
Download:
图 5 3D-ACO算法框架 Fig. 5 Framework of 3D-ACO algorithm
Download:
图 6 基于空间权重的节点选择 Fig. 6 Node selection based on spatial weight
Download:
图 7 基于部署方向角的节点选择 Fig. 7 Node selection based on deployment direction angle
Download:
图 8 栅栏间隙填补示意图 Fig. 8 Schematic diagram of barrier gap filling
下载CSV 表 1 实验参数 Table 1 Experimental parameters
Download:
图 9 节点感知半径对节点总能耗的影响 Fig. 9 Influence of perceived radius of nodes on total energy consumption of nodes
Download:
图 10 节点感知半径对节点平均能耗的影响 Fig. 10 Influence of perceived radius of nodes on average energy consumption of nodes
Download:
图 11 节点感知半径对所用节点数量的影响 Fig. 11 Influence of perceived radius of nodes on number of nodes required
Download:
图 12 节点数量对节点总能耗的影响 Fig. 12 Influence of number of nodes on total energy consumption of nodes
Download:
图 13 节点数量对节点平均能耗的影响 Fig. 13 Influence of number of nodes on average energy consumption of nodes
Download:
图 14 节点数量对形成栅栏所需节点个数的影响 Fig. 14 Influence of number of nodes on number of nodes required to form a barrier
Download:
图 15 栅栏数量对节点总能耗的影响 Fig. 15 Influence of number of barriers on total energy consumption of nodes
Download:
图 16 栅栏数量对节点平均能耗的影响 Fig. 16 Influence of number of barriers on average energy consumption of nodes
Download:
图 17 栅栏数量对形成栅栏所需节点个数的影响 Fig. 17 Influence of number of barriers on number of nodes required to form a barrier
一种基于改进蚁群算法的三维K-栅栏覆盖算法
党小超 , 李月霞 , 郝占军 , 张彤