第五章 贪心法.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 贪心法

贪心算法要点小结 1.贪心算法思想 找局部最优解 2.贪心算法前提 局部最优解可以是整体最优解 选择恰当的贪心算法策略 3.贪心算法特点 可行的、局部最优、不可取消 4.贪心算法求解的问题的性质 贪心选择性质、最优子结构性质 1、10个活动争用一个活动室,占用时间如下图所示,求一个相容的活动子集,且安排活动数目最多。 课堂练习 2、已知有3个物品,物品可拆分,(w1,w2,w3)=(12,10,6), (p1,p2,p3)=(16,15,12), 背包的容积M=15,利用贪婪算法求解背包价值最高的解,要求对求解过程进行简单的算法描述。 1、10个活动争用一个活动室,占用时间如下图所示,求一个相容的活动子集,且安排活动数目最多。 课堂练习 1、排序 2、选择比较 3、整理解 { g, a, j, h } 课堂练习 2.已知有3个物品,物品可分割,(w1,w2,w3)=(12,10,6),? (p1,p2,p3)=(16,15,12), 背包的容积M=15,利用贪婪算法求解背包价值最高的解,要求对求解过程进行简单的算法描述。 将各物体按单位价值由高到低排序,物品3(12/6)物品2(15/10)物品1(16/12). 取价值最高者物品3放入背包. 计算背包剩余空间15-6=9. 在剩余物体中取价值最高者放入背包,取物品2的9/10放入背包,此时背包剩余容量为0. 背包内最高价值:12+9/10*15=25.5 即放入物品2的9/10,放入物品3的全部,背包价值达到最高,为25.5. 背包问题中的物体不能分拆,只能整个装入称为0-1背包问题. 用贪心算法能得到0-1背包的最优解吗? 补充:0-1背包问题 有一个背包,背包容量是M=8。有4个物品,物品不可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 课堂练习: [贪心算法] 策略一:按价值递减顺序拿 价值:ABCD. 结果:A,B 5+4=9 策略二:按重量递增顺序拿 重量:DCBA. 结果:D,C,B 2+3+4=9 策略三:按单位价值递递减拿 单位价值:D(2/1)C(3/2)B(4/3)A(5/5). 结果:D,C,B 2+3+4=9 贪心算法 [穷举算法] 变量:A,B,C,D. 范围:有或无 A(0/5),B(0/3),C(0/2),D(0/1) 条件1:(A+B+C+D).重量 = 8 条件2:(A+B+C+D).价值 最大 穷举算法 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 选中物品 0000-{ } 0001-{ D} 0010-{ C } 0011-{ C,D} 0100-{ B } 0101-{ B, D} 0110-{ B,C } 0111-{ B,C,D} 1000-{A } 1001-{A, D} 1010-{A, C } 1011-{A, C,D} 1100-{A,B } 1101-{A,B, D} 1110-{A,B,C } 1111-{A,B,C,D} 总重量 0 1 2 2+1=3 3 3+1=4 3+2=5 3+2+1=6 5 5+1=6 5+2=7 5+2+1=8 5+3=8 5+3+1=9 5+3+2=10 5+3+2+1=11 总价值 0 2 3 2+3=5 4 4+2=6 4+3=7 4+3+2=9 5 5+2=7 5+3=8 5+3+2=10 5+4=9 5+4+2=11 5+4+3=12 5+4+3+2=14 能否装入 能 能 能 能 能 能 能 能 能 能 能 能 能 不能 不能 不能 提问:对于0-1背包问题,不能得到最优解原因? 无法保证最终能将背包装满,部分闲置的背包空间使每公斤背包空间的价值降低了。 [贪心算法] 策略一:按价值递减顺序拿 结果:A,B 5+4=9 策略二:按重量递增顺序拿 结果:D,C,B 2+3+4=9 策略三:按单位价值递递减拿 结果:D,C,B 2+3+4=9 贪心算法 多机调度问题 :要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 约定:每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业 这个问题是NP问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。 核心:找准贪心策略 贪心策略:最长处理时间作业优先,即把处理时间最长的作业分配给最先空闲的机器,保证处理时间长的作业优先处理,从而在整体上获得尽可能短的处理时间。    按照最

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档