視頻筆記:https://www.bilibili.com/video/BV1cs411H7sz?t=38&p=48 (電子科技大學)
一,定義
1,設圖 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 ,只表示一條邊,是簡單圖。它也可以為 n,表示多條邊,對應多重圖
二,求補圖
1,補圖:設 G = < V,E > 為簡單圖,G′ = < V,E1 > 為完全圖,則稱
G1 =< V, E1 −E > 為 G 的補圖(complement of graph),記為G(上面有道橫線)。
2,若設簡單圖 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),其中 (i,j = 1,2,3,··· ,n)
pij = { 1 當vi到vj可達
{ 0 否則
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.
六,結點間的最短路徑的計算
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)。
顯然,這里也可以使用鄰接矩陣的布爾積冪來判定。
======== ======= ======= ===== ==== ==== ==== === == =
臨安春雨初霽 陸游(宋)
世味年來薄似紗,誰令騎馬客京華。
小樓一夜聽春雨,深巷明朝賣杏花。
矮紙斜行閑作草,晴窗細乳戲分茶。
素衣莫起風塵嘆,猶及清明可到家。