MAPF 基础
文档作者: 李 拥 祺
1. MAPF 是什么?
multi-agent pathfinding problem
1.1 定义
Multi-Agent Path Finding (MAPF) is the problem of computing collision-free paths for a team of agents from their current locations to given destinations
- MAPF 问题是多智能体规划问题中很重要的一类问题;
- 解决的问题:
- 解决多个智能体局部路径冲突问题;
- 传感器可以进行避障,但是如果能提前优化路径避免或降低碰撞的概率显然是更好的选择。
- 举个例子:人在开车的时候总是会有提前预判危险从而规划出一条路径避免危险,这也是老司机与新手司机的一大区别。
- 核心部分:
- 全局路径规划
- 局部路径优化
1.2 经典 MAPF 问题数学描述
1.2.1 问题描述
k k k 个 agent
- Input :tuple
<
G
,
s
,
t
>
<G,s,t>
<G,s,t>
- 无向图 G = ( V , E ) G=(V,E) G=(V,E)
- 映射 s : [ 1 , ⋯ , k ] → V s:[1,\cdots,k]\rightarrow V s:[1,⋯,k]→V 表示每个 agent 都对应一个源节点;
- 映射 t : [ 1 , ⋯ , k ] ← V t:[1,\cdots,k]\leftarrow V t:[1,⋯,k]←V 表示每个 agent 对应的目标节点;
- 假设 时间是离散的,在每一个时间步长,每一个 agent 都分别位于图 G G G 上一个节点上,并且可以做一个动作。
- 动作
a
:
V
→
V
a:V\rightarrow V
a:V→V 可以认为是一个函数,如
a
(
v
)
=
v
′
a(v)=v'
a(v)=v′ 表示节点
v
v
v 上的 agent 在一个时间点执行了动作
a
a
a 之后,在下一个时间点位于节点
v
′
v'
v′ 。一般认为有两种类型的动作:
move
:表示一个 agent 从它现在的节点 v v v 移动到图上的相邻节点 v ′ v' v′;wait
:表示一个 agent 在一个时间步长不移动,即在下一个时间点任然待在现在的节点 v v v。
- π i [ x ] \pi_i[x] πi[x] 表示一个 agent i i i 执行了动作序列 π = ( a 1 , a 2 , ⋯ , a n ) \pi=(a_1,a_2,\cdots,a_n) π=(a1,a2,⋯,an) 中前 x x x 个动作之后达到的位置,即 π i [ x ] = a x ( a x − 1 ( ⋯ a 1 ( s ( i ) ) ) ) \pi_i[x]=a_x(a_{x-1}(\cdots a_1(s(i)))) πi[x]=ax(ax−1(⋯a1(s(i)))) ,其中 s ( i ) s(i) s(i) 表示 i i i 的源节点位置。
- π i [ ∣ π ∣ ] = t ( i ) \pi_i[|\pi|]=t(i) πi[∣π∣]=t(i) 表示 agent i i i 执行了一系列动作 π \pi π 之后到达目标节点 t ( i ) t(i) t(i) ,我们称动作序列 π \pi π 是agent i i i 的一条单智能体规划路径(single-agent plan )。
- Output :k 条 single-agent plan 集合。
1.2.2 冲突类型
- 我们以 π i \pi_i πi 和 π j \pi_j πj 两条 single-agent plan 来说明冲突的类型
-
节点冲突(Vertex conflict)
π i [ x ] = π j [ x ] \pi_i[x]=\pi_j[x] πi[x]=πj[x]
在同一时间点,一个节点上 agent 的数量大于等于2个。
-
边冲突(Edge conflict)
π i [ x ] = π j [ x ] \pi_i[x]=\pi_j[x] πi[x]=πj[x] 并且 π i [ x + 1 ] = π j [ x + 1 ] \pi_i[x+1]=\pi_j[x+1] πi[x+1]=πj[x+1]
在同一时间步长里,多个 agent 以同一个方向通过相同的边。
-
跟随冲突(following conflict)
π i [ x + 1 ] = π j [ x ] \pi_i[x+1]=\pi_j[x] πi[x+1]=πj[x]
一个 agent 下一个时间点要占据的节点是另一个 agent 现在占据的节点。
-
环绕冲突(cycle conflict)
π i [ x + 1 ] = π i + 1 [ x ] , π i + 1 [ x + 1 ] = π i + 2 [ x ] , ⋯ , π j − 1 [ x + 1 ] = π j [ x ] , π j [ x + 1 ] = π i [ x ] \pi_i[x+1]=\pi_{i+1}[x],\quad\pi_{i+1}[x+1]=\pi_{i+2}[x],\cdots,\pi_{j-1}[x+1]=\pi_j[x],\quad\pi_j[x+1]=\pi_i[x] πi[x+1]=πi+1[x],πi+1[x+1]=πi+2[x],⋯,πj−1[x+1]=πj[x],πj[x+1]=πi[x]
多个 agent 之间存在跟随冲突,并且构成了一个环状。
-
换位冲突(swapping confllict)
π i [ x + 1 ] = π j [ x ] \pi_i[x+1]=\pi_j[x] πi[x+1]=πj[x] 并且 π j [ x + 1 ] = π i [ x ] \pi_j[x+1]=\pi_i[x] πj[x+1]=πi[x]
两个 agent 在一个时间步长里互换了位置,有些文献中将换位冲突归类于边冲突。
换位冲突是环绕冲突的一个特例。
-
如果能给每一个 agent 都找到一条 single-agent plan ,并且在执行过程中每个 agent 之间不会发生冲突,我们就认为解决了这个 MAPF问题。
-
这些冲突之间的关系:
- 禁止节点冲突意味着边冲突也被禁止;
- 禁止跟随冲突意味着环绕冲突和换位冲突都被禁止了;
- 禁止环绕冲突意味着换位冲突被禁止了;
- 允许边冲突意味着节点冲突被允许了;
- 允许换位冲突意味着环绕冲突被允许了;
- 允许环绕冲突意味着跟随冲突被允许了;
-
针对不同的问题,禁止/允许的冲突会不一样,看论文的时候要注意。
1.2.3 智能体到达目标点之后
因为不同的 agent 到达自己的目标点的时间不同,所以需要定义 agent 达到目标点之后的状态,一般采用以下两种假设:
-
待在目标点不动
假设每个 agent 到达目标点之后都在目标点静止不动直到所有 agent 到达目标点,但是这种假设有一个问题就是,这些到达目标点的 agent 实际上变成了障碍物 。
-
在目标点消失掉
假设每个 agent 到达目标点之后立即消失掉。
1.2.4 目标函数
一般采用目标函数来评估一个 MAPF 问题的解决方案 π = { π 1 , ⋯ , π k } \pi=\{\pi_1,\cdots,\pi_k\} π={π1,⋯,πk},最常用的两类目标函数:
-
完成时间(makespan):最后完成的那个 agent 所花时间步长
max 1 ≤ i ≤ k ∣ π i ∣ \max\limits_{1\leq i\leq k}|\pi_i| 1≤i≤kmax∣πi∣
-
总成本(sum of costs):各个 agent 完成的时间步长之和
∑ 1 ≤ i ≤ k ∣ π i ∣ \sum\limits_{1\leq i\leq k}|\pi_i| 1≤i≤k∑∣πi∣
1.3 经典 MAPF 问题变形
经典 MAPF 问题一般具备以下假设:
- 将连续时间离散化为时间步长;
- 每个时间步长执行一个动作;
- 在每个时间步长里,每个 agent 只占据一个节点;
针对这些假设的改变产生了许多 MAPF 问题变种,具体可以看参考资料1 。
1.4 MAPF 与 多机器人系统路径规划
- 理论到工程的转化,多机器人系统路径规划是 MAPF 的一个应用案例;
- MAPF 是多机器人路径规划的理论基础;
- 多机器人系统路径规划主要是删除理想化的约束,在学术研究中,很多理想化假设何约束是为了方便测试;
- 工程中需要考虑各种情况,如 1)突然某一个机器人坏了;2)在线动态调度突然变成了离线无法通信;3)环境中突然闯入的人;4)机器人还需要考虑其特性,不能简单的当作一个 agent 等
1.5 应用场景与研究方向
- 应用场景:
- 仓储系统
- 机场自动调度
- 车联网
- 港口集装箱调度
- ⋯ \cdots ⋯
- 研究方向:
- 改进已有算法;
- 将 MAPF 应用到具体生活场景中,考虑实际约束;
1.6 研究团队
2. MAPF 算法
MAPF 问题是一个 NP-hard 问题
-
明白了 MAPF 问题的定义之后,很自然就会想到一种解决方案:
- 给每一个 agent 单独规划路径;
- 利用一些简单的规则来避免冲突;
这种方案在简单的系统中可以工作的比较好,但是随着问题规模的增大,效率会降低,如果可以将所以 agent 一起考虑进行规划将大幅度提高效率,而这类方法主要有以下几种:
-
基于搜索的方法(参考资料2-3)
- Reduction-based Optimal Solvers
- A*-based Optimal Solvers
- Increasing Cost Tree Search
- Conflict Based Search(CBS)
基于搜索的方法每一类里面都有很多算法,以及改进算法。
-
近似算法(参考资料3)
- 有边界
- 无边界
- 有边界
参考资料
- Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks
- Search-Based Optimal Solvers for the Multi-Agent Pathfinding Problem: Summary and Challenges
- 多智能体路径规划研究进展
- 睿慕课《多机器人系统路径规划技术与实践》课程
- https://www.bilibili.com/read/cv10556167 李娇阳