拜占庭将军问题
一、拜占庭将军问题
这个问题提示计算机大神 莱斯利·兰波特在1982年在他论文中描述的一个问题。问题的大概的描述是这样,一组拜占庭的将军去攻打一个城堡。由于条件限制这些将军不能集合在一起攻打城堡,但是为了能攻下城堡,他们通过信使来传递相互之间的关系。他们规定当指定进攻决策的时候只有半数以上的将军同意这个进攻方案,那么这个方案就可以通过。当他们之间可能存在内奸发出错误消息误导其他将军的判断。
二、拜占庭将军需要解决的问题
- 理想情况:
- 假如是三只军队去攻打这个城堡,分别是
A
、B
、C
。在计算攻打城堡的前一天,他们根据各自的实际情况角色是否攻打城堡。假如A
将军分别向B
、C
传达了他这儿是可以进攻的,将军B
也根据他所在驻地的实际情况得到结论可以进攻于是分别向A
、C
传输了经过的命令,但是C
这儿情况比较特殊是不能进攻于是C
向A
、B
传达了不能静的命令。最终的结果是A的进攻:不进攻 = 2:1,B的最终结果是进攻:不进攻 = 2:1,C的最终的结果是进攻:不进攻 = 2:1
。根据当初的预定由于半数同意进攻这个城堡,那么他们同意的进攻城堡最终攻下城堡。