生成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