Pipage Rounding 学习笔记

Pipage Rounding 学习笔记

Author: Sijin Yu

本文基本只作简单的翻译工作. 未经作者授权不得转载.

1. Linear Programming (线性规划)

线性规划可以表示为

min ⁡     c ⋅ x subject to    A x ≥ b \begin{align*} \min ~~~& c\cdot x\\ \text{subject to }~~& Ax\geq b \end{align*} min   subject to   cxAxb

其中, n n n 为变量个数 ( x x x 的维度), m m m 为非平凡约束的个数.
则:

  • A A A ( m + n ) (m+n) (m+n) 行和 n n n 列, 且 rank ( A ) = n \text{rank}(A)=n rank(A)=n.
  • B x = b B Bx=b_B Bx=bB, 其中 rank ( B ) = n \text{rank}(B)=n rank(B)=n, B B B A A A 的子阵, b B b_B bB b b b 中对应的元素.

1.1 基本定义

min ⁡     c ⋅ x subject to    A x ≥ b \begin{align*} \min ~~~& c\cdot x\\ \text{subject to }~~& Ax\geq b \end{align*} min   subject to   cxAxb

  • : A A A n n n 列向量组成的线性无关的可逆矩阵 (就是 B B B).

  • 基向量: 基 B B B 中任意一个列向量.

  • 基本解: B x = b B Bx=b_B Bx=bB 的解.

  • 可行解: 在多面体 A x ≥ b Ax\geq b Axb 中的解.

  • 基本可行解: 同时是基本解和可行解的解.

1.2 基本定理

  • 对每个 LP 问题, 都存在一个最优解是基本可行解.

x x x 为一个基本可行解, 令 supp ( x ) : = { i : x i > 0 } \text{supp}(x):=\{i:x_i>0\} supp(x):={i:xi>0}.

  • 对每个 LP 问题, 都存在一个最优解, 使至少 supp ( x ) \text{supp}(x) supp(x) 个线性无关的的非平凡约束取等号.

定理: 对于一个凸集 k k k 与凸集外一点 x x x, 总存在超平面使得 k k k x x x 分居两侧.

Separation Oracle: 给定一个点 x x x, 其关于凸集合 k k k 的 separation oracle 为: 要么说明 x ∈ k x\in k xk, 要么返回一个分割 x x x k k k 的超平面.

  • 如果 m = ploy(n) m=\text{ploy(n)} m=ploy(n), 则存在多项式时间的 Separation Oracle 算法.


该图直观解释了: 总存在一个最优解是基本可行解.

1.3 椭球算法

椭球算法是一个在多项式时间内解决线性规划问题的算法.

算法步骤:

Step 1 猜想一个可能的 M M M, 判断 c ⋅ x ≤ M c \cdot x\leq M cxM 和约束 A x ≥ b Ax\geq b Axb 是否满足.

  • 若满足: 降低 M M M 值, 重新执行 Step 1.
  • 若不满足: 得到分割超平面, 并提高 M M M 至超平面另一侧.

经过有限次迭代, M M M 趋于取最优解时 c ⋅ x c\cdot x cx 的值.

Step 1 的判断本质上是将 c ⋅ x ≤ M c\cdot x\leq M cxM 放入约束中, 并针对 x x x 和新约束对应的多面体执行 Separation Oracle 算法.

总结 of 1. Linear Programming (线性规划)

  • 线性规划为: 在一个超多面体内寻找一个点, 使一个线性的函数取得最小值.
  • 总存在一个最优解, 是基本可行解.
  • 一个最优的基本可行解可在多项式时间内被找到.

2. Pipage Rounding

背景:

当线性规划的解只能取整数解时, 即原 LP 问题变为:
min ⁡     c ⋅ x subject to    A x ≥ b x j ∈ N , ∀ j ∈ [ n ] \begin{align*} \min ~~~& c\cdot x\\ \text{subject to }~~& Ax\geq b\\ & x_j \in \mathbb{N}, \forall j\in[n] \end{align*} min   subject to   cxAxbxjN,j[n]
则, 从线性规划变为整数规划, 问题从多项式变为 NP-hard.

