高级算法笔记2

Scheduling on Parallel Machines

  • 给定任务集合 J={J1,J2,…,J∣J∣}\mathscr{J} = \{J_1,J_2,\dots,J_{|\mathscr{J}|}\}J={J1,J2,,JJ},机器集合 M={M1,M2,…,M∣M∣}\mathscr{M} = \{M_1,M_2,\dots,M_{|\mathscr{M}|}\}M={M1,M2,,MM}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 toMiMxijJjJxijpijxij=1t{0,1}JjJMiMMiM,JjJ

  • 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):MiM,JjJ,pijT},我们只需判定以下约束是否存在可行解:

∑(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)STxij(i,j)STxijpijxij=1T{0,1}JjJMiM(i,j)ST

  • 现将 xij∈{0,1}x_{ij} \in \{0, 1\}xij{0,1} 放宽限制至 xij≥0x_{ij} \ge 0xij0,通过单纯形算法求出一组解 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|}JM 个为 1 的变量。

证明 假设 J\mathscr{J}J 中有 α\alphaα 个只分给一台 MiM_iMiJjJ_jJjβ\betaβ 个不止分给一台 MiM_iMiJjJ_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{αJMβM

  • 显然 LP(T)LP(T)LP(T)0≤xij≤10 \le x_{ij} \le 10xij1,我们将 xijx_{ij}xij 中为 0 和为 1 的变量保留,构建二分图 G=<J∪M,E>G = <\mathscr{J} \cup \mathscr{M},E>G=<JM,E>,若 xij>0x_{ij} > 0xij>0,将 MiM_iMiJjJ_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 / FvJ/F,删去该点及其唯一的连边,剩下的图依然满足 Lemma 1,且叶子结点均属于 M\mathscr MM。对于树,可以从叶子结点开始不断往上贪心取匹配;对于基环树,贪心匹配去除环外的树,剩下的一定是一个偶环。即总一定存在一个关于 FFF 的完美匹配。

  • 将完美匹配对应的 xijx_{ij}xij 设为 1,由匹配的定义以及 pij≤Tp_{ij} \le TpijT,调整后得到的解至多扩大到原来解的两倍,故我们得到了 α=2\alpha = 2α=2 的近似算法。

  • 构造以下例子可使 α\alphaα 无限接近取到 2:

    • mmm 台机器,m(m−1)+1m(m - 1) + 1m(m1)+1 个任务,其中一个任务 J1J_1J1 处理时间为 mmm,其余为 1。
    • 线性规划找到的解可能是 xi1=1mx_{i1} = \dfrac{1}{m}xi1=m1,其余 jjj 恰有一个 xij=1x_{ij} = 1xij=1
    • 这时候调整得到的解就为 2m−12m - 12m1,实际最优解为 mmm

Knapsnack

  • nnn 的输入位数为 ⌊log⁡2n⌋+1\lfloor \log_2 n\rfloor + 1log2n+1

    • a1,a2,…,ana_1, a_2, \dots, a_na1,a2,,an 排序 ,把 max⁡{log⁡2ai}\max\{\log_2a_i\}max{log2ai} 认为是常数,输入规模为 nnn
    • 判定 NNN 是否为素数,输入规模为 log⁡2N\log_2Nlog2N
  • 背包问题的时间复杂度 O(nB)\mathcal O(nB)O(nB),输入规模只有 log⁡B+log⁡n+∑i=1nlog⁡size(ai)+∑i=1nlog⁡profit(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=1nlogsize(ai)+i=1nlogprofit(ai),有 2log⁡B=B2^{\log B} = B2logB=B,是伪多项式算法。

  • unnary encoding 编码长度等于数字大小,记 ∣I∣u|I|_uIu 表示输入 III 在 unnary encoding 下的长度,∣I∣|I|I 表示输入III 在 binary encoding 下的长度。

  • 伪多项式算法 时间复杂度是 ∣I∣u|I|_uIu 的多项式。

  • 多项式算法 时间复杂度是 ∣I∣|I|I 的多项式。

  • strongly NP-hard 在 unnary encoding 下仍然是 NP-hard。一个 strongly NP-hard 问题没有伪多项式解法除非 P = NP。

  • weakly NP-hard 在 binary encoding 下是 NP-hard,但存在伪多项式算法。

  • P=max⁡profit(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),∀0jnP,j=1,j=profit(a1),A[i,j]==min{A[i,p],size(ai+1)+A[i,pprofit(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 \varepsilonOPTobjΠ(I,s)OPTεA\mathscr{A}A 的时间复杂度是 ∣I∣|I|I 的多项式。

  • fully polynomial-time approximation scheme(FPTAS,完全多项式时间近似方案) 一个算法满足 A\mathscr{A}A 满足 PTAS 对解的要求且运行时间是 ∣I∣|I|I1ε\dfrac{1}{\varepsilon}ε1 的多项式。

KnapsackScaling(III, ε\varepsilonε)

K←εPnK \leftarrow \dfrac{\varepsilon P}{n}Knε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=1kKprofit(oi)i=1kprofit(oi)kKprofit(S)nKprofit(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(Iu) ,若该最小化问题存在一个FPTAS,则一定存在一个对应的伪多项式算法。

证明 假设存在一个 FPTAS,取 ε=1p(∣I∣u)\varepsilon = \dfrac{1}{p\left(|I|_u\right)}ε=p(Iu)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} {ALGOPTALG(1+ε)OPT<OPT+1ALG=OPT
该算法的时间复杂度是关于 ∣I∣|I|Ip(∣I∣u)p(|I|_u)p(Iu) 的多项式,即时间复杂度是 ∣I∣u|I|_uIu 的多项式。

  • 一个 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,每次选择后续选择期望更大的决策,由归纳法

    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(Wx1=0)+E(Wx1=1)2OPTE(Wx1=b1)E(Wx1=1b1)E(Wx1=b1)2OPT

    2. 归纳
      {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(Wx1=b1,,xi=bi)2OPTE(Wx1=b1,,xi=bi)=2E(Wx1=b1,,xi=bi,xi+1=0)+E(Wx1=b1,,xi=bi,xi+1=1)E(Wx1=b1,,xi=bi,xi+1=bi+1)E(Wx1=b1,,xi=bi,xi+1=1bi+1)E(Wx1=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(Wx1=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=iPjxiiNjxi

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=1mwjzjsubject toiPjyi+iNj(1yi)0yi10zj1zj∀1jm∀1in∀1jm

  • 设求出的解为 (y∗,z∗)(y^*, z^*)(y,z),则以 yi∗y^*_iyi 的概率置 xix_ixi 为 1 可得到一个期望 α=1−1e\alpha = 1 - \dfrac{1}{e}α=1e1 的近似算法。

(分析过程不考)

证明

  • 由均值不等式

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=1nai1n调和平均数ni=1naini=1naini=1nai2几何平均数算术平均数平方平均数

  • 考虑此时某个子句 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} iPj(1yi)iNjyilj1iPj(1yi)+iNjyilj=1lj1iPjyj+iNj(1yj)lj(1ljzj)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(1ljzj)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 0zj[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+xex,有

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(1ljzj)lj[1(1lj1)lj]zj(1e1)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=1m(1e1)wjzj(1e1)OPTLP(1e1)OPTILP

  • 同样可以通过条件期望将上述算法改为 α=(1−1e)\alpha = \left(1 - \dfrac{1}{e}\right)α=(1e1) 的近似算法,每次选择期望下界更大的决策,证明同上。

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(1lj1)lj]zj+(12lj)}21{[1(1lj1)lj]+(12lj)}zj

  • 容易证明这两个函数的均值 ≥0.75\ge 0.750.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 3V3 时恒有 Δ(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) 表示 TTTuuu 的度数。

  • improving flip 对于 TTT 中的结点 vvv,存在 (u,w)∈E(G)/E(T)(u, w) \in E(G)/E(T)(u,w)E(G)/E(T)vvvTTTuuuwww 的路径上且 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,删去在 TTTuuuwww 路径上且与 vvv 相邻的边,增加边 (u,w)(u,w)(u,w),得到新的生成树 T′T'T

  • l=⌈log⁡2n⌉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 do

do the improving flip

  • 可以证明,算法可在 O(n4)\mathcal O(n^4)O(n4) 次迭代后结束。
  • 对于 GGG 的任意一棵生成树 TTT,删去 TTTkkk 条边将 TTT 分为 k+1k + 1k+1 个连通块,设 E′E'EE(G)E(G)E(G) 中连接不同连通块的所有边,取 SSSE′E'E 的点覆盖。
  • Lemma 1. OPT≥k∣S∣\text{OPT} \ge \dfrac{k}{|S|}OPTSk

证明 ∣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'|SOPT=S∣Δ(T)vSdegT(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 kE(T)Ek,移项后即有 OPT≥k∣S∣\text{OPT} \ge \dfrac{k}{|S|}OPTSk

  • 对于 GGG 通过上述算法得到的一棵生成树 TTT∀1≤i≤Δ(T)\forall 1 \le i \le \Delta(T)∀1iΔ(T),令 Si={v∣v∈V(G)∧degT(v)≥i}S_i = \{v | v\in V(G)\wedge \text{deg}_T(v) \ge i\}Si={vvV(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(uSivSi)}
  • 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,Si12∣Si

证明 反证法,假设不存在,则有 ∣SΔ(T)−l∣>2l∣SΔ(T)∣=2⌈log⁡2n⌉∣SΔ(T)∣≥n|S_{\Delta(T) - l}| > 2^l|S_{\Delta(T)}| = 2^{\lceil\log_2n\rceil}|S_{\Delta(T)}| \ge nSΔ(T)l>2lSΔ(T)=2log2nSΔ(T)n,矛盾。

  • Lemma 3.Δ(T)≥l\Delta(T) \ge lΔ(T)l∀i≥Δ(T)−l+1\forall i \ge \Delta(T) - l + 1iΔ(T)l+1
    1. ∣Ei∣≥(i−1)∣Si∣+1|E_i| \ge (i - 1)|S_i| + 1Ei(i1)Si+1
    2. 对于每条连接 T/EiT/E_iT/Ei 不同连通块且满足 e∈E(G)/Eie\in E(G)/E_ieE(G)/Ei 的边 eee 至少有一个顶点属于 Si−1S_{i - 1}Si1

证明 1. ∣Ei∣≥i∣Si∣−(∣Si∣−1)=(i−1)∣Si∣+1|E_i| \ge i|S_i| - (|S_i| - 1) = (i - 1)|S_i| + 1EiiSi(Si1)=(i1)Si+1(最坏情况下 SiS_iSi 中的点形成一棵树,因此要扣掉重复的边)

  1. 显然满足该条件的边 eee 两个顶点在 TTT 中的度数均小于 iii,若两者的度数均小于 i−1i - 1i1。由于边 eee 连接的两个连通块之间一定存在一条属于 EiE_iEi 的边,则可以进行一次 improving flip,与 TTT 的定义不同。
  • Theorem. Δ(T)≤2OPT+l\Delta(T) \le 2\text{OPT} + lΔ(T)2OPT+l

证明

  1. Δ(T)<l\Delta(T) < lΔ(T)<l,显然该结论成立。

  2. Δ(T)≥l\Delta(T) \ge lΔ(T)l,取 **Lemma 2. *** 中的 iii,删去 TTT 中的边集 EiE_iEi 得到 ∣Ei∣+1|E_i| + 1Ei+1 个连通块,由 **Lemma 3. (2) ** Si−1S_{i - 1}Si1 一定是 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} OPTSk=Si1EiSi1(i1)Si+12∣Si(i1)Si+1>2i12Δ(T)l

  • 若取 l=⌈log⁡bn⌉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,Si1bSi,最终能够得出 Δ(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)

  1. Find a good(comparatively, no constraints) initial solution S0∈S(I)S_0 \in S(I)S0S(I)

  2. S←S0S \leftarrow S_0SS0

  3. repeat

    if ∃S′∈N(S)\exists S' \in N(S)SN(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'SS;

    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)|OPTval(S0).

Objective

  1. find S′S'S polynomial time?
  2. 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:

  1. S=∅S = \varnothingS=

  2. repeat

    if ∃v∈V/S\exists v \in V / SvV/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 + vSS+v;

    else if ∃v∈S\exists v \in SvS such that w(σ(S−v))>w(σ(S))w(\sigma(S - v)) > w(\sigma(S))w(σ(Sv))>w(σ(S))

    S←S−vS \leftarrow S - vSSv;

    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)vVw(σ(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))=21vVw(σ(S)σ(v))21vV2w(σ(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

  1. the running time is strongly polynomial
  2. the quality of solution is almost optimal

n=∣V∣n = |V|n=V

Modified LScut(ε\varepsilonε)

  1. S←{v∗},v∗=arg⁡max⁡v∈V{w(σ(v))}S \leftarrow \{v^{*}\}, v^* = \arg \max \limits_{v \in V}\{w(\sigma(v))\}S{v},v=argvVmax{w(σ(v))}

  2. repeat

    if ∃v∈V/S\exists v \in V / SvV/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 + vSS+v
    >
    else if ∃v∈S\exist v \in SvS such that w(σ(S−v))>(1+εn)w(σ(S))w(\sigma(S - v)) > \left(1 + \dfrac{\varepsilon}{n}\right)w(\sigma(S))w(σ(Sv))>(1+nε)w(σ(S)) then S←S−vS \leftarrow S - vSSv
    >
    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))=21vVαv=21vV2[(βv+αv)(βvαv)]41vV[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εnlog⁡n)\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} vVw(σ(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ε)kw(σ(S))w(E)2n
According to lim⁡n→∞(1+εn)nε=e\lim \limits_{n \to \infty}\left(1 + \dfrac{\varepsilon}{n}\right)^{\frac{n}{\varepsilon}} = enlim(1+nε)εn=eeεnk≤n2⇒k=O(nlog⁡nε)e^{\frac{\varepsilon}{n}k} \le \dfrac{n}{2} \Rightarrow k = \mathcal O\left(\dfrac{n \log n }{\varepsilon}\right)enεk2nk=O(εnlogn)

Center Based Clustering

Euclidean Space

  • d(x,y)=∥x−y∥d(x,y) = \parallel x - y\paralleld(x,y)=∥xy

metric space

  • VVV 为点集,存在一个映射一个映射 d:V×V→Rd: V\times V \to Rd:V×VR∀u,v,w∈V\forall u,v,w\in Vu,v,wV

    1. d(u,v)=d(v,u)d(u, v) = d(v, u)d(u,v)=d(v,u)
    2. d(u,v)≥0d(u, v) \ge 0d(u,v)0d(u,v)=0⇔u=vd(u, v) = 0 \Leftrightarrow u = vd(u,v)=0u=v
    3. 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,BV,pV

    • d(A,B)=min⁡p∈A,q∈Bd(p,q)d(A,B) = \min\limits_{p \in A, q\in B}d(p,q)d(A,B)=pA,qBmind(p,q)
    • d(p,A)=min⁡q∈Ad(p,q)d(p,A) = \min\limits_{q\in A}d(p,q)d(p,A)=qAmind(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=1nd(pi,{c1,,ck})q, qqq is a constant.

  • k-center q=∞⇒min⁡c1∗,…,ck∗∈Vmax⁡i=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,,ckVmini=1maxnd(pi,{c1,,ck})
  • k-median(均值) q=1⇒min⁡c1∗,…,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=1c1,,ckmini=1nd(pi,{c1,,ck})
  • k-means q=2⇒min⁡c1∗,…,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=2c1,,ckmini=1nd(pi,{c1,,ck})2

K-center

Gonzalez-k-center (PPP, kkk)

  1. choose c1c_1c1 arbitrary.

  2. C←{c1}C \leftarrow \{c_1\}C{c1}.

  3. for i = 2 to kkk do

    ci=arg⁡max⁡c∈Pd(c,C)c_i = \arg \max\limits_{c \in P}d(c,C)ci=argcPmaxd(c,C)
    C←C∪{ci}C \leftarrow C \cup\{c_i\}CC{ci}

  4. output CCC

Lemma 1. suppose k+1k+1k+1 points q1,…,qk+1∈Pq_1,\dots,q_{k+1} \in Pq1,,qk+1P 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=jOPT>R

Proof. suppose OPT≤R\text{OPT} \le ROPTR

∃C={c1,…,ck}⇒C1,…,Ck\exists C = \{c_1, \dots, c_k\} \Rightarrow C_1, \dots, C_kC={c1,,ck}C1,,Ck

∀Ch,p∈Ch,d(p,ch)≤R\forall C_h, p \in C_h, d(p, c_h) \le RCh,pCh,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 2Rqi,qjCh,d(qi,qj)d(qi,ch)+d(qj,ch)2R contradiction.

Theorem 1. CCC is returned. R=max⁡p∈Pd(p,C)R = \max\limits_{p \in P}d(p,C)R=pPmaxd(p,C)R≤2R∗R \le 2R^*R2RR∗R^*R means the optimal solution.

Proof. suppose R>2R∗⇒R > 2R^{*} \RightarrowR>2R(每次取出 cic_icid(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^*pP,d(p,C)>2R∀2ik,d(ci,{c1,,ci1})>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)={ud(u,v)r}

HS-k-center (PPP, kkk)

  1. Guess R∗R^*R the optimal radius (binary search, the bound is [min⁡pi,pj∈P,pi≠pjd(pi,pj),max⁡pi,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,pjP,pi=pjmind(pi,pj),pi,pjPmaxd(pi,pj)]).

  2. C←∅,S←PC \leftarrow \varnothing, S \leftarrow PC,SP

  3. while C≠∅C \not = \varnothingC= do

    let ccc be an arbitrary point in SSS

    C←C∪{c}C \leftarrow C \cup \{c\}CC{c}

    S←S/B(c,2R∗)S \leftarrow S/B(c,2R^*)SS/B(c,2R)

  4. output CCC

Lemma 2. For a guess RRR, return CCC, ∀p∈P,d(p,C)≤2R\forall p \in P, d(p,C) \le 2RpP,d(p,C)2R,if R≥R∗R \ge R^*RR∣C∣≤k|C| \le kCk

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,,ci1})>2R,if h≥k+1h \ge k + 1hk+1, according to **Lemma 1. **, R∗>RR^* > RR>R,contradiction. So h≤kh \le khk.

所以通过二分法找到的解一定满足 ALG=2R≤2R∗\text{ALG} = 2R \le 2R^{*}ALG=2R2R,即 α=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} minimizejDiFxijsubject toiFxijxijiFyiyi,xijd(i,j)=1yik0jDiF,jDiF,jD

随机选 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)

  1. pick kkk centers c1,…,ckc_1, \dots, c_kc1,,ck

  2. 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={xxX,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=1kxCid(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=Ci1xCix

    until cost improvement is small;

  3. output C1,…,CkC_1, \dots, C_kC1,,Ck.

初始化 cic_ici 为离集合 {c1,…,ci−1}\{c_1,\dots,c_{i - 1}\}{c1,,ci1} 最远的点。

D2D^2D2-sampling-k-means++(XXX, kkk)

  1. S={c1}S = \{c_1\}S={c1}, c1c_1c1 is randomly chosen;

  2. 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\}SS{ci}

  3. output SSS.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值