数学建模案例分析-- 图与网络方法建模4通讯网络的最小生成树
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§4 通讯网络的最小生成树
连通的无圈图称为树。树是最简单但又是十分重要的一类图,它在许多学科领域中有广泛的应用,例如分子结构,电网络分析等。最短连接问题与树有关,学科分类和一些决策过程也往往可以用树的形式表示。 图m E n V E V T ==,),,(,则下面关于树的命题是等价的。
(1)T 是一个树。
(2)T 无圈,且1-=n m 。
(3)T 连通,且1-=n m 。
(4)T 无圈,但加一新边即得唯一一个圈。
(5)T 连通,但舍去一边就不连通。
(6)T 中任意两点,有唯一链相连。
上述性质中每一个命题均可作为树的定义,它们对判断和构造树将极为方便。
若1G 是连通图2G 的生成子图,且1G 本身是树,则称1G 为2G 的生成树。
对图),(E V G =的每一条边E e ∈赋以相应的实数权)(e w ,得到一个网络,记为),,(W E V N =。设),(E V T '=是N 的一个生成树,令∑∈='
)()(E e e w T W ,则)(T W 称为T 的权,
N 中权最小的生成树称为N 的最小生成树。
许多实际问题,如在若干个城市之间建造铁路网、输电网或通信网等,都可归纳为寻求连通赋权图(网络)的最小生成树问题。例如已知城市i v 和j v 间的直通线路的造价为
)),(()(j i ij ij ij v v e e w w ==
要求一个总造价为最小的设计方案。又如一个城市中,对若干新建居民点供应自来水和煤气,已测知连接各点间的直通管道的造价,要求给出一个总造价最小的铺设方案等等。下面介绍在给定网络),,(W E V N =内求最小生成树的两种算法。设网络点数为n ,此时最小生成树的边数为1-n 。
算法1 (克鲁斯凯尔,Kruskal )
算法I 的中心思想是每次添加权尽可能小的边,使新的图无圈,直到生成最小生成树为止。也形象地简称“最小边的加入法”。其步骤如下:
(1)把N 内的所有边按照权的非减次序排列。
(2)按(1)排列的次序检查N 中的每一条边,如果这条边与已得到的边不产生圈,则取这一条边为解的一部分。
(3)若已取到1-n 条边,算法终止。此时以V 为顶点集,以取到的1-n 条边为边集的图即为最
小生成树。
例1 求图1所示网络的最小生成树。
解 按各边的权的非减次序将网络中的8条边排列为
821e e e ≤≤≤
首先取1e 和2e 为所求最小生成树T 的两条边,然后检查边3e 。由于边1e 、2e 和3e 构成圈,故不取边3e ,考虑4e 。由于1e 、2e 和4e 不构成圈,故可取4e 。然后检查5e 。由于1e 、2e 、4e 和5e 不构成圈,故可取5e 。此时由1e 、2e 、4e 和5e 构成的生成树T 即为网络N 的最小生成树(如图
2)。
算法II (普赖姆,Prim )
这是一种迭代算法,每进行一次迭代将产生组成网络N 最小生成树T 的一条边。其作法基于下面的事实:如果我们已经知道T 中的一些边,它们的端点集为S ,则S 是N 的顶点V 的一个子集。以)(S Φ记一个端点在S 中、另一端点在S V \中的所有边组成的集合,由于最小生成树T 是N 的连通生成子图,)(S Φ中权最小的一条边,应该也是N 的最小生成树T 中的一条边。下面通过对图1所示的网络N 求最优树T 的过程介绍这一算法。
算法开始时,)(1v S =,),()(21e e S =Φ。由于2)(1)(21=<=e w e w ,取)(1e T =,并把1e 不在S 中的一个端点2v 加入S 中。于是),(21v v S =,),,,()(6532e e e e S =Φ,)(S Φ中权最小的边为2e 和3e 。任取一条边,例如3e 加入T 中,把3e 不在S 中的另一端点3v 加进S 中。此时),(31e e T =,),,(321v v v S =,从而),,,()(8761e e e e S =Φ,其中权最小的边为5e 。5e 不在S 中的一个端点为5v ,取新的),,(531e e e T =,),,,(5321v v v v S =,从而),,()(761e e e S =Φ,其中权最小的边为4e 。4e 不在S 中的一个端点为4v ,从而取),,,(4531e e e e T =,),,,,(45321v v v v v S =
V =。此时以V 为顶点集,),,,(4531e e e e T =为边集的树T 即为N 的最小生成树。
我们将上述过程一般化。设),,,()(21n v v v G V =,)(),(G E v v e j i ij ∈=,)(ij ij e w w =为边ij e 的权。如果i v 和j v 之间无边相连,则取∞=ij w 。为叙述方便,我们以顶点的下标来表示S 中的顶点。普赖姆迭代过程如下:
(1)ij j w U n R S T ====},,,3,2{},1{, φ,此处R j S i ∈∈=,1。
(2)设ik j R
j w U Min =∈,记ik k w U =。以}{k S 代替S ,}{\k R 代替R ,}{ik e T 代替T 。 (3)若φ=R ,算法终止,此时T 即为所求;否则,对每个R j ∈,以},{S k w U Min ik j ∈代替
j U ,返回上一步骤(2)
。 应用该算法求得例1(图1)中的网络N 的最优树),,,(5421e e e e T =(如图2)。
克鲁斯凯尔用于手工计算小型网络的最小生成树是比较好,而且直观易懂,但应用较大型网络时效率不高,基于这种算法的计算机软件也较难实现。普赖姆方法克服了这些缺点,但遗憾的是普赖姆方法应用于小型问题时却过分的繁复。