图论的一些基础概念和知识


最近学习了一些故障诊断,想着整理一下图论的一些概念和基础知识


Vertex (顶点): 就是图里的一个点,代表一个处理器。

Edge (边): 连接两个顶点的线,代表处理器之间的物理连接。

Cycle (环): 在图论里,环就是一个封闭的圈,比如 A-B-C-A。在网络里,环非常重要,因为它提供了冗余路径。如果环上一个点坏了,数据还可以从另一个方向绕过去,网络不会立刻断开。

故障集 F

故障集 F 就是网络中所有坏掉的处理器(顶点)组成的集合。

用图论语言:F⊆V(G) ,即 F 是图 G 顶点集的一个子集

这些顶点被认为“失效”了,不能工作,也不能参与测试

不可区分

Indistinguishable (不可区分): 如果两种故障情况(比如故障集A和故障集B)产生的测试结果完全一样,我们就说它们是不可区分的。这意味着我们无法判断到底是A坏了还是B坏了,诊断失败。


普通超立方体 Qn

普通超立方体 Qn​ 是最经典的多处理器互连网络模型:

  • 顶点:所有 n 位二进制串,比如 000,001,010,011 是 Q3​ 的 8 个顶点。总数是 2n 。

  • 边:两个顶点相邻,当且仅当它们的二进制串恰好有一位不同。也就是 Hamming 距离为 1。

  • 度数:每个顶点有 n 个邻居,所以是 n -正则图;边数是 n2n−1 。

  • 递归结构:Qn​ 可看成两个 Qn−1​ 再加上对应顶点之间的一完美匹配,即

  • Qn​≅Qn−1​□K2​.

  • 小例子:Q2​ 是正方形,Q3​ 就是几何立方体的图;Q4​ 以后不好画,但定义完全一样。

几个常用性质:直径是 n ;按二进制串中 1 的个数的奇偶性可把顶点分成两半,所以 Qn​ 是二分图;顶点连通度是 κ(Qn​)=n 。

折叠超立方体 FQₙ

折叠超立方体 FQₙ 就是多加了一种边:两个节点如果所有位都相反(比如 0011 和 1100),也连一条”补边”。这样每个节点的邻居从 n 个变成 n+1 个,网络更”结实”,直径也更小。

增广立方体 AQn

增广立方体 AQn​ 可以看成在普通超立方体 Qn​ 上“加边增强”得到的网络。

顶点仍和 Qn​ 一样:所有 n 位二进制串,共 2n 个。边分两类:

  1. cube edges(立方体边):和普通超立方体一样,两个串恰好一位不同就相邻。每个点有 n 条。

  2. complement edges(取反边/补边):把一个顶点的末尾连续 k 位整体取反,其中 k=2,3,…,n 。这样每个点再多 n−1 条边。

所以 AQn​ 是 (2n−1) -正则图:每个点有 n 条普通超立方体边,加 n−1 条补边。

例子 AQ3​ ,顶点 000 的邻居是:

  • cube edges:001,010,100 ;

  • complement edges:011 (末两位取反),111 (末三位全取反)。

共 5 个邻居,度数 2⋅3−1=5 。

它也可以递归理解:把最高位为 0 的顶点看成 AQn0​ ,最高位为 1 的看成 AQn1​ ,两半各自都同构于 AQn−1​ ;但两半之间不是只加一条完美匹配,而是每个顶点在另一半中有两个对应邻居:一个“同后缀”的 cube 边,一个“后缀全取反”的 complement 边。因此 AQn​ 不是 hypercube-like network,不能简单套用超立方体类网络的那套 g-extra 结论。

和上面的超立方体 AQn 对比:Qn 每个点只连“翻一位”的邻居;而 AQn 还额外加入“按某段取反”的 complement edges,所以每个点度数从 n 变成 2n−1 ,连通性和容错能力更强,但结构也更复杂。

k 元 n 立方 k-ary n-cube

k-ary n-cube(中文常译作 k 元 n 立方,也称 n 维 k 元环面)是并行计算、片上网络和互连网络中常见的一类规则图拓扑。它可以看作超立方体的一种推广。

它是 n 个长度为 k 的环$C_{k}$的笛卡尔积:
$$
C_{k} \square C_{k} \square \cdots \square C_{k}
$$

共有 n 个因子。

顶点可以表示为 n 元组:

