0. 简介
作为路径规划而言,不单单有单个机器人自主路径规划,近年来随着机器人行业的兴起,多机器人自主路径规划也越来越受到关注,对于多智能体寻路(MAPF)。一般的操作会给定一个地图、机器人集群、以及它们的初始位置和目的地,MAPF会最终输出一组没有碰撞的路径,用于控制机器人集群完成运动。《Iterative Refinement for Real-Time Multi-Robot Path Planning》文中认为迭代细化MAPF是可取的,原因有三:1)多智能体优化是棘手的,2)次优解可以立即获得,3)在线场景中需要考虑的时间有限,所以要求MAPF是实时规划的。
文中的方案使用次优MAPF求解器来快速获得初始解,然后迭代两个过程:1)选择代理子集,2)使用最优MAPF求解器来优化所选代理的路径,同时保持其他路径不变。由于单个最优求解器只会优化所选代理机器人的路径,因此该方案可以快速生成足够有效的解决方案,同时提供高可伸缩性。相应的代码也在Github上开源了,可以这么说,这套方法还是很有意义的,
1. 文章贡献
- 文中提出了一个通用的框架,基于现有求解器的有效组合可以快速的提供anytimeMAPF求解。 文中的框架首先使用次优MAPF求解器快速获得初始可行解,然后使用最优MAPF求解器找到良好的邻域解。精确地说,该框架通过选择一组代理并使用最优求解器来细化它们的路径,同时保持其他路径固定,迭代地细化解决方案。尽管在细化过程使用了最优求解器,但是每次细化都能快速完成,因为它解决的是一个子问题,其大小取决于选择的代理机器人数量,通常比原问题小得多。我们还提出了合理的候选人,用于选择代理子集。
- 文中研究了在各种基准测试中该方法的有效性,并经验地发现,在小型实例中,该框架在短时间内几乎收敛到最优,并且即使对于非常大的实例(即大环境和/或许多代理)也保持着高效响应。换句话说,它比先前的技术带来了许多实际优势。
- 从更广泛的角度来看,我们的研究也可以被看作是解决一个非常大规模的邻域搜索[24]。更接近我们的概念,Balyo等人[25]研究了针对独立于领域的规划问题的局部重新规划,以优化最长时间。它重复以下操作:创建一个子问题,通过基于SAT的技术获得一个最优子解,并用新的解决方案替换原来的部分解决方案。
  
2. 主要框架
该框架首先使用次优MAPF求解器获得初始解决方案,然后迭代地细化解决方案的选定部分,即选定代理子集的路径,使用最优MAPF求解器。我们在算法1中给出了伪代码
 
 下面我们来详细的看一下,第1行输入的是次优求解器快速获得初始可行解决方案。在第二行中,我们称所用的次优MAPF求解器为初始求解器。如果初始求解器未能获得解决方案,则框架以失败告终;否则,开始细化,也就是3-6行里面的内容。细化重复以下两个过程,直到中断:
- 使用当前解决方案π [第4行]创建修改集M ⊆ A。
- 使用最优MAPF求解器[第5行]改变M中代理的路径来细化当前解决方案π。我们称这个求解器为细化求解器。细化求解器只改变M中代理的路径;M中代理以外的路径不变。细化继续进行直到中断,例如超时、达到预定迭代次数、不再有改进时、用户中断等。
 最终,框架返回最终解决方案[第7行]。
上文中提到的初始求解器可以是任何次优MAPF求解器,只要它能提供可行解即可。作为细化求解器,最好使用从最优求解器改编的版本。改编很简单;让它为M中的代理规划路径,并将其他代理视为动态障碍。例如,对于CBS算法,只为M中的代理求解MAPF,同时禁止低级别搜索使用M中代理以外的所有空间时间对。确切地说,细化求解器并不局限于最优MAPF求解器(可以使用单机器人的求解器)。要求是细化解决方案从原始解决方案不变差。考虑到M中代理以外的路径成本不变,要求是M中代理的路径成本在细化之前和之后都不会增加。
3. 细化求解器性质与要求
下面有一些性质显然是由对细化求解器的要求所设定的。
3.1 定理1(单调性):
对于算法1中的每次迭代,解决方案成本都是不增加的。
 一个关键点是细化求解器重新计算所选子集M(一部分机器人)中代理的路径,而不是所有代理的集合A(所有机器人)。与直接使用最优求解器解决原问题相比,细化求解器在每次迭代中解决的问题明显小得多,确保框架即使对于大量代理也是可扩展的。同时下面有几种方法来有效的降低计算的时间。
A.提前终止(早停)
 即使细化求解器解决的子问题与原问题相比计算量已经是较小的了,但是如果本身的 
     
      
       
       
         ∣ 
        
       
         M 
        
       
         ∣ 
        
       
      
        |M| 
       
      
    ∣M∣仍然太大,细化仍然可能需要很长时间。在这种情况下,最好通过返回当前解决方案来中止当前细化,然后使用新的集合 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M开始新的迭代。标准可以是超时或使用细化求解器中搜索树大小的阈值。
B.局限性
 作为一个限制,该框架可能具有局部最小值,并且没有来自最优解的次优性界限。
 命题1(没有次优性界限):考虑最优成本 
     
      
       
        
        
          c 
         
        
          ∗ 
         
        
       
      
        c^* 
       
      
    c∗。在算法1中,总是 
     
      
       
       
         c 
        
       
         ≤ 
        
       
         w 
        
        
        
          c 
         
        
          ∗ 
         
        
       
      
        c≤wc^* 
       
      
    c≤wc∗,除非将 
     
      
       
       
         A 
        
       
      
        A 
       
      
    A本身选为修改集 
     
      
       
       
         M 
        
       
      
        M 
       
      
    M,其中 
     
      
       
       
         c 
        
       
      
        c 
       
      
    c是每次迭代中的解决方案成本。
 证明:考虑图1中的一个例子。假设初始解决方案将 
     
      
       
        
        
          a 
         
        
          1 
         
        
       
      
        a_1 
       
      
    a1分配给顺时针路径(成本: 
     
      
       
       
         k 
        
       
      
        k 
       
      
    k)和 
     
      
       
        
        
          a 
         
        
          2 
         
        
       
      
        a_2 
       
      
    a2分配给逆时针路径(成本:1)。当k≥6时,这就不是最优的模型了,因为 
     
      
       
        
        
          a 
         
        
          1 
         
        
       
      
        a_1 
       
      
    a1可以采取逆时针路径,并经过 
     
      
       
        
        
          a 
         
        
          2 
         
        
       
      
        a_2 
       
      
    a2来移动到目标处(总成本:6)。除非 
     
      
       
       
         M 
        
       
         ≠ 
        
       
         A 
        
       
      
        M ≠ A 
       
      
    M=A,否则细化的解决方案不变。假设 
     
      
       
       
         w 
        
       
         ≥ 
        
       
         1 
        
       
      
        w≥1 
       
      
    w≥1,使得 
     
      
       
       
         c 
        
       
         ≤ 
        
       
         w 
        
        
        
          c 
         
        
          ∗ 
         
        
       
      
        c≤wc^* 
       
      
    c≤wc∗。我们可以取任意 
     
      
       
       
         k 
        
       
      
        k 
       
      
    k,与 
     
      
       
       
         w 
        
       
      
        w 
       
      
    w的存在相矛盾。
 
