热门问题
时间线
聊天
视角

邻接矩阵

来自维基百科,自由的百科全书

Remove ads

图论計算機科學中,邻接矩阵(英語:adjacency matrix)是一種方阵,用來表示有限。它的每個元素代表各点之间是否有边相连。

作爲特例,簡單圖的鄰接矩陣是(0,1)矩陣並且對角線元素都爲0。無向圖的鄰接矩陣是對稱矩陣。圖和其鄰接矩陣的特徵值和特徵向量之間的關系是譜圖理論的研究對象。

圖的关联矩阵需要和鄰接矩陣區分。它是圖的另一種矩陣表示方式,它的元素表示各個节点-邊對是否相關。還有圖的度數矩陣,含有每個結點的度數信息。

距離矩陣可算是鄰接矩陣的擴充。

定义

階為的圖的鄰接矩陣的。將的頂點標籤為。若,否則。也可以用大于0的值表示边的权值,例如可以用边权值表示一个点到另一个点的距离。[1]

无向图的鄰接矩陣是對稱矩陣

Remove ads

例子

無向圖

無向圖的鄰接矩陣計算方法是每條邊爲對應的單元加上1,而每個自環加上2。這樣讓某一節點的度數可以通過鄰接矩陣的對應行或者列求和得到。

更多信息 ...
Remove ads

有向图

有向图的邻接矩阵可以是不对称的。我们可以定义有向图的邻接矩阵中的某个元素Aij代表:

  1. i指向j的边的数目
  2. j指向i的边的数目

第一种定义广泛用于图论和社会网络分析(如:社会学、政治学、经济学、心理学)。[2]第二种更加常见于其他应用学科(如:动态系统、物理、网络学),这些学科有时用邻接矩阵A表示图上的线性动力。[3]


在第一种定义下,有向图的某个节点的入度可以通过对应的列(column)求和而得,出度可以通过对应的行(row)求和而得。在第二种定义下,入度可以通过对应的行(row)求和而得,出度可以通过对应的列(column)求和而得。

更多信息 ...
Remove ads

特性

設圖的鄰接矩陣為,边的取值为1。

  • 如果顶点有自我连接产生的自环(loop),则在矩阵的主对角线上会有非零的值;如果没有自环,则主对角线上全部是0。
  • 的元素可以表示由頂點到頂點長度為的徑的數目。[4]
  • 沒有有向圈若且唯若可逆。的元素表示由頂點到頂點的所有徑的數目。因為:
Remove ads

应用

传球问题

A、B、C、D四人传球6次,从A开始,最终回到A手里,有多少种传法?

非矩阵解法:

  1. m个人传n次球,[5]
  2. ,将Pn乘上总传法数[5]

矩阵解法:

Remove ads

图论算法的计算机实践

邻接矩阵法是比较简单的图论问题建模方法,它以方形二维阵列的形式存储图的数据。它在算法应用中的主要特点包括:

  • 各元素的取值与边的输入顺序无关。[1]
  • 利用输入数据建图之前,因为不一定每对点之间都有边相连,所以先要执行将所有边的权值设为无效值的初始化步骤。以此法建模有个点和条边的图,其初始化需要时间复杂度,建图的时间则为[1]
  • 以此法建模有个点和条边的图,其内存空间开销的规模是[1]

主要缺点包括:

  • 遍历元素时,存在的边和不存在的边都不得不检查一遍,导致遍历效率低。[1]
  • 不能存储重复的边。[1]
  • 当顶点数量多时,内存空间开销会很大。[1]
  • 存储稀疏图时会得到稀疏矩阵,空间利用率不高。[1]
  • 存储无向图时,由于此时矩阵是对称的,而对称位置上的成对元素保存的信息是重复的,导致空间利用率不高。
Remove ads

随机过程

随机过程理论中,表示单步状态变化的转移矩阵就是一种邻接矩阵。

参考资料

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads