最小生成树 MST (minimum spanning tree).pptVIP

  • 12
  • 0
  • 约1.13万字
  • 约 30页
  • 2018-11-09 发布于江苏
  • 举报
最小生成树 MST (minimum spanning tree)

* * * * * * * * * * * 最小生成树 MST (minimum spanning tree) by nkzgm 最小生成树定义 b c h i f a e d g 4 8 8 1 2 4 14 7 9 10 6 7 2 11 对于一个无向连通图G=(V,E),其中V是顶点集合,E是边的集合,对于E中每一条边(u,v),都有一个权值w(u,v)表示连接u和v的代价。我们希望找出一个无回路的子集T(属于E),它连接了所有的顶点,且其权值之和 w(T)= ∑ w(u,v) (u,v)属于T 为最小。因为T无回路且连接所有的顶点,所以它必然是一棵树,称为生成树(spanning tree),因为它“生成”了图G。把确定树T的问题称为最小生成树问题。下图展示一个连通图及其最小生成树的实例。 最小生成树 求最小生成树的方法主要有以下两种贪心策略: Prim算法 Kruskal算法 Prim算法 贪心准则 加入后仍形成树,且耗费最小 始终保持树的结构——Kruskal算法是森林 算法过程 从单一顶点的树T开始 不断加入耗费最小的边(u, v),使T∪{(u, v)}仍为树 ——u、v中有一个已经在T中,另一个不在T中 Prim 算法过程 b c h i f a e d g 4 8 8 4 14 7 9 10 6 7 2 11 a i d c b h g f e 1 2 全部节点都被覆盖,算法结束 Prim算法的性能 Prim算法的性能取决于如何选取下一个适合条件的最小权值边,因为最小生成树必定有V-1个边,因而选取操作必须进行V-1次。 朴素的方法是用邻接矩阵,线性扫描。复杂度为O(V*V)。(用于稠密图) 如果用二叉最小堆来实现,可以优化到O(ElgV)。(用于稀疏图) 如果使用斐波那契堆,运行时间可以改进为O(E+VlgV)。 (用于稀疏图) Kruskal算法 每个步骤选择一条边加入生成树 贪心准则:不会产生环路,且耗费最小 可按耗费递增顺序考察每条边 若产生环路,丢弃 否则,加入 Kruskal 算法过程 b c h i f a e d g 4 8 8 4 14 7 9 10 6 7 2 11 a i d c b h g f e 1 2 构成环路 构成环路 构成环路 全部节点都被覆盖,算法结束 Kruskal算法的性能 Kruskal也需要进行V-1次选取操作,它的选取范围是整个图,因而可以用O(ElgE)的时间对所有的边进行排序。从这个有序的排列依次选取,若选取的边的加入不能构成回路,则加入。否则对排列的下一个边进行相同操作。直到选取了V-1个边为止。 在判断是否构成回路时需要用并查集。 Kruskal的运行时间为O(ElgE)。 Prim 和 Kruskal的区别 Prim和Kruskal的贪心策略是一样的,都是选取耗费最小的边,只不过选取的范围不同: 对于Prim,其选取的边(u,v)必有一个顶点已经被覆盖,另一个顶点未被覆盖。 而对于Kruskal,其选取的边(u,v)任意,只要这个边的加入不能使被覆盖的顶点构成回路。 下面看一个例子: Agri-Net Description Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. Farmer John ordered a high speed connection for his farm and is going to share his connectivity with the other farmers. To minimize cost, he wants to lay the minimum amount of optical fiber to connect his farm to all the other farms. Given a list of how much fiber it takes to connect each pair of farms, you must find the minimum amount of fiber needed to connect them all together. Each farm must c

文档评论(0)

1亿VIP精品文档

相关文档