拜占庭将军的问题TheByzantineGeneralsProblem

什么是拜占庭将军问题?(The Byzantine Generals Problem)

拜占庭

由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成

拜占庭将军问题

解决方案

方案一:口头协议

情景:m=1,n=3(出错了)

情景:m=1,n=4(可行)

假设将军G是忠诚的,副官2是叛徒

假设将军G是叛徒,副官1,2,3都是忠诚的。

方案二:书面协议

证明

实例证明:

step1:R1={x:0} R2={y:0} R3={0:0}

step2:k=0;1将 x:0:1 发给2,3;2将 y:0:2 发给1,3;3将 z1:0:3 发给1,将 z2:0:3 发给2。得到:

R1={x:0;y:0:2;z1:0:3} R2={y:0;x:0:1; z2:0:3} R3={0:0;x:0:1;y:0:2}

step3:k=1,k进行下一轮复制。1将 z1:0:3:1发给2,3;2将z2:0:3:2发给1,3。得到:

R1={x:0;y:0:2;z1:0:3; z2:0:3:2} R2={y:0;x:0:1; z1:0:3; z2:0:3:1} k=2算法执行choice函数。
>> Home

51ak

2024/01/05

Categories: 观点 Tags: 原创

《数据库工作笔记》公众号
扫描上面的二维码,关注我的《数据库工作笔记》公众号