拜占庭将军问题:七个将军,两个叛徒,五个忠诚。

拜占庭将军问题:七个将军,两个叛徒,五个忠诚。副将 2 确认其余副将消息 V1 A V3 A V4 R V5 A V6 Z 根据 majority A R A R A Z A

题描述:

(拜占庭将军问题)假定现在有7个将军:主将和副将1~6,其中主将和副将6是叛徒,在这种情况下试推导基于口头消息的共识算法OM(2)的执行过程,并说明忠诚的将军如何就“进攻”还是“撤退”达成共识。


口头协议(将军-副官模型)遵循的规则:

(1)忠诚的副官遵循同一命令

(2)若将军是忠诚的,所有忠诚的副官执行他的命令

(3)若将军不是忠诚的,满足所有忠诚的副官的决策的一致性。

(4)设 m:叛徒个数   n:总人数  ,满足 n > 3m,问题有解。


图解:


解答:

        假设每个将军发送的消息是V,其中V1代表消息从主将0发送给副将1。V=A代表进攻,V=R代表撤退,其他为假消息。

        口头协议过程:               

        Step1:主将0第一轮发送消息给所有的副将(OM2):(V1,V2,V3,V4,V5,V6)=(A,R,A,R,A,X)

        Stept2:第二轮(OM1):副将不知道主将0是不是叛徒,向别的副官询问主将0给他们传递的信息。

        ∆ 每个副将收到别的副将的消息反馈是:(其中V2-1代表副将2传递给1的消息)

                L1 -(V2-1,V3-1,V4-1,V5-1,V6-1)= (R,A,R,A,X) ,其中V1=A

                L2 -(V1-2,V3-2,V4-2,V5-2,V6-2)= (A,A,R,A,X) ,其中v2=R

                L3 -(V1-3,V2-3,V4-3,V5-3,V6-3)= (A,R,R,A,X) ,其中V3=A

                L4 -(V1-4,V2-4,V3-4,V5-4,V6-4)= (A,R,A,A,X) ,其中V4=R

                L5 -(V1-5,V2-5,V3-5,V4-5,V6-5)= (A,R,A,R,X) ,其中V5=A

                L6 -(V1-6,V2-6,V3-6,V4-6,V5-6)= (A,R,A,R,A) ,其中V6=X

        

        Step3:第三轮(OM0):各副官不知道其他副官是不是叛徒,向其他副官询问别的副官传的消息是什么。

        ▶副将1确认副将2消息R的真伪:

                ◆询问副将3,副将2=R,

                ◆询问副将4,副将2=R,

                ◆询问副将5,副将2=R,

                ◆询问副将6,副将2=X(叛徒撒谎)

根据majority策略,majority(R,R,R,R,X)=R,副将1确认副将2传来的消息V2=R。

       

         ▶副将1依次确认副将3~副将6的消息:V3=A, V4=R, V5=A, V6=Y;最后副将1决策majority(A,R,A,R,A,Y)=A。

        ▶副将2确认其余副将消息V1=A,V3=A,V4=R,V5=A,V6=Z,根据majority(A,R,A,R,A,Z)=A。

         ▶依次副将3确认其余副将消息后决策为majority(A,R,A,R,A,Q)=A
             副将4确认其余副将消息后决策为majority(A,R,A,R,A,T)=A;
             副将5确认其余副将消息后决策为majority(A,R,A,R,A,N)=A;
             副将6确认其余副将消息后决策为majority(A,R,A,R,A,X)=L;

最后忠诚的副将1,2,3,4,5的决策都是A进攻,达到了决策保持一致。

参考视频:李永乐老师讲解

今天的文章 拜占庭将军问题:七个将军,两个叛徒,五个忠诚。分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-31 22:01
下一篇 2024-12-31 21:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/97557.html