传感器网络中的哨兵选择

传感器网络中的哨兵选择:理论与算法

摘要

我们研究了具有随机分布传感器的传感器网络中哨兵选择问题的几何方面,其中每个传感器覆盖一个小圆盘。该问题要求将传感器划分为预定数量的组,使得每组中传感器的感知区域共同覆盖感兴趣区域。在提出一些理论结果之后,我们描述了两种快速划分算法,并给出了在中等规模网络上对这些算法进行仿真的结果。

关键词 :无线传感器网络;哨兵选择;吉尔伯特模型;随机覆盖;重着色算法;几何概率。


1 引言

在本论文中,我们研究了在一大片区域上随机散布大量小型无线传感器所构成的网络中进行哨兵选择的问题,目的是监控该区域。目前这一课题受到广泛关注,原因有两点。首先,传感器本身变得越来越小且日益移动化,因此假设它们的位置是随机的,而非由某种预设布局(如网格)决定,这是合理的。其次,对于许多应用而言,传感器电池不可充电。一旦大多数传感器电池耗尽,网络将永久失效。即使电池可充电,在传感器进行感知时也无法充电(Kar 等,2006)。因此,在这两种情况下,节能至关重要,应在传感器变得冗余时将其关闭,并仅在绝对必要时才重新开启。事实证明,随机网络中的自然冗余使得这一点成为可能。

该领域之前的大多数研究(参见 Hui 等人(2003)和 Tian 与 Georganas(2002),以及其中的参考文献)都集中在协议设计上。我们此处的目的在于考察该问题的几何方面。我们将考虑一种具有公共感知范围 $ r $ 的传感器随机 static 布置方式,我们的分析将完全基于在平面上绘制的感知圆盘这一抽象集合。实际上,一个很好的方式来直观理解基本设置是想象大量相同的微小薄圆盘散布在一个方形桌面上:每个圆盘代表一个传感器的感知区域,而传感器的所有其他方面(如移动性和干扰)均被忽略。

有必要区分那些需要覆盖的监控应用和仅需要渗流(刘和陶斯利(2003)中称为“可检测性”)的应用。如果传感器旨在检测在大片森林中任何位置发生的火灾,则森林中的每个点都必须位于某个传感器的范围内,即位于某个感知圆盘内。然而,如果传感器旨在检测穿越森林的美洲狮,则不需要完全覆盖:我们只需要确保美洲狮无法从森林(方形区域)的左侧穿行到右侧而不进入任何传感器的范围即可。如果满足这种情况,则称网络中存在渗流。对于渗流而言,感知圆盘不必覆盖整个区域,但其中一些必须在相对的两侧之间形成一道(可能相当迂回的)屏障。

在本文中,我们考虑那些需要覆盖的应用,因此我们关注的是检测火灾而非美洲狮。然而,我们指出,对于美洲狮检测问题,实际上只需确保没有美洲狮进入森林即可,这要简单得多。通过仅仅守卫森林周界即可实现这一目标,从而引出了在窄带区域中的屏障覆盖这一主题,这也是巴利斯特等人(xxxx,2007)研究的课题。

渗流与覆盖之间的区别在随机网络中远比在基于网格的网络中更为显著。例如,考虑一个基于大型方格网的传感器网络,其中传感器位于平面中的点 $(i, j)$ 处,其中 $i$ 和 $j$ 是满足 $0 \leq i, j \leq 1000$ 的整数。在此模型中,$r > 1/2$ 可保证“渗流”(即前述意义上的渗流),而 $r > 1/\sqrt{2}$ 可保证对方格 $[0, 1000]^2$ 的覆盖。但对于随机网络而言,实现覆盖的代价要高得多。假设我们将 $n = 10^6$ 个传感器均匀地放置在同一个正方形内随机分布 $[0, 1000]^2$,使得单位面积有一个传感器,与之前相同。结果表明,对于渗流,我们需要 $r \approx 0.6$(参见 Balister 等人 (2005) 的相关结果),但对于覆盖,$r$ 必须大得多:我们需要 $r \approx 2.3$。此外,渗流的阈值 $r \approx 0.6$ 是一个绝对常数(对于单位面积随机分布一个传感器的情况),而覆盖的阈值是传感器总数 $n$ 的递增函数。

