- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法201305-greedy2.ppt
问题3最小生成树 设G = (V, E)是一个无向连通带权图,即一个网络。E的每条边(v, w)的权为c[v][w]。 如果G的一个子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。 生成树的各边的权的总和称为该生成树的耗费。 在G的所有生成树中,耗费最小的生成树称为G的最小生成树。 树的基本性质 连通无回路的图G称为树。 树是点比边多一的连通图,G连通且q=p–1 。 树是点比边多一的无回路图:G无回路且q=p–1。 树若添条边就有回路:G无回路,但对任意的u, v∈V(G),若uv?E(G),则G+uv中恰有一条回路。 树若减条边就不连通:G连通,但对?e∈E(G), G–e不连通。 n个顶点的连通图的生成树含有n – 1条边。 Prim算法 基本思想:在保证连通的前提下依次选出权重较小的n – 1条边。 G=(V, E)为无向连通带权图,令V={1, 2, …, n}。 设置一个集合S ,初始化S = {1},T = Φ。 贪心策略:如果V–S中的顶点j与S中的某个点i连接且(i, j)是E中的权重最小的边,于是就选择j(将j加入S),并将(i, j) 加入T中 。 重复执行贪心策略,直至V–S为空。 Prim算法示例 给定一个连通带权图如下: Prim算法中的数据结构 图用连接矩阵C[i][j]给出,即C[i][j]为结点i到结点j的权重。 为了有效地找出V–S中满足与S中的某个点i连接且(i, j) 权重最小的顶点j,对其中的每个顶点j设立两个数组closest[j]和lowcost[j]: closest[j]是S中与j最近的顶点,(closest[j], j)即为选中的边,而lowcost[j]是相应边的权重。 Kruskal算法 基本思想:在保证无回路的前提下依次选出权重较小的n – 1条边。 贪心策略:如果(i, j)是E中尚未被选中的边中权重最小的,并且(i, j)不会与已经选择的边构成回路,于是就选择 (i, j)。 Kruskal算法的例子 Kruskal算法的数据结构 数组e[][]表示图的边,e[i][u]、e[i][v]和e[i][w]分别表示边i的两个端点及其权重。 函数Sort(e, w)将数组e按权重w从小到大排序。 一个连通分支中的顶点表示为一个集合。 函数Initialize(n)将每个顶点初始化为一个集合。 函数Find(u)给出顶点u所在的集合。 函数Union(a, b)给出集合a和集合b的并集。 重载算符!=判断集合的不相等。 Kruskal算法的实现 Kruskal(int n, **e) { Sort(e, w); //将边按权重从小到大排序 initialize(n); //初始时每个顶点为一个集合 k = 1; //k累计已选边的数目, j = 1; //j为所选的边在e中的序号 while (k n) //选择n – 1条边 {a = Find(e[j][u]); b = Find(e[j][v]); //找出第j条边两个端点所在的集合 if (a != b) {t[k++] = j; Union(a, b)} //若不同,第j条边放入树中并合并这两个集合 j++ }} //继续考察下一条边 破圈算法的例子 单源最短路径的贪心算法 给定一个图G = (V, E),其中每条边的权是一个非负实数。另外给定V中的一个顶点v,称为源。求从源v到所有其它各个顶点的最短路径。 单源最短路径问题的贪心选择策略:选择从源v出发目前用最短的路径所到达的顶点,这就是目前的局部最优解。 问题 4 单源最短路径的贪心算法 基本思想:设置一个集合S,初始时S中仅含有源v,然后不断地用贪心选择来扩充这个集合,直至S包含所有V中顶点。 把从源到u中间只经过S中顶点的路称为从源到u的特殊路径,用dist[u]来记录当前顶点u所对应的最短特殊路径长度。 贪心选择:每次找到最小的dist[u],将u添加到S中,同时对数组dist[]作必要的修改。 Dijkstra算法的贪心选择性质 Dijkstra 算法中所做的贪心选择是:若u是V–S中具有最短特殊路径的顶点,就将u选入S,并确定了从源到u的最短路径长度dist[u]。对应最短路径是中间只经过S中顶点而最后到达u的路径,这也是最终的结果,为什么从源到u没有更短的路径呢? 若有,则将如下图所示: Dijkstra 算法 Dijkstra 算法的做法是: 由近到远逐步计算,每次最近的顶点的距离就是它的最短路径长度。 然后再从这个最近者出发,依据最近者修订到各顶点的距离,然后再选出新的最近者。 如此走下去,直到所有顶点都走到。 Dijkstra 算法 Procedure Di
您可能关注的文档
最近下载
- 《膝关节前后交叉韧带损伤》课件.ppt VIP
- 产钳和胎头吸引助产课件.pptx VIP
- 前交叉韧带损伤学习课件.pptx VIP
- GeForce GTX 1070Ti显卡电路图纸参考 PG411 Rev A00.pdf VIP
- 2025-2026学年小学美术五年级上册人美版·北京(主编杨力)(2024)教学设计合集.docx
- 学堂在线 生活英语进阶 章节测试答案.docx VIP
- 一汽-奔腾B50-产品使用说明书-奔腾B50 2014款1.6MT伙伴-CA7165MT4-B50伙伴用户手册.pdf VIP
- 八年级数学下册重难点压轴题突破专项(苏科版)06平行四边形(五大题型,45题)含答案与解析.pdf
- 角膜地形图与圆锥角膜.ppt VIP
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考题库及答案解析.docx VIP
文档评论(0)