当前课程知识点:算法设计与分析 > 11 Randomized Algorithms > 11.3 MAX 3-SAT > 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.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 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.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 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
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 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
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 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.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam