视频笔记:https://www.bilibili.com/video/BV1cs411H7sz?t=38&p=48 (电子科技大学)
一,定义
设图 G =< V,E >,其中 V = {v1,v2,··· ,vn}, 并假定结点已经有了从 v1 到 vn 的次序,
则 n 阶 方阵 AG = (aij)nxn 称为 G 的邻接矩阵 (adjacency matrix),其中 ,(i,j = 1,2,3,··· ,n)
aij = { 1 < vi,vj >∈E 或 (vi,vj) ∈E ,
{ 0 否则
这里的定义可同时表示 有向图 和 无向图 ,
但这个 邻接矩阵 ,他这里只用了 1 ,只表示一条边,是简单图,
我们教材是可以表示 多条边的,可以是 多重图
二,求补图
补图:设 G =< V,E > 为简单图,G′ =< V,E1 > 为完全图,
则称G1 =< V,E1 −E >为 G 的补图(complement of graph),记为G(上面有道横线)。
若设 简单图 G 的邻接矩阵 A = (aij)n×n,则它的补图 G 的邻接矩阵 A(上面有个横线) = ( aij (a 的上面有个横线) )n×n 为:
aij (a 的上面有个横线) = { 1−aij i̸= j
{ 0 i = j , (i,j = 1,2,3,··· ,n)
注意 前提是 简单图。
三。计算度数
设图 G =< V,E >,V = {v1,v2,··· ,vn} 的邻接矩阵为
A = a11 a12 ··· a1n
a21 a22 ··· a2n
. . . . . . . . .
an1 an2 ··· ann
若 G 是无向图,则结点 vi 的度数 deg(vi) = n ∑ k=1 ( aik +aii ) ,或 deg(vi) = n ∑ k=1 ( aki +aii )
若 G 是有向图,则结点 vi 的出度 deg+(vi) = n ∑ k=1 ( aik ),入度 deg−(vi) = n ∑ k=1 ( aki )
( 无向图的 aii 代表环,在计算 度数 时,要计算两遍 )
四,通路数量的计算
1,引入
我们经常会考虑如下的问题:
有多少种方式可从成都到达北京?
猫头鹰和松鼠之间的间接食物竞争有哪些方式?
报文有多少种方式可从 A 计算机发送到距离很远的 B 计算机?
这些问题都可以归结为求图中任何两个结点间有多少条长度为 m 的通路的问题。 若使用人工方式,随着图中结点和边的数目增加,其难度将呈几何级数增加。
而 利用计算机,我们可以较为容易且准确的解决这个问题
2,计算
设 G =< V,E > 为线图(简单图),V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵,
Am = (a(m) ij )nxn。则:
a(m) ij 为从结点 vi 到结点 vj 长度为 m 的通路数目;
a(m) ii 为结点 vi 到自身的长度为 m 的回路数目;
n ∑ i=1 n ∑ j=1 a(m) ij 是 G 中长度为 m 的通路(含回路)总数. (所有元素的 和)
n ∑ i=1 a(m) ii 是 G 中长度为 m 的回路总数. (对角线上元素的 和)
其中,A(m),a(m) 代表 矩阵的 m 次幂
3,证明
对 m 用数学归纳法。
1 当 m = 1 时,显然成立。
2 设 m = k 时,定理成立。
3 证明 m = k+ 1 时定理成立。因为 (a(k+1) ij )n×n = Ak + 1 = A × Ak = (n ∑ p= 1 (aip ) ( a(k) pj ) )n×n,
故 a(k+1) ij = n ∑ p= 1 (aip ) ( a(k) pj ),而 aip 是结点 vi 到 vp 长度为 1 的通路数目,
a(k) pj 是结点 vp 到 vj 长度为 k 的通路数目,故 (aip ) ( a(k) pj )是从结点 vi 经过 vp 到结点 vj 的长度为 k+1 的通路数目,
那么 n ∑ p=1 (aip ) ( a(k) pj ) 是从结点 vi 到结点 vj 的长度为 k+ 1 的通路数目。 ( 其中,a(k) 代表 矩阵的 k 次幂 )
4, 推论
设矩阵 B(m) = (bij)n×n = A(1)+A(2) +···+A(m) (m⩾ 1),
则 bij 表示结点 vi 到 vj 长度不大于 m 的通路数目,
而 n ∑ i=1 n ∑ j=1( bij ) 则可表示图中长度不大于 m 的通路总数,
n ∑ i=1 ( bii ) 则可表示 图中所有长度不大于 m 的回路总数。
五, 可达性的判定
1,考虑: 如何判断图中两结点间是否可达?
判断图中两结点 vi 到 vj 是否可达的关键是判断是否存在通路,
因而只要求邻接矩阵 A 及其正整数次幂 A,A2,A3,···,一旦发现这些矩阵中 i 行 j 列元素为非 0,则表示存在通 路。
2,定理
在一个具有 n 个结点的图中,如果从结点 vi 到结点 vj(vi ̸= vj) 存在一条通路,则从 vi 到 vj 存在一条长度不大于 n−1 的通路.
在一个具有 n 个结点的图中,如果存在经过结点 vi 回路,则存在一条经过 vi 的长度不 大于 n 的回路。
所以不需要算到 无穷次幂,只需算到 n-1 次幂
所以:设 G =< V,E > 为线图,V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵, Am = (a(m) ij )nxn,m = 1,2,··· ,n,
Bn = (b(n) ij )nxn = A+A2 +A3 +···+An。
则有当 vi ̸= vj 时,如果b(n) ij > 0,那么从 vi 到 vj可达,否则不可达。
(注意:这里的 n 是结点数,不是边数)
3, 可达性矩阵
①
设 G =< V,E > 是一个线图,其中 V = {v1,v2,··· ,vn},并假定结点已经有了从 v1 到 vn 的次序,
称 n 阶方阵 P = (pij) nxn 为图 G 的 可达性矩阵(accessibility matrix),其中
pij = { 1 当vi到vj可达
{ 0 否则 , (i,j = 1,2,3,··· ,n)
1 无向图的可达性矩阵是对称的,而有向图的可达性矩阵则不一定对称;
2 由前面的讨论可知,通过计算 Bn 就可计算出 P 中各元素,即
pij = { 1 b(n) ij ̸= 0
{ 0 b(n) ij = 0 , (i,j = 1,2,3,··· ,n)
②
设 G =< V,E > 为线图,A、P 分别是 G 的邻接矩阵和可达性矩阵,
则有 P = A∨A(2) ∨A(3) ∨···∨A(n), 这里,A(i) 表示做矩阵布尔乘法的 i 次幂.
这里应该是 将矩阵的乘法 变成 析取,即结果只能为 0 或 1.
六,结点间的最短路径的计算
设 G =< V,E > 为线图,V = {v1,v2,··· ,vn},A = (aij)nxn 为 G 的邻接矩阵,
Am = (a(m) ij )nxn,m = 1,2,··· ,n,
d(vi,vj) = { ∞ 如果所有a(m) ij 均为0
{ k k = min{m|a(m) ij ̸= 0} ,(m = 1,2,3,··· ,n)。
显然,这里也可以使用邻接矩阵的布尔积幂来判定。
======== ======= ======= ===== ==== ==== ==== === == =
临安春雨初霁 陆游(宋)
世味年来薄似纱,谁令骑马客京华。
小楼一夜听春雨,深巷明朝卖杏花。
矮纸斜行闲作草,晴窗细乳戏分茶。
素衣莫起风尘叹,犹及清明可到家。