当前课程知识点:算法设计与分析 >  11 Randomized Algorithms >  11.3 MAX 3-SAT >  MAX 3-SAT

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

MAX 3-SAT在线视频

MAX 3-SAT

下一节:Chernoff Bounds

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

MAX 3-SAT课程教案、知识点、字幕

我们之前学习过3-SAT问题

现在来看一下它的优化版本

MAX 3-SAT

MAX 3-SAT定义为

给定一个3-SAT问题

每个分句中恰有3个文字

求对变量的赋值

使得最多的分句得到满足

比如下面的例子中

3-SAT由5个分句构成

显然 这是一个NP-hard问题

有一个简单的想法

每次独立地投掷一个硬币

根据结果

各以1/2的概率对每个变量赋值为1和0

给定一个由k个分句构成的3-SAT表达式

随机赋值方法满足分句数的期望值为7k/8

证明 令Z_j是一个随机变量

如果分句C_j得到满足

则Z_j=1

否则Z_j=0

令Z为随机赋值可以满足的分句数目

我们有

E[Z]=j从1到k

E[Z_j]之和=j从1到k

C_j得到满足的概率之和

每个分句含有3个文字

随机赋值有7/8的概率

使得这个分句得到满足

有期望的线性性质

上式=7/8k

由上面的结果

我们有推论

对于任意的3-SAT的实例

一定存在着一个赋值

使得至少7/8比例的分句得到满足

证明 这是因为随机变量的取值

不会都小于它的期望

我们已经证明

随机赋值可以满足的分句的比例是7/8

那么一定存在着一个赋值

使得至少7/8比例的分句得到满足

对于近似算法

我们关心算法的近似比

是否可以把这个随机赋值的算法

转化为7/8近似比的算法呢

我们先证明下面的引理

随机赋值算法至少以1/(8k)的概率

满足至少7k/8个分句

证明 令pj为恰有j个分句得到满足的概率

p为至少满足7k/8个分句的概率

7/8k=E[Z]=j从0到k,jp_j

把它按照j<7/8k和j≥7/8k分为两部分

容易看出

第一部分≤(7k/8-1/8)×(对j<7/8k,p_j之和)

+k×(对j≥7/8k,p_j之和)

而对j≥7/8k

p_j之和恰等于p

我们对上式再进一步放大

它≤(7k/8-1/8)×1+kp

比较左右两端

可知 p≥1/8k

下面我们给出一个7/8近似算法

Johnson算法

重复随机赋值算法

直到得到一个赋值

使得至少7k/8分句得到满足

定理 Johnson算法是7/8近似的

证明 由之前的引理

可知 每次随机赋值

使得至少7k/8分句得到满足的概率

至少为1/8k

由之前得到的

等待一次实验成功的期望次数

为一次实验成功的概率的倒数

可知得到一个赋值使得

至少7k/8分句得到满足

随机赋值次数的期望最多为8k

Max 3-SAT还有很多扩展

如 允许每个分句中

有1个 2个或更多的文字

每个分句有个权重

求可满足的分句的权重最大等

Asano-Williamson在2000年

对Max SAT给出了0.784近似算法

对于每个分句至多有3个文字的Max 3-SAT

有7/8近似算法

Hastad在1997年

基于PCP理论

证明了对于MAX-3SAT

因此也对MAX-SAT

不存在ρ近似算法

对于任意ρ>7/8

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

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

MAX 3-SAT笔记与讨论

也许你还感兴趣的课程:

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