CBS基于冲突的搜索算法流程和核心

1.conflict based search(CBS)基于冲突的搜索

CBS基于冲突的搜索是最优最先进的混合MAPF算法,比较主流且有较好效果。

由两层搜索过程组成,底层搜索为每个agent搜索出一条有效路径。 上层搜索负责检查路径冲突,并选择其中代价最小的分支重新进行底层路径搜索,直到上层搜索发现有效路径为止。

针对多AGV路径规划,采用基于冲突的搜索算法CBS,将MAPF分为两层去求解,下层采用优化的基于曼哈顿距离的A*算法解决多个单AGV路径规划问题,算法的上层采用约束树结点解决多个 AGV 路径间的冲突问题。

2.流程

目标函数: 总成本(sum of costs):各个 agent 完成的时间步长之和      

假设: 将连续时间离散化为时间步长; 每个时间步长执行一个动作; 在每个时间步长里,每个 agent 只占据一个节点;

流程:

(1)下层使用A*算法求出多个单AGV路径规划。

(2)引入优先级队列 open list,将约束树根节点R放入open list,以R.cost为键值,R包含R.constraints(为空),R.solution(多个单AGV的路径规划集合),R.cost(解的成本)。

(3)open list取出成本最低的结点N,N.solution无冲突,则N.cost为所求解;否则,对第一个冲突处理,针对冲突的点,分裂为若干个子节点,继承当前结点的全部约束和解,并分别添加新的约束,更新路径和cost值。

(4)重复执行(3)操作,直到open list的成本最低节点N的解无冲突或求解失败

3.改进方案

CBS的改进:CBS的上层和下层都使用了A*,如果想让其运算更快,一个很常见的算法是用wA*。通过给h乘一个w,使得f更偏向于h的值,这样可以更快找到解,并且解在最坏情况下不超过w倍最优解。但是其表现会比CBS更差。这是因为在CBS中,h的值没有考虑中途可能包含的碰撞信息。

你可能感兴趣的:(路径规划,MAS,MAPF,算法)