- 1
- 0
- 约1.09千字
- 约 48页
- 2020-09-28 发布于福建
- 举报
Chapter 7
动态规划 Dynamic Programming
What is dynamic programming
与分治法类似,动态规划也是通过组合子问题
的解来求解问题
分治算法将问题划分成独立子问题,递归地解决
这些子问题,然后组合这些子问题的解来求解原
始问题
If these subproblems are not independent, what
will happen?
2019/9/24
算法总体思想
动态规划算法与分治法类似,其基本思想也是
将待求解问题分解成若干个子问题
n
T(n/2)
Tn/2)
T(n/2)
T(n/2)
2019/9/24
算法总体思想
但是经分解得到的子问题往往不是互相独立的不同子
问题的数目常常只有多项式量级.在用分治法求解时,
有些子问题被重复计算了许多次.
T 4)T 4)T (n T n 4)T n n 4)T(n T n 14)t( 4)T n 4)T(n ) nT n)T(n)Tn 4)
2019/9/24
算法总体思想
如果能够保存已解决的子问题的答案,而在需要时再拢
出已求得的答案,就可以避免大量重复计算,从而得到
多项式时间算法
Those who cannot remember the past
are doomed to repeat it.
(无法记取教训着必重蹈覆辙)
George Santa
The life of Reason
Book I: Introduction and
Reason in Common
Sense(1905)
2019/9/24
Fibonacci sequence(序列
Fibonacci序列定义如下:
o 1. procedure f(n)
0 2. if n=l or n=2 then return 1
a 3. else return f(n-1)+f(n-2)
这种递归形式有简洁、容易书写和容易査错等
优点,最主要是它的抽象性
■但是它远不是有效的算法
口算法复杂性:@(φ)
a Why???
2019/9/24
Fibonacci sequence分析
f(n)=f(n-1)+f(n-2)
=2(n-2)+f(n-3)
3f(n-3)+2f(n-4)
5f(n-4)+3f(n-5)
ifn=12
(
17n-)+70-2in3
f(0)≈Q),wher
2
2019/9/24
原创力文档

文档评论(0)