原因在于,与渗流不同,覆盖由网络中的“空洞”决定。随着传感器数量和区域尺寸的增加(保持单位面积一个传感器),最大空洞的尺寸也随之增大。除非该空洞被覆盖,否则无法实现完全覆盖;而当存在 $n$ 个传感器时,最大空洞通常非常大,以至于我们需要将每个传感器的感知半径增加约 $\sqrt{\log n / \pi}$(更准确地说需要 $\pi r^2 \approx \log n + \log \log n$——见后文)才能覆盖它。当然,在我们的模型中,每个传感器的 $r$ 是相同的,因此对于区域中其余大部分位置而言,这种设置将造成极大的冗余。事实上,如果 $\pi r^2 = \log n$,区域内一个典型点将被 $\log n$ 个感知圆盘覆盖,这意味着绝大多数传感器实际上是冗余的。

然而,或许我们可以以以下方式利用这种冗余性。我们希望设计一个轮班系统,使得每个传感器在大多数时间内可以休眠。我们计划将传感器集合划分为 $k$ 组,并安排仅第 $\ell$ 组的传感器在第 $\ell$th 个时隙处于活动状态。在经过 $k$ 个时隙后,我们将重复该过程。为了能够检测到在任何时间、任何位置发生的事件(例如火灾),必须确保每组中的传感器自身形成对感知区域的单一覆盖。

因此,最终,这便是我们的基本问题:

(I) 对于固定的 $n$ 和 $k$,感知半径 $r$ 至少应为多大,才能确保将我们随机放置的 $n$ 个传感器划分为 $k$ 组,每组均能覆盖面积为 $n$ 的感知区域 $A$?

我们称此问题为哨兵选择,因为每个组都是一组哨兵在其休眠时监视该区域。显然,如果我们能够设计出这样的划分,每个传感器的寿命以及整个网络的寿命都将几乎增加 $k$ 倍(传感器在睡眠模式下可能会消耗一些能量)。

当然,我们希望问题 (I) 的答案是“我们只需使 $r$ 足够大以确保覆盖”,这一期望由这种 $r$ 所提供的高水平平均覆盖所支持。然而,存在一个问题。如果我们能将传感器集合划分为 $k$ 个组,每组都能提供覆盖,则原始的传感器集合必须提供 $k$-覆盖:感知区域中的每个点都必须位于 $k$ 个传感器的感知范围内。因此,$r$ 也必须足够大以确保这一点。幸运的是,结果表明 $r$ 所需增加的量非常小——忽略边界效应,$k$-覆盖的阈值仅为 $\pi r^2 \approx \log n + k \log \log n$。

无论如何,我们由此得到对 (I) 的如下重新表述:

(II) 假设我们已使用随机放置的传感器获得了一个大型感知区域 $A$ 的 $k$-覆盖 $C$。那么,我们可以将 $C$ 划分为 $k$ 个 $A$ 的单一覆盖的概率是多少?

这本质上与(I)相同,只是我们现在明确关注的是 $k$-覆盖与‘$k$-可分割性’之间的差距。另外,请注意我们尚未指定确切的模型和参数,其详细信息将在下一节中给出。

暂时撇开(I)和(II)中的随机性不谈,我们简要讨论将几何 $k$-覆盖划分为 $l \leq k$ 单一覆盖的问题,该问题具有丰富的数学历史。这一问题由 L. Fejes Tóth 于 20 世纪 70 年代提出,尽管目前该领域已有大量研究成果(参见 Pach 等人 (2007) 和 Pach 与 Tóth (2007) 的部分结果),但对于一些最基本的问题,人们所知之少仍令人惊讶。Pach 和 Pálvölgyi (2015) 直到 2013 年才证明,对于所有 $k$,存在一种用单位圆盘覆盖平面的 $k$-覆盖,它不是 2-可分割的。尽管他们的构造较为复杂,但也存在一些简单的 2-覆盖例子并非 2-可分割,而这些例子在解决问题(II)中起到了核心作用。事实上,在我们的研究中,我们讨论了一个关于用半平面覆盖平面的(非随机)非 2-可分割 2-覆盖的近期分类定理,这个定理出人意料地对用圆盘进行的随机 $k$-覆盖具有启示意义,从而影响了问题(II)的解答。

