这是用户在 2024-6-11 22:09 为 https://arxiv.org/html/2312.10797v2?_immersive_translate_auto_translate=1 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

许可证:arXiv.org 永久非排他性许可证

arXiv:2312.10797v2 [cs.RO] 2024年2月28日


通过局部搜索进行大规模多机器人覆盖路径规划

Jingtao Tang, Hang Ma
 摘要


我们研究基于图的多机器人覆盖路径规划(MCPP),旨在计算多个机器人的覆盖路径,以覆盖给定二维网格地形图 G𝐺Gitalic_G 的所有顶点。现有的基于地形图的 MCPP 算法首先在 G𝐺Gitalic_G 上计算树覆盖(由覆盖所有顶点的多棵树组成的森林),然后采用生成树覆盖(STC)范式,通过环绕所计算树的边,在地形图 G𝐺Gitalic_G 的分解图 D𝐷Ditalic_D 上生成覆盖路径,目的是优化 makepan(即所有机器人的最大覆盖路径成本)。在本文中,我们采用了一种不同的方法,探索如何直接在 D𝐷Ditalic_D 上系统地搜索良好的覆盖路径。我们引入了一种新的算法框架,称为 LS-MCPP,它利用局部搜索直接在 D𝐷Ditalic_D 上运行。我们提出了一种新颖的独立范式--扩展 STC(ESTC),它扩展了 STC,使 MCPP 在任何分解图上都能实现完全覆盖,甚至包括那些由不完整地形图产生的分解图。此外,我们还演示了如何将 ESTC 与三种新型邻域算子集成到我们的框架中,以有效指导其搜索过程。我们的大量实验证明了 LS-MCPP 的有效性,它持续改进了在 G𝐺Gitalic_G 上计算次优树覆盖的两种最先进基线算法所返回的初始解,显著缩短了时间跨度,分别达到 35.7% 和 30.3%。此外,LS-MCPP始终匹配或超越最优树覆盖计算的结果,以更快的运行时间实现这些结果,从而展示了它在大规模实际覆盖任务中的显著优势。

 导言


覆盖路径规划(CPP)是机器人学中的一个基本问题(Galceran 和 Carreras,2013 年),其目的是为机器人找到一条完全覆盖感兴趣地形的路径,例如室内地面(Bormann 等,2018 年)和室外场地(Torres 等,2016 年)。多机器人覆盖路径规划(Multi-Robot Coverage Path Planning,MCPP)是为多机器人系统定制的 CPP 的扩展,旨在协调多个机器人的路径,以完全覆盖给定地形。MCPP 提高了任务效率和系统鲁棒性,促进了环境监测(Collins 等人,2021 年)和搜索救援(Song 等人,2022 年)等各种实际应用。MCPP 的一个基本挑战在于生成成本平衡的覆盖路径,以优化任务效率,通常用 makespan(即所有机器人的最大路径成本)来量化。在处理大规模应用时,机器人的数量和地形的大小都会增加,这就进一步加剧了这一挑战。

Refer to caption

图 1:基于图的 CPP 和 MCPP:灰方、黑圆和黑星分别代表地形图顶点、分解图顶点和机器人初始顶点;实线和虚线分别代表覆盖路径和跨越边。(a) 具有统一边权重的地形图。(b) STC 生成的单机器人覆盖路径。(c)(d) 次优和最优 2222 -robot 覆盖路径,跨度分别为 22221.51.51.51.5


在本文中,我们沿用现有的基于图的 MCPP 算法(Zheng 等人,2010 年;Li 等人,2023 年),将需要覆盖的地形表示为一个 4 连接的 2D 网格图 G𝐺Gitalic_G ,其中每条边连接水平或垂直相邻的顶点。机器人需要从各自的初始顶点出发并返回,就像在覆盖和返回设置中一样(Zheng 和 Koenig,2007 年)。这些基于图形的 MCPP 算法的基础是生成树覆盖(STC)范例(Gabriely 和 Rimon,2001 年和 2002 年),最初是针对(单机器人)CPP 开发的。STC 在地形图 G𝐺Gitalic_G 上运行,但会在从 G𝐺Gitalic_G 导出的分解图 D𝐷Ditalic_D 上以最小的时间跨度找到一条覆盖路径。分解图 D𝐷Ditalic_D 也是一个 4 连接的 2D 网格图,是将 G𝐺Gitalic_G 的每个顶点分解为 4 个分解顶点的结果。图 1 显示了要覆盖的地形图 G𝐺Gitalic_G 及其相应的分解图 D𝐷Ditalic_D ,其中 STC 通过环绕(即始终沿跨边右侧移动) G𝐺Gitalic_G 的最小生成树,在 D𝐷Ditalic_D 上生成单机器人覆盖路径。


与 STC 类似,现有的基于图的 MCPP 算法只对给定的地形图 G𝐺Gitalic_G 进行操作,以建立树状覆盖--由多棵树组成的森林,每棵树都根植于一个机器人的初始顶点,共同覆盖 G𝐺Gitalic_G 的所有顶点。然后通过环绕相应的树,获得每个机器人的覆盖路径。从本质上讲,这些算法将 MCPP 简化为 G𝐺Gitalic_G 上的 NP 难最小-最大有根树覆盖问题(Even 等人,2004 年;Nagamochi 和 Okada,2007 年),该问题旨在优化树覆盖中最大权重树的权重,因为它决定了 D𝐷Ditalic_D 上所产生覆盖路径的有效期。不过,仅在地形图 G𝐺Gitalic_G 上运行有两个缺点。首先,它不适用于不完整的地形图 G𝐺Gitalic_G ,因为在不完整的地形图中,一个顶点的四个分解顶点中的某些顶点可能被阻塞,因此在分解图 D𝐷Ditalic_D 中不存在。其次, G𝐺Gitalic_G 上的最优树覆盖并不一定会产生最优 MCPP 解决方案(如图 1-(c) 和 (d) 所示),在最坏的情况下,其产生的 makepan 的渐进次优比为 4(Zheng 等人,2010 年),因为在树覆盖中环绕树木只探索了解决方案空间的一部分,而该空间包含了分解图 D𝐷Ditalic_D 上所有可能的覆盖路径集。


因此,我们另辟蹊径,探索如何直接在分解图上系统地搜索良好的覆盖路径。我们在算法上的贡献主要体现在以下几个方面:(1) 我们提出了一种新颖的独立算法范式,称为扩展地形图(ESTC),它是 STC 的扩展,通过直接在分解图上操作来解决完整和不完整地形图上的覆盖规划问题。重要的是,我们证明了 ESTC 可以保证单机器人和多机器人环境下的完全覆盖,从而使其成为覆盖路径规划的高效、通用解决方案。(2) 我们提出了三种专门的邻域算子,通过识别分解图中具有成本效益的子图来生成机器人的覆盖路径,从而促进有效的局部搜索过程。这些算子的战略性整合提高了局部搜索探索解决方案空间的效率。(3) 我们演示了如何将这些邻域算子与对 ESTC 范式的迭代调用相结合,从而建立我们提出的 LS-MCPP 框架,用于求解 MCPP。为了验证 LS-MCPP 的有效性,我们进行了大量实验,并将其与三种最先进的基于图形的 MCPP 算法(这些算法仅在完整地形图上运行)进行了比较。结果表明,LS-MCPP 所实现的跨度分别比两种基线算法小 35.7% 和 30.3%,这两种算法都是在地形图上计算次优树覆盖。此外,LS-MCPP 所实现的跨度一直与其余基线算法相当或更好,后者采用混合整数编程(MIP)计算地形图上的最优树覆盖。基线算法需要几十个小时才能完成,而 LS-MCPP 只需几分钟就能完成同样的任务,这充分展示了它在大规模实际覆盖问题上的效率和实用性。

 MCPP 的相关工作


现有的 MCPP 算法首先将给定地形划分为多个区域,然后使用单机器人 CPP 算法为机器人生成每个区域的覆盖路径。在不失一般性的前提下,我们将现有的 MCPP 算法分为基于分解的算法和基于图的算法。基于分解的算法首先使用待覆盖地形折线上的几何临界点对地形进行分割(Karapetyan 等人,2017 年;Vandermeulen、Groß 和 Kolling,2019 年),然后生成之字形路径覆盖每个分割区域。尽管这些方法在相对开放的环境中非常简单,但由于依赖于几何分区,且无法考虑加权地形的非均匀穿越成本,因此不适合障碍物较多的地形(如迷宫)。


我们的论文侧重于基于图的 MCPP 算法(Zheng 等人,2010 年;Li 等人,2023 年),因为这些算法将需要覆盖的地形建模为图,并通过为边或顶点分配权重来考虑非均匀遍历成本,所以用途更为广泛。在图上求解 MCPP 以实现时间跨度最小化已被证明是 NP 难(Zheng 等人,2010 年)。现有方法包括多项式时间近似算法(Hazon 和 Kaminka,2005 年;Tang、Sun 和 Zhang,2021 年)、数值优化(Kapoutsis、Chatzichristofis 和 Kosmatopoulos,2017 年)以及 MIP 方案(Tang 和 Ma,2023 年)。一个密切相关的问题是目标为最小值的多旅行推销员问题(mTSP)(França 等人,1995 年),其目的是为多个推销员找到访问所有给定城市的最佳路线。然而,现有的可扩展 mTSP 算法都是针对欧几里得空间设计的(He and Hao 2023)。我们还不知道有哪种 mTSP 算法直接适用于基于图的 MCPP 问题。

 问题的提出


