外部内存直径近似算法中的权衡
在处理稀疏无向无权图的直径近似问题时,我们可以采用不同的算法来实现快速的外部内存近似计算。下面将介绍两种方法,并探讨它们在近似保证和 I/O 需求之间的权衡。
1. 基于 BFS 的近似方法
首先,我们需要确定在图 $G$ 的简化图 $G’ k$ 上进行广度优先搜索(BFS)能否为图 $G$ 的直径提供合理的界限。
- 引理 1 :设 $d_G(u, v)$ 是无向无权图 $G$ 中两个节点 $u$ 和 $v$ 之间最短路径的长度,则有 $\lfloor d_G(u, v)/k \rfloor \leq d {G’ k}(C(u), C(v)) \leq d_G(u, v)$。
- 证明 :设 $P = \langle u = w_1, \ldots, w_l = v \rangle$ 是 $G$ 中的最短路径。由于每个簇 $C(·)$ 最多映射 $G$ 中的 $k$ 个不同顶点,$G’_k$ 中最短路径 $P’_k = \langle C(u), \ldots, C(v) \rangle$ 上的每个节点最多代表 $P$ 中的 $k$ 个原始顶点。而且,映射到同一簇的任意两个顶点 $v_i$ 和 $v_j$ 满足 $d(v_i, v_j) \leq k - 1$,所以 $\lfloor d_G(u, v)/k \rfloor \leq d {G’ k}(C(u), C(v))$。另一方面,$G’_k$ 中 $C(u)$ 和 $C(v)$ 之间的最短路径的顶点数不会多于 $P$,所以 $d {G’ k}
超级会员免费看
订阅专栏 解锁全文
125

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



