分布式图算法详解
1. 最大独立集算法
在分布式系统中,有一种算法用于计算最大独立集。当一个进程被添加到该集合时,其所有邻居进程会停止竞争加入该集合,这保证了集合的独立性。而且,由于只有进程的邻居会因该进程加入独立集而被排除在候选之外,所以这个集合是最大的。
为何使用随机数而非初始名称或预计算颜色
在算法的每一轮三元组开始时,每个进程都会关联一个新的随机数。实际上,即使每个进程在每一轮使用其身份标识或合法颜色,算法也能正常工作。那为什么还要使用随机数呢?
使用 n 个不同身份标识(或合法的进程 m - 着色)的算法实例,其所需的轮三元组数量上限为 ⌈n/2⌉ (或 ⌈m/2⌉ )。这是因为在每一轮三元组中,至少有一个进程会进入最大独立集,同时至少有一个进程会被排除。虽然使用随机数不会降低这个上限(因为始终使用初始身份标识对应于特定的随机选择),但在平均情况下能大幅减少轮三元组的数量(期望数量为 O(log2 n) )。
2. 结与环的检测
结和环是在解决分布式计算问题(如死锁检测)时会遇到的图模式,下面将介绍一种用于检测这些图模式的异步分布式算法。
2.1 有向图、结和环的定义
- 有向图 :每条边都从一个顶点指向另一个顶点的图。有向图中的有向路径是一系列顶点
i1, i2, ..., ix,使得对于任意y(
超级会员免费看
订阅专栏 解锁全文
2万+

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



