[论文阅读报告] Linear-Size Hopsets with Small Hopbound, and Distributed Routing with Low Memory

本篇文章介绍 \(O(n^{1 + 1 / \kappa})\)\((\beta, \epsilon)\)-hopset 做法,相比于 Hopsets with Constant Hopbound, and Applications to Approximate Shortest Paths, FOCS '16,本篇论文去掉了边数中的 \(\log \Lambda\)(或 \(\log n\))。作者将卖点归结为,如果 \(\kappa = \log n\),那么即使 \(\beta\)\(n\) 有关,但边集大小为线性。所以也可以说:本篇文章介绍 \(O(n)\)\((\beta, \epsilon)\)-hopset 做法,其中 \(\beta = O\left(\frac{\log \log n}{\epsilon}\right)^{\log \log n + O(1)}\),相较于之前的线性 hopset 做法,\(\beta\) 有指数级的提升。

这篇论文的做法完全基于原来的做法,只是多了一些观察。不过论文借此采取了完全不同的叙述方式,不用较为复杂的 superclustering-interconnection,而是将其归结为 distance oracles(也就是我所谓的分层度数分治),但正如上一篇论文所说的,两者的思想并无太差的差别。

原来的做法对每个 \(\hat R = 2^{k + 1}\),对距离在 \((\hat R / 2, \hat R]\) 中的路径单独构建了一个 hopset,最后将所有得到的集合取并。这样会导致边集大小乘 \(\log \Lambda\),其中 \(\Lambda\) 表示图的直径,论文最后也给出了将其优化为 \(\log n\) 的方法,但无论如何,这样的做法导致边集大小没法线性。但在上一篇文章中,我们也讨论过每一个 hopset 之间的区别只有 \(\delta_0\) 的取值,而 \(\delta\) 并不会影响边集大小。

观察:如果我们把每一层的 hopset 放在一起看,我们发现他们的重合度非常高。

原算法过程如下

算法 0 (无向带权图 \(O(n^{1 + 1 / \kappa} \log \Lambda)\)\((\beta, \epsilon)\)-hopset)

\(d_G^{(t)}(u, v)\) 表示使用至多 \(t\) 条边时 \(u, v\)\(G\) 中的最短路。

我们对距离在 \((2^k, 2^{k + 1}]\) 中的路径构建一个 hopset \(H_k\)\(1 \leq k \leq \log \Lambda\)。令 \(\hat R = 2^{k + 1}\)。对 \(\hat R \leq \beta\)\(H_k = \emptyset\) 即可,因此我们考虑 \(k > \log \beta - 1\)

Single-scale Hopset Construction

\(\hat {\mathcal P}_i\) 表示第 \(i\) 轮的 cluster,\(\hat {\mathcal P}_0 = \{\{v\} \mid v \in V\}\)。每个 cluster 有一个中心,最开始 \(\{v\}\) 的中心是 \(v\)

\(i_0 = \lfloor \log \kappa \rfloor\)\(\ell = i_0 + 1\) 表示轮数上界。

