A. 细致平衡与中性网络的
由
的两种写法
及
,得细致平衡
。
把
按
加权求和:
这一恒等式对任何相关结构都成立。若
随
发散,则必有某些
的
发散,矩阵
的最大特征值也无界,SIS 阈值趋于 0。中性网络中
,直接得到
。
B. 度相关系数的边列表形式
把每条无向边记为两个有序对
与
,共
个。
与
的边际分布相同(都是
),均值
,方差
,协方差
。二者之比就是上文的
。把求和改写为对度对
计数,即得
。由于
Pearson 相关对平移不变,用度或剩余度结果相同。
C. 结构截断
设
为连接度
与
节点的边数(
时计两次),。简单图中它不能超过
分别对应“度
一侧的边端总数”“度
一侧的边端总数”“两组节点之间的节点对数”。定义
。当
足够大(
且
)时,最小值是
。中性网络中
,于是
令
,得
。它与度分布形式无关。与
比较,
时
,中性的简单无标度网络不存在。
D.
无相关网络的富人俱乐部系数
在无相关网络中,度为
与
的两节点相连的概率约为
(不超过
1 时)。富节点集合
内的期望边数为
其中
为富节点的平均度,它随阈值
增大,所以
随
单调上升,大致按
增长(直到结构截断使概率饱和)。这就是必须用
归一化的原因。
E. 算法
算法 1 邻居平均度函数 k_nn(k)(对数分箱)
输入:无向简单图 G
1. 对每个节点 i:k_nn,i ← (Σ_{j∈N(i)} k_j) / k_i # O(L)
2. 取对数间隔的度区间 [b_0,b_1), [b_1,b_2), …
3. 对每个区间:k̄ ← 区间内节点度的均值;k_nn ← 区间内 k_nn,i 的均值(节点数 < 3 时跳过)
4. 输出 (k̄, k_nn) 序列;在选定区间内对 log k_nn ~ log k 做线性拟合,斜率为 μ
复杂度:O(L + N)
算法 2 Xulvi-Brunet–Sokolov 重连(保度、保持简单图)
输入:简单图 G,交换次数 S,方向 mode ∈ {同配, 异配},概率 p
1. 重复直到成功交换 S 次:
2. 随机取两条边 (a,b)、(c,d);若四个端点有重复,跳过
3. 以概率 p:按度从大到小排序为 v1 ≥ v2 ≥ v3 ≥ v4
4. 同配:新边 (v1,v2)、(v3,v4);异配:新边 (v1,v4)、(v2,v3)
5. 否则:随机打乱四个端点,两两配对
6. 若新边已存在(会产生重边):拒绝
7. 删除旧边,加入新边
复杂度:每次尝试 O(1)(用哈希集合判断边是否存在)
算法 3 k-核分解(按当前度剥离)
输入:无向图 G
1. d[v] ← deg(v);把所有节点放入以 d 为键的桶(或最小堆)
2. k ← 0
3. 当还有未删除节点:
4. 取出当前 d 最小的节点 v;k ← max(k, d[v]);core[v] ← k;删除 v
5. 对 v 的每个未删除邻居 u:d[u] ← d[u] − 1,更新其在桶中的位置
6. 返回 core
复杂度:桶实现 O(L)(Batagelj & Zaversnik);堆实现 O(L log N)
算法 4 富人俱乐部检验
输入:图 G,度阈值集合 K,随机网络数 M
1. 对每个 k ∈ K:计算 φ_obs(k)
2. 对 m = 1..M:用双边交换生成保度随机网络 G_m(交换次数 ≥ 10L),计算 φ_m(k)
3. φ_ran(k) ← mean_m φ_m(k);ρ(k) ← φ_obs(k) / φ_ran(k)
4. p(k) ← (1 + #{m: φ_m(k) ≥ φ_obs(k)}) / (M + 1)
5. 多个 k 的检验:用每次置换中 max_k [φ_m(k)/φ_ran(k)] 构造零分布,或预先规定 k 区间
6. 报告 ρ(k) 曲线、N_{>k} 与 p(k);N_{>k} 很小的区间只作描述