基于简化Rips复形的空洞检测算法

基于简化的Rips复形的无线传感器网络高效覆盖空洞检测算法

张Jing、韩Chu和冯Xin
计算机科学与技术学院,长春理工大学,中国长春130022
通讯应致冯Xin;fengxin@cust.edu.cn
2019年9月21日收到;2020年1月7日接受;2020年2月24日发表
学术编辑:安东尼奥·拉扎罗
© 2020 张Jing 等人版权。本文为开放获取文章,根据知识共享署名许可协议发布,允许在任何媒介中不受限制地使用、传播和复制,前提是原作品被恰当引用。

The appearance of coverage holes in the network leads to transmission links being disconnected, thereby resulting in decreasing the accuracy of data. Timely detection of the coverage holes can effectively improve the quality of network service. Compared with other coverage hole detection algorithms, the algorithms based on the Rips complex have advantages of high detection accuracy without node location information, but with high complexity. This paper proposes an efficient coverage hole detection algorithm based on the simplified Rips complex to solve the problem of high complexity. First, Turan’s theorem is combined with the concept of the degree and clustering coefficient in a complex network to classify the nodes; furthermore, redundant node determination rules are designed to sleep redundant nodes. Second, according to the concept of the complete graph, redundant edge deletion rules are designed to delete redundant edges. On the basis of the above two steps, the Rips complex is simplified efficiently. Finally, from the perspective of the loop, boundary loop filtering and reduction rules are designed to achieve coverage hole detection in wireless sensor networks. Compared with the HBA and tree-based coverage hole detection algorithm, simulation results show that the proposed hole detection algorithm has lower complexity and higher accuracy and the detection accuracy of the hole area is up to 99.03%.

1. 引言

物联网以智慧城市和车联网的形式深入应用于社会生活。作为物联网的底层技术,无线传感器网络(WSNs)由部署在监测区域内的大量传感器节点组成,用于全面感知、采集和传输关于物体的信息,适用于智能交通[1], 事件检测[2], 环境监测[3], 等应用。这些实际应用对无线传感器网络的服务质量提出了较高要求。覆盖率是评估无线传感器网络服务质量的重要指标[4],,众多学者致力于其提升与优化。在[5], 中,针对基于数据融合的覆盖优化问题和技术进行了深入且全面的总结与分类,旨在克服现有解决方案中的不足。文献[6], 推导了覆盖、网络密度和信噪比之间的尺度关系,并表明数据融合可显著改善感知性能通过利用传感器之间的协作来实现覆盖。然而,由于节点的随机部署、位置变更和能量耗尽等原因,网络中的覆盖不可避免地会丢失。因此,在原始网络的未覆盖区域会发生数据丢失或信息未传递,从而降低无线传感器网络的服务质量。这些未覆盖区域被称为覆盖空洞[7]。孔洞的出现不仅破坏了通信链路,降低了数据准确性 [8],还加重了邻近孔洞的边界节点的传输负担,导致空洞范围扩大[9]。因此,发现并定位网络中的覆盖空洞对于保证网络服务质量至关重要。

现有的孔洞检测算法大致可分为以下三类:几何方法、概率方法和拓扑方法。几何方法利用节点的位置信息以及相应的几何工具(如维诺图和德劳内三角剖分)来检测孔洞[10–16]。尽管该方法能够识别覆盖准确地检测孔洞,获取传感器节点的精确位置信息是非常昂贵且困难的。因此,这种方法并不实用。在概率方法[17–19]中,位置信息并不重要;然而,节点的均匀分布或高节点密度是必要条件。同时,该方法难以准确检测覆盖空洞。拓扑方法[20–22]通常利用节点之间的连通性信息来检测孔洞,无需节点的位置信息,并能保证检测精度。然而,这些算法的复杂度通常较高,效率较低。因此,本文提出了一种基于简化里斯复形的高效覆盖空洞检测算法,属于拓扑方法。所提出的算法降低了算法的复杂度,并保证了检测精度。本文的主要贡献如下:
(1) 冗余节点休眠。结合Turan定理以及复杂网络中的度和聚类系数概念,我们将网络内部节点分为两类,即确定性节点和非确定性节点;并设计了一种冗余节点判定规则,用于以分布式方式使冗余节点进入休眠状态
(2) 冗余边删除。结合完全图的概念,我们提出了一种识别冗余边的方法,可简化网络中的边集。通过节点和边的简化,能够高效且快速地对作为Rips复形的网络模型进行简化。
(3)孔洞检测与边界环识别。基于简化后的网络结构,提出了一种从环的角度进行孔洞检测的方法。同时,依次给出了边界边识别方法、伪边界边的定义、边界环识别以及约简规则。
本文的其余部分组织如下:第2节介绍相关工作。第3节介绍系统模型及相关概念定义。第4节执行Rips复形的简化过程,包括冗余节点和冗余边的识别。第5节识别孔洞。第6节通过一些仿真实验评估算法的准确性。最后,第7节对全文进行总结。

2. 相关工作

关于覆盖空洞的研究分为两部分,分别是覆盖孔洞检测和覆盖孔洞修复。本文主要研究覆盖孔洞检测算法。现有的覆盖孔洞检测算法大致可分为三类:几何方法、概率方法和拓扑方法。

2.1 几何方法

几何方法利用节点的位置信息或节点间的相对距离,并结合相应的几何工具(如维诺图和德劳内三角剖分)来识别空洞。在[12], 中引入了树的概念以定位和描述覆盖空洞;因此可以确定相应孔洞的位置、形状以及大小。然而,必须已知邻接节点的相对位置信息。在[13], 中提出了一种基于德劳内三角剖分的算法,该算法结合基于虚拟边的方法,有助于在无线传感器网络中检测覆盖空洞。与现有的基于树的方法相比,该算法利用节点的坐标信息可帮助检测覆盖空洞的精确尺寸,但会产生额外开销。在[23], 中,每个节点根据局部维诺图被判断是否位于空洞边界上;然而,必须使用移动传感器与静态传感器构建混合传感器网络。在[24], 中提出了一种基于维诺图的筛选策略,用于筛选出边界节点,并依据基于虚拟边的孔洞定位策略获得覆盖空洞的精确位置。通过考虑覆盖空洞形状的不规则性,保证了较高的检测精度,为修复覆盖空洞提供了更准确的信息,但该方法必须已知每个节点的具体位置信息。在[25], 中提出了一种基于德劳内的方法,在无需节点坐标信息的情况下检测覆盖空洞;然而,无法提供孔洞的全局视图。

2.2 概率方法

在节点均匀分布且节点密度较高的情况下,可以通过统计属性检测网络中的覆盖空洞。文献[26], 提出了一种用于确定区域边界节点结构的算法,但需要高密度节点。假设节点间的连通性由单位圆盘图模型决定(见[27],),并提出了一种线性时间算法来识别空洞的边界。然而,该算法无法区分彼此靠近的两个覆盖空洞。在[28], 中研究了移动异构无线传感器网络的覆盖问题,讨论了在二维随机游走移动模型下采用泊松部署方案的覆盖问题。引入移动性可提高覆盖率,但忽略了对覆盖范围的考虑。

2.3. 拓扑方法

拓扑方法利用拓扑属性(如连通性信息)来识别孔洞的边界,而无需节点的精确位置。在[29], 中,组合拉普拉斯是计算分布式同调群的合适工具。尽管可以实现分布式孔洞检测,但无法精确定位孔洞。在[20], 中,提出了一种基于单纯复形和组合拉普拉斯的分布式算法,以获取网络的拓扑性质,从而在无需任何度量信息的情况下验证传感器网络中覆盖空洞的存在。但由于里斯复形并不总能检测出所有覆盖空洞。在[21], 中,首先将孔洞定义为三角形孔洞和非三角形孔洞,以研究使用里斯复形进行孔洞检测时的准确性,并针对非三角形孔洞提出了一种基于连通性的分布式空洞检测算法,该算法更适用于稀疏传感器网络。在文献[21], 的基础上,[22], 研究了不同通信半径与感知半径比值下三角形空洞面积百分比,并给出了利用里斯复形准确检测孔洞的条件。同时,提出了一种基于同调理论的分布式覆盖空洞检测方法用于非三角形孔洞,但该方法无法检测出所有孔洞且复杂度较高。里斯复形的平面性越强,越有利于孔洞的检测;因此,对里斯复形进行快速高效的简化可有效降低算法的复杂度。

