当前课程知识点:算法设计与分析 >  8 NP and Computational Intractability >  8.5 Problems in NP >  Problems in NP

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

Problems in NP在线视频

Problems in NP

下一节:NP-Completeness

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

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 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

Problems in NP笔记与讨论

也许你还感兴趣的课程:

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