7-3 图的矩阵表示

25
7-3 图图图图图图 图图 图图 G=<V E> 图图图图图图图图图图图图图图 图图图图图 图图图图图图图图图图图 图图图图图图图图 ,。 ( 图图 ) 图图图图图图 图图图图图图图图图 图图图图图图图图图图图 图图图图图图 图图图图图图—— 。。一 图图图图图图图 图图图图图图图图图图图图图图图 图图图图图图图图图图图图图 。, 图图图图图图图图 图图图图图图图图图图 ,。

Upload: scott

Post on 15-Jan-2016

131 views

Category:

Documents


0 download

DESCRIPTION

7-3 图的矩阵表示. 给定一个图 G= ,使用图形表示法很容易把图的结构展现出来,而且这种表示直观明了。但这只在结点和边 ( 或弧 ) 的数目相当小的情况下才是可行的。显然这限制了图的利用。本节提供另一种图的表示法 —— 图的矩阵表示法。它不仅克服了图形表示法的不足,而且这种表示可以充分利用现代工具电子计算机,以达到研究图的目的。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 7-3   图的矩阵表示

7-3 图的矩阵表示

给定一个图 G=<V , E> ,使用图形表示法很容易把图的结构展现出来,而且这种表示直观明了。但这只在结点和边 ( 或弧 ) 的数目相当小的情况下才是可行的。显然这限制了图的利用。本节提供另一种图的表示法——图的矩阵表示法。它不仅克服了图形表示法的不足,而且这种表示可以充分利用现代工具电子计算机,以达到研究图的目的。

Page 2: 7-3   图的矩阵表示

一个简单图 G=<V , E> 由 V 中每两个结点间的邻接关系唯一地确定,这种关系可以用一个矩阵给出,而矩阵形式与图中结点的编序有密切关系,这是用矩阵表示图值得注意的一点。 一、邻接矩阵

定义 7-3.1 设设 G=<V,E> 是一个简单图,它有是一个简单图,它有 nn 个个结点结点 V={v1,v2,…vn} ,则,则 nn 阶方阵阶方阵 A(G)=(aA(G)=(aijij))nn×nn 称为图称为图GG 的的邻接矩阵邻接矩阵 (adjacency matrix) 。其中:。其中: 11 vi adj vj

00 vi nadj vj 或 i=j

adj 表示邻接, 表示邻接, nadj 表示不邻接。表示不邻接。

aaijij==

Page 3: 7-3   图的矩阵表示

0 1 0 0A(G1)= 0 0 1 1 1 1 0 1 1 0 0 0

例如 0 1 1 1 1 1 0 1 0 0A(G)= 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0

无向图的邻接矩阵是对称矩阵,有向图的邻接矩阵不一定是对称的。

288 页图 7-3 .1

288 页图 7-3 .2

G1

Page 4: 7-3   图的矩阵表示

288 页图 7-3 .2 G2

G2 只是将 G1 的两个结点 v1 和 v2 调换

0 0 1 1 1 0 0 0A(G1)= 1 1 0 1 0 1 0 0

图 G2 的邻接矩阵是将图 G1 的邻接矩阵第一、

二行对调,第一、二列对调得到的。

Page 5: 7-3   图的矩阵表示

对于给定图 G ,显然不会因结点编序不同而使其结构发生任何变化,即图的结点所有不同的编序实际上仍表示同一个图。换句话说,这些结点的不同编序的图都是同构的,并且它们的邻接矩阵都是相似的。于是 G 与 H 同构存在置换矩阵 P ,使 A(H)=P-1A(G)P ,今后将略去这种由于 V 中结点编序而引起邻接矩阵的任意性,而取该图的任一个邻接矩阵作为该图的矩阵表示。

Page 6: 7-3   图的矩阵表示

邻接矩阵可展示相应图的一些性质:若邻接矩阵的元素全为零,则其对应的图是零图;若 ( 无向图 ) 邻接矩阵的元素除主对角线元素外全为 1 ,则其对应的图是简单完全图。( 有向图 ) 邻接矩阵的元素除主对角线元素外全为 1 ,则其对应的图是强连通图。

Page 7: 7-3   图的矩阵表示

当给定的简单图是无向图时,邻接矩阵是对称矩阵;反之,若给定任何对称矩阵 A ,显然可以唯一地作出以 A 为其邻接矩阵的简单图 G 。于是,所有 n 个结点的不同编序的简单图的集合与所有 n 阶对称矩阵的集合可建立一一对应。

Page 8: 7-3   图的矩阵表示

当给定的图是简单有向图时,其邻接矩阵并非一定是对称矩阵,但所有 n 个结点的不同编序的简单图的集合,与所有 n 阶邻接矩阵的集合亦可建立一一对应。 不仅如此,通过对矩阵元素的一些计算还可以得到对应图的某些数量的特征。

Page 9: 7-3   图的矩阵表示

在给定简单有向图的邻接矩阵中,第 i 行元素是由结点 vi 出发的弧所确定,故第 i 行中值为

1 的元素数目等于结点 vi 的出度。同理,第 j 列

中值为 1 的元素数目等于结点 vj 的入度。即 d+(v

i)=

和 d-(vj)= 。

1

n

ikk

a

1

n

kjk

a

Page 10: 7-3   图的矩阵表示

利用邻接矩阵计算长度为 k 的路径条数 :

按照普通矩阵乘法计算按照普通矩阵乘法计算 nn 阶方阵阶方阵 A(G)=(aA(G)=(aijij))nn×nn 的的 l

次幂次幂 ,, 所得乘积矩阵中的第所得乘积矩阵中的第 ii 行第行第 jj 列的元素列的元素 ,, 就是从结点就是从结点vvii 到结点到结点 vvjj 的长度为的长度为 ll 的路径条数。的路径条数。 (a(aij ij

(l)(l) ))nn×nn= (A(G)) = (A(G)) ll = =

aa11 11 aa1212...a...a1n 1n aa11 11 aa1212...a...a1n 1n aa11 11 aa1212...a...a1n1n

aa21 21 aa2222...a...a2n 2n aa21 21 aa2222...a...a2n 2n … … aa21 21 aa2222...a...a2n2n

... ... … ... ... ... ... ... ...... ... … ... ... ... ... ... ... aan1 n1 aan2n2...a...ann nn aan1 n1 aan2n2...a...ann nn aan1 n1 aan2n2...a...annnn

共 l 个 n

其中 aaij ij (l)(l)

= = aaik ik × aakj kj (l-1)(l-1)

k=1

. . .

Page 11: 7-3   图的矩阵表示

例 290 页例 1

定理 7-3.1 设设 A(G)A(G) 是图是图 G=<V,E> 的邻接矩阵,则的邻接矩阵,则 (A(G))(A(G))ll

中的中的 ii 行行 jj 列元素列元素 aaij ij (l)(l) 等于等于 GG 中联结中联结 vvii 与与 vvjj 的长度为的长度为 ll 的路径条的路径条

数。数。 证明思路:对 ll 用数学归纳法证明。 1) 当 l=1l=1 时 :aaij ij

(2)(2) 等于等于 GG 中联结中联结 vvii 与与 vvjj 的长度为的长度为 22 的路径条的路径条数。数。 2) 设命题对 ll 成立,即: aaij ij

(l)(l) 等于等于 GG 中联结中联结 vvii 与与 vvjj 的长度为的长度为 ll

的路径条数。的路径条数。 3) 现证 l+1l+1 时也成立。即 (A(G))(A(G))l+1l+1=(A(G)). (A(G))=(A(G)). (A(G))ll

n

aaij ij (l+1)(l+1)

= = aaik ik × aakj kj (l)(l)

k=1 对 k 求和即得结论。

vkvi vj

长度 =1长度 =l

共共 aakj kj (l)(l) 条条

Page 12: 7-3   图的矩阵表示

练习300 页( 1 )

求出图 7-3.9 中有向图的邻接矩阵 A ,找出从 v1 到 v4 长度为 2 和 4 的路,用计算 A2 , A3 , A4 来验证这结论。解

A=

0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0

0 1 1 1 0 2 0 1 0 2 1 1 0 0 1 1

A2=

0 2 1 2 0 2 2 2 0 2 1 2 0 2 0 1

A3=

0 4 2 3 0 4 1 3 0 4 2 3 0 2 2 2

A4=

从 v1 到 v4 长度为 2 的路为 v1 v2 v4

从 v1 到 v4 长度为 4 的路有: v1 v2 v4 v2 v4

