无标度网络上的传染病模型python
时间: 2024-06-15 22:07:21 浏览: 239
python传染病模型 供参考
无标度网络上的传染病模型是一种用于研究网络中传染病传播的模型。在无标度网络中,节点的度数分布呈幂律分布,即存在少数高度连接的节点,而大部分节点连接较少。这种网络结构在许多实际系统中都有出现,如社交网络、互联网等。
在Python中,可以使用NetworkX库来构建和分析无标度网络上的传染病模型。以下是一个简单的示例代码:
```python
import networkx as nx
import random
# 构建无标度网络
n = 1000 # 节点数
m = 5 # 每个新节点连边数
G = nx.barabasi_albert_graph(n, m)
# 初始化传染状态
infected = set(random.sample(G.nodes, 10)) # 随机选择10个节点作为初始感染节点
recovered = set()
# 传染过程
while infected:
node = infected.pop()
recovered.add(node)
neighbors = list(G.neighbors(node))
for neighbor in neighbors:
if neighbor not in infected and neighbor not in recovered:
if random.random() < 0.2: # 传染概率为0.2
infected.add(neighbor)
# 输出结果
print("感染节点数:", len(recovered))
```
以上代码使用了NetworkX库中的`barabasi_albert_graph`函数构建了一个无标度网络,然后通过随机选择一些节点作为初始感染节点,并模拟了传染过程。每个节点以0.2的概率传染其邻居节点,直到没有新的感染节点为止。
阅读全文