- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
百度Pascal 吧公开培训教材-Pascal 培训课程算法讲义-第十讲
第十讲 贪心算法
一、 贪心初步
贪心法是一种解决最优问题的策略。它是从问题的初始解出发,
按照当前最佳的选择,把问题归纳为更小的相似的子问题,并使子问
题最优,再由子问题来推导出全局最优解。
使用贪心方法需要注意局部最优与全局最优的关系,选择当前状
态的局部最优并不一定能推导出问题的全局最优。
【引例】在一个 N×M 的方格阵中,每一格子赋予一个数值,规定每
次移动时只能向上或向右。现试找出一条路径,使其从左下角至右上
角所经过的数字之和最大。
我们以2×3 的矩阵为例:
若按贪心策略求解,所得路径为:1→3→4→6;
若按动态规划求解,所得路径为:1→2→10→6 。
动态规划算法会在2.3.4 详细介绍。
二、 贪心策略的特点
1. 贪心选择性质:算法中每一步选择都是当前看似最佳的选择,这种
选择依赖于已做出的选择,但不依赖于未做的选择。
第 1 页 ,共 24 页
百度Pascal 吧公开培训教材-Pascal 培训课程算法讲义-第十讲
2.最优子结构性质:算法中每一次都取得了最优解(即局部最优解),
要保证最后的结果最优,则必须满足全局最优解包含局部最优解。
但并不是所有具有最优子结构的问题都可以用贪心策略求解。因为贪
心往往是盲目的,需要使用更理性的方法——动态规划 (例如“0-1 背
包问题”与“部分背包问题” )同时有些具有最优子结构的问题只能用
贪心而不能用动态规划解。
问题1:部分背包问题
给定一个最大载重量为M 的卡车和N 种食品,有食盐,白糖,大米
等。已知第i 种食品的最多拥有Wi 公斤,其商品价值为Vi 元/公斤,
编程确定一个装货方案,使得装入卡车中的所有物品总价值最大。
【分析】因为每一个物品都可以分割成单位块,单位块的利益越大,
显然总收益越大,所以它局部最优满足全局最优,可以用贪心法解答。
方法如下:先将单位块收益按从大到小进行排列,然后用循环从单位
块收益最大的取起,直到不能取为止便得到了最优解。
问题2:0/1 背包问题
给定一个最大载重量为 M 的卡车和N 种动物。已知第 i 种动物的重
量为Wi ,其最大价值为Vi ,设定M,Wi ,Vi 均为整数,编程确定一
个装货方案,使得装入卡车中的所有动物总价值最大。
【分析】按贪心法:每次选价格最大的装载。很明显有反例:设N=3,
卡车最大载重量是 100,三种动物 A 、B、C 的重量分别是40,50,70,其
第 2 页 ,共 24 页
百度Pascal 吧公开培训教材-Pascal 培训课程算法讲义-第十讲
对应的总价值分别是80、100、150。
三、 贪心策略与其他算法的区别
1.贪心与递推:与递推不同的是,贪心法中推进的每一步不是依据某
一固定的递推式,而是当前看似最佳的贪心决策,不断的将问题归纳
为更加小的相似的子问题。所以归纳、分析、选择正确合适的贪心策
略,是正确解决贪心问题的关键。
2.贪心与动态规划:与动态规划不同的是,贪心是鼠目寸光;动态规
划是统揽全局。
四、 贪心策略的证明
贪心策略能否适用,关键看在贪心的策略下,局部的最优解能否得到
全局最优解。要看是否得到最优解,就要看贪心选择特征的证明了。
常用的证明法有反证法和构造法。
1.反证法:顾名思义,对于当前的贪心策略,否定当前的选择,看看
第 3 页 ,共 24 页
百度Pascal 吧公开培训教材-Pascal 培训课程算法讲义-第十讲
是否能得到最优解,如果不能得到,说明当前贪心策略是正确的;否
则,当前策略不正确,不可用。
2.构造法:对于题目给出的问题,用贪心策略时,把问题构造成已知
的算法或数据结构,以此证明贪心策略是正确的。
五、经典贪心模型
1)最优装载问题:给n 个物体,第i 个物体重量为wi ,选择尽可能
量多的物体,使总重量不超过C 。
2 )部分背包问题:有n 个物体,第i 个物体重量为wi ,价值为vi ,
在总重量不超过C 的情况下让总价值尽量高。
3 )乘船问题:有n 个人,第i 个人重量为wi ,每艘船的载重量为C,
最多乘2 人
您可能关注的文档
- MICROSOFTVISUALSTUDIO入门经典教程.pdf
- midascivil经典讲义汇编连续梁施工过程分析.pdf
- midas梁桥PSC设计与RC设计专题讲义.ppt
- MK第四讲单位工程施工组织设计.pdf
- MSA培训课件(五大工具).ppt
- MTBE装置初步设计.pdf
- myh班主任培训课件.ppt
- ODIS错误代码含义.pdf
- OfficePowerPoint制作高级教程.ppt
- office软件操作笔记.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)