1
第
第
7
7
章 动态规划
章 动态规划
2
学习要点 :
理解动态规划算法的概念。
掌握动态规划算法的基本要素
( 1 )最优子结构性质
( 2 )重叠子问题性质
掌握设计动态规划算法的步骤。
(1) 找出最优解的性质,并刻划其结构特征。
(2) 递归地定义最优值。
(3) 以自底向上的方式计算出最优值。
(4) 根据计算最优值时得到的信息,构造最优解。
3
通过应用范例学习动态规划算法设计策略。
( 1 )矩阵连乘问题;
( 2 )最长公共子序列;
( 3 )最大子段和
( 4 )背包问题;
( 5 )最优二叉搜索树。
4
动态规划算法与分治法类似,其基本思想也是将待求
解问题分解成若干个子问题
算法总体思想
算法总体思想
n
T(n/2)
T(n/2) T(n/2) T(n/2)
T(n)
=
5
但是经分解得到的子问题往往不是互相独立的。不同
子问题的数目常常只有多项式量级。在用分治法求解
时,有些子问题被重复计算了许多次。
算法总体思想
算法总体思想
n
T(n)
=
n/2
T(n/4)T(n/4)T(n/4)T(n/4)
n/2
T(n/4)T(n/4)T(n/4)T(n/4)
n/2
T(n/4)T(n/4)T(n/4)T(n/4)
n/2
T(n/4)T(n/4)T(n/4)T(n/4)