基于线性规划的图最小控制集问题的半定规划松弛求解示例
题目描述
考虑一个无向图 \(G = (V, E)\),其中 \(V = \{1, 2, ..., n\}\) 是顶点集,\(E\) 是边集。一个控制集(Dominating Set)是顶点集的一个子集 \(S \subseteq V\),使得图中每个顶点要么在 \(S\) 中,要么至少与 \(S\) 中的一个顶点相邻。图的最小控制集问题要求找到一个顶点数最少(即 \(|S|\) 最小)的控制集。这是一个经典的NP-hard组合优化问题。本题目要求:首先为该问题建立一个整数规划模型,然后利用半定规划松弛技术构造一个松弛模型,并设计舍入算法从松弛解中恢复出一个可行的控制集,最后分析该算法的近似比。
解题过程
我将循序渐进地分步讲解,从建模、松弛到算法设计及分析。
1. 整数规划建模
为每个顶点 \(i \in V\) 引入一个0-1决策变量 \(x_i\):
- \(x_i = 1\) 表示顶点 \(i\) 被选入控制集 \(S\),
- \(x_i = 0\) 表示不被选中。
目标:最小化选中的顶点数,即 \(\sum_{i=1}^n x_i\)。
约束:每个顶点必须被控制,即对任意顶点 \(j \in V\),要么 \(j\) 自身被选中(\(x_j = 1\)),要么至少有一个邻居被选中。形式化地,对每个 \(j \in V\):
\[x_j + \sum_{i \in N(j)} x_i \ge 1 \]
其中 \(N(j)\) 表示顶点 \(j\) 的邻居集合(不包括 \(j\) 自身)。
于是得到整数规划模型:
\[\begin{aligned} \min \quad & \sum_{i=1}^n x_i \\ \text{s.t.} \quad & x_j + \sum_{i \in N(j)} x_i \ge 1, \quad \forall j \in V \\ & x_i \in \{0,1\}, \quad \forall i \in V \end{aligned} \]
由于是NP-hard,直接求解困难,我们转向松弛方法。
2. 半定规划松弛的构造
半定规划是线性规划的推广,允许变量为一个半正定矩阵。我们分两步构造松弛。
步骤1:转化为二次规划
引入向量变量 \(v_i \in \mathbb{R}^{n+1}\),并定义:
\[v_i = \begin{bmatrix} x_i \\ y_i \end{bmatrix}, \quad i=1,\dots,n \]
并增加一个辅助向量 \(v_0 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}\)(固定)。
我们想要满足:
- \(x_i \in \{0,1\}\) 等价于 \(x_i^2 = x_i\)。
- 约束 \(x_j + \sum_{i \in N(j)} x_i \ge 1\) 是线性的,可直接用向量内积表示。
一个技巧是:定义矩阵 \(X = V^\top V\),其中 \(V\) 是以 \(v_0, v_1, \dots, v_n\) 为列的矩阵。则 \(X\) 是 \((n+1) \times (n+1)\) 的对称半正定矩阵,且满足 \(X_{00} = 1\)(因为 \(v_0\) 固定),且对角元 \(X_{ii} = \|v_i\|^2\)。
步骤2:建立半定规划模型
令 \(e_i\) 表示第 \(i\) 个单位向量(维数 \(n+1\),从0开始标号)。则:
- \(x_i = v_0^\top v_i = e_0^\top X e_i\)。
- 约束 \(x_j + \sum_{i \in N(j)} x_i \ge 1\) 可写成:
\[e_0^\top X e_j + \sum_{i \in N(j)} e_0^\top X e_i \ge 1 \]
等价于:
\[e_0^\top X \left( e_j + \sum_{i \in N(j)} e_i \right) \ge 1 \]
定义向量 \(d_j = e_j + \sum_{i \in N(j)} e_i\),则约束为 \(e_0^\top X d_j \ge 1\)。
目标函数为 \(\sum_i x_i = \sum_i e_0^\top X e_i = e_0^\top X \left( \sum_i e_i \right)\)。
另外,我们需要加强条件以保证解的质量。常用技巧是增加约束 \(X_{ii} = X_{0i}\)(因为 \(x_i^2 = x_i\) 在0-1情形成立,松弛为 \(X_{ii} = X_{0i}\))。这样得到半定规划松弛:
\[\begin{aligned} \min \quad & e_0^\top X \left( \sum_{i=1}^n e_i \right) \\ \text{s.t.} \quad & e_0^\top X d_j \ge 1, \quad \forall j \in V \\ & X_{0i} = X_{ii}, \quad \forall i=1,\dots,n \\ & X_{00} = 1 \\ & X \succeq 0 \quad (\text{半正定}) \end{aligned} \]
这是一个凸优化问题,可在多项式时间内求解。
3. 舍入算法设计
设已求得半定规划的最优解 \(X^*\),其秩可能大于1。通过Cholesky分解可得向量 \(v_0, v_1, \dots, v_n \in \mathbb{R}^{n+1}\) 满足 \(X_{ij}^* = v_i^\top v_j\),且 \(v_0\) 固定为 \([1,0,\dots,0]^\top\)。由于 \(X_{0i}^* = X_{ii}^*\),有 \(v_0^\top v_i = \|v_i\|^2\),记 \(x_i^* = v_0^\top v_i = \|v_i\|^2 \in [0,1]\)。
随机舍入算法(基于超平面舍入):
- 随机生成一个单位向量 \(r \in \mathbb{R}^{n+1}\)(服从均匀分布)。
- 对每个顶点 \(i = 1,\dots,n\):
- 若 \(v_0^\top v_i \ge \alpha \, v_i^\top r\) 对某个固定参数 \(\alpha > 0\) 成立,则将 \(i\) 加入控制集 \(S\)。
更常见的一种等价形式是:定义 \(u_i = v_i - \frac{1}{2} v_0\),然后根据 \(r^\top u_i\) 的符号决定。但为简单起见,这里采用一种更直接的舍入:
由于 \(v_0\) 固定,考虑随机超平面法:若 \(\text{sign}(r^\top v_i) = \text{sign}(r^\top v_0)\),则舍入为1,但这样不直接保证控制性质。
改进的舍入策略: - 对每个顶点 \(j\),若其自身或某个邻居满足 \(v_j^\top r \ge \theta\)(\(\theta\) 为阈值),则将该邻居或自身选入。但需调整以保证可行性。
- 若 \(v_0^\top v_i \ge \alpha \, v_i^\top r\) 对某个固定参数 \(\alpha > 0\) 成立,则将 \(i\) 加入控制集 \(S\)。
实践中常用以下简单舍入:
- 随机选取单位向量 \(r\)。
- 计算 \(s_i = v_0^\top v_i + \beta (v_i^\top r)\),其中 \(\beta\) 是缩放参数。
- 选择所有满足 \(s_i \ge t\) 的顶点 \(i\),其中 \(t\) 是阈值。
然后验证控制性质,若不满足,则对未覆盖的顶点直接将其自身加入 \(S\)。
简化确定性舍入(便于分析):
由于 \(v_0^\top v_i = \|v_i\|^2\),且 \(v_0^\top (v_i + \sum_{k \in N(i)} v_k) \ge 1\),可知至少有一个 \(v_j\)(\(j = i\) 或邻居)满足 \(\|v_j\|^2 \ge \frac{1}{\deg(i)+1}\)。
我们可设置阈值 \(\tau = \frac{1}{\Delta+1}\)(\(\Delta\) 为最大度),然后选择所有满足 \(\|v_i\|^2 \ge \tau\) 的顶点 \(i\)。这样可保证控制性质:
对任意顶点 \(j\),若 \(\|v_j\|^2 \ge \tau\),则 \(j\) 自身被选;否则,约束条件 \(v_0^\top v_j + \sum_{k \in N(j)} v_0^\top v_k \ge 1\) 意味着存在邻居 \(k\) 使得 \(\|v_k\|^2 \ge \frac{1}{\deg(j)+1} \ge \tau\),因此该邻居被选。于是得到可行控制集。
4. 近似比分析
设半定规划最优值为 \(\text{SDP}^* = \sum_{i=1}^n \|v_i\|^2\)。算法选择的顶点满足 \(\|v_i\|^2 \ge \tau = \frac{1}{\Delta+1}\)。
控制集大小上界:
对每个被选顶点 \(i\),有 \(\|v_i\|^2 \ge \tau\),所以算法解的大小 \(|S| \le \frac{\sum_{i=1}^n \|v_i\|^2}{\tau} = \text{SDP}^* \cdot (\Delta+1)\)。
由于整数最优解 \(\text{OPT} \ge \text{SDP}^*\)(因为半定规划是松弛),我们得到:
\[|S| \le (\Delta+1) \cdot \text{OPT} \]
即这是一个 \((\Delta+1)\)-近似算法。对一般图,\(\Delta\) 可能很大,但在稀疏图上效果好。
可进一步改进:利用随机舍入和概率分析,可获得 \(O(\log \Delta)\) 的近似比,但推导更复杂,这里略过。
5. 总结
本题目展示了如何将最小控制集问题转化为半定规划松弛,并利用简单的阈值舍入得到可行解。该方法的关键在于利用向量表示和半正定约束捕捉问题的组合结构,从而获得比线性规划松弛更紧的界。虽然近似比依赖最大度,但为NP-hard问题提供了有效的近似方案。