图的矩阵表示

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

0 1 1 0
0 1 A(G2 ) = 1 0
0 0 1 1
1 0 0 0
1 0 1 0
如果给定的图是零图,则其对应的矩阵中所有的元素都为零, 如果给定的图是零图,则其对应的矩阵中所有的元素都为零, 它是一个零矩阵,反之亦然, 它是一个零矩阵,反之亦然,即邻接矩阵为零矩阵的图必是 零图。 零图。
1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 2 3 4 5 P = A ∨ A ∨ A ∨ A ∨ A = 1 0 0
由此看出, 由此看出,如果把邻接矩阵看作是结点集 V 上关系 R 的 关系矩阵, 关系矩阵,则可达性矩阵 P 即为 M R ,因此可达矩阵亦 算法计算。 可用 Warshall 算法计算。
定义10.20 定义10.20 给定无向图 G,令 v1, v2, …, vp 和 e1, e2, …, eq 的结点和边, 分别记为 G 的结点和边,则矩阵 M(G)=(mij),其中
1, 若 v i 关 联 e j m ij = 0, 若 v i 不 关 联 e j
0 1 A = 0 0 0
0 2 3 A = 0 0 0
v4
1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0
2 0 0 0 0 2 0 0 2 0 0 0 0 0 0 1 0 0 1 0
1 0 0 0 1
同理可证: 同理可证:
0 0 4 A = 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 5 A = 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0
(A ( G )) l +1 = A (G ) • ( A (G )) l

a
百度文库( l + 1) ij
=

