04-贪心-MST.pptxVIP

  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文档。上传文档
查看更多
04-贪心-MST

通信网络理论基础Part 04: 贪心/最小生成树王晟 博士 教授 博导贪心/MST1贪心简介/调度问题2MST问题/Prim/Heap3Kruskal/UNION-FIND4MST应用/聚类5再论贪心的应用2017年春季通信网络理论基础 /72什么是贪心?怎样设计/证明/分析贪心算法?贪心适用于哪些问题?贪心“算法”各自的适用范围和设计难度都各不相同。个人看法:分治最基础;贪心最有用;动规最巧妙。这部分的另一个任务是:感受数据结构的力量。这部分的主要任务就是试着回答这些问题。仍然是通过典型的例子来进行讲解。范型:蛮力、分治、随机、贪心、动态规划等等。贪心是一种设计算法的范型,不是一种具体的“算法”。2017年春季通信网络理论基础 /72一个提醒:理解贪心比定义它更重要。什么是贪心?本课程最后会重新总结。我认为最适合初学者的描述如下:教材中给出的定义更适合了解了分治、动规之后再来讲。抱歉,没有标准定义。每步都从当前信息中进行最佳(局部最佳)的选择;一步一步地构造解,每步得到解的一部分(不回溯);“希望”最终得到的是全局最佳解。2017年春季通信网络理论基础 /72不正确的算法也行?贪心 vs. 分治分治算法的正确性往往凭直觉就可以把握。至少是一个前进的方向。往往只涉及一遍排序;然后按序处理。几乎“立刻”就可以构造出算法来。不保证最佳,但至少是足够“快”的。分治的递归性质要求专门的分析工具。四点重要区别:大多数问题用贪心来求解都是不保证正确的。贪心算法的分析更简单;贪心算法的正确性很难证明;基于贪心比基于分治更容易构造算法;2017年春季通信网络理论基础 /72证明贪心的基本策略Whatever Works!Exchange ArgumentGreedy Stays Ahead以数学归纳法为基础;假定一个最优解,用贪心策略局部“交换”其中的一部分,却得到更好的解。反证。马上就可以看到一个例子。结合循环不变式,探索贪心策略的引入方式。2017年春季通信网络理论基础 /72调度问题11763目标:最小化所有任务完成时间的加权和问题:如何对任务排序?背景:假定:每个任务都具有权重wj,和“长度”lj。C1=?加权和?C3=?C2=?例子:完成时间:Cj = 排在任务j前面所有任务的长度之和 + ljn个“任务”【进程/分组流】?共享资源【CPU/通信链路】任务2任务3?任务2任务3任务1任务12017年春季通信网络理论基础 /72贪心准则逐步构造解,不回溯局部最佳贪心算法的构造思路从头到尾依次决定每个位置放哪个任务。从剩下的任务中,选择最有利减小目标函数的那个。找一个参数作为任务的“指标”,按指标排序。整个解是一个长度为n的排列。具体的选择依据是什么??假如我已经决定了前个位置,第j个任务怎么选?怎样构造这样一个解?2017年春季通信网络理论基础 /72贪心准则?准则#1(差值):显然,按长度的升序排列。显然,按权重的降序排列。?准则#2(比值):?综合打分。将权重和长度“合并”成一个指标。调度解按照综合打分的升序排列即可。如果所有任务的长度一致,按什么指标排序?如果都不一致呢?如果所有任务的权重一致,按什么指标排序???例子:例子:2017年春季通信网络理论基础 /72算法设计的建议:用实例来磨练对问题的直觉。哪个准则好?构造打分结果会相反的简单例子。比值准则下,得分为5/3和2;任务1先安排;目标值为22。最简单的建议:举例来验证。差值准则下,得分为2和1;任务2先安排;目标值为23。?课堂练习:构造例子来验证两个准则的优劣。构造贪心算法时,常会出现多个贪心准则的取舍问题。?我的例子:2017年春季通信网络理论基础 /72算法设计的(更好的)建议:试着去证明。就这么简单?丝毫不能说明准则#2的正确性。最多只能说明:准则#1不可能是正确的。有时你可以构造出一堆贪心准则,都不正确。某些例子中A比B好,另一些例子中刚好相反。这个例子能说明什么?2017年春季通信网络理论基础 /72证明思路?比值准则是正确的。【对所有实例,都能得到最小的目标函数值】CLAIM要点是反证法:采用“Exchange Argument”的证明思路。?假定:所有的比值都不一样。【更一般的情况证明思路一样,但麻烦一些。】与假设矛盾。从而得证。?假定,构造一个新解,其目标值比d*更好。任给n个任务。令d表示贪心调度结果;d*表示最佳解。2017年春季通信网络理论基础 /72正确性证明增大了lj?贪心调度的解d就是(1,2,…,n)【按编号顺序排列】减小了li若最佳解,则d*中必有两个紧邻任务是逆序的。【即,d*中存在两个紧邻的任务i和j,i前j后,但 i j 】没变。交换任务i和j的顺序,其他不变,得到新的调度解d’.假定:?d’中其他任务的完成时间变了吗?

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档