上述大多数覆盖空洞检测方法利用二元传感器模型;同时,也提出了一些其他模型来反映感知能力并检测覆盖空洞。在[30], 中,提出了一种新的可信信息覆盖(CIC)模型用于区域重构,其目标是获得整个传感器区域中某些物理现象属性的重构图,包括已采样和未采样的点。在[31], 中,提出了LCHD和LCHDRL方案,以基于CIC模型解决和研究物联网中的局部可信信息覆盖空洞检测问题(LCICHD),其目标是找出出现的覆盖空洞的位置和数量。在[32]中,提出了两种有效的启发式CIC空洞检测算法,包括不考虑节点剩余能量的 CHD,以及考虑节点剩余能量的CHDRE,用于基于 CIC模型解决和研究可信信息覆盖空洞检测问题( CICHD)。在[33]中提出了一种高效节能的CIC空洞检测方案EECICHD,该方案充分利用放射性核素的内部空间相关性和传感器的协同感知能力,以提高CIC空洞检测效率。然而,上述算法通常以集中式方式运行,不适合大规模监测区域。同时,这些算法将连续感知区域划分为一系列重构网格以检查孔洞的存在。在这些算法中,检测到的空洞边界通过图像处理确定。

根据上述分析,本文提出了一种基于简化的Rips复形的高效覆盖空洞检测算法,该算法首先设计节点和边删除规则,以有效简化Rips复形并使其更接近平面化,然后基于简化的Rips复形结构从环路视角识别网络中的孔洞。本文所提出的算法在连续感知区域中检测孔洞,并准确获取网络边界,而无需进行图像处理;因此,网络中每个节点采用二元传感器模型。

3. 系统模型和相关概念定义

3.1. 系统模型

N个传感器节点部署在二维平面上。位于目标区域内部的节点为内部节点,随机分布,而位于目标区域外边界上以确保完全覆盖的其他节点为边界节点,均匀分布。每个节点不知道具体的位置信息,且可根据初始设置确定一个节点是否为内部节点。其他一些条件设置如下:
(1) 节点是同构的,每个节点的通信范围(Rc)和感知范围(Rs)相等,且Rc= 2Rs;(2) 网络中每个节点采用二元传感器模型;(3) 每个节点具有唯一ID; (4) 网络是连通的,如图1所示

示意图0

3.2. 相关概念定义

3.2.1. 与同调理论相关的定义

定义1(单纯形) 。给定一个顶点集V和一个正整数k,k‐单纯形S是k+ 1个点的任意子集[1⁄2v0, v1, v2, ⋯, vk,],其中 vi ∈ V且vi ≠vj;k被设定为单纯形[22]的维度。如图2所示,0‐单纯形是一个顶点,1‐单纯形是一条边,2‐单纯形是一个三角形,3‐单纯形是一个包含内部区域的四面体。由k−1个顶点组成的所有k+ 1单纯形构成该k‐单纯形的表面。

定义2(单纯复形) 。一系列单纯形构成一个单纯复形的部分,并形成该单纯复形的表面。这些单纯形必须满足以下两个条件:(1)单纯复形中每个单纯形的表面必须是该单纯复形的表面;(2)任意两个单纯形s1和s2的交集必须同时是s1和s2的表面。单纯复形的维度定义为包含在该单纯复形中的任意单纯形的最大维度。

定义3(Rips复形) 。给定一个有限点集V和在Rn中的固定半径 ε,V的Rips复形(RεðVÞ)是一个抽象单纯复形,其k‐单形由V中的k+ 1个点组成,且V中任意两节点之间的距离小于固定半径 ε。

假设P = {pi}是一组传感器节点位置,S = {si}是一组传感器节点感知范围,其中pi表示第i个节点的位置,si = {x ∈ R^2, |x − pi| ≤ Rs}。如图3所示,当顶点集V包含六个顶点时,可根据上述定义构建里斯复形。

示意图1 0‐单纯形:v0 是一个点;(b) 1‐单纯形:v0 和 v1 是点;(c) 2‐单纯形:v0, v1, 和 v2 是点;(d) 3‐单纯形:v0, v1, v2, 和 v3 是点。)

示意图2 覆盖图;(b) 连通图;(c) Rips复形 (Rc= 2Rs)。)

定义4(三角形孔洞和非三角形孔洞[21]) 。存在于未被传感器节点完全覆盖的三角形中的孔洞称为三角形孔洞;其他孔洞称为非三角形孔洞。

如图3所示,由节点2、3、5和6以及节点3、4和5分别形成的网络中存在两个覆盖空洞。然而,只有由节点2、3、5和6形成的孔洞可以通过Rips复形检测到。

3.2.2. 图论相关定义

由顶点集 V={v1, v2, ⋯, vn} 和无向边集 E={e1, e2, ⋯, em} 组成的无向图记为 G=(V,E)。以下基于无向图给出一些定义。