3.2 定理2(局部最小值存在)
根据初始解决方案,除非将A本身选为M,否则可能无法达到最优解。
注意,当 M = A M = A M=A时,细化求解器必须能够解决原始MAPF问题。
4. 修改集选择
我们从上面可以看到在优化的时候,修改集的选择会影响到整个系统的性能,而如何有效的选择修改集这个就非常重要了。修改集是框架的重要组成部分,其设计会影响计算时间和解决方案质量等性能。本节定义了几个选择规则,以提供合理的候选修改集。
4.1 随机的
一个天真的方法是随机挑选一个代理子集。然后,修改集的大小 M M M就是一个用户指定的参数。需要注意的是,大的 M M M修改有机会在一次迭代中很大程度上降低成本,但由于子问题变得具有挑战性,因此需要花费时间进行细化。
4.2 单一代理
这个规则总是选择一个单一的代理,因为 M M M可以被视为前一个规则(随机)的一个特例。即使只有一个代理,成本也可能因细化而降低。在这种情况下,细化只是一个单一代理的路径寻找问题,可以在没有 M A P F MAPF MAPF求解器的情况下有效地计算出来,例如,通过 A ∗ A^∗ A∗来计算即可,可以简化为一个机器人在其余障碍物(机器人)中规划出来的最优路径。
4.3 着重目标
考虑图2中的一个例子。假设当前的解决方案是 
     
      
       
       
         π 
        
       
         1 
        
       
         = 
        
       
         ( 
        
       
         v 
        
       
         2 
        
       
         , 
        
       
         v 
        
       
         3 
        
       
         , 
        
       
         v 
        
       
         6 
        
       
         , 
        
       
         v 
        
       
         3 
        
       
         , 
        
       
         v 
        
       
         3 
        
       
         ) 
        
       
      
        π1 = (v2, v3, v6, v3, v3) 
       
      
    π1=(v2,v3,v6,v3,v3) 和 
     
      
       
       
         π 
        
       
         2 
        
       
         = 
        
       
         ( 
        
       
         v 
        
       
         1 
        
       
         , 
        
       
         v 
        
       
         2 
        
       
         , 
        
       
         v 
        
       
         3 
        
       
         , 
        
       
         v 
        
       
         4 
        
       
         , 
        
       
         v 
        
       
         5 
        
       
         ) 
        
       
      
        π2 = (v1, v2, v3, v4, v5) 
       
      
    π2=(v1,v2,v3,v4,v5) 。代理人 
     
      
       
        
        
          a 
         
        
          1 
         
        
       
      
        a_1 
       
      
    a1不能实现更短的路径,因为代理人 
     
      
       
        
        
          a 
         
        
          2 
         
        
       
      
        a_2 
       
      
    a2在第2个时间步长(第三个值)使用了 
     
      
       
        
        
          a 
         
        
          1 
         
        
       
      
        a_1 
       
      
    a1的目标(即v3)。一般来说,对于 
     
      
       
        
        
          a 
         
        
          i 
         
        
       
      
        a_i 
       
      
    ai来说,理想成本 
     
      
       
       
         d 
        
       
         i 
        
       
         s 
        
       
         t 
        
       
         ( 
        
        
        
          π 
         
        
          i 
         
        
       
         [ 
        
       
         0 
        
       
         ] 
        
       
         , 
        
        
        
          g 
         
        
          i 
         
        
       
         ) 
        
       
      
        dist(π_i[0], g_i) 
       
      
    dist(πi[0],gi)和实际成本成本 
     
      
       
       
         ( 
        
        
        
          a 
         
        
          i 
         
        
       
         , 
        
       
         π 
        
       
         ) 
        
       
      
        (a_i, π) 
       
      
    (ai,π)之间存在差距的一个原因可能是另一个代理人 
     
      
       
        
        
          a 
         
        
          j 
         
        
       
      
        a_j 
       
      
    aj在时间步骤 
     
      
       
       
         t 
        
       
         ≥ 
        
       
         d 
        
       
         i 
        
       
         s 
        
       
         t 
        
       
         ( 
        
        
        
          π 
         
        
          i 
         
        
       
         [ 
        
       
         0 
        
       
         ] 
        
       
         , 
        
        
        
          g 
         
        
          i 
         
        
       
         ) 
        
       
      
        t≥dist(π_i[0], g_i) 
       
      
    t≥dist(πi[0],gi)时使用了 
     
      
       
        
        
          a 
         
        
          i 
         
        
       
      
        a_i 
       
      
    ai的目标(即 
     
      
       
        
        
          g 
         
        
          i 
         
        
       
      
        g_i 
       
      
    gi)。至少在 
     
      
       
       
         t 
        
       
      
        t 
       
      
    t之前, 
     
      
       
        
        
          a 
         
        
          i 
         
        
       
      
        a_i 
       
      
    ai不能到达 
     
      
       
        
        
          g 
         
        
          i 
         
        
       
      
        g_i 
       
      
    gi并留在那里。在这种情况下,需要联合完善 
     
      
       
        
        
          a 
         
        
          i 
         
        
       
      
        a_i 
       
      
    ai和 
     
      
       
        
        
          a 
         
        
          j 
         
        
       
      
        a_j 
       
      
    aj的路径。这一观察促使我们创建了一个简单的规则,将当前的解决方案 
     
      
       
       
         π 
        
       
      
        π 
       
      
    π和一个代理 
     
      
       
        
        
          a 
         
        
          i 
         
        
       
      
        a_i 
       
      
    ai作为输入。
 
4.4 围绕目标的局部修复
这是上一条规则(关注目标)的一个特例。再次假设图2的例子; π 1 = ( v 2 , v 3 , v 6 , v 3 , v 3 ) π1=(v2, v3, v6, v3, v3) π1=(v2,v3,v6,v3,v3), π 2 = ( v 1 , v 2 , v 3 , v 4 , v 5 ) π2 = (v1, v2, v3, v4, v5) π2=(v1,v2,v3,v4,v5)。在聚焦目标(focus-at-goals)中, a 1 a_1 a1的 M M M是 { a 1 , a 2 } \{a_1, a_2\} {a1,a2},因此,细化求解器必须用两个代理解决一个子问题;然而,这种努力可以减少。考虑为 a 1 a_1 a1获得一个更好的路径,忽略 π 2 π_2 π2。在这个例子中,通过目标周围的局部修复获得一条新的路径,不需要搜索; ( v 2 , v 3 , v 3 , v 3 , v 3 ) (v2, v3, v3, v3, v3) (v2,v3,v3,v3,v3)。接下来,为 a 2 a_2 a2计算一条路径,同时避免与这条新路径和其他代理的路径发生碰撞。如果两条新路径的成本之和小于原始路径,就用新路径替换 π 1 π_1 π1和 π 2 π_2 π2。由于搜索工作量减少,预计细化工作会更快完成。一般来说,当 π i = ( . . . , g i , v , g i , . . . , g i ) π_i=(...,g_i,v,g_i,...,g_i) πi=(...,gi,v,gi,...,gi),其中 v ≠ g i v ≠ g_i v=gi,而另一个代理 a j a_j aj在该时间步长使用 g i g_i gi时,可以应用这一规则。
4.5 使用MDD
给定一个单一的路径成本 c c c,从 π i [ 0 ] π_i[0] πi[0]到 g i g_i gi的一组路径可以紧凑地表示为一个多值决策图(MMDD)[35];一个有向无环图,其中一个顶点是一对位置 v ∈ V v∈V v∈V和一个时间步长 t ∈ N t∈N t∈N。
- 在该时间段从起点出发的可达位置;
- 从该时间段到目标的可达位置。
 让MDDc i是一个成本为 c c c的 a i a_i ai的MDD,图3显示了两个例子。 M D D 1 2 MDD^2_1 MDD12和 M D D 1 3 MDD^3_1 MDD13。MDD在MAPF求解器中经常使用[28], [36]。


![[已解决] 决定系数R2为何为负 from sklearn.metrics import r2_score](https://img-blog.csdnimg.cn/14a86e054d2d4f65bf377e1238b482a1.png)
















