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:

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sijin_Yu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值