多機器人任務分配
多機器人任務分配,要解決的是這樣一個問題:當一隊機器人面對一堆活兒時,到底該讓哪台機器人去做哪件事。設想一座倉庫裡有十台配送機器人,要搬運四十個包裹:得有人——或某段軟體——把包裹分派下去,好讓整樁活兒盡快做完、誰也不撞著誰,也不會出現一台機器人閒著、另一台卻忙不過來的情形。把這件分派的事做好,並隨著新活兒不斷出現而反覆地做,就是任務分配。
難就難在,最好的答案同時取決於一切:每台機器人離每件活兒有多遠、還剩多少電量、有沒有兩件活兒由同一台機器人一趟順路做完更省事,以及局面還在不停地變。像「每台機器人都去搶離自己最近的活兒」這樣簡單的規則雖快,卻可能讓整隊的負擔嚴重失衡。所以機器人學者要找的,是能讓總時間、總行駛距離,或別的某種代價最小的分派方案——這是一場拔河:一頭要讓每台機器人分到公平的負擔,另一頭要讓整樁活兒盡快完成。
一類常用的解法,借用了拍賣(或市場)的思路。每件活兒被拿出來「競標」;每台機器人算一算自己做這件活兒能有多便宜(按時間或能量計),就報出這個數當作出價;活兒歸出價最低者,再對下一件活兒重複這個過程。不需要有一個中央老闆什麼都知道——機器人只需互相比一比出價——所以這類以市場為基礎的方法,即便在機器人中途加入、退出,或發現世界與預想不符時,也照樣行得通。
三台清潔機器人在夜間分管一座機場。每出現一處新的汙漬,就作為一件活兒廣播出去;能最快趕到的那台機器人出價最低、贏得這件活兒,於是每次都由離得最近、又恰好空閒的機器人去處理下一攤髒汙。
以市場為基礎的拍賣,把每件活兒交給做得最省的那台機器人——無需中央調度者。
研究者按兩點給這類問題分類:每台機器人一次能做多少,以及計畫要看多遠——比如,一台機器人是一次只做一件任務還是好幾件,又比如任務只是就當下分派,還是排進未來的日程。