最小树与最短路问题

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

简单图基本上可 用权矩阵来表示.
图的矩阵表示
0 6 8 0 7 A 3 0 2 4 5 0
无向图G的权矩阵A是一个对称矩阵.
0 6 6 0 A 3 7 4 3 4 7 0 2 2 0
图的矩阵表示
Prim方法 在图中任选一点如v6作为解的一部分,找与v6最近的 点发现为v4,距v6为91. 4,将{v4,v6}作为解的一部分, 再找剩余点中与{v4,v6}最近的点发现为v3,再将其作 为解的一部分,再在余下的点中找与{v3,v4,v6}最近的 点,…,最后得到同样的结论。 算法: 1)在G中任选一点,不妨为v1,令k=1对用零值给以 永久标号(即P(vk)=0)),令C={vk} ,,A=,对 其他所有点viV\C给以临时标号T(vi)=wik(边vivk 的权,若不连记T(vi)=), 2)在所有临时标号中选择具有最小值作为永久标号。
2、路、回路和连通 图G=(V,E)中一点边交替出现的序列w=v0e1v1e2v2…ekvk 称为v0到的vk链。这里ei的端点为vi-1,vi,v0为链起点vk 为链终点,v1,v2,…,vk-1为链的内部顶点。
图的一些基本概念
若顶点v0,v1,…,vk互不相同,则称w为路。若仅有顶 点和终点相同,即v0=vk,则称w为一回路(或圈)。
设T (v j ) min T (vi )把v j的标号作为永久标号
vi V\C
即P(vj)=T(vj),置C=C{vj},A={(vj,vk)},令k=j
3)当无临时标号则停止,否则对每一个具有临时标 号的点viV\C ,令T(vi)=Min{T(vi),wik},转到2)。
注:Kruskal方法每次增加边时要检查圈,Prim 方法 不需要检查圈。 问题:在上述的校园网络问题中,为保证网络通畅, 要求在任意两个节点发生故障时,其他节点之间还 能继续通讯。问:1)至少要连多少条边?2)最少的 光缆长度是多少?
⑶ 关联矩阵:一个有m条边的n阶有向图G的关联矩阵A = (aij )n×m , 其中 1, 若vi是ej的始点; aij 1, 若vi是ej的终点; 0, 若v 与e 不关联.
i j
有向图的关联矩阵每列的元素中有且仅有一个1,有且 仅有一个 - 1.
1 1 A 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1
无向图G的邻接矩阵A是一个对称矩阵.
0 1 A 1 1 1 0 1 0 1 1 0 1 1 0 1 0
⑵ 权矩阵: 一个n阶赋权图G = (V, E, F)的权矩阵A = (aij ) n×n , 其中
F (vi v j ), vij E ; aij 0 , i j; , vij E .
A
M B
W
P
C
F
S
各学院的位置
学院
Βιβλιοθήκη Baidu
A
M
P
C
B
W
F
S
x(单位:米) 164 128 244 260 88 176 136 196 y(单位:米) 492 376 328 240 240 204 44 -44
1)试求最少需用多少光缆? 2)若连接点不必设在各学院处,且可设任意个连接 点,试问最少需用多少光缆?
图的矩阵表示
⑴ 邻接矩阵 邻接矩阵表示了点与点之间的邻接关系.一 个n阶图G的邻接矩阵A = (aij )n×n , 其中
1, vij E; aij 0, vij E.
0 0 A 1 1 1 0 0 0 0 1 0 1 1 0 1 0
图的矩阵表示
vi S
p
vi
vs •
• p
vj • S
Q
d (vs , v j ) min{d (vs , vi ) w(vi v j )}
从vs到S的距离公式为:
d (vs , S ) min {d (vs , v p ) w(v p vq )}
v pS ,vqS
Dijkstra算法正是由这一思想构造的,方法为: 从S0={vs}开始,构造一个由顶点集V组成的递增 序列S0S1 …Sn-1使得在第i步结束时,由vs到 Si中的所有顶点的最短路已找到。 1)记S0 {vs }, 确定与vs最近的顶点,即算出 d ( vs , S0 ),
w( p )
aij p
w
ij
求一条从vs到vt的最短路径,即求从vs到vt的一条权和 最小的路p0使
w( p0 ) min w( p)
p
称p0为vs到vt的最短路,w(p0)为vs到vt的距离,记d(vs,vt) 注:在有向图中d(vs,vt)与d(vt,vs)不一定相同 3、求最短路的方法 Dijkstra方法 当所有道路长wij0时,有以下结论: 设G=(V,E),若S为V的真子集,且vsS,记 S V \ S
图的矩阵表示
一个有m条边的n阶无向图G的关联矩阵A = (aij )n×m , 其中 1, 若vi与ej关联;
aij 0, 若vi与ej不关联.
无向图的关联矩阵每列的元素中有且仅有两个1.
1 1 A 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1
解决该问题有两种方法:Kruskal方法和 Prim方法, 其对应着前面讲的避圈法 。
Kruskal方法 1)取e1使e1的权最小。
1
2)若e1,e2,…,ek已选定,从 2 3 剩余的中取ek+1,使得ek+1权 最小且不与e1,e2,…,ek构 5 4 6 成圈。 3)当k=n-1时,停止;否则转到2)。 7 使用该方法求校园网络问题: 8 首先v3v4之间最短为89.4,再在余下的边中取 v4v6 其为91.4,再取v5v6,其为95.1,再取 v7v8,其为106.5,再 取 v1v2,其为121.5,再取 v2v3,其为125.5,再取 v2v6,其与 其他边构成圈,再取 v6v7,其为141.8,已取出7条边,我们 得到一棵树。
3、最短路模型
1、问题 对上述校园,若各学院有如图 v2 所示的道路连通,现考虑如下 v5 问题: 1)若v1是学校行政部门,常 有一名办事员到各学院 办事,现希望确定其行 v7 走路线,使之到各学院 的路程最短。
v1
v3
v6
v4
v8
2)若该办事员从v1出发,到每个学院发一份文件, 再回到v1,问若何设计其行走路线,使其行走路 程最短。
A
各 学 院 之 间 距 离
A M P C W W F
M P C B W F 121.5 182.5 269.7 263.2 288.2 448.9 125.5 189.5 141.8 178.6 332.1 89.4 179.1 141.4 303.8
S 537.0 425.5 375.1
172.0 91.4 231.9 95.1 201.8 164.9
图的一些基本概念
1.图的定义
图G是由顶点集V和边集E组成的偶对G=(V,E). e1 例如右图:G=(V,E),其中 v1
V {v1 , v2 , v3} E {e1 , e2 , e3 , e4 , e5}
e2 v2
e3 e4
e5 v3
e3 , e4称为重边, e1称为环。
无重边,无环的图称为简单图。 如果图G中任意两顶点之间恰 有一条边的图称为完全图。
v1
v3
v4
图的一些基本概念
如果图G中有两个顶点是有序的, 则称所对应边称为有 向边, 否则, 称为无向边. 如果E的每一条边都是无向边, 则称G为无向图(如图1); 如果E的每一条边都是有向边, 则称G为有向图(如图2); 否则, 称G为混合图.
图 1 图 2
常记:V = {v1, v2, … , vn}, |V | = n ; E = {e1, e2, … , em}(ek=vivj ) , |E | = m.
2、最小生成树模型
一个无圈的连通图称为树。 设图G为具有n顶点的树,则下列6个结论等价 ①、G为无圈的连通图。
②、G为连通的且具有n-1条边。 ③、G为连通的且每条边为一割集。
④、G无圈且具有n-1条边。 ⑤、G任意两个顶点之间恰有一条路。 ⑥、G为最小连通图。
若图T=(V,E')是图G=(V,E)的生成子图,且T是一棵 树,则称T是G的一棵生成树。
图有生成树图为连通的。
由前面6个等价条件可以直接推出:
1)、在顶点数相同的连通图中,树是含有边数最少 的连通图。 2)、在树中不相邻的两顶点之间加一条边,则恰好 得到一个圈。在圈中任去一条边,又成一棵树. 由1)、2)可得出求生成树的两种方法:
破圈法 在图中找圈,找到之后将圈中任除一条边。 直到无圈为止,剩下的即是一棵树。 避圈法 在具有n个顶点的图中任选一条边e1,接着 选边e2,使之与e1不构成圈,以次类推,直 到选出n-1条边为止。
最小生成树
设G=(V,E)是一个非负赋权图,设T=(V,E') 是G的一棵生成树,记生成树的边权之和为:
w(T )
称为生成树的权。
( vi ,v j )T
w
ij
若G的一生成树T*,其权w(T*)是G所有生成树权 最小者,则称T*为最小生成树。
一个实际的例子
问题提出:
SU大学有8个学院,其中A为 学校行政部门(如图所示)。 该大学现在需要设计一个电 脑网络系统,使得A到每个系 都有光缆相连.SU 大学主管 部门希望连接用的光缆量尽 量的少,为便于管理,要求光 缆连接点必须设在各学院处, 施工部门测得各学院的位置 坐标如下:
291.1 303.8 248.8 106.5
问题分析与建模 • 用v1,v2,v3,v4,v5,v6,v7,v8表示8个学院的地理位置,因 为各学院之间的距离都是固定的,则我们得一赋 权图。 • 要使各学院都可以用网络通讯,这样的图一定为连 通的,其次若图中有圈,则可以划去一条以节省一 条光缆,因而计算机网络一定为一棵树。 • 考虑到使用光缆最少,所以要在赋权图中找到一 边权之和最小的树。即:最小树。 问题归结为:求一赋权图的最小树问题。
3)若学校保卫处巡逻队每隔一段时间将学校所有的道 路巡逻一遍,问若何行走,才使所行走的路程最短。 2、最短路的概念: 问题1)就是所谓的最短路问题:其一般提法如下 给定一赋权图G,对每一条边aij=(vi,vj),其对应 权为w(aij)=wij,又给定图中两个顶点vs和vt,设p是vs 到vt的一条路,定义路的权为p中所有边权之和,记 为w(p),即:
若p vs vi v j是G中从vs到S的最短路则有: vi S , v j S , vs到vi的最短路为 vs沿p到vi的路。
1 )vi S , v j S , 为显然的
2)反证:若不是,设Q为 vs到vi的最短路,则可令p 为vs沿Q到vi,再从vi沿p到 vj的路,则p’ 的权就比p的 权小,这与p为vs 到¯ S的最 短路矛盾.
i 1 i
n
图的一些基本概念
称图H是G的子图(记为HG)是指V(H) V(G), E(H) E(G)。 当H G,且H G时,称图H是G的真子图 若H G,且V(H) = V(G)时,称图H是G的生成子图
若G=(V,E) 的边集中每条边(vi,vj)上定义一个数wij与 之对应,则称为赋权图,其中wij为边(vi,vj)上的权。
图的一些基本概念
有边联结的两个点称为相邻的点, 有一个公共端点的 边称为相邻边. 边和它的端点称为互相关联. 常用d(v) 表示图G中与顶点v关联的
用N(v)表示图G中所有与顶点v相邻的顶点的集合. d(v1)= d(v3)= d(v4)=4, d(v2)=2. 握手定理:
d (v ) 2 m
在图G中存在一条连接顶点u和v的路,则称u和v是 连通的;若图G中任何两顶点都连通,则称图G为 连通图。否则图G成为不连通。 若图G中去掉任何一条边都能使图G 分离(不连 通),则称图G为最小连通图。 设S是图G的一个边集当且仅当在图G中去掉S中的 全部边时才能使图G 分离(不连通),则称边集S 为图G割集。
相关文档
最新文档