定义5(邻接矩阵) 。如果两个节点之间存在一条边,则它们具有相邻关系;否则,它们不相邻。为了便于计算,可以使用邻接矩阵A来描述无向图G=(V,E)中两个节点之间的关系。假设图G中有n个顶点,则AG=(amij)n∗n。

定义6(子图) 。图G′可表示为(V′,E′)。G′是G的子图,且当V′ ⊆ V和E′ ⊆ E时,G称为G′的父图,并称G′ ⊆ G。

3.2.3. 复杂网络理论相关定义

本研究涉及的度和聚类系数参数定义如下。

定义7 (度) 。节点vi的度ki是其一跳邻居节点的数量,由其邻接矩阵确定,可定义为
$$
k_i = \sum_{j \in N} am_{ij}
$$
其中amij在节点i和节点j直接连接时等于1;否则,amij等于0。N是网络中节点的总数。

定义8(聚类系数) 。节点vi的聚类系数Ci是直接相连的邻居节点之间的实际边数Ei与可能的最大边数之比。连通ki邻接节点,用于表征网络中节点的紧密性和聚集性。Ci可以定义为
$$
C_i = \frac{E_i}{C_2^{k_i}} = \frac{2E_i}{k_i \cdot (k_i - 1)}
$$
其中$C_2^{k_i} = k_i \cdot (k_i - 1)/2$。

节点度反映了节点与周围节点建立直接连接的能力,即邻接节点的数量,而聚类系数则表示邻接节点之间的边的连接情况,即反映节点之间的紧密性。

4. Rips复形简化

本节设计了一种高效的非三角形孔洞的分布式空洞检测算法。对于三角形孔洞,当节点通信半径与覆盖半径之比在√3到2之间(包含√3和2)时,网络中三角形空洞的面积比小于0.06%;即网络中的三角形孔洞可以忽略不计[14]。当Rips复形趋于平面性时,孔洞检测将更高效率且更容易;因此,为了降低算法复杂度,高效地简化 Rips复形至关重要。本文构建了冗余节点判定规则和冗余边删除规则,以使Rips复形更具平面性,从而有效检测孔洞。所提出的算法包括以下三个部分:(1) 冗余节点休眠,(2) 冗余边删除,(3) 空洞检测与边界识别。前两个步骤被视为Rips复形的简化过程,该过程如图4所示。

i‐单形[1⁄2v0,v1,v2, ⋯, vi] 是 j‐单形[1⁄2v0, v1, v2, ⋯, vj] 的一部分,如果[1⁄2v0, v1, v2,⋯, vi] ∈ [1⁄2v0, v1, v2,⋯, vj]。因此,节点vi和vj是边[1⁄2vi, vj,] 的一部分,边[1⁄2vi, vj] 是三角形[1⁄2vi, vj, vk,] 的一部分,且vk是边[1⁄2vi, vj]的邻接节点。E(v)是包含节点v的边的集合,T(v)是包含节点v的2‐单形的集合。

定义9(环) 。若图G中的环C上的每个节点仅有两个邻居,则环C是图G的一个子图。环C的长度是其边的数量,记为|E(C)|。图G中所有环的集合记为C(G),图G中三角环的集合记为CT(G)。三角环的长度为三。

定义10(邻域图) 。图G中节点v的邻居集记为NG(v),节点v在图G中的邻域图记为ГG(v)=G[NG(v)]。邻域图的节点集由节点v的邻居节点构成。

定义11(图兰定理) 。若图G是一个具有n个节点的简单图,并且图G中不包含Kr+1作为子图,其中Kr+1表示(r+ 1)‐完全图,则图G最多有E(r)条边。
$$
E(r) = \left(1 - \frac{1}{r}\right) \cdot \frac{n^2}{2}
$$
当r= 2且E(2)= n²/4时。

推论12 。如果一个具有n个节点的简单图G包含至少 E(r)+ 1条边,则在图G中必须存在一个Kr+1完全图作为子图。也就是说,当r= 2且图G包含至少E(2)+ 1条边时,在图G中必须存在一个K3完全图作为子图。

推论13 。如果网络中的每个内部节点都满足以下条件:
$$
k_i \geq 3, \quad C_i \geq \frac{\lfloor n^2/4 \rfloor + 1}{C_2^{k_i}}
$$
那么,该节点的邻域图中必然存在一个三角环;否则,无法确定该节点的邻域图中是否存在三角环。ki是节点i的度,Ci是节点i的聚类系数,且n=ki。

