- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 贪心算法;贪心算法概念与基本要素
(1)最优子结构性质
(2)贪心选择性质
贪心算法与动态规划算法的差异
应用范例
(1)活动安排问题
(2)哈夫曼编码
(3)最优装载问题
(4)单源最短路径
(5)最小生成树
(6)多机调度问题;贪心算法概念与基本要素;问题的形式化表示
输入:
1)可用币值及其张数
2张5元、 2张2元、 4张1元、 4张5角、 4张2角、 4张1角
Available=(5, 2, 1, 0.5, 0.2, 0.1)
N=(n5元, n2元, n1元, n5角, n2角, n1角)
=(2, 2, 4, 4, 4, 4)
2)应付款总数:X = 4元6角
输出/解向量:
支付的币种及其张数
解向量X=(x5元, x2元, x1元, x5角, x2角, x1角)
X1=(x5元, x2元, x1元, x5角, x2角, x1角)
=(0, 2, 0, 1, 0, 1) 4
X2=(x5元, x2元, x1元, x5角, x2角, x1角)
=(0, 0, 4, 0, 2, 2) 8;约束:
1)已支付数应等于应支付数:
5*x5元 + 2* x2元 + 1*x1元 +
0.5* x5角 + 0.2*x2角+ 0.1* x1角
= X=4元6角
2)每种货币支付的张数不超过该货币总张数:
x5元≤n5元, x2元≤n2元, x1元≤n1元
x5角≤ n5角, x2角≤ n2角, x1角≤ n1角
优化目标:
支付的货币总张数最少
对可行解X=(x5元, x2元, x1元, x5角, x2角, x1角),
min (x5元 + x2元 + x1元 + x5角 + x2角 + x1角);枚举法求解:
1. 在满足约束2—支付张数限制的前提下,考虑解向量X中各 分量xi的各种组合,i= 5元, 2元, 1元, 5角, 2角, 1角,得到1个可能解
X=(x5元, x2元, x1元, x5角, x2角, x1角)
注: N=(n5元, n2元, n1元, n5角, n2角, n1角)
=(2, 2, 4, 4, 4, 4)时,共有
(2+1)* (2+1)* (4+1)* (4+1)* (4+1)* (4+1)* (4+1)种组合
2. 判断每种可能解X=(x5元, x2元, x1元, x5角, x2角, x1角)是否满足约束1——支付总额,从中选出可行解
3. 从可行解中选出货币总张数最少者,作为最优解
;分治法求解
;分治法求解本问题时的难点:
1)如果只采用1种固定的划分方法,有可能得不到解
e.g 始终采取2等分方式
4元6角 ? 2元3角 ? 1元1角5分??!!
2)采用多种问题划分方法,不同划分导致不同可行/部分解
划分1:一分为二/2等分
划分2:m元n角 ? m元 + n角
2)分治法比较难处理最优化问题
由于带有最优化要求,需要考虑多种划分方法、可行解
? 算法效率;动态规划求解法
;*;*;*;贪心算法特点:
在算法进行过程中,当面临选择时,总是作出在当前看来最好的选择。
—— 并不从整体最优考虑,只是在某种意义上、基于当前状况的局部最优选择, e.g.见下例
希望:贪心算法得到的最终结果也是整体最优的。
虽然贪心算法从原理上不能保证对所有问题都得到整体最优解,但
1)对许多问题它能产生整体最优解,如单源最短路经问题,最小生成树问题等
2)在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似,同时降低了算法复杂性!!
E.g平面凸多边形的. 自上而下分治三角剖分, 根据启发式信息选取断点vk:选取使dist(v0, vk) + dist(vk,vn) 最小的vk;;*;*;*;*;4.1 活动安排问题; 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。
每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi
如果选择了活动i,则它在半开
文档评论(0)