离散-图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 若S=P,则终止;否则令S=S∪{ui}, S’=S’-{ui},对 S’中每一个顶点v,计算
l(v)
min {l(v),
vS'
l(u i )
w(u i , v)}
转到(2)。
41
Dijkstra算法
f
2
e
71 2
35 1
a
8
7
2
u0 4
4
3
g3
46
b
6
c
d
42
Dijkstra算法执行过程
31
➢如果图G仅有一个分支,则称图G是连 通的。
➢对于图G,我们用W(G)记其连通分支数。
➢显然,一个图G是连通的,当且仅当G 中任意两点都是相连的。
a
ba
b
c
c
e
g
dd
f
f
e
G
H
32
§4.1.2 权图 Dijkstra算法
➢定义4.1.7 设G=(P, L)是有限图,如果 对L(G)中任一条边l,都规定一个实数 w(l)附在其上,则称G为有限权图(网络), 称w(l)为边l的权。规定w(uu)=0(其中 uP(G)), w(uv)=∞(其中uvL(G))。
d(u
0
,
S'
)
min
vS'
{d(u
0
,
v)}
实现上述距离的路称为u0到S’的最短路。 上述点到点集距离的定义等价于
d(u
0
,
S'
)
min
uS
{d(u
0
,
u)
w(u,
v)}
vS'
37
例:
如图所示,令S={a, b, f},则S’={c, d, e}, 求d(a, S’)?
S
S’
f2e
a
1 10
1
4
13
a a1
d1 d a
a1
d1 d
b
b1 母 c1 图
c
b
b1
支 撑
c1
子 图
c
a a1
d a
b b1
子 图
c b
d1 d
b1
诱 导
子
图
c
14
定义4.1.3
➢设G是图,vP(G),L(G)中以v为端点的
边的条数称为点v的度,记为dG(v)。
dG( a1)=0 ; dG( c )=1 ; dG( a )=2 ; dG( c1)=3 ;
44
➢ 4:l(a)=min{l(a), l(d)+w(d,a)}=min{8, 3+∞}=8 l(b)=min{l(b), l(d)+w(d,b)}=min{4, 3+∞}=4 l(c)=min{l(c), l(d)+w(d,c)}=min{∞, 3+6}=9 l(g)=min{l(g), l(d)+w(d,g)}=min{7, 3+3}=6
➢这里v,v’是图G中未必不同的两点, v0,v1,…, vn中也允许有重复。
26
例:
B AF
E
➢路(A,B,C,D) C 长度为3;
➢路(A,B,F,C,B) D 长度为4;
➢路(A,E,D,A) 长度为3.
27
定义 4.1.5
➢设G=(P,L)是图,(v0,v1,…,vn)是G中 从v0到vn的路,称此路为简单路,如果 1) v0,…,vn-1互不相同; 2) v1,…,vn互不相同。
Байду номын сангаас
0 aij 1
当v
i不是l
的端点
j
当v
i是l
的端点
j
➢显然,M(G)是m×n阶矩阵。
18
例:
v1
l1
v2
l4
v1 v2
v3
l1
v4
l3l5
l2
l4
l5l2
v5
M(MG()G) 110011000
01 10
0
10
01
00 10
0
11
01
01 10
0
00
11
110001100
v4
l3
v3
19
相邻矩阵(adjacency matrix)
➢ 设G=(P,L)是有限图,集合P的元数 为m,不妨设P(G)=v1,…,vm。矩阵 A(G) =bij称为G的相邻矩阵,其中
0 bij 1
当vi与v
不相邻
j
当vi与v
相邻
j
➢ 显然,A(G)是m×m阶矩阵。
20
例:
v1
v4
v2
0 1 1 1
A(G)
1 1
0 1
1 0
0 1
1 0 1 0
v3
21
➢ 设G=(P, L)是一个图,今后,我们用P(G) 表示G的(节)点集,用L(G)表示G的边集。 设lL(G),并假设l是连接G中点u、点v的边, 则称u、v是l的端点,并称u与v相邻。 若l1L(G),l2L(G),且l1和l2有公共的端点, 则称边l1与l2相邻。有时,在不致引起 混乱的情况下,将l记为uv。
3
d
6
b5
1
c
38
设u0=a,
取u=a,则w(ac)=∞,w(ad)=10,w(ae)=∞,
min {d(a, a) w(av)} min {w(av)} 10
vS'
vS'
取 u=b,则d(a,b)=6,w(bc)=5,w(bd)=∞,
w(be)=4,min {d(a, b) w(bv)} 6 4 10 vS'
取 u=f, 则d(a,f)=1, w(fc)=1, w(fd)=∞, w(fe)=2
min {d(a, f) w(fv)} 11 2
vS'
f2e
因而d(a, S’)=2,
a到S’的最短路为 a
1 10
1
4
3
d
(a, f, c)。
6
1
b5 c
39
Dijkstra算法
➢ 指导思想:设u0P, v0P ,要求u0到v0点的距离, 我们通过求u0到图中其它各点的距离。先把P 分成两个子集,一个设为S, S={v|vP, u0到v的 距离已求出},另一个是S’=P-S。显然,S, 因为至少u0S,算法不断扩大S,直到S=P(或 者v0 S)
9
6
7 u0 fedbag c
9
8 u0 fedbagc
43
➢ l(v) = min{ l(v), l(ui)+w(ui, v) } ➢ 2:l(a)=min{l(a), l(f)+w(f,a)}=min{8, 1+7}=8
l(b)=min{l(b), l(f)+w(f,b)}=min{4, 1+∞}=4 l(c)=min{l(c), l(f)+w(f,c)}=min{∞, 1+∞}=∞ l(d)=min{l(d), l(f)+w(f,d)}=min{∞, 1+3}=4 l(e)=min{l(e), l(f)+w(f,e)}=min{2, 1+2}=2 l(g)=min{l(g), l(f)+w(f,g)}=min{7, 1+∞}=7 ➢ 3:l(a)=min{l(a), l(e)+w(e,a)}=min{8, 2+∞}=8 l(b)=min{l(b), l(e)+w(e,b)}=min{4, 2+∞}=4 l(c)=min{l(c), l(e)+w(e,c)}=min{∞, 2+∞}=∞ l(d)=min{l(d), l(e)+w(e,d)}=min{4, 2+1}=3 l(g)=min{l(g), l(e)+w(e,g)}=min{7, 2+5}=7
➢(a,b,c,a)、 (a,c,d,a) 、 c (a,b,c,d,a)都是回路。
30
定义
➢设G=(P,L)是图,G中两点u,v,如果 从u到v有一条路,则称u与v是相连的。
➢我们认为点v与自身是相连的,则显然G 中两点之间的相连关系是一个等价关系。 在此等价关系下,集合P(G)必分成一些 等价类,不妨设为S1,…,Sn,…。显然,每 一个Si和G中所有以Si中的点为端点的边 一起,组成G的一个子图Gi。每个Gi称 为G的一个连通分支。
➢ 对任意的vP-{u0},设l(v)表示从u0仅经过S中 点到v的最短路的带权长度。若不存在这样的 路,置l(v)=∞。
40
Dijkstra算法
(1) 初始化,令S={u0},S’=P-S,对 S’中每一个 顶点v, 令l(v)=w(u0,v);
(2)
找到uiS’,满足l(u
i
)
min
vS'
{l(v)}
6
§4.1.1 图的基本概念
➢ 没有任何边(L(G)=)的图称为零图; ➢ 只有一个点的图称为平凡图; ➢ 任意两点之间都有边的图称为完全图。
(a) 图
(b) 零图
(c) 完全图
7
§4.1.1 图的基本概念
➢ 容许有平行边和反身边的图称为无向图; ➢ 不允许有反身边和平行边的图称为简单图.
8
图的同构(isomorphism)
✓§4.1 图 ✓§4.2 树 ✓§4.3 有向图 Euler路 ✓§4.4 Hamilton图
§4.5 平面图 §4.6 匹配 二部图 §4.7 Konig无限性引理
4
§4.1 图(Graphs)
5
§4.1.1 图的基本概念
➢ 定义4.1.1 G=(P, L)称为图。如果P是点的非 空集合,L是连接某些不同点对的边集合,并 且任意一对不同点之间最多有一条边。当P为 有限集时,G称为有限图。
定理 4.1.1
➢设G=(P, L)是有限图,不妨设L(G)含有 m个元素,于是
dG(v) 2m
vP (G)
22
证明:设M(G)是G的关联矩阵,因为G 中 代某表点点vv的的度那d一G行(v)中恰1是的M个(数G),中故的
dG(v) M(G)中1的个数
vP (G)
而M(G)中每列恰有两个1, M(G) 共m列,故M(G)中1的个数为2m。 所以:
10
图的同构(isomorphism)
11
例:
➢判断下列图是否同构。
12
定义4.1.2
➢设G、H是图,如果P(H)P(G), L(H)L(G),则称H是G的子图,G是 H的母图。如果H是G的子图,并且 P(H)=P(G),则称H是G的支撑子图。 如果H是G的子图,且L(G)中两个端点 都在P(H)中的边都在L(H)中,则称H 为点集P(H)在G中诱导的子图。
dG(v) dG(v)
vS1
vS2
是偶数。因为 dG(v)是偶数。所以 vS2
dG(v)是偶数,故S1的元数是偶数。
vS1
25
定义 4.1.4
➢设G=(P,L)是图,v、v’是G中两点。 由G中点组成的序列(v0,v1,…,vn)称为从 v到v’的长度为n的路,如果 (1) v0=v,vn=v’; (2) vi与vi+1相邻,0 i<n。
35
例: 最短路
a5
b
8
12 4
20
d
c
a到c的路有: (1) (a,b,c)长度为
5+4=9; (2) (a,c)长度为12; (3) (a,d,c)长度为
8+20= 28。 最短路为:(a,b,c), 因此a到c的距离为9.
36
Dijkstra算法
➢ 定义:设G是有限权图,SP(G),u0S, S’=P-S,定义u0到S’的距离为
➢称图G和H是同构的:如果存在P(G)到 P(H)的双射,使对任意的u,vP(G), u与v在G中相邻, 当且仅当(u)与(v) 在H中相邻。
➢我们把同构的图看成是一个图。
9
图的同构(isomorphism)
a1
a d1
d a1
d1 a
b1 b
c1 c
b1
b
c1
a a1 d1
d
d
c
b b1 c1
c
33
例: 权图
a5
b
8
12 4
20
d
c
w(ab)=5, w(aa)=0, w(bd)=∞, w(ad)=8
34
定义
➢在一个权图G中,任给两点u,v,从u到 v可能有多条路,在这些路中,所带的权 和最小的那条路称为图中从u到v的最短 路。这条最短路所带的权和称为u到v的 距离,记为d(u,v)。
➢显然两点间的最短路一定简单路(为什 么?),所以在网络中找最短路只需在 简单路中找。
dG(v) 2m
vP (G)
23
例:
➢ 是否存在带有下列度 的有5个点的简单图? 若有,画出这样的图。
1) 0, 1, 2, 2, 3 2) 3, 4, 3, 4, 3 3) 1, 2, 3, 4, 4
24
定理 4.1.2
➢任一有限图中,奇数度的点的个数为偶数。
证明:设S1,S2分别是图G中有奇数度的点和 有偶数度的点的集合,由定理4.1.1知
a a1
d1 d
b
b1 c1
c
15
今后,为简便计,有时也将图G中的 点v,边l,写成vG,lG。
16
图的表示
➢关联矩阵 ➢相邻矩阵(邻接矩阵)
17
关联矩阵(incidence matrix)
➢设G=(P,L)是有限图,集合P的元数为m, 集合L的元数为n,不妨设P(G)={v1,…, vm,L(G) =l1,…,ln。矩阵M(G) = aij称为G的关联矩阵,其中
第四章 图与网络
1
图论的应用
➢物种竞争问题:
浣熊 负鼠
鹰 猫头鹰
松鼠 乌鸦
➢浣熊与松鼠、 鹰、猫头鹰存在 竞争;
➢乌鸦与啄木鸟、 负鼠不存在竞争;
啄木鸟
2
图论的应用
A
B
CE D
➢地图着色问题: 确定可以用来 给一幅地图着 色的颜色的最 小数目,使得 相邻的区域永 远没有相同的 颜色。
3
第四章 图与网络
➢显然,一条简单路(v0,v1,…,vn),除v0与 vn可以相同外,其它任意两点都不相同。
28
定义 4.1.6
➢设G=(P,L)是图。G中从点v到自身的 其长度不小于3的简单路,称为回路。
29
例:
a
d
b ➢(a,b,c,d)是一条长度为 3的路(简单路)
➢(a,b,c,a,d,c,b)是一条 长度为6的路(不是简 单路)
S
S’ l(a) l(b) l(c) l(d) l(e) l(f) l(g)
1 u0
abcdefg 8 4 ∞ ∞ 2 1 7
2 u0 f
abcdeg 8 4 ∞ 4 2
7
3 u0 fe
abcdg 8 4 ∞ 3
7
4 u0 fed
abcg
849
6
5 u0 fedb
acg
6
9
6
6 u0 fedba cg