深度优先遍历与逻辑环构建算法解析
1. 深度优先遍历树的基本特性
深度优先遍历在构建生成树时,若预先定义了根进程,所构建的深度优先生成树不依赖消息的速度,而是取决于每个进程 $p_i$ 选择将深度优先遍历传播到其邻居 $p_k$ 的方式。
从成本角度来看:
- 消息复杂度 :与之前的算法类似,每个 GO() 消息都对应一个 BACK() 消息,并且每条通道在每个方向上最多发送一个 GO() 消息。因此,消息复杂度为 $O(e)$,其中 $e$ 是通信图的通道数量,其上限为 $O(n^2)$。
- 消息大小 :有两种类型的消息, BACK() 消息携带一个二进制值,所以消息大小为 1 或 2 位。
- 时间复杂度 :在任何给定时间,通道上最多只有一个 GO() 或 BACK() 消息在传输,所以时间复杂度与消息复杂度相同,即 $O(e)$。
2. 基本算法的简单改进
为了提高之前分布式深度优先遍历算法的时间复杂度,可以在深度优先遍历首次访问一个进程时添加一个本地信息交换阶段。具体操作如下:
1. 当进程 $p_i$ 首次收到 GO() 消息时,在将深度优先遍历转发给其邻居之前(第 7 行),执行以下操作:
- $p_i$ 向其每个邻居 $p_j$ 发送一个额外的控制消息 VIS
超级会员免费看
订阅专栏 解锁全文
1654

被折叠的 条评论
为什么被折叠?



