21贪心算法教程.pptVIP

  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文档。上传文档
查看更多
21贪心算法教程

贪心算法 Greedy Algorithm 例1:导引问题--删数字 问题描述:键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。给定N和S,寻找一种方案使得剩下数字组成的新数最小。 输入:N, S (N不超过240位) 输出:去掉数字的位置和新的正整数 例如: N=175438, S=4 可以删去7,5,4,8,得到13 N=175438, S=3 可以删去7,5,4,得到138 删数字的过程中是一个一个数字进行删除的 为了保证最后得到的数最小,是否可以考虑:每一次总是要删除使剩下的数最小的数字? 例如:N=175438, S=4 依次删去7,5,4,8,得到13 问题分析 具体实现方法: 每步删除一个数字时,为了保证删一个数字后剩下的数最小,按照从左到右(即从高位到低位)的方向搜寻递减区间(a[i]a[i+1]),找到则删除递减区间的首数字,如果不存在递减区间,则删除当前数的最后一个数字,这样形成一个新的数 重复上述规则,删除下一个数字,依此类推,直到删除S个数字为止。 例如:N=175438, S=4,删数的过程为: N=1 7 5 4 3 8 第一步,删除7 N=1 5 4 3 8 第二步,删除5 N=1 4 3 8 第三步,删除4 N=1 3 8 第四步,删除8 N=1 3 按上述规则,删除4个数字后 剩下的数字组成的数必定最小 所谓“贪心算法”是指: 在对问题求解时,总是作出在当前看来是最好的选择,也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。 贪心算法基本思想 在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。 贪心法就是做一种目前最贪婪的行动,一步步解决问题。贪心法和递推法有相似之外,也是从问题的某一个初始解出发,向给定的目标递推,但不同的是每一步不是依据某一个固定的递推式,而是做一个当时看似最佳的贪心选择,不断地将问题归结为更小的相似的问题,期望通过所做的局部最优选择产生一个全局最优解。 例2—背包问题 有一个窃贼在偷窃一家商店时发现有N件物品,第i件物品的重量为Wi 磅,物品价值为Vi 元 ,( Vi ,Wi 都是整数)。他希望带走的东西越值钱越好,但是他的背包中最多只能装下M磅的东西(M为整数)。有两种偷窃方式: 0-1背包问题 如果每件物品或者被带走或者被留下,小偷应该偷走哪几件东西? 部分背包问题 如果允许小偷可带走某件物品的一部分,小偷应该偷走哪几件东西,每个东西的重量是多少呢? 贪心算法不是对所有问题都能得到最优解! 背包问题 问题分析: 目标:要求尽可能让装入背包中的物品总价值最大,∑Vi最大 约束条件:装入的物品总重量不超过背包容量: ∑Wi=M 贪心的策略: (1) 、每次挑选价值最大的物品装入背包,得到的结果是否最优? (3)、每次选取单位重量价值最大的物品,得到的结果是否最优? (2)、每次挑选所占重量最小的物品装入是否能得到最优解? 0-1背包问题 ----每件物品或者被带走或者被留下,不可分割 (1)贪心策略:选取价值最大者。    M=30   物品:A B C   重量:28 12 10   价值:30 20 25   根据该贪心策略,首先选取物品A,接下来就无法再选取了。 而实际上,选取B、C则更好。   (2)贪心策略:选取重量最小。   M=30   物品:A B C   重量:28 15 14   价值:30 10 18   根据该贪心策略,首先选取物品C,然后选取物品B。 而实际上,选取物品A更好。 0-1背包问题 ----每件物品或者被带走或者被留下,不可分割 (3)贪心策略:选取单位重量价值最大的物品。   M=30   物品: A B C   重量:10 5 20   价值:18 10 34 根据该贪心策略,首先选取物品B,然后选取物品A。 而实际上,选取

文档评论(0)

mmhgfdh + 关注
文档贡献者

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

1亿VIP精品文档

相关文档