2.1 Linear Relaxations (线性松弛)

现在考虑 0-1 规划问题, 即 x j ∈ { 0 , 1 } , ∀ j ∈ [ n ] x_j \in \{0,1\}, \forall j\in[n] xj{0,1},j[n].

线性松弛: 将整数约束 x j ∈ { 0 , 1 } x_j \in \{0,1\} xj{0,1} 用分数约束 0 ≤ x j ≤ 1 0\leq x_j \leq1 0xj1 替代, 在多项式时间内可解得分数约束下的最优解. 然后使用 pipage rounding 将分数下的最优解 “round” 到整数下, 可以证明这样的解是一个近似最优.

2.2 Pipage Rounding

P \mathcal{P} P 为一 n n n 维多面体. 一个 0-1 规划问题为:
max ⁡ { F ( x ) :     x ∈ P ∩ { 0 , 1 } n } \max\{F(x): ~~~x\in\mathcal{P}\cap\{0,1\}^n\} max{F(x):   xP{0,1}n}
其中, F ( x ) F(x) F(x) 为目标函数, P \mathcal P P 为约束条件.

假设:

  1. 对所有非整数的 x ∈ P x\in\mathcal P xP, 总是存在一个向量 v x v_x vx 与两个标量 α x , β x > 0 \alpha_x, \beta_x>0 αx,βx>0, 使得:
    x + α x v x x+\alpha_x v_x x+αxvx x − β x v x x-\beta_x v_x xβxvx 比起 x x x 都有严格更大数量的整数坐标.
  2. F ( x ) F(x) F(x) v x v_x vx 方向上是凸函数.

则, 存在 pipage rounding 的方法,使: 给定任意的分数向量 x ∈ P x\in\mathcal P xP, 总能找到整数向量 x int ∈ P x^{\text{int}}\in\mathcal P xintP, 使得 F ( x int ) ≥ F ( x ) F(x^{\text{int}})\geq F(x) F(xint)F(x) 成立.

Pipage Rounding 的一个例子

  • P : = { x ∈ [ 0 , 1 ] n : ∑ j = 1 n x j = k } \mathcal P:=\{x\in[0,1]^n: \sum_{j=1}^n x_j=k\} P:={x[0,1]n:j=1nxj=k}.

  • 假设 x x x P \mathcal P P 中的非整数向量, 则至少存在两个分数坐标, 记为 x p x_p xp x q x_q xq.

  • e p e_p ep e q e_q eq x p x_p xp x q x_q xq 分量方向上的单位向量. 即 e p e_p ep 在第 p p p 个坐标为 1 1 1, 其它坐标为 0 0 0, e q e_q eq 同理.

  • v x = e p − e q v_x=e_p-e_q vx=epeq, 令 α x = min ⁡ ( 1 − x p , x q ) \alpha_x=\min(1-x_p,x_q) αx=min(1xp,xq), 令 β x = min ⁡ ( 1 − x q , x p ) \beta_x=\min(1-x_q,x_p) βx=min(1xq,xp).

x + α x v x x+\alpha_x v_x x+αxvx x − β x v x x-\beta_x v_x xβxvx 总是能在第 p p p q q q 分量上取整数, 且由于 F ( x ) F(x) F(x) v x v_x vx 是凸的, 则必有 F ( x + α x v x ) ≥ F ( x ) F(x+\alpha_x v_x)\geq F(x) F(x+αxvx)F(x) F ( x − β x v x ) ≥ F ( x ) F(x-\beta_x v_x)\geq F(x) F(xβxvx)F(x) 成立.

满足上假设时, 存在 Pipage Rounding 的算法, 将一个线性规划的最优解转化为整数规划的近似最优解 (在 Pipage Rouning 下整数规划也是最优解).

若 Pipage Rounding 是可应用的, 必然存在: P \mathcal P P 是整数的多面体.

2.3 在拟阵约束下最大化单调次模函数

定义

对于集函数 f : 2 U → Z ≥ 0 f:2^U\to \mathbb Z_{\geq 0} f:2UZ0 而言:

  • 次模 (submodular): (子模) f f f 是次模的, 若 ∀ A , B ⊆ U \forall A,B \subseteq U A,BU, 总有 f ( A ) + f ( B ) ≥ f ( A ∪ B ) + f ( A ∩ B ) f(A)+f(B)\geq f(A\cup B)+f(A\cap B) f(A)+f(B)f(AB)+f(AB).

  • 单调 (monotone): f f f 是单调的, 若 ∀ A ⊆ B \forall A\subseteq B AB, 总有 f ( A ) ≤ f ( B ) f(A)\leq f(B) f(A)f(B).

定义

  • 拟阵 (matroid): M : = ( U , I ) M:=(U, \mathcal I) M:=(U,I) 为拟阵, 若其满足:
    1. B ∈ I B\in \mathcal I BI A ⊆ B A\subseteq B AB, 则 A ∈ I A\in \mathcal I AI,
    2. ∀ A , B ∈ I , ∣ A ∣ < ∣ B ∣ \forall A,B\in\mathcal I,|A|<|B| A,BI,A<B 总存在一个 i ∈ B i\in B iB 使得 A ∪ { i } ∈ I A \cup \{i\}\in \mathcal I A{i}I.

I \mathcal I I 被称为独立集 (independent sets).

  • 基 (base): T T T 是拟阵 M M M 的基, 若 T ∈ I T\in\mathcal I TI I \mathcal I I 中没有势大于 ∣ T ∣ |T| T 的独立集.

  • 凸包 (convex hull): 给定一个集合 X X X, 所有包含 X X X 的凸集的交集 S S S 称为 X X X 的凸包.

X X X 的凸包可以用 X X X 内所有点的凸组合来构造. 在二维欧式空间中, 一些点的凸包可以想象为将它们刚好包围起来的多边形(顶点为这些点构成)的内部所有点.

定义

  • 特征向量 (characteristic vector): 给定一个集合 S ∈ I S\in\mathcal I SI, S S S 的特征向量为一个 { 0 , 1 } n \{0,1\}^n {0,1}n 内的向量, 其第 i i i 个分量为 1 1 1 i ∈ S i\in S iS.

  • 秩 (rank): 给定一个集合 S ⊆ U S\subseteq U SU, S S S 的秩 r M ( S ) r_M(S) rM(S) S S S 的最大独立子集的势.

  • 拟阵多面体 (matroid polytope): 拟阵多面体 P \mathcal P P 被定义为:

    P : = { x ∈ [ 0 , 1 ] n :     ∑ i ∈ S x i ≤ r M ( S ) , ∀ S ⊆ [ n ] } . \mathcal P:=\{x\in[0,1]^n:~~~\sum_{i\in S}x_i\leq r_M(S),\forall S\subseteq[n]\}. P:={x[0,1]n:   iSxirM(S),S[n]}.

最大生成树

可被抽象为最大生成树问题的拟阵为可图拟阵 (graphic matroid).

G = ( V , E ) G=(V,E) G=(V,E) 为简单图, 拟阵 M : = ( E , I ) M:=(E,\mathcal I) M:=(E,I), 其中 I \mathcal I I G G G 的全体无圈子图. 拟阵 M M M 的一个基 T T T 表示图 G G G 的一个最大生成树. 其中次模函数 f f f f ( S ) = ∣ S ∣ f(S)=|S| f(S)=S. 给定一个边集 S ⊆ E S\subseteq E SE, S S S 的秩 r M ( S ) r_M(S) rM(S) S S S 中最大无圈子图的边数.

则拟阵多面体为 P : = { x ∈ [ 0 , 1 ] ∣ E ∣ :     ∑ i ∈ S x i ≤ r M ( S ) , ∀ S ⊆ 2 E } \mathcal P:=\{x\in[0,1]^{|E|}:~~~\sum_{i\in S}x_i\leq r_M(S),\forall S\subseteq 2^E\} P:={x[0,1]E:   iSxirM(S),S2E}.

