4. 图论建模方法

要让“拓扑好不好”从一句主观判断变成可计算、可比较的工程结论,第一步是把无人机集群抽象成一张图。抽象规则很朴素:每架无人机是一个节点(顶点),如果两架无人机之间存在可用的通信链路,就在它们之间连一条边。于是,一个 N 架无人机的集群就变成一个含 N 个节点、若干条边的图 G=(V,E)。此后所有关于连通性、时延、抗毁性的讨论,都可以转化为对这张图的矩阵与标量的计算。

抽象时必须先明确两个约定,否则后续所有数字都会失去意义。第一是边的判定准则:常见做法是“距离小于通信半径 R 即认为有边”,更严格的做法是同时满足接收功率高于灵敏度、信噪比高于门限。第二是有向还是无向:若上下行链路质量对称、且假设链路双向可用,就用无向图,边没有方向;若存在定向天线、非对称功率或单向数据流,则用有向图。本课程默认采用无向图,边权取 1(只关心“通不通”),需要刻画链路质量时再给边赋权,例如以 1/速率 或时延作为权重。

邻接矩阵:把“谁和谁相连”写成数表

邻接矩阵 A 是 N×N 的方阵,A[i][j]=1 表示节点 i 与 j 之间有边,否则为 0;无向图满足 A=Aᵀ,对角线为 0。它是最原始的拓扑描述,也是后续一切矩阵运算的输入。以 5 架无人机为例,假设链路关系为:1-2、1-3、2-3、3-4、4-5,则邻接矩阵为:

A =
     1  2  3  4  5
1 [  0  1  1  0  0 ]
2 [  1  0  1  0  0 ]
3 [  1  1  0  1  0 ]
4 [  0  0  1  0  1 ]
5 [  0  0  0  1  0 ]

读这张表有两个直接用途。其一,某一行(或列)的求和就是该节点的度:节点 3 的度为 3,是当前拓扑中度最大的节点,也是转发压力最大的节点;节点 5 的度为 1,是典型的边缘节点,一旦与 4 断链就会孤立。其二,A 的幂可以数路径:A²[i][j] 给出 i 到 j 长度为 2 的路径条数,A³ 给出长度为 3 的条数。这为“跳数”和“最短路径”提供了代数基础。

拉普拉斯矩阵:把连通性变成可判定的量

仅有邻接矩阵还不够,判断“整张图是否连通”“连通得牢不牢”需要拉普拉斯矩阵。定义度矩阵 D 为对角阵,D[i][i]=节点 i 的度,其余为 0;则拉普拉斯矩阵 L=D−A。对上面的例子:

D = diag(2, 2, 3, 2, 1)

L = D - A =
     1  2  3  4  5
1 [  2 -1 -1  0  0 ]
2 [ -1  2 -1  0  0 ]
3 [ -1 -1  3 -1  0 ]
4 [  0  0 -1  2 -1 ]
5 [  0  0  0 -1  1 ]

L 有三个必须记住的性质。第一,每行元素之和恒为 0,因此全 1 向量 1 一定是 L 的特征向量,对应特征值 0。第二,L 是对称半正定矩阵,所有特征值非负,可排序为 0=λ₁≤λ₂≤…≤λ_N。第三,图连通的充要条件是 λ₂>0;若 λ₂=0,说明图分裂成多个互不通信的连通分量,λ₂=0 的重数就等于连通分量个数。这就是为什么 λ₂ 被称为代数连通度。

代数连通度:拓扑“结实程度”的标尺

λ₂ 不只是连通性开关,它还是连通“强度”的度量。λ₂ 越大,图越难被切成两半,节点间信息混合越快,一致性收敛速度越快。在一致性协议中,收敛时间常数大致与 1/λ₂ 成正比,因此 λ₂ 是评估集群协同收敛速度的核心指标。工程上可以这样用:给定一个候选拓扑,算出 λ₂,若 λ₂ 过小(例如小于 0.1),说明存在近似“瓶颈割”,某条链路一断就可能分裂,需要增加跨区链路或调整编队间距。

与 λ₂ 配套的还有 Fiedler 向量(对应 λ₂ 的特征向量)。它的正负号分布能直接指出“图最容易被切在哪里”:符号相反的两组节点之间就是最薄弱的割集。这比单纯看 λ₂ 数值更有指导性,可以直接告诉设计者该在哪些节点之间补链路。

直径与平均路径长度:时延与转发代价的度量

如果说 λ₂ 描述“结实程度”,那么直径和平均路径长度描述“绕不绕”。直径是图中任意两节点间最短路径跳数的最大值,代表最坏情况下的端到端跳数;平均路径长度是所有节点对最短路径跳数的平均值,代表典型转发代价。二者都基于最短路径,可用 BFS 从每个节点出发计算,也可用邻接矩阵幂或 Floyd 算法求解。

对上面的 5 节点例子:节点 1 到 5 的最短路径是 1-3-4-5,共 3 跳;节点 2 到 5 是 2-3-4-5,也是 3 跳。逐对统计后,直径 L=3,平均路径长度约为 1.8 跳。若把链路 3-4 换成 2-5,直径可能缩短,但 λ₂ 未必增大——这正是拓扑设计中“低时延”与“高鲁棒”常常需要权衡的地方。

5 节点集群拓扑的图论建模与指标计算 ① 拓扑图 G=(V,E) 1 2 3 4 5 节点3度=3(转发枢纽) 节点5度=1(边缘节点) ② 邻接矩阵 A 与度矩阵 D A = 0 1 1 0 0 / 1 0 1 0 0 / 1 1 0 1 0 / 0 0 1 0 1 / 0 0 0 1 0 D = diag(2, 2, 3, 2, 1) L = D − A 每行和为 0 对称半正定 特征值 0=λ₁≤λ₂≤… λ₂ > 0 ⇔ 图连通;λ₂ = 0 的重数 = 连通分量数 ③ 拓扑性能指标(示例计算) 代数连通度 λ₂ ≈ 0.83 直径 L 3 跳 平均路径长度 ≈ 1.8 跳 Fiedler 向量 指示最弱割集

四个指标如何配合使用

这四个量不是并列的四个数字,而是从不同侧面回答不同问题,工程上应组合判读:

  • 邻接矩阵 A:回答“谁和谁直接相连”,用于生成拓扑、检查对称性、统计节点度,是输入层。
  • 拉普拉斯矩阵 L:回答“整体连通结构如何”,是计算 λ₂ 和 Fiedler 向量的载体。
  • 代数连通度 λ₂:回答“连通得牢不牢、收敛快不快”,用于鲁棒性与一致性速度评估。
  • 直径 L 与平均路径长度:回答“绕不绕、时延大不大”,用于端到端时延与转发开销评估。

一个实用的判读流程是:先看 λ₂ 是否大于 0,确认连通;再看 λ₂ 是否足够大,确认没有脆弱割集;然后看直径是否满足任务时延上限;最后看平均路径长度是否带来过高的转发负载。若 λ₂ 偏小而直径已达标,说明拓扑“细长”,应补横向链路;若直径偏大而 λ₂ 充足,说明拓扑“团块化”,应补跨团长链路。

计算提示:λ₂ 与 Fiedler 向量可用特征分解求得,N 较小时直接对 L 做特征分解即可;N 较大时可用幂迭代或 Lanczos 方法只求最小几个特征值。直径与平均路径长度用 BFS 从每个节点各跑一次,复杂度 O(N·(N+E)),对百架级集群完全可接受。
常见误区:把“节点度大”等同于“拓扑好”。节点 3 度最大,但若它失效,图会分裂成 {1,2} 与 {4,5} 两部分,λ₂ 会骤降。真正稳健的拓扑应让关键割集尽量宽,而不是让个别节点承担过多连接。

把上述流程落到一次具体设计上:假设 5 架无人机按当前编队得到 λ₂≈0.83、直径 3、平均路径长度 1.8。若任务要求端到端时延不超过 3 跳、且任意单节点失效后仍保持连通,则需检查每个节点的失效影响。移除节点 3 后,图变为 {1,2} 与 {4,5} 两个分量,λ₂ 降为 0,不满足要求。此时可增加链路 2-4,使节点 3 失效后仍有 2-4 通路,重新计算 λ₂ 会明显大于 0,直径也可能降为 3 或更小。这就是用矩阵与指标驱动拓扑修改的完整闭环:建模 → 计算 → 定位薄弱点 → 补边 → 复算验证。

需要强调的是,本节给出的 λ₂≈0.83、直径 3、平均路径长度 1.8 均为示例性计算结果,用于说明方法,不代表任何实际飞行测试数据。真实项目中应以实际链路判定准则和实测链路质量重新构建 A 与 L,再按同一套流程计算与判读。