最小生成树

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 例子:
6
A
1
5 5
A D
2
A
1
B
5 3 6
B C
D
B C
1
D
4
C
4
E
6 (a)
F
E
(b)
F
E
(c)
F
A
A A
1
B
C
D
2
B
1 5
D
1
C
4 4
B
2 3
5
D
C
4 2
E
(d)
F
E
(e)
F E
(f)
F
• 在此处引入辅助数组
U {A} 6 B 3 5 5 A 5 D 2 {A,C} {A,C,F} {B,D,E,F} V-U B C D E F TE
6 B 3
6
3 4 5 5 5 6 6 6
AC 1 DF 2 BE 3 CF 4 BC 5
7.4.3
最小生成树
• 一、
最小生成树问题
• 二、
如何构造最小生成树
一、
最小生成树问题
现实案例: 要在 n 个城市之间建立通信联络网,则 连通 n 个城市只需要修建 n-1条线路,如 何在最节省经费的前提下建立这个通信网? •
???
• 问题转化 用连通网来表示n个城市以及n个城市 之间可能设置的通信线路,其中网中的 顶点表示城市,边表示两城市之间的线 路,赋于边的权值表示相应的经济代价。
{B,C,D,E, F}
AB 6 CB 5 CB 5 CB 5
AC 1
AD 5 AD 5 FD 2
~ ∞ CE 6 CE 6 CE 6
BE 3
~ ∞ CF 4
AC 1 CF 4 FD 2 CB 5
BE 3
1 C 6 E
6
{B,D,E}
4 F {A,C,F,D} {B,E}
{A,C,F,D,B}
{A,C,F,D,B ,E}
建立总花费最少的通信网问题就转 换为求连通网的最小生成树的问题。
• 回忆赫夫曼树(最优二叉树)

假设有n个权值{w1,w2……wn},构 造一棵n个子叶结点的二叉树,每个子叶带 权为wi,则其中带权路径长度WPL最小的 二叉树。
• 相似最小生成树可有如下定义
• 最小生成树定义

按照生成树的定义,含n个顶点的 连通网的生成树有n个顶点、n-1条边 (不构成回路)。因此,可以建立许 多不同的生成树,如果一棵生成树的 代价等于树上各边权值之和,那么肯 定有一棵生成树的代价最小,称为最 小代价生成树(简称最小生成树)。
{E}
{}
• 小试牛刀
19
A B
5
C
18
G
14 12
7 16
E
8
D
3
B
9 5 3 5 2
C
E
3
27
F
21
A
4
7
D
F
6 2
(1)
4
5
H
5
G
6
(2)
• 解:
A B
5
C
14
16
E
G
8
D
3
B
E
3
F
F
21
A
3 5 2
C
D
2
(1)
4
H
5
G
(2)
克鲁斯卡尔算法
考虑问题的出发点: 为使生成树上边的权值之 和达到最小,则应使生成树中每一条边的权值 尽可能地小。 具体做法: 先构造一个只含 n 个顶点的子图 SG,然后从权值最小的边开始,若它的添加 不使SG 中产生回路,则在 SG 上加上这条边, 如此重复,直至加上 n-1 条边为止。 一句话,“不构成环的情况下,每次选取最小 边”
• 例子:
6
A来自百度文库
1 5
A
5
A
1
B
5 3 6
D
2
B C
D
B C
1
D
2
C
4
E
6 (a)
F
E
(b)
F
E
(c)
F
A
A A
1
B
3
D
2
B C
3
1
D
1
B
4 2 3
5
D
C
4 2
C E
(d)
F
E
(e)
F E
(f)
F
TE
A 1 5 C 6 E 4 5 2 F
1 2
5 D
A C D F B C C A B A C E E F D D C B E F
• 二、 如何构造最小生成树?
• MST性质: • 假设N=(V,{E})是一个连通网,U是顶点 集V的一个非空子集。若(u, v)是一条具有 最小权值(代价)的边,其中u∈U,v ∈V-U,则最小生成树中必包含边(u, v)。 •
u
v
U
V-U
• •
普里姆算法
假设N=(V,{E})是连通图,TE是N上最小生 成树中边的集合。算法从U={u0}(u0∈V), TE={}开始,重复执行下述操作:在所有 u∈U, v ∈V-U的边(u,v)∈E中找一条代价最 小的边(u0,v0)并入集合TE,同时v0并入U, 直至U=V为止。此时TE中必有n-1条边,则 T=(V,{TE})为N的最小生成树。 • (从一个结点的子图开始构造生成树:选 择连接当前子图和子图外结点的最小权边, 将相应结点和边加入子图,直至将所有结点 加入子图。)
相关文档
最新文档