当前位置:
文档之家› 第08讲 图的基本概念及最小支撑树问题
第08讲 图的基本概念及最小支撑树问题
相关定义
邻接:两个点有公共边,两条边有公共顶点; 关联:边与其顶点; 环:一条边的两个顶点重合; 重边:两个点之间有多于一条边; 简单图:既无环也无重边的图; 补图:图G的补图定义为 G :与G有相同的顶点集, 中两个点 G 相邻当且仅当它们在G中不相邻; 7. 二部分图(二分图) 8. 支撑子图 9. 导出子图 10. 点度,通路,回路 1. 2. 3. 4. 5. 6.
Kruskal算法
设G=<V,E,W>,将G中非环边按权从小 到大排序:e1, e2, …, em. (1) 取e1在T中 (2) 查e2,若e2与e1不构成回路,取e2也在T 中,否则弃e2. (3) 再查e3,…, 直到得到生成树为止.
例子
求图的一棵最小生成树. 求图的一棵最小生成树
所求最小生成树如 图所示, 图所示,W(T)=38.
最小值支撑(生成)树
定义:网络中权值最小的支撑树,称为该网络的最小支撑 树.
定理:设T 是G的支撑树,则下面几个命题等价: (1):是G的最小支撑树; T (2): 对任意T 0上的边e有w(e) = max w(e ')
e '∈C ( e )
(3): 对任意T 上的边e有w(e) = min w(e ')
π (e) : 对于T的任意一条边,T e不连通,设其两个连通分支
分别为T1 , T2 , 它们所对应的点集分别为S1 , S 2,则( S1 , S 2 )构 成G的一个割集,记为π (e).
支撑树
定理:设T 是图G的支撑树,则T 0不包含G的任何割集,但对 T中任一条边e, 存在唯一的割集,它包含在T 0 e中. 基本割集:对于T 每条边e都存在G的唯一割集,这样的割集一共 n 1个,称为G的基本割集. C (e ') : 对于T 0中每一条边e ', T + e ' 都包含唯一的回路.
Dijkstra算法
1.令T = φ , R = {v1}, S = {v2 , v3 ,...., vn }, ui = w1i 2.选取uk = min{ui } = wik , 若uk = +∞则停止,G中不存在支
vt ∈S
撑树;否则令R = R ∪{vk }, S = S {vk }, T = T ∪ {eik }; 3.若S = φ,则停止,T为最小支撑树;否则对于一切v j ∈ S , 令u j = min{u j , wkj }, 转2.
e '∈π ( e )
Kruskal算法
1.设w(e1 ) ≤ w(e2 ) ≤ .... ≤ w(em ), S = φ , i = 0, j = 1; 2.若G S ∪ {e j } 包含圈,转3,否则转4; 3.令j = j + 1, 若j ≤ m转2,否则停止; 4.令S = S ∪ {e j }, 并设i = i + 1; 5.若i = n 1,则结束,这时G[ S ]即为所求;否则转2.
图的基本概念及最小支撑树问题
无向图
定义 无向图G = <V,E>, 其中 (1) V ≠ 为顶点集,元素称为顶点 (2) E为V&V 的多重集,其元素称为无向边,简称边 实例 设 V = {v1, v2, …,v5}, E = {(v1,v1), (v1,v2), (v2,v3), (v2,v3), (v2,v5), (v1,v5), (v4,v5)} 则 G = <V,E>为一无向图
图的连通性
无向图的连通性 (1) 顶点之间的连通关系:G=<V,E>为无向图 ① 若 vi 与 vj 之间有通路,则 vivj ② 是V上的等价关系 R={<u,v>| u,v ∈V且uv} (2) G的连通性与连通分支 ① 若u,v∈V,uv,则称G连通 ② V/R={V1,V2,…,Vk},称G[V1], G[V2], …,G[Vk]为连通分 支,其个数 p(G)=k (k≥1); k=1,G连通
性质
(1)
∑ m = 0 ( j = 1,2,..., m ) ( 2) ∑ ( m = 1) = d ( v ), ∑ ( m ( 3) ∑ m = 0
n i =1 m ij + m j =1 ij i j =1 ij i, j
ij
= 1) = d ( vi ), i = 1, 2,..., n
割集
1. 删除顶点及删除边 Gv ——从G中将v及关联的边去掉 GV′——从G中删除V′中所有的顶点 Ge ——将e从G中去掉 GE′——删除E′中所有边 2. 点割集与边割集 点割集与割点 定义 G=<V,E>, V′V V′为点割集——p(GV′)>p(G)且有极小性 v为割点——{v}为点割集 定义 G=<V,E>, E′E E′是边割集——p(GE′)>p(G)且有极小性 e是割边(桥)——{e}为边割集
(4) 平行边对应的列相同
邻接矩阵
定义 设无向图D=<V,E>, V={v1, v2, …, vn}, E={e1, e2, …, em}, 令cij为顶点 vi 和 vj 之间边的条数,称(cij)为D的邻接矩 阵,记作A(D),或简记为A.
定义 设有向图D=<V,E>, V={v1, v2, …, vn}, E={e1, e2, …, em}, 令cij为顶点 vi 邻接到顶点 vj 边的条数,称(cij)为D (cij)的 邻接矩阵,记作A(D),或简记为A.
有向图
定义 有向图D=<V,E>, 只需注意E是V×V 的多重子集 图2表示的是一个有向图,试写出它的V 和 E
注意:图的数学定义与图形表示,在同构的意义下是一一对应的
网络(带权图)
对于图G的每条边e都赋予一个值w(e),称为边的权,则G 连同边上的权称为一个网络,记为G=(V,E,w)
无向图的关联矩阵
时间复杂性
Kruskal算法:
O(n 2 log n)
O(n 2 ) Dijkstra算法:
作业
P :1, 2 140
�
支撑树
定义:T为G的支撑子图,且T为树,称T为G的支撑树. 定理:G有支撑树当且仅当G为连通图;
( S1 , S 2 ) : S1 , S 2 V (G ), 且S1 ∩ S 2 = φ , ( S1 , S 2 )表示S1与S 2之间的 边的集合,且( S1 , S 2 ) E (G ). 反树:设T 为图G的支撑树,令T 0 = G T , 称T 0为T的反树.
无向图的关联矩阵(对图无限制) 定义 无向图G=<V,E>,|V|=n,|E|=m,令 mij为 vi 与 ej 的关联次数,称(mij)n×m为G 的关联矩阵,记为M(G). 性质:
(1)
∑ m = 2 ( j = 1,2,..., m ) ( 2) ∑ m = d ( v ) ( i = 1, 2,..., n) ( 3) ∑ m = 2 m
无向树
定义 (1) 无向树——连通无回路的无向图 (2) 平凡树——平凡图 (3) 森林——至少由两个连通分支(每个都是树)组成 (4) 树叶——1度顶点 (5) 分支点——度数≥2的顶点
树的充要条件
定理16.1 设G=<V,E>是n阶m条边的无向图,则下面各命题 是等价的: (1) G 是树 (2) G 中任意两个顶点之间存在惟一的路径. (3) G 中无回路且 m=n1. (4) G 是连通的且 m=n1. (5) G 是连通的且 G 中任何边均为桥. (6) G 中没有回路,但在任何两个不同的顶点之间加一条新 边,在所得图中得到惟一的一个含新边的圈.
n i =1 m ij j =1 ij i ij i, j
( 4) 平行边的列相同
有向图的关联矩阵
有向图D=<V,E>,则称 (mij)n×m为D的关联矩阵,记为 定义 有向图 , 的关联矩阵,记为M(D). ×
1 , vi 为 e j的始点 mij = 0 , vi与 e j 不关联 1 ห้องสมุดไป่ตู้ v 为 e 的终点 i j