当前课程知识点:算法设计与分析 >  8 NP and Computational Intractability >  8.1 Polynomial-Time Reductions >  Polynomial-Time Reductions

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

Polynomial-Time Reductions在线视频

Polynomial-Time Reductions

下一节:Basic Reduction Strategies I

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

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

Polynomial-Time Reductions笔记与讨论

也许你还感兴趣的课程:

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