什么是拜占庭将军问题?

含义:

简单点说: 拜占庭有 n 个将军,每次命令下发之后,将军之间都会进行信息传递 ,n个将军中会有敌军的叛徒发出误导信息来误导其他将军的判断, 那么忠诚的将军要在什么样的条件下才能达成信息的一致性 ?

推理过程:

这是前提条件 :

		A1. 每个被发送的消息都能够被正确的投递
		A2. 信息接收者知道是谁发送的消息
		A3. 能够知道缺少的消息

假设存在 n 个叛徒 , 那么在什么情况下各个将军可以达到一致性呢?
假设一: 只有一个将军是忠诚的,那么总共有n+1 个将军 (此种情况肯定是行不通的,一个最简单的例子)
举例:一个将军 给 其他将军传递信息 那么传递信息的数量为 n-1 (自己肯定不用给自己传递信息) 如下图:
在这里插入图片描述
假设 二: 那么假设最少有 n+1位将军是忠诚的,是否就可以解决了? 此时:将军总数 为 2n+1
解释: 为什么是 n +1 , 如果 是 n 的话会与假设一的情况重合.
如下图 会出现如下两种情况:
在这里插入图片描述在这里插入图片描述

假设三: 最少有 2n + 1 位将军是忠诚的 那么将军的总人数就是3n + 1

解释: 为什么忠诚的将军人数不是 2n 呢? 如果是 2n 明显 会与 假设二重合.

此种情况会出现如下的情况:

在这里插入图片描述在这里插入图片描述
可以明显的看到第二张图相对于第一张图来说就是换了一个位置而已,问题到此得以解决.

这里或许有的人会对第一张图有所疑问:
如果 正确的信息是进攻,而叛徒(司令官) 发的信息如果是撤退,那么结果肯定是撤退啊
对于此问题我想说的是题目的要求是 忠诚将军之间命令达成一致性,并不考虑错误信息的情况.

总结:

如果有 n叛徒,那么只要忠诚的将军人数 最少2n + 1 , 那么忠诚的将军之间就能达成命令的一致性.

最后:

能力有限,如果有什么写的不对的地方欢迎给我留言!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值