鄰接矩陣


視頻筆記: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)。

顯然,這里也可以使用鄰接矩陣的布爾積冪來判定。

 

 

 

======== ======= ======= ===== ==== ==== ==== === == =

臨安春雨初霽    陸游(宋)

世味年來薄似紗,誰令騎馬客京華。

小樓一夜聽春雨,深巷明朝賣杏花。

矮紙斜行閑作草,晴窗細乳戲分茶。

素衣莫起風塵嘆,猶及清明可到家。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM