为什么要模拟实际的网络?
如何模拟出实际的网络?
实际网络是怎么样的?
Example: 对于随机图模型$G(3,2)$
在第一种方法中,生成下图的可能性为$1/3$
其中$\Omega $集合中包含以下三个元素
#用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图
%matplotlib inline
import networkx as nx
import matplotlib.pyplot as plt
ER = nx.random_graphs.erdos_renyi_graph(2000, 0.001) # 随机生成15个节点,节点间的连接概率都是0.2
#pos = nx.circular_layout(ER) # 图形样式,这里是节点在同心圆上分布
pos = nx.spring_layout(ER) # 图形样式,这里是节点在同心圆上分布
nx.draw(ER, pos, with_labels=False, node_size=40)
plt.show()
#用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络
import networkx as nx
import matplotlib.pyplot as plt
WS = nx.random_graphs.watts_strogatz_graph(200, 4, 0.1)
# pos = nx.circular_layout(WS) # 图形样式,这里是节点在一个圆环上均匀分布
pos = nx.spring_layout(WS) # 图形样式,这里是节点在一个圆环上均匀分布
nx.draw(WS, pos, with_labels=False, node_size=40)
plt.show()
#用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络
import networkx as nx
import matplotlib.pyplot as plt
BA = nx.random_graphs.barabasi_albert_graph(4000, 1)
pos = nx.spring_layout(BA) # 图形的布局样式,这里是中心放射状
nx.draw(BA, pos, with_labels=False, node_size=40)
plt.show()