高级算法之LP

Rounding Linear Programs

1 Vertex Cover

问题表示

整数线性规划:

解整数线性规划是NP难的.

线性规划的一般形式

matrix $A=\{a_{ij}\}$, sets $M\subseteq [m]$, $N\subseteq [n]$.

规范形:
$m\times n$矩阵$A$,

转化方式:
等于限制变为大于等于和小于等于, 小于等于加负号;
无限制的变量变成两个非负变量之差.
几何解释: 超空间内的凸多面体

Relaxation & Rounding

线性松弛:

线性规划可以在线性时间内解.

近似:
线性规划解$x^*\in [0,1]^V$, 整数规划解$\hat x\in \{0,1\}$.

因为

所以得到的解依然是可行的.
又因为$\hat x_v\le 2x_v^*$, 所以

一般步骤

  • 表示为整数规划
  • 松弛为线性规划
  • 找到线性规划的最优解
  • 近似到可行解
  • 证明离整数规划最优解不远对于点覆盖问题, Integrality Gap为2.

2 MAX-SAT

随机解

一个子句 $C=(l_1\lor l_2\lor \cdots\lor l_k )$, $l_j\in \{x_i,\neg x_i\}$

整数规划

布尔变量$x_1,x_2\cdots,x_n\in \{0,1\}$
$S_j^+:$ set of $i$ that $x_i$ is in $C_j$
$S_j^-:$ set of $i$ that $\neg x_i$ is in $C_j$
$C_j$ is satified <==> $\sum_{i\in S_j^+}x_i +\sum_{i\in S_j^-}(1-x_i)\ge 1$
整数规划:

线性规划松弛:
将$\{0,1\}$改为$[0,1]$.
随机近似:

近似比分析:

两个算法结合

随机解满足$m_1$子句, 随机近似LP松弛满足$m_2$子句, 选择$\max\{m_1,m_2\}$,
分析:

近似比$3/4$(因为$1-2^{-k}$和$1-(1-1/k)^k$中总有一个$\ge 3/4$)