基于线性规划的图最大权匹配问题的原始-对偶近似算法求解示例
题目描述
考虑一个无向图 \(G = (V, E)\),每条边 \(e \in E\) 有一个权重 \(w_e \geq 0\)。匹配是边的子集,其中任意两条边不共享公共顶点。目标是找到一个匹配,使得匹配中边的权重之和最大。该问题是NP难问题,但通过线性规划松弛和原始-对偶方法,可设计近似算法。本示例将展示如何利用原始-对偶框架构造一个1/2-近似算法(即解至少是最优值的1/2)。
解题过程
步骤1: 线性规划建模
- 定义变量 \(x_e \in \{0,1\}\) 表示边 \(e\) 是否在匹配中。
- 约束:每个顶点最多与一条匹配边相连,即对每个顶点 \(v\),\(\sum_{e \in \delta(v)} x_e \leq 1\),其中 \(\delta(v)\) 表示与 \(v\) 相连的边集。
- 目标:最大化 \(\sum_{e \in E} w_e x_e\)。
整数规划松弛为线性规划(LP):
\[\begin{align*} \max \quad & \sum_{e \in E} w_e x_e \\ \text{s.t.} \quad & \sum_{e \in \delta(v)} x_e \leq 1, \quad \forall v \in V \\ & x_e \geq 0, \quad \forall e \in E \end{align*} \]
(注:虽然原问题要求 \(x_e \in \{0,1\}\),但LP松弛后最优解可能含分数值,需通过算法处理。)
步骤2: 构造对偶问题
- 对每个顶点约束引入对偶变量 \(y_v \geq 0\)。
- 对偶LP为:
\[\begin{align*} \min \quad & \sum_{v \in V} y_v \\ \text{s.t.} \quad & y_u + y_v \geq w_e, \quad \forall e = (u,v) \in E \\ & y_v \geq 0, \quad \forall v \in V \end{align*} \]
对偶约束要求每条边 \(e\) 的两个端点的对偶变量之和至少为 \(w_e\)。
步骤3: 原始-对偶框架设计
算法核心思想:
- 初始化:所有 \(x_e = 0\),所有 \(y_v = 0\),匹配集 \(M = \emptyset\)。
- 逐步增加对偶变量 \(y_v\)(称为“顶点价格”),直到某些边满足紧约束(即 \(y_u + y_v = w_e\))。
- 将紧边加入候选集,并检查是否可加入匹配 \(M\)(不违反匹配约束)。
- 当所有边被覆盖或无法继续时停止。
步骤4: 算法详细步骤
- 阶段1: 对偶增长
遍历所有边,若边 \(e = (u,v)\) 不满足紧约束(即 \(y_u + y_v < w_e\)),则同时增加 \(y_u\) 和 \(y_v\),直到 \(y_u + y_v = w_e\)。此时将 \(e\) 标记为“紧边”。 - 阶段2: 匹配构造
检查所有紧边:按任意顺序考虑每条紧边 \(e\),若其两端点均未匹配,则将 \(e\) 加入匹配 \(M\)。 - 输出匹配 \(M\) 及其权重和。
步骤5: 示例演示
考虑图:顶点集 \(V = \{1,2,3\}\),边 \(e_1 = (1,2)\) 权重 3,\(e_2 = (2,3)\) 权重 2,\(e_3 = (1,3)\) 权重 2。
- 初始化:\(y_1 = y_2 = y_3 = 0\),\(M = \emptyset\)。
- 对偶增长:
- 边 \(e_1\):\(y_1 + y_2 = 0 < 3\),增加 \(y_1, y_2\) 至 1.5,使和等于 3。
- 边 \(e_2\):\(y_2 + y_3 = 1.5 + 0 = 1.5 < 2\),增加 \(y_2, y_3\) 至 1.5 和 0.5(注:\(y_2\) 已为 1.5,仅增 \(y_3\) 至 0.5,使和等于 2)。
- 边 \(e_3\):\(y_1 + y_3 = 1.5 + 0.5 = 2\),已紧。
- 匹配构造:
- 考虑 \(e_1\):顶点1、2未匹配,将 \(e_1\) 加入 \(M\)。
- \(e_2\):顶点2已匹配,跳过。
- \(e_3\):顶点1已匹配,跳过。
最终 \(M = \{e_1\}\),权重和 = 3。
最优解为 \(\{e_2, e_3\}\) 权重和 4,算法解为最优解的 3/4 > 1/2,满足近似比。
步骤6: 理论保证
- 可行性:算法输出的 \(M\) 是合法匹配(因每次加入边时检查顶点冲突)。
- 近似比:设算法解权重为 \(w(M) = \sum_{e \in M} w_e\)。由紧边条件 \(w_e = y_u + y_v\),有:
\[ w(M) = \sum_{e \in M} (y_u + y_v) \leq \sum_{v \in V} y_v \leq 2 \cdot \sum_{v \in V} y_v^* \]
其中 \(y_v^*\) 是对偶最优解(因每个顶点最多被两条匹配边覆盖)。由弱对偶定理,\(\sum_{v} y_v^*\) 不小于原问题最优值,故 \(w(M) \geq \frac{1}{2} \text{OPT}\)。
总结
通过线性规划对偶理论,将离散优化问题转化为连续松弛,利用原始-对偶方法构造简单高效的近似算法。此方法避免了直接求解整数规划,适用于大规模图的最大权匹配问题。