邻接矩阵
邻接矩阵(adjacency matrix)用一个方阵记录图中各对顶点之间的边。给顶点指定次序后,矩阵第 行、第 列表示从顶点 到顶点 的邻接关系。它把图的局部连边转换为矩阵运算;尤其是矩阵的幂,可以记录指定长度的游走数量。
下文先讨论无向简单图:每对不同顶点之间至多一条边,没有自环。设顶点次序为 ,边为 。先固定次序十分必要,因为同一张图重排顶点后,矩阵中的行列位置会同时变化。
从边逐项写成方阵
对 顶点图 ,邻接矩阵 定义为 无向性给出 ,不含自环给出 。主例中,顶点 只与 相邻,所以第一行为 ;逐行写出得到[1] 行和依次为 ,等于相应顶点的度。矩阵所有元素之和为十,每条边在对称位置出现两次,因此边数为五。每个零也有意义:例如 表示没有直接边,并不表示两点之间不存在较长路线。
矩阵平方与共同邻居
矩阵乘法规定 在零一矩阵中,一个乘积为一,恰好表示两条边 和 同时存在。每一个这样的中间顶点都贡献一个两步游走。因此 是两点的共同邻居数;对角位置 ,计入的是走到一个邻居再原路返回的游走。
在主例中, 与 的唯一共同邻居是 ,故 而 与 没有共同邻居,故 。顶点 有两个邻居,所以 ,对应 和 。它们都重复了起点;将它们称为两条简单路径会导致概念错误。
矩阵幂计数游走的证明
长度为 的游走是一串 个顶点,相邻位置之间有边,允许重复顶点和边。约定 ,长度零的游走只把一个顶点留在自身。
定理。 对每个整数 , 等于从 到 的长度恰为 的游走数。
证明。 当 时,同一点间有一条零步游走,不同点之间没有,与单位矩阵吻合。假设结论对 成立。每条从 到 的 步游走,都有一个唯一的倒数第二个顶点 ;删去最后一条边后,是一条从 到 的 步游走。若 ,每条这样的前缀都能接上最后一条边;若为零则一条也不能接。按 分类,数量为 不同 的分类互不重叠,也覆盖全部游走,完成归纳。
主例中 只有邻居 ,所以 这条三步游走就是图中的 。结合一、二步计数均为零,才可断言它们的最短距离是三;某一幂为正仅表示有相应长度的游走,本身不保证它最短。
变式。 主例中的 是多少?因为 的唯一邻居为 ,而 是边,所以答案为一,游走为 。相应地,,因为 可以经三个邻居分别返回。
闭游走与三角形
矩阵的迹为对角元素之和。 再次给出边数。对于简单无向图,三步闭游走必须依次经过一个三角形的三个不同顶点:若中途重复起点,下一步闭合便需要自环,而本图不允许自环。每个三角形可从三个顶点出发,沿两个方向走,故 主例只有 一个三角形,三个顶点各有两条三步闭游走,因此迹为六,除以六得到一。四步闭游走则可以沿一条边往返两次,所以不能直接把 除以八当作四环数。
标号、方向和权重的约定
若顶点依新次序 排列,定义置换矩阵 的第 列为旧坐标中的第 个单位向量,则新邻接矩阵为 。左乘和右乘配合重排行列,边关系没有改变。
对有向图,本文取 表示 ,行和为出度,列和为入度;矩阵一般不对称。若采用相反约定,整个矩阵需转置。含多重边时可令条目记录边的条数,幂计数会把不同边的选择分别计入。含权图若以边权为条目,则 累加的是每条游走上边权的乘积,而不是游走长度或最短路成本;计算最短路需要另一种加法与最小化规则。
邻接矩阵占据 个位置,读取某对顶点是否相邻只需查看一个条目;稀疏图即便只有很少边,普通稠密矩阵仍使用平方空间。其价值在于直接表达线性运算和谱性质,具体存储应根据边数和要执行的运算决定。
参考文献
- ↑ MIT Mathematics:Math 18.06: Linear Algebra, Lecture notes,Graph Theory 部分,邻接矩阵、关联矩阵与图拉普拉斯矩阵的定义。访问日期:2026-10-22。