当前课程知识点:算法设计与分析 > 8 NP and Computational Intractability > 8.3 Basic Reduction Strategies II > Basic Reduction Strategies II
最后给一个通过“小装置”来完成的规约
适定性问题是逻辑中的一个基本问题
布尔变量取值为真与假
文字包括布尔变量和它的否
文字通过逻辑运算符“OR”组成分句
如C_j=x_1 OR x_2 not OR x_3
分句与分句之间通过“AND”构成合取范式
如Φ=C_1 AND C_2 AND C_3 AND C_4
适定性问题为
给定合取范式 简称为CNF
是否存在一组逻辑变量的赋值
使其为真
3-适定性问题是一个特殊的适定性问题
其中每个分句正好有3个文字
比如下例中
就是一个3-适定性问题的实例
容易验证
取x_1 x_2为真 x_3为假
所有的分句都为真
从而整个范式为真
下面 我们把3-SAT多项式时间规约为独立集问题
给定3-适定性问题的任意一个实例Φ
构建独立集问题的一个实例(G,k)
我们证明 有规模为k的独立集
当且仅当Φ是适定的
构建的过程如下
对于Φ的每个分句对应3个顶点
每个顶点对应一个文字
把同一个分句中的3个文字对应的顶点
连成三角形
把对应相反文字的顶点相连
我们给出一个例子
把包含3个分句
3个变量的3CNF
构建出顶点覆盖问题的实例
包含了3组顶点
顶点的连接方式如刚才所描述
再取k=3
为3CNF包含分句的数目
我们证明
有规模为k的独立集
当且仅当Φ是适定的
其中k为3CNF中包含分句的数目
先证必要性
令S是规模为k的独立集
S一定正好包含每个三角形中一个顶点
令这些顶点对应的变量为真
因为这些顶点构成独立集
所有赋值的过程不会有冲突
得到对应的3CNF的一组真值分配
再证充分性
给定一个真值分配
每个三角形中至少有一个顶点
对应的文字为真
那么取其中的一个顶点
令其对应的文字为真
因为顶点的选取来自同一组赋值
因此不同三角形中取出的点不会有边相连
我们得到一个规模为k的独立集
总结一下
我们学习了几种常用的规约方法
简单的问题等价性的规约
如INDEPENDENT-SET≡PVERTEX-COVER
从特殊情形到一般情形的规约
如顶点覆盖多项式规约为
集合覆盖
以及通过一个小装置来完成规约
如3-SAT多项式规约为独立集问题
对于问题间的规约
我们往往要用到规约的传递性
即如果X多项式规约为Y
Y多项式规约为Z
那么X多项式时间规约为Z
这只要把两个多项式时间规约算法
合成一个多项式时间规约算法就可以了
比如3-SAT≤_P INDEPENDENT-SET≤_P VERTEX-COVER≤_P SET-COVER
我们有3-SAT多项式规约为集合覆盖问题
我们再来讨论一下自规约
我们讨论的问题有两类
一类称为判定问题
如是否存在一个不超过k个点的顶点覆盖
还有一类称为搜索问题
如求一个顶点覆盖
使其包含的点最少
自规约是指
把搜索问题规约为相应的判定问题
自规约适用于我们在这一章中
所遇到的所有NP完全问题
因此 我们可以主要关注于判定问题的讨论
我们以顶点覆盖问题为例讨论自规约技术
给定一个数k
可以用顶点覆盖判定问题
来判断是否存在规模不超过k的顶点覆盖
然后用两分搜索可以确定最小的k*
使得存在k^*个点的顶点覆盖
指定一个点v
构建图G-{v}
也就是在图G中去掉v以及和它关联的边
再调用上面的算法
来判断最小顶点覆盖包含的点数
如果其不超过k^*-1
说明原图中
任意的最小顶点覆盖一定包含v
否则可以删除v
而不影响最小顶点覆盖的搜索
对于包含在最小顶点覆盖中的点v
对其进行标记
然后构建图G-{v}
继续搜索其它包含在
最小顶点覆盖中的点
-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