算法_三动规_201讲解.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教材: [1][王] 王晓东,计算机算法设计与分析(第4版),电子工业. [2][S] 唐常杰等译, Sipser著, 计算理论导引, 机械工业. 参考资料: [3][C] 潘金贵等译, Cormen等著, 算法导论, 机械工业. [4][M] 黄林鹏等译, Manber著, 算法引论-一种创造性方法, 电子. [5][刘] 刘汝佳等, 算法艺术与信息学竞赛, 清华大学. [6][L] Lewis等著, 计算理论基础, 清华大学. 计算理论与 算法分析设计 刘 庆 晖 第三章 动态规划(DP) 1. 动态规划一般原理(与分治对比), Bellman, OSP 2. 动态规划设计步骤: 矩阵连乘 3. 如何设计动态规划算法: 子结构和策略 最长公共子序列, 最大子段和, 最长递增子序列 4. 拆分方案数与背包问题 (动态规划与贪心对比) 5. 最短路问题 (全路径, Bellman-Ford, Dijkstra) 动态规划与分治 分治的过程: 分解—递归解子问题—合并 若有大量重复子问题, 则不宜分治 一个不太恰当的例子: f(n) = f(n-1) + f(n-2), f(1)=f(0)=1. 输入n, 输出f(n). 递归: int f(int n) { if(n2) return(1); return(f(n-1)+f(n-2); } 2O(n)时间, O(1)空间 动态规划: f[1]=1;f[0]=1; for(i=2,in,i++) f[i]=f[i-1]+f[i-2]; O(n)时间, O(n)空间 Programming的含义: 打表记录中间结果 Fibonacci数矩阵算法与DP 由 f(n) = f(n-1) + f(n-2), 知 求幂问题: 输入: x, n; 输出: xn. 设二进制表示n=(bk…b1b0)2, 则 乘法由n次 降为2logn次 更进一步的 动态规划 最优化问题的动态规划 设计步骤 1) 描述最优解的结构 [王] 2) 递归定义最优解 3) 自底向上计算最优值 4) 由计算结果构造最优解 最优子结构性质, optimal substructure property OSP: 最优策略的子策略也是最优. 满足OSP的问题可用DP. Bellman在1955年开始系统地研究 Programming是指使用一种表格化的算法. Bellman给这个领域提供了坚实的数学基础. 第三章 动态规划(DP) 1. 动态规划一般原理(与分治对比), Bellman, OSP 2. 动态规划设计步骤: 矩阵连乘 3. 如何设计动态规划算法: 子结构和策略 最长公共子序列, 最大子段和, 最长递增子序列 4. 拆分方案数与背包问题 (动态规划与贪心对比) 5. 最短路问题 (全路径, Bellman-Ford, Dijkstra) 矩阵连乘问题([王]) 输入: 给定矩阵A1, A2,…, An, Ai与Ai+1可乘 输出: 计算量最小的乘法次序 输入样例: A1(10?100阶), A2(100?5阶), A3(5?50阶), 两种计算次序: ( (A1?A2) ? A3 ), ( A1? (A2?A3) ) A1?A2的计算量: 10?100?5 (乘法次数) ( (A1?A2) ?A3 ) : 10?100?5 + 10?5?50 = 7500 ( A1? (A2?A3) ) : 100?5?50 + 10?100?50 = 75000 样例输出: ( (A1?A2) ?A3 ) 取整数序列q0,q1,…,qn, 设Ai是 qi-1 ? qi 阶矩阵 n个矩阵连乘不同次序个数: 分析最优解结构、建立递推关系 假设定好了一个乘法次序P 用A[i:j]记连乘积 Ai…Aj , 相应计算量T[i,j] 设P最后乘法在Ak后断开, 即 A[1:k]?A[k+1:n] 那么P的计算量为 T[1,k] + T[k+1,n] + q0?qk?qn. 若P最优, 则P在A[1:k]和A[k+1:n]上也最优 最优子结构性质 : 最优策略的子策略也是最优. 设A[i:j]的最小计算量为m[i,j], 那么 最优值与最优解的区别 输入: 给定矩阵A1, A2,…, An, 整数序列q0,q1,…,qn, Ai是 qi-1 ? qi 阶矩阵 输出: 计算量最小的

文档评论(0)

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

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

1亿VIP精品文档

相关文档