生成ER随机网络


ER随机网络全称为埃尔德什(Paul Erdos)-雷尼(Alfred Renyi)随机网络。生成该网络的算法描述如下:

  1. 从N个孤立节点开始;
  2. 选择一对节点,产生一个0-1之间的随机数。如果该随机数小于p,则这对节点之间放一条连接;否则,该节点对保持不连接;
  3. 对所有N(N-1)/2个节点对重复步骤2。
import random
import networkx as nx

N = 100
p = 0.1

G = nx.Graph()
G.add_nodes_from(range(1, 101))

for i in range(N):
    for j in range(i):
        rand = random.random()
        if rand < p:
            G.add_edge(i+1, j+1)
G

<networkx.classes.graph.Graph at 0x7fad989b01f0>

G.number_of_edges()

437

import matplotlib.pyplot as plt
plt.subplot()
nx.draw(G, with_labels=False)
plt.savefig('demo_er.pdf')

参考

  1. https://networkx.github.io/documentation/stable/index.html
  2. 艾伯特-拉斯洛著·巴拉巴西.巴拉巴西网络科学[M].沈华伟,黄俊铭译.河南科学技术出版社,2020;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM