复杂系统与网络的数学表示07 / 17
邻接矩阵
计算机里最常用的表示是邻接矩阵(adjacency matrix),一个 的矩阵:
加权图中
取边权
;有向图中本站约定
表示存在
的边(行是起点,列是终点),这也是 NetworkX 的
to_numpy_array 等多数软件采用的约定。但 Barabási《Network
Science》和
Newman《Networks》采用相反的约定:
表示
。两种约定下入度、出度分别对应“行和”与“列和”的位置正好相反,读文献和换软件时要先确认。
例:4 个蛋白 a、b、c、d,相互作用为 a–b、a–c、b–c、c–d。
从这个矩阵可以直接读出几条性质:
- 无向图的邻接矩阵是对称的:;简单图的对角线全为 0;
- 节点 的度(degree,连接的边数)是第 行之和:。上例中 ;
- 所有节点的度之和等于边数的两倍:(每条边被两个端点各数一次)。上例 ;
- 矩阵中非零元素的个数是 (无向)或 (有向)。
度、平均度与密度的系统讨论见网络结构指标与随机图。
矩阵乘方与游走计数
游走(walk)是一串相继相邻的节点,允许重复经过节点和边;其长度是经过的边数。邻接矩阵最有用的代数性质是:
对上例,
- 的对角元等于度(从 出发走两步回到 ,只能是“去一个邻居再回来”);非对角元 是 与 的共同邻居数,例如 a 与 d 的共同邻居只有 c,所以 。共同邻居数是链路预测和“基因功能相似性”的最简单指标。
- 的对角元 是经过 的三角形数的 2 倍(两个方向各走一次)。全图三角形数为 ,正是 a–b–c 那个三角形。三角形计数是聚集系数的基础(见网络结构指标与随机图)。
- 两节点间的距离(最短路径长度)是使 的最小 。这在理论上优雅,但对大网络应使用广度优先搜索(见网络结构指标与随机图)。
加权、自环与有向情形的约定
- 加权网络的 是所有长度为 的游走上边权乘积之和,不再是计数;用它定义的指标(如通信性 communicability)对权重的尺度敏感。
- 无向图中一个自环在 Newman 的约定下记为 (因为它有两个端点都落在 上),从而保持“度 = 行和”与握手定理;NetworkX 中自环在度中同样计 2,但邻接矩阵中存为 1。不同软件对自环的处理不同,是结果不一致的常见来源。
- 有向图中出度、入度分别是行和与列和(本站约定); 计数的是沿箭头方向的有向游走。
本专题页面的邻接矩阵演示可以点击添加或删除边,观察图、邻接矩阵与度序列的联动。