第5篇 贪心法.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对于0-1背包问题,贪心选择之所以不能得到最优解是因为在这种情况下,它无法保证最终能将背包装满,部分闲置的背包空间使每公斤背包空间的价值降低了。事实上,在考虑0-1背包问题时,应比较选择该物品和不选择该物品所导致的最终方案,然后再作出最好选择。由此就导出许多互相重叠的子问题。这正是该问题可用动态规划算法求解的另一重要特征。 实际上也是如此,动态规划算法的确可以有效地解0-1背包问题。 5.2单源最短路问题 例如,对右图中的有向图,应用Dijkstra算法计算从源顶点1到其它顶点间最短路径的过程列在下页的表中。 5.2单源最短路问题 四、实例2 60 30 50 10 5 {1,2,4,3,5} 4 60 30 50 10 3 {1,2,4,3} 3 90 30 50 10 4 {1,2,4} 2 100 30 60 10 2 {1,2} 1 100 30 maxint 10 - {1} 初始 ?[5] ?[4] ?[3] ?[2] u S 迭代 Dijkstra算法的迭代过程: 5.2单源最短路问题 Algorithm DIJKSTRA Input:A weighted directed graph G=(V,E),where V={1,2,...,n}.Output:The distance from vertex 1 to every other vertex in G. 1. X←{1}; Y←V-{1};λ[1]←0? 2. for y←2 to n 3.???? if y is adjacent to 1 then? λ[y]←length[1,y]? 4.???? else λ[y]←∞ 5.???? end if 6. end for 7. for j←1 to n-1??? 8.???? Let y∈Y be such that λ[y] is minimum 9.???? X←X∪{y}?????? {add vertex y to X} 10.??? Y←Y-{y}????????? {delete vertex y from Y} 11.??? for each edge (y,w) 12.??????? if w∈Y and λ[y]+length[y,w]λ[w] then 13.?????????? λ[w]←λ[y]+length[y,w] 14.??? end for 15. end for 五、Dijkstra算法 5.2单源最短路问题 算法中图使用邻接表表示,其示意图如下。 五、Dijkstra算法 5.2单源最短路问题 直观演示图 请参看Dijkstra.swf 时间复杂度:?( ) 正确性 [定理] 在Dijkstra算法中, 当步骤8中选择一个结点y时,如果?[y]∞, 则?[y]=s[y],其中s[y]表示从源点到y的距离 [证明思路] 对结点离开Y而进入X的次序进行归纳证明。其思路如下图所示。 五、Dijkstra算法 第5章?贪心法 内容提要 ? ?一、引言 ?二、单源最短路问题 ?三、最小生成树(Kruskal算法) ?四、最小生成树(Prim算法) ?五、文件压缩 ?? 知识要点 贪心法的基本思想 适用范围 基本思想 基本步骤 应用举例 掌握每一个贪心算法的基本思想。 学习要求 掌握贪心策略的基本思想及用贪心策略设计算法的基本思路 熟悉典型问题的贪心算法 5.1 引言 1.贪心法的适用问题 ??? 贪心法又叫优先策略,顾名思义就是“择优录取”,它是一种非常简单好用的求解最优化问题的方法,在许多方面的应用非常成功。 一、贪心法的基本思想 5.1 引言 2.贪心法的基本思想 贪心算法是根据一种贪心准则(greedy criterion) 来逐步构造问题的解的方法。在每一个阶段,都作出了 相对该准则最优的决策。决策一旦作出,就不可更改。 由贪心法得到的问题的解可能是最优解,也可能只 是近似解。能否产生问题的最优解需要加以证明。所选 的贪心准则不同,则得到的贪心算法不同,贪心解的质 量当然也不同。因此,贪心算法的好坏关键在于正确的 选择贪心准则。 一、贪心法的基本思想 5.1 引言 3.设计贪心算法的基本步骤 制定贪心准则; 证明贪心准则能产生问题的最优解,即是最优贪心准则; 根据最优贪心准则得到贪心算法,求解问题的最优解及其最优值。 一、贪心法的基本思想 5.1 引言 1.问题 有n件任务和一台机器,任务可在机器上得到处理。 每件任务j的开始时间为sj,完成时间为fj,sjfj , 即[sj,fj]为处理任务j的时间范围。规定机器在任何时 刻最多只处理一件任务,且一件任务的处理不允许间

文档评论(0)

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

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

1亿VIP精品文档

相关文档