当前课程知识点:算法设计与分析 >  2 Basics of Algorithm Analysis >  2.1 Computational Tractability >  Computational Tractability

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

Computational Tractability在线视频

Computational Tractability

下一节:Asymptotic Order of Growth

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

Computational Tractability课程教案、知识点、字幕

弗朗西斯沙利文在科学杂志的文章中说

对我而言

伟大的算法是计算的诗歌

就像诗歌一样

它们可以简洁 暗示 紧凑

甚至是神秘的

但是 一旦被发现

它们就会对计算的某些方面

提出一个全新的启示

对于许多非平凡的问题

都有一种自然的强力搜索算法

即检验所有可能的解

对于大小为n的输入

通常需要2^n或更多的计算时间

这在实践中是不可接受的

对于理想中的算法

我们希望当问题的规模扩大时

运行时间适当增长

具体来说

当输入大小加倍时

算法的运行时间只增加常数倍

即存在常数 c>0 和 d> 0

使得对于每个大小为n的输入

其运行时间在 cn^d 步数之内

如果一个算法的运行时间

满足以上的性质

我们称这个算法是多项式时间算法

对于固定的输入规模n

不同例子的运行时间是不同的

我们考虑最坏情形的运行时间

这种分析方法

通常在实践中有效

最坏情形的算法表现和它实用效果

通常是一致的

另一方面

最坏情况分析的方法

方便我们从数学上进行分析

从理论上很难找到更有效的替代方法

在算法领域

如果一个算法运行时间是多项式的

我们称这个算法是有效的

它在实践中真的有用

在实践中

人们开发的多项式时间算法

往往具有低常系数和低幂次

多项式时间算法

突破了强力搜索算法的指数障碍

通常会展示出问题的一些关键结构

从而可能进一步得到更加有效率的

多项式时间算法

凡事总有例外

确实有一些多项式时间算法

的确具有高常数或高幂次

并且在实践中是无用的

有一些指数时间算法被广泛的使用

因为最坏情况的实例很少出现

比如求解线性规划问题的单纯形算法

我们来对算法的运行时间进行一下比较

表中在每秒可运行100万个

高性能指令的处理器上

不同算法在增长的输入规模下的运行时间

其中 运行时间超过10^25年的时间

记作very long

可以看出

多项式时间算法

相对于指数时间算法增长要慢得多

算法设计与分析课程列表:

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

Computational Tractability笔记与讨论

也许你还感兴趣的课程:

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