度矩阵 (D) 和邻接矩阵 (A) 是如何定义和构建的。
无向图的例子
假设我们有一个无向图 (G),包含4个顶点 (V={1,2,3,4}),以及以下边集 (E):
- 顶点1与顶点2相连
- 顶点1与顶点3相连
- 顶点2与顶点4相连
- 顶点3与顶点4相连
邻接矩阵 (A)
邻接矩阵 A 是一个 n × n 的方阵(其中 n 是顶点的数量),矩阵中的元素 A i j 表示顶点 i 和顶点 j 是否由一条边相连。对于无向图,邻接矩阵是对称的,即 A i j = A j i 。在这个例子中,邻接矩阵 A 如下所示: 邻接矩阵 A 是一个 n \times n 的方阵(其中 n 是顶点的数量),矩阵中的元素 A_{ij} 表示顶点 i 和顶点 j 是否由一条边相连。对于无向图,邻接矩阵是对称的,即 A_{ij} = A_{ji}。在这个例子中,邻接矩阵 A 如下所示: 邻接矩阵A是一个n×n的方阵(其中n是顶点的数量),矩阵中的元素Aij表示顶点i和顶点j是否由一条边相连。对于无向图,邻接矩阵是对称的,即Aij=Aji。在这个例子中,邻接矩阵A如下所示:
A = ( 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 ) A = \begin{pmatrix} 0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 \\ 1 & 0 & 0 & 1 \\ 0 & 1 & 1 & 0 \end{pmatrix} A= 0110100110010110
这里,矩阵的对角线元素都是0,因为一个顶点不会与自己相连;非对角线上的1表示两个顶点之间有边相连。
度矩阵 (D)
度矩阵 D 是一个 n × n 的对角矩阵,其中对角线上的元素 D i i 表示顶点 i 的度,即与顶点 i 相邻的边的数量。对于上面的图,度矩阵 D 如下所示: 度矩阵 D 是一个 n \times n 的对角矩阵,其中对角线上的元素 D_{ii} 表示顶点 i 的度,即与顶点 i 相邻的边的数量。对于上面的图,度矩阵 D 如下所示: 度矩阵D是一个n×n的对角矩阵,其中对角线上的元素Dii表示顶点i的度,即与顶点i相邻的边的数量。对于上面的图,度矩阵D如下所示:
D = ( 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 ) D = \begin{pmatrix} 2 & 0 & 0 & 0 \\ 0 & 2 & 0 & 0 \\ 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 2 \end{pmatrix} D= 2000020000200002
在这个例子中,每个顶点的度都是2,因为图中的每个顶点都有两条边相连。
有向图的例子
如果考虑一个有向图,邻接矩阵的构造方式相同,但不一定对称,因为有向边的存在不意味着反方向也有边。
假设有一个有向图,同样有4个顶点,边集为:
- 顶点1指向顶点2
- 顶点1指向顶点3
- 顶点2指向顶点4
- 顶点3指向顶点4
邻接矩阵 (A)
对于这个有向图,邻接矩阵 (A) 可能是:
A = ( 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 ) A = \begin{pmatrix} 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{pmatrix} A= 0000100010000110
注意,与无向图相比,这里的 (A) 不再是对称的,因为有向边的存在是单向的。
度矩阵 (D)
度矩阵依然记录每个顶点的度数,但在这里我们需要区分入度和出度。
通常的度矩阵关注的是顶点的总度数(出度+入度),但在有向图中,如果我们只考虑出度,度矩阵 (D) 将会是:.
这里注意,若有声明出度矩阵(入度矩阵),则按照要求即可。
下例表示出度
D
=
(
2
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
)
D = \begin{pmatrix} 2 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix}
D=
2000010000100000
这里,顶点1有两条出边,顶点3、顶点2有一条出边,而顶点4没有出边。如果是计算入度矩阵,则相应的对角线元素会反映每个顶点的入边数量。