基于线性规划的图匹配问题求解示例
题目描述
考虑一个二分图 \(G = (U, V, E)\),其中 \(U = \{u_1, u_2, \dots, u_m\}\) 和 \(V = \{v_1, v_2, \dots, v_n\}\) 是两个不相交的顶点集合,\(E \subseteq U \times V\) 是边集。每条边 \((u_i, v_j)\) 有一个权重 \(w_{ij}\)。图匹配问题要求找到一个匹配(即边集中任意两条边不共享公共顶点),使得匹配中边的权重之和最大。若要求匹配覆盖所有顶点,则成为完美匹配问题。本示例以最大权二分图匹配为例,展示如何通过线性规划建模并求解。
解题过程
1. 问题建模
- 定义决策变量 \(x_{ij} \in \{0, 1\}\),其中 \(x_{ij} = 1\) 表示边 \((u_i, v_j)\) 被选入匹配,否则为 0。
- 目标函数:最大化总权重 \(\sum_{i=1}^m \sum_{j=1}^n w_{ij} x_{ij}\)。
- 约束条件:每个顶点最多与一条边相连。对于 \(U\) 中的每个顶点 \(u_i\),有 \(\sum_{j=1}^n x_{ij} \leq 1\);对于 \(V\) 中的每个顶点 \(v_j\),有 \(\sum_{i=1}^m x_{ij} \leq 1\)。
- 整数规划模型:
\[ \begin{align} \max \quad & \sum_{i,j} w_{ij} x_{ij} \\ \text{s.t.} \quad & \sum_{j=1}^n x_{ij} \leq 1, \quad \forall i = 1,\dots,m \\ & \sum_{i=1}^m x_{ij} \leq 1, \quad \forall j = 1,\dots,n \\ & x_{ij} \in \{0, 1\}, \quad \forall i,j \end{align} \]
2. 线性规划松弛
- 将整数约束 \(x_{ij} \in \{0,1\}\) 松弛为 \(0 \leq x_{ij} \leq 1\),得到线性规划问题:
\[ \begin{align} \max \quad & \sum_{i,j} w_{ij} x_{ij} \\ \text{s.t.} \quad & \sum_{j} x_{ij} \leq 1, \quad \forall i \\ & \sum_{i} x_{ij} \leq 1, \quad \forall j \\ & x_{ij} \geq 0, \quad \forall i,j \end{align} \]
- 注意:约束 \(x_{ij} \leq 1\) 可省略,因为其他约束已隐含此条件。
3. 线性规划的特殊性质
- 该线性规划的约束矩阵是全单模矩阵(所有子方阵的行列式为 0 或 ±1)。
- 全单模性保证线性规划的最优解是整数解(即 \(x_{ij} = 0\) 或 1),因此松弛后的线性规划最优解即为原整数规划的最优解。
- 这一性质使得我们可以直接使用单纯形法等线性规划算法求解,而无需担心分数解。
4. 求解步骤示例
假设有一个二分图:
- \(U = \{u_1, u_2\}, V = \{v_1, v_2, v_3\}\)
- 边权重矩阵 \(w_{ij}\) 为:
\[ \begin{bmatrix} 3 & 2 & 4 \\ 1 & 5 & 2 \end{bmatrix} \]
- 线性规划模型:
\[ \begin{align} \max \quad & 3x_{11} + 2x_{12} + 4x_{13} + 1x_{21} + 5x_{22} + 2x_{23} \\ \text{s.t.} \quad & x_{11} + x_{12} + x_{13} \leq 1 \\ & x_{21} + x_{22} + x_{23} \leq 1 \\ & x_{11} + x_{21} \leq 1 \\ & x_{12} + x_{22} \leq 1 \\ & x_{13} + x_{23} \leq 1 \\ & x_{ij} \geq 0 \end{align} \]
5. 单纯形法求解(简要过程)
- 引入松弛变量 \(s_1, s_2\)(对于 \(U\) 的约束)和 \(t_1, t_2, t_3\)(对于 \(V\) 的约束),构造初始单纯形表。
- 迭代过程:
- 选择最大正系数变量(如 \(x_{22}\),权重 5)进入基变量。
- 通过最小比值测试确定离基变量(约束 \(x_{12} + x_{22} \leq 1\) 和 \(x_{21} + x_{22} + x_{23} \leq 1\) 限制 \(x_{22} \leq 1\))。
- 更新基变量后,目标函数值增加 5。
- 继续选择 \(x_{13}\)(权重 4)进入基变量,最终得到最优解:
\[ x_{13} = 1, \quad x_{22} = 1, \quad \text{其他 } x_{ij} = 0, \quad \text{最优值 } = 4 + 5 = 9. \]
- 验证:匹配边为 \((u_1, v_3)\) 和 \((u_2, v_2)\),权重和 9 为最大值。
6. 一般化与扩展
- 若图不是二分图(如一般图匹配),需使用Edmonds开花算法等专门方法。
- 线性规划方法可扩展至带容量约束的匹配问题(如分配问题中顶点可连接多条边)。
通过以上步骤,线性规划有效解决了最大权二分图匹配问题,全单模性保证了整数解的直接获得。