顯式估計的基於沖突的搜索算法(EECBS)(4)


ECBS的兩個缺點:

1.容易陷入局部搜索,當結點N在進行擴展的時候,N的cost會逐漸增大,hc的值逐漸減小,當cost增大到一定程度且不滿足次優界限時,算法會接着搜索cost比N小一點,hc比N大一點的下個節點,如此循環直到找到解,這中cost和hc的負相關性會導致聚焦搜索反復放棄節點的擴展,卡在局部區域,永遠沒有機會探索其它部分。

2.在進行擴展中,節點的沖突數不斷減少,代價逐漸增加,導致次優的節點的hc的值較大,而Focal中每次都是選取hc小值進行擴充,因此,次優節點想要擴充到需要等到Focal中的節點快清空,但是由於一般會存在很多cost值差不多的節點,因此Focal很難清空,這就導致次優解一直得不到消耗,從而使上層的最優解下界幾乎不怎么增加,這就使得整個計算不能保證在合理的時間范圍內計算完成。

缺點1和2都涉及到負相關性,缺點很相似,但是一個是涉及成本,一個是涉及下界。

ECBS中函數定義:

N表示上層節點,n表示下層節點;

表示當前節點的狀態和其它Agent發生了沖突的Agent數量;

表示節點N中的路徑中的沖突數;

兩者共用一個公式:

 

 

表示節點N的最優解下界;

 

 

標准A*算法的啟發式

 

 

表示節點N的所有Agent的路徑cost之和;

 在下層,按d(n)排序,在上層hc(N)按排序。

Explicit Estimation Search (EES)

EES是一種有界次優搜索算法,它解決了聚焦搜索因為負相關導致的一些問題。

ESS引入了第三個函數f^用來估計當前給定節點的解決方案的成本,結合了對cost和hc和估計,用來預測展開哪些次優節點能更快找到解決方案。如果當前次優內的節點都不滿足擴充條件,則它通過最小的f值來提高當前的邊界。

ESS需要維護三個列表:CLEANUP , OPEN和 FOCAL

CLEANUP是A*算法中一個有序隊列,按照啟發式f進行排序,OPEN是A*算法另外一個有序隊列,按照評估函數f^來排序,FOCAL中的從OPEN中選取,並且要滿足f^<=w*f^(bestf^),其中fˆ(N) =cost(N) + hˆ(N),這里的 hˆ(N)指的是cost-to-go;

。。。

Explicit Estimation CBS(EECBS)


上層中,需要維護三個列表:

CLEANUP:按照函數lb進行排序

OPEN:按照代價函數f^進行排序,這個函數估計了CT節點以下的解決方案的最小成本,fˆ(N) =cost(N) + hˆ(N)

FOCAL:包含OPEN中所有滿足fˆ(N)≤w·fˆ(best)的節點,並按照hc進行排序

EECBS選擇節點的規則如下:

if cost(besthc)<=w lb(bestlb) ,then select besthc from FOCAL

else if cost(bestf^)<=w lb(bestlb) ,then select bestf^ from OPEN

else select bestlb from CLEANUP

在線學習,求解hˆ(N)

步距誤差公式:

成本誤差公式:

 

 

 bc(n)表示子節點中f^最小的節點;

c(n,bc(n))表示從節點n移動到bc(n)的cost;

因為在EECBS中沒有可接受成本h(n),所以需要對公式修改;

在EECBS中被定義如下:

 

 

 注釋:bc(N)表示節點N中最優子節點,在N的所有子節點中,cost最小為最優子節點,若cost相同,則沖突數hc最小的為最優子節點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM