機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

阿里技術發表於2020-03-24
機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

阿里妹導讀:隨著網際網路和電子商務的發展以及全球化的不斷加速,中國產業持續升級,人工智慧與機器人叢集逐步被應用於製造業與物流供應鏈產業中。機器人叢集的主要目的是與人協同合作,將人從沉重的重體力搬運任務中解放出來,專注於更精細的操作當中。由於在工業界的廣泛應用與進一步智慧化生產的思考,機器人叢集排程成為了多智慧體系統(Multi-agent System)學術研究中的一個新興研究方向,其核心問題是如何排程機器人執行合適的任務並規劃高效的路徑,使得系統整體效率最優。

前言

與傳統工業優化不同,多智慧體系統中每個機器人互相替代性很強,流程是非線性的,導致系統效率很難直接建模。一般通過調整任務分配與移動路徑,優化總任務距離來間接逼近系統效率。但我們在實踐中發現,任務距離與系統效率並不強相關。由於成本的限制,機器人數量往往是有限的,當針對任務距離進行優化時,會導致部分作業人員過於繁忙,而部分作業人員無事可做的問題。

因此我們結合了菜鳥柔性自動化實驗室在多智慧體系統的實踐與反思,於論文《Idle Time Optimization for Target Assignment and Path Finding in Sortation Centers》中提出了基於工作站空閒時間的優化模型,關注如何最大化人的能力,從而推動整個系統達到更高的效率。我們對工作站的工作時間進行了離散化切分,模擬了機器人排隊與等待的情況,並通過一套統一的網路流模型獲得機器人與工作站的分配策略,以及機器人叢集的路徑規劃,提升了系統產能。

論文地址:https://aaai.org/Papers/AAAI/2020GB/AAAI-KouN.3001.pdf

應用場景

基於多智慧體叢集的自動化技術方案的興起和發展,促進了現代物流業的發展和全球化,代表著物流與供應鏈行業未來的一個主要方向。在阿里巴巴旗下菜鳥網路以及其合作伙伴的倉儲和分撥中心有著成百上千的機器人在工作,實現包裹高效安全的到達使用者手上。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖1. 機器人叢集在分撥中心進行包裹分撥

圖1是一個機器人分撥中心,幾百個機器人在快速的把大量的包裹根據城市分撥,幫助幹線物流網路更高效的運輸包裹。機器人分撥中心的核心是三部分:工作站(Station),機器人(Agent)以及道口(Sorting Bin)。機器人會自動行駛到工作站領取包裹,通過自動掃碼,然後再將包裹運輸到對應的目的地道口,此時機器人會將包裹投進道口,從而完成包裹分撥。如何讓這幾百個機器人高效的運轉,使得包裹可以更加快速的到達使用者手中。這裡要值得思考的是,一般性的會認為讓這些機器人總的行駛路線最短就會使得整個分撥中心的效率最高。然而並不是這樣,我們會看輸入和輸出,輸入是所有的包裹,輸出是各個道口中的包裹。受限於大量的包裹以及有限的機器人,僅僅是去優化路線最短並不能最大產出,這樣就會存在部分工作站機器人排隊而另一些工作站缺乏機器人的情況,在輸入部分就已經限制了整個系統的產能。所以我們的目標是最小化所有工作站的空閒時間,來達到最大化系統產能的目的。下面會介紹如何建模來解決最小化空閒時間的問題。

問題建模

我們將上圖機器人分撥中心模式進行抽象成如下圖2所示,這樣可以方便的引入多智慧體路徑規劃的研究,其中核心三要素分別是橙色的工作站,綠色的機器人以及藍色的道口。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖2.分撥過程,橙色節點為工作站,綠色節點是機器人,藍色節點為分撥道口(每個道口對應了一個目的地結合)

要完成最小化工作站空閒時間,其核心是解決兩個問題:

  1. 每個機器人去哪個工作站接包裹,即任務分配(Task Assignment)問題;
  2. 接完包裹後每個機器人按照什麼路線執行到目的地道口,每個機器人可以視為一個智慧體,即多智慧體路徑規劃(Multi-Agent Path Finding, MAPF)問題。

這兩個問題合在一起在學術上定義為TAPF問題。解決單次的任務分配和路徑規劃問題,我們定義為一個單次的TAPF問題。那麼順理成章的對於上述的自動化分撥中心持續作業的場景,可以抽象成Lifelong TAPF問題。接下來我們給出TAPF的定義。在給定的如下3個條件:

  1. 一個全連線的無向圖G(V,E),
  2. N個Station:,
  3. M個Agent:,

TAPF會找到一個分配方案,這個分配方案表示即為每個Agent去哪個Station,同時會為所有的Agents找到沒有衝突的路徑使得可以更快的到達各自的工作站。

當每個Agent到達其目的地Station點後,Station將需要T的時間將包裹處理到Agent上的時間。因此如果給定一個時間視窗[0, KT),那麼我們可以設定每個工作站的操作時間為K個工作時間片: [0,T), [T,2T),..., [(K-1)T,KT),且每個Station僅允許Agent的到達時間為kT,其中k=0,1,...,K-1。基於以上,我們認為當一個Agent在kT時刻到達其目的地工作站時,則這個工作站在時間段[kT,(k+1)T)內將會被佔用。 

對於Life-Long TPAF問題,那就不是僅僅計算一次任務分配和多智慧體路徑規劃問題。其本質就是不斷的計算並更新每個Agent的分配方案和路徑,這樣對於上述場景中即是,每個機器人在執行過程中都在調整其目的地工作站和執行的路線,最終達到最小化工作站空閒時間最大化分撥中心產能的目的。

目標函式:基於以上定義,我們可以定義:在一個給定時間段內,最小化總的空閒時間,即為在這段時間內所有工作站的空閒時間之和。

示例說明:在後面的章節中,我們將用如下示例來詳細解釋每一種模型。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖3. 問題示例

  • 兩個Agent: 於時刻0從A出發, 於時刻1於C出發;
  • 兩個Station: 位於E點,其位置用  表示, 位於F點,其位置用  表示;

那麼假設給定時間範圍是[0,6),工作站的處理時間T=2,我們可以看到一個最優的TAPF的解決方案是給 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法分配工作站 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法,且其路線為<A,B,D,F>;機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 分配到工作站 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法,且其路線為<null,C,C,D,E>,null表示0時刻 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 不在地圖中。這樣兩個工作站的工作時間段均為[4,6),得到的目標函式即總的空閒時間為8。

ITO-空閒時間優化


機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖4. ITO模型,邊上標記(cost, capacity),為簡潔起見(cost=0,capacity=1)的邊沒有標記

為優化空閒時間,如圖4所示,我們建立了ITO(Idle Time Optimization)網路流模型。每一條邊有兩個屬性(cost, capacity),cost代表了每單位流量經過這條邊需要付出的代價,capacity代表這條邊能承載多少單位的流量。為簡潔起見,在圖中我們省略(cost=0,capacity=1)的邊。

我們對每一個機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法建立了一個對應的藍色節點,對每個 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 建立一個矩形Station子結構。Station子結構根據時間軸展開成K個離散的時間段,每個時間段[kT,(k+1)T)用節點 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 表示,這樣可以方便的考慮每個時間段的工作情況。Agent與Station子結構之間是一個全連通的二分圖,表示每個Agent都能被指派到任意一個Station並佔用一個對應的工作時間段。


機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖5. Agent節點與Station子結構的連結

圖5解釋了Agent節點與Station子結構的連結細節。對於每一組 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法,我們可以估算 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法到達 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 的時間,如果這個時間段是[kT,(k+1)T),那麼 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 可以在 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法時間段開始排隊,並填補之後任意一個時間段的空缺,排隊的特性我們通過 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法之間的連結實現。

最後,為使得整個系統的空閒時間最少,我們希望找到一個工作站指派使得工作站時間段儘可能被佔用。因此我們以Agent節點為流的入口,每個Agent分配一個單位流量,以工作站時間段為出口,每個工作時間段最多流出一個單位流量。這樣每個時間段只能被一個Agent獨佔,每個Agent也只能佔用一個時間段。這個網路流模型的最大流解即是使整個系統空閒時間最少的Agent-Station分配。當我們得出分配方案後,再通過MAPF演算法求得無衝突的Agent路徑,就可以按照該路徑來控制排程整個多智慧體叢集。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖6. 示例的ITO模型

圖6是前文示例對應的ITO模型,兩個Agent的預測到達時間都是在第3個時間段,粗邊是最大流的解,對應匹配機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

PITO-結合路徑規劃的空閒時間優化

由於ITO將Station分配與路徑規劃分開考慮,其效果高度依賴於基於到達時間預測的精確程度。為了避免這個依賴,我們基於ITO設計了PITO(Path Finding with ITO),它將ITO與匿名MAPF網路流模型(Anonymous MAPF flow network, Yu and LaValle 2013)相結合,通過一個統一個網路流模型,同時計算得出Station分配與Agent路徑。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖7. PITO模型

PITO的構造過程如圖7所示由兩部分構成。左側MAPF網路用於計算生成路徑資訊,右側ITO網路用於生成Station分配結果。

對於任何一個地圖中的點 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法,我們根據時間軸將其擴充套件到每一時刻t,t時刻的u用一個紫色節點 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 表示。對於每一個 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

,我們建立一個緊隨其後的綠色輔助節點 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法。由於 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 之間只有一條capacity為1的邊,任何時刻t最多隻會有一個單位的流通過u,從而避免了多個Agent同時到達u而相撞。我們在這裡並沒有在網路結構中設計避免在邊上相撞,而是採用了一個小技巧,如果有兩個Agent在一條邊上相撞,則令他們在當前點等待,並交換兩者的Station分配與後面的路徑。由於Agent是匿名的,交換Station分配與後面的路徑並不會影響空閒時間,從而達到了簡化網路、加速求解的目的。


ITO網路和前一章的構造方式基本相同,我們不再將Agent與Station子結構直接相連,而是採用讓Agent通過MAPF直接“走到”Station的方式。每個Station  機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

 有其真實位置 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法。對於每個工作時間段[kT,(k+1)T),我們從輔助節點 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 連線一條邊到對應的工作站時間段 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法,從而允許Agent在到達 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

時可以佔用其對應工作時間段。最後我們根據Agent的起始時間與起始位置,將它們連線到對應的節點上。


機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖8. 示例的PITO模型

 

圖8是前文示例對應的PITO模型,藍色粗邊相連的節點展示了Agent的對應路徑以及Station的分配結果。

 

Lifelong優化


這一章我們討論如何將ITO與PITO應用到Lifelong的優化中。前面我們討論瞭如何利用ITO與PITO求解One-Shot問題的Station分配與路徑規劃,每個Agent只需要去Station一次。但在現實場景中我們更關心的是一個動態的過程,Agent不斷往返工作站與傾倒口。因此在每經過 

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

的一個時間視窗,我們會重新根據場上情況重算為Agent分配Station並規劃路徑。


但為了讓上個時間視窗的結果能夠更好的為下一個時間視窗留出優化空間,Agent最好能佔用更早工作時間段。我們通過增加懲罰節點P來達到這個目的。如圖4和8,我們在ITO與PITO中增加了一個紅色懲罰節點P,將它們轉化為一個最小費用最大流的問題。P擁有足夠大的流量並且跟所有的時間段相連但cost不為0,如果一個工作時間段沒有Agent能夠佔據,就會產生一個從P到該時間段的等同於cost的懲罰。為了讓Agent儘可能佔據前面的時間段,我們用一個隨時間單調遞減的函式 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 來表示P到 機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法 的cost,比如採用線性遞減或者指數遞減函式。從而當空閒時間相等時,解會傾向於將空閒時間放在後面。

我們將Lifelong版的ITO與PITO(帶時間視窗W與懲罰節點P)稱為ITO-L與PITO-L。

實驗分析

基於以上提出的的ITO-L和PITO-L演算法以及我們給出3種對比演算法,共5種演算法框架進行Life-Long TAPF的實驗對比。5種演算法框架分別如下:

1)H(Inf)-L

採用Hungarian演算法將所有agents按照總距離最近的方式統一分配到工作站,解決Task Assignment問題,然後採用改進的PBS演算法求解MAPF問題;隨著系統的執行不斷重複實時的計算直至時間視窗結束。

2)H(1)-L

採用Hungarian演算法重複計算[M/N]次將所有agents分配到工作站,解決Task Assignment問題;然後採用改進的PBS演算法求解MAPF問題,隨著系統的執行不斷重複實時的計算直至時間視窗結束。

3)H(Q)-L

採用Hungarian演算法重複計算[M/(NQ)]次將所有agents分配到工作站,解決Task Assignment問題;然後採用改進的PBS演算法求解MAPF問題。可以發現H(1)-L和H(Inf)-L分別對應Q=1和Q=∞,隨著系統的執行不斷重複實時的計算直至時間視窗結束。

4)ITO-L

採用Primal Dual演算法求解Min Cost Max Flow問題,解決Task Assignment問題;然後採用改進的PBS演算法求解MAPF問題,隨著系統的執行不斷重複實時的計算直至時間視窗結束。

5)PITO-L

採用Primal Dual演算法求解可直接得到TAPF問題的解,同時解決Task Assignment和MAPF問題,隨著系統的執行不斷重複實時的計算直至時間視窗結束。

下面將介紹我們採用的兩個實驗平臺。 

Agent Simulator

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖9. 模擬實驗中兩個分撥中心的地圖

Agent simulator是指在我們隨機生成的分撥中心業務模式的地圖集合上(如圖9所示),其中橙色代表工作站,藍色表示道口,Agent未標明在上述地圖中。採用我們設計的模擬框架來模擬系統的執行,核心引數分別是:

  • 工作站處理包裹時間,T = 10;
  • 時間視窗範圍為[0,600],即KT = 600,K = 60;
  • 每次重複計算的時間間隔30,即W = 30;
  • Q = M/N + 5;

Industrial Simulator

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖10. 分撥中心場地的2D佈局,綠點為Station,灰點為不可達區域,黑點為道口 

我們將ITO-L演算法和H(Q)-L演算法應用到上述應用場景的分撥中心的排程系統中;其中Task Assignment問題分別用對應的演算法解決,實際中的路徑規劃採用centralized A*演算法求解以及解決deadlock問題。我們將實際分撥中心的地圖抽象抽象成如圖10所示。核心引數分別如下:

  • T = 4;
  • K = 75;
  • Q = 15;

資料結果

Agent Simulator的實驗結果如下圖11與12所示:

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖11. 變化Agent數量的空閒時間趨勢

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖12. 相對H(Inf)-L演算法,各演算法對於總產能的提升比例

Industrial Simulator的實驗結果如圖13所示,其中全場分佈的綠色方塊表示帶著包裹的機器人,全場分佈的藍色表示空載的機器人。

機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法


機器人線上“偷懶”怎麼辦?阿里研究出了這兩套演算法

圖13. Industrial Simulator執行截圖,以及ITO-L與H(Q)-L在Industrial Simulator的表現

從以上資料結果我們可以看到:

1)在自測平臺上,無論是ITO-L還是PITO-L表現的要比其他演算法好,最小化空閒時間帶來的產能提升超過10%,且我們知道10%的分撥能力的提升對一個持續執行的業務系統來說已經是比較好的表現。

2)在實際分撥中心的系統模擬中,我們的產能提升也可以達到11%,表明了我們所設計的演算法的擴充套件性和實用性。

結束語

本文是研究任務分配,多智慧體路徑規劃以及兩者結合在一起的TAPF問題的一次成功嘗試。我們的核心是針對當前物流行業前沿的自動化方案機器人作業模式的研究,分析其核心點Life-Long TAPF問題,首次提出了最小化工作站空閒時間的思想,來優化提高系統的效率。並在此基礎上設計了兩種演算法框架ITO-L和PITO-L來求解Lifelong TAPF問題,達到最小化工作站空閒時間的目的。在實驗部分,我們分別採用了Agent Simulator和Industrial Simulator兩種模擬平臺來驗證所設計的兩種演算法。實驗資料表明在兩個測試平臺上我們所提出的演算法在系統產能上均可以有10%以上的提升,而對於一個長期執行的自動化作業系統來說,10%的提升已經是一個不錯的表現,可以讓大量的包裹更加高效快速的到達使用者手中,對保證和提高物流時效、加速物流自動化的發展起到了積極的作用。本文主要表達,針對物流自動化機器人作業模式,我們在優化方向上和演算法設計上的一些思考和做的事情。後續我們將繼續分析行業問題,設計和改進演算法來進一步加速演算法應用來提高系統效率。

相關文章