黄文睿
221180115 计算机拔尖班
主要介绍最小直径生成树(Mininum diameter spanning tree, MDST)以及最小标签生成树(Mininum labeling spanning tree, MLST)的相关算法。
MDST 主要参考了文献 [1] (Hassin & Tamir, 1995) 和 [2] (Hakimi, 1964);
MLST 主要参考了 [3] (Chang & Shing-Jiuan, 1997)。
Def. 最小直径生成树(MDST)问题:对于非负权无向图 $G=\langle V, E\rangle$,寻找它的一棵生成树 $T^*$,使得对任意 $G$ 的生成树 $T$,有
$$ diam(T^*)\le diam (T) $$
其中 $diam(G')$ 是树 $G'$ 的直径,定义为
$$ \max_{u\in G'}\max_{v\in G'}dist(u, v). $$
图的中心:离心率 $ecc(u)$ 最小的点 $u$。中心的离心率定义为图的半径 $rad(G)$。
离心率 $ecc(u)$ 定义为 $u$ 到离它最远点的距离,即 $$ ecc(u)=\max_{v\in V}dist(u, v). $$
但是直径不一定是半径的两倍!
Theorem.(MDST 和 A1CP 的等价性) 图 $G$ 的绝对中心 $G^*$ 的一棵最短路径树 $T^*$ 是 $G$ 的 MDST。
Proof. 给定 $G$ 的任意一棵生成树 $T$,只需证明 $diam(T^*)\le diam(T)$。设 $T$ 的绝对中心是 $T^*$。
最短路径树可以在 $O(m+n\log n)$ 时间内求出。问题转化为寻找图的绝对中心。
[2] (Hakimi, 1964) 给出了求图的绝对中心的方法。
绝对中心即 $G_A$ 上离心率最小的点 $u\in V_A$,而这样的 $u$ 一定在某条边上。
故可以分别考虑每条边上离心率最小的点 $G^*(e)$,称为 $e$-边绝对中心。最后 $G^*$ 就是 $\arg \min_{G^*(e)}ecc(G^*(e))$。
对边 $e=(u, v)$,考虑离 $u$ 距离为 $x$ 的内点 $p$,它离 $V$ 中每个顶点 $w$ 的最小距离为
$$ dist(p, w)=\min(x+dist(u, w), -x+d_e+dist(v, w)) $$
以 $dist(p, w)$ 和 $x$ 为坐标系,描述了一个函数关系。
把全部的 $w$ 遍历一遍,取最大值得到 $ecc$ 对应的函数。
容易线性 $O(n)$ 得到函数最小值,从而得到 $e$-边绝对中心。
对每条边考虑,得到 $G$ 的绝对中心,时间复杂度 $O(nm)$。
算法瓶颈在于计算 ASAP。总时间复杂度为 $O(nm+n^2\log n)$。
我们可以在 $O(nm+n^2\log n)$ 时间内计算 A1CP,然后用 $O(m+n\log n)$ 时间内求出绝对中心的最短路径树,即最小直径生成树。总时间复杂度为 $O(nm+n^2\log n)$。
Def. 最小标签生成树(MLST)问题:给定图 $G=\langle V, E\rangle$ 和标签函数 $L: e\to S_L$,寻找 $G$ 的一棵生成树 $T$,最小化 $|L(E(T))|$,即最小化 $T$ 使用了的标签数量。
通过将最小覆盖问题归约到 MLST 的判定版本 BLST,得到 BLST 是 NP-Complete,从而 MLST 是 NP-hard。
Def. Bounded 标签生成树(BLST)问题:给定图 $G=\langle V, E\rangle$ 和 上界 $W$,是否存在 $|L(E(T))| \le W$ 的生成树 $T$。
显然 BLST 是 NP 的,只需证明它是 NP-hard,从而是 NP-Complete 的。
Def. 最小覆盖问题:给定集合 $S=\lbrace a_1, a_2, \cdots, a_n\rbrace$ 与上界 $W$,和 $m$ 个 $S$ 的子集 $C_1, C_2, \cdots, C_m\subseteq S$,是否存在 $\le W$ 个 $C_i$ 能够覆盖 $S$。
对于给定的最小覆盖问题 $\langle S, W, C_1, C_2, \cdots, C_m\rangle$,建图如下:
图片来源:[3] (Chang & Shing-Jiuan, 1997)
若存在该图存在 $(W+1)$ BLST,则原问题存在 $W$ 最小覆盖。该归约显然是 poly 的。因为最小覆盖是 NP-Complete 的,故 BLST 也是 NP-Complete 的。从而 MLST 是 NP-hard 的。
Edge Replacement Algorithm:
时间复杂度为 $O(mn)$。
Maximum Vertex Covering Algorithm:
时间复杂度为 $O(lmn)$,$l$ 为标签总数。
将“每次搜索一个新的标签”的搜索算法改造成 A*。
$$ f(x)=g(x)+h(x) $$
可以知道 $h(x)$ 一定 $\le$ 真实值 $h^*(x)$,保证了 A* 的正确性。
[1] Hassin, R., & Tamir, A. (1995). On the minimum diameter spanning tree problem. Information processing letters, 53(2), 109-111.
[2] Hakimi, S. L. (1964). Optimum locations of switching centers and the absolute centers and medians of a graph. Operations research, 12(3), 450-459.
[3] Chang, R. S., & Shing-Jiuan, L. (1997). The minimum labeling spanning trees. Information Processing Letters, 63(5), 277-282.