模块03动态规划.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 动态规划 学习要点 Ø理解动态规划算法的概念。 Ø掌握动态规划算法的基本要素 (1)最优子结构性质 (2)重叠子问题性质 Ø掌握设计动态规划算法的步骤。 (1)找出最优解的性质,并刻划其结构特征。 (2)递归地定义最优值。 (3)以自底向上的方式计算出最优值。 (4)根据计算最优值时得到的信息,构造最优解。 学习要点 Ø通过应用范例学习动态规划算法设计策略。 (1)矩阵连乘问题; (2)最长公共子序列; (3)流水作业调度; (4)背包问题; 第一节 动态规划算法的概念 算法总体思想 Ø动态规划算法与分治法类似,其基本思想也是将待 求解问题分解成若干个子问题. = n T(n) T(n/2) T(n/2) T(n/2) T(n/2) 算法总体思想 Ø但是经分解得到的子问题往往不是互相独立的。不 同子问题的数目常常只有多项式量级。在用分治法求 解时,有些子问题被重复计算了许多次。 = n T(n) n/2 n/2 n/2 n/2 T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4)T(n/4) T(n/4)T(n/4)T(n/4) 算法总体思想 Ø如果能够保存已解决的子问题的答案,而在需要时 再找出已求得的答案,就可以避免大量重复计算,从 而得到多项式时间算法。 = n T(n) n/2 n/2 n/2 n/2 T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n/4)T(n/4)T(n/4) T(n/4) T(n/4) 第二节 动态规划算法的基本步骤 动态规划基本步骤 找出最优解的性质,并刻划其 结构特征。 递归地定义最优值。 以自底向上的方式计算出最优 值。 根据计算最优值时得到的信息, 构造最优解。 完全加括号的矩阵连乘积 Ø完全加括号的矩阵连乘积可递归地定义为: (1)单个矩阵是完全加括号的; (2)矩阵连乘积A 是完全加括号的,则A可表示为2个完 全加括号的矩阵连乘积B和C的乘积并加括号,即A=(BC) 设有四个矩阵A,B,C,D ,它们的维数分别是: A = 50× 10 B = 10× 40 C = 40 × 30 D = 30× 5 总共有五种完全加括号的方式 (A((BC)D))(A(B (CD))) ((AB )(CD))(((AB )C)D) ((A(BC ))D) 16000, 10500, 36000, 87500, 34500 矩阵连乘问题 {A ,A ,...,A } Ai A n 给定n个矩阵 1 2 n , 其中 与 i +1 是可乘 的, 。考察这n个矩阵的连乘积 i = 1,2,...,n − 1 A A ...A 1 2 n n 由于矩阵乘法满足结合律,所以计算矩阵的连乘可以有许多 不同的计算次序。

文档评论(0)

zcbsj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档