目标函数为 max ⁡ f ( x ) = ∑ i x i \max f(x)=\sum_{i}x_i maxf(x)=ixi.

次模函数到连续非线性函数

给定次模函数 f f f, 定义 F : [ 0 , 1 ] n → R ≥ 0 F:[0,1]^n\to\mathbb{R}_{\geq 0} F:[0,1]nR0 如下:
F ( x 1 , . . . , x n ) : = ∑ S ⊆ [ n ] ( f ( S ) ∏ i ∈ S x i ∏ i ∉ S ( 1 − x i ) ) F(x_1,...,x_n):=\sum_{S\subseteq[n]}\left(f(S)\prod_{i\in S}x_i\prod_{i\notin S}(1-x_i)\right) F(x1,...,xn):=S[n] f(S)iSxii/S(1xi)
且:

  • f f f 是单调的, 因此 ∂ F ∂ x i ≥ 0 , ∀ i , ∀ x \frac{\partial F}{\partial x_i}\geq0,\forall i,\forall x xiF0,i,x.
  • f f f 是次模的, 因此 ∂ 2 F ∂ x i ∂ x j ≥ 0 , ∀ i ≠ j , ∀ x \frac{\partial^2 F}{\partial x_i \partial x_j}\geq0,\forall i\ne j,\forall x xixj2F0,i=j,x.

F ( x 1 , . . . , x n ) F(x_1,...,x_n) F(x1,...,xn) 可以看作是 f ( S ) f(S) f(S) 的期望值, 其中 S S S 由对各元素 i i i 以独立的概率 x i x_i xi 采样获得.

F ( x 1 , . . . , x n ) F(x_1,...,x_n) F(x1,...,xn) 满足上述要求, 且 ∇ F \nabla F F 可知, 则有:

若给定向量 v ∈ P v\in\mathcal P vP 与各分量权重 w j w_j wj, max ⁡ ∑ j w j v j \max\sum_{j}w_j v_j maxjwjvj 可在多项式时间内被找到, 则对于优化问题 max ⁡ F ( x ) : x ∈ P \max F(x):x\in \mathcal P maxF(x):xP, 存在一个随机的 1 − 1 e 1-\frac{1}{e} 1e1 近似算法.


3. Matching (匹配)

匹配

一个图 G = ( V , E ) G=(V,E) G=(V,E)匹配 (matching) 是一个边的集合, 其中任意两条边没有公共顶点.

整数匹配问题 (Integral Matching Problem)

f ( e ) = 1 f(e)=1 f(e)=1, 若 e e e 在匹配中; 否则 f ( e ) = 0 f(e)=0 f(e)=0.

整数匹配问题目标函数是 max ⁡ ∑ e ∈ E f ( e ) \max \sum_{e\in E} f(e) maxeEf(e).

约束条件是 ∀ v ∈ V , ∑ e ∋ v f ( e ) ≤ 1 , f ( e ) ∈ { 0 , 1 } \forall v\in V,\sum_{e\ni v}f(e)\leq 1, f(e)\in\{0,1\} vV,evf(e)1,f(e){0,1}.

整数匹配的多项式时间求解

匈牙利算法可在多项式时间内求解整数匹配问题.

3.1 分数匹配

在分数匹配中, 将整数匹配的 f ( e ) ∈ { 0 , 1 } f(e)\in\{0,1\} f(e){0,1} 整数限制改为分数限制 f ( e ) ∈ [ 0 , 1 ] f(e)\in[0,1] f(e)[0,1].

分数匹配问题 (Fractional Matching Problem)

给定一个图 G = ( V , E ) G=(V,E) G=(V,E), 分数函数 f : E → [ 0 , 1 ] f:E\to [0,1] f:E[0,1], 且对于每个 v ∈ V v\in V vV, 以 v v v 为顶点的各边分数之和至多为 1 1 1.

分数匹配的目标函数是 max ⁡ ∑ e ∈ E f ( e ) \max \sum_{e\in E} f(e) maxeEf(e).

约束条件是 ∀ v ∈ V , ∑ e ∋ v f ( e ) ≤ 1 , f ( e ) ∈ [ 0 , 1 ] \forall v\in V,\sum_{e\ni v}f(e)\leq 1, f(e)\in[0,1] vV,evf(e)1,f(e)[0,1].

  • 分数匹配是 NP-hard 问题.

3.2 Pipage Rounding Method

x ( e ) = f ( e ) x(e)=f(e) x(e)=f(e), 拟阵多面体为 P : = { x ∈ [ 0 , 1 ] ∣ E ∣ :     ∑ e ∋ v x ( e ) ≤ 1 , ∀ v ∈ V , ∀ e ∈ E } \mathcal P:=\{x\in[0,1]^{|E|}:~~~\sum_{e\ni v}x(e)\leq1,\forall v\in V,\forall e\in E\} P:={x[0,1]E:   evx(e)1,vV,eE}. 拟阵的一个基为 T T T.

目标: 给定一个分数点 x x x, 将其 round 到一个基 T T T 上.

定义

tight: 一个集合 S ⊆ E S\subseteq E SE 关于分数点 x x x 是 tight 的, 若 x ( S ) = r M ( S ) x(S)=r_M(S) x(S)=rM(S).

定理

若两个有交集的集合 S , T ⊆ E S,T\subseteq E S,TE 关于 x x x 都是 tight 的, 则 S ∩ T , S ∪ T S\cap T,S\cup T ST,ST 都是 tight 的.

Pipage Rounding 算法

Step 1: 给定非整数点 x x x, 选择一个尽量小的 tight 的集合 T T T. 注意, x x x 至少有两个非整数点 0 < x ( e ) < 1 , 0 < x ( f ) < 1 0<x(e)<1,0<x(f)<1 0<x(e)<1,0<x(f)<1.

Step 2: 过点 x x x 画一条直线, 记往 x ( e ) x(e) x(e) 递增方向为 + 1 +1 +1, 往 x ( f ) x(f) x(f) 递增方向为 − 1 -1 1. 保持 x ( e ) + x ( f ) x(e)+x(f) x(e)+x(f) 不变, 随机地在该直线上移动, 直到碰到多面体的表面.

x 1 x_1 x1 x 2 x_2 x2 分别为直线在 + 1 +1 +1 − 1 -1 1 方向上与拟阵多面体的交点, 我们以概率 p p p x x x 到达 x 1 x_1 x1, 以概率 1 − p 1-p 1p x x x 到达 x 2 x_2 x2. p p p p x 1 + ( 1 − p ) x 2 = x px_1+(1-p)x_2=x px1+(1p)x2=x 的解.

这一做法得到得到一个 tight 的集合 S S S.

Step 3: 令 x ← x 1 x\gets x_1 xx1 (或 x 2 x_2 x2), T ← S ∩ T T\gets S\cap T TST, 重复 Step 1, 直到 x x x 为整数点.

算法至多需要 ∣ E ∣ ⋅ r M ( E ) |E|\cdot r_M(E) ErM(E) 次迭代.

Pipage Rounding 算法的性质

  1. 对于任意一个元素 e e e, P [ e ∈ T ] = x ( e ) \mathbb P[e\in T]=x(e) P[eT]=x(e).
  2. 元素之间是负相关的, 即

P [ S ⊆ T ] ≤ ∏ e ∈ T x ( e ) . \mathbb P[S\subseteq T]\leq\prod_{e\in T}x(e). P[ST]eTx(e).

3.3 二部图

一个二部图的最小代价完美匹配问题 (min-cost perfect matching problem) 描述如下:

给定一个二部图 G = ( A , B , E ) G=(A,B,E) G=(A,B,E),
min ⁡     ∑ e ∈ E c e x e subject to    x ( δ ( a ) ) = 1 ∀ a ∈ A x ( δ ( b ) ) = 1 ∀ b ∈ B 0 ≤ x e ≤ 1 ∀ e ∈ E \begin{align*} \min ~~~& \sum_{e\in E}c_e x_e\\ \text{subject to }~~& x(\delta(a))=1 && \forall a\in A\\ & x(\delta(b))=1 && \forall b\in B\\ & 0\leq x_e\leq1 && \forall e\in E \end{align*} min   subject to   eEcexex(δ(a))=1x(δ(b))=10xe1aAbBeE

x ∗ x^* x 是一个最优解 (松弛情况).

定理: 对于任意一个 x ∗ x^* x, 存在一个边 e e e, 使 x e ∗ = 0 x_e^*=0 xe=0 x e ∗ = 1 x_e^*=1 xe=1.

使用反证法, 若对所有 e ∈ E e\in E eE 都有 0 < x e < 1 0<x_e<1 0<xe<1, 因为每个点分数之和为 1 1 1, 则必然每个点都至少连有两条边. 令 ∣ A ∣ = ∣ B ∣ = n |A|=|B|=n A=B=n, 有 ∣ E ∣ > 2 n |E|>2n E>2n. 则必须有 2 n 2n 2n 个线性无关的约束. 然而这些约束并不是线性独立的: 与 A A A 相关的行之和与与 B B B 相关的行之和相等.

Rounding: 如果 x e ∗ = 0 x_e^*=0 xe=0, 我们删除 e e e. 如果 x e ∗ = 1 x_e^*=1 xe=1, 我们把这条边放入 matching 里, 并移除这条边的两个端点. 然后, 我们得到了全新的 min-cost perfect matching 问题, 应用同样的方法, 直到得到整数解为止.

对二部图 matching 的 另一种 rounding:

F ⊆ E F\subseteq E FE 为分数边集合. 若 F = ∅ F=\emptyset F=, 则完成. 否则, 在子图 ( A , B , F ) (A,B,F) (A,B,F) 中找到 (在线性时间内) 极大路径 P P P. 并将边集 P P P 分为两个匹配 M 1 M_1 M1 M 2 M_2 M2. 并且定义:
α = min ⁡ { γ > 0 : ( ( ∃ e ∈ M 1 : x e + γ = 1 ) ∨ ( ∃ e ∈ M 2 : x e − γ = 0 ) ) ; } β = min ⁡ { γ > 0 : ( ( ∃ e ∈ M 1 : x e − γ = 1 ) ∨ ( ∃ e ∈ M 2 : x e + γ = 0 ) ) ; } \begin{align*} \alpha=\min\{ \gamma>0:((\exists e\in M_1:x_e+\gamma=1 )\vee(\exists e\in M_2:x_e-\gamma=0)); \}\\ \beta =\min\{ \gamma>0:((\exists e\in M_1:x_e-\gamma=1 )\vee(\exists e\in M_2:x_e+\gamma=0));\} \end{align*} α=min{γ>0:((eM1:xe+γ=1)(eM2:xeγ=0));}β=min{γ>0:((eM1:xeγ=1)(eM2:xe+γ=0));}

以概率 α α + β \frac{\alpha}{\alpha+\beta} α+βα, 对于所有 e ∈ M 1 e\in M_1 eM1, 置 x e : = x e + α x_e:=x_e+\alpha xe:=xe+α; 对所有 e ∈ M 2 e\in M_2 eM2, 置 x e : = x e − α x_e:=x_e-\alpha xe:=xeα.

以概率 β α + β \frac{\beta}{\alpha+\beta} α+ββ, 对于所有 e ∈ M 1 e\in M_1 eM1, 置 x e : = x e − β x_e:=x_e-\beta xe:=xeβ; 对所有 e ∈ M 2 e\in M_2 eM2, 置 x e : = x e + β x_e:=x_e+\beta xe:=xe+β.

对新获得的图, 执行一样的算法, 直到获得整数解.

Reference

[1] Lecture Notes, CSE 599: Recent Developments in Approximation Algorithms.
[2] Lecture Notes, CIS800: Techniques in Approximation Algorithms, Fall 2010.
[3] Gandhi R, Khuller S, Parthasarathy S, et al. Dependent rounding in bipartite graphs[C]//The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings. IEEE, 2002: 323-332.

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sijin_Yu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值