在三维情况下,Mani-Levitska 和 Pach (1996) 的一个更早的结果表明,对于任意 $k$,存在一种由单位球构成的空间 $k$-覆盖,该覆盖不是 2-可分割的。当然,我们无需只考虑单位球,论文(Pach 和 Pálvölgyi,2015;Pach 等,2007;Pach 和 Tóth,2007)包含了关于平面上使用凸多边形、无限条带和直线的覆盖结果。这些结果中许多是否定性的,即通常对于任意大的 $k$,存在某种形状的平面 $k$-覆盖 $C_k$,甚至都不是 2-可分割的。然而,在研究随机覆盖时,例如在(I)和(II)中出现的情况,我们有一个明显的优势:也许所有这些不良覆盖 $C_k$ 发生的概率都非常小。事实证明,这确实如此,至少对于圆盘而言是如此,因此我们对(II)的最终回答将是:“随着传感器数量的增加,该概率趋近于 1”。详细结果将在下一节中给出。

从实际角度来看,如果我们不能快速找到划分,那么知道存在划分也是没有用的。因此,我们必须考虑以下算法问题:

(III) 假设我们知道,在一个大的感知区域 $A$ 上使用随机放置的传感器所构成的某个 $k$-覆盖 $C$ 是 $k$-可划分的。是否存在一种快速算法来找到该划分?

我们将考虑使用 $k$ 种颜色对传感器(或等效地,对感应圆盘)进行着色,使得每种颜色的传感器构成划分的各个部分。在本文中,我们提出了两种着色/划分算法,结果表明问题(III)的答案是“是”。

1.1 相关工作

最早的相关论文之一由 Slijepcevic 和 Potkonjak(2001)撰写,他们讨论了问题(III),并提供了一种划分算法,该算法基于最小化一个覆盖内稀疏覆盖区域的覆盖水平的思想,运行时间为 $O(n^2)$(在本论文中,$n$ 是数量)。Abrams 等人 (2004) 考虑了该问题的一种变体,其目标是将传感器划分为覆盖集,使得包含每个区域的覆盖集数量之和(对所有区域求和)最大化。最后,Liu 和 Haenggi (2006) 提出了一种基于格点的方案,通过选择性地激活和去激活随机放置的传感器来节约能量:然而,这种方法不会产生区域的互不相交的覆盖,因为一个传感器可能在两个不同的时隙中都处于激活状态。

最近,Xiao 等人 (2010) 分析了一种随机调度算法的性能,旨在最大化入侵检测的概率;相比之下,我们提出了一种自适应调度算法,其入侵检测概率为一。自适应调度算法也在 Ding 等人 (2009) 和 AbdelSalam 和 Olariu (2012) 中被研究过。Ding 等人 (2009) 的目标是划分网络中的传感器,使得每个组的传感器保持网络 connectivity(而非覆盖);因此他们的工作与我们的重叠较少。AbdelSalam 和 Olariu (2012) 考虑了一个异步网络,其中传感器根据自身及邻近传感器的剩余能量调整睡眠时间;然而,他们的网络是一种 tasking network,而不是简单的传感网络,其目标是在保持一定服务质量的同时延长网络寿命,而不是保证完全覆盖。

总之,尽管文献中已考虑了若干相关思想和算法,但它们均处理不同的问题,因此这些先前的工作没有一项能直接与我们的工作相比较。

本文的其余部分组织如下。在第 2 节中,我们将首先精确定义问题(I)和(II),然后给出一些理论结果。接着,在第 III 节中,我们将描述两种着色算法,并详细展示这两个算法的结果。我们将看到,该问题的理论结果与计算方面之间存在着令人惊讶的联系。

2 理论结果

以下是我们的模型的精确设定。我们考虑在单位(1 × 1)环面 $T$ 上随机均匀放置的 $n$ 个点(代表传感器),使得每个点的坐标对 1 取模。这类问题中的边界效应并不总是可以忽略的:然而,在本文中,为简化起见,我们将避免讨论它们。以位于 $T$ 中的 $n$ 个点 $p_i$ 为中心,围绕其画一个半径为 $r \ll 1$ 的开圆盘 $D_r(p_i)$。如果 $T$ 中的每一点 $t \in T$ 至少落在 $C$ 中的 $k$ 个圆盘内,则称这些圆盘 $C$ 的并集构成了 $T$ 的一个 $k$-覆盖;若 $C$ 中的圆盘可用 $k$ 种颜色着色,使得每种颜色的圆盘各自形成 $T$ 的一个 1-覆盖,则称 $C$ 是 $k$-可划分的。忽略对 $n$ 的依赖性,我们将用 $E_{k,r}$ 表示 $C$ 构成 $k$-覆盖这一事件,用 $F_{k,r}$ 表示 $C$ 是 $k$-可划分的这一事件。注意,引言中的问题(I)和(II)在此背景下分别对应“$P(F_{k,r})$ 是多少?”和“$P(F_{k,r} | E_{k,r})$ 是多少?”。

还需注意的是,本节中我们使用了不同的归一化方式:在引言部分,我们采用单位面积一个传感器的方式,以便将我们的模型与基于格点的模型进行比较;而在此处,更方便的做法是在固定面积内进行仿真,同时增加传感器的数量(以及相应的密度)。因此,感知区域中传感器的期望数量现在为 $\pi r^2 n$,而不是 $\pi r^2$。

我们的首要任务是估计 $P(E_{k,r})$。以下定理由 Janson (1986) 证明,他扩展了 Hall (1985) 的一个结果,而 Hall (1985) 则应用了 Gilbert (1965) 的方法来解决 Moran 和 Fazekas de St Groth (1962) 提出的一个问题,该问题源于生物学中关于抗体的一个难题。

定理 1 : If
$$
\pi r^2 n = \log n + k \log \log n + x,
$$
then
$$
P(E_{k,r}) \to \frac{e^{-e^{-x}}}{(k-1)!}
$$
as $n \to \infty$

准确确定 $P(E_{k,r})$ 和 $P(F_{k,r})$ 的问题似乎毫无希望地难以处理。因此,我们仿真的一个目标是估计 $n$ 在中等取值下的这些概率。尽管像定理 1 这样的结果仅是渐近的,但我们的仿真结果表明,收敛通常相当迅速。

以下是问题(II)的答案:

定理 2 :With $r \in \mathbb{R}$ and $n, k \in \mathbb{N}$,
$$
P(E_{k,r} \setminus F_{k,r}) \leq \frac{c_k}{\log n}.
$$
因此,只要 $P(E_{k,r}) = \Theta(1)$,就有 $P(F_{k,r} | E_{k,r}) = 1 - o(1)$。结合定理 1,我们得到问题 (I) 的如下答案。

定理 3 :If
$$
\pi r^2 n = \log n + k \log \log n + x,
$$
then
$$
P(F_{k,r}) \to \frac{e^{-e^{-x}}}{(k-1)!}
$$
as $n \to \infty.$

定理 2 的证明相当复杂,详见 Balister 等人 (2010)。该论文还包含了定理 1 的一个简短证明。在定理 2 的证明中的若干步骤也在我们的着色算法中被隐式使用,因此我们将更详细的讨论推迟到下一节。目前,我们仅指出:定理 2 在常数 $c_k$ 的取值范围内是最优的。

3 算法和障碍

正如我们已经指出的,如果 $r$ 足够大以保证 $k$ 覆盖,则我们的感知区域 $T$ 的大部分会被高度覆盖。因此,我们可以完全随机地使用 $k$ 种颜色对传感器进行着色(即每个传感器以概率 $1/k$ 被赋予每种颜色),并寄希望于最好的结果。如果 $T$ 的某部分 $B$ 被圆盘 $D_r(p_i)$ 覆盖了 $c$ 次,则我们的随机着色在 $B$ 处失败的概率 $p_{\text{fail}}$ 为

