当前课程知识点:算法设计与分析 >  10 Local Search >  10.2 Maximum Cut >  Maximum Cut

返回《算法设计与分析》慕课在线视频课程列表

Maximum Cut在线视频

Maximum Cut

下一节:Nash Equilibria

返回《算法设计与分析》慕课在线视频列表

Maximum Cut课程教案、知识点、字幕

下面 我们以最大割问题为例

介绍局部搜索算法

在近似算法设计与分析中的应用

最大割问题为

给定一个无向图G=(V,E)

边e有个正整数权重w_e

求一个点的划分(A,B)

使得端点分别位于A和B的

边上的权重之和最大

即最大化w(A,B)

w(A,B)定义为

所有的边(u,v)使得u属于A

v属于B

w_uv之和

比如有这样的应用

有n个活动 m个人

每个人想参加两个活动

如何把活动安排在上下午

使得最多的人能参加2项活动

最大割问题在电路布局 统计物理中

也有着重要的应用

下图中给出了一个实例

把图中的点划分成两部分

分别标上了红蓝两色

那么在所形成的割中

有12条边

基于局部搜索的思想

我们可以设计最大割问题的单移动算法

给定一个划分(A,B)

如果从A向B

或从B向A移动一个节点

会使得目标值更大的话

那么就做相应的移动

算法伪代码如下

令(A,B)是一个随机的划分

当存在点v

对它移动可以增加目标值

若v不属于A

那么把它从B中删除 加入A

否则 把它从A中删除 加入B

最后返回割(A,B)

令(A,B)为算法返回的局部最优解

(A^*,B^*)为最优解

那么我们得到的目标值w(A,B)≥1/2倍

所有边上权重之和

也就≥1/2倍的最优值w(A^*,B^*)

证明

对于A中的任意节点u

把它移动到集合B

增加的目标值为对A中的任意点v

w_uv之和

减少的目标值为

对B中的任意点v

w_uv之和

(A,B)为一个局部最优解

因此对A中的任意点v

w_uv之和≤对B中的任意点v

w_uv之和

把这些关于u的不等式加到一起

我们有

两个端点都属于A的边上权重之和的两倍

小于等于两个端点分属A,B的边上权重之和

即w(A,B)

类似地

我们有两个端点都属于

B的边上权重之和的两倍

小于等于两个端点分属AB的边上的权重之和

即w(A,B)

现在 考虑所有边上的权重之和

它等于两个端点都属于A的边上的权重之和

加上两个端点分属A,B的边上的权重之和

加上两个端点都属于B的边上的权重之和

由上面得到的不等式 可知

所有边上的权重之和≤2倍的w(A,B)

命题得证

以上的局部搜索算法

保证得到的目标值最少是最优值的1/2

但却不是一个多项式时间算法

我们需要对它加以改进

每次我们选择移动点的时候

不仅要求目标值提升

而且要求至少提升2ε/n w(A,B)

我们可以证明

这个改进的算法得到的目标值满足

(2+ε)w(A, B)≥w(A^*,B^*)

这只要在原始的证明中

不等式增加2ε/nw(A,B)

就可以得到

我们关注算法的运行时间

改进算法的运行时间为O(n/εlogW)

其中W为所有边上权重之和

每次移动可以提升目标值至少(1+ε/n)倍

那么n/ε次移动后目标值至少翻倍

这是因为对任意x≥1

由简单的微积分计算可知 (1+1/x)^x≥2

初始的时候目标值至少为1

最大割值至多为W

因此算法翻倍的次数至多logW次

这就得到了所需的结果

对于最大割问题

Sahni和Gonzales 早在1976年

就得到了1/2近似算法

Goemans-Williamson 在1995年

通过SDP松弛和随机取舍的方法

得到了0.878的近似算法

这也是在算法领域里一个里程碑式的工作

Hastad在1997年 基于PCP理论证明了

除非P=NP

最大割问题没有好于16/17近似的算法

算法设计与分析课程列表:

1 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--Asymptotic Order of Growth

-2.3 A Survey of Common Running Times

--A Survey of Common Running Times

-Homework2

-Lecture note 2

--Lecture note 2 Basics of Algorithm Analysis

3 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--Testing Bipartiteness

-3.4 Connectivity in Directed Graphs

--Connectivity in Directed Graphs

-3.5 DAG and Topological Ordering

--DAG and Topological Ordering

-Homework3

-Lecture note 3

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--Polynomial-Time Reductions

-8.2 Basic Reduction Strategies I

--Basic Reduction Strategies I

-8.3 Basic Reduction Strategies II

--Basic Reduction Strategies II

-8.4 Definition of NP

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--Numerical Problems

-8.9 co-NP and the Asymmetry of NP

--co-NP and the Asymmetry of NP

-Homework8

-Lecture note 8

--Lecture note 8 NP and Computational Intractability

9 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

Maximum Cut笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。