当前课程知识点:算法设计与分析 > 8 NP and Computational Intractability > 8.1 Polynomial-Time Reductions > Polynomial-Time Reductions
我们已经学习了一些
算法设计与分析的技术
同学们可能会产生这样一个疑问
是否对于大多数的问题
我们都可以设计出有效的算法
要回答这个问题
我们需要学习计算复杂性理论
回顾一下我们学习过的算法设计的技术
有贪婪算法
比如说可以在O(nlogn)的时间
计算区间排序问题
用分治算法
可以在O(nlogn)的时间实现FFT
用动态规划方法可以在O(n^2)的时间
计算编辑距离等等
还有一种通用的技术
规约的方法
也就是把一个问题的求解
归结为另一个问题的求解
从另一方面来讲
对于某些问题
其计算中存在着本质的困难
在这章里 我们将研究NP完全问题
对于这些问题来说
多项式时间算法是不太可能的
实际上还有其它的一些分类
比如说PSPACE完全问题
对于这些问题
多项式时间的验证算法都是不太可能的
还有一些问题
连求解它的算法都是不可能存在的
在讨论问题的困难性之前
我们先来讨论多项式时间规约
建立问题与问题之间的联系
我们之前已经讨论过什么是有效的算法
在上世纪60年代
经过众多学者的探讨达成的共识是
多项式时间算法
是有效的算法
我们也知道很多的具有有效算法的例子
比如最短路问题 匹配问题 最小割问题
2-满足性问题 平面染色问题
两分图顶点覆盖问题 素数检验问题
但同时 经过长时间的努力
有大量的问题都没有找到
任何的多项式时间算法
这包括最长路问题 三维匹配问题 最大割问题
3-满足性问题 平面三染色问题
顶点覆盖问题 大数分解问题等等
我们希望能够把问题进行分类
分为可以多项式时间求解的问题
和不能够多项式时间求解的问题
目前研究来看
有大量的问题我们不能够判断
它到底在哪一类中
这一章里 我们将证明很多的基础性问题
在某种意义下 它们是计算上等价的
我们采用的技术是多项式时间规约
假设我们能够在多项式时间解决问题X
那么我们还可以做些什么呢
我们先给出规约的定义
我们称问题X多项式时间归约到问题Y
如果X的任何实例都可以通过下面步骤解决
第一 多项式的次数的标准计算 加上2
多项式次数调用一个求解Y的“oracle”
这里的oracle可以理解为一个黑箱
它可以单位时间解决问题Y
我们记为X多项式时间归约为Y
这里有一些注记
我们花时间把Y的实例写入黑箱
因此Y的实例的规模一定是多项式的
我们把这种规约称为Cook规约
之后我们还会介绍常用的Karp规约
我们定义多项式时间规约的目的
是希望把问题
按照求解的困难程度进行分类
一方面 我们在设计算法的时候
如果X多项式时间归约为Y
并且Y是多项式时间可解的
那么X一定也是多项式时间可解
另一方面
我们也可以通过多项式时间规约
建立问题的难解性
如果X多项式时间归约成Y
并且X不能多项式时间求解
那么Y一定也不能够多项式时间求解
进一步
我们可以建立问题多项式可解的等价性
如果X多项式时间归约成Y
并且Y多项式时间归约成X
那么我们说X多项式时间等价于Y
-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