UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法

前两讲讨论了随机向量的概率不等式的一个应用:半正定规划近似求解整数规划,这一讲我们讨论它的另一个应用——图的max-cut问题。

问题描述

考虑图G=(V,E)G=(V,E)G=(V,E),max-cut的问题是如何画一条曲线,使得与曲线相交的边数最多,记此时的边数为MAX−CUT(G)MAX-CUT(G)MAX−CUT(G),现在我们的目标是设计一个算法,输入图GGG,输出MAX−CUT(G)MAX-CUT(G)MAX−CUT(G)。

我们尝试给出一个正式的定义:
MAX−CUT(G)=max⁡V=V1⊔V2{∣E12∣:(v1,v2)∈E12⊂E,v1∈V1,v2∈V2}MAX-CUT(G) \\= \max_{V = V_1 \sqcup V_2}\{|E_{12}|:(v1,v2) \in E_{12} \subset E,v_1 \in V_1,v_2 \in V_2\}MAX−CUT(G)=V=V1​⊔V2​max​{∣E12​∣:(v1,v2)∈E12​⊂E,v1​∈V1​,v2​∈V2​}

也就是说把图的顶点分割为两类,计算连接不同类顶点的边数,目标是找一种分类方法使得这样的边数最大。

用整数规划建模

接下来我们可以试着建个模,用AAA表示nnn阶无向图G=(V,E)G=(V,E)G=(V,E)的伴随矩阵,
Aij={1,(vi,vj)∈E0,(vi,vj)∉EA_{ij} = \begin{cases} 1, (v_i,v_j) \in E \\ 0, (v_i,v_j) \notin E \end{cases}Aij​={1,(vi​,vj​)∈E0,(vi​,vj​)∈/​E​

用x=(x1,⋯,xn)∈{−1,1}nx = (x_1,\cdots,x_n) \in \{-1,1\}^nx=(x1​,⋯,xn​)∈{−1,1}n表示顶点的分类,等于1的是一类,等于-1的是另一类,则给定xxx作为一个分割,我们可以计算出它"切开"的边数为
CUT(G,x)=12∑xixj=−1AijCUT(G,x)=\frac{1}{2}\sum_{x_ix_j=-1}A_{ij}CUT(G,x)=21​xi​xj​=−1∑​Aij​

首先这个是一个无向图,所以AijA_{ij}Aij​对称,我们需要除以1/2;其次我们要计算的是EEE中连接不同类顶点的边数,我们用xi=1,−1x_i=1,-1xi​=1,−1表示顶点iii的类别,那么顶点i,ji,ji,j不同类说明xixj=−1x_ix_j=-1xi​xj​=−1。

因为xixj=−1or1x_ix_j=-1\ or 1xi​xj​=−1 or1,于是我们可以用1−xixj1-x_ix_j1−xi​xj​代替求和中的约束xixj=−1x_ix_j=-1xi​xj​=−1,只是这样的话在xixj=−1x_ix_j=-1xi​xj​=−1的时候结果就等于2了,所以我们额外再除以2,因此
CUT(G,x)=12∑xixj=−1Aij=14∑i,jAij(1−xixj)=14∑i,jAij−14∑i,jAijxixjCUT(G,x)=\frac{1}{2}\sum_{x_ix_j=-1}A_{ij} = \frac{1}{4}\sum_{i,j}A_{ij}(1-x_ix_j) \\ = \frac{1}{4}\sum_{i,j}A_{ij}-\frac{1}{4}\sum_{i,j}A_{ij} x_ix_jCUT(G,x)=21​xi​xj​=−1∑​Aij​=41​i,j∑​Aij​(1−xi​xj​)=41​i,j∑​Aij​−41​i,j∑​Aij​xi​xj​

第一项是常数,于是
MAX−CUT(G)=max⁡xCUT(G,x)⇔min⁡x∈{−1,1}nxTAxMAX-CUT(G)=\max_x CUT(G,x) \Leftrightarrow \min_{x \in \{-1,1\}^n} x^TAxMAX−CUT(G)=xmax​CUT(G,x)⇔x∈{−1,1}nmin​xTAx

这样我们就把图的Max-cut问题用整数规划表示出来了,遗憾的是这个问题是NP问题,我们需要设计一些算法来做优化。但作为高维统计理论的一个应用,我们对设计算法并不感兴趣,我们想做的是找到MAX−CUT(G)MAX-CUT(G)MAX−CUT(G)的上界和下界,从而为算法的效率与误差分析提供一点帮助。


我们先把这个问题随机化,假设x∼Unif({−1,1}n)x \sim Unif(\{-1,1\}^n)x∼Unif({−1,1}n),则
ECUT(G,x)=12∣E∣≥12MAX−CUT(G)ECUT(G,x)=\frac{1}{2}|E| \ge \frac{1}{2}MAX-CUT(G)ECUT(G,x)=21​∣E∣≥21​MAX−CUT(G)

说明
ECUT(G,x)=E14∑i,jAij(1−xixj)=14∑i,jAij(1−Exixj)=14∑i,jAij(1−ExiExj)=14∑i,jAij=12∣E∣ECUT(G,x) =E\frac{1}{4}\sum_{i,j}A_{ij}(1-x_ix_j) = \frac{1}{4}\sum_{i,j}A_{ij}(1-Ex_ix_j) \\ = \frac{1}{4}\sum_{i,j}A_{ij}(1-Ex_iEx_j) =\frac{1}{4}\sum_{i,j}A_{ij} = \frac{1}{2}|E|ECUT(G,x)=E41​i,j∑​Aij​(1−xi​xj​)=41​i,j∑​Aij​(1−Exi​xj​)=41​i,j∑​Aij​(1−Exi​Exj​)=41​i,j∑​Aij​=21​∣E∣

也就是说我们按均匀分布的思路随机对每个顶点分类,这样得到的分割平均可以“切开”一半的边,称这个结果为0.5-approximation algorithm。另外,MAX−CUT(G)≤∣E∣MAX-CUT(G) \le |E|MAX−CUT(G)≤∣E∣是肯定的,“切开”的边数目一定小于总的边数。这个结果还可以提供的信息是我们就是用抛硬币的方式随便乱切,平均都有一半的边被切到,因此MAX−CUT(G)MAX-CUT(G)MAX−CUT(G)肯定是不小于一半的边数的。

UA MATH567 高维统计II 随机向量8 图的max-cut问题 0.5近似算法相关推荐

  1. UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法的运行时间分析

    UA MATH567 高维统计II 随机向量8 图的Max-cut问题 0.5近似算法的运行时间分析 我们之前讨论了图的max-cut问题的0.5近似算法,也就是给定一张图,按掷硬币的概率决定是否切开 ...

  2. UA MATH567 高维统计II 随机向量9 图的Max-cut问题 0.878近似算法

    UA MATH567 高维统计II 随机向量9 图的Max-cut问题 0.878近似算法 上一讲我们用整数规划对MAX-CUT问题建了模,CUT(G,x)=12∑xixj=−1Aij=14∑i,jA ...

  3. UA MATH567 高维统计II 随机向量10 Grothendieck不等式的证明 版本二:kernel trick

    UA MATH567 高维统计II 随机向量10 Grothendieck不等式的证明 版本二:kernel trick 在介绍亚高斯随机向量的更多应用之前,我们先简单介绍一下核方法(kernel t ...

  4. UA MATH567 高维统计II 随机向量11 kernel的构造 用内积替换反三角函数

    UA MATH567 高维统计II 随机向量11 kernel的构造 用内积替换反三角函数 我们来做上一讲剩下的kernel的构造,完成Grothendieck不等式的证明中的kernel trick ...

  5. UA MATH567 高维统计II 随机向量7 Grothendieck不等式

    UA MATH567 高维统计II 随机向量7 Grothendieck不等式 上一讲我们介绍了用半正定规划近似一个整数规划的方法,要证明这种近似与原整数规划解的大小关系,我们需要Grothendie ...

  6. UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划

    UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划 半正定规划(semidefinite programming, SDP)是凸优化的一个分支: max⁡X⟨A,X⟩s ...

  7. UA MATH567 高维统计II 随机向量5 亚高斯随机向量

    UA MATH567 高维统计II 随机向量5 亚高斯随机向量 这一讲我们将亚高斯分布推广到高维. 亚高斯随机向量 XXX是一个nnn维随机向量,称XXX是亚高斯随机向量如果∀x∈Sn−1\foral ...

  8. UA MATH567 高维统计II 随机向量4 Frame、凸性与各向同性

    UA MATH567 高维统计II 随机向量4 Frame.凸性与各向同性 上一讲末尾我们介绍了frame作为标准正交基的推广的概念,我们称{ui}i=1N,ui∈Rn\{u_i\}_{i=1}^N, ...

  9. UA MATH567 高维统计II 随机向量3 常见的高维随机向量的分布

    UA MATH567 高维统计II 随机向量3 常见的高维随机向量的分布 Spherical Distribution Symmetric Bernoulli Distribution 正态分布 Fr ...

最新文章

  1. react-navigation
  2. 在路上---学习篇(一)Python 数据结构和算法 (4) --希尔排序、归并排序
  3. 设计模式C++实现——观察者模式
  4. 外挂安装eclipse插件
  5. 记一则Hadoop DataNode OOM故障,以及解决方案
  6. 好看的机器人飞船404网html源码
  7. sqlalchemy 事务
  8. javascript自制函数图像生成器
  9. 在linux不能连上互联网的情况下安装IE6
  10. 环网柜超高频局放监测及温升在线监测系统方案
  11. linux怎么使用西部数据,「轉」Linux下西部数据C1门解决方法
  12. 多元统计分析假设检验
  13. Java图形用户界面
  14. 墨刀原型设计工具学习体会——临摹网易云音乐App
  15. div网页布局(做一个简单网页界面为例)
  16. VScode保存快捷键(ctrl+s)失效
  17. 笔试题:输入0123456789对应输出“一二三四五六七八九”
  18. 请不要在“微服务”的狂热中迷失自我!
  19. 帆软(FineReport)报表学习——一个简单的报表
  20. SQL50题(MySQL)

热门文章

  1. 【数据平台】Eclipse+Scala远程开发调试关于hostname的问题
  2. 【正一专栏】读《摆渡人》——原来你在这里
  3. (转载)Web 开发人员需知的 Web 缓存知识
  4. 有关子矩阵最大累加和的总结
  5. 怎么判断有几个滴定突跃点_高中化学怎么学?先看近5年高考化学高频考点知识点分值分析...
  6. Java 7 并发编程指南
  7. CTFshow 反序列化 web262
  8. Valid Sudoku
  9. SSD算法 模板 匹配
  10. [简单题]Counting Duplicates( Python 实现)