第三章 网络基本拓扑性质
本章重点
- 实际网络的连通性:无向网络中的巨片、有向网络的蝴蝶结结构
- 网络小世界性质刻画:平均路径长度与聚类系数
- 网络均匀性程度刻画:泊松度分布和幂律度分布
3.1 引言
-
在图论中
- 割点:去除某个定点使得一个图由连通变为不连通;
- 桥:去除某条边使得一个图由连通变为不连通。
-
在网络科学中(大规模)
- 要去除多少节点或者边才能对网络的某个性质产生实质性的影响?
- 不同的去除策略是否会产生不同的结果?
- 对网络的某种性质如何提高其对节点和边的去除鲁棒性等。
3.2 复杂网络的连通性
3.2.1 无向网络中的巨片
- 巨片(giant component)
许多实际的大规模复杂网络都是不连通的,但是往往含有一个特别大的连通片,其包含了整个网络相当比例的节点,这便是巨片。
3.2.2 有向网络的蝴蝶结结构
-
实际网络既不是强连通也非弱连通,但往往包含了一个很大的弱连通片,称为弱连通巨片(GWCC),往往具有四个部分的蝴蝶结结构:
- 强连通核(SCC):也称强连通巨片,位于网络中心,任意两个节点都是强连通的,存在从任意一个节点到另一个节点的有向路径;
- 入部(IN):可到达SCC,但不能从SCC到达;
- 出部(OUT):从SCC到达,但不能到达SCC;
- 卷须(Tendrils):既不能从SCC到达,也不能到达SCC;
- 管子(Tube):由卷须节点串起来的有向路径。
3.3 节点的度与网络稀疏性
3.3.1 度与平均度
在无向网络中
- 节点 i i i的度 k i k_i ki:与节点直接相连的边的数目
- 平均度 ⟨ k ⟩ \lang k\rang ⟨k⟩:所有节点的度的平均值
- 给定网络G的邻接矩阵
A
=
(
a
i
j
)
N
×
N
A = (a_{ij})_{N\times N}
A=(aij)N×N,有
k i = ∑ j = 1 N a i j = ∑ j = 1 N a j i , (3.1) k_i = \sum_{j=1}^N a_{ij} = \sum_{j=1}^N a_{ji},\tag{3.1} ki=j=1∑Naij=j=1∑Naji,(3.1)
⟨ k ⟩ = 1 N ∑ i = 1 N k i = 1 N ∑ i , j = 1 N a i j , (3.2) \lang k\rang = \frac{1}{N}\sum_{i=1}^N k_i = \frac{1}{N}\sum_{i,j=1}^N a_{ij},\tag{3.2} ⟨k⟩=N1i=1∑Nki=N1i,j=1∑Naij,(3.2) - 网络节点的度与网络边数M之间的关系
2 M = N ⟨ k ⟩ = ∑ i = 1 N k i = ∑ i , j = 1 N a i j , (3.3) 2M = N\lang k\rang = \sum_{i=1}^N k_i = \sum_{i,j=1}^N a_{ij},\tag{3.3} 2M=N⟨k⟩=i=1∑Nki=i,j=1∑Naij,(3.3)
从而
M = 1 2 N ⟨ k ⟩ = 1 2 ∑ i = 1 N k i = 1 2 ∑ i , j = 1 N a i j , (3.4) M = \frac{1}{2}N\lang k\rang = \frac{1}{2}\sum_{i=1}^N k_i = \frac{1}{2}\sum_{i,j=1}^N a_{ij},\tag{3.4} M=21N⟨k⟩=21i=1∑Nki=21i,j=1∑Naij,(3.4)
⟨ k ⟩ = 2 M N , (3.5) \lang k\rang = \frac{2M}{N},\tag{3.5} ⟨k⟩=N2M,(3.5)
3.3.2 入度与出度
-
入度( k i i n k_i^{in} kiin):从其他节点指向节点 i i i的边的数目
-
出度( k i o u t k_i^{out} kiout):从节点 i i i指向其他节点的边的数目
-
用邻接矩阵元素表示为:
k i o u t = ∑ j = 1 N a i j , k i i n = ∑ j = 1 N a j i , (3.6) k_i^{out} = \sum_{j=1}^N a_{ij},\qquad k_i^{in} = \sum_{j=1}^N a_{ji},\tag{3.6} kiout=j=1∑Naij,kiin=j=1∑Naji,(3.6) -
在有向网络中:网络平均出度与平均入度相同,即为:
⟨ k o u t ⟩ = ⟨ k i n ⟩ = 1 N ∑ i , j = 1 N a i j = M N (3.7) \lang k^{out}\rang = \lang k^{in}\rang = \frac{1}{N}\sum_{i,j=1}^N a_{ij} = \frac{M}{N}\tag{3.7} ⟨kout⟩=⟨kin⟩=N1i,j=1∑Naij=NM(3.7) -
在加权网络中,还可以加上权值矩阵 W = w i j W = w_{ij} W=wij,定义节点 i i i的强度为 s i s_i si:
- 无向加权:
s i = ∑ j = 1 N w i j , (3.8) s_i = \sum_{j=1}^N w_{ij},\tag{3.8} si=j=1∑Nwij,(3.8) - 有向加权:
s i o u t = ∑ j = 1 N w i j , s i i n = ∑ j = 1 N w i j (3.9) s_i^{out} = \sum_{j=1}^N w_{ij},\qquad s_i^{in} = \sum_{j=1}^N w_{ij}\tag{3.9} siout=j=1∑Nwij,siin=j=1∑Nwij(3.9)
- 无向加权:
3.3.3 网络稀疏性与稠密化
-
网络的密度 ρ \rho ρ:可能存在的边数目与最大可能边数的比值
- 无向网络:
ρ = M 1 2 N ( N − 1 ) , (3.10a) \rho = \frac{M}{\frac{1}{2}N(N-1)},\tag{3.10a} ρ=21N(N−1)M,(3.10a) - 有向网络:
ρ = M N ( N − 1 ) , (3.10b) \rho = \frac{M}{N(N-1)},\tag{3.10b} ρ=N(N−1)M,(3.10b)
- 无向网络:
-
平均度 ⟨ k ⟩ \lang k\rang ⟨k⟩是一个更为合理的刻画网络稀疏性的指标:
⟨ k ⟩ = 2 M N = ρ ( N − 1 ) ≈ ρ N , (3.11) \lang k\rang = \frac{2M}{N} = \rho(N-1) \approx \rho N,\tag{3.11} ⟨k⟩=N2M=ρ(N−1)≈ρN,(3.11) -
时刻 t t t网络中的节点数为 N ( t ) N(t) N(t),边数为 M ( t ) M(t) M(t),实际网络的演化服从超线性关系,也称为稠密化幂律:
M ( t ) ∼ N α ( t ) , 1 < α < 2. (3.12) M(t)\sim N^\alpha(t),1<\alpha<2.\tag{3.12} M(t)∼Nα(t),1<α<2.(3.12)- 实际网络会随着时间变得越来越稠密
- 与全耦合网络相比,仍属于稀疏网络
对(3.12)两边取对数:
ln M ( t ) ≈ α ( ln N ( t ) ) + C , 1 < α < 2. (3.13) \ln M(t) \approx \alpha(\ln N(t))+C,1<\alpha<2.\tag{3.13} lnM(t)≈α(lnN(t))+C,1<α<2.(3.13)
很容易得出,可以创建一个双对数坐标系来描述上述这一线性关系,斜率显然为 α ∈ ( 1 , 2 ) \alpha \in (1,2) α∈(1,2)。
3.4 平均路径长度与直径
3.4.1 无权无向网络情形
-
平均路径长度
- 最短路径也称测地线路径:边数最少的路径。定义节点 i i i到 j j j最短路径上边的数目为 d i j d_{ij} dij,称其为测地距离或者跳跃距离。
- 最短路径的求法:广度优先搜索算法
- 平均路径长度
L
L
L:任意两个节点之间距离的平均值,也称为特征路径长度或平均距离。即为
L = 1 1 2 N ( N − 1 ) ∑ i ≥ j d i j , (3.14) L = \frac{1}{\frac{1}{2}N(N-1)}\sum_{i\geq j}d_{ij},\tag{3.14} L=21N(N−1)1i≥j∑dij,(3.14)
式(3.14)存在一个问题,当存在不连通节点时, d i j = ∞ d_{ij} = \infty dij=∞,这就导致 L L L也为无穷大,造成发散问题,于是在这里提出简谐平均,
即为:
L = 1 G E , G E = 1 1 2 N ( N − 1 ) ∑ i ≥ j 1 d i j , (3.15) L = \frac{1}{GE},\qquad GE = \frac{1}{\frac{1}{2}N(N-1)}\sum_{i\geq j}\frac{1}{d_{ij}},\tag{3.15} L=GE1,GE=21N(N−1)1i≥j∑dij1,(3.15)
很显然,当节点对之间无路径时,对应的距离的倒数为0,这也就解决了上述的发散问题。 G E GE GE称为全局效率。
-
网络直径(Diameter)
网络中任意两个节点之间的(有限距离)最大距离称为网络的直径,记为 D D D:
D = max i , j d i j , (3.16) D = \max_{i,j}d_{ij},\tag{3.16} D=i,jmaxdij,(3.16)
一般的,如果整数 D D D满足:
g ( D − 1 ) < 0.9 , g ( D ) ≥ 0.9 , (3.17) g(D-1)<0.9,\qquad g(D)\geq0.9,\tag{3.17} g(D−1)<0.9,g(D)≥0.9,(3.17)
(其中 g ( d ) g(d) g(d)为网络中距离不超过 d d d的节点对数量占总节点对数量的比例),那么就成 D D D为网络的有效直径。利用插值推广到非整数为:
g ( r ) = g ( d ) + ( g ( d + 1 ) − g ( d ) ) ( r − d ) , ( d ≤ r < d + 1 ) . (3.18) g(r) = g(d)+(g(d+1)-g(d))(r-d),(d\leq r<d+1).\tag{3.18} g(r)=g(d)+(g(d+1)−g(d))(r−d),(d≤r<d+1).(3.18) -
许多实际网络的直径与有效直径都呈现出越来越小的趋势,称为直径收缩现象。
3.4.2 加权有向网络情形
- 最短路径的求法:迪杰斯特拉算法(Dijkstra算法)
设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径, 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。
3.5 聚类系数
3.5.1 无权无向网络情形
-
网络中度为 k i k_i ki的节点 i i i:如果这 k i k_i ki个邻居节点两两互为邻居,则存在 1 2 k i ( k i − 1 ) \frac{1}{2}k_i(k_i-1) 21ki(ki−1)条边。又在实际网络中,设节点 i i i的 k i k_i ki个邻居节点之间实际存在的边数为 E i E_i Ei,则节点 i i i的聚类系数 C i C_i Ci定义为:
C i = E i C k i 2 = 2 E i k i ( k i − 1 ) , (3.19) C_i = \frac{E_i}{C_{k_i}^2} = \frac{2E_i}{k_i(k_i-1)},\tag{3.19} Ci=Cki2Ei=ki(ki−1)2Ei,(3.19) -
等价定义:
C i = 连接到顶点 i 的三角形个数 连接到顶点 i 的三元组的个数 , (3.20) C_i=\frac{连接到顶点i的三角形个数}{连接到顶点i的三元组的个数},\tag{3.20} Ci=连接到顶点i的三元组的个数连接到顶点i的三角形个数,(3.20) -
邻接矩阵 A = ( a i j ) N × N A = (a_{ij})_{N\times N} A=(aij)N×N求解聚类系数 C i C_i Ci
- 包含节点
i
i
i的三角形个数
E i = 1 2 ∑ j , k a i j a j k a k i = ∑ k > j a i j a j k a k i . (3.21) E_i = \frac{1}{2}\sum_{j,k}a_{ij}a_{jk}a_{ki} = \sum_{k>j}a_{ij}a_{jk}a_{ki}.\tag{3.21} Ei=21j,k∑aijajkaki=k>j∑aijajkaki.(3.21)
所以聚类系数 C i C_i Ci可以计算为:
C i = 2 E i k i ( k i − 1 ) = 1 k i ( k i − 1 ) ∑ j , k = 1 N a i j a j k a k i , (3.22) C_i = \frac{2E_i}{k_i(k_i-1)} = \frac{1}{k_i(k_i-1)}\sum_{j,k=1}^Na_{ij}a_{jk}a_{ki},\tag{3.22} Ci=ki(ki−1)2Ei=ki(ki−1)1j,k=1∑Naijajkaki,(3.22)
或者:
C i = 连接到顶点 i 的三角形个数 连接到顶点 i 的三元组的个数 = ∑ j ≠ i , k ≠ j , k ≠ i a i j a j k a k i ∑ j ≠ i , k ≠ i a i j a k i , (3.23) C_i=\frac{连接到顶点i的三角形个数}{连接到顶点i的三元组的个数} = \frac{\sum_{j\neq i,k\neq j,k\neq i}a_{ij}a_{jk}a_{ki}}{\sum_{j\neq i,k\neq i}a_{ij}a_{ki}},\tag{3.23} Ci=连接到顶点i的三元组的个数连接到顶点i的三角形个数=∑j=i,k=iaijaki∑j=i,k=j,k=iaijajkaki,(3.23) - 包含节点
i
i
i的三角形个数
-
整个网络的聚类系数 C C C定义为网络中所有节点聚类系数的平均值
C = 1 N ∑ i = 1 N C i . (3.24) C = \frac{1}{N}\sum_{i=1}^N C_i.\tag{3.24} C=N1i=1∑NCi.(3.24)
显然有 0 ≤ C ≤ 1 0\leq C\leq 1 0≤C≤1。 C = 1 C=1 C=1代表全局耦合, C = 0 C=0 C=0代表所有节点的聚类系数皆为0。 -
社会学定义
C = 网络中三角形的数目 网络中三元组的数目 / 3 . (3.25) C = \frac{网络中三角形的数目}{网络中三元组的数目/3}.\tag{3.25} C=网络中三元组的数目/3网络中三角形的数目.(3.25) -
在网络科学中会关注一类节点的整体行为或平均行为,在已知各节点聚类系数的基础上,可计算得到度为 k k k的节点的聚类系数的平均值,于是便得到聚类系数表示为节点度的函数:
C ( k ) = ∑ i C i δ k k i ∑ i δ k k i . (3.26) C(k) = \frac{\sum_iC_i\delta_{kk_i}}{\sum_i\delta_{kk_i}}.\tag{3.26} C(k)=∑iδkki∑iCiδkki.(3.26)
其中:
δ = { 1 , k i = k , 0 , k i ≠ k . (3.27) \delta= \begin{cases} 1,& k_i = k,\\ 0, & k_i\neq k. \end{cases} \tag{3.27} δ={1,0,ki=k,ki=k.(3.27)
对许多实际网络, C ( k ) C(k) C(k)具有幂律形式: C ( k ) ∼ k − α ( α > 0 ) C(k)\sim k^{-\alpha}(\alpha >0) C(k)∼k−α(α>0),反映了网络具有层次结构。
3.5.2 加权网络情形
-
加权网络 G G G,邻接矩阵 A = ( a i j ) A = (a_{ij}) A=(aij)和非负的权值矩阵 W = ( w i j ) W = (w_{ij}) W=(wij),由无权网络对节点聚类系数的定义(3.22)可得到加权形式的聚类系数:
C i ~ = 1 k i ( k i − 1 ) ∑ j , k w i j k a i j a j k a k i , (3.28) \tilde{C_i} = \frac{1}{k_i(k_i-1)}\sum_{j,k} w_{ijk}a_{ij}a_{jk}a_{ki},\tag{3.28} Ci~=ki(ki−1)1j,k∑wijkaijajkaki,(3.28)- 对
w
i
j
k
w_{ijk}
wijk的取法1:
取为节点 i i i与其两个邻居节点 j j j和 k k k之间两条边的归一化平均值:
w i j k = 1 ⟨ w i ⟩ w i j + w i k 2 . (3.29) w_{ijk} = \frac{1}{\lang w_i\rang}\frac{w_{ij}+w_{ik}}{2}.\tag{3.29} wijk=⟨wi⟩12wij+wik.(3.29)
其中:
⟨ w i ⟩ = 1 k i ∑ i w i j . (3.30) \lang w_i\rang = \frac{1}{k_i}\sum_iw_{ij}.\tag{3.30} ⟨wi⟩=ki1i∑wij.(3.30)
于是可以得到
C i ~ ( 1 ) = 1 k i ( k i − 1 ) ∑ j , k 1 ⟨ w i ⟩ w i j + w i k 2 a i j a j k a k i , (3.31) \tilde{C_i}^{(1)} = \frac{1}{k_i(k_i-1)}\sum_{j,k} \frac{1}{\lang w_i\rang}\frac{w_{ij}+w_{ik}}{2}a_{ij}a_{jk}a_{ki},\tag{3.31} Ci~(1)=ki(ki−1)1j,k∑⟨wi⟩12wij+wikaijajkaki,(3.31)
对节点 i i i的强度 s i s_i si满足
s i = ∑ j w i j = k i ( s i k i ) = k i ⟨ w i ⟩ . (3.32) s_i = \sum_jw_{ij} = k_i(\frac{s_i}{k_i}) = k_i\lang w_i\rang.\tag{3.32} si=j∑wij=ki(kisi)=ki⟨wi⟩.(3.32)
于是得到:
C i ~ ( 1 ) = 1 s i ( k i − 1 ) ∑ j , k w i j + w i k 2 a i j a j k a k i , (3.33) \tilde{C_i}^{(1)} = \frac{1}{s_i(k_i-1)}\sum_{j,k} \frac{w_{ij}+w_{ik}}{2}a_{ij}a_{jk}a_{ki},\tag{3.33} Ci~(1)=si(ki−1)1j,k∑2wij+wikaijajkaki,(3.33) - 对
w
i
j
k
w_{ijk}
wijk的取法2:
取为节点 i i i与其两个邻居节点 j j j和 k k k组成三角形边的权值的归一化权值的集合平均:
w i j k = ( w i j ^ w i k ^ w j k ^ ) 1 3 , (3.34) w_{ijk} = (\hat{w_{ij}}\hat{w_{ik}}\hat{w_{jk}})^\frac{1}{3},\tag{3.34} wijk=(wij^wik^wjk^)31,(3.34)
其中:
w i j ^ = w i j max k , l w k l , (3.35) \hat{w_{ij}} = \frac{w_{ij}}{\max_{k,l}w_{kl}},\tag{3.35} wij^=maxk,lwklwij,(3.35)
于是便得到第二种定义:
C i ~ ( 2 ) = 1 k i ( k i − 1 ) ∑ j , k ( w i j ^ w i k ^ w j k ^ ) 1 3 a i j a j k a k i , (3.36) \tilde{C_i}^{(2)} = \frac{1}{k_i(k_i-1)}\sum_{j,k} (\hat{w_{ij}}\hat{w_{ik}}\hat{w_{jk}})^\frac{1}{3}a_{ij}a_{jk}a_{ki},\tag{3.36} Ci~(2)=ki(ki−1)1j,k∑(wij^wik^wjk^)31aijajkaki,(3.36)
- 对
w
i
j
k
w_{ijk}
wijk的取法1:
-
第三种定义
由定义(3-23)得到:
C i ~ ( 3 ) = ∑ j , k w i j ^ w i k ^ w j k ^ ∑ j ≠ k w i j ^ w i k ^ . (3.37) \tilde{C_i}^{(3)} = \frac{\sum_{j,k}\hat{w_{ij}}\hat{w_{ik}}\hat{w_{jk}}}{\sum_{j\neq k}\hat{w_{ij}}\hat{w_{ik}}}.\tag{3.37} Ci~(3)=∑j=kwij^wik^∑j,kwij^wik^wjk^.(3.37)
其中 w i j ^ ∈ [ 0 , 1 ] \hat{w_{ij}}\in[0,1] wij^∈[0,1]。
3.6 度分布
3.6.1 度分布的概念
- p k p_k pk:度为 k k k的节点占总节点数的比例。如果是有向网络,还分为出度分布 P ( k o u t ) P(k^{out}) P(kout)与入度分布 P ( k i n ) P(k^{in}) P(kin),可以用直方图表示。
3.6.2 从钟形曲线到长尾分布
- 常用的具有钟形曲线的概率分布
连续:正态分布
离散:超几何分布、二项分布、泊松分布(最重要) - 泊松分布
P ( k ) = λ k e − λ k ! . ( λ > 0 ) (3.38) P(k) = \frac{\lambda^ke^{-\lambda}}{k!}.(\lambda>0)\tag{3.38} P(k)=k!λke−λ.(λ>0)(3.38) - 服从钟形曲线的分布都有一特征:其峰值即随机变量的均值。
- 长尾分布
实例:全世界财富分布
长尾分布:往往不具有明显的标度特征,因此也叫作无标度分布,下一节的幂律分布便是长尾分布。
在实际网络中,很多实际网络的度分布曲线满足长尾分布曲线。
3.7 幂律分布
- 表达形式: P ( k ) = C k − γ , ( γ > 0 ) P(k) = Ck^{-\gamma},(\gamma>0) P(k)=Ck−γ,(γ>0),通常取值在2到3之间。
- 对上式取对数:
ln P ( k ) = ln C − γ ln k . (3.39) \ln P(k) = \ln C - \gamma\ln k.\tag{3.39} lnP(k)=lnC−γlnk.(3.39)
在双对数坐标系中 ln P ( k ) \ln P(k) lnP(k)与 ln k \ln k lnk表现为线性关系,斜率为 − γ -\gamma −γ,截距为 ln C \ln C lnC。如图:
- 累积度分布
的方法是绘制累积度分布 P k P_k Pk,进而光滑化处理数据。 - 含义:表示度不小于
k
k
k的占整个网络的比例,即在网络中随机挑选一个节点的度不小于
k
k
k的概率。
P k = ∑ k ′ = k ∞ P ( k ′ ) . (3.40) P_k = \sum_{k'=k}^\infty P(k').\tag{3.40} Pk=k′=k∑∞P(k′).(3.40)
如果一个网络服从幂律分布,则其累积度分布满足指数为 γ − 1 \gamma -1 γ−1的幂律分布:
P k = C ∑ k ′ = k ∞ k ′ − γ ≃ C ∫ k ∞ k ′ − γ d k ′ = C γ − 1 k − ( γ − 1 ) , ( γ > 1 ) . (3.41) P_k = C\sum_{k'=k}^\infty k'^{-\gamma} \simeq C\int_k^\infty k'^{-\gamma}dk' = \frac{C}{\gamma-1}k^{-(\gamma-1)},(\gamma>1).\tag{3.41} Pk=Ck′=k∑∞k′−γ≃C∫k∞k′−γdk′=γ−1Ck−(γ−1),(γ>1).(3.41)
P k ∼ ∑ k ′ = k ∞ e − k ′ / κ ∼ e − k / κ . (3.42) P_k\sim \sum_{k'=k}^\infty e^{-k'/\kappa}\sim e^{-k/\kappa}.\tag{3.42} Pk∼k′=k∑∞e−k′/κ∼e−k/κ.(3.42)
补充: