零点看书

字:
关灯 护眼
零点看书 > 神的模仿犯 > 第312章 拜占庭容错算法

第312章 拜占庭容错算法

第312章 拜占庭容错算法 (第1/2页)

蔡志远继续解释道:
  
  “比如,现在一共有五名将军,其中两名将军认为应该进攻,而另外两名将军认为应该撤退。
  
  “这时候,第五名将军是个叛徒,他告诉进攻的将军『我也会进攻』,又告诉撤退的将军『我也会撤退』。
  
  “于是,想要进攻的将军认为,现在有三支军队同意进攻,超过了半数,所以明天应该进攻。
  
  “而想要撤退的将军认为明天应该撤退。
  
  “最后的结果,就是两个将军进攻,两个将军撤退,导致战争失败。
  
  “这就是『去中心化』所带来的问题,因为这五个将军都是平级的,没有一个拥有绝对权限的指挥者,所以在互相商量策略的过程中,就会产生这样的问题。”
  
  郑杰恍然点头:“原来如此!那这个办法怎么解决呢?也没办法验证具体是哪个将军在说谎吧?”
  
  蔡志远解释道:“其实要解决这个问题很简单:多问几遍就行了。
  
  “假设我是其中一名将军A,而将军B告诉我他要和我一起进攻。
  
  “如果我信了,那就有可能会被骗,因为将军B有可能是叛徒,他可能只跟我说了进攻,跟别人说了撤退。
  
  “所以,这时候我应该再去问将军C,我问他:‘将军B跟你说的是进攻还是撤退?’
  
  “然后我再去挨个问其他所有的将军,汇总将军B给他们说的所有信息。
  
  “其他将军告诉我的『将军B给他们的信息』也不一定真实,因为其他将军里面可能也有叛徒,可能存在『将军B跟他们说进攻,他们却告诉我将军B说了撤退』这种情况。
  
  “所以,我挨个问一遍『将军B对你们说了什么』,如果『进攻』比较多,那我就把将军B的意见记为『进攻』;
  
  “然后再挨个问一遍『将军C对你们说了什么』,如果『撤退』比较多,那我就把将军C的意见记为『撤退』。
  
  “就这样,我通过反复套娃的方式,不断地排除少数派答案,最后得出的结论,就是更准确的『多数派答案』。
  
  “在满足『拜占庭容错』的情况下,我们强制要求所有将军都遵守这一套策略,并且必须坚决执行最终的结论。
  
  “那我们就可以确保大家一起进攻或者一起撤退。”
  
  郑杰有些困惑:“在满足『拜占庭容错』的情况下?也就是蔡哥你之前说过的,叛徒人数必须少于三分之一?”
  
  蔡志远点了点头:“是的。
  
  “我们用3名将军的情况来举个例子:
  
  “假设3名将军里面,将军C是叛徒,故意传递错误的信息。
  
  “将军A会首先向将军B和C说『进攻』。
  
  “但是将军B接到命令之后无法确认将军A是不是叛徒,所以他要先问将军C,『将军A给你的命令是什么』,而将军C是叛徒,所以会故意说『将军A给我的命令是撤退』。
  
  “因为只有三个将军,所以将军B就无法判断将军A和将军C到底哪个是叛徒,因为『进攻』和『撤退』的命令各一票,无法形成多数。
  
  “同理,将军B在执行这个策略的时候,也没法判断将军A和将军C哪个是叛徒。
  
  “这是最简单的一种情况,如果将军的数量变多,比如同时有7个将军,其中有2个是叛徒的话,情况会变得复杂很多,要套娃很多次才能最终得到结论。
  
  “所以我才说,这种问题不需要自己真的推算,只要记住结论就行了。
  
  “结论就是,当叛徒人数达到三分之一或者更多时,这个问题就不可解。
  
  “反过来说,想要让这个问题可解,就要把叛徒人数控制在少于三分之一的情况。
  
  “套一下三个房间的人数,就一目了然了。
  
  “『4人房间』,3人答题,所以只要有1名恶意自由人,这个问题就不可解。
  
  “『8人房间』,7人答题,在房间中有3名恶意自由人的情况下,不可解。
  
  

(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』
热门推荐
在木叶打造虫群科技树 情圣结局后我穿越了 修神外传仙界篇 韩娱之崛起 穿越者纵横动漫世界 不死武皇 妖龙古帝 残魄御天 宠妃难为:皇上,娘娘今晚不侍寝 杀手弃妃毒逆天