拜占庭將軍問題 (Byzantine Generals Problem),是由萊斯利蘭伯特提出的點對點通信中的基本問題。 在分佈式計算上,不同的計算機透過訊息交換,嘗試得到一致的共識;但有些時候,系統上協調計算機 (Coordinator / Commander) 或成員計算機 (Member / Lieutanent) 可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法 (但無法找到一個絕對的答案,只可以用來驗證一個機制的有效程度)。
目录
[隐藏]
* 1 起源
* 2 兩軍問題
* 3 可能的解決辦法
* 4 條件
o 4.1 例子
[编辑] 起源
拜占庭位於現在土耳其的伊斯坦堡,是東羅馬帝國的首都。由於當時拜占庭羅馬帝國國土遼闊,為了防禦目的,因此每個軍隊都分隔很遠,將軍與將軍之間只能靠信差傳消息。 在戰爭的時候,拜占庭軍隊內所有將軍和副官必需達成一致的共識,決定是否有贏的機會才去攻打敵人的陣營。但是,在軍隊內有可能存有叛徒和敵軍的間諜,左右將軍們的決定又擾亂整體軍隊的秩序。在進行共識時,結果並不代表大多數人的意見。這時候,在已知有成員謀反的情況下,其餘忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此形成。
[编辑] 兩軍問題
軍隊與軍隊之間分隔很遠,傳訊息的信差可能在途中路上陣亡,或因軍隊距離,不能在得到消息後即時回覆,發送方也無法確認消息確實丟失的情形,導致不可能達到一致性。在分佈式計算上,試圖在非同步系統和不可靠的通道上達到一致性是不可能的。因此對一致性的研究一般假設信道是可靠的,或不存在非同步系統上而行。
[编辑] 可能的解決辦法
N:計算機總數
F:有問題計算機總數
信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。
[编辑] 條件
在 N ≥ 3F + 1 的情況下一致性是可能解決。
[编辑] 例子
有四部計算機,全部正常。
N = 4,F = 0:
例子 1 得到的信息 結果
計算機A O O O O O
計算機B O O O O O
計算機C O O O O O
計算機D O O O O O
4 ≥ 3(0) + 0 是成立,故能得到一致性。
有四部計算機,其中一部是有問題的。
N = 4,F = 1:
例子 2 (計算機D = X) 得到的信息 結果
計算機A O O O X O
計算機B O O X O O
計算機C O X O O O
計算機D X O O O O
4 ≥ 3(1) + 1 是成立,故仍然能得到一致性。
註:有問題計算機的總數可能在交換訊息時上升:
N = 4,F = 2:
例子 3 (計算機C, D = X) 得到的信息 結果
計算機A O O X X ?
計算機B O X X O ?
計算機C X X O O ?
計算機D X O O X ?
4 ≥ 3(2) + 1 是不成立,故不能得到一致性。
目录
[隐藏]
* 1 起源
* 2 兩軍問題
* 3 可能的解決辦法
* 4 條件
o 4.1 例子
[编辑] 起源
拜占庭位於現在土耳其的伊斯坦堡,是東羅馬帝國的首都。由於當時拜占庭羅馬帝國國土遼闊,為了防禦目的,因此每個軍隊都分隔很遠,將軍與將軍之間只能靠信差傳消息。 在戰爭的時候,拜占庭軍隊內所有將軍和副官必需達成一致的共識,決定是否有贏的機會才去攻打敵人的陣營。但是,在軍隊內有可能存有叛徒和敵軍的間諜,左右將軍們的決定又擾亂整體軍隊的秩序。在進行共識時,結果並不代表大多數人的意見。這時候,在已知有成員謀反的情況下,其餘忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此形成。
[编辑] 兩軍問題
軍隊與軍隊之間分隔很遠,傳訊息的信差可能在途中路上陣亡,或因軍隊距離,不能在得到消息後即時回覆,發送方也無法確認消息確實丟失的情形,導致不可能達到一致性。在分佈式計算上,試圖在非同步系統和不可靠的通道上達到一致性是不可能的。因此對一致性的研究一般假設信道是可靠的,或不存在非同步系統上而行。
[编辑] 可能的解決辦法
N:計算機總數
F:有問題計算機總數
信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。
[编辑] 條件
在 N ≥ 3F + 1 的情況下一致性是可能解決。
[编辑] 例子
有四部計算機,全部正常。
N = 4,F = 0:
例子 1 得到的信息 結果
計算機A O O O O O
計算機B O O O O O
計算機C O O O O O
計算機D O O O O O
4 ≥ 3(0) + 0 是成立,故能得到一致性。
有四部計算機,其中一部是有問題的。
N = 4,F = 1:
例子 2 (計算機D = X) 得到的信息 結果
計算機A O O O X O
計算機B O O X O O
計算機C O X O O O
計算機D X O O O O
4 ≥ 3(1) + 1 是成立,故仍然能得到一致性。
註:有問題計算機的總數可能在交換訊息時上升:
N = 4,F = 2:
例子 3 (計算機C, D = X) 得到的信息 結果
計算機A O O X X ?
計算機B O X X O ?
計算機C X X O O ?
計算機D X O O X ?
4 ≥ 3(2) + 1 是不成立,故不能得到一致性。