即,$B$ 未被每种颜色的圆盘覆盖的概率满足
$$
p_{\text{fail}} \leq k(1 - 1/k)^c \approx k e^{-c/k},
$$
因此通常非常小,因为 $c$ 通常会远大于 $k$。事实上,结合洛瓦兹局部引理,可以利用这一观察来证明,只要 $r$ 不太接近 $k$ 覆盖的阈值,定理 2 就成立。然而,我们最感兴趣的是恰好处于该阈值范围的情况。当 $r$ 的取值略高于阈值时,会出现若干个 $T$ 的“原子”区域(即 $T \setminus \cup_i \partial D_r(p_i)$ 的拓扑连通分量),这些区域被覆盖了大约 $k$ 到 $10k$ 次。对于这些区域,$p_{\text{fail}}$ 将(近似地!)处于 $10e^{-10}$ 和 $e^{-1}$ 之间,并且最终我们的着色方案确实会在其中一个区域上失败。以下章节描述了两种避免此问题的方法:第一种是完全分布式的,涉及重新着色;而第二种是集中式算法,首先对着色稀疏覆盖的区域进行着色。

3.1 阈值重新着色

对于该算法,第一步是像上面一样随机为每个传感器着色。然后,对于每个 sensor $p$,我们测量在 $p$ 处的总接收功率(假设路径损耗定律的形式为 $P = d^{-\alpha}$),前提是所有与 $p$ 具有相同颜色的传感器同时传输。如果该功率超过某个阈值,则对 $p$ 进行重着色。我们对所有 $n$ 个传感器同时执行此操作(或者 alternatively,在 $k$ 轮中每轮处理一个颜色类),并重复该过程。希望此过程的连续迭代将收敛到更平衡的着色。注意,该方法确保在某一轮中被着相同颜色的两个相邻传感器在下一轮中很可能被赋予不同颜色。我们所说的“相邻”和“很可能”的具体含义由路径损耗指数 $\alpha$ 决定,我们可以利用它来微调算法。此外,在下面的仿真结果中,阈值被选择为使得第一轮中有 30% 的传感器被重着色;此后该阈值保持不变,最多执行 10 轮。因此,该算法的运行时间为 $O(1)$,总共需要 $O(n)$ 次操作。算法每次试验运行的伪代码如算法 1 所示。

该算法具有若干显著特点。首先,有理由期望它能够收敛到一种着色,这种着色在某种意义上是平衡的,即每个颜色类不仅覆盖 $T$,而且是以均匀的方式覆盖。其次,该算法不要求节点之间能够通信:每个节点只需能够测量接收到的功率,并在其操作的所有其他方面保持独立。

表 1 和表 2 分别显示了在路径损耗指数为 $\alpha = 2$ 和 $\alpha = 4$ 时对该算法进行仿真所得到的结果。对于 $r, k$ 和 $n$ 的每一组取值组合,均执行了 1000 次运行(每次迭代中同时进行重着色)。标题为“随机失败”的列表示在随机排列圆盘的情况下随机着色失败的次数,标题为“重着色”的列表示剩余情况下通过迭代阈值重着色算法成功着色的次数,最后一列指示重新着色后的成功次数。程序未检查(所有)圆盘的原始排列是否构成 $k$-覆盖,尽管理论表明,即使在所选参数的最坏情况下,该概率也大于 0.99985。结果表明,在测试的每种参数组合中,当随机着色失败时,重新着色至少有一半的情况是成功的;并且由于在失败情况中可能存在非-$k$-覆盖,因此这低估了该算法的成功率。

示意图0 C3;(b) C5 和 (c) A3)
示意图1

3.2 自由重着色

以下着色算法在传感器位置合理分布的假设下,运行时间为 $O(n \log n \log \log n)$。

