动态规划与矩阵连乘.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划与矩阵连乘.ppt

动态规划 学习要点: 理解动态规划算法的概念。 掌握动态规划算法的基本要素 (1)最优子结构性质 (2)重叠子问题性质 掌握设计动态规划算法的步骤。 (1)找出最优解的性质,并刻划其结构特征。 (2)递归地定义最优值。 (3)以自底向上的方式计算出最优值。 (4)根据计算最优值时得到的信息,构造最优解。 通过应用范例学习动态规划算法设计策略。 (1)矩阵连乘问题; (2)最长公共子序列; (3)图的任意两点间的最短距离 (4)背包问题; 问题 1.问题求解的分类:求任意解,求最优解 (工作量哪个大?) 求最优解的算法大都具有指数级的复杂度,因此好的方法很重要,有一种多项式时间的复杂度算法---动态规划 常用名词: 状态:对于一个问题,所有可能到达的情况 状态变量:对每个状态K关联一个状态变量Sk , 它的值表示状态K所对应的问题的当前解值。 决策:是一种选择,对于每一个状态,都可以选择一种方法,从而到达下一个状态 决策变量:在状态K下的决策变量Dk的值表示状态K当前所做出的决策 策略:一个决策 的集合,满足某些最优条件的策略称为最优策略 状态转移函数(T):从一个状态到另一个状态,可以依据一定的规则来前进,我们用一个函数T来描述这样的规划,它将状态I和决策变量Dij映射到另一个状态j 状态转移方程: 注意:有限个状态变量,每个状态变量取有限个不同的值。这样,总的状态个数为有限。 毕竟:人类只能处理有限的事物(有限时间) 最优化原理: 1951年,美国数学家R.Bellman等人,提出 了最优化原理( Principle of Optimality) 一个最大优策略的子策略,对于它的初态和终态而言也必是最优的 数学描述: 最优化原理是动态规划的基础。 可用动态规划来解决的问题,要符合如个条件: 1.满足最优化原理 2.状态满足无后效性 动态规划基本步骤 找出最优解的性质,并刻划其结构特征。 递归地定义最优值。 以自底向上的方式计算出最优值。 根据计算最优值时得到的信息,构造最优解。 动态规划的两种不同的思维法: 逆向思维法 正向思维法 回顾矩阵相乘: 单个乘法次数:n 单个加法次数:n-1 总的乘法次数:m*n*l 总的加法次数:m*(n-1)*l 举例: 设有以下四个矩阵 m12=35*40*20=28000 m23=40*20*10=8000 m34=20*10*15=3000 m13=min{m12+35*20*10,m23+35*40*10} =min{28000+7000,8000+14000} =22000 同样有:m24=14000 m14=min{m24+35*40*15,m12+m34+35*20*15,m13+35*10*15} =min{14000+21000,28000+3000+10500,22000+5250} =min{35000,41500,27250}=27250 最佳乘法顺序为: ((A1(A2A3))A4) 思考题: 13球问题: 有13个足球,其中12个足球重量一样,另1个为次品,重量与其它12个不一样,现有一架天平,请用这架天平称3次把这个次品球找出来。 13足球问题: 引入如下符号: * * 动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干个子问题 算法总体思想 n T(n/2) T(n/2) T(n/2) T(n/2) T(n) = 但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。 算法总体思想 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) 如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。 算法总体思想 n = n/2 T(n/4) T(n/4) T(n/4) T(n/4) n/2 n/2 T(n/4) T(n/4) n/2 T(n/4) T(n/4) T(n/4) T(n/4) T(n/4) T(n) (1)单个矩阵是完全加括号的; (2)矩阵连乘积 是完全加括号的,则 可 表示为2个完全加括号的矩阵连乘积 和 的乘积并加括号,即 16000, 10500, 36000, 87500, 34500 完全加括号的矩阵连乘积可递归地定义为: 设有四个矩阵 ,它们的维数分别是:

文档评论(0)

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

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

1亿VIP精品文档

相关文档