$$
(x_{1},x_{2},\ldots,x_{n}),x_{i} \in { 0,1,\ldots,k - 1}
$$

因此顶点总数为:

$$
N = k^{n}
$$

两个顶点相邻,当且仅当它们恰好有一个坐标相差 $\pm 1(modk)$,其余坐标相同。也就是说,每个节点在每一维上与前后两个邻居相连,形成环绕连接,所以整体是一个 n 维环面。

特例

  • 当 k = 2 时,k-ary n-cube 退化为常见的 n 维超立方体,即 binary n-cube / hypercube
  • 当 n = 1 时,它是一个长度为 k的环 $C_{k}$。
  • 当 n = 2 时,它是一个 $k \times k$的二维环面。
  • 如果去掉每一维的环绕连接,则得到的是 k-ary n-mesh,而不是 k-ary n-cube。

基本性质

  • 顶点数:$k^{n}$

  • 每个节点的度数:

    • 若 $k& gt;2$,度数为 $2n$;

    • 若 $k = 2$,度数为 $n$。

  • 直径:

  • $D = n\left\lfloor \frac{k}{2} \right\rfloor$

  • 它是顶点传递的,也是边传递的,并且是 Cayley 图。

  • 当且仅当 $k$ 为偶数时,它是二部图。

  • 它是高度对称、规则、可扩展的互连拓扑。

交叉立方体 Crossed Cubes

