ECBS(最大特点:加入碰撞次数影响因素)
下层
这个状态s可以理解为一台Agent在某时刻在某结点上;
:
一台Agent在某时刻在某结点上
,到达下一个结点的最小的损耗,即
最小代价估计值(我们是将下一步可能要走的结点都存进OPEN,然后取里面的最小键值即最小损耗)
;
:
这个的意思是我们需要得到我们可接受的损耗(可以理解为得到可接受的路径), ϵ >=1, 最终解的质量是由 ϵ 决定 ;
OPEN:
列表 OPEN 是来存放待探测的状态,每次从 OPEN 中选出一个 ˆf(n) 值最小的 状态值来进行扩展,将后继状态添加到 OPEN 中去,而将扩展过的状态标记为 CLOSE。算法的停止条件就是扩展的状态为目标状态。
Focal:
我们需要得到一个集合:将我们可接受的损耗
(可以理解为得到可接受的路径) 存入该集合中;然后对这些
进行优先级的排序(此时
的大小已经不重要了,决定选择使用哪条路径的是由他们在该路径上发生冲突的Agent个数决定,即
):通过
进行排序,取
最小的那个状态s,这个状态就是这台Agent要选的路径;
个人理解:
我Agent,被通知说在某时刻某结点不能走,但是我怕走其他路也会撞上其他Agent,于是我就将就一下,我把我可以接受的运动量列出来,然后我选择一条我不会撞上的或者撞得最少的路走。
上层
:
所有Agent他们各自的最小代价值之和;也为上层的下界;
:
为
的下层搜索找到解时 OPEN 中的最小代价值;
:
N结点的代价必须小于等于上层的下界的最小值,然后将符合要求的N.cost存入
,然后以
来决定优先权,得到在
中,最小的
的N结点;
个人理解:与下层思路一样,均是聚焦搜索,可以参考CBS上层思路,他与CBS最大区别就是,CBS取的是OPENcbs中的N.cost最小,ECBS取的是在
(接受的N.cost的队列)中选择
最小。