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

题描述:

(拜占庭将军问题)假定现在有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进攻,达到了决策保持一致。

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

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值