拜占庭将军问题 The Byzantine Generals problem(四)
前两个算法都假定任何两个将军都可通信,两点之间有边。接下来去掉这个前提,将军间的通信可达情形看做简单图G。每一个点代表一个将军,两点之间有连线表示两个将军间的通信可直达。假设G为有限无向图。
接下来 对算法OM(m)和SM(m)进行拓展,G 为全联通图。
首先对算法OM(m)进行拓展,给出以下定义:
定义1.
(a)节点集合{i1 ,…,ip}为节点i的正则邻接集,满足:
(i)每一个*i j*都邻接点 i
(ii)对任意的将军 k (k 和 i 不相等),则有路径 γj,k ,从 ij 到 k 无需通过 i,且任意两条路径 γj,k 除了节点 k 没有共同节点。
(b)图 G 是 p正则的 ,如果每个节点的正则集都有 p 个不同的节点。
如图所示,图六是 3-正则图,每个节点有三个度(三条边)。
图七 不是 3-正则图 ,中间节点有四条边。
拓展的OM(m,p)算法
m个叛徒 ,G 为 3m-正则图。(注意到, 3m-正则图 必至少含有 3m +1 个节点 )。对任意的正整数 m , p 。且将军通信情况构成 p-正则图。通过分析 m 如下:
算法 OM(m,p).
(0)选择司令(commander)的正则邻接集 N (含有 p 个 将领)。
(1) 司令将 信息发送给 集合 N 里的每一个将领。
(2)对每一个 i ∈ N ,令 vi 为 将领 i 收到的从司令发过来的命令,或者没有收到信息则默认为 撤退(RETREAT)。将领 i 按照以下规则将 vi 发送给其他将领 k:
(A) 如果 m = 1 通过路径 γj,k 发送信息,路径存在定义1由(a)(ii)保证.
(B)如果 m > 1 ,则 将领 i扮演司令的角色在OM(m-1,p-1),图由去掉原先的司令构成。
(3)对 每一个 k ,和 i ∈ N , k ≠ i 。令 vi 为将领 k 从 i (i 在第二步(2))) 收到的信息,或者 RETREAT 如果没有收到信息。将领 k 使用 函数值 majority(vi,… ,v ~i p~), N = {i1 ,… , ip }.
接下来证明 在至多 m 个叛徒的情况下 ,OM(m,3m) 解决拜占庭将军问题 (见 一 https://mp.csdn.net/postedit/86614145)。首先对引理1 进行拓展(见 一)。
定理2:
Lemma 2 .对任意的 m >0 和任意的 p ≥ 2k + m ,如果至多有 k 个叛徒 ,算法 OM(m,p)满足条件IC2(见一)。
证明
当 m = 1, 注意到 一个将领获得的值 majority(v1,… ,v p) 中,每一个 vi 的命令发送者是通过不相交的路径发送的信息。且至多有 k 个叛徒. 在 p ≥ 2k + m 的情况下知道 忠诚将军的人数超过半数。当将军是忠诚的情况下,算法保证IC2 从而的证。运用归纳法可得对 m -1, m >1 .引理成立。
继续证明…
定理 3:
Theorem 3. 对任意的 m >0 和对任意的 p ≥ 3m ,在至多 m 叛徒的情况下 ,算法OM(m,p) 解决拜占庭问题。
证明。根据引理2,令 k = m ,可知算法满足IC2,在司令是忠诚的情况下。现在只需要证明司令为叛徒的情况。假设所有忠诚的将领再第三步(3)要获得一致的值 v i 集合.
如果 m = 1,则所有将领都是忠诚的,成立。
如果 m >1 ,简单的归纳 p ≥ 3m 可得 p -1 ≥ 3 (m -1) ,算法成立。
证毕。
算法假设图G 为3-正则 ,是一个条件很强的连通假设。事实上当总共有3m +1人时,3 m-正则意味着全连通,算法OM(m,3m) 可推出 OM(m)。可以看出,拓展算法 SM(m) 只需要更弱的连通条件。
接下来分析多少连通条件能满足拜占庭问题。