v1 v2 v3 v2 v4 v1 v4 v2 4 v3 v4

Page 13: 7-3   图的矩阵表示

在一些实际问题中,有时要判定图中结点 vi 到结

点 vj 是否可达,或者说 vi 到 vj 是否存在路。如果利

用图 G 的邻接矩阵 A ,则可计算 A2 , A3 ,···,An ,···。当发现其中某个 Al的 aij

(l)≥1 ,就表

明 vi 可达 vj 或 vi 到 vj 存在一条路。但这种计算繁琐

量大,又不知计算 Al到何时为止。

Page 14: 7-3   图的矩阵表示

根据定理 7-2.1 的推论可知,如果有向图 G 有n 个结点, vi 到 vj 有一条路,则必然有一条长度

不大于 n 的通路,因此,只需考虑aij(l) 就可以了,

其中 1≤l≤n 。即只要计算 Bn=A+A2+A3+···+

An 。 如果关心的是结点间可达性或结点间是否有路,至于结点间的路存在多少条及长度是多少无关紧要,那么便可用可达矩阵来表示结点间可达性。

Page 15: 7-3   图的矩阵表示

二、、可达矩阵

可达性矩阵的求法有两种:可达性矩阵的求法有两种: 1) 1) 计算矩阵 计算矩阵 BBnn=A+A=A+A22+A+A33+…+A+…+Ann

令矩阵 令矩阵 BBnn 中不为零的元素等于中不为零的元素等于 11 ,为零的元素不,为零的元素不变,得到变,得到 PP 。。见例题见例题 11 。。 2) 2) 令令 PP =A=A∨AA(2) (2) ∨ A A(3) (3) ∨ … … ∨ A A(n)(n)

其中其中 AA(i)(i)(i=1,2,…,n)(i=1,2,…,n) 为布尔矩阵。为布尔矩阵。见例题见例题 22 。。

定义 7-3.2 设设 G=<V,E> 是一个简单有向图,它是一个简单有向图,它有有 nn 个已经编序的结点个已经编序的结点 V={v1,v2,…vn} ,定义,定义 nn 阶方阵阶方阵P(G)=(pP(G)=(pijij))nn×nn 称为图称为图 GG 的的可达性矩阵可达性矩阵 。其中:。其中: 11 从从 vi 到到 vj 至少存在一条路。至少存在一条路。 0 0 从从 vi 到到 vj 不存在路。不存在路。

ppijij==

Page 16: 7-3   图的矩阵表示

可见,可达矩阵表明了图中任意两结点间是否至少存在一条路以及在结点处是否有回路。 从图 G 的邻接矩阵 A 可以得到可达矩阵 P ,即令Bn=A+A2+A3+…+An ,再从 Bn 中非零元素改为 1

而零元素不变,这种变换后的矩阵即是可达矩阵 P 。

练习:300 页( 2 )( 3 )

I = 1 , 2 , 3 ,……, n第 i步:如果 A[ j , i]=1 ,则将第 i 行加到第 j 行。

(在具体计算中可以通过Warshall算法实现)

Page 17: 7-3   图的矩阵表示

300 页( 2 ) 如果 u 可达 v ,它们之间可能不止一条路,在所有这些路中,最短路的长度称为 u 和 v 之间的距离(或短程线),记作 d<u,v> ,如果从 u 到 v是不可达的,则通常写成 d<u,v> =∞

距离矩阵为

0 1 2 1∞ 0 1 1∞ 1 0 1∞ 1 2 0dij=1 表示存在边 <vi,vj> 。

Page 18: 7-3   图的矩阵表示

300 页( 3 )

用 Warshall 算法求可达性矩阵。

邻接矩阵为

0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0

A=

i=1 时,因为 A 的第一行全为0 ,所以 A 不变。i=2 时,因为 A 的第 2 列全为0 ,所以 A 不变。

i=3 时,因为 A[2 , 3]=A[4 , 3]=0 ,将第3 行加到第 2 行和第 4 行。

0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0

A :=

i=5 时,因为 A 的第 5 列全为 0 ,所以 A不变。

0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0

P=

故 A 的可达性矩阵为

Page 19: 7-3   图的矩阵表示

距离矩阵为

0 ∞ ∞ ∞ ∞ 1 0 1 1 ∞ 1 ∞ 0 ∞ ∞ 2 ∞ 1 0 ∞∞ ∞ ∞ ∞ 0

Page 20: 7-3   图的矩阵表示

三、关联矩阵1 、无向图的关联矩阵

举例 294 页图 7-3.5

定义 7-3.3 给定无向给定无向图 G=<V,E>, 设 v1, v2,…, vp

V, e1,…, eqE, 称 p×q 阶矩阵 M (G)=(mij)p×q 为图 G

的完全关联矩阵完全关联矩阵( incidence matrix)。其中 :

11 若若 vi 关联关联 ej 。。

0 0 若若 vi 不关联不关联 ej 。 。 mij=

Page 21: 7-3   图的矩阵表示

无向图的关联矩阵反映出来图的性质反映出来图的性质 :: 1) 1) 每一条边关联两个结点每一条边关联两个结点 ,,故每一列中只有两个故每一列中只有两个

11 。。 2) 2) 每一行中元素之和等于该行对应的结点的度每一行中元素之和等于该行对应的结点的度

数。数。 3) 3) 一行中元素全为一行中元素全为 00,其对应结点为孤立点。,其对应结点为孤立点。 4) 4) 两个平行边其对应的两列相同。两个平行边其对应的两列相同。 5) 5) 同一个图当结点或边的编号不同时,其对应同一个图当结点或边的编号不同时,其对应

的矩阵只有行序列序的差别。的矩阵只有行序列序的差别。

Page 22: 7-3   图的矩阵表示

2 、有向图的关联矩阵

举例 294 页图 7-3.6

定义 7-3.4 给定简单有向给定简单有向图 G=<V,E>, 设 v1, v2,…,

vpV, e1,…, eqE, 称 p×q 阶矩阵 M (G)=(mij)p×q 为

图 G 的完全关联矩阵完全关联矩阵 (incidence matrix) 。其中 :

11 若若 vi 是是 ej 的起点。的起点。

-1-1 若若 vi 是是 ej 的终点。 的终点。

0 0 若若 vi 不关联不关联 ej 。 。

mij=

Page 23: 7-3   图的矩阵表示

有向图的关联矩阵的特点: (1) 每一列中有一个 1 和一个 -1 ,对应一边一个始点、一个终点,元素和为零。

(2) 每一行元素的绝对值之和为对应点的度数。 -1 的个数等于入度, 1 的个数等于出度。

有向图 G 的两行相加定义为:第 i 行第 j 列的对应元素算术相加;相当于删除结点 vi 与结点 vj 之间的关联边,合并结点 vi 和 vj 。合并后得到的新结点记为vi,j 。 无向图 G 的两行相加定义为:第 i 行第 j 列的对应元素模 2 相加;相当于删除结点 vi 与结点 vj 之间的关联边,合并结点 vi 和 vj 。合并后得到的新结点记为vi,j 。 参见教材 P296页例题。

Page 24: 7-3   图的矩阵表示

3 、关联矩阵的秩

练习 :300 页( 4 )

定理 7-3.2 如果一个连通如果一个连通图 G=<V,E>, 有 r 个结点 , 则其完全关联矩阵 M(G) 的秩为 r-1, 即 rank M

(G)=r-1 。 证明思路: 只对无向图证明 只对无向图证明 利用线性代数中矩阵的初等(行、列)变换不改利用线性代数中矩阵的初等(行、列)变换不改变矩阵的秩的结论和方法。 变矩阵的秩的结论和方法。 定理 7-3.2 的推论 如果一个连通如果一个连通图 G=<V,E>, 有r 个结点 ,w 个最大连通子图 , 则图 G 的完全关联矩阵 M(G) 的秩为 r- w, 即 rank M (G)=r-w 。

Page 25: 7-3   图的矩阵表示

300 页( 4 ) 写出如图 7-3.11 所示的图 G 的完全关联矩阵,并

验证其秩如定理 7-3.2 所述。

e1 e2 e3 e4 e5 e6 e7 e8 e9

A 1 0 0 0 0 1 0 1 0

B 0 1 1 0 0 0 1 0 0

C 0 0 0 1 1 0 0 1 0

D 1 1 0 0 0 0 0 0 1

E 0 0 0 0 1 1 1 0 0

F 0 0 1 1 0 0 0 0 1

完全关联矩阵为 :

此图为连通图,由定理 7-3.2 ,其秩为 5 。