当前课程知识点:算法设计与分析 >  8 NP and Computational Intractability >  8.6 NP-Completeness >  NP-Completeness

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

NP-Completeness在线视频

NP-Completeness

下一节:Sequencing Problems

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

NP-Completeness课程教案、知识点、字幕

下面我们讨论NP中重要的子类 NP完全问题

我们之前给出了规约的定义

我们称问题X多项式归约到问题Y

如果X的任意实例可以通过下面步骤解决

第一 多项式次数的标准计算

再加上

多项式次数调用一个求解问题Y的“oracle”

这里的oracle可理解为一个黑箱

它可以单位时间解决问题Y

我们记为X多项式规约成Y

我们把这样的规约称为Cook规约

在分析问题的计算复杂性的时候

我们经常用到Cook规约的一种特殊形式

称为多项式转换

也称为Karp规约

我们说问题X多项式转换为问题Y

如果对于X的任何的一个输入x

我们可以构建Y的一个输入y

使得x是问题X的是实例

当且仅当y是问题Y的一个是实例

这里y的输入规模是x的输入规模的多项式

注意到

多项式转换是多项式规约的一种特殊形式

它只调用了一次求解问题Y的算法

而之前我们讨论的多项式规约

实际上也是多项式转换

一个重要的open问题

这两种规约是等价的吗

对于一个NP问题Y

如果任意的NP问题X

都有X多项式规约到Y

那么称问题Y是NP完全问题

对于NP完全问题

我们有下面的结果

Y是一个NP完全问题

那么Y多项式时间可解

当且仅当P=NP

先证充分性

如果P=NP

因为Y属于NP

那么Y多项式时间可解

再证必要性

如果Y多项式时间可解

令X是任意的NP问题

因为X多项式规约到Y

所以我们可以在多项式时间求解X

因此NP包含于P

我们已经知道 P包含于NP

因此P=NP

一个最基础的问题

是否存在自然的NP完全问题呢

在上世纪70年代初

Cook和Levin独立地给出了第一个

自然的NP完全问题

SAT及3-SAT是NP完全问题

我们省略了定理的证明

而把这个结果作为种子

证明丰富多彩的NP完全问题

如何证明一个问题Y是NP完全的呢

我们先证明Y属于NP

然后选择一个NP完全问题X

证明X多项式规约到Y

那么Y就是NP完全的

令W是任意的NP问题

因为X是NP完全问题

那么 W多项式规约到X

而X多项式规约到Y

由多项式规约的传递性

Y也是NP完全问题

我们将分五个类别

讨论一些经典的NP完全问题

Packing问题 包括独立集问题

Covering问题

包括集合覆盖问题 顶点覆盖问题

限制满足问题 包括SAT及3-SAT问题

顺序问题

包括哈密尔顿圈问题和TSP问题

数的问题

包括子集和问题 划分问题等

首先 这些问题都属于NP

我们之前已经建立了3-SAT问题

到前两类中的问题的规约

因此 包括集合覆盖问题

顶点覆盖问题 限制满足问题

都是NP完全的

下面我们证明后两类问题的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

NP-Completeness笔记与讨论

也许你还感兴趣的课程:

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