度量空间中树的半径最优扩充算法
1 引言
在图论和算法设计领域,树的半径最优扩充问题(ROAT)是一个重要的研究方向。该问题旨在通过添加一条边来最小化树的半径,从而优化树的结构。本文将详细介绍解决离散和连续 ROAT 问题的算法,包括算法的原理、步骤和复杂度分析。
2 离散 ROAT 问题
2.1 中心位于最长路径上的情况
首先考虑最优扩充树的中心位于树的最长路径 $P = \langle v_1, \ldots, v_m \rangle$ 上的情况。可以在 $O(n)$ 时间内计算出最长路径 $P$,移除 $P$ 中的边后得到一个包含 $m$ 棵树的森林,记以 $v_i$ 为根的树为 $T_i$。
有如下引理:
- 引理 2 :对于树 $T$ 中最长路径 $P$ 上的顶点 $v_i$,存在关于 $v_i$ 的 eat 问题的最优解 $(x, u)$,使得 $x$ 与 $v_i$ 重合,且 $u$ 位于 $P$ 上 $v_i$ 到 $v_l$ 的子路径上,其中 $l = \arg \max_{k \in {1, m}} {d_P(v_i, v_k)}$。
证明过程如下:
- 不妨设 $v_l = v_m$,即 $d_P(v_i, v_m) \geq d_P(v_i, v_1)$。
- 若 $j \leq i$,添加 $(v_i, u)$ 不会减小 $v_i$ 的离心率,因为离心率由 $d_T(v_i, v_m)$ 决定。
- 当 $j > i$ 且 $u$ 不与 $v_j$ 重合时,证明 $(v_i, v_j)$ 至少和 $(v_
超级会员免费看
订阅专栏 解锁全文
793

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



