[经济学]第7章 动态规划.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[经济学]第7章 动态规划

第 7 章 动态规划 动态规划概述 数塔 最小代价子母树 非优化问题实例 单起点最短路径问题 Warshall 传递闭包算法 完全最短路径问题的Floyd算法 最优二叉查找树 01背包问题 本章习题 动态规划概述 动态规划概述 动态规划(Dynamic Programming),在20 世纪50年代由美国数学家 Richard Bellman(理查德 .贝尔曼)提出,作为多阶段决策过程最优化 的一种通用算法设计法,不仅解决特定类型的最优化问题,也包括某些 非最优化问题。 多阶段决策过程最优化 诸多实际问题:有多个解,但要找到最优解。 穷举法通过找出全部解,再从中找出最优解。对于那些计算复杂度高的 如组合问题,找出其全部解所耗费的计算时间往往不可接受! 为降低求解难度,把求解过程分为一系列阶段,各个阶段按最优性原则 计算,在最后阶段可得最优解。包括:分段、求解 两大步。 —— 不能段化的问题不能用动态规划法求解。 最优性原则 数塔 数塔 有一个三角形数塔如图。求一条自塔顶到塔底的路径,该路径上节点值 之和最大。( 注意动态规划法与穷举法、贪婪法的区别 ) 数塔问题:动态规划法与穷举法效率比较 数塔:动态规划法与穷举法的时间效率比较 输入规模:为便于分析,选数塔层数 k , k 0 基本操作:加法运算 效率类别:无最佳、最差(均从塔顶到塔底) 增长函数 T(k) : 各层节点数:1, 2, 3, 4, 5, ...... 节点的总数:1, 3, 6, 10, 15, ...... 数塔层数 k :1, 2, 3, 4, 5, ...... 路径总数 t : 0, 2, 4, 8, 16, ...... t = 2k-1, k 0 1. 穷举法:T(k) = (k-1) 2k-1,k 0 指数型 本例 k = 5,每条路径 5 个节点做 k-1 = 4 次加法,共 64 次。 2. 动态规划法:(层节点数 = 层数) 塔底向塔顶计算,第 k 层加法总数为第 k-1 层的节点数×2 : T(k) = 2×(k-1+...+3+2+1) = k(k-1), k 0 平方型 本例 k = 5 ,加法总数 2×(4+3+2+1) = 20 次 最小代价子母树 最小代价子母树 有 n≥2 堆沙子,重量向量 W = ( w1,...wn ) ,将它们归并为 1 堆。 规则:只能将相邻 2 堆归为 1 堆,经过 n-1 次归并后成为 1 堆。 要求:找到代价最小的归并方案。 代价:新产生沙堆的质量和。代价最小的归并树即最小代价子母树。 动态规划法求解: 问题分段:将每次归并划分为一个阶段,共 n-1 个阶段。 逐段计算:自底向上(规模增大 n = 2, 3, ... , n-1) n = 2:1 种归并法即 2 合 1 . n = 3:2 种归并法,第 1 种归并法如图,前 1 堆后 2 堆 最小代价子母树(续1) n=4 n = 3:第 2 种归并法,前 2 堆后 1 堆 最小代价子母树(续2) n=4 n = 4:前 1 堆 情况 2: 最小代价子母树(续3) n=4 n = 4:前 3 堆 情况 1 最小代价子母树(续4) n=4 【归纳】n = 4( 3 大类归并方案) c(1,4) = min { c(2,4), c(1,2) + c(3,4), c(1,3) } + w(1,4) 前1堆 前2堆 前3堆 【推广】对于任意的 n≥2(可设计递归算法:自顶向下计算) c(1,n) = min{c(2,n), c(1,2)+c(3,n), c(1,3)+c(4,n) ,..., c(1,n-1)} + w(1,n) 前1堆 前2堆 前3堆 ...... 前n-1堆 上式称 动态方程 —— 以方程形式给出的动态规划算法。 很多动态规划算法并不能以方程形式给出。 非最优化问题实例 非最优化问题实例 中国象棋“马”的路径 —— 在 m×n 棋盘上,求:马从 P 跳到 Q 的所有路径。 递推求解中的交叠子问题 递归算法之重复计算交叠子问题 【实例】计算裴波那契数的递归算法 F(n) = F(n-1) + F(n-2) ,n 1 F(0) = 0, F(1) = 1 考察 F(5) 计算过程,递归树表示 单起点最短路径问题 单起点最短路径问题 (区别于完全最

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档