当前课程知识点:算法设计与分析 > 8 NP and Computational Intractability > 8.5 Problems in NP > Problems in NP
我们来看一些属于NP的问题
合数问题
给定一个整数s
它是合数吗
我们可以把s的一个非平凡因子t
作为证书
注意到 这样的证书存在当且仅当s是合数
并且证书的规模不超过输入规模
我们的验证算法是
检验t是s的一个因子
显然这个是多项式时间可以完成的
例如s=437669,t=541或809
因为437,669=541×809
所以s是一个合数
我们的结论是合数问题属于NP
再来看3-适定性问题
给定一个CNF范式Φ
是否存在一组真值分配
对于这个问题的yes实例
证书就是对应的一组真值分配
而验证算法就是把这组赋值带入Φ中
检验每一个分句都为真
比如下面的例子中
证书为变量分别赋值1,1,0,1
或者说真真假真
容易验证这是一个是实例
这些运算可以在多项式时间完成
因此3-适定性问题属于NP
哈密尔顿圈问题是给定一个无向图
是否存在一个简单的圈
经过每个节点
哈密尔顿圈问题的证书
是n个节点的一个排列
验证的过程是检查排列中
包含V中的每一个节点
且只包含一次
并且在相邻的两个点之间
都存在着一条边
这些运算可以在多项式时间完成
因此哈密顿圈问题属于NP
我们定义P类是所有存在
多项式时间算法的判定问题的集合
我们还可以定义EXP类
也就是所有存在着指数时间算法的
判定问题的集合
NP类指的是
存在着多项式时间验证算法的
判定问题的集合
对于这三个类 我们有以下结论
第一 P⊆NP
考虑P中任何一个问题X
由定义可知
存在着多项式时间算法A
可以求解X的任意实例s
我们令证书t为任意一个字符
或者一个空字符串
那么验证算法C(s, t)就是忽略t
而去运行算法A
来检验s是否为是实例
这是一个多项式时间的验证算法
下面我们证明NP⊆EXP
考虑NP中任何一个问题X
由NP的定义
存在着一个多项式时间的验证算法C(s, t)
其中t的长度由输入规模的多项式所控制
令这个多项式为p(|s|)
对于输入s
我们遍历所有可能的字符串t
运行C(s, t)算法来判断s是否属于X
也就是说 在所有的这些t中
如果有一个t使得C(s, t)为真
那么s属于X
否则s不属于X
从而求解了问题X
t的数目不超过输入的指数规模
验证算法C是一个多项式时间算法
从而算法的运行时间
不超过输入规模的指数时间
下面我们讨论最重要的一个科学问题
P和NP之间的关系
早在70年代
科学家们就关注P是否等于NP的问题
换句话说
对于判定问题
是否去求解它和验证它是同样的难度
这个问题也是著名的七个千年问题之一
克雷研究所悬赏100万美元征集它的解答
我们从两方面来看
如果P=NP的话
3染色问题 TSP问题
大数分解问题 适定性问题
都可以找到有效的算法
可以说我们的世界将会发生根本的改变
比如 如果对于大数分解问题
存在多项式时间算法
那么以此为基础的RSA密钥系统将失效
从而我们的密码不再安全
经济甚至可能崩溃
另一方面 如果P不等于NP的话
那么刚才所提到的这些问题
将不存在有效的算法
对一些著名的科学家进行投票的结果表明
大多数人相信
P不等于NP
-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