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

OT:在独立、覆盖和支配的基础上,形成了很多扩展的优化问题,例如最小权完美匹配问题(Minimum-Weight Perfect Matching)、最小连通支配集问题等,请调研至少2种问题(其中至多1种来自上述例子,二分图最大匹配问题等仅限制原始问题输入的问题不在调研范围内),讨论适用场景,形式化描述问题,为每种问题结合例子介绍至少1种算法的设计与分析。

slide

主要内容:

  1. 二分图最大权匹配;
  2. 最小 \(k\)-支配集。

二分图最大权匹配

问题描述

给定二分图 \(G=\langle X\cup Y, E\rangle\) 和权值函数 \(w: E\to \mathbb R\)允许负权)。求匹配 \(I\subseteq E\) 最大化

\[ cost(I)=\sum_{e\in I}w(e). \]

方法 1: 最大费用最大流

在二分图的网络流建模上,为边 \(\langle u, v\rangle, u\in X, v\in Y\) 添加代价 \(w(( u, v))\),为 \(\langle s, u\rangle, u\in X\)\(\langle v, t\rangle, v\in Y\) 添加代价 \(0\)

使用 SSP 求解最大费用的最大流,时间复杂度 \(O(nmf)\),其中 \(f=O(n)\)\(m=O(n^2)\),在稠密的二分图上,最坏是 \(O(n^4)\) 的。

方法 2: KM 算法

KM 算法(Kuhn–Munkres Algorithm)可在 \(O(n^3)\) 时间内解决二分图最大权匹配问题。

一类特殊二分图

在运行 KM 算法之前,假设图 \(G\) 满足以下性质:

  1. \(G\) 是完全二分图。
  2. \(G\) 是平衡二分图。

任意二分图,可以在左部或右部补充顶点满足条件 2.;可以加入 \(0\)\(-\infty\) 的边满足条件 1.。所以该假设是不影响一般性的。

顶标

  • 对于左部任意一点 \(u\in X\),设置顶标 \(lx_u\)
  • 对于右部任意一点 \(v\in Y\),设置顶标 \(ly_v\)

要求:在算法运行的任意时刻,对任意边 \((u, v)\in E, u\in X, v\in Y\)

\[ lx_u+ly_v\ge w((u, v)). \]

相等子图

相等子图 \(G'=\langle V, E'\rangle\) 包含原图中的所有顶点,但仅包含原图中满足

\[ lx_u+ly_v=w((u, v)) \]

的边 \((u, v)\)。可知相等子图由顶标序列决定。

Property 1: 若相等子图存在完美匹配,则该完美匹配的权就是顶标和 \(\sum_{u\in X}lx_u+\sum_{v\in Y}ly_v\).

Property 2: 若相等子图存在完美匹配,则该完美匹配就是原图的最大权完美匹配。

Proof of Property 1:

设完美匹配 \(I\)(恰有 \(|X|=|Y|=n\) 条边)为 \(\lbrace (u_i, v_i): 1\le i\le n\rbrace\),其中 \(\lbrace u_i: 1\le i\le n\rbrace = X\)\(\lbrace v_i: 1\le i\le n\rbrace=Y\) 且互不相同。由相等子图的性质知

\[ cost(I)=\sum_{i=1}^nw((u_i, v_i))=\sum_{i=1}^nlx_{u_i}+ly_{v_i}=\sum_{u\in X}lx_u+\sum_{v\in Y}ly_v. \]

Proof of Property 2:

显然相等子图 \(G'\) 的完美匹配 \(I\) 是原图的完美匹配。对任意原图 \(G\) 的完美匹配 \(I'=\lbrace (u_i', v_i'): 1\le i\le n\rbrace\),有

