算法设计与分析ppt解析.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  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解析

“ ” 2016 “ ” 闫超江 董培旭 ——贪心算法应用研究 一、贪心算法基本知识概述 二、贪心算法存在问题 三、关于贪心算法在背包问题 中的应用的探讨 四、贪心算法具体方案 五、结果分析 六、参考文献 。 一、贪心算法基本知识概述 1、贪心算法定义 2、贪心算法的基本思路 3、贪心算法的实现过程 4、贪心算法的核心 1、贪心算法定义 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。? 贪心算法求解的问题一般具有两个重要性质:贪心选择性质和最优子结构性质。所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优解的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。 2、贪心算法的基本思路 (1)贪心的基本思想 从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。贪心算法的基本思路: a.建立数学模型来描述问题。 b.把求解的问题分成若干个子问题。 c.对每一子问题求解,得到子问题的局部最优解。 d.把子问题的解局部最优解合成原来解问题的一个解。 (2)实现该算法的过程: a.从问题的某一初始解出发; b.while 能朝给定总目标前进一步 do c.求出可行解的一个解元素; d.由所有解元素组合成问题的一个可行解。 e.下面是一个可以试用贪心算法解的题目,贪心解的确不错,可惜不是最优解。 (3)利用贪心策略解题,需要解决两个问题: a.该题是否适合于用贪心策略求解; b.如何选择贪心标准,以得到问题的最优/较优解。 3、贪心算法的实现过程 (1)应用同一规则F,将原问题变为一个相似的、但规模更小的子问题; (2)从问题的某一初始解出发:While(能朝给定目标前进一步)求出可行解的一个解元素; (3)由所有解元素组合成问题的一个可行解。 4、贪心算法的核心 贪心算法的核心问题是选择能产生问题最优解的最优度量标准,即具体的贪心策略。 贪心策略是指从问题的初始状态出发,通过若干次的贪心选择而得出最优值(或较优解)的一种解题方法。其实,从“贪心策略”一词我们便可以看出,贪心策略总是做出在当前看来是最优的选择,也就是说贪心策略并不是从整体上加以考虑,它所做出的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心策略可以得到最优解或较优解。 二、贪心算法存在问题: 1.?不能保证求得的最后解是最佳的;? 2.?不能用来求最大或最小解问题;? 3.?只能求满足某些约束条件的可行解的范围。 三、关于贪心算法在背包问 题中的应用的探讨 1、问题描述 2、贪心算法解决背包问题有几种策略 1、问题描述:? 0-1背包问题:给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大??在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包(1)或不装入背包(0)。不能将物品i装入背包多次,也不能只装入部分的物品i。? 背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1≤i≤n。 2、贪心算法解决背包问题有几种策略:? (1)一种贪婪准则为:从剩余的物品中,选出可以装入背包的价值最大的物品,利用这种规则,价值最大的物品首先被装入(假设有足够容量),然后是下一个价值最大的物品,如此继续下去。这种策略不能保证得到最优解。例如,考虑n=2,?w=[100,10,10],?p?=[20,15,15],?c?=?105。当利用价值贪婪准则时,获得的解为x=?[?1?,?0?,?0?],这种方案的总价值为20。而最优解为[?0?,?1?,?1?],其总价值为3?0。? (2)?另一种方案是重量贪婪准则是:从剩下的物品中选择可装入背包的重量最小的物品。虽然这种规则对于前面的例子能产生最优解,但在一般情况下则不一定能得到最优解。考虑n=?2?,w=[10,20],?p

文档评论(0)

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

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

1亿VIP精品文档

相关文档