\(\alpha = \epsilon^\ell \hat R\)。对 \(0 \leq i \leq i_0\),令 \(\delta_i = \alpha(1 / \epsilon)^i + 4R_i, R_{i + 1} = \delta_i + R_i = \alpha(1 / \epsilon)^i + 5R_i\)\(\operatorname{deg}_i = n^{2^i / \kappa}\)

  1. \(0 \leq i \leq i_0\)

    • \(1 / \operatorname{deg}_i\) 的概率从 \(\hat {\mathcal P}_i\) 中独立采样。设选出的 cluster 集合为 \(\mathcal S_i\)
    • (superclustering) 从 \(\mathcal S_i\) 的所有中心 \(\{r_C \mid C \in \mathcal S_i\}\) 同时开始 Dijkstra,限制搜索深度为 \(\delta_i\) 条边。对所有被 \(r_C\) 访问到的中心 \(r_{C'}\)\(C' \in \hat {\mathcal P}_i \setminus \mathcal S_i\)),将 \((r_C, r_{C'})\) 加入 \(H_k\)。将 \(C\) 和所有被其访问到的 \(C'\) 合并为一个新的 cluster \(\hat C\),中心为 \(r_C\)
    • (interconnection) 令所有新的 cluster 集合为 \(\hat {\mathcal S}_i\),未被合并的集合为 \(\hat{\mathcal U}_i\)。对每个 \(\hat{\mathcal U}_i\) 的 cluster 中心 \(r_C\) 单独进行一次 Dijkstra,限制搜索深度为 \(\delta_i / 2\),对所有访问到的中心 \(r_{C'}\)\(C' \in \hat{\mathcal U}_i\)),将 \((r_C, r_{C'})\) 加入 \(H_k\)。令 \(\hat {\mathcal P}_{i + 1} \leftarrow \hat {\mathcal S_i}\)
  2. \(i = \ell\)

    • 对每个 \(\hat{\mathcal P}_{i_0}\) 的 cluster 中心 \(r_C\) 单独进行一次 Dijkstra,限制搜索深度为 \(\delta_\ell / 2\),对所有访问到的 \(r_{C'}\),将 \((r_C, r_{C'})\) 加入 \(H_k\)

\(H = \bigcup_{k} H_k\) 作为最终的边集。

其中,每一次关键点采样的方式是相同的,我们可以将其统一,在一开始先固定每一层的关键点,令 \(V = A_0 \supseteq A_1 \supseteq \ldots \supseteq A_k = \emptyset\)\(A_{i + 1}\)\(A_i\) 的元素以 \(p_i = n^{-2^i \nu}\) 的概率加入得到,其中 \(\nu = 1 / (2^k - 1)\)

那么每一个 \(H_i\) 的每一层 superclustering 都是限制深度的 dijkstra,我们可以对每一层只进行一次不限制深度的 dijkstra,这样所有的边都被包含了。

对于一个点 \(u \in A_j \setminus A_{j + 1}\),令 \(p(u)\) 表示 \(A_{j + 1}\) 中离 \(u\) 最近的点,那么每一个 \(H_i\) interconnection 的效果是,如果 \(d_G(u, p(u)) \leq \delta_{i, j}\),那么不连边,否则将 \(u\) 距离不超过 \(\delta_{i, j}\) 的所有 \(A_j\) 中的点连边,而对于同一个 \(j\)\(\delta_{i, j}\)\(\delta_{i, 0}\) 的线性函数,也即 \(\hat R\) 的线性函数,也就是说,对于相同的 \(u, j\),每个 \(i\) 的连边是向后包含的关系,直至突然某个 \(i^*\) 连边为空。如果 \(\hat R\) 是连续取值的而非每次翻一倍,那么所有连边的并恰好就是 \(\{v \in A_i \mid d(u, v) < d_G(u, p(u))\}\)

\(B(u) = \{v \in A_i \mid d(u, v) < d_G(u, A_{i + 1})\} \cup \{p(u)\}\),则 \(H' = \{(u, v) \mid u \in V, v \in B(u)\}\)\(H\) 的超集,因此是一个 \((\beta, \epsilon)\)-hopset。

\(\mathbb E|H'|\) 的分析与之前的做法是类似的,连边条数是一个关于邻域度数的几何分布,因此大小仍为 \(O(n^{1 + 1 / \kappa}\log \kappa)\),通过调整 \(p_i\) 可以做到 \(O(n^{1 + 1 / \kappa})\)

这里 \(V = A_0 \supseteq A_1 \supseteq \ldots \supseteq A_k = \emptyset\) 以及 \(B(u)\) 就是 distance-oracles 的基本元素。

如果我们就按照 \(\hat R\) 连续取值的思路来重新证明近似比,那么我们可以不用提及 superclustering-interconnection,得到一个更简洁的证明。对 \(x, y\),令 \(\hat R = d_G(x, y)\),考虑将原先定理中的所有 \(\hat R\) 替换。

由于现在每个点都被下一层的关键点访问到了,我们没法用显式的 spanned partition 来描述 \(x, y\) 最短路上的每一个点在哪一层,因此我们采用 OR 的说法,要么 \(d_{H'}(x, y)\) 已经正确,要么最短路上的点还没有匹配到正确的层数。

引理 1 对任意 \(0 < \delta < 1 / (8k)\),任意 \(x, y \in V\)\(0 \leq i \leq k - 1\),两条至少有一条成立:

  1. \(d_{G \cup H}^{(3 / \delta)^i}(x, y) \leq (1 + 8 \delta i) \cdot d(x, y)\)

  2. 存在 \(z \in A_{i + 1}\) 使得 \(d_{G \cup H}^{(3 / \delta)^i}(x, z) \leq 2 d_G(x, y)\)

证明 使用归纳法。当 \(i = 0\) 时,如果 \(x \in A_1\),那么令 \(z = x\) 即可;否则如果 \(y \in B(x)\),那么 \((x, y) \in H\);否则 \(x \in A_0 \setminus A_1, y \notin B(x)\),则有 \(d_G(x, y) \geq d_G(x, p(x))\),令 \(z = p(x)\) 即可。

若对 \(i\) 成立,考虑 \(i + 1\)。将 \(x, y\) 的最短路分为 \(1 / \delta\) 段,每段长度不超过 \(\delta \cdot d_G(x, y)\)(由于 \(\hat R = d_G(x, y)\),按长度划分和按段数划分均可),如果每一段都满足 1. 则将这些路拼在一起即可,否则令 \((u_l, v_l), (u_r, v_r)\) 为最左和最右的不满足 1. 的小段,\(z_l, z_r\) 为对应的 \(A_{i + 1}\) 中的点。

\(z = p(z_l) \in A_{i + 2}\),若 \(z_r \in B(z_l)\),则 \((z_l, z_r) \in H'\)

\[\begin{aligned} d_{G \cup H}^{\left((3 / \delta)^{i + 1}\right)}(x, y) &\leq (1 + 8 \delta i) \cdot (d_G(x, u_l) + d_G(v_r, y)) + d_{G \cup H}^{(3 / \delta)^i}(u_l, z_l) + d_H^{(1)}(z_l, z_r) + d_{G \cup H}^{(3 / \delta)^i}(u_r, z_r)\\ &\leq (1 + 8 \delta i) \cdot d_G(x, y) + 2d_{G \cup H}^{(3 / \delta)^i}(u_l, z_l) + 2d_{G \cup H}^{(3 / \delta)^i}(u_r, z_r) \\ &\leq (1 + 8 \delta i) \cdot d_G(x, y) + 8\delta d_G(x, y) \\ &= (1 + 8\delta(i + 1)) \cdot d_G(x, y) \end{aligned}\]

否则 \(d_G(z_l, z) \leq d_G(z_l, z_r)\)

\[\begin{aligned} d_{G \cup H}^{\left((3 / \delta)^{i + 1}\right)}(x, z) &\leq (1 + 8 \delta i) \cdot d_{G \cup H}^{(1 / \delta - 1) \cdot (3 / \delta)^i}(x, u_l) + d_{G \cup H}^{(3 / \delta)^i}(u_l, z_l) + d_{G \cup H}^{(1)}(z_l, z) \\ &\leq (1 + 8 \delta i) \cdot d_{G \cup H}^{(1 / \delta - 1) \cdot (3 / \delta)^i}(x, u_l) + 2 d_{G \cup H}^{(3 / \delta)^i}(u_l, z_l) + d_G(u_l, v_r) + d_{G \cup H}^{(3 / \delta)^i}(u_r, z_r) \\ &\leq (1 + 8 \delta i) \cdot d_G(x, y) + 6 \delta \cdot d_G(x, y) \\ &\leq 2d_G(x, y)\end{aligned}\]

(对应 \(z_l, z_r\) 是两个 \(A_{i + 1}\) 的 cluster 中心,他们可能已经是 spanned partition 中的,也可能他们被 \(A_{i + 2}\) 的关键点 superclustering 了)

最后由于 \(A_k = \emptyset\),所有的 \(x, y\) 只能是满足 1.,因此令 \(\delta = \epsilon / (8k)\) 即可得到结论。

定理 1 对任意的无向带权图 \(G\)\(k\),存在大小为 \(O(n^{1 + 1 / (2^k - 1)})\) 的对任意的 \(0 < \epsilon < 1\) 都生效的 \((\beta, \epsilon)\)-hopset \(H\),其中 \(\beta = O(k / \epsilon)^k\)

posted @ 2025-05-01 16:25  shiys22  阅读(193)  评论(0)    收藏  举报