\[ cost(I')=\sum_{i=1}^nw((u'_i, v'_i))\le \sum_{i=1}^nlx_{u_i}+ly_{v_i}=cost(I). \]

\(I\)\(G\) 的最大权匹配。

算法流程

只需求得具有完美匹配的相等子图即可。

Step 1: 赋予符合条件的初始顶标 \(lx_u\gets\max_{v\in Y}\lbrace w((u, v))\rbrace\)\(ly_v\gets0\)

Step 2: 从一个未匹配点开始在相等子图 \(G'\) 中增广,即只经过 \(lx_u+ly_v=w((u, v))\) 的边 \((u, v)\)

Step 3: 调整顶标,扩大相等子图 \(G'\)。重复 Step 2Step 3 直至 \(G'\) 包含恰 \(n\) 条边。

调整顶标

为了扩大相等子图 \(G'\),在 Step 2 经过的交错树中,让左部点顶标全部减少 \(s\),让右部点顶标全部增加 \(s(s> 0)\)

调整后,对于原图中的所有边,观察它的约束:(记 \(u\)\(\hat u\) 分别为 \(X\) 中在交错树和不在交错树的任意顶点,\(v\)\(\hat v\) 同理)

  • \((u, v)\)\(lx'_u+ly'_v=lx_u-s+ly_v+s=lx_u+ly_v\),约束不变。
  • \((\hat u, \hat v)\)\(lx'_{\hat u}+ly'_{\hat v}=lx_{\hat u}+ly_{\hat v}\),约束不变。
  • \((u, \hat v)\) 要求有 \(lx'_u+ly'_{\hat v}=lx_u-s+ly_{\hat v}\ge w((u, \hat v))\),有 \(s\le lx_u+ly_{\hat v}-w((u, \hat v))\)
  • \((\hat u, v)\)\(lx'_{\hat u}+ly'_v=lx_{\hat u}+ly_v+s\),约束放松。

综上,选择 \[ s=\min_{u\in X, \hat v\in Y}\lbrace lx_u+ly_{\hat v}-w((u, \hat v))\rbrace \]

既可以满足约束,又可以使相应的 \(\hat v\) 加入相等子图。

算法复杂性分析

至多扩增 \(O(n)\) 次相等子图,每次进行增广(BFS)并维护顶标时间为 \(O(n^2)\),总时间复杂度为 \(O(n^3)\)

最小 \(k\)-支配集

问题描述

\(G=\langle V, E\rangle\)\(k\)-支配集是点集的子集 \(D_k\subseteq V\),使得去除 \(V\) 中任意 \(k-1\) 个顶点,剩余顶点或者在 \(D_k\) 中,或者存在邻点在 \(D_k\) 中。

最小支配集是 \(k=1\) 时的该问题的特例。该问题是 NPH 的。

[2] (Foerster, 2013) 中给出了一种近似率为 \(\ln(\Delta+k)+1<\ln(\Delta)+1.7<\ln (n)+1.7\) 的贪心算法。

算法介绍

对于某个 \(D\subseteq V\),定义某个顶点 \(v\in V\)\(k\)-支配集中的 \(d_k(v, D)\)

\[ d_k(v, D)=\begin{cases} \min(k, |N(v)\cap D|), & \text{if } v\notin D;\\ k, & \text{if } v\in D. \end{cases} \]

即表示 “还需在 \(D\) 中补充 \(k- d_k(v, D)\)\(v\) 的邻点才能使得 \(D\)\(v\) 处成为 \(k\)-支配集合法”。

定义剩余代价 \(a(G, D)\)

\[ a(G, D)=\sum_{v\in V}[k-d_k(v, D)]=nk-\sum_{v\in V}d_k(v, D). \]

则贪心算法则是依次迭代一系列 \(D^{(0)}, D^{(1)}, \cdots, D^{(i)}\),每次加入一个顶点,使得 \(a(G, D)\) 下降最快。

Step 1: 令 \(D^{(0)}\gets\varnothing\)\(i\gets 0\)

Step 2:

  • 选择点 \(v\in V\setminus D^{(i)}\) 使得 \(a(G, D^{(i)})-a(G, D^{(i)}\cup \lbrace v\rbrace)\) 最大。
  • \(D^{(i+1)}\gets D^{(i)}\cup \lbrace v\rbrace\)\(i\gets i+1\)

Step 3: 重复 Step 2 直至 \(a(G, D^{(i)})=0\),则此时 \(D_k=D^{(i)}\)\(k\)-支配集。

算法分析

该算法容易以 \(O(n(n+m))\) 时间实现。为了分析近似率,我们使用以下数学结论:

Lemma: 若 \(r\in \mathbb N, r>1\),且 \(b_1, b_2, \cdots, b_s\in \mathbb N\) 满足

\[ b_v\ge \frac{1}{r}(B_s-B_{v-1}), \forall v\in\lbrace 1, 2, \cdots, s\rbrace \]

其中 \(B_k=\sum_{i=1}^kb_i\) 为前缀和。

则有结论 \(B_{\lambda}>B_s-r\),对于

\[ \lambda > \frac{\ln(\frac{B_s}{r})}{\ln(\frac{r}{r-1})}. \]

算法近似率

Theorem: 设 \(r\) 是最小 \(k\)-支配集的代价(即 \(OPT\)),则该贪心算法近似率为

\[ \frac{\ln(\frac{nk}{r})}{r\ln(\frac{r}{r-1})}+1. \]

Corollary 1: 该算法近似率为 \(\ln (\Delta + k)+1\)

Corollary 2: 该算法近似率为 \(\ln(\Delta)+1.7<\ln(n)+1.7\)

Proof for corollary: 用导数易证恒等式

\[ \frac{1}{\ln(\frac{r}{r-1})}\le r(1-\frac{1}{2r}), r\ge 0. \]

\[ \frac{\ln(\frac{nk}{r})}{r\ln(\frac{r}{r-1})}+1\le(1-\frac{1}{2r})\ln(\frac{nk}{r})+1<\ln(\frac{nk}{r})+1 \]

因为 \(D_k\) 中的每个点为 \(a(G, D_k)\)\(nk\) 变化到 \(0\) 至多有 \(\Delta+k\) 的贡献(\(k\) 为自己,\(1\) 为每个邻点),故有

\[ nk\le r(\Delta+k) \Leftrightarrow \frac{nk}{r}\le \Delta+k \]

于是 \(\ln(\frac{nk}{r})+1\le \ln(\Delta+k)+1\) 也为该算法近似率。

\(k>\Delta\),则唯一的 \(k\)-支配集是 \(V\),贪心算法可得到最优解 \(r=|V|\);若考虑 \(k\le \Delta\),有

\[ \ln(\Delta+k)+1\le \ln(2\Delta)+1\le \ln(\Delta)+\ln 2 + 1 < \ln(\Delta)+1.7 \]

也为该算法近似率。

定理的证明

Theorem: 设 \(r\) 是最小 \(k\)-支配集的代价(即 \(OPT\)),则该贪心算法近似率为

\[ \frac{\ln(\frac{nk}{r})}{r\ln(\frac{r}{r-1})}+1. \]

Proof: 设某个最小 \(k\)-支配集为 \(D^*_k\)。在从 \(D^{(i-1)}\) 构造 \(D^{(i)}\) 的过程中,若取 \(D^{(i)}=D^{(i-1)}\cup D^*_k\),则 \(a(G, D^{(i)})=0\)。故在 \(D^*_k\setminus D^{(i-1)}\) 中至少存在一个顶点 \(u^{(i)}\) 使得 \(a\) 下降 \(a(G, D^{(i)})/|D^*_k|=a(G, D^{(i)})/r\)。于是有

\[ a(G, D^{(i)})\le a(G, D^{(i-1)}\cup \lbrace u^{(i)}\rbrace)\le a(G, D^{(i-1)})\left(1-\frac{1}{r}\right) \]

\(B_i=nk-a(G, D^{(i)})\),变形上式有

\[ B_i-B_{i-1}=\frac{1}{r}(nk-B_{i-1}). \]

\(B_s=nk\),则由定理,在

\[ \lambda > \frac{\ln(\frac{B_s}{r})}{\ln(\frac{r}{r-1})}=\frac{\ln(\frac{nk}{r})}{\ln(\frac{r}{r-1})} \] 时有 \(B_{\lambda}>B_s-r\),即 \(a(G, D^{(\lambda)})<r\)。再选至多 \(r-1\) 个点即可使得 \(a(G, D^{(\lambda+r-1)})=0\)

故最终答案可取

\[ |D_k|=\left\lfloor \frac{\ln(\frac{nk}{r})}{\ln(\frac{r}{r-1})}+1\right\rfloor+r-1=\left\lfloor \frac{\ln(\frac{nk}{r})}{\ln(\frac{r}{r-1})}\right\rfloor+r. \]

故近似率

\[ \alpha=\frac{|D_k|}{r}\le \frac{\ln(\frac{nk}{r})}{r\ln(\frac{r}{r-1})}+1 \]

参考资料

[1] https://blog.rijuyuezhu.top/posts/58a68c50/

[2] Foerster, K. T. (2013, January). Approximating fault-tolerant domination in general graphs. In 2013 Proceedings of the Tenth Workshop on Analytic Algorithmics and Combinatorics (ANALCO) (pp. 25-32). Society for Industrial and Applied Mathematics.