证明 。根据定义8,若节点v的度大于或等于3(即节点v的邻域图中至少包含三个节点),且节点v的聚类系数满足$C_i \geq (\lfloor n^2/4 \rfloor + 1)/C_2^{k_i}$,则根据推论12,节点v的邻域图中必然存在K3作为子图。

示意图3

定义14(确定节点和非确定节点) 。如果一个内部节点的邻域图中存在三角环,则该内部节点为确定节点;否则,该内部节点为非确定节点。

定义15(冗余节点判定规则) 。网络中的每个内部节点v,若其邻域图满足以下两个条件:(1) 节点v的邻域图是连通的,且(2) 所有环均可三角剖分(即每个环的长度均为三),则该内部节点被判定为冗余节点。

证明 。为了证明冗余节点判定规则的正确性,需要验证在执行冗余节点删除的过程中没有新洞产生,也没有孔洞合并。
(1) 如果删除节点v导致出现新洞,则由该新洞的边界边所形成的环必定位于节点v的邻域图ГG(v)中,这意味着在ГG(v)中存在一个无法被三角剖分的环。上述情况与规则相矛盾。因此,删除冗余节点不会产生新洞
(2) 如果删除冗余节点v导致两个孔洞合并,则节点v的邻域图ГG(v)必然不连通,这与规则相矛盾。因此,删除冗余节点不会导致两个孔洞合并

4.1 冗余节点休眠

由于边界节点是手动部署在目标区域边界的,因此只有网络中的内部节点执行冗余节点休眠过程。冗余节点休眠的过程如下:

步骤16 . 每个节点广播两条问候消息,以构造其1‐单形、2‐单形和3‐单形,从而形成Rips复形。每个节点首先广播一条包含其自身ID的消息,每个节点由此获得其一跳邻居的所有ID。随后,每个节点继续广播第二条包含其一跳邻居ID的问候消息。当所有节点接收到邻接节点列表时,便获得E(v)(1‐单形)。当这些节点接收到其邻居的邻居列表时,将获得T(v)(2‐单形),而当获取到每个单纯形的邻接节点时,将形成3‐单形。

步骤17 . 计算节点的ki和Ci。根据节点的ki与Ci之间的关系,将网络中的内部节点划分为两类,并得到确定节点集V1和非确定节点集V2。

步骤18 . 判断确定节点集V1中的所有节点是否满足冗余节点判定规则。如果节点vi满足该规则,则应判断ГG(vi)中的每个确定节点是否满足冗余节点判定规则以及聚类系数是否大于节点vi的聚类系数;如果满足,则使邻接节点vj中聚类系数最大的确定节点进入休眠状态,并满足冗余节点判定规则,同时将节点vj的所有邻居节点分别从集合V1和V2中移除。否则,使节点vi进入休眠状态,并将节点vi的所有邻居节点分别从集合V1和V2中移除。

步骤19 . 判断非确定节点集V2中的所有节点是否满足冗余节点判定规则。如果节点vi满足该规则,则应对ГG(vi)中的每个非确定节点判断其是否满足冗余节点判定规则以及聚类系数是否大于节点vi的聚类系数;若存在,则休眠在ГG(vi)中满足冗余节点判定规则且聚类系数最大的非确定节点vj,并将节点vj的所有邻接节点移出V2。否则,休眠节点vi,并将节点vi的所有邻居节点移出V2。

步骤20 . 重复步骤17至步骤19,直到网络中没有需要休眠的节点为止。

满足冗余节点判定规则的被删除节点不会影响网络结构。同时,节点的聚类系数表征了网络中节点的紧密性和聚集性,节点的聚类系数越大,该节点与其邻居之间的连接越紧密。因此,在不影响网络结构的前提下,优先删除聚类系数较大的节点。

4.2. 冗余边删除

定义21 (边删除规则) 。节点va、vb、vc和vd构成一个K4完全图,且vavc和vbvd为对角边。在vavc和vbvd之间最多可以删除一条边作为冗余边。

证明 。如图5(a)所示,节点va、vb、vc和vd构成一个K4完全图,其中不存在孔洞,且vavc和vbvd为对角边。仅删除边vavc或vbvd时不会产生孔洞,效果如图5(b)和图5(c)所示。然而,当边vavc和vbvd同时被删除时,会产生孔洞,如图5(d)所示。

推理22 。假设边vavc是K4完全图中的对角边,则如果由边vavc生成的所有2‐单形都在K4完全图中,该边vavc可作为冗余边被删除。

证明 如果由边vavc生成的所有2‐单形都在K4完全图中,则包含该边vavc的所有2‐单形的其他顶点至少可以生成另一个2‐单纯形;也就是说,当删除边vavc时,不会形成孔洞。

如图6(a)所示,边vavc是由顶点va、vb、vc和vd构成的K4完全图的一条对角边。由边vavc生成的所有2‐单形是 Δvavcvb、Δvavcvd、Δvavcve、Δvavcvb和Δvavcvd,它们位于由顶点va、vb、vc和vd构成的K4完全图中。顶点vb和vd还可以生成另一个2‐单纯形 Δvbvdvc;Δvavcve不在任何K4完全图中,且顶点ve无法生成其他2‐单形。当边vavc被删除时,将产生一个新的孔洞,如图6(b)所示。类似地,在图6(c)中,边vavc是由顶点va、vb、vc和vd构成的K4完全图的一条对角边。由边vavc生成的所有2‐单形为Δvavcvb、Δvavcvd、Δvavcve、Δvavcvb和Δvavcvd,它们位于由顶点va、vb、vc和vd构成的K4完全图中,且顶点vb和vd还可以生成另一个2‐单纯形Δvbvdvc。Δvavcve位于由顶点va、vc、vd和ve构成的K4完全图中,且顶点ve也可以生成另一个2‐单纯形Δvavdve。现在,当边vavc被删除时,不会产生孔洞,这可以在图6(d)中看出。简而言之,推理22得证。

冗余边删除的过程如图7所示。首先,在网络中找到所有K4完全图;然后依次识别每个完全图的对角边,并将其加入队列。最后,根据推理22判断每条对角边是否可以删除。如果在删除冗余边后网络中仍然存在冗余节点,则继续对Rips复形进行简化。由于K3是无需简化的2‐单纯形,因此仅将K4完全图视为最大单纯复形进行考虑。

示意图4

示意图5

示意图6

5. 空洞检测与边界识别

孔洞可以被识别为简化后的网络中由若干边界边组成的边界环。因此,孔洞识别工作可分为以下两个步骤:边界环识别和边界环缩减。

5.1 边界环识别

找到边界环有利于识别边界边。网络简化后,Rips复形是平面的,且一条边界边最多只有一个邻接节点。因此,可以通过网络中一条边的邻居节点数量来识别孔洞的边界边。例如,边vivj的邻居节点数量等于节点vi和vj的共同邻居节点的数量。在识别边界边时,内部节点与边界节点的情况不同。因此,根据情况对节点进行加权,构成边界边的边界节点其权重为2,组成孔洞的节点称为边界节点。
(1) 如果两个节点构成一条边,且该边的邻接节点数量为零,同时这两个节点均为边界节点,则这两个节点的权重为2;(2) 如果两个节点构成一条边,且该边的邻接节点数量不超过1,其中一个节点为边界节点,另一个为内部节点,则这两个节点的权重为2;(3) 如果两个节点构成一条边,且该边的邻接节点数量不超过1,同时这两个节点均为内部节点,则这两个节点的权重为2;(4) 除(1)、(2)和(3)中的节点外,其余节点的权重为1
权重为2的节点构成一条边,该边被确定为边界边。然而,有些边并不是构成孔洞的边界边,这些边被称为伪边界边,需要被删除。

定义23(伪边界边) 。如果某条边界边的邻接节点分布在该边的对侧,则称该边界边为伪边界边。
删除虚假边界后,由剩余边界形成的环即为边界环。然而,并非所有边界环都是覆盖空洞。因此,有必要对边界环进行过滤。

定义24(边界环过滤规则) 。如果边界环满足以下三个条件中的任意一个,则将被删除。
(1) 环的长度为3。
(2) 环的长度为4,且环上两个不相邻的节点是邻接节点。
(3) 当环的长度大于4时,环上两个不相邻的节点是邻接节点,且环上的其他节点分布在由这两个不相邻节点构成的边的对侧。

