networkx--四种网络模型
2012-03-20 14:55
399 查看
NetworkX提供了4种常见网络的建模方法,分别是:规则图,ER随机图,WS小世界网络和BA无标度网络。
一. 规则图
规则图差不多是最没有复杂性的一类图,random_graphs.random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图。
下面一段示例代码,生成了包含20个节点、每个节点有3个邻居的规则图:
二、ER随机图
ER随机图是早期研究得比较多的一类“复杂”网络,模型的基本思想是以概率p连接N个节点中的每一对节点。用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图:
三、WS小世界网络
用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络。
下面是一个例子:
四、BA无标度网络
用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络。
下面是一个例子:
一. 规则图
规则图差不多是最没有复杂性的一类图,random_graphs.random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图。
下面一段示例代码,生成了包含20个节点、每个节点有3个邻居的规则图:
import networkx as nx import matplotlib.pyplot as plt # regular graphy # generate a regular graph which has 20 nodes & each node has 3 neghbour nodes. RG = nx.random_graphs.random_regular_graph(3, 20) # the spectral layout pos = nx.spectral_layout(RG) # draw the regular graphy nx.draw(RG, pos, with_labels = False, node_size = 30) plt.show()
二、ER随机图
ER随机图是早期研究得比较多的一类“复杂”网络,模型的基本思想是以概率p连接N个节点中的每一对节点。用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图:
import networkx as nx import matplotlib.pyplot as plt # erdos renyi graph # generate a graph which has n=20 nodes, probablity p = 0.2. ER = nx.random_graphs.erdos_renyi_graph(20, 0.2) # the shell layout pos = nx.shell_layout(ER) nx.draw(ER, pos, with_labels = False, node_size = 30) plt.show()
三、WS小世界网络
用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络。
下面是一个例子:
import networkx as nx import matplotlib.pyplot as plt # WS network # generate a WS network which has 20 nodes, # each node has 4 neighbour nodes, # random reconnection probability was 0.3. WS = nx.random_graphs.watts_strogatz_graph(20, 4, 0.3) # circular layout pos = nx.circular_layout(WS) nx.draw(WS, pos, with_labels = False, node_size = 30) plt.show()
四、BA无标度网络
用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络。
下面是一个例子:
import networkx as nx import matplotlib.pyplot as plt # BA scale-free degree network # generalize BA network which has 20 nodes, m = 1 BA = nx.random_graphs.barabasi_albert_graph(20, 1) # spring layout pos = nx.spring_layout(BA) nx.draw(BA, pos, with_labels = False, node_size = 30) plt.show()
相关文章推荐
- networkx--四种网络模型
- networkx学习笔记2:四种网络模型
- 复杂网络分析库NetworkX学习笔记3:网络演化模型
- P2P四种网络模型
- P2P四种网络模型
- KVM虚拟化的四种简单网络模型介绍及实现(一)
- 四种主要网络IO虚拟化模型
- Seq2Seq非常好的代码(机器翻译、对话生成等):漫谈四种神经网络序列解码模型【附示例代码】
- KVM虚拟化的四种简单网络模型介绍及实现(二)
- networkx库中常用网络演化模型
- 漫谈四种神经网络序列解码模型【附示例代码】 glimpse attention
- 转:VMware、微软等四种主要的网络IO虚拟化模型
- [ kvm ] 四种简单的网络模型
- 漫谈四种神经网络序列解码模型
- 四种主要网络IO虚拟化模型
- 网络IO模型解析:同步IO和异步IO,阻塞IO和非阻塞IO的对比分析
- IOCP模型与网络编程
- 相对于七层协议参考模型,TCP/IP协议是如何实现网络模型的
- 5种服务器网络编程模型讲解
- 网络 I/O 模型