算法分析设计期末相关复习.pptVIP

  1. 1、本文档共92页,可阅读全部内容。
  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文档。上传文档
查看更多
算法分析设计期末相关复习.ppt

首先将各物品依重量递增序(即也是价值递减序)排列,然后依照价值递减顺序选择物品装入背包,直到背包装不下下一件物品为止。 这里贪心算法的贪心选择策略是:每次总是选择价值最大(同时重量也最小)的物品,然后检查是否可以装入背包。 习题4.4 A驾驶着红旗牌轿车沿着107国道从深圳开往北京。A的车加满油时,可以跑公里。A有一张地图,标出了沿途中加油站之间的距离。为节省时间,A希望在路途中尽量地少加油。请设计出一个有效算法帮助A决定该在那些加油站加油,并证明你的算法能够得到最优解。 解:根据实际问题,加油站之间距离不等,若要使加油次数最少,只需做到如果车内的油能够到达下一站点就不加油,即做贪心选择。 正确性证明: 站点分别记为1,2,······n,站点集合记为A,只需证明问题贪心算法的正确性,即满足贪心选择和优化子结构即可。 贪心选择: 设从初始位置最远可以前行到i站点,则存在最优选择M,M前行到i站点首次加油。 M前行到i站点首次加油,问题得证。 若M不前行至i站点进行加油,在加油站j进行首次加油,易得ji,存在加油组合N,使N中除第一个加油站点外,剩余的加油站点均一致。 因为就ji,故从j站点可以到达的下一加油站k从i站点也可以同样到达。 故加油次数Count(M)=Count(N),故N也为最优选择,问题得证。 最优子结构: 设最优选择M包含从初始位置前行到i站点首次加油,只需证M-i为A - { 1,2,···,i }的最优选择。 如果M-i不是A - { 1,2,···,i }的最优选择,其最优选择为N,则Count(N)Count(M-i) 在分别加上在i站点的加油次数得:1+Count(N)1+Count(M-i)= Count(M) 这与M是最优选择矛盾,故M-i为A - { 1,2,···,i }的最优选择。 所以方案是正确的。 第5章 回溯法 问题的解空间 问题的解空间 应明确问题的解空间的定义 问题的解空间至少应包含问题的一个(最优解)。 对问题解空间进行组织 通常组织为树或图的形式。 ——有利于回溯法对整个解空间的搜索 算法实现题:2-2. 在一个由元素组成的表中,出现次数最多的元素称为众数.试写一个寻找众数的算法,并分析其计算复杂性. 分析与解答: 思路一:首先将数组元素按照大小排序,然后按照顺序扫描一遍数组,扫描的同时进行统计,这样通过一次排序和一遍扫描可以找到众数. 思路二:直接统计各元素出现的次数,用某一线性数据结构存储统计结果(例如用一个辅助数组存储统计结果,统计时用数组下标对应相应元素) 第三章:动态规划 动态规划算法的基本思想 动态规划算法的基本思想 其基本思想与分治算法的思想类似——分而治之 与分治法的不同之处 分解后的子问题往往不互相独立; 采用记录表的方法来保存所有已解决问题的答案 对每个子问题都只计算一次,不管该子问题以后是否会被用到,都将其保存到一张表中,避免每次遇到各个子问题都要重复计算答案。 一个最优化多步决策问题适合用动态规划法求解有两个要素:最优子结构特性和重叠子问题。 动态规划算法的一般步骤 动态规划算法的一般步骤 找出最优解的性质,并刻画其结构特征; 递归地定义最优值; 以自底向上的方式计算出最优值; 根据计算最优值时得到的信息,构造最优解; 动态规划算法的基本步骤 如只需要求出最优值,则步骤4可省略; 如需要求解问题的最优解,则必须执行步骤4 动态规划算法求解思路 动态规划算法求解思路 将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解; 对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解 。 动态规划算法将问题的解决方案视为一系列决策的结果,与贪婪算法不同的是: 在贪婪算法中,每采用一次贪婪准则,便做出一个不可撤回的决策; 在动态规划算法中,还要考察每个最优决策序列中是否包含一个最优决策子序列,即问题是否具有最优子结构性质。 通过应用范例学习动态规划算法设计策略。 (1)矩阵连乘问题; (2)最长公共子序列; (3)最大子段和 (4)凸多边形最优三角剖分; (5)多边形游戏; (6)图像压缩; (7)电路布线; (8)流水作业调度; (9)背包问题; (10)最优二叉搜索树。 矩阵连乘问题----最优解的结构 将矩阵连乘积AiAi+1…Aj记作A[i:j] 把问题转化成考察A[1:n]的最优计算次序问题 设计算次序在A[k]处将矩阵断开最优,则总计算量为: A[1:k] 的计算量加上A[k+1:n]的计算量,再加上A[1:k] 和A[k+1:n]相乘的

文档评论(0)

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

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

1亿VIP精品文档

相关文档