BA无标度网络代码
时间: 2023-09-11 13:11:18 浏览: 188
BA无标度网络拓扑生成算法附matlab代码
5星 · 资源好评率100%
以下是使用Python生成BA无标度网络的示例代码:
```python
import networkx as nx
import numpy as np
# 创建初始的小网络
m = 5
G = nx.complete_graph(m)
# 添加新节点
n = 100
for i in range(m, n):
# 计算每个节点的度数
degrees = np.array([G.degree(j) for j in range(i)])
# 计算每个节点被连接的概率
prob = degrees / np.sum(degrees)
# 选择一个节点进行连接
targets = np.random.choice(i, size=m, replace=False, p=prob)
# 添加新节点并连接
G.add_node(i)
for t in targets:
G.add_edge(i, t)
```
在这个代码中,我们首先创建了一个包含m个节点的完全图作为初始网络。然后,从m开始往网络中添加新节点,每次添加一个节点并与之前的节点建立连接。连接的概率与节点的度数成正比,使用numpy的随机选择函数进行节点选择。最终生成了一个包含n个节点的BA无标度网络。可以根据需要修改m和n的值。
阅读全文