ER网络的创建之G(N,L)法
ER网络的创建一般分为两种方法,
- G(N, p):给定N个节点,每两个节点之间有概率p链接
- G(N, L):给定L条边,随机放置
其中G(N,p)法在ER网络的创建、degree distribution与可视化中
接下来进行G(N,L)法的实验
大体思路:根据average degree 计算出 L = a v g D e g ∗ N / 2 L = avgDeg * N / 2 L=avgDeg∗N/2,然后随机分配L条边
其中最重要的代码如下:
void rlatMatInit(Mat_t rlatMat, int n, int links)
{
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
rlatMat[i][j] = 0;
while (links)
{
int i = RANDOM(n), j = RANDOM(n);
while (i == j || // 不自环
rlatMat[i][j] == 1)
{
i = RANDOM(n);
j = RANDOM(n);
}
// find a rand blank
rlatMat[i][j] = rlatMat[j][i] = 1;
links -= 1;
}
}
即关系矩阵的构建
进行实验
当N=50, average degree=0.5时
当N=50, average degree=1时
当N=50, average degree=2时
当N=50, average degree=4时
摘自https://blog.csdn.net/qq_36926570/article/details/104728988 此处
根据平均度的取值可以将网络特征分为四个区域:
k<1:亚临界 不存在最大连通集团 最大的群是一个树结构
k=1:临界 存在唯一的一个最大连通集团 规模小的子图是树形结构,最大连通集团含有环。
k>1:超临界 存在唯一的最大连通集团 最大连通集团含有环。
k>lnN:连通 只有一个