Crossed Cubes(交叉立方体,通常记作 $CQ_{n}$ 是一种多处理器互连网络拓扑。 它可以看作普通超立方体(Hypercube)的一种改进:通过调整节点之间的连接方式,让网络在保持较好的通信性能的同时,具有一些更有利的结构性质。

性质 结果 通俗解释
节点数 $2^n$ 每个节点对应一个 n 位二进制串
节点度 n 每个节点恰好连接 n 个邻居
连通度 n 至少删除 n 个节点,才可能使网络断开
三角形 不含三角形 网络中不存在由 3 个节点组成的环
对比项 普通超立方体 $Q_{n}$ 交叉立方体 $CQ_{n}$
节点连接规则 两个二进制串恰好有一位不同 使用交叉立方体特有的配对规则

扭曲超立方体 Twisted Hypercubes

Twisted Hypercube(扭曲超立方体)是一类对普通超立方体进行连接方式改造的多处理器互连网络。 它的核心思想是:保留超立方体的基本框架,但改变某些维度上的节点连接规则,从而获得不同的网络结构和通信性质。

交换超立方体 Exchanged Hypercubes

在多处理器网络研究中,常见的交换超立方体记作 $EH(s,t)$

其中 (s,t) 是两个正整数,分别控制网络中两组不同的超立方体结构。经典定义将它看作普通二进制超立方体的一种删边变体:保留所有节点,但有选择地删除部分连接,以降低互连复杂度。

每个节点可以写成一个长度为 s+t+1 的二进制串:
$$
u=a_{s} \cdot \cdot \cdot a_{1}b_{t} \cdot \cdot \cdot b_{1}c
$$
这里:

  • $a_{s},…,a_{1}$:一组 $s$ 位二进制信息;
  • $b_{t},…,b_{1}$:另一组 $t$ 位二进制信息;
  • $c$:最后一位,用来决定该节点采用哪一组维度的连接规则。

connectivity(连通度)

在图论/互连网络里,connectivity(连通度)衡量的是:一个网络“最少坏掉多少个点/边”就会变得不连通。

通常说 connectivity 多指 vertex connectivity,记作 κ(G) :

κ(G) = 删除最少的顶点数,使图 G 变得不连通。

对应到多处理器网络:顶点=处理器,边=通信链路;κ(G) 就是最少要坏多少个处理器,网络才会被拆成至少两块。边的版本叫 edge connectivity,记作 λ(G) ,类似地定义为删除最少边使图断开。

常见例子:

  • 完全图 Kn​ :κ(Kn​) = n−1 ,要删掉 n−1 个点才剩一个点;

  • 环 Cn​ :κ(Cn​) = 2 ,删两个点能断开;

  • 树 T :κ(T) = 1 ,删掉一个割点就断;

  • 超立方体 Qn​ :κ(Qn​) = n ;

  • 增广立方体 AQn​ :κ(AQn​) = 2n−1 。

一般有

κ(G)≤λ(G)≤δ(G),

其中 δ(G) 是最小度数。

但普通 connectivity 有个缺点:它常被“一个很小的碎块 + 一个仍然很大的核心”主导。比如网络断成“1 个孤立点”和“其余 99% 还连着”,按普通 connectivity 也算失效,可实际上核心仍可能工作。所以才会有更细的推广:

  • r-component connectivity:要求断开后至少剩 r 个分量;

  • h-extra / g-extra connectivity:要求每个剩余分量至少 h+1 或 g+1 个顶点;

Diagnosability (可诊断性)

Diagnosability (可诊断性): 这是最基础的指标。它回答的问题是:“在保证能找出所有故障点的前提下,系统最多能容忍多少个坏点?” 比如,一个网络的可诊断性是10,意味着只要有10个或更少的处理器坏了,我们都能把它们全找出来。如果有11个,就可能找不准了。

Cyclic Diagnosability (循环可诊断性) ct(G)

Cyclic Diagnosability (循环可诊断性) ct(G):它回答的问题是:“在保证能找出所有故障点的前提下,系统最多能容忍多少个坏点,同时要求这些故障点把网络切开后,剩下的部分里至少有两个包含环的连通分支?”

Cyclic Connectivity (循环连通度) κc(G)

Cyclic Connectivity (循环连通度) κc(G): 要让网络断开,并且剩下的部分里至少有两个包含环的连通分支,最少需要拔掉多少个点。这是 ct(G) 的一个“亲戚”,是图论里的一个概念。

两者的联系

虽然定义不同,但这两个概念是“亲戚”:

  1. Cyclic Connectivity 是 Cyclic Diagnosability 的“地基”

    • 要知道“能诊断多少故障”,先得知道“网络在循环条件下有多容易被切断”

    • 论文引用了前人结果 κc​(Qn​)=4n−8 ,作为证明 ct(Qn​)=5n−10 的出发点

  2. 诊断性 ≥ 连通性

    • 直观理解:如果敌人需要 4n−8 个节点才能破坏网络,那系统至少能“识别”这么多故障(因为故障数少于这个数时,网络根本没断,诊断 trivial)

    • 但实际上能诊断的更多(5n−10 ),因为即使网络断了,只要还能区分故障集,诊断就成功

总结一句话:

  • κc(G) 问的是“最少多少点能搞坏我”

  • ct(G) 问的是“最多多少点坏了我还能修好”

t-diagnosable (t-可诊断的)

如果一个网络在任何不超过 t 个故障点的情况下都能被成功诊断(即所有可能的故障集都是可区分的),那它就是 t-可诊断的。


必记lemma

邻域计算

如果集合 S 里包含一个4-圈(正方形),那么当 S 有5个或6个点时,它的外部邻居数量至少有某个保证值。

具体:

  1. ∣S∣=5 (4-圈 + 1个额外点)⇒∣N(S)∣≥5n−12

  2. ∣S∣=6 (4-圈 + 2个额外点)⇒∣N(S)∣≥6n−17

可区分性判据

  • PMC:存在健康点 u∈F1​∪F2​​ 直接连差异点 v∈F1​△F2​

  • MM*:存在健康点 w 能同时”看到”两个差异点(三种情况)

超立方体性质

  • 任意两点最多 2 个公共邻居(cn ≤2 )

  • 删除 ≤5n−10 个点后,只剩一个大分支 + 总点数 ≤5 的小碎片

在超立方体 $Q_{m}$ 中,一个顶点如果和 4-环中的一个顶点相邻,它必定和 4-环中的两个顶点相邻(这是一个超立方体的几何性质)。

折叠超立方体性质

在 $n$ 维折叠超立方体 $FQ_{n}$ 中,取一个 4-环 $S$。如果有一个顶点 $u$ 离这个 4-环“很远”——既不在 $S$ 里,也不和 $S$ 中任何顶点直接相邻——那么 $u$ 的邻居和 $S$ 的邻居,最多只能有 2 个 是重合的。

G 有完美匹配,当且仅当对于任意顶点子集 $X$,$o(G - X) \leq \mid X \mid$。$o(G - X)$表示:在删除顶点集 $X$ 后,剩下的图 $G - X$ 中,包含奇数个顶点的连通分量(连通块)的个数。


文章作者: 持之以 恒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 持之以 恒 !
赏
  目录