我们首先将环面划分为 $2r \times 2r$ 个方块,使得任一方块中传感器的感知区域仅与该方块自身或与其相邻或对角相邻的共九个方块内传感器的感知区域重叠。我们的运行时间估计基于这样一个假设:每个方块包含的传感器数量不超过 $C \log n$ 个,其中 $C$ 为某个常数。在临界状态下,每个方块平均包含 $\Theta(\log n)$ 个传感器,当 $C$ 足够大时,高概率下没有任何方块包含超过 $C \log n$ 个传感器。该算法分为三个阶段进行。

阶段1 :我们生成一个覆盖稀疏的原子区域列表。在我们的仿真中,这表示覆盖度最多为 $s = 2k + 1$ 的区域:然而参数 $s$ 是可调整的。为了创建此列表,对于每个传感器 $p$,我们列出其邻居 $p_1, …, p_l$,即其感知区域与 $p$ 的感知区域相交的传感器。对于每个 $p$,只需检查附近方块中的传感器,因此在上述假设下,每个传感器所需时间为 $O(\log n)$。

每个 $p_i$ 的感知区域与 $p$ 的感知区域的边界相交形成一条弧。设 $\theta^- i$ 和 $\theta^+_i$ 是从 $p$ 测量得到的该弧的起始和结束角度。我们用一个数组 $(\eta_1, …, \eta_l)$ 来记录该弧是否穿过射线 $\theta = 0$,如果穿过 $\theta = 0$ 则设置为 $\eta_i = 1$,否则设置为 $\eta_i = 0$。那么在 $\partial D(p)$ 上的点 $\theta = 0$ 处的总覆盖度就是 $c = \sum {i=1}^l \eta_i$。

我们对角度 $\theta^\pm_i \in [0, 2\pi]$ 进行排序,然后按递增顺序依次考虑每个角度 $\theta^\pm_i$。如果我们遇到一个 $\theta^-_i$,则设置 $\eta_i = 1$,并将 $c$ 增加 $1$。如果我们遇到一个 $\theta^+_i$,则设置 $\eta_i = 0$,并将 $c$ 减少 $1$。因此,数组 $(\eta_i)$ 和 $c$ 分别跟踪我们在遍历 $\partial D(p)$ 时的传感器圆盘和覆盖水平。每当覆盖水平 $c$ 不超过覆盖限制 $s$ 时,我们就记录下覆盖 $\partial D(p)$ 这一部分区域的传感器集合 $S = {p_i : \eta_i = 1}$,并将其存入一个数组中。

为了提高效率,我们只需要记录覆盖处于局部最小值时的情况,即恰好在一个 $\theta^+_i$ 之后和一个 $\theta^-_j$ 之前。

对角度进行排序需要 $O(l \log l)$ 时间,此处所有其他步骤需要 $O(l)$,因此现在所有传感器的总运行时间为 $O(n \log n \log \log n)$。(根据上述假设,$l \leq 9C \log n$。)

阶段2 :我们将集合 $S$ 按照其自由度顺序放入数组中。$S$ 的自由度定义为 $S$ 中未着色传感器的数量减去缺失颜色的数量,即未在某些 $p \in S$ 中作为颜色出现的颜色数量。最初,没有传感器被着色,所有 $k$ 颜色都缺失,因此每个集合 $S$ 的自由度恰好为 $|S| - k$。注意,自由度只有 $s - k + 1 = O(1)$ 种可能的取值,因此每次添加或删除一个新的集合时,只需付出 $O(1)$ 的时间代价即可维护集合按自由度排序。此外,集合最多有 $O(n \log n)$ 个,但在实际中,若选择的 $s$ 不太大,则集合数量要少得多。实际上,我们选择 $s$ 是为了使算法的下一阶段不会太慢。

取一个具有最小自由度的集合 $S$。如果该自由度为负,则着色失败,我们停止操作。如果 $S$ 中的所有传感器都已被着色,则丢弃 $S$。否则,选择一个未着色的传感器 $p \in S$,并从 $S$ 的缺失颜色中随机为 $p$ 分配一种颜色,即任何尚未被分配给 $p’ \in S$ 的颜色。我们更新包含 $p$ 的其他最多 $O(\log n)$ 个集合的自由度,并重复此过程,直到着色失败或不再剩下集合为止。(通过首先构造一个缺失颜色集合 $M$,这些颜色在每一个自由度为 0 的其他集合 $S’ \ni p$ 中也缺失,可以对算法进行轻微改进。然后,如果 $M \neq \emptyset$,我们从 $M$ 中随机选择一种颜色为 $p$ 着色。这可以避免将另一个集合的自由度降至 0 以下,从而防止算法失败。)

上述着色每次着色分配需要 $O(\log n)$ 时间,因此总体最多需要 $O(n \log n)$ 时间。我们现在已经对传感器进行了着色,以覆盖“困难”区域,除非该算法失败。

第三阶段 :着色的最后阶段是重复第一阶段,依次找到每个传感器的邻居 $p_1, …, p_l$。与之前一样,我们计算角度 $\theta^\pm_i$ 并初始化数组 $(\eta_i)$。但这一次,我们还维护一个数组 $(n_1, …, n_k)$,用于记录颜色为 $i$ 的圆盘覆盖某段弧的数量 $n_j$。如同之前,我们遍历 $\partial D(p)$ 并更新该数组,当遇到一个 $\theta^-_i$ 且 $p_i$ 的颜色为 $j$ 时,将 $n_j$ 加 $1$;当遇到一个 $\theta^+_i$ 且 $p_i$ 的颜色为 $j$ 时,将 $n_j$ 减 $1$。如果某个 $n_j$ 变为零,则贪心分配颜色 $j$ 给任何覆盖该区间(即 $\eta_i = 1$)的未着色传感器 $p_i$,并在过程中将 $n_j$ 加 $1$。如果没有这样的未着色传感器存在,则着色失败,我们停止。

如果成功,结果将是传感器的部分着色,使得每个点都被每种颜色的传感器覆盖。

仿真用 C 语言编写,随机数由 16 位版本的 ARC4 生成。所有坐标算术均以完整的双精度进行。

3.3 可分割性的障碍

无论使用何种算法,某些 $k$-覆盖都无法进行 $k$-着色。我们首先关注 $k = 2$ 的情况。图 1(a)–(c) 展示了三种非 2-可分割的 2-覆盖。尽管还存在其他可分割性的障碍,但这三种情况共同构成了大多数情形——见表 3。参考这些图示,我们仅关注小中心圆内部的中心区域(该圆并非圆盘边界 $\partial D_r(p_i)$ 之一)。在每种情况下,中心区域都是 2-覆盖的,但任何试图将圆盘划分为两个覆盖的尝试都将注定失败。对于图 1(a),三个“内部”圆盘中有两个(即在非常中心处相交的那些)必须被染成相同的颜色,这意味着另一颜色类的圆盘无法覆盖整个中心区域。在图 1(b) 中,循环顺序中某些两个相邻的圆盘必须被染成相同的颜色,从而得出同样的结论。最后,在图 1(c) 中,绕行图形时圆盘必须用两种颜色交替着色,这意味着最中心的原子区域仅被一种颜色的圆盘覆盖。

前两种构型,我们分别称为 $C_3$ 和 $C_5$,与第三种 $A_3$ 不同。(这种符号的解释将在下一节中给出。)原因是中心区域可以缩小到任意小的程度,正如该构型在半平面中也存在一样。然而,$A_3$ 的存在归因于圆盘的曲率,因此不存在对应的半平面版本。出于这个原因,当 $n$ 较大时,$C_3$ 和 $C_5$ 构型将占主导地位,超过 $A_3$ 构型。事实上,对于较大的 $n$,圆形中心区域既大又不与其他圆盘相交的情况极为罕见。因此,中心区域通常较小,在其尺度上,圆盘边界几乎呈直线。对于 $C_3$ 和 $C_5$ 而言这是可能的,但对于 $A_3$,小中心圆被迫与圆盘本身尺寸相近,导致随着 $n$ 的增加,$A_3$ 出现的可能性越来越小。

这些事实引导我们研究具有半平面的非 2-可分割 2-覆盖。在 Balister 等人 (2010) 中,证明了以下定理。

定理 4 :假设 $C$ 是 $\mathbb{R}^2$ 的一个有限半平面 2-覆盖,且该覆盖不可 2-划分。则 $C$ 包含一个 $C_3$ 或一个 $C_5$ 构型。

$C_3$s 和 $C_5$s 是以概率 $\Theta(1 / \log n)$ 出现的构型,使得定理 2 对于 $k = 2$ 是最优的。事实上,对于 $k \geq 3$,在 $k$-覆盖中对 $k$-可分割性的主要障碍恰好是非-2-可分割的 2-覆盖,其中整个中心区域被 $k - 2$ 个公共圆盘覆盖。所有其他障碍的渐近频率较低。总结来说,当 $n$ 较大时,$C_3$s 和 $C_5$s(可能被其他圆盘覆盖)是 $k$-覆盖进行 $k$-着色的主要障碍。

3.4 自由度重着色结果与障碍的统计

每种情况下自由重着色算法运行 100000 次的结果显示在表 3 中。各列标题的含义如下:‘ftkc’ 表示程序允许的最大圆盘数量未能 $k$-覆盖 $T$,$C_i$ 表示程序找到了一个 $C_i$ 构型,“fail” 表示程序成功对 $k$-覆盖区域进行了着色,但未能对圆盘进行 $k$-着色,并且未能找到障碍,“succeed” 表示程序成功对圆盘进行了 $k$-着色。

该程序还识别出几种不同类型的“渐近低频”障碍(如 $A_3$),列于表 3 的中间几列中。通用记号 $C_n$ 指一种构型,其中包含被 $k - 2$ 个公共圆盘覆盖的 $n$ $k$-覆盖区域,在移除这些公共圆盘后,每个区域仅被一对传感器圆盘($D_i, D_{i+1}$)覆盖,其中 $n$ 为奇数,且下标按模 $n$ 计算。只有 $C_3$ 和 $C_5$ 具有半平面变体,尽管从表中可以看出,总体上检测到了若干个圆盘-$C_7$ 以及甚至 4 个圆盘-$C_9$。其余编码描述了阻碍族。为了描述它们,我们首先定义等式图。这是一个以圆盘为顶点的图,其中两个顶点 $D_i$ 和 $D_j$ 之间有一条边相连,当且仅当存在两个恰好 $k$-覆盖的区域 $A$ 和 $B$,使得覆盖 $A$ 和 $B$ 的圆盘集合的对称差恰好为 ${D_i, D_j}$(见图 2)。术语“等式图”的原因是,通过边连接的两个顶点对应必须用相同颜色着色的圆盘。

4 结论

无线传感器网络中的哨兵选择问题在理论和算法上均具有研究价值。对于 $n$ 个节点在单位环面上均匀随机分布的设置,最近的一项结果表明,随机生成的 $k$-覆盖在节点数量增加时渐近几乎必然地是 $k$-可分割的。换句话说,随着节点数量的增加,$k$-覆盖与 $k$-可分割性之间的差距趋于消失。结合关于 $k$-覆盖的一个早期结果,这表明感知圆盘面积 $\pi r^2$ 只需略大于 $(\log n + k \log \log n)/n$ 即可实现 $k$-可分割性。因此,当 $n$ 变得较大时,为了获得 $k$ 组互不相交的传感器集合(每组均能覆盖整个区域)而非仅单一覆盖,所需增加的 $r$ 相当小——而带来的好处却是网络寿命成 $k$ 倍的提升。

在本文中,我们研究了影响 $k$-可分割性的一些主要阻碍。此类阻碍出现的概率随着 $1 / \log n$ 趋近于零。在算法方面,我们提出了一种改进方法,基于测量来自相同颜色节点的总功率,并在功率超过阈值时重新着色的随机着色方法。这一简单方案“挽救”了约 80% 原本随机着色未成功的案例。我们还提出了一种高效的集中式着色算法,其运行时间为 $O(n \log n \log \log n)$,并在几乎所有情况下都能成功。最后,我们给出了仿真结果,提供了关于可分割性障碍出现频率的详细统计数据。这些结果阐明了近期的理论成果,并为几何分割问题的未来研究指明了方向。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值