当前课程知识点:算法设计与分析 >  5 Divide and Conquer >  5.6 Convolution and FFT >  Convolution and FFT

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

Convolution and FFT在线视频

Convolution and FFT

下一节:FFT

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

Convolution and FFT课程教案、知识点、字幕

快速傅里叶变换 FFT

是20世纪十大算法之一

在科学和工程上起到了至关重要的作用

又把算法的简洁优美凝练

发挥的淋漓尽致

查尔斯范龙安说

FFT是20世纪最伟大的计算成就

它使得科学和工程发生了改变

不夸张的说

没有FFT 我们不知道今天的生活将会怎样

在介绍这个伟大的算法之前

我们先做一些数学上的准备

多项式 是数学上一种基本的研究对象

它有两种基本的表达形式

系数形式和点值形式

一个n-1次多项式可以由n个系数来确定

给定两个n-1次多项式 A(x),B(x)

它们的系数分别为a_0…a_n-1,b_0…b_n-1

我们关心多项式的相关的运算

最常见的运算有加法 取值以及乘法

对于系数形式的多项式来说

加法是平凡的

A(x)+B(x)

得到的也是一个n-1次多项式

其系数为a_0+b_0,…,a_n-1+b_n-1

所需要的运算次数为O(n)的

估值话我们可以采用Horner的办法

把多项式进行如下形式的转换

我们可以看到

只需要进行O(n)次算术运算

可以实现估值的计算

两个系数形式的多项式的乘法

我们称为卷积

如果平凡地把两个多项式相乘再展开

得到一个2n-2次的多项式

所需要的算术运算次数是O(n^2)的

多项式是数学中一个基本的研究对象

著名的高斯的代数学基本定理

就是关于多项式的

高斯证明了

复数域上度数为n的多项式至多有n个根

作为它的推论

我们有 一个度数为n-1的多项式

可以由它在n个不同的点的取值所唯一确定

注意 这里n个不同的点可以是取自复数域的

从而我们可以给出

多项式的第二种表达方式

点值形式

一个n-1次多项式

可以由n个不同点的值所唯一确定

同样地

我们还是关心多项式的三种基本运算

对于加法来说

仍然是平凡的

两个n-1多项式A(x),B(x)

给定它们在n个不同点处的值

对它们进行加法

所得到的也是一个n-1次多项式

在同样的n个点处的值为

A(x)与B(x)相应取值的和

需要O(n)次算术运算

对于乘法来说

它们相乘后的结果是一个2n-2次多项式

所以我们需要多项式A(x)与B(x)

在2n-1个点处的值

容易看出

乘积多项式

在这2n-1个点处的值为

A(x)与B(x)相应取值的乘积

这需要O(n)次算术运算

对于点值形式

估计它在某一个点处的值要复杂一些

我们可以用拉格朗日插值公式来计算

所需要的运算次数是n2级别的

通过以上的分析 我们看到

对于两种不同的表达方式

加法都可以快速的实现

而对于乘法和估值这两种运算来说

系数形式和点值形式各有优劣

我们希望 对于不同的多项式表达方式

我们都能够

快速地实现乘法和估值的运算

我们如果能够快速地

把多项式的两种方式进行转换

那么对于相应的运算

我们就可以采用合适的多项式表达方式

来进行计算和实现

我们先考虑把系数形式转化为点值形式

给定一个n-1次的多项式

系数为a_0…a_n-1

我们希望能够计算出在n个不同点

x_0到x_n-1处的值y_0到y_n-1

它们的表达式可以写成矩阵的形式

这需要O(n^2)次算术运算

反过来 如果已知点值形式

要求给出系数形式

相当于去求解

以a_0…a_n-1为变量的线性方程组

采用高斯消元法的话

需要O(n^3)次算术运算

我们采用分治的思想

由系数形式转换为点值形式

把多项式分为奇数项和偶数项

比如 给定一个七次多项式A(x)

我们定义两个小多项式

分别称为

A偶次多项式和A奇次多项式

容易验证

A(x)=A偶次多项式和A奇次多项式

在x^2处取值的和

以及A(-x)=这两个多项式在x^2处取值的差

由此我们发现

可以选两个点+1,-1

只要知道了

A偶次多项式和A奇次多项式

在+1点处的值

我们就可以算出原多项式

在+1,-1两点处的值

对于一般的多项式

我们也有一样的结论

我们把这种想法继续深化

我们可以选择四个点

+1,-1,+i,-i

我们发现 如果计算出

A偶次多项式和A奇次多项式

在+1,-1两点处的值

就可以算出原多项式在+1,-1,+i,-i点处的值

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

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

Convolution and FFT笔记与讨论

也许你还感兴趣的课程:

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