证明
(1) 当环的长度为3时,该环是一个三角形。本研究中忽略三角形孔洞,仅识别非三角形孔洞。
(2) 当环的长度为4时,环上两个不相邻的节点是邻接节点,且处于一个三角化环中;根据第一条规则,满足条件2的边界需要被删除。
(3) 如图8(a)所示,边界环的长度为5;vc和ve以及vb和vd是不相邻的邻居节点。环内所有节点分布在连接线的一侧,如图8(b)所示;如果vc与ve之间存在直接连接,则无法确定所识别的环是否被内部节点覆盖;环内所有节点分布在连接线的对侧,如图8(c)所示;如果vb与vd之间存在直接连接,则可以确定该环被某个节点覆盖;即该环不是孔洞的边界。

示意图7

5.2. 边界环缩减

在边界环被过滤后,剩余的边界环可能仍然不是孔洞的最短路径,或者多个环包含同一个孔洞。因此,有必要定义一个环缩减规则来缩短边界环。

定义25(环缩减规则)
(1) 检查由直接连接vivj形成的环的面积是否小于原始环。如果节点vi和vj是邻居节点但在环上不相邻,则连接后的边界环比原始环更小。如果是,则直接连接节点vi和vj以缩短边界环,如图9(a)所示。
(2) vi、vj和vk是环上的三个相邻节点,且节点vm是这三个节点的共同邻接节点。检查当用节点vj替换节点vm时,环的面积和周长是否均小于原始环。如果是,则使用节点vm替代节点vj形成一个新的环,如图9(b)所示。

示意图8 通过直接连接缩短环路。(b) 通过节点替换缩短环路。)

示意图9 第一轮冗余节点休眠后的网络图。(b) 第一轮冗余边删除后的网络图。(c) 简化网络结构图。)

示意图10

示意图11

6. 仿真与分析

6.1. 算法仿真

孔洞检测准确率和复杂度是衡量所提算法的性能以及本节评估的对比算法的重要指标。同时,进一步分析冗余节点休眠、冗余边删除以及孔洞检测与边界识别,以评估所提算法的性能。仿真实验中使用的参数设置如下:在面积为 100 × 100m²的目标区域内部署了100个传感器节点,其中包括80个随机部署的内部节点和20个手动部署在目标区域边界的边界节点。每个边界节点有两个相邻的边界节点,相邻两个边界节点之间的距离为20米。每个传感器节点的覆盖半径为10米,通信半径为20米。

6.1.1. 冗余节点休眠

使冗余节点休眠不仅能够简化 Rips复形,还有助于在不合并或产生新孔洞的情况下检测网络中的孔洞。图1是原始网络图,图10(a)是第一轮冗余节点休眠后的网络图。节点休眠率为9%。原始孔洞在图10(a)中有所扩展;然而,没有发生新孔洞的合并或出现。本文提出的算法将在后续缩短边界环。

6.1.2. 冗余边删除

提出了一种边删除规则,用于删除冗余边并简化Rips复形,同时避免孔洞的合并与产生。通常,在冗余边被删除后,网络中仍存在冗余节点,例如图10(b)中的红色节点;随后,Rips复形的简化过程继续进行。最终的简化的Rips复形如图10(c)所示,其中孔洞数量保持不变,但总面积增加。一般情况下,经过两轮简化后可达到最简的网络结构,冗余节点休眠条件如图11所示;在两轮冗余节点休眠后共有10个节点休眠,其中第二轮有1个节点休眠。

6.1.3. 空洞检测与边界识别

孔洞检测分为两个步骤:边界环识别和边界环缩减。所提出的算法首先找到边界节点并形成由边界节点组成的边界边,如图12(a)所示。然而,找到的一些边界边并不是实际上位于孔洞的边界上,例如图12(b)中的红色线段所示。因此,通过定义伪边界边,一些边界边被删除,如图12(c)所示。但某些边界环并非孔洞的真实边界。如图12(d)所示,红色环的长度为4,该红色环上两个不相邻的节点是邻接节点,满足冗余环缩减规则的第二条规则。因此,需要根据冗余环规则删除一些边界环,结果如图12(e)所示。最后,边界环被缩短,如图12(f)所示。

6.2. 算法性能评估

6.2.1 算法复杂度

在大规模场景中进行孔洞检测需要较低的复杂度和更高的效率。因此,算法的复杂度是评估覆盖空洞检测效率的重要指标。本节分析所提出的算法的复杂度。在冗余节点休眠阶段,首先检查节点是否满足冗余节点判定规则,然后判断该节点的聚类系数是否是在可删除的邻居节点中最大的,因此该阶段的算法复杂度为O(n),其中n表示网络中节点的数量。在冗余边删除阶段,首先找出每个节点组成的所有K4完全图,然后判断每条对角边组成的所有2‐单形是否都在K4完全图中。因此,该阶段的复杂度为O(cn),其中c表示每条边的邻居节点数量。

孔洞检测过程分为两个步骤:边界环识别和边界环缩减。在边界环识别阶段,首先根据边的邻接节点数量对节点进行加权以形成边界边,算法复杂度为O(cn)。然后根据边界边的邻接节点分布情况删除伪边界边,并形成边界环,因此最坏情况下的复杂度也小于O(cn)。最后,在边界环过滤过程中,需要检查环中是否存在两个不相邻但互为邻居节点的节点;如果存在,则需进一步检查环中其他节点是否分布在由这两个节点形成的线段的对侧,因此该算法的最坏复杂度为O(mH),其中 H为孔洞数量,m为环中节点数,H ≪ n,且m ≪ n。在边界环缩减阶段,需检查环中是否存在两个不相邻但互为邻居节点的节点是邻接节点以及三个相邻节点的公共邻居节点是否存在,因此最坏复杂度为O(mH)。因此,孔洞检测的算法复杂度为O(cn)。

总之,该算法的复杂度为O(cn),具体细节如表1所示,其中c表示每条边的邻接节点数量。已知HBA[22]的复杂度为O(n³),基于树的孔洞检测算法[12]的复杂度为O(bn),其中b表示每个节点的邻居节点数量。因此,所提出的算法具有最低的复杂度。

Step 复杂度
冗余节点休眠 O(n)
冗余边删除 O(cn)
边界环识别 O(cn)
边界环缩减 O(mH)

表1:各步骤复杂度。

6.2.2 检测精度

检测精度是评估算法的另一个重要指标。HBA算法将检测精度定义为检测到的孔洞数量与孔洞总数之比;而基于树的空洞检测方法则将其定义为估计的孔洞大小与实际孔洞大小之比。与孔洞数量的检测精度相比,孔洞区域的检测精度更有利于修复孔洞。因此,本研究中将检测精度定义为公式(5)。
$$
r = 1 - \frac{|S’ - S|}{S}
$$
其中S表示孔洞的实际总面积,S′表示所提出的算法检测到的孔洞总面积,r表示孔洞检测精度。基于公式(5),所提出的算法的准确率为99.03%。

基于上述两个指标,表2得出结论:所提出的算法的性能优于HBA和基于树的孔洞检测方法。

性能指标 所提出的算法 HBA 基于树的孔洞检测方法
算法复杂度 O(cn) O(n³) O(bn)
检测精度 99.03%(孔面积) 99%(孔数量) 80%(孔尺寸)

表2:对比实验表。

7. 结论

本文构建的Rips复形通过简化过程趋向于平面化,使得覆盖空洞检测算法具有较低的复杂度和较高的检测精度。在简化过程中,首先结合图兰定理以及复杂网络中的度和聚类系数概念,定义两类节点(确定性节点和非确定性节点),并根据冗余节点判定规则休眠冗余节点;然后,利用完全图的概念推导出用于删除冗余边的边删除规则。最后,从环的角度检测网络中的孔洞。仿真结果表明,对洞区域的检测精度达到99.03%,且复杂度为O(cn)。在三维中检测覆盖空洞我们将进一步研究空间,以提高检测效率。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器的建模与仿真展开,重点介绍了基于Matlab的飞行器动力学模型构建与控制系统设计方法。通过对四轴飞行器非线性运动方程的推导,建立其在三维空间中的姿态与位置动态模型,并采用数值仿真手段实现飞行器在复杂环境下的行为模拟。文中详细阐述了系统状态方程的构建、控制输入设计以及仿真参数设置,并结合具体代码实现展示了如何对飞行器进行稳定控制与轨迹跟踪。此外,文章还提到了多种优化与控制策略的应用背景,如模型预测控制、PID控制等,突出了Matlab工具在无人机系统仿真中的强大功能。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程师;尤其适合从事飞行器建模、控制算法研究及相关领域研究的专业人士。; 使用场景及目标:①用于四轴飞行器非线性动力学建模的教学与科研实践;②为无人机控制系统设计(如姿态控制、轨迹跟踪)提供仿真验证平台;③支持高级控制算法(如MPC、LQR、PID)的研究与对比分析; 阅读建议:建议读者结合文中提到的Matlab代码与仿真模型,动手实践飞行器建模与控制流程,重点关注动力学方程的实现与控制器参数调优,同时可拓展至多自由度或复杂环境下的飞行仿真研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值