问题求解(三) Open Topic 8 笔记

OT:最小生成树问题有很多相关问题,例如 Steiner treek-MSTMBST 等,请调研至少 2 种问题(其中至多 1 种来自上述例子,欧氏最小生成树问题等仅限制原始问题输入的问题不在调研范围内),讨论适用场景,形式化描述问题并概述现有解决方案。

Slide

最小直径生成树和最小标签生成树

概述

主要介绍最小直径生成树(Mininum diameter spanning tree, MDST)以及最小标签生成树(Mininum labeling spanning tree, MLST)的相关算法。

MDST 主要参考了文献 [1] (Hassin & Tamir, 1995) 和 [2] (Hakimi, 1964);MLST 主要参考了 [3] (Chang & Shing-Jiuan, 1997)。

MDST

最小直径生成树 - 定义

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). \]

应用场景

适用于各种要最小化单次最大传输距离(即最小化直径)的场景,区别于建设费用对应的 MST 问题。

绝对中心问题(Absolute 1 center problem, A1CP)

  • 图的中心:离心率 \(ecc(u)\) 最小的点 \(u\)。中心的离心率定义为图的半径 \(rad(G)\)

    离心率 \(ecc(u)\) 定义为 \(u\) 到离它最远点的距离,即 \[ ecc(u)=\max_{v\in V}dist(u, v). \]

  • 但是直径不一定是半径的两倍!

  • 图的绝对中心:允许把边拆开,每条边可以认为有无数细分的点。把细分后的图记为 \(G_A=\langle V_A, E\rangle\)。定义图 \(G\)绝对中心即为 \(G_A\) 的中心,\(G\)绝对半径即为 \(G_A\) 的半径。容易发现:
    • \(diam(G_A)=diam(G)\)
    • \(G\) 的直径是绝对半径的两倍

MDST 和 A1CP 等价

Theorem.(MDST 和 A1CP 的等价性)\(G\)绝对中心 \(G^*\) 的一棵最短路径树 \(T^*\)\(G\) 的 MDST。

Proof. 给定 \(G\) 的任意一棵生成树 \(T\),只需证明 \(diam(T^*)\le diam(T)\)。设 \(T\) 的绝对中心是 \(T^*\)

\[ \begin{align*} diam(T^*)=&2 ecc_{T^*}(G^*) & (直径是绝对半径两倍)\\ =&2 ecc_{G_A}(G^*) & (最短路径树)\\ \le &2 ecc_{G_A}(T^*) & (G^* 是 G 的绝对中心)\\ \le &2 ecc_{T}(T^*) & (T 是 G 的子图)\\ =& diam(T) & (T 中直径是绝对半径的两倍) \end{align*} \]

最短路径树可以在 \(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\)-边绝对中心

对边 \(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\) 遍历一遍,可以得到若干的线,取最大值。

容易线性 \(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)\)

MLST

最小标签生成树 - 定义

Def. 最小标签生成树(MLST)问题:给定图 \(G=\langle V, E\rangle\) 和标签函数 \(L: e\to S_L\),寻找 \(G\) 的一棵生成树 \(T\),最小化 \(|L(E(T))|\),即最小化 \(T\) 使用了的标签数量。

应用场景

比如,在信息传递中,边代表传播介质(有光纤、电磁波、电话线、电缆等)。建设成本定义为使用的介质种类,这时最小化成本就是寻找 MLST。

MLST is NP-hard

通过将最小覆盖问题归约到 MLST 的判定版本 BLST,得到 BLST 是 NP-Complete,从而 MLST 是 NP-hard。

Def. 限制标签生成树(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 的。

接下来介绍两种启发式算法和一种基于 A* 的精确算法。

启发式算法 - 1. Edge Replacement Algorithm

算法流程:

  • 任选一棵生成树 \(T\)
  • 尝试每条非树边,判断将这条边替代合法树边得到 \(T'\) 后使用的标签数能否减小,若可以减小则替代。

时间复杂度为 \(O(mn)\)

启发式算法 - 2. Maximum Vertex Covering Algorithm

当图不连通时,在还未选过的标签中,选取加入后连通分支数目减少最多的标签,依次反复,直到图连通。

时间复杂度为 \(O(lmn)\)\(l\) 为标签总数。

精确算法 - A*

将“每次搜索一个新的标签”的搜索算法改造成 A*。

\[ f(x)=g(x)+h(x) \]

  • \(g(x)\) 是已经使用了的标签数量;
  • \(h(x)\) 计算方法是:
    • 首先得到由已选定的标签构成的连通块个数 \(t\)。则还需要 \(need=t-1\) 条边;
    • 然后设还未选过的标签对应的边数由高到低为 \(e_1, e_2, \cdots, e_{l'}\)
    • 设置 \(h(x)\) 为最小的 \(j\) 使得 \(\sum_{i=1}^je_i\ge need\).

可以知道 \(h(x)\) 一定 \(\le\) 真实值 \(h^*(x)\)

参考文献

[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.