多機器人系統、人機互動與軟體
分散式共識(多機器人一致性)
分散式共識,講的是這樣一件事:一群機器人,每台都只掌握真相的一小塊、又只能和附近的鄰居交談,卻要全體敲定同一個共享答案——而且沒有一個上司來一錘定音。設想有十支溫度計散佈在一片田野裡,每支讀到的溫度略有不同,它們卻必須就一個要上報的數字達成一致。難點在於:沒有哪台機器人能一下子看到所有人的讀數,可它們最終又都得握有同一個值。
經典的辦法妙在簡單:每台機器人反覆地把自己的數字,朝著鄰居們此刻所報數值的平均值挪動一點點,然後把更新後的數字共享出去,如此一輪又一輪。一輪接一輪,差距不斷縮小,整個群體便收斂到一個共同的值——而如果每台機器人對各個鄰居的權重都相等,這個值正是大家初始值的平均數。儘管沒有任何一台機器人見過全局畫面,這套辦法依然奏效,因為資訊會一傳一地向外擴散,直到每台機器人實際上都已「聽到」了其他所有機器人的聲音。
共識是多機器人團隊裡的一員主力。它能讓一支車隊就一個會合點、一個共享時鐘、一個共同航向,或就「下一步做什麼」的一次投票達成一致,全程都不需要一個可能會出故障、或成為瓶頸的中央協調者。可難點也實實在在:訊息會丟失,網路可能裂成兩半,機器人會加入也會退出,而一台出故障或「說謊」的機器人,還可能把整個群體拽向錯誤的答案——所以這個領域有很大一部分,研究的正是如何在上述種種出錯之下,依然可靠地達成一致。
一排無人機,每架被告知的高度略有不同,它們不斷把自己的高度與鄰居取平均,直到全體悄悄停在同一個高度上。
與鄰居取平均、再重複——整個群體最終落到同一個數字上。
同樣的思想也支撐著電腦網路和區塊鏈中的共識;在機器人學裡,它通常指就位置、時間或航向這類連續量達成一致。
又稱
另見