Last updated on May 20, 2025 am
本文为SJTU-AI2615算法课程的知识点复习,主要复习内容为线性规划概述、LP对偶、LP松弛。
线性规划基础
标准型
maximizesubject toc1x1+c2x2+⋯+cnxna11x1+a12x2+⋯+a1nxn≤b1a21x1+a22x2+⋯+a2nxn≤b2⋮am1x1+am2x2+⋯+amnxn≤bmx1,x2,…,xn≥0
关键特征
- 可行域是凸集
- 局部最大值一定是全局最大值
- 最优解存在且出现在可行域的顶点处
化标准型

单纯形法
算法步骤
- 选择初始顶点:任意可行顶点
- 迭代移动:沿边移动到相邻顶点,要求目标函数值增加
- 终止条件:无法找到更优的相邻顶点时停止
时间复杂度
- 最坏情况:(mn) (m 个约束,n 个变量),指数级
- 但实际效率高
最大流问题
- 可建模为 LP 问题
- Ford-Fulkerson 算法本质是单纯形法的实现
LP 对偶
对偶问题构造
原始问题:
maximizesubject tocTxAx≤bx≥0
对偶问题:
minimizesubject tobTyATy≥cy≥0
对偶定理
- 弱对偶定理:对偶问题的目标值始终 ≥ 原始问题的目标值
- 强对偶定理:若两者均有可行解,则最优目标值相等
LP 松弛
整数规划(Integer Programming)
要求变量为整数:
maximizesubject tocTxAx≤bx≤0x∈Zn
- 即使对于 xi∈{0,1},整数规划也是 NP 完全问题
LP 松弛策略
- 松弛变量:将 xi∈{0,1} 松弛为 0≤xi≤1
- 求解 LP:通过求解 LP 获得分数解
- 舍入策略:将分数解转换为整数解
顶点覆盖问题
LP 松弛策略
minimizesubject tov∈V∑xvxu+xv≥1xv∈{0,1}∀(u,v)∈E∀v∈V
- 将 xv∈{0,1} 松弛为 0≤xv≤1
- 对解 {xv∗}v∈V 舍入:解 S={v∣xv∗≥21}
解的质量
- 可行:对每条边 (u,v)∈E,有 xu∗+xv∗≥1,从而 xu∗≥21 或 xv∗≥21,即至少有一个点被选中
- 2-近似:∣S∣≤2OPT(LP)≤2OPT(IP)
Primal Dual 分析
顶点覆盖问题
minimizesubject tov∈V∑xvxu+xv≥1xv≥0∀(u,v)∈E∀v∈V
minimizesubject toe∈E∑yev∈N(u)∑y(u,v)≤1y(u,v)≥0∀u∈V∀(u,v)∈E
注意到,顶点覆盖问题的对偶问题是最大匹配问题
二分图匹配的贪心算法
- 策略:按任意顺序将 B 中的点与未被匹配的邻居匹配
- 2-近似:对 OPT 中的任意一条边,至少有一个端点被匹配
2-近似的 Primal Dual 证明
- 同时维护一个 Dual 的解:每选中一条边,即 y(u,v)=1,分摊到顶点 xu=0.5,xv=0.5,从而有 ∑uxu=∑eye=ALG
- 由于 ∀(u,v)∈E,xu+xv≥0.5,
2⋅ALG=2⋅v∑xv≥OPT(Dual)≥OPT(Primal)≥OPT(Matching IP)
在线二分图匹配的 Ranking 算法(分数版本)