在圖論和電腦科學中,鄰接矩陣(英語:adjacency matrix)是一種方陣,用來表示有限圖。它的每個元素代表各點之間是否有邊相連。
作爲特例,簡單圖的鄰接矩陣是(0,1)矩陣並且對角線元素都爲0。無向圖的鄰接矩陣是對稱矩陣。圖和其鄰接矩陣的特徵值和特徵向量之間的關系是譜圖理論的研究對象。
圖的關聯矩陣需要和鄰接矩陣區分。它是圖的另一種矩陣表示方式,它的元素表示各個節點-邊對是否相關。還有圖的度數矩陣,含有每個結點的度數資訊。
距離矩陣可算是鄰接矩陣的擴充。
定義
階為的圖的鄰接矩陣是的。將的頂點標籤為。若,,否則。也可以用大於0的值表示邊的權值,例如可以用邊權值表示一個點到另一個點的距離。[1]
例子
無向圖的鄰接矩陣計算方法是每條邊爲對應的單元加上1,而每個自環加上2。這樣讓某一節點的度數可以通過鄰接矩陣的對應行或者列求和得到。
有向圖的鄰接矩陣可以是不對稱的。我們可以定義有向圖的鄰接矩陣中的某個元素Aij代表:
- 從i指向j的邊的數目
- 從j指向i的邊的數目
第一種定義廣泛用於圖論和社會網絡分析(如:社會學、政治學、經濟學、心理學)。[2]第二種更加常見於其他應用學科(如:動態系統、物理、網絡學),這些學科有時用鄰接矩陣A表示圖上的線性動力。[3]
在第一種定義下,有向圖的某個節點的入度可以通過對應的列(column)求和而得,出度可以通過對應的行(row)求和而得。在第二種定義下,入度可以通過對應的行(row)求和而得,出度可以通過對應的列(column)求和而得。
特性
設圖的鄰接矩陣為,邊的取值為1。
- 如果頂點有自我連接產生的自環(loop),則在矩陣的主對角線上會有非零的值;如果沒有自環,則主對角線上全部是0。
- 的元素可以表示由頂點到頂點長度為的徑的數目。[4]
- 沒有有向圈若且唯若可逆。的元素表示由頂點到頂點的所有徑的數目。因為:
應用
A、B、C、D四人傳球6次,從A開始,最終回到A手裏,有多少種傳法?
非矩陣解法:
矩陣解法:
鄰接矩陣法是比較簡單的圖論問題建模方法,它以方形二維陣列的形式儲存圖的數據。它在演算法應用中的主要特點包括:
- 各元素的取值與邊的輸入順序無關。[1]
- 利用輸入數據建圖之前,因為不一定每對點之間都有邊相連,所以先要執行將所有邊的權值設為無效值的初始化步驟。以此法建模有個點和條邊的圖,其初始化需要的時間複雜度,建圖的時間則為。[1]
- 以此法建模有個點和條邊的圖,其主記憶體空間開銷的規模是。[1]
主要缺點包括:
參考資料
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.