多智能体路径规划(Multi-Agent Path Finding, MAPF)中的 CBS(Conflict-Based Search)是一种经典的分层搜索算法,用于为多个智能体在共享环境中规划无冲突的路径。其核心思想是通过高层冲突检测与约束生成和底层单智能体路径规划相结合的方式,逐步消除智能体之间的冲突,最终得到全局最优解。
CBS 算法基本原理
CBS 算法采用两层搜索结构:
1. 高层搜索(High-Level):
- 在约束树(Constraint Tree, CT)中进行搜索,用于检测和解决智能体之间的冲突。
- 每个节点代表一个状态,包含一组对智能体的约束(如在某个时间点不能进入某个位置)。
- 通过 A* 等搜索算法在约束树中寻找最优解。
2. 底层搜索(Low-Level):
- 为每个智能体单独规划路径,通常使用 A* 等单智能体搜索算法。
- 路径规划时需考虑高层传递的约束,确保路径不与其它智能体发生冲突。
CBS 算法流程
1. 初始路径生成:
- 为每个智能体独立运行底层搜索(如 A*),生成初始路径。
- 检查这些路径是否存在冲突。
2. 冲突检测:
- 如果存在冲突,则选择一个冲突(如顶点冲突、边冲突等)进行处理。
3. 冲突解决:
- 为冲突中的智能体添加约束(如在某个时间点不能进入某个位置),然后分裂节点。
- 为新节点运行底层搜索,重新规划路径。
4. 重复过程:
- 持续进行冲突检测与解决,直到所有路径无冲突为止。
CBS 的优势与特点
- 全局最优性:CBS 算法能够找到最优解,适用于对路径质量要求较高的场景。
- 分层处理:通过分层结构,将复杂的多智能体问题分解为更易处理的子问题。
- 冲突驱动:通过检测和解决冲突,逐步构建可行解,避免了全局搜索的复杂性。
CBS 的局限性
- 计算复杂度高:随着智能体数量增加,搜索空间呈指数增长,导致算法效率下降。
- 搜索空间大:在高密度或复杂环境中,约束树可能非常庞大,影响性能。
CBS 的改进算法
为了解决 CBS 的性能问题,研究者提出了多种改进算法,例如:
- ICBS(Improved CBS):通过合并冲突智能体为 Meta-Agent,减少冲突处理的开销。
- ECBS(Enhanced CBS):使用焦点搜索(Focus Search)优化搜索过程,提升求解速度。
- GCBS(Greedy CBS):放松最优性要求,通过启发式策略加速搜索。
- BCBS(Bounded CBS):引入焦点搜索机制,在最优性与效率之间取得平衡。
应用场景
CBS 算法广泛应用于以下领域:
- 仓储物流:多 AGV 协同搬运货物。
- 机器人调度:多机器人系统中的路径规划与任务分配。
- 交通管理:车辆路径规划与冲突避免。
- 游戏 AI:模拟多个角色在地图中的移动。
CBS 算法通过其结构化的冲突处理机制,成为解决 MAPF 问题的重要工具,尤其在需要保证路径最优性和全局一致性的场景中具有显著优势。
CBS算法顶层使用约束树(Search the Constraint Tree (CT))数据结构来解决底层冲突,大概长这样: