Scheduling on Parallel Machines
- 给定任务集合 J={J1,J2,…,J∣J∣}\mathscr{J} = \{J_1,J_2,\dots,J_{|\mathscr{J}|}\}J={J1,J2,…,J∣J∣},机器集合 M={M1,M2,…,M∣M∣}\mathscr{M} = \{M_1,M_2,\dots,M_{|\mathscr{M}|}\}M={M1,M2,…,M∣M∣},JjJ_jJj 分配给 MiM_iMi 的处理时间为 pijp_{ij}pij,设 xij={0,1}x_{ij} = \{0,1\}xij={0,1} 表示 JjJ_jJj 是否分配给 MiM_iMi,容易建出线性规划模型:
minimizetsubject to∑Mi∈Mxij=1∀Jj∈J∑Jj∈Jxijpij≤t∀Mi∈Mxij∈{0,1}∀Mi∈M,Jj∈J \begin{aligned} \text{minimize}\hspace{0.5em}t &\\ \text{subject to}\hspace{0.5em}\sum\limits_{M_i \in \mathscr{M}}x_{ij} &= 1 & \forall J_j\in \mathscr{J}\\ \sum\limits_{J_j \in \mathscr{J}}x_{ij}p_{ij} &\le t & \forall M_i \in\mathscr{M}\\ x_{ij} &\in \{0,1\} & \forall M_i\in \mathscr{M}, J_j\in\mathscr{J}\\ \end{aligned} minimizetsubject toMi∈M∑xijJj∈J∑xijpijxij=1≤t∈{0,1}∀Jj∈J∀Mi∈M∀Mi∈M,Jj∈J
- 将 JjJ_jJj 分配给 pijp_{ij}pij 最小的 MiM_iMi,得到一个可行答案 τ\tauτ, 二分答案 T∈[τ∣M∣,τ]T \in \left[\dfrac{\tau}{|\mathscr{M}|}, \tau\right]T∈[∣M∣τ,τ],设 ST={(i,j):Mi∈M,Jj∈J,pij≤T}S_T = \{(i,j) : M_i \in \mathscr{M}, J_j\in \mathscr{J}, p_{ij}\le T\}ST={(i,j):Mi∈M,Jj∈J,pij≤T},我们只需判定以下约束是否存在可行解:
∑(i,j)∈STxij=1∀Jj∈J∑(i,j)∈STxijpij≤T∀Mi∈Mxij∈{0,1}∀(i,j)∈ST \begin{aligned} \sum\limits_{(i,j)\in S_T}x_{ij} &= 1 & \forall J_j \in \mathscr{J} \\ \sum\limits_{(i,j)\in S_T}x_{ij}p_{ij} &\le T &\forall M_i \in \mathscr{M} \\ x_{ij} &\in \{0, 1\} & \forall (i,j) \in S_T \\ \end{aligned} (i,j)∈ST∑xij(i,j)∈ST∑xijpijxij=1≤T∈{0,1}∀Jj∈J∀Mi∈M∀(i,j)∈ST
- 现将 xij∈{0,1}x_{ij} \in \{0, 1\}xij∈{0,1} 放宽限制至 xij≥0x_{ij} \ge 0xij≥0,通过单纯形算法求出一组解 LP(T)LP(T)LP(T),我们将通过合适的调整得到一组较好的近似解。
- Lemma 1 LP(T)LP(T)LP(T) 中至多有 ∣J∣+∣M∣|\mathscr{J}| + \mathscr{|M|}∣J∣+∣M∣ 个不为 0 的变量。
证明 由于总共有 ∣ST∣|S_T|∣ST∣ 个变量,需恰有 ∣ST∣|S_T|∣ST∣ 个相互独立的不等式取等号,而允许 xijx_{ij}xij 不为 0 的不等式只有 ∣J∣+∣M∣|\mathscr{J}| + |\mathscr{M}|∣J∣+∣M∣ 个,所以 xijx_{ij}xij 为 0 的变量至少有 ∣ST∣−(∣J∣+∣M∣)|S_T| - (|\mathscr{J}| + |\mathscr{M}|)∣ST∣−(∣J∣+∣M∣) 个,原命题得证。
- Lemma 2 LP(T)LP(T)LP(T) 至少有 ∣J∣−∣M∣|\mathscr{J}| - \mathscr{|M|}∣J∣−∣M∣ 个为 1 的变量。
证明 假设 J\mathscr{J}J 中有 α\alphaα 个只分给一台 MiM_iMi 的 JjJ_jJj 和 β\betaβ 个不止分给一台 MiM_iMi 的 JjJ_jJj,由 Lemma 1
{α+β=∣J∣α+2β≤∣J∣+∣M∣⇒{α≥∣J∣−∣M∣β≤∣M∣ \begin{cases} \alpha + \beta = |\mathscr{J}| \\ \alpha + 2\beta \le |\mathscr{J}| + |\mathscr{M}| \\ \end{cases} \Rightarrow \begin{cases} \alpha \ge |\mathscr{J}| - |\mathscr{M}|\\ \beta \le |\mathscr{M}| \\ \end{cases} {α+β=∣J∣α+2β≤∣J∣+∣M∣⇒{α≥∣J∣−∣M∣β≤∣M∣
-
显然 LP(T)LP(T)LP(T) 中 0≤xij≤10 \le x_{ij} \le 10≤xij≤1,我们将 xijx_{ij}xij 中为 0 和为 1 的变量保留,构建二分图 G=<J∪M,E>G = <\mathscr{J} \cup \mathscr{M},E>G=<J∪M,E>,若 xij>0x_{ij} > 0xij>0,将 MiM_iMi 向 JjJ_jJj 连边。记 F={Jj∣∃(i,j)∈ST,0<xij<1}F = \{J_j | \exists(i,j)\in S_T, 0 < x_{ij} < 1\}F={Jj∣∃(i,j)∈ST,0<xij<1}。
-
Lemma 3 GGG 中每个连通块要么是树,要么是基环树(pseudo-tree,either a tree or a tree plus a single edge,类似的有基环树森林的概念,pseudo-forest)。
证明 可以把 GGG 中每个连通块看作是原问题的一个子问题,也对应一个同类型的线性规划,全局最优解一定是子问题的最优解,故可以对每个连通块应用 Lemma 1,即每个连通块内的边数不会超过点数。
-
对于任意 v∈J/Fv\in \mathscr J / Fv∈J/F,删去该点及其唯一的连边,剩下的图依然满足 Lemma 1,且叶子结点均属于 M\mathscr MM。对于树,可以从叶子结点开始不断往上贪心取匹配;对于基环树,贪心匹配去除环外的树,剩下的一定是一个偶环。即总一定存在一个关于 FFF 的完美匹配。
-
将完美匹配对应的 xijx_{ij}xij 设为 1,由匹配的定义以及 pij≤Tp_{ij} \le Tpij≤T,调整后得到的解至多扩大到原来解的两倍,故我们得到了 α=2\alpha = 2α=2 的近似算法。
-
构造以下例子可使 α\alphaα 无限接近取到 2:
- mmm 台机器,m(m−1)+1m(m - 1) + 1m(m−1)+1 个任务,其中一个任务 J1J_1J1 处理时间为 mmm,其余为 1。
- 线性规划找到的解可能是 xi1=1mx_{i1} = \dfrac{1}{m}xi1=m1,其余 jjj 恰有一个 xij=1x_{ij} = 1xij=1。
- 这时候调整得到的解就为 2m−12m - 12m−1,实际最优解为 mmm。
Knapsnack
-
nnn 的输入位数为 ⌊log2n⌋+1\lfloor \log_2 n\rfloor + 1⌊log2n⌋+1:
- 给 a1,a2,…,ana_1, a_2, \dots, a_na1,a2,…,an 排序 ,把 max{log2ai}\max\{\log_2a_i\}max{log2ai} 认为是常数,输入规模为 nnn。
- 判定 NNN 是否为素数,输入规模为 log2N\log_2Nlog2N。
-
背包问题的时间复杂度 O(nB)\mathcal O(nB)O(nB),输入规模只有 logB+logn+∑i=1nlogsize(ai)+∑i=1nlogprofit(ai)\log B + \log n + \sum\limits_{i = 1}^{n}\log \text{size}(a_i) + \sum \limits_{i = 1}^{n}\log \text{profit}(a_i)logB+logn+i=1∑nlogsize(ai)+i=1∑nlogprofit(ai),有 2logB=B2^{\log B} = B2logB=B,是伪多项式算法。
-
unnary encoding 编码长度等于数字大小,记 ∣I∣u|I|_u∣I∣u 表示输入 III 在 unnary encoding 下的长度,∣I∣|I|∣I∣ 表示输入III 在 binary encoding 下的长度。
-
伪多项式算法 时间复杂度是 ∣I∣u|I|_u∣I∣u 的多项式。
-
多项式算法 时间复杂度是 ∣I∣|I|∣I∣ 的多项式。
-
strongly NP-hard 在 unnary encoding 下仍然是 NP-hard。一个 strongly NP-hard 问题没有伪多项式解法除非 P = NP。
-
weakly NP-hard 在 binary encoding 下是 NP-hard,但存在伪多项式算法。
-
设 P=maxprofit(ai)P = \max \text{profit}(a_i)P=maxprofit(ai),设 A[i,p]A[i,p]A[i,p] 表示前 iii 个物品的子集总价值为 ppp 所能达到的最小容量,时间复杂度 O(n2P)\mathcal O(n^2P)O(n2P)。
A[1,0]=0,A[1,profit(a1)]=size(a1),∀0≤j≤nP,j≠1,j≠profit(a1),A[i,j]=∞A[i+1,p]=min{A[i,p],size(ai+1)+A[i,p−profit(ai+1)]} \begin{aligned} A[1,0] = 0, A[1,\text{profit}(a_1)] &= \text{size}(a_1),\forall 0 \le j \le nP, j \not = 1, j \not = \text{profit}(a_1), A[i,j] = \infty\\ A[i+1,p] &= \min\{A[i,p], \text{size}(a_{i + 1}) + A[i,p-\text{profit}(a_{i + 1})]\} \end{aligned} A[1,0]=0,A[1,profit(a1)]A[i+1,p]=size(a1),∀0≤j≤nP,j=1,j=profit(a1),A[i,j]=∞=min{A[i,p],size(ai+1)+A[i,p−profit(ai+1)]}
-
polynomial-time approximation scheme(PTAS,多项式时间近似方案) 一个算法 A\mathscr{A}A 满足对于给定参数 ε>0\varepsilon > 0ε>0,产生的解 sss 均满足 ∣objΠ(I,s)−OPT∣OPT≤ε\dfrac{|\text{obj}_{\Pi}(I,s) - \text{OPT}|}{\text{OPT}} \le \varepsilonOPT∣objΠ(I,s)−OPT∣≤ε 且 A\mathscr{A}A 的时间复杂度是 ∣I∣|I|∣I∣ 的多项式。
-
fully polynomial-time approximation scheme(FPTAS,完全多项式时间近似方案) 一个算法满足 A\mathscr{A}A 满足 PTAS 对解的要求且运行时间是 ∣I∣|I|∣I∣ 和 1ε\dfrac{1}{\varepsilon}ε1 的多项式。
KnapsackScaling(III, ε\varepsilonε)
K←εPnK \leftarrow \dfrac{\varepsilon P}{n}K←nεP
profit′(ai):=⌊profit(ai)K⌋\text{profit}'(a_i) := \left\lfloor \dfrac{\text{profit}(a_i)}{K} \right\rfloorprofit′(ai):=⌊Kprofit(ai)⌋
Compute optimal solution S′S'S′ for III w.r.t. profit′(⋅)\text{profit}'(·)profit′(⋅)
return S′S'S′
- 该算法是 FPTAS。
证明 设 OPT={o1,o2,…,ok}\text{OPT} = \{o_1, o_2, \dots, o_k\}OPT={o1,o2,…,ok}
profit(S′)≥Kprofit′(S′)≥∑i=1kKprofit′(oi)≥∑i=1kprofit(oi)−kK≥profit(S)−nK≥profit(S)−εP≥(1−ε)profit(S)\text{profit}(S') \ge K \text{profit}'(S') \ge \sum \limits_{i = 1}^{k}K\text{profit}'(o_i) \ge \sum \limits_{i = 1}^{k}\text{profit}(o_i) - kK \\ \ge \text{profit}(S) - nK \ge \text{profit}(S) - \varepsilon P \ge (1 - \varepsilon)\text{profit}(S)profit(S′)≥Kprofit′(S′)≥i=1∑kKprofit′(oi)≥i=1∑kprofit(oi)−kK≥profit(S)−nK≥profit(S)−εP≥(1−ε)profit(S)
该算法的时间复杂度 O(n2PK)=O(n3ε)\mathcal O\left(n^2\dfrac{P}{K}\right) = \mathcal O\left(\dfrac{n^3}{\varepsilon}\right)O(n2KP)=O(εn3)
- FPTAS 与伪多项式算法的关系 若存在多项式 ppp,使得对于一个具有整数目标函数的最小化问题任意 OPT(I)<p(∣I∣u)\text{OPT}(I) < p(|I|_u)OPT(I)<p(∣I∣u) ,若该最小化问题存在一个FPTAS,则一定存在一个对应的伪多项式算法。
证明 假设存在一个 FPTAS,取 ε=1p(∣I∣u)\varepsilon = \dfrac{1}{p\left(|I|_u\right)}ε=p(∣I∣u)1
{ALG≥OPTALG≤(1+ε)OPT<OPT+1⇒ALG=OPT \begin{cases}\text{ALG} \ge \text{OPT} \\ \text{ALG} \le (1 + \varepsilon) \text{OPT} < \text{OPT} + 1 \end{cases}\Rightarrow \text{ALG} = \text{OPT} {ALG≥OPTALG≤(1+ε)OPT<OPT+1⇒ALG=OPT
该算法的时间复杂度是关于 ∣I∣|I|∣I∣ 和 p(∣I∣u)p(|I|_u)p(∣I∣u) 的多项式,即时间复杂度是 ∣I∣u|I|_u∣I∣u 的多项式。
- 一个 strongly NP-Hard 问题有伪多项式算法,仅当 P = NP。
- 因此若一个 strongly NP-Hard 问题满足前述条件,有 FPTAS 仅当 P = NP。
Maximum Satisfiability
- 任何问题都能转化成 SAT,因为在计算机内本质上都是若干门电路的组合。
- 文字(literals) 变量或者变量取负。
- 子句(Clause) 文字的析取(disjunction),其长度为文字的个数。
- 给定一个 CNF(合取范式),有变量 x1,…,xnx_1,\dots,x_nx1,…,xn,有子句 C1,…,CmC_1,\dots,C_mC1,…,Cm,对应的权为 w1,…,wmw_1, \dots, w_mw1,…,wm,要求使得被满足的子句的权值和最大。
Randomized Algorithm
- 对 xix_ixi 随机取 0/1,每个子句被满足的概率大于等于 12\dfrac{1}{2}21,所以这是一个期望 α=12\alpha = \dfrac{1}{2}α=21 的近似算法(注意和 α=12\alpha = \dfrac{1}{2}α=21 的区别)。
Derandomization by Conditional Expectation
-
去随机化能够得到一个 α=12\alpha = \dfrac{1}{2}α=21 的算法,对于每个 xi+1x_{i+1}xi+1,每次选择后续选择期望更大的决策,由归纳法
-
基础
{E(W)=E(W∣x1=0)+E(W∣x1=1)2≥OPT2E(W∣x1=b1)≥E(W∣x1=1−b1)⇒E(W∣x1=b1)≥OPT2 \begin{cases} \mathbb{E}(W) = \dfrac{\mathbb{E}(W|x_1 = 0) + \mathbb{E}(W|x_1 = 1)}{2} \ge \dfrac{\text{OPT}}{2}\\\mathbb{E}(W|x_1 = b_1) \ge \mathbb{E}(W|x_1 = 1 - b_1) \end{cases} \Rightarrow \mathbb{E}(W|x_1 = b_1) \ge \dfrac{\text{OPT}}{2} ⎩⎨⎧E(W)=2E(W∣x1=0)+E(W∣x1=1)≥2OPTE(W∣x1=b1)≥E(W∣x1=1−b1)⇒E(W∣x1=b1)≥2OPT -
归纳
{E(W∣x1=b1,…,xi=bi)≥OPT2E(W∣x1=b1,…,xi=bi)=E(W∣x1=b1,…,xi=bi,xi+1=0)+E(W∣x1=b1,…,xi=bi,xi+1=1)2E(W∣x1=b1,…,xi=bi,xi+1=bi+1)≥E(W∣x1=b1,…,xi=bi,xi+1=1−bi+1)⇒E(W∣x1=b1,…,xi=bi,xi+1=bi+1)≥OPT2 \begin{cases} \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i) \ge \dfrac{\text{OPT}}{2} \\ \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i) = \dfrac{\mathbb{E}(W|x_1=b_1,\dots, x_i = b_i, x_{i + 1} = 0) + \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i, x_{i + 1} = 1)}{2} \\ \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i, x_{i + 1} = b_{i + 1}) \ge \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i, x_{i + 1} = 1 - b_{i + 1}) \\ \end{cases} \\ \Rightarrow \mathbb{E}(W|x_1=b_1,\dots, x_i = b_i, x_{i + 1} = b_{i + 1}) \ge \dfrac{\text{OPT}}{2} ⎩⎨⎧E(W∣x1=b1,…,xi=bi)≥2OPTE(W∣x1=b1,…,xi=bi)=2E(W∣x1=b1,…,xi=bi,xi+1=0)+E(W∣x1=b1,…,xi=bi,xi+1=1)E(W∣x1=b1,…,xi=bi,xi+1=bi+1)≥E(W∣x1=b1,…,xi=bi,xi+1=1−bi+1)⇒E(W∣x1=b1,…,xi=bi,xi+1=bi+1)≥2OPT
-
-
注意到 E(W∣x1=b1,…,xn=bn)\mathbb{E}(W|x_1=b_1,\dots, x_{n} = b_{n})E(W∣x1=b1,…,xn=bn) 是定值,故我们证明了其 α=12\alpha = \dfrac{1}{2}α=21。
-
local consumption
- greedy, local search
-
global consumption
- backtrace, branch and bound, LP, divide and conquer, DP
LP
- 转成线性规划模型,令 Cj=⋁i∈Pjxi∨⋁i∈Njxi‾C_j = \bigvee\limits_{i \in P_j}x_i \vee \bigvee\limits_{i \in N_j}\overline{x_i}Cj=i∈Pj⋁xi∨i∈Nj⋁xi,
maximize∑j=1mwjzjsubject to∑i∈Pjyi+∑i∈Nj(1−yi)≥zj∀1≤j≤m0≤yi≤1∀1≤i≤n0≤zj≤1∀1≤j≤m \begin{aligned} \text{maximize}\hspace{0.5em}\sum\limits_{j = 1}^{m}w_jz_j &\\ \text{subject to}\hspace{0.5em}\sum\limits_{i \in P_j}y_i + \sum \limits_{i \in N_j}(1 - y_i) &\ge z_j & \forall 1\le j\le m\\ 0 \le y_i \le 1& & \forall 1\le i\le n\\ 0 \le z_j \le 1& & \forall 1\le j\le m\\\\ \end{aligned} maximizej=1∑mwjzjsubject toi∈Pj∑yi+i∈Nj∑(1−yi)0≤yi≤10≤zj≤1≥zj∀1≤j≤m∀1≤i≤n∀1≤j≤m
- 设求出的解为 (y∗,z∗)(y^*, z^*)(y∗,z∗),则以 yi∗y^*_iyi∗ 的概率置 xix_ixi 为 1 可得到一个期望 α=1−1e\alpha = 1 - \dfrac{1}{e}α=1−e1 的近似算法。
(分析过程不考)
证明
- 由均值不等式
n∑i=1n1ai≤∏i=1nain≤∑i=1nain≤∑i=1nai2n调和平均数≤几何平均数≤算术平均数≤平方平均数 \begin{aligned} \dfrac{n}{\sum \limits_{i = 1}^{n}\dfrac{1}{a_i}}&\le \sqrt[n]{\prod\limits_{i = 1}^{n}a_i}\le \dfrac{\sum\limits_{i = 1}^{n}a_i}{n}\le \sqrt{\dfrac{\sum \limits_{i = 1}^{n}a_i^2}{n}} \\ 调和平均数 &\le 几何平均数 \le 算术平均数 \le 平方平均数 \end{aligned} i=1∑nai1n调和平均数≤ni=1∏nai≤ni=1∑nai≤ni=1∑nai2≤几何平均数≤算术平均数≤平方平均数
- 考虑此时某个子句 CjC_jCj 不满足的概率
∏i∈Pj(1−yi∗)∏i∈Njyi∗≤[1lj(∑i∈Pj(1−yi∗)+∑i∈Njyi∗)]lj=[1−1lj(∑i∈Pjyj∗+∑i∈Nj(1−yj∗))]lj≤(1−zjlj)lj \begin{aligned} &\prod_{i \in P_j}(1 - y_i^*)\prod\limits_{i \in N_j}y_i^* \\ &\le \left[\dfrac{1}{l_j}\left(\sum \limits_{i \in {P_j}}(1 - y_i^*)+\sum \limits_{i \in N_j}y^*_i\right)\right]^{l_j}\\ & = \left[1 - \dfrac{1}{l_j}\left(\sum \limits_{i \in P_j}y_j^* + \sum\limits_{i \in N_j}(1 - y^*_j)\right)\right]^{l_j}\\ &\le \left(1 - \dfrac{z_j}{l_j}\right)^{l_j}\\ \end{aligned} i∈Pj∏(1−yi∗)i∈Nj∏yi∗≤lj1i∈Pj∑(1−yi∗)+i∈Nj∑yi∗lj=1−lj1i∈Pj∑yj∗+i∈Nj∑(1−yj∗)lj≤(1−ljzj)lj
- 因此 CjC_jCj 满足的概率大于等于 f(zj)=1−(1−zjlj)ljf(z_j) = 1 - \left(1 - \dfrac{z_j}{l_j}\right)^{l_j}f(zj)=1−(1−ljzj)lj。
- 注意到 ∀zj∈[0,1],f′(zj)≥0,f′′(zj)≤0\forall z_j \in [0, 1], f'(z_j) \ge 0, f''(z_j) \le 0∀zj∈[0,1],f′(zj)≥0,f′′(zj)≤0,若 f(0)=a,f(1)=a+bf(0) = a, f(1) = a + bf(0)=a,f(1)=a+b,恒有 f(x)≥bx+af(x) \ge bx + af(x)≥bx+a,并且根据 1+x≤ex1 + x \le e^x1+x≤ex,有
1−(1−zjlj)lj≥[1−(1−1lj)lj]zj≥(1−1e)zj \begin{aligned} 1 - \left(1 - \dfrac{z_j}{l_j}\right)^{l_j} &\ge \left[1 - \left(1 - \dfrac{1}{l_j}\right)^{l_j}\right]z_j \\ &\ge \left(1 - \dfrac{1}{e}\right)z_j\\ \end{aligned} 1−(1−ljzj)lj≥[1−(1−lj1)lj]zj≥(1−e1)zj
- 此时
E(W)=∑j=1m(1−1e)wjzj≥(1−1e)OPTLP≥(1−1e)OPTILP \mathbb{E}(W) = \sum \limits_{j = 1}^{m}\left(1 - \dfrac{1}{e}\right)w_jz_j \ge \left(1 - \dfrac{1}{e}\right)\text{OPT}_{LP} \ge \left(1 - \dfrac{1}{e}\right)\text{OPT}_{ILP} E(W)=j=1∑m(1−e1)wjzj≥(1−e1)OPTLP≥(1−e1)OPTILP
- 同样可以通过条件期望将上述算法改为 α=(1−1e)\alpha = \left(1 - \dfrac{1}{e}\right)α=(1−e1) 的近似算法,每次选择期望下界更大的决策,证明同上。
Take the better of the two solution
- 假设以 12\dfrac{1}{2}21 的概率随机选择 Randomized Algorithm 和 LP 两种算法之一,某个子句 CjC_jCj 满足的概率至少为:
12{[1−(1−1lj)lj]zj+(1−2−lj)}≥12{[1−(1−1lj)lj]+(1−2−lj)}zj \dfrac{1}{2}\left\{\left[1 - \left(1 - \dfrac{1}{l_j}\right)^{l_j}\right]z_j + (1 - 2^{-l_j})\right\} \ge\dfrac{1}{2}\left\{\left[1 - \left(1 - \dfrac{1}{l_j}\right)^{l_j}\right] + (1 - 2^{-l_j})\right\}z_j 21{[1−(1−lj1)lj]zj+(1−2−lj)}≥21{[1−(1−lj1)lj]+(1−2−lj)}zj
- 容易证明这两个函数的均值 ≥0.75\ge 0.75≥0.75,因此我们得到了期望 α=34\alpha = \dfrac{3}{4}α=43 的近似算法,同上可以通过条件期望优化到 α=34\alpha = \dfrac{3}{4}α=43 的近似算法(选两种方法期望值取 max\maxmax 最大的选项)。
Minimum-Degree Spanning Tree
-
给定一个连通图 G=(V,E)G = (V, E)G=(V,E),找到一棵生成树 TTT,使得最大度数Δ(T)\Delta(T)Δ(T) 最小。
-
该问题是 NP-hard 问题,因为 ∣V∣≥3|V| \ge 3∣V∣≥3 时恒有 Δ(T)≥2\Delta(T) \ge 2Δ(T)≥2,而 Δ(T)=2\Delta(T) = 2Δ(T)=2 的生成树 TTT 是一条路径。若能求出最优解 T∗T^*T∗,相当于判定了图中是否存在哈密顿回路,因而哈密顿回路只是该问题的一个子集。
-
degT(u)\text{deg}_T(u)degT(u) 表示 TTT 中 uuu 的度数。
-
improving flip 对于 TTT 中的结点 vvv,存在 (u,w)∈E(G)/E(T)(u, w) \in E(G)/E(T)(u,w)∈E(G)/E(T),vvv 在 TTT 中 uuu 到 www 的路径上且 degT(v)>max{degT(u),degT(w)}+1\text{deg}_T(v) > \max\{\text{deg}_T(u),\text{deg}_T(w)\} + 1degT(v)>max{degT(u),degT(w)}+1,删去在 TTT 中 uuu 到 www 路径上且与 vvv 相邻的边,增加边 (u,w)(u,w)(u,w),得到新的生成树 T′T'T′。
-
取 l=⌈log2n⌉l = \lceil \log_2 n \rceill=⌈log2n⌉
MinDegSpanningTreeLocalSearch(GGG)
TTT <- any spanning tree of GGG
while ∃\exist∃ improving flip in TTT for a vertex vvv with degT(v)≥Δ(T)−l\text{deg}_T(v) \ge \Delta(T) - ldegT(v)≥Δ(T)−l dodo the improving flip
- 可以证明,算法可在 O(n4)\mathcal O(n^4)O(n4) 次迭代后结束。
- 对于 GGG 的任意一棵生成树 TTT,删去 TTT 中 kkk 条边将 TTT 分为 k+1k + 1k+1 个连通块,设 E′E'E′ 为 E(G)E(G)E(G) 中连接不同连通块的所有边,取 SSS 是 E′E'E′ 的点覆盖。
- Lemma 1. OPT≥k∣S∣\text{OPT} \ge \dfrac{k}{|S|}OPT≥∣S∣k。
证明 ∣S∣OPT=∣S∣Δ(T∗)≥∑v∈SdegT∗(v)≥∣E(T∗)∩E′∣|S|\text{OPT} = |S|\Delta(T^*) \ge \sum_{v\in S}\text{deg}_{T^*}(v) \ge |E(T^*)\cap E'|∣S∣OPT=∣S∣Δ(T∗)≥∑v∈SdegT∗(v)≥∣E(T∗)∩E′∣
因为 T∗T^*T∗ 是生成树,不考虑这 k+1k + 1k+1 个连通块内部连边的情况,至少要用 kkk 条边让这 k+1k + 1k+1 个连通块连通,故 ∣E(T∗)∩E′∣≥k|E(T^*)\cap E'|\ge k∣E(T∗)∩E′∣≥k,移项后即有 OPT≥k∣S∣\text{OPT} \ge \dfrac{k}{|S|}OPT≥∣S∣k。
- 对于 GGG 通过上述算法得到的一棵生成树 TTT,∀1≤i≤Δ(T)\forall 1 \le i \le \Delta(T)∀1≤i≤Δ(T),令 Si={v∣v∈V(G)∧degT(v)≥i}S_i = \{v | v\in V(G)\wedge \text{deg}_T(v) \ge i\}Si={v∣v∈V(G)∧degT(v)≥i},Ei={(u,v)∣(u,v)∈T∧(u∈Si∨v∈Si)}E_i = \{(u,v)|(u,v) \in T\wedge (u \in S_i\vee v\in S_i)\}Ei={(u,v)∣(u,v)∈T∧(u∈Si∨v∈Si)},
- Lemma 2. 若 Δ(T)≥l\Delta(T) \ge lΔ(T)≥l,∃i≥Δ(T)−l+1,∣Si−1∣≤2∣Si∣\exist i \ge \Delta(T) - l + 1, |S_{i - 1}| \le 2|S_i|∃i≥Δ(T)−l+1,∣Si−1∣≤2∣Si∣
证明 反证法,假设不存在,则有 ∣SΔ(T)−l∣>2l∣SΔ(T)∣=2⌈log2n⌉∣SΔ(T)∣≥n|S_{\Delta(T) - l}| > 2^l|S_{\Delta(T)}| = 2^{\lceil\log_2n\rceil}|S_{\Delta(T)}| \ge n∣SΔ(T)−l∣>2l∣SΔ(T)∣=2⌈log2n⌉∣SΔ(T)∣≥n,矛盾。
- Lemma 3. 若 Δ(T)≥l\Delta(T) \ge lΔ(T)≥l,∀i≥Δ(T)−l+1\forall i \ge \Delta(T) - l + 1∀i≥Δ(T)−l+1
- ∣Ei∣≥(i−1)∣Si∣+1|E_i| \ge (i - 1)|S_i| + 1∣Ei∣≥(i−1)∣Si∣+1
- 对于每条连接 T/EiT/E_iT/Ei 不同连通块且满足 e∈E(G)/Eie\in E(G)/E_ie∈E(G)/Ei 的边 eee 至少有一个顶点属于 Si−1S_{i - 1}Si−1。
证明 1. ∣Ei∣≥i∣Si∣−(∣Si∣−1)=(i−1)∣Si∣+1|E_i| \ge i|S_i| - (|S_i| - 1) = (i - 1)|S_i| + 1∣Ei∣≥i∣Si∣−(∣Si∣−1)=(i−1)∣Si∣+1(最坏情况下 SiS_iSi 中的点形成一棵树,因此要扣掉重复的边)
- 显然满足该条件的边 eee 两个顶点在 TTT 中的度数均小于 iii,若两者的度数均小于 i−1i - 1i−1。由于边 eee 连接的两个连通块之间一定存在一条属于 EiE_iEi 的边,则可以进行一次 improving flip,与 TTT 的定义不同。
- Theorem. Δ(T)≤2OPT+l\Delta(T) \le 2\text{OPT} + lΔ(T)≤2OPT+l
证明
若 Δ(T)<l\Delta(T) < lΔ(T)<l,显然该结论成立。
若 Δ(T)≥l\Delta(T) \ge lΔ(T)≥l,取 **Lemma 2. *** 中的 iii,删去 TTT 中的边集 EiE_iEi 得到 ∣Ei∣+1|E_i| + 1∣Ei∣+1 个连通块,由 **Lemma 3. (2) ** Si−1S_{i - 1}Si−1 一定是 E(G)/EiE(G) / E_iE(G)/Ei 的点覆盖,结合 Lemma 1.、Lemma 2.、Lemma 3 有
OPT≥k∣S∣=∣Ei∣∣Si−1∣≥(i−1)∣Si∣+1∣Si−1∣≥(i−1)∣Si∣+12∣Si∣>i−12≥Δ(T)−l2 \text{OPT} \ge \dfrac{k}{|S|} = \dfrac{|E_i|}{|S_{i - 1}|} \ge \dfrac{(i - 1)|S_i| + 1}{|S_{i - 1}|} \ge \dfrac{(i - 1)|S_i| + 1}{2|S_i|} > \dfrac{i - 1}{2} \ge \dfrac{\Delta(T) - l}{2} OPT≥∣S∣k=∣Si−1∣∣Ei∣≥∣Si−1∣(i−1)∣Si∣+1≥2∣Si∣(i−1)∣Si∣+1>2i−1≥2Δ(T)−l
- 若取 l=⌈logbn⌉l = \lceil \log_b n\rceill=⌈logbn⌉, 用与 Lemma 2. 相同的方法证明若 Δ(T)≥l\Delta(T) \ge lΔ(T)≥l,∃i≥Δ(T)−l+1,∣Si−1∣≤b∣Si∣\exist i \ge \Delta(T) - l + 1, |S_{i - 1}| \le b|S_i|∃i≥Δ(T)−l+1,∣Si−1∣≤b∣Si∣,最终能够得出 Δ(T)≤bOPT+l\Delta(T) \le b\text{OPT} + lΔ(T)≤bOPT+l 的结论。
Local Search
Given an instance III of a problem,S(I)S(I)S(I) the set of feasible solutions
For a Solution SSS,the neighborhood of SSS(邻域)is the set of all solutions S′S'S′ such that S′S'S′ can be obtained from SSS via some local moves.
minimization val(S′)<val(S)\text{val}(S') < \text{val}(S)val(S′)<val(S)
maximization val(S′)>val(S)\text{val}(S') > \text{val}(S)val(S′)>val(S)
Find a good(comparatively, no constraints) initial solution S0∈S(I)S_0 \in S(I)S0∈S(I)
S←S0S \leftarrow S_0S←S0
repeat
if ∃S′∈N(S)\exists S' \in N(S)∃S′∈N(S) such that val(S′)\text{val}(S')val(S′) is better than val(S)\text{val}(S)val(S)
S←S′S\leftarrow S'S←S′;
else
SSS is a local optimal;
return SSS;until true;
The upper bound for iterations is ∣OPT−val(S0)∣|\text{OPT} - \text{val}(S_0)|∣OPT−val(S0)∣.
Objective
- find S′S'S′ polynomial time?
- repeat polynomial time?
Max Cut
Given an undirected graph V=(G,E)V = (G, E)V=(G,E),the goal is to partition VVV into (S,V/S)(S,V/S)(S,V/S) so as to maximize the number of edges crossing SSS (outgoing edges, σ(S)\sigma(S)σ(S))
weighted version:each edge has non-negative weight, the goal is to maximize the weights of edges crossing SSS.
LScut:
S=∅S = \varnothingS=∅
repeat
if ∃v∈V/S\exists v \in V / S∃v∈V/S such that w(σ(S+v))>w(σ(S))w(\sigma(S + v)) > w(\sigma(S))w(σ(S+v))>w(σ(S))
S←S+vS \leftarrow S + vS←S+v;
else if ∃v∈S\exists v \in S∃v∈S such that w(σ(S−v))>w(σ(S))w(\sigma(S - v)) > w(\sigma(S))w(σ(S−v))>w(σ(S))
S←S−vS \leftarrow S - vS←S−v;
else
SSS is a local optimal;
return SSS;until true
-
Lemma 1. SSS is the output
∃v,w(σ(S)∩σ(v))≥w(σ(v))2\exists v, w(\sigma(S)\cap\sigma(v)) \ge \dfrac{w(\sigma(v))}{2}∃v,w(σ(S)∩σ(v))≥2w(σ(v))
-
Lemma 2. w(σ(S))≥w(E)2≥OPT2w(\sigma(S)) \ge \dfrac{w(E)}{2} \ge \dfrac{\text{OPT}}{2}w(σ(S))≥2w(E)≥2OPT
Proof. According to Handshaking theorem,∑v∈Vw(σ(v))=2w(E)\sum \limits_{v \in V}w(\sigma(v)) = 2w(E)v∈V∑w(σ(v))=2w(E)
w(σ(S))=12∑v∈Vw(σ(S)∩σ(v))≥12∑v∈Vw(σ(v))2=12w(E)≥OPT2w(\sigma(S)) = \dfrac{1}{2}\sum \limits_{v \in V}w(\sigma(S)\cap\sigma(v))\ge \dfrac{1}{2}\sum \limits_{v \in V}\dfrac{w(\sigma(v))}{2} = \dfrac{1}{2}w(E) \ge \dfrac{\text{OPT}}{2}w(σ(S))=21v∈V∑w(σ(S)∩σ(v))≥21v∈V∑2w(σ(v))=21w(E)≥2OPT
For unweighted graph, it runs for at most ∣E∣|E|∣E∣ times.
But running time may take exponential time when weights are large.
objective
- the running time is strongly polynomial
- the quality of solution is almost optimal
n=∣V∣n = |V|n=∣V∣
Modified LScut(ε\varepsilonε)
S←{v∗},v∗=argmaxv∈V{w(σ(v))}S \leftarrow \{v^{*}\}, v^* = \arg \max \limits_{v \in V}\{w(\sigma(v))\}S←{v∗},v∗=argv∈Vmax{w(σ(v))}
repeat
if ∃v∈V/S\exists v \in V / S∃v∈V/S such that w(σ(S+v))>(1+εn)w(σ(S))w(\sigma(S + v)) > \left(1 + \dfrac{\varepsilon}{n}\right)w(\sigma(S))w(σ(S+v))>(1+nε)w(σ(S)) then S←S+vS \leftarrow S + vS←S+v;
>
else if ∃v∈S\exist v \in S∃v∈S such that w(σ(S−v))>(1+εn)w(σ(S))w(\sigma(S - v)) > \left(1 + \dfrac{\varepsilon}{n}\right)w(\sigma(S))w(σ(S−v))>(1+nε)w(σ(S)) then S←S−vS \leftarrow S - vS←S−v;
>
else return SSS;
Lemma 1. SSS is the output, w(σ(S))≥12(1+ε4)w(E)w(\sigma(S)) \ge \dfrac{1}{2\left(1 + \dfrac{\varepsilon}{4}\right)}w(E)w(σ(S))≥2(1+4ε)1w(E)
Proof. Assuming αv=w(σ(S)∩σ(v)),βv=w(σ(v))−αv\alpha_v = w(\sigma(S)\cap\sigma(v)), \beta_v = w(\sigma(v)) - \alpha_vαv=w(σ(S)∩σ(v)),βv=w(σ(v))−αv
∀v,w(σ(S))−w(σ(S)∩σ(v))+w(σ(v))−w(σ(S)∩σ(v))≤(1+εn)w(σ(S))⇔∀v,βv−αv≤εnw(σ(S))w(σ(S))=12∑v∈Vαv=12∑v∈V[(βv+αv)−(βv−αv)]2≥14∑v∈V[w(σ(v))−εnw(σ(S))]=12w(E)−ε4w(σ(S))⇔w(σ(S))≥12(1+ε4)w(E) \begin{aligned} \forall v, w(\sigma(S)) - w(\sigma(S)\cap \sigma(v)) + w(\sigma(v)) - w(\sigma(S)\cap \sigma(v)) &\le \left(1 + \dfrac{\varepsilon}{n}\right)w(\sigma(S)) \\ \Leftrightarrow \forall v, \beta_v - \alpha_v &\le \dfrac{\varepsilon}{n}w(\sigma(S)) \\ w(\sigma(S)) &= \dfrac{1}{2}\sum\limits_{v \in V}\alpha_v \\ &= \dfrac{1}{2}\sum \limits_{v \in V}\dfrac{[(\beta_v + \alpha_v) - (\beta_v - \alpha_v)]}{2}\\ &\ge \dfrac{1}{4}\sum\limits_{v \in V}[w(\sigma(v)) - \dfrac{\varepsilon}{n}w(\sigma(S))] \\ &= \dfrac{1}{2}w(E) - \dfrac{\varepsilon}{4}w(\sigma(S)) \\ \Leftrightarrow w(\sigma(S)) &\ge \dfrac{1}{2\left(1 + \dfrac{\varepsilon}{4}\right)}w(E) \end{aligned} ∀v,w(σ(S))−w(σ(S)∩σ(v))+w(σ(v))−w(σ(S)∩σ(v))⇔∀v,βv−αvw(σ(S))⇔w(σ(S))≤(1+nε)w(σ(S))≤nεw(σ(S))=21v∈V∑αv=21v∈V∑2[(βv+αv)−(βv−αv)]≥41v∈V∑[w(σ(v))−nεw(σ(S))]=21w(E)−4εw(σ(S))≥2(1+4ε)1w(E)
Lemma 2. The time complexity of Modified LScut is O(1εnlogn)\mathcal O\left(\dfrac{1}{\varepsilon} n \log n\right)O(ε1nlogn)
**Proof. ** According to Pigeonhole principle and Handshaking theorem,
∑v∈Vw(σ(v))=2w(E)⇒w(S0)=w(σ(v∗))≥2nw(E) \begin{aligned} \sum \limits_{v \in V}w(\sigma(v)) = 2w(E) \Rightarrow w(S_0) = w(\sigma(v^*)) \ge \dfrac{2}{n}w(E) \end{aligned} v∈V∑w(σ(v))=2w(E)⇒w(S0)=w(σ(v∗))≥n2w(E)
Assuming the number of iterations is kkk,
(1+εn)kw(σ(S0))≤w(σ(S))(1+εn)k2nw(E)≤w(E)(1+εn)k≤n2 \begin{aligned} (1 + \dfrac{\varepsilon}{n})^kw(\sigma(S_0)) &\le w(\sigma(S)) \\ (1 + \dfrac{\varepsilon}{n})^k\dfrac{2}{n}w(E)&\le w(E) \\ \left(1 + \dfrac{\varepsilon}{n}\right)^k &\le \dfrac{n}{2} \\ \end{aligned} (1+nε)kw(σ(S0))(1+nε)kn2w(E)(1+nε)k≤w(σ(S))≤w(E)≤2n
According to limn→∞(1+εn)nε=e\lim \limits_{n \to \infty}\left(1 + \dfrac{\varepsilon}{n}\right)^{\frac{n}{\varepsilon}} = en→∞lim(1+nε)εn=e,eεnk≤n2⇒k=O(nlognε)e^{\frac{\varepsilon}{n}k} \le \dfrac{n}{2} \Rightarrow k = \mathcal O\left(\dfrac{n \log n }{\varepsilon}\right)enεk≤2n⇒k=O(εnlogn)
Center Based Clustering
Euclidean Space
- d(x,y)=∥x−y∥d(x,y) = \parallel x - y\paralleld(x,y)=∥x−y∥
metric space
-
设 VVV 为点集,存在一个映射一个映射 d:V×V→Rd: V\times V \to Rd:V×V→R,∀u,v,w∈V\forall u,v,w\in V∀u,v,w∈V
- d(u,v)=d(v,u)d(u, v) = d(v, u)d(u,v)=d(v,u)
- d(u,v)≥0d(u, v) \ge 0d(u,v)≥0 且 d(u,v)=0⇔u=vd(u, v) = 0 \Leftrightarrow u = vd(u,v)=0⇔u=v
- d(u,w)≤d(u,v)+d(v,w)d(u, w) \le d(u, v) + d(v,w)d(u,w)≤d(u,v)+d(v,w)
-
若 A,B⊆V,p∈VA,B\subseteq V, p \in VA,B⊆V,p∈V,
- d(A,B)=minp∈A,q∈Bd(p,q)d(A,B) = \min\limits_{p \in A, q\in B}d(p,q)d(A,B)=p∈A,q∈Bmind(p,q)
- d(p,A)=minq∈Ad(p,q)d(p,A) = \min\limits_{q\in A}d(p,q)d(p,A)=q∈Amind(p,q)
Given nnn points P={p1,…,pn}P = \{p_1, \dots, p_n\}P={p1,…,pn} in metric space (V,d)(V, d)(V,d), an integer kkk, the goal is to partition PPP into kkk clusters C1,…,CkC_1, \dots, C_kC1,…,Ck obtained by choosing c1∗,…,ck∗c_1^*, \dots, c_k^*c1∗,…,ck∗.
Rule: each point pip_ipi is assigned to its nearest center from c1∗,…,ck∗c_1^*,\dots,c_k^*c1∗,…,ck∗
Quality: choose c1∗,…,ck∗c_1^*, \dots, c_k^*c1∗,…,ck∗ to minimize ∑i=1nd(pi,{c1∗,…,ck∗})q\sum \limits_{i = 1}^{n}d(p_i,\{c_1^*,\dots,c^*_k\})^qi=1∑nd(pi,{c1∗,…,ck∗})q, qqq is a constant.
- k-center q=∞⇒minc1∗,…,ck∗∈Vmaxi=1nd(pi,{c1∗,…,ck∗})q = \infty \Rightarrow \min\limits_{c_1^*,\dots,c^*_k\in V} \max\limits_{i = 1}^{n}d(p_i,\{c_1^*,\dots,c_k^*\})q=∞⇒c1∗,…,ck∗∈Vmini=1maxnd(pi,{c1∗,…,ck∗})
- k-median(均值) q=1⇒minc1∗,…,ck∗∑i=1nd(pi,{c1∗,…,ck∗})q = 1 \Rightarrow \min\limits_{c_1^*, \dots, c_k^*}\sum\limits_{i = 1}^{n}d(p_i,\{c_1^*,\dots, c_k^*\})q=1⇒c1∗,…,ck∗mini=1∑nd(pi,{c1∗,…,ck∗})
- k-means q=2⇒minc1∗,…,ck∗∑i=1nd(pi,{c1∗,…,ck∗})2q = 2 \Rightarrow \min\limits_{c_1^*, \dots, c_k^*}\sum\limits_{i = 1}^{n}d(p_i,\{c_1^*,\dots, c_k^*\})^2q=2⇒c1∗,…,ck∗mini=1∑nd(pi,{c1∗,…,ck∗})2
K-center
Gonzalez-k-center (PPP, kkk)
choose c1c_1c1 arbitrary.
C←{c1}C \leftarrow \{c_1\}C←{c1}.
for i = 2 to kkk do
ci=argmaxc∈Pd(c,C)c_i = \arg \max\limits_{c \in P}d(c,C)ci=argc∈Pmaxd(c,C)
C←C∪{ci}C \leftarrow C \cup\{c_i\}C←C∪{ci}output CCC
Lemma 1. suppose k+1k+1k+1 points q1,…,qk+1∈Pq_1,\dots,q_{k+1} \in Pq1,…,qk+1∈P such that d(qi,qj)>2R,i≠j⇒OPT>Rd(q_i, q_j) > 2R, i\not = j \Rightarrow \text{OPT}>Rd(qi,qj)>2R,i=j⇒OPT>R
Proof. suppose OPT≤R\text{OPT} \le ROPT≤R
∃C={c1,…,ck}⇒C1,…,Ck\exists C = \{c_1, \dots, c_k\} \Rightarrow C_1, \dots, C_k∃C={c1,…,ck}⇒C1,…,Ck
∀Ch,p∈Ch,d(p,ch)≤R\forall C_h, p \in C_h, d(p, c_h) \le R∀Ch,p∈Ch,d(p,ch)≤R
According to Pigeonhole principle, ∃qi,qj∈Ch,d(qi,qj)≤d(qi,ch)+d(qj,ch)≤2R\exists q_i,q_j \in C_h,d(q_i,q_j) \le d(q_i,c_h) + d(q_j,c_h) \le 2R∃qi,qj∈Ch,d(qi,qj)≤d(qi,ch)+d(qj,ch)≤2R contradiction.
Theorem 1. CCC is returned. R=maxp∈Pd(p,C)R = \max\limits_{p \in P}d(p,C)R=p∈Pmaxd(p,C),R≤2R∗R \le 2R^*R≤2R∗,R∗R^*R∗ means the optimal solution.
Proof. suppose R>2R∗⇒R > 2R^{*} \RightarrowR>2R∗⇒(每次取出 cic_ici 时 d(ci,C)d(c_i, C)d(ci,C) 是递减的)
∃p∈P,d(p,C)>2R∗⇒∀2≤i≤k,d(ci,{c1,…,ci−1})>2R∗\exist p \in P, d(p, C) > 2R^* \Rightarrow \forall 2 \le i \le k, d(c_i, \{c_1, \dots, c_{i - 1}\}) > 2R^*∃p∈P,d(p,C)>2R∗⇒∀2≤i≤k,d(ci,{c1,…,ci−1})>2R∗
{p,c1,…,ck}\{p, c_1, \dots, c_k\}{p,c1,…,ck} satifies the condition of **Lemma 1. **, so OPT>R∗\text{OPT} > R^*OPT>R∗,contradition.
Define ∀v,radiusr,B(v,r)={u∣d(u,v)≤r}\forall v, \text{radius}\hspace{0.5em} r, B(v,r) = \{u|d(u, v) \le r\}∀v,radiusr,B(v,r)={u∣d(u,v)≤r}
HS-k-center (PPP, kkk)
Guess R∗R^*R∗ the optimal radius (binary search, the bound is [minpi,pj∈P,pi≠pjd(pi,pj),maxpi,pj∈Pd(pi,pj)][\min\limits_{p_i,p_j\in P, p_i \not = p_j} d(p_i, p_j),\max\limits_{p_i,p_j \in P} d(p_i,p_j)][pi,pj∈P,pi=pjmind(pi,pj),pi,pj∈Pmaxd(pi,pj)]).
C←∅,S←PC \leftarrow \varnothing, S \leftarrow PC←∅,S←P
while C≠∅C \not = \varnothingC=∅ do
let ccc be an arbitrary point in SSS
C←C∪{c}C \leftarrow C \cup \{c\}C←C∪{c}
S←S/B(c,2R∗)S \leftarrow S/B(c,2R^*)S←S/B(c,2R∗)
output CCC
Lemma 2. For a guess RRR, return CCC, ∀p∈P,d(p,C)≤2R\forall p \in P, d(p,C) \le 2R∀p∈P,d(p,C)≤2R,if R≥R∗R \ge R^*R≥R∗,∣C∣≤k|C| \le k∣C∣≤k
Proof. Assume c1,c2,…,chc_1, c_2,\dots, c_hc1,c2,…,ch are centers chosen, d(ci,{c1,…,ci−1})>2Rd(c_i, \{c_1, \dots, c_{i - 1}\}) > 2Rd(ci,{c1,…,ci−1})>2R,if h≥k+1h \ge k + 1h≥k+1, according to **Lemma 1. **, R∗>RR^* > RR∗>R,contradiction. So h≤kh \le kh≤k.
所以通过二分法找到的解一定满足 ALG=2R≤2R∗\text{ALG} = 2R \le 2R^{*}ALG=2R≤2R∗,即 α=2\alpha = 2α=2。
K-median
LP form:
minimize∑j∈D∑i∈Fxijd(i,j)subject to∑i∈Fxij=1j∈Dxij≤yii∈F,j∈D∑i∈Fyi≤kyi,xij≥0i∈F,j∈D
\begin{aligned}
\text{minimize} \hspace{0.5em} \sum\limits_{j \in D}\sum\limits_{i \in F}x_{ij}&d(i, j) \\
\text{subject to} \hspace{0.5em} \sum \limits_{i \in F}x_{ij} &= 1 & j \in D\\
x_{ij} &\le y_i & i \in F, j \in D\\
\sum \limits_{i \in F}y_i &\le k\\
y_i,x_{ij}&\ge 0 & i \in F, j \in D \\
\end{aligned}
minimizej∈D∑i∈F∑xijsubject toi∈F∑xijxiji∈F∑yiyi,xijd(i,j)=1≤yi≤k≥0j∈Di∈F,j∈Di∈F,j∈D
随机选 kkk 个点,每次给定一个参数 PPP,随机选 PPP 个点换入再选 PPP 个点换出,每次选取获得代价最小的方案,直到无法继续迭代下去。
Theorem. PPP-swap local search has ratio of (3+2p)\left(3 + \dfrac{2}{p}\right)(3+p2).
K-means
Euclidean KKK-means 参见 Machine Learning
Lloyds-k-means(XXX, kkk)
pick kkk centers c1,…,ckc_1, \dots, c_kc1,…,ck
repeat
(1) find C1,…,Ck,Ci={x∣x∈X,ciis closest to x}C_1, \dots, C_k, C_i = \{x| x\in X,c_i\text{is closest to } x\}C1,…,Ck,Ci={x∣x∈X,ciis closest to x}
(2) cost=∑i=1k∑x∈Cid(x,ci)2\text{cost} = \sum\limits_{i = 1}^{k}\sum \limits_{x \in C_i}d(x,c_i)^2cost=i=1∑kx∈Ci∑d(x,ci)2
(3) for iii = 1 to kkk do ci=1∣Ci∣∑x∈Cixc_i = \dfrac{1}{|C_i|}\sum \limits_{x \in C_i}xci=∣Ci∣1x∈Ci∑x
until cost improvement is small;
output C1,…,CkC_1, \dots, C_kC1,…,Ck.
初始化 cic_ici 为离集合 {c1,…,ci−1}\{c_1,\dots,c_{i - 1}\}{c1,…,ci−1} 最远的点。
D2D^2D2-sampling-k-means++(XXX, kkk)
S={c1}S = \{c_1\}S={c1}, c1c_1c1 is randomly chosen;
for iii = 2 to kkk do
(1) choose cic_ici randomly with p(ci=x)≈d(x,S)2∑ud(u,S)2p(c_i = x) \approx \dfrac{d(x,S)^2}{\sum_u d(u,S)^2}p(ci=x)≈∑ud(u,S)2d(x,S)2
(2) S←S∪{ci}S \leftarrow S \cup \{c_i\}S←S∪{ci}
output SSS.