同步网络-SynchGHS算法

1、这个算法分层构造各组件。对于每个k,第k层的各组件构成了一个生成森林,其中k层第一组件都包含一棵树,该树是MST的一个子图。K层的每个组件至少有2^k个节点。在每一层中,每个组件有一个独特的领导者节点。进程允许按一个固定的轮数O(n)来完成每层的工作。

2、算法从0层开始,各组件由单独的节点组成且不包含边。我们归纳地假设k层的各个组件已经确定了(包括它们的领导)。更特别地,假定每个进程都已经知道其组件的领导的领导的UID;这个UID就被用作整个组件的标识符。每个进程也知道它的哪条邻接边在该组件的树中。

3、为了得到K+1层的各个组件,K层的每个组件会沿着其生成树的边搜索组件的MWOE。领导者使用消息广播策略,沿着树的边广播搜索请求。每个进程都在自己的邻接边中找到一条权最小的组件的出向边;它为了完成这个工作,在所有的非树中的边上传递test消息,询问边的另一端点是否属于相同的组件(通过比较组件的标识符来确定)。然后各进程就会把本地最小权边的信息聚播给领导者,途中选择最小的。领导者得到的最小值就是整个组件的MWOE。

4、当K层的各组件都找到它们的MWOE后,这些组件就通过所有的MWOE合并为K+1层的组件。这涉及到K层的每个组件的领导者和与其MWOE相邻的进程通信,告知该相邻进程把这条边标记为属于新树;边的另一端进程也被告知做同样的工作。

5、然后对于K+1层的每个组件,按如下方式产生一个新的领导者。对由每组被合并到K+1层组件中的K层各组件,必定存在一条惟一的边e,e是该组的2个K层组件的共同MWOE,e的2个端点中具有更大UID的端点成为新的领导者。这个新的领导者利用本地可见信息来标识自己。

6、最后,使用广播在新的组件中传播这个新的领导者的UID

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值