在 MCPP 实例中,我们给定了一个相连的二维网格地形图 G=(Vg,Eg)𝐺subscript𝑉𝑔subscript𝐸𝑔G=(V_{g},E_{g})italic_G = ( italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ) 及其相应的分解图 D=(Vd,Ed)𝐷subscript𝑉𝑑subscript𝐸𝑑D=(V_{d},E_{d})italic_D = ( italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) ,其中 Vgsubscript𝑉𝑔V_{g}italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 中的每个地形顶点在 Vdsubscript𝑉𝑑V_{d}italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 中被分解为四个相邻的小顶点,如图 1-(a) 所示。为清楚起见,我们用 δvVgsubscript𝛿𝑣subscript𝑉𝑔\delta_{v}\in V_{g}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ∈ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 表示分解后的 vVd𝑣subscript𝑉𝑑v\in V_{d}italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 的相应地形顶点,用 ε=(δu,δv)Eg𝜀subscript𝛿𝑢subscript𝛿𝑣subscript𝐸𝑔\varepsilon=(\delta_{u},\delta_{v})\in E_{g}italic_ε = ( italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT , italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) ∈ italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 表示连接 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPTδvsubscript𝛿𝑣\delta_{v}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 的边。每个 εEg𝜀subscript𝐸𝑔\varepsilon\in E_{g}italic_ε ∈ italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 的权重为 wεsubscript𝑤𝜀w_{\varepsilon}italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT 。请注意,加权边的定义不同于考虑加权顶点的文献(Zheng 等人,2010 年),但是通过将每条边的权重平均分配给其两个端点顶点,将加权边转换为加权顶点是非常方便的。在这种情况下,每个 δvVgsubscript𝛿𝑣subscript𝑉𝑔\delta_{v}\in V_{g}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ∈ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 都有 wδv=εδvwεsubscript𝑤subscript𝛿𝑣subscriptsimilar-to𝜀subscript𝛿𝑣subscript𝑤𝜀w_{\delta_{v}}=\sum_{\varepsilon\sim{\delta_{v}}}w_{\varepsilon}italic_w start_POSTSUBSCRIPT italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT ,其中 εδvsimilar-to𝜀subscript𝛿𝑣\varepsilon\sim\delta_{v}italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 表示 δvsubscript𝛿𝑣\delta_{v}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPTε𝜀\varepsilonitalic_ε 的端点。这样, D𝐷Ditalic_D 的每条边 e=(u,v)Ed𝑒𝑢𝑣subscript𝐸𝑑e=(u,v)\in E_{d}italic_e = ( italic_u , italic_v ) ∈ italic_E start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 的权重 we=1412[εδuwε+εδvwε]subscript𝑤𝑒1412delimited-[]subscriptsimilar-to𝜀subscript𝛿𝑢subscript𝑤𝜀subscriptsimilar-to𝜀subscript𝛿𝑣subscript𝑤𝜀w_{e}=\frac{1}{4}\cdot\frac{1}{2}\cdot\left[\sum_{\varepsilon\sim\delta_{u}}w_% {\varepsilon}+\sum_{\varepsilon\sim\delta_{v}}w_{\varepsilon}\right]italic_w start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 4 end_ARG ⋅ divide start_ARG 1 end_ARG start_ARG 2 end_ARG ⋅ [ ∑ start_POSTSUBSCRIPT italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT + ∑ start_POSTSUBSCRIPT italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT ] 就被定义为将每条 δVg𝛿subscript𝑉𝑔\delta\in V_{g}italic_δ ∈ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 的权重 wδsubscript𝑤𝛿w_{\delta}italic_w start_POSTSUBSCRIPT italic_δ end_POSTSUBSCRIPT 平均分配给 wδ/4subscript𝑤𝛿4w_{\delta}/4italic_w start_POSTSUBSCRIPT italic_δ end_POSTSUBSCRIPT / 4 的四个分解顶点(Tang 和 Ma,2023 年)。


对于 D𝐷Ditalic_D 上的任意路径 π=(e1,e2,,e|π|)𝜋subscript𝑒1subscript𝑒2subscript𝑒𝜋\pi=(e_{1},e_{2},...,e_{|\pi|})italic_π = ( italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_e start_POSTSUBSCRIPT | italic_π | end_POSTSUBSCRIPT ) ,其中每个 eiEdsubscript𝑒𝑖subscript𝐸𝑑e_{i}\in E_{d}italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ italic_E start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ,我们将其成本定义为 c(π)=i=1|π|wei𝑐𝜋superscriptsubscript𝑖1𝜋subscript𝑤subscript𝑒𝑖c(\pi)=\sum_{i=1}^{|\pi|}w_{e_{i}}italic_c ( italic_π ) = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT | italic_π | end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT 。给定一组 I={1,2,,k}𝐼12𝑘I=\{1,2,...,k\}italic_I = { 1 , 2 , … , italic_k } 机器人和一组 R={ri}iIVd𝑅subscriptsubscript𝑟𝑖𝑖𝐼subscript𝑉𝑑R=\{r_{i}\}_{i\in I}\subseteq V_{d}italic_R = { italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT ⊆ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 初始根顶点,基于图的 MCPP 问题是找到一组 Π={πi}iIΠsubscriptsubscript𝜋𝑖𝑖𝐼\Pi=\{\pi_{i}\}_{i\in I}roman_Π = { italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPTk𝑘kitalic_k 路径,使得每个 vVd𝑣subscript𝑉𝑑v\in V_{d}italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 至少被一条覆盖路径访问以实现完全覆盖,且每个 πisubscript𝜋𝑖\pi_{i}italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTrisubscript𝑟𝑖r_{i}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 开始和结束。解决方案的质量是通过跨度 τ=max{c(π1),c(π2),,c(πk)}𝜏𝑐subscript𝜋1𝑐subscript𝜋2𝑐subscript𝜋𝑘\tau=\max\{c(\pi_{1}),c(\pi_{2}),...,c(\pi_{k})\}italic_τ = roman_max { italic_c ( italic_π start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , italic_c ( italic_π start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , … , italic_c ( italic_π start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) } 来衡量的。


符号:我们使用元组 (G,D,R)𝐺𝐷𝑅(G,D,R)( italic_G , italic_D , italic_R ) 来表示 MCPP 实例。对于每个机器人 iI𝑖𝐼i\in Iitalic_i ∈ italic_I ,我们区分其对应子图 Di=(Vd,i,Ed,i)subscript𝐷𝑖subscript𝑉𝑑𝑖subscript𝐸𝑑𝑖D_{i}=(V_{d,i},E_{d,i})italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT )D𝐷Ditalic_D 和其对应子图 Gi=(Vg,i,Eg,i)subscript𝐺𝑖subscript𝑉𝑔𝑖subscript𝐸𝑔𝑖G_{i}=(V_{g,i},E_{g,i})italic_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_V start_POSTSUBSCRIPT italic_g , italic_i end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_g , italic_i end_POSTSUBSCRIPT )G𝐺Gitalic_G

 扩展-STC


在本节中,我们将介绍新的扩展地形图(ESTC)范式,以解决不完整地形图的覆盖问题。我们的定义是,如果 δvVgsubscript𝛿𝑣subscript𝑉𝑔\delta_{v}\in V_{g}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ∈ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 的四个分解顶点都出现在 Vdsubscript𝑉𝑑V_{d}italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 中,则 是完整的,否则是不完整的。如果一个地形图 G𝐺Gitalic_G 的所有顶点都是完整的,那么它就是完整的,否则就是不完整的。STC 只适用于完整地形图,因为它依赖于环绕 G𝐺Gitalic_G 的跨边。如图 1-(c)(d)所示,STC 的这一限制也使得基于 STC 的 MCPP 算法(Tang 和 Ma 2023)即使在完整地形图上也无法找到好的解决方案。在本文中,我们的重点是覆盖一个连通但可能不完整的分解图,因为覆盖一个不连通的分解图只需要在其每个连通的组成部分中增加一个机器人。


为了生成通过不完整地形顶点的覆盖路径,我们提出的 ESTC 范例巧妙地将 Full-STC(Gabriely 和 Rimon,2002 年)的路径变形程序集成到 STC 的离线计算中。Full-STC 专为未知地形图上的在线(单机器人)CPP 而设计。它可以应用于不完整地形图,但对于已知地形图上的 CPP 实例来说则不是最佳选择,因为它没有考虑不同生成树所产生的不同路径成本。图 2 举例说明了 Full-STC 的次优性。

Refer to caption

图 2:具有根顶点(黑色星形)和不完整地形顶点(黄色单元格)的 CPP 实例,其中 STC 没有完全覆盖。完全 STC 是次优的,有不理想的路线(红圈区域),而根据增强地形图 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ,ESTC 是最优的。


与 Full-STC 一样,ESTC 也在增强地形图 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 上运行,其中 G𝐺Gitalic_G 中的一些边在 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 中被移除,以反映其地形顶点之间的连通性。具体来说,如果地形顶点 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 的每个分解顶点 u𝑢uitalic_u 与地形顶点 δvsubscript𝛿𝑣\delta_{v}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 的每个分解顶点 v𝑣vitalic_v 不相邻,则在 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 中删除边 ε=(δu,δv)Eg𝜀subscript𝛿𝑢subscript𝛿𝑣subscript𝐸𝑔\varepsilon=(\delta_{u},\delta_{v})\in E_{g}italic_ε = ( italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT , italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) ∈ italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 。一种特殊情况是,每个不完整的地形顶点 δVg𝛿subscript𝑉𝑔\delta\in V_{g}italic_δ ∈ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 只有两个对角相对的分解顶点,在 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 中会被两个不相邻的地形顶点取代,因为它的两个分解顶点是不相邻的。与 Full-STC 不同,ESTC 考虑了不均匀的边权重。如果 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPTδvsubscript𝛿𝑣\delta_{v}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 都是完整的,则边 ε=(δu,δv)𝜀subscript𝛿𝑢subscript𝛿𝑣\varepsilon=(\delta_{u},\delta_{v})italic_ε = ( italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT , italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) 的权重与 G𝐺Gitalic_G 中的权重相同。否则, ε𝜀\varepsilonitalic_ε 的操作边权重为

wmax12(εδuwε+εδvwε)subscript𝑤12subscriptsimilar-to𝜀subscript𝛿𝑢subscript𝑤𝜀subscriptsimilar-to𝜀subscript𝛿𝑣subscript𝑤𝜀\displaystyle w_{\max}\cdot\frac{1}{2}\cdot\left({\textstyle\sum_{\varepsilon% \sim\delta_{u}}w_{\varepsilon}+\sum_{\varepsilon\sim\delta_{v}}w_{\varepsilon}% }\right)italic_w start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ⋅ divide start_ARG 1 end_ARG start_ARG 2 end_ARG ⋅ ( ∑ start_POSTSUBSCRIPT italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT + ∑ start_POSTSUBSCRIPT italic_ε ∼ italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT italic_ε end_POSTSUBSCRIPT ) (1)


其中 wmaxsubscript𝑤w_{\max}italic_w start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPTEgsubscript𝐸𝑔E_{g}italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 的最大边权重,优先使用连接完整地形顶点的边。图 2 显示了增强地形图 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 的一个示例。


根据构造, Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 是相连的 D𝐷Ditalic_D 。然后,ESTC 在 Gsuperscript𝐺G^{\prime}italic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 而不是 G𝐺Gitalic_G 上建立最小生成树(MST),并使用与 Full-STC(Gabriely 和 Rimon,2002 年)中定义的相同路径变形规则来通过不完整顶点。从本质上讲,只要由于分解顶点之间的非相邻关系而无法沿右侧移动,该规则就会重新规划生成边左侧的覆盖路径。式(1)中操纵的边权重优先使每个不完整顶点成为 MST 的叶子,这可以防止一些分解顶点在路径变形中因重定向而重复覆盖,从而提高 CPP 解的质量(见图 2)。根据(Gabriely 和 Rimon,2002 年)中定理 3.1 证明中使用的论点,ESTC 保证生成的路径能覆盖连通分解图 D𝐷Ditalic_D 中的所有顶点,因为该论点不受添加边权重和边优先级的影响。


在 MCPP 中用 ESTC 取代 STC:回想一下,对于 MCPP 实例 (G,D,R)𝐺𝐷𝑅(G,D,R)( italic_G , italic_D , italic_R ) ,基于 STC 的 MCPP 算法首先构建 G𝐺Gitalic_Gk𝑘kitalic_k 树,然后应用 STC 生成覆盖路径。因此,这些算法只能在具有完整顶点的地形图上生成每条覆盖路径,而这在大多数情况下都是次优的。我们建议将 ESTC 扩展到 MCPP,具体如下。首先,我们生成一组 {Di=(Vd,i,Ed,i)}iIsubscriptsubscript𝐷𝑖subscript𝑉𝑑𝑖subscript𝐸𝑑𝑖𝑖𝐼\{D_{i}=(V_{d,i},E_{d,i})\}_{i\in I}{ italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPTk𝑘kitalic_k 连接子图 D𝐷Ditalic_D 。每个 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 都会引起 G𝐺Gitalic_G 的一个子图 Gisubscript𝐺𝑖G_{i}italic_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ,该子图可能是不完整的。然后,我们按照上述方法求解每个子 CPP 实例 ( Gisubscript𝐺𝑖G_{i}italic_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , risubscript𝑟𝑖r_{i}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ,在增强的 Gisuperscriptsubscript𝐺𝑖G_{i}^{\prime}italic_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT 上构建 MST,生成每个机器人的覆盖路径(示例见图 1-(d))。下面的定理说明了完全覆盖的充分条件。

 定理 1.


如果 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 与所有 i𝑖iitalic_iiIVd,i=Vdsubscript𝑖𝐼subscript𝑉𝑑𝑖subscript𝑉𝑑\bigcup_{i\in I}V_{d,i}=V_{d}⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT = italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 相连,则可保证 ESTC 实现完全覆盖。

 证明 1.


鉴于 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 是连通的,ESTC 可以保证生成一条覆盖其所有顶点的路径,这与(Gabriely 和 Rimon,2002 年)中证明 Lemma 3.1 时使用的论证类似。由于 iIVd,i=Vdsubscript𝑖𝐼subscript𝑉𝑑𝑖subscript𝑉𝑑\bigcup_{i\in I}V_{d,i}=V_{d}⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT = italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ,为所有 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 生成的覆盖路径共同覆盖了 D𝐷Ditalic_D 的所有顶点。


我们的 LS-MCPP 框架的设计基于上述定理所阐述的原则。其目的是为机器人搜索一组良好的子图 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ,每个子图都是连通的,其所有顶点的联合就是顶点集 D𝐷Ditalic_D ,以确保完全覆盖。


边界编辑操作符


在本节中,我们将介绍三种边界编辑算子:增长算子、重复算子和交换算子。这些操作符旨在修改每个子图 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的边界,包括添加或删除顶点。我们将重复集 V+={vVd|nv>1}superscript𝑉conditional-set𝑣subscript𝑉𝑑subscript𝑛𝑣1V^{+}=\{v\in V_{d}\,|\,n_{v}>1\}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = { italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT | italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT > 1 } 定义为一个以上机器人覆盖的分解顶点集,其中 nv=iI|{xVd,i|x=v}|subscript𝑛𝑣subscript𝑖𝐼conditional-set𝑥subscript𝑉𝑑𝑖𝑥𝑣n_{v}=\sum_{i\in I}\left|\{x\in V_{d,i}|x=v\}\right|italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT | { italic_x ∈ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT | italic_x = italic_v } | 计算所有子图中顶点 vVd𝑣subscript𝑉𝑑v\in V_{d}italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 的出现次数。边界编辑算子会改变子图集合 {Di}iIsubscriptsubscript𝐷𝑖𝑖𝐼\{D_{i}\}_{i\in I}{ italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT ,但会确保其完全覆盖属性(即 iIVd,i=Vdsubscript𝑖𝐼subscript𝑉𝑑𝑖subscript𝑉𝑑\bigcup_{i\in I}V_{d,i}=V_{d}⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT = italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT )和子图连通性保持不变。该运算符的目的是只引入必要的重复,这样就有可能在更新的子图集上用 ESTC 改进 MCPP 解决方案。


为了实现不同子图集之间的高效转换,我们将运算符的设计限制为任意子图上的边缘运算;也就是说,每个运算符只涉及为每个子图添加或移除一条边缘。这种设计基于这样的观察,即当 ESTC 应用于生成的子图时,对单个顶点的操作有时会给覆盖路径带来不必要的重复,例如从顶点 uVd,i𝑢subscript𝑉𝑑𝑖u\in V_{d,i}italic_u ∈ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 到其邻居 vVd,i𝑣subscript𝑉𝑑𝑖v\in V_{d,i}italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 再回到 u𝑢uitalic_u 的不良路径。相比之下,边缘算子在每次操作时都会同时修改两个顶点,从而消除了这种顾虑,确保了更有效的调整。值得注意的是,边缘操作符可以实现与涉及多条边缘的操作符相同的结果。此外,我们的操作符只添加或删除两个端点由同一地形顶点分解而来的边,因为操作其他边会带来不必要的重复。形式上,我们将任何 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的此类边缘集合表示为

Fi={(u,v)Ed,i|δu=δv}.subscript𝐹𝑖conditional-set𝑢𝑣subscript𝐸𝑑𝑖subscript𝛿𝑢subscript𝛿𝑣\displaystyle F_{i}=\{(u,v)\in E_{d,i}\,|\,\delta_{u}=\delta_{v}\}.italic_F start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { ( italic_u , italic_v ) ∈ italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT | italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT = italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT } . (2)


增长操作符增长操作符的作用是扩展子图,以覆盖已被其他子图覆盖的额外顶点。让 Bisubscript𝐵𝑖B_{i}italic_B start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 表示不属于 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 但与 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的顶点相邻的顶点集合,即 Bi={vVd,i|(u,v)Ed,i,uVd/Vd,i}subscript𝐵𝑖conditional-set𝑣subscript𝑉𝑑𝑖formulae-sequence𝑢𝑣subscript𝐸𝑑𝑖𝑢subscript𝑉𝑑subscript𝑉𝑑𝑖B_{i}=\{v\in V_{d,i}\,|\,\exists\,(u,v)\in E_{d,i},u\in V_{d}/V_{d,i}\}italic_B start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = { italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT | ∃ ( italic_u , italic_v ) ∈ italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT , italic_u ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT / italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT } 。从形式上看,一个有效的增长算子 og(i,e)subscript𝑜𝑔𝑖𝑒o_{g}(i,e)italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e ) 可以将 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的边 e=(u,v)Fi𝑒𝑢𝑣subscript𝐹𝑖e=(u,v)\in F_{i}italic_e = ( italic_u , italic_v ) ∈ italic_F start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTu,vBi𝑢𝑣subscript𝐵𝑖u,v\in B_{i}italic_u , italic_v ∈ italic_B start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 以及所有相关连接边添加到 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 中,其中 (p,q)Ed,i𝑝𝑞subscript𝐸𝑑𝑖\exists\,(p,q)\in E_{d,i}∃ ( italic_p , italic_q ) ∈ italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT(u,p),(v,q)Ed,i𝑢𝑝𝑣𝑞subscript𝐸𝑑𝑖(u,p),(v,q)\in E_{d,i}( italic_u , italic_p ) , ( italic_v , italic_q ) ∈ italic_E start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 。实质上,只有当 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 中存在平行边 (p,q)𝑝𝑞(p,q)( italic_p , italic_q ) 时,有效增长操作符才能添加边 e=(u,v)𝑒𝑢𝑣e=(u,v)italic_e = ( italic_u , italic_v ) (示例见图 3-(b)(c))。图 3-(a) 举例说明了这一设计选择可避免在覆盖路径中引入不良路由。在执行 e=(u,v)𝑒𝑢𝑣e=(u,v)italic_e = ( italic_u , italic_v ) 的增长算子 og(i,e)subscript𝑜𝑔𝑖𝑒o_{g}(i,e)italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e ) 后,顶点 u,v𝑢𝑣u,vitalic_u , italic_v 会被添加到 V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ,因为它们也被其他子图覆盖。

Refer to caption

图 3:增长算子 og(i,e)subscript𝑜𝑔𝑖𝑒o_{g}(i,e)italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e ) 的示例以及执行后的覆盖路径。蓝圈和黑圈分别代表边界顶点集 Bisubscript𝐵𝑖B_{i}italic_B start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的顶点和 Vd,isubscript𝑉𝑑𝑖V_{d,i}italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 的顶点。(a) Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 中没有任何平行边的无效增长算子。 (b)(c) 两个有效的增长算子。


重复操作符重复操作符的作用是从子图中删除不必要的重复。对于一条边 e=(u,v)Fi𝑒𝑢𝑣subscript𝐹𝑖e=(u,v)\in F_{i}italic_e = ( italic_u , italic_v ) ∈ italic_F start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ,根据 u𝑢uitalic_uv𝑣vitalic_v 的位置,让 δetsubscriptsuperscript𝛿𝑡𝑒\delta^{\,t}_{e}italic_δ start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT , δebsubscriptsuperscript𝛿𝑏𝑒\delta^{\,b}_{e}italic_δ start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT , δelsubscriptsuperscript𝛿𝑙𝑒\delta^{\,l}_{e}italic_δ start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPTδersubscriptsuperscript𝛿𝑟𝑒\delta^{\,r}_{e}italic_δ start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT 表示 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 的四个相邻边(也等于 δvsubscript𝛿𝑣\delta_{v}italic_δ start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT )。图 4-(a) 展示了一个可以旋转到各种对称情况的示例(只有 δetsubscriptsuperscript𝛿𝑡𝑒\delta^{\,t}_{e}italic_δ start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT 的分解顶点可能同时与 u𝑢uitalic_uv𝑣vitalic_v 相邻)。从形式上看,对 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 有效的重复操作符 od(i,e)subscript𝑜𝑑𝑖𝑒o_{d}(i,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_i , italic_e ) 会删除 e=(u,v)Fi𝑒𝑢𝑣subscript𝐹𝑖e=(u,v)\in F_{i}italic_e = ( italic_u , italic_v ) ∈ italic_F start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTu,vV+Vd,i𝑢𝑣superscript𝑉subscript𝑉𝑑𝑖u,v\in V^{+}\cap V_{d,i}italic_u , italic_v ∈ italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ∩ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 的边以及 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 的所有相关连接边,这样 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 仍会保持连接。如果 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 是完整的,则移除操作受三个条件限制:(1) δetsuperscriptsubscript𝛿𝑒𝑡\delta_{e}^{t}italic_δ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT 不在 Vg,isubscript𝑉𝑔𝑖V_{g,i}italic_V start_POSTSUBSCRIPT italic_g , italic_i end_POSTSUBSCRIPT 中;(2) δebsubscriptsuperscript𝛿𝑏𝑒\delta^{\,b}_{e}italic_δ start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT 的所有分解顶点都在 Vd,isubscript𝑉𝑑𝑖V_{d,i}italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 中;(3) 如果 δ=δel,δer𝛿superscriptsubscript𝛿𝑒𝑙superscriptsubscript𝛿𝑒𝑟\delta=\delta_{e}^{l},\delta_{e}^{r}italic_δ = italic_δ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT , italic_δ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPTVg,isubscript𝑉𝑔𝑖V_{g,i}italic_V start_POSTSUBSCRIPT italic_g , italic_i end_POSTSUBSCRIPT 中,则 δ𝛿\deltaitalic_δ 的所有分解顶点及其与 δebsuperscriptsubscript𝛿𝑒𝑏\delta_{e}^{b}italic_δ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT 的(唯一)共同邻接顶点都在 Vd,isubscript𝑉𝑑𝑖V_{d,i}italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 中。当 ESTC 应用于 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 时,这种设计选择避免了在覆盖路径中引入新的重复(如图 4-(b) 所示)。否则,当 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 不完整时,删除不受特定条件限制。这种设计选择基于这样一个观察结果,即连接不完整 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 的边在 ESTC 的 MST 构建中优先级较低。因此, δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 要么位于 MST 的外围,要么靠近 MST 的外围,删除 e=(u,v)𝑒𝑢𝑣e=(u,v)italic_e = ( italic_u , italic_v ) 通常不会带来不必要的重复或任何重复。图 4-(c)和图 4-(d)分别展示了不完整和完整 δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 的两个有效重复操作符。执行 e=(u,v)𝑒𝑢𝑣e=(u,v)italic_e = ( italic_u , italic_v ) 的重复操作符 od(i,e)subscript𝑜𝑑𝑖𝑒o_{d}(i,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_i , italic_e ) 后,如果顶点 u,v𝑢𝑣u,vitalic_u , italic_v 没有被其他子图覆盖一次以上,就会从 V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT 中删除。

Refer to caption

图 4:重复运算符 od(i,e)subscript𝑜𝑑𝑖𝑒o_{d}(i,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_i , italic_e ) 的示例。红圈和黑圈分别代表 V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT 中的顶点和不在 V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT 中的顶点。(a) δusubscript𝛿𝑢\delta_{u}italic_δ start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT 的四个邻域。 (b) 违反条件 (3) 的无效算子。(c)(d) 两个有效算子。


交换操作符:交换运算符结合了增长运算符和重复运算符,这样重复运算符可以立即删除增长运算符引入的新重复,从而提高单一运算符的效率,加快局部搜索的收敛速度。从形式上看,一个有效的交换算子 oe(i,j,e)subscript𝑜𝑒𝑖𝑗𝑒o_{e}(i,j,e)italic_o start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( italic_i , italic_j , italic_e ) 会将 e=(u,v)Fi𝑒𝑢𝑣subscript𝐹𝑖e=(u,v)\in F_{i}italic_e = ( italic_u , italic_v ) ∈ italic_F start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 和所有相关的连接边加入 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 并从 Djsubscript𝐷𝑗D_{j}italic_D start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT 中删除,其中 og(i,e)subscript𝑜𝑔𝑖𝑒o_{g}(i,e)italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e )od(j,e)subscript𝑜𝑑𝑗𝑒o_{d}(j,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_j , italic_e ) 都是有效的,只是 od(j,e)subscript𝑜𝑑𝑗𝑒o_{d}(j,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_j , italic_e ) 的条件 u,vV+Vd,j𝑢𝑣superscript𝑉subscript𝑉𝑑𝑗u,v\in V^{+}\cap V_{d,j}italic_u , italic_v ∈ italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ∩ italic_V start_POSTSUBSCRIPT italic_d , italic_j end_POSTSUBSCRIPT 现在被 u,vVd,j𝑢𝑣subscript𝑉𝑑𝑗u,v\in V_{d,j}italic_u , italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d , italic_j end_POSTSUBSCRIPT 取代,因为 u,v𝑢𝑣u,vitalic_u , italic_v 不一定在 V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT 中。执行交换运算符 oe(i,j,e)subscript𝑜𝑒𝑖𝑗𝑒o_{e}(i,j,e)italic_o start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( italic_i , italic_j , italic_e ) 后, V+superscript𝑉V^{+}italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT 保持不变。


属性执行任何有效操作符后,(1) Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 仍保持连接,因为只有重复操作符能删除边,但有效的重复操作符能保证 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 保持连接;(2) 所有子图的顶点联合即顶点集 D𝐷Ditalic_D 的属性不受影响,因为不会丢失顶点覆盖。

LS-MCPP


在本节中,我们将介绍 LS-MCPP,这是一种用于有效解决 MCPP 问题的新型局部搜索框架。LS-MCPP 整合了边界编辑算子,直接对分解图 D𝐷Ditalic_D 进行操作,通过调整子图 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 来探索良好的覆盖路径。如果 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 从 ESTC 得到的覆盖路径成本 c(πi)𝑐subscript𝜋𝑖c(\pi_{i})italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) 不大于所有子图的平均覆盖路径成本 c¯¯𝑐\bar{c}over¯ start_ARG italic_c end_ARG ,我们将其归类为轻型子图;否则,它就是重型子图。LS-MCPP 在轻子图上使用增长算子,在重子图上使用重复算子来消除冗余,并使用交换算子来平衡子图之间的路径成本。其目标是以最少的重复实现成本平衡的解决方案。在更高层次上,LS-MCPP 采用分层抽样方法,在每次局部搜索迭代中有效探索所构建的邻域。它采用轮盘选择法(Goldberg,1989 年)从三个池中选择一个算子池,每个池都包含相同类型的算子。然后,引入新的启发式方法,从选定的算子池中抽取算子。LS-MCPP 还定期调用重复数据删除函数,以利用当前邻域并实现低akespan 解决方案。