n
k =1
( a ik ⋅ a kjl )
根据邻接矩阵的定义 aik 表示连接 vi 与 vk 长度为 ( 1 的路的数目,而 a ijl ) 是连接 vk 与 vj 长度为 l 的路的 的路的数目, 数目, 数目,式
v3 无向图
v4
0 1 A (G ) = 1 1 1
1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0
有向图 G1
v1
v4 G2
v2
v4
v2
v3
v1
v3
0 0 A(G1 ) = 1 1
1 0 1 0
0 1 0 0
图的矩阵表示 计算机科学领域有许多算法涉及图。计算机存储图的 计算机科学领域有许多算法涉及图。 一种最简单有效的方法就是矩阵。 一种最简单有效的方法就是矩阵。矩阵是由数字组成的矩 阵表格,一般用大写字母表示。(元素、 。(元素 )。图论 阵表格,一般用大写字母表示。(元素、行、列)。图论 有效地利用了矩阵, 有效地利用了矩阵,将其作为表达图及其性质的有效工具 和手段。 和手段。
(2) (aij ) n×n
(2) (aij ) 表示从结点 vi 到结点 vj 的长度为 2 的路的数目。 的路的数目。
(2) (aii ) 表示从结点 vi 到结点 vi 的长度为 2 的回路的数目。 的回路的数目。
从结点 vi 到结点 vj 的一条长度为 3 的路,可以看 的路, 的路, 作从结点 vi 到结点 vk 的长度为 1 的路,和从结点 vk 的路, 到结点 vj 的长度为 2 的路,故从结点 vi 到结点 vj 的 一条长度为 3 的路的数目: 的路的数目:
V 定义10.19 定义10.19 令 G=<V, E> 是一个简单有向图, = n , 是一个简单有向图, 假定 V 的结点已编序,即 V={v1, v2, …, vn},定义 的结点已编序, 一个 n×n 矩阵 = (pij ) 。其中 P
1, 从 vi 到 v j 至少存在一条路 Pij = 0, 从 vi 到 v j 不存在路
1 0 2 A = 1 0 0
2 0 4 A = 2 0 0
0 1 0 0 2 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
0 2 0 0 4 0 0 0 0 2 0 0 0 0 1 0 0 0 0 1
称矩阵 P 是图 G 的可达性矩阵。 可达性矩阵。
可达性矩阵表明了图中任意两个结点间是否至少存在 一条路以及在任何结点上是否存在回路。 一条路以及在任何结点上是否存在回路。 一般地可由图 G 的邻接矩阵 A 得到可达性矩阵 P。 即令 Bn=A+A2+…+An,在从 Bn 中将不为 0 的元素改 而为零的元素不变, 为 1,而为零的元素不变,这样改换的矩阵即为可达性矩 阵 P。 Warshall 算法可以由邻接矩阵求可达性矩阵 P。
定义10.18 定义10.18 设 G=(V, E) 为简单图,它有 n 个结点 V 为简单图, ,,则 ={v1, v2, …, vn},,则 n 阶方阵 A(G ) = (aij ) 称为 G 邻接矩阵。 的邻接矩阵。 1, v i 邻 接 v j ; 其中 a ij = 0, 不 邻 接 v j或 i = j . v1 v2 v5
( a ijl + 1 ) =

n
k =1
a ik ⋅ a k( lj )
中每一项表示由 vi 经过一条边到 vk,再由 vk 经过长 的路的数目。 度为 l 的路到 vj 的,总长度为 l+1 的路的数目。对所 求和, 有的 k 求和,即是所有从 vi 到 v 的长度为 l+1 的路 的数目,故命题对成立。 的数目,故命题对成立。
【例10.6】给定一图 G=(V, E) 如下图所示。 10. 如下图所示。 v1 v5
v2 解: 从矩阵中可以看到, 从矩阵中可以看到, v1 与 v2 之间有两 的路, 条长度为 3 的路, 结点 v1 与 v3 之间 有一条长度为 2 的 路,在结点 v2 有四 的回路。 条长度为 4 的回路。 v3
在许多问题中需要判断有向图的一个结点 vi 到另 一个结点 vj 是否存在路的问题。如果利用图 G 的邻接 是否存在路的问题。 矩阵 A,则可计算 A,A2,A3,…,An,…,当发现 ≥1, 可达。 其中的某个 Al 的 aij(l)≥1,就表明结点 vi 到 vj 可达。 但这种计算比较繁琐, 不知计算到何时为止。 但这种计算比较繁琐,且 Al 不知计算到何时为止。从 前面得知, 前面得知,如果有向图 G 有 n 个结点 V={v1, v2, … , vn} vi 到 vj 有一条路,则必有一条长度不超过 n 的 有一条路, 通路, 就可以了, 1≤l≤n。 通路,因此只要考察 aij(l) 就可以了,其中 1≤l≤n。 对于有向图 G 中任意两个结点之间的可达性,亦可用 中任意两个结点之间的可达性, 可达矩阵。 可达矩阵。
+
可达性矩阵的概念可以推广到无向图中,只要将无向 可达性矩阵的概念可以推广到无向图中, 图的每一条边看成是具有相反方向的两条边,这样, 图的每一条边看成是具有相反方向的两条边,这样,一个 无向图就可以看成是有向图。 无向图就可以看成是有向图。无向图的邻接矩阵是一个对 称矩阵,其可达矩阵称为连通矩阵。 称矩阵,其可达矩阵称为连通矩阵。 除了可用邻接矩阵以外, 对于一个无向图 G,除了可用邻接矩阵以外,还对应 完全关联矩阵, 无自回路, 着一个称为图 G 的完全关联矩阵,假定图 G 无自回路,如 因某种运算得到自回路,则将它删去。 因某种运算得到自回路,则将它删去。
用图形表示图的方法, 用图形表示图的方法 , 关于结点间的通路很容易在图形 中看出来,但在邻接矩阵中就需经过计算。 中看出来,但在邻接矩阵中就需经过计算。设有向图 G 的 它的邻接矩阵 邻接矩阵为 结点集 V={v1, v2, …, vn},它的邻接矩阵为: A(G)=(aij)n×n,现在我们来计算从结点 vi 到结点 vj 的长度为 2 的路的数目。注意到每条从结点 vi 到结点 的路的数目。 vj 的长度为2的路的中间必经过一个结点vk,即vi→vk→vj 的长度为2的路的中间必经过一个结点v (1≤k≤n),如果图中有路 vivkvj 存在,那么 aik=akj= 存在, 1,即 aik·akj=1,反之如果图 G 中不存在路 vivkvj,那 么 aik=0 或 akj=0,即 aik·akj=0,于是从结点 vi 到结 的路的数目等于: 点 vj 的长度为 2 的路的数目等于:
ai1 ⋅ a1 j + ai 2 ⋅ a2 j +⋯+ ain ⋅ anj = ∑aik ⋅ akj
k =1
n
按照矩阵的乘法规则,这恰好是矩阵中的第 i 行, 按照矩阵的乘法规则, 列的元素。 第 j 列的元素。
a11 a12 a 2 21 a22 = (A(G )) = ⋮ ⋮ an1 an 2 ⋯ a1n a11 ⋯ a2 n a21 • ⋱ ⋮ ⋮ ⋯ ann an1 a12 ⋯ a1n a22 ⋯ a2 n ⋮ ⋱ ⋮ an 2 ⋯ ann
⋯ a1n ⋯ a2n ⋱ ⋮ ⋯ ann
上述这个结论对无向图也成立。 上述这个结论对无向图也成立。
定理10.10 定理10.10 设 A(G) 为图 G 的邻接矩阵,则 (A(G))l 中的 的邻接矩阵, (l ) i 行 j 列元素 aij 等于 G 中连接结点 vi 与 vj 的长度为 l 的路的数目。 的路的数目。 证明:归纳法证明。 证明:归纳法证明。 (1) 当 l=2 时,由上得知是显然成立。 由上得知是显然成立。 (2) 设命题对 l 成立,由 成立,
【例10.7】求下图的可达性矩阵。 10.7】求下图的可达性矩阵。 解:
0 0 A = 1 0 0
1 0 0 0 1 0 0 0 0 0
p1 p5 p2
1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0
0 1 0 0 0 0 0 0 • 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0
a
即:
(3) ij
= ∑ aik • a
k =1
n
(2) kj
(3) (aij )n×n = (A(G))3 = (A(G)) • (A(G))2
一般地有
a11 a12 a a ( (aijl ) )n×n = (A(G))l = 21 22 ⋮ ⋮ an1 an2
⋯ a1n a11 a12 l −2 a a ⋯ a2n 21 22 ⋯ ⋱ ⋮ ⋮ ⋮ ⋯ ann an1 an2
p4
0 0 0 0 0 = 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0
p3
0 1 0 0 1
0 0 2 A = 1 0 0
0 1 0 0 0 0 3 A = 1 0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0 0 0 0 • 0 1 0 0 1 0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 0 1 0 0 0 0 = 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0
相关文档
最新文档