伪代码(Alg.1):LS-MCPP 将初始 MCPP 解决方案作为输入。首先,它初始化了三个池 Og,Od,Oesubscript𝑂𝑔subscript𝑂𝑑subscript𝑂𝑒O_{g},O_{d},O_{e}italic_O start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ,分别是增长算子、重复算子和交换算子(第 1-1 行),并初始化了温度标量 t𝑡titalic_t 和池权重向量 𝐩𝐩\mathbf{p}bold_p (第 1 行)。标量 t𝑡titalic_t 源自模拟退火(Van Laarhoven 等人,1987 年),在基于搜索的算法中被广泛用于自适应接受非改进算子。向量 𝐩𝐩\mathbf{p}bold_p 代表上述三个池中每个池的池权重,因此用于轮盘选择,在每次迭代中从 𝒪𝒪\mathcal{O}caligraphic_O 中选择一个池 O𝑂Oitalic_O (第 1 行),其中 σ(𝐩)𝜎𝐩\sigma(\mathbf{p})italic_σ ( bold_p )𝐩𝐩\mathbf{p}bold_p 的软最大函数,决定选择每个池的概率。一旦池 O𝑂Oitalic_O 被选中,其对应的池权重 𝐩[O]𝐩delimited-[]𝑂\mathbf{p}[O]bold_p [ italic_O ] 就会在第 1 行中用权重衰减因子 γ[0,1]𝛾01\gamma\in[0,1]italic_γ ∈ [ 0 , 1 ] 更新。与池选择类似,LS-MCPP 从选定的池 O𝑂Oitalic_O 中采样一个算子 o𝑜oitalic_o ,概率函数为 σ(𝐡)𝜎𝐡\sigma(\mathbf{h})italic_σ ( bold_h ) (第 1 行),其中 𝐡𝐡\mathbf{h}bold_h 是对 O𝑂Oitalic_O 中所有算子进行评估的启发式函数 hhitalic_h 的向量(第 1 行),我们将在下一段介绍。然后,LS-MCPP 在相关子图上对算子 o𝑜oitalic_o 进行评估,并计算在相关子图上应用 ESTC 后的工期增量 ΔτΔ𝜏\Delta\tauroman_Δ italic_τ (第 1 行),以决定是否接受新的解决方案(即应用 o𝑜oitalic_o 并更新 ΠΠ\Piroman_Π )。如果新方案的时间跨度更小,LS-MCPP 将接受新方案;反之,则以概率 exp(Δτ/t)[0,1]Δ𝜏𝑡01\exp{(-\Delta\tau/t)}\in[0,1]roman_exp ( - roman_Δ italic_τ / italic_t ) ∈ [ 0 , 1 ] 接受新方案(第 1-1 行)。这种自适应接受标准由 ΔτΔ𝜏\Delta\tauroman_Δ italic_τ 除以温度 t𝑡titalic_t 来动态调整,温度在每次迭代时都会被衰减因子 α[0,1]𝛼01\alpha\in[0,1]italic_α ∈ [ 0 , 1 ] 缩减(第 1 行),因此在迭代过程中接受一个非改进算子会变得越来越难,这就是跳过局部最小值的模拟退火策略。LS-MCPP 每迭代一次 S𝑆Sitalic_S 或当当前解的有效期最小时(第 1 行),会调用函数 forcedDeduplication()(稍后描述),并在 Π*superscriptΠ\Pi^{*}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT 中记录有效期最小的解(第 1 行)。如果运算符 o𝑜oitalic_o 被应用,从而更新了与之相关的子图,那么 𝒪𝒪\mathcal{O}caligraphic_O 的池将被更新为与修改后子图相关的所有运算符(第 1 行)。当迭代次数达到最大值 M𝑀Mitalic_M 时,LS-MCPP 将终止并返回改进后的解决方案 Π*superscriptΠ\Pi^{*}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT (第 1 行)。


输入:MCPP 实例 (G,D,R)𝐺𝐷𝑅(G,D,R)( italic_G , italic_D , italic_R ) ,初始解 ΠΠ\Piroman_Π

参数:最大迭代次数 M+𝑀superscriptM\in\mathbb{Z}^{+}italic_M ∈ blackboard_Z start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT , 强制重复数据删除步骤 S+𝑆superscriptS\in\mathbb{Z}^{+}italic_S ∈ blackboard_Z start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT , 温度衰减系数 α[0,1]𝛼01\alpha\in[0,1]italic_α ∈ [ 0 , 1 ] , 池权重衰减系数 γ[0,1]𝛾01\gamma\in[0,1]italic_γ ∈ [ 0 , 1 ]

1 OgiI{og(i,e)|c(πi)c¯}subscript𝑂𝑔subscript𝑖𝐼conditional-setsubscript𝑜𝑔𝑖𝑒𝑐subscript𝜋𝑖¯𝑐O_{g}\leftarrow\bigcup_{i\in I}\{o_{g}(i,e)\,|\,c(\pi_{i})\leq\bar{c}\}italic_O start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ← ⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT { italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e ) | italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ≤ over¯ start_ARG italic_c end_ARG } OdiI{od(i,e)|c(πi)>c¯}subscript𝑂𝑑subscript𝑖𝐼conditional-setsubscript𝑜𝑑𝑖𝑒𝑐subscript𝜋𝑖¯𝑐O_{d}\leftarrow\bigcup_{i\in I}\{o_{d}(i,e)\,|\,c(\pi_{i})>\bar{c}\}italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ← ⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT { italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_i , italic_e ) | italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) > over¯ start_ARG italic_c end_ARG } Oei,jIsubscript𝑂𝑒subscript𝑖𝑗𝐼O_{e}\leftarrow\bigcup_{i,j\in I}italic_O start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ← ⋃ start_POSTSUBSCRIPT italic_i , italic_j ∈ italic_I end_POSTSUBSCRIPT {oe(i,j,e)|c(πi)c¯}conditional-setsubscript𝑜𝑒𝑖𝑗𝑒𝑐subscript𝜋𝑖¯𝑐\{o_{e}(i,j,e)\,|\,c(\pi_{i})\leq\bar{c}\}{ italic_o start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( italic_i , italic_j , italic_e ) | italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ≤ over¯ start_ARG italic_c end_ARG } Π*Π,t1,𝐩[1,1,1]T,𝒪={Og,Od,Oe}formulae-sequencesuperscriptΠΠformulae-sequence𝑡1formulae-sequence𝐩superscript111𝑇𝒪subscript𝑂𝑔subscript𝑂𝑑subscript𝑂𝑒\Pi^{*}\leftarrow\Pi,t\leftarrow 1,\mathbf{p}\leftarrow[1,1,1]^{T},\mathcal{O}% =\{O_{g},O_{d},O_{e}\}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ← roman_Π , italic_t ← 1 , bold_p ← [ 1 , 1 , 1 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT , caligraphic_O = { italic_O start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT } for i1,2,,M𝑖12𝑀i\leftarrow 1,2,...,Mitalic_i ← 1 , 2 , … , italic_M do

2 O𝒪similar-to𝑂𝒪O\sim\mathcal{O}italic_O ∼ caligraphic_O w/ probability function P(𝒪)=σ(𝐩)𝑃𝒪𝜎𝐩P(\mathcal{O})=\sigma(\mathbf{p})italic_P ( caligraphic_O ) = italic_σ ( bold_p ) 𝐩[O](1γ)𝐩[O]+γmax(Δτ,0)𝐩delimited-[]𝑂1𝛾𝐩delimited-[]𝑂𝛾Δ𝜏0\mathbf{p}[O]\leftarrow(1-\gamma)\cdot\mathbf{p}[O]+\gamma\cdot\max(-\Delta% \tau,0)bold_p [ italic_O ] ← ( 1 - italic_γ ) ⋅ bold_p [ italic_O ] + italic_γ ⋅ roman_max ( - roman_Δ italic_τ , 0 ) 𝐡𝐡absent\mathbf{h}\leftarrowbold_h ← 启发式值向量 [h(o)]oOTsubscriptsuperscriptdelimited-[]𝑜𝑇𝑜𝑂[h(o)]^{T}_{o\in O}[ italic_h ( italic_o ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_o ∈ italic_O end_POSTSUBSCRIPT oOsimilar-to𝑜𝑂o\sim Oitalic_o ∼ italic_O w/ probability function P(O)=σ(𝐡)𝑃𝑂𝜎𝐡P(O)=\sigma(\mathbf{h})italic_P ( italic_O ) = italic_σ ( bold_h ) ΔτΔ𝜏absent\Delta\tau\leftarrowroman_Δ italic_τ ← 在更新的子图上使用 ESTC 后的 makepan 增量 o𝑜oitalic_o if Δτ<0Δ𝜏0\Delta\tau<0roman_Δ italic_τ < 0 then

3 应用操作员 o𝑜oitalic_o 并更新 ΠΠ\Piroman_Π
 4 其他
5       


应用 o𝑜oitalic_o 并更新 ΠΠ\Piroman_Π ,概率为 exp(Δτt)Δ𝜏𝑡\exp{(\frac{-\Delta\tau}{t})}roman_exp ( divide start_ARG - roman_Δ italic_τ end_ARG start_ARG italic_t end_ARG )


6 if i%S=0Δτ<0percent𝑖𝑆0Δ𝜏0i\,\%\,S=0\vee\Delta\tau<0italic_i % italic_S = 0 ∨ roman_Δ italic_τ < 0 then

7forcedDeduplication( Πnormal-Π\Piroman_Π , Odsubscript𝑂𝑑O_{d}italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT )

8 如果 ΠΠ\Piroman_Π 优于 Π*superscriptΠ\Pi^{*}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ,则将 ΠΠ\Piroman_Π 分配给 Π*superscriptΠ\Pi^{*}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT 更新 𝒪𝒪\mathcal{O}caligraphic_O 的每个资源库,并将 t𝑡titalic_t 分配给 αt𝛼𝑡\alpha\cdot titalic_α ⋅ italic_t

9return Improved MCPP solution Π*superscriptΠ\Pi^{*}roman_Π start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT Function forcedDeduplication( Πnormal-Π\Piroman_Π , Odsubscript𝑂𝑑O_{d}italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT )
:

10 iargsort({c(πi)}iI)𝑖argsortsubscript𝑐subscript𝜋𝑖𝑖𝐼i\in\operatorname*{arg\,sort}\left(\{c(\pi_{i})\}_{i\in I}\right)italic_i ∈ start_OPERATOR roman_arg roman_sort end_OPERATOR ( { italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT ) do

11 while (u,v)𝑢𝑣absent(u,v)\leftarrow( italic_u , italic_v ) ← any U-turn in πisubscript𝜋𝑖\pi_{i}italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT do

12 从 Disubscript𝐷𝑖D_{i}italic_D start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 删除 u,v𝑢𝑣u,vitalic_u , italic_v 并更新 πisubscript𝜋𝑖\pi_{i}italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT
13       

14 for iargsort({c(πi)}iI)𝑖argsortsubscript𝑐subscript𝜋𝑖𝑖𝐼i\in\operatorname*{arg\,sort}\left(\{c(\pi_{i})\}_{i\in I}\right)italic_i ∈ start_OPERATOR roman_arg roman_sort end_OPERATOR ( { italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT ) do

15 while {od(j,e)Od|i=j}conditional-setsubscript𝑜𝑑𝑗𝑒subscript𝑂𝑑𝑖𝑗\{o_{d}(j,e)\in O_{d}\,|\,i=j\}\neq\emptyset{ italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_j , italic_e ) ∈ italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT | italic_i = italic_j } ≠ ∅ do

16 oargmin([h(o)]o{od(j,e)Od|i=j}T)𝑜argminsubscriptsuperscriptdelimited-[]𝑜𝑇𝑜conditional-setsubscript𝑜𝑑𝑗𝑒subscript𝑂𝑑𝑖𝑗o\leftarrow\operatorname*{arg\,min}\left([h(o)]^{T}_{o\in\{o_{d}(j,e)\in O_{d}% \,|\,i=j\}}\right)italic_o ← start_OPERATOR roman_arg roman_min end_OPERATOR ( [ italic_h ( italic_o ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_o ∈ { italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_j , italic_e ) ∈ italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT | italic_i = italic_j } end_POSTSUBSCRIPT ) 应用运算符 o𝑜oitalic_o ,更新 ΠΠ\Piroman_ΠOdsubscript𝑂𝑑O_{d}italic_O start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT
17       
18   
 算法 1 LS-MCPP


使用启发式方法进行算子取样:LS-MCPP 应仔细确定选择每个算子的概率,以便在从所选算子池中抽取算子时更好地探索邻域(图 1 第 1 行)。我们针对三类算子提出了三种启发式函数,以评估它们在引导邻域搜索和改进解法方面的潜力。启发式值越大的算子被采样的概率越高。增长算子的启发式函数有两个考虑因素:(1) 优先增长覆盖路径成本较小的轻子图,(2) 优先覆盖重复较少的顶点。形式上,具有边 e=(u,v)𝑒𝑢𝑣e=(u,v)italic_e = ( italic_u , italic_v ) 的增长算子 og(i,e)subscript𝑜𝑔𝑖𝑒o_{g}(i,e)italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ( italic_i , italic_e ) 的启发值定义为 h(og)=kc(πi)(nu+nv)/2subscript𝑜𝑔𝑘𝑐subscript𝜋𝑖subscript𝑛𝑢subscript𝑛𝑣2h(o_{g})=-k\cdot c(\pi_{i})-(n_{u}+n_{v})/2italic_h ( italic_o start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ) = - italic_k ⋅ italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) - ( italic_n start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT + italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) / 2 。请注意, knv𝑘subscript𝑛𝑣k\geq n_{v}italic_k ≥ italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 对任何 vVd𝑣subscript𝑉𝑑v\in V_{d}italic_v ∈ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT 都成立,因此优先考虑 (1)(即 c(πi)𝑐subscript𝜋𝑖c(\pi_{i})italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ),而不是 (2)(即 (nu+nv)/2subscript𝑛𝑢subscript𝑛𝑣2(n_{u}+n_{v})/2( italic_n start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT + italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) / 2 )。重复操作符 od(i,e)subscript𝑜𝑑𝑖𝑒o_{d}(i,e)italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_i , italic_e ) 的启发式函数定义与增长操作符的启发式函数完全相反: h(od)=kc(πi)+(nu+nv)/2subscript𝑜𝑑𝑘𝑐subscript𝜋𝑖subscript𝑛𝑢subscript𝑛𝑣2h(o_{d})=k\cdot c(\pi_{i})+(n_{u}+n_{v})/2italic_h ( italic_o start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) = italic_k ⋅ italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) + ( italic_n start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT + italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) / 2 .交换操作符的启发式函数 oe(i,j,e)subscript𝑜𝑒𝑖𝑗𝑒o_{e}(i,j,e)italic_o start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( italic_i , italic_j , italic_e ) 定义为 h(oe)=c(πj)c(πi)subscript𝑜𝑒𝑐subscript𝜋𝑗𝑐subscript𝜋𝑖h(o_{e})=c(\pi_{j})-c(\pi_{i})italic_h ( italic_o start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ) = italic_c ( italic_π start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) - italic_c ( italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ,优先处理覆盖路径成本差异较大的两个子图。

Refer to caption

图 5:在覆盖路径 πisubscript𝜋𝑖\pi_{i}italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 上执行 forcedDeduplication() 。每个红圈代表 Vd,isubscript𝑉𝑑𝑖V_{d,i}italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 的重复。在每一帧中,都会发现一个 U 型转弯 (u,v)πi𝑢𝑣subscript𝜋𝑖(u,v)\in\pi_{i}( italic_u , italic_v ) ∈ italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ,并从 πisubscript𝜋𝑖\pi_{i}italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 中删除 u,v𝑢𝑣u,vitalic_u , italic_v ,直到没有 U 型转弯为止。


强制重复:LS-MCPP 取得成功的一个关键因素是将复制限制在邻域构建所必需的范围内;例如,在 flr-s 实例(Tang 和 Ma,2023 年)中连接地形两个独立区域的狭窄路径。为此,forcedDeduplication()(图 1 第 1 行)旨在分两步删除所有可能的重复。第一部分(第 1-1 行)以成本递减的顺序遍历每条覆盖路径 πiΠsubscript𝜋𝑖Π\pi_{i}\in\Piitalic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ roman_Π ,删除其中的任何 U 形转弯(第 1-1 行)。U 型转弯是指 (u,v)πi𝑢𝑣subscript𝜋𝑖(u,v)\in\pi_{i}( italic_u , italic_v ) ∈ italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTu,vV+Vd,i𝑢𝑣superscript𝑉subscript𝑉𝑑𝑖u,v\in V^{+}\cap V_{d,i}italic_u , italic_v ∈ italic_V start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ∩ italic_V start_POSTSUBSCRIPT italic_d , italic_i end_POSTSUBSCRIPT 之间的一条边,该边满足 (p,q)πi𝑝𝑞subscript𝜋𝑖\exists\,(p,q)\in\pi_{i}∃ ( italic_p , italic_q ) ∈ italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ,这样 (u,p),(v,q)πi𝑢𝑝𝑣𝑞subscript𝜋𝑖(u,p),(v,q)\in\pi_{i}( italic_u , italic_p ) , ( italic_v , italic_q ) ∈ italic_π start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT 。(这样 puvq𝑝𝑢𝑣𝑞p\rightarrow u\rightarrow v\rightarrow qitalic_p → italic_u → italic_v → italic_q 就形成了一个 "U 型转弯")。第二部分(第 1-1 行)尝试按照覆盖路径成本递减顺序(第 1 行)和启发式值递增顺序(第 1 行)递归应用所有有效的重复操作符。图 5 演示了在覆盖路径上强制重复数据删除操作。值得注意的是,第一部分可以移除不构成有效重复运算符的边,而某些有效重复运算符可以移除不是 U 型转弯的边(取决于 ESTC 生成的生成树)。这两部分之间的互补关系使拟议的 LS-MCPP 性能更佳。

 实例  网格规格。 |Vg|subscript𝑉𝑔\lvert V_{g}\rvert| italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT | |Eg|subscript𝐸𝑔\lvert E_{g}\rvert| italic_E start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT | k𝑘kitalic_k  加权
AR0701SR 107×\times×117 4,860 8,581 20 \checkmark
 上海2 128×\times×128 11,793 22,311 25 ×\times×
 纽约1 128×\times×128 11,892 21,954 32 \checkmark

表 1:MCPP 实例规范。

 经验评估


本节将介绍我们在英特尔 ® Xeon ® Gold 5218 2.30 GHz Linux 服务器上的实验结果,该服务器配备 300 GB 内存。所有 LS-MCPP 实验都在 12 次重复中进行,种子跨度从 0 到 11。实例:我们使用的 MCPP 实例来自(Tang 和 Ma 2023),其中图顶点、图边和机器人的数量范围分别为 46464646824824824824606060601495149514951495444412121212 。如图 6 和表 1 所示,我们又设计了三个更大的实例。如图 6 和表 1 所示,我们还设计了三个更大的实例,其地形图采用了流行的二维寻路基准(Sturtevant,2012 年)。上述所有实例都有完整的地形图。基准:我们使用 MFC(Zheng 等人,2010 年)、MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT (Tang、Sun 和 Zhang,2021 年)和 MIP/MIP(H) (Tang 和 Ma,2023 年)作为基线算法,它们都使用 STC 将 G𝐺Gitalic_G 上的树覆盖转换为 MCPP 解决方案。MFC 和 MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT 都能计算出次优树覆盖。MIP 使用 MIP 模型计算最优树覆盖。MIP(H) 使用缩小的 MIP 模型计算次优树覆盖,但比 MIP 更有效。我们还设计了一种新的基线 VOR,它首先根据机器人的初始顶点计算 G𝐺Gitalic_G 的沃罗诺图(即 k𝑘kitalic_k 子图),然后使用 ESTC 在子图上生成覆盖路径。参数对于所有用 LS-MCPP 求解的实例,池权重衰减因子 γ𝛾\gammaitalic_γ 设为 0.010.010.010.01 ,温度衰减因子 α𝛼\alphaitalic_α 设为 explog0.2M0.2𝑀\exp{\frac{\log{0.2}}{M}}roman_exp divide start_ARG roman_log 0.2 end_ARG start_ARG italic_M end_ARG ,以将温度 t𝑡titalic_t1111 降到 0.20.20.20.2 。对于 (Tang 和 Ma 2023) 中的实例,我们将最大迭代次数 M𝑀Mitalic_M 设置为 3e33𝑒33e33 italic_e 3 ,将强制重复数据删除步骤 S𝑆Sitalic_S 设置为 1e21𝑒21e21 italic_e 2 ,对于表 1 中的另外三个较大实例,我们将 设置为 ,将强制重复数据删除步骤 设置为 。对于表 1 中另外三个较大的实例,我们将 M𝑀Mitalic_M 设置为 1.5e41.5𝑒41.5e41.5 italic_e 4 ,将 S𝑆Sitalic_S 设置为 5e25𝑒25e25 italic_e 2

Refer to caption

图 6:从二维寻路基准(Sturtevant,2012 年)中采用的三个超大规模 MCPP 实例。红色圆圈代表机器人的初始顶点。
Refer to caption

图 7:单机器人覆盖路径成本(y 轴)与不完整地形顶点百分比(x 轴)的关系。左图和右图分别对应 flr-l 和 trn1-l。

 消融研究


我们使用两个实例 flr-l 和 trn1-l,对 LS-MCPP 的不同成分进行消融研究。


ESTC 与 Full-STC:对于每个实例,我们都会随机抽取一组 VgVgsubscriptsuperscript𝑉𝑔subscript𝑉𝑔V^{\prime}_{g}\subseteq V_{g}italic_V start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ⊆ italic_V start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT ,并从每个 δVg𝛿subscriptsuperscript𝑉𝑔\delta\in V^{\prime}_{g}italic_δ ∈ italic_V start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT 中随机移除相应的 1、2'或 3 个分解顶点,从而使其地形图不完整,但不会使分解图失去连接。图 7 显示,在不完整地形图上,ESTC 始终优于 Full-STC。


初始解决方案:图 8 比较了 LS-MCPP 使用不同初始解时的性能。LS-MCPP 在所有情况下都表现出了收敛性,只有带有 VOR 的 trn1-l 除外,因为它依赖于机器人的初始顶点,所以解的质量较低。MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT 与 MFC 和 MIP 相比,往往需要更多的搜索迭代才能获得良好的解决方案,因为 MSTC 通过分割单个 MST 来获得树覆盖,而树覆盖的计算结果往往与 MFC 和 MIP 所采用的直接树覆盖计算结果不同。由于 MIP 可能会以更长的运行时间为代价得到接近最优的解决方案(如 trn1-l),因此 LS-MCPP 的改进潜力有限。因此,我们选择 MFC 为 LS-MCPP 生成初始解,在效率和解质量之间取得平衡。

Refer to caption

图 8:LS-MCPP 的 4 个机器人在不同初始解(x 轴)下的迭代路径成本(y 轴)。上下两行分别对应 flr-l 和 trn1-l。


边界编辑操作符:我们在图 9 中评估了不同类型操作符对 LS-MCPP 的影响。第一列删除了生长算子,导致 LS-MCPP 在 3e33𝑒33e33 italic_e 3 迭代限制之前提前停止。这可能会限制对解决方案空间的探索,尤其是当交换算子由于图结构(例如 flr-l 实例)而难以有效增长光子图时。第二列删除了重复运算符,这会导致不稳定性和更差的性能。这些操作符对于两次强制重复数据删除()调用之间的重复数据删除至关重要。第三列删除了交换操作符,这将阻碍 LS-MCPP 的收敛和解决方案质量的提高。

Refer to caption

图 9:去除不同算子后,LS-MCPP 的 4 个机器人在迭代(x 轴)过程中的路径成本(y 轴)。上行和下行分别对应 flr-l 和 trn1-l。


算子抽样:我们使用统一随机算子抽样法(Rand)与基于启发式的算子抽样法(Heur)进行比较。在图 10 中,我们比较了第一列和第三列,以及第二列和第四列。我们可以看到,在 flr-l 中,Heur 比 Rand 好得多;但在 trn1-l 中,Heur 只比 Rand 略好,这可能是因为 trn1-l 是 LS-MCPP 中相对简单的实例,因此两种采样方法之间的差异微不足道。

Refer to caption

图 10:LS-MCPP迭代(x 轴)过程中 4 个机器人的路径成本(y 轴),不同算子采样和是否使用强制重复(FD)。上行和下行分别对应 flr-l 和 trn1-l。


强制重复数据删除在图 10 中,我们通过比较第一列和第二列以及第三列和第四列来验证 LS-MCPP 的强制重复(FD)功能。FD 的周期性调用使得子图返回到只剩下必要重复的状态,从而引导 LS-MCPP 找到更好的解决方案。

 性能比较


我们在表 2 中将 LS-MCPP 与基线进行了比较。2 中的基线进行了比较,运行时间限制为 24 小时。总之,在 20 分钟内,LS-MCPP 在所有实例中的表现都优于 VOR、MFC 和 MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT ,其 makespan 分别减少了 67.0%、35.7% 和 30.3%,平均值分别减少了 50.4%、26.7% 和 13.4%。对于 MIP(H) 和 MIP 几乎能计算出最优树覆盖的前六个较小实例,LS-MCPP 实现了-1.02% 和 1.16% 的平均时间跨度缩减,运行时间则快了几个数量级。此外,我们使用了与 ESTC 消融研究相同的方法,使每个实例中 20% 的地形顶点不完整。表 2 的最后一列报告了这些实例的结果。在这些实例中,我们使用 RTC(Even 等,2004 年)(MFC 内部使用)生成地形图的覆盖子树,然后在 RTC 子树的诱导子图上使用 ESTC 获得 LS-MCPP 的初始解。这是必要的,因为没有任何基准线可以处理不完整的地形图。我们发现,删除分解顶点会改变其相邻顶点的连接性,从而影响分解图和增强地形图的整体结构,导致 LS-MCPP 解法比原始实例的解法更差。

VOR MFC  MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT MIP(H) MIP  LS-MCPP(我们的)
flr-s 42.75 23 21 16 0.0% 16 0.0% 16.75±plus-or-minus\pm±0.3 21.5±plus-or-minus\pm±2.1
0.01s 0.03s 0.02s 13s 20s  5.3 ±plus-or-minus\pm± 0.13s  3.6 ±plus-or-minus\pm± 2.9s
trn-m 420.2 368.2 269.5 246.7 0.6% 246.7 1.6% 244.5±plus-or-minus\pm±0.8 245±plus-or-minus\pm±12.2
0.04s 0.58s 0.32s 24h 24h  17.8 ±plus-or-minus\pm± 0.1s  19.6 ±plus-or-minus\pm± 1.3s
mze-m 134.8 67 69 52 0.0% 51 20% 54.3±plus-or-minus\pm±2.9 65.0±plus-or-minus\pm±4.2
0.02s 0.35s 0.34s 4.9s 24h  10.7 ±plus-or-minus\pm± 0.1s  9.0 ±plus-or-minus\pm± 2.9s
flr-l 303.8 294 212.5 207 8.3% 254 25% 192.1±plus-or-minus\pm±0.4 207±plus-or-minus\pm±20.2
0.07s 2.37s 0.09s 24h 24h  30.5 ±plus-or-minus\pm± 1.3s  35.2 ±plus-or-minus\pm± 1.6s
mze-l 193.8 105 139.5 91.5 0.0% 93 25% 97.3±plus-or-minus\pm±0.5 104.8±plus-or-minus\pm±7.6
0.04s 0.10s 0.58s 54s 24h  15.4 ±plus-or-minus\pm± 0.2s  12.9 ±plus-or-minus\pm± 5.8s
trn1-l 1,303 597.4 468.6 435.1 9.7% 419.1 6.1% 429.6±plus-or-minus\pm±1.4 444±plus-or-minus\pm±11.2
0.07s 1.67s 1.93s 24h 24h  34.3 ±plus-or-minus\pm± 0.4s  37.3 ±plus-or-minus\pm± 1.6s
AR07 01SR 1,301 1,254 878.7 1,351 42% 1,333 55% 805.9±plus-or-minus\pm±7.9 1,024±plus-or-minus\pm±74
0.47s 36.9s 9.91s 24h 24h  6.3 ±plus-or-minus\pm± 0.1m  6.2 ±plus-or-minus\pm± 0.3m
  ghai2 1,451 754 576.5 1,509 59% / / 570.9±plus-or-minus\pm±2.1 719±plus-or-minus\pm±73.0
1.21s 7.2m 2.21s 24h /  17.6 ±plus-or-minus\pm± 2.1m  12.5 ±plus-or-minus\pm± 0.8m
New  约克1 1,735 1,530 1,208 4,736 80% / / 1,062±plus-or-minus\pm±14 1,563±plus-or-minus\pm±110
1.13s 2.4m 20.2s 24h /  15.0 ±plus-or-minus\pm± 4.1m  12.6 ±plus-or-minus\pm± 0.5m

表 2:性能比较。每个实例-方法单元的顶部和底部分别列出了时间跨度和运行时间。MIP(H)/MIP 的百分比是 MIP 求解器返回的解决方案与下限之间的差距。最后一列是不完整地形图。


结论和未来工作


我们介绍了 LS-MCPP,这是一种新的局部搜索框架,它集成了新颖的独立 ESTC 范例和边界编辑算子,首次直接在分解图上系统地探索 MCPP 解决方案。未来的工作包括利用机器学习技术加强算子选择,利用并行化技术加快 LS-MCPP 在更大规模实例中的运行速度,以及利用多代理寻路(Stern 等人,2019 年)技术解决隐蔽环境中潜在的机器人间碰撞问题。

 致谢


这项工作得到了国家科学和技术研究委员会(NSERC)的资助,资助编号为 RGPIN2020-06540 和 CFI JELF 奖。

 参考资料

  •  Bormann 等人(2018)
    Bormann, R.; Jordan, F.; Hampp, J.; and Hägele, M. 2018.室内覆盖路径规划:调查、实施、分析。电气与电子工程师学会机器人与自动化国际会议(ICRA),1718-1725。
  •  柯林斯等人(2021 年)
    Collins, L.; Ghassemi, P.; Esfahani, E. T.; Doermann, D.; Dantu, K.; and Chowdhury, S. 2021.监控非凸区域的多机器人团队可扩展覆盖路径规划。电气和电子工程师学会机器人与自动化国际会议(ICRA),7393-7399。
  •  埃文等人(2004 年)
    Even, G.; Garg, N.; Könemann, J.; Ravi, R.; and Sinha, A. 2004.图的最小-最大树覆盖。Operations Research Letters, 32(4):309-315.
  •  弗朗萨等人(1995 年)
    França, P. M.; Gendreau, M.; Laporte, G.; and Müller, F. M. 1995.具有最小目标的 m-traveling salesman 问题。Transportation Science, 29(3):267-275.

  • 加布里埃尔和里蒙(2001 年)

    Gabriely, Y.; and Rimon, E. 2001.基于生成树的移动机器人连续区域覆盖。数学与人工智能年鉴》,31: 77-98.

  • 加布里埃尔和里蒙(2002 年)

    Gabriely, Y.; and Rimon, E. 2002.螺旋-STC:移动机器人对网格环境的在线覆盖算法。In IEEE International Conference on Robotics and Automation (ICRA), 954-960.

  • Galceran 和 Carreras(2013 年)

    Galceran, E.; and Carreras, M. 2013.机器人覆盖路径规划调查。机器人与自主系统》,61(12):1258-1276.
  •  戈德堡(1989 年)
    Goldberg, D. E. 1989.搜索中的遗传算法。优化、机器学习。
  •  哈宗和卡明卡(2005 年)
    Hazon, N.; and Kaminka, G. A. 2005.多机器人覆盖中的冗余、效率和鲁棒性。电气和电子工程师学会机器人与自动化国际会议(ICRA),735-741。
  • He and Hao (2023)
    He, P.; and Hao, J.-K.2023.具有单个和多个仓库的最小多重旅行推销员问题的记忆搜索.欧洲运筹学报》,307(3):1055-1070.

  • Kapoutsis、Chatzichristofis 和 Kosmatopoulos (2017)

    Kapoutsis, A. C.; Chatzichristofis, S. A.; and Kosmatopoulos, E. B. 2017.DARP:多机器人最佳覆盖路径规划的区域划分算法。智能与机器人系统期刊》,86:663-680。
  •  Karapetyan 等人(2017 年)
    Karapetyan, N.; Benson, K.; McKinney, C.; Taslakian, P.; and Rekleitis, I. 2017.已知环境的高效多机器人覆盖。In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 1846-1852.
  •  李等人(2023 年)
    Li, L.; Shi, D.; Jin, S.; Yang, S.; Lian, Y.; and Liu, H. 2023.SP2E:针对未知环境的主动预防极值在线螺旋覆盖。智能与机器人系统期刊》,108(2):30.

  • Nagamochi 和 Okada(2007 年)

    Nagamochi, H.; and Okada, K. 2007.近似树中的最小有根树覆盖。信息处理通讯》,104(5):173-178.
  •  宋等人(2022 年)
    Song, H.; Yu, J.; Qiu, J.; Sun, Z.; Lang, K.; Luo, Q.; Shen, Y.; and Wang, Y. 2022.有限续航的多无人机灾害环境覆盖规划。国际机器人与自动化大会(ICRA),10760-10766。
  •  斯特恩等人(2019)
    Stern, R.; Sturtevant, N.; Felner, A.; Koenig, S.; Ma, H.; Walker, T.; Li, J.; Atzmon, D.; Cohen, L.; Kumar, T.; et al. 2019.多代理寻路:定义、变体和基准。In International Symposium on Combinatorial Search (SoCS), 151-158.
  •  斯特凡特(2012)
    Sturtevant, N. 2012.基于网格的寻路基准。Transactions on Computational Intelligence and AI in Games, 4(2):144 - 148.
  •  唐和马(2023)
    Tang, J.; and Ma, H. 2023.采用高效启发式的时间最优多机器人覆盖路径规划混合整数程序设计IEEE Robotics and Automation Letters, 8(10):6491-6498.

  • 唐、孙和张(2021 年)

    Tang, J.; Sun, C.; and Zhang, X. 2021.MSTC *{}^{*}start_FLOATSUPERSCRIPT * end_FLOATSUPERSCRIPT :物理约束下的多机器人覆盖路径规划。In IEEE International Conference on Robotics and Automation (ICRA), 2518-2524.
  •  托雷斯等人(2016)
    Torres, M.; Pelta, D. A.; Verdegay, J. L.; and Torres, J. C. 2016.利用无人飞行器进行覆盖路径规划以实现三维地形重建。专家系统与应用》,55: 441-451.

  • Van Laarhoven 等人(1987 年)

    Van Laarhoven, P. J.; Aarts, E. H.; van Laarhoven, P. J.; and Aarts, E. H. 1987.模拟退火。Springer.
  • Vandermeulen, Groß, and Kolling (2019)
    Vandermeulen, I.; Groß, R.; and Kolling, A. 2019.转弯最小化多机器人覆盖。国际机器人与自动化大会(ICRA),1014-1020。
  •  郑和柯尼希(2007 年)
    Zheng, X.; and Koenig, S. 2007.机器人覆盖非均匀可穿越地形。IEEE/RSJ 智能机器人与系统(IROS)国际会议,3757-3764。
  •  郑等人(2010)
    Zheng, X.; Koenig, S.; Kempe, D.; and Jain, S. 2010.加权和非加权地形的多机器人森林覆盖。电气和电子工程师学会机器人技术论文集》,26(6):1018-1031.