【问题标题】:Generating a network(graph) with a prescribed degree distribution in python在python中生成具有规定度分布的网络(图)
【发布时间】:2020-10-12 06:29:36
【问题描述】:

我的问题是如何在 python 中使用 numpy 和 networkX 生成随机网络图(其他模块可以工作,但目前我专注于这两个)具有 1000 个节点和给定度数分布,如图所示 k 是边数和 P(k) 是节点与一定数量的边连接的概率。非常感谢。 degree distribution

p_k = [0, .1, .35, .25, .2, .1, .04, .01, .02, .02, .01]
k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

【问题讨论】:

  • 看networkx中的配置模型网络工具。

标签: python numpy networkx


【解决方案1】:

这是 100 个节点的实现。
请注意,我修改了您原来的概率总和为 1。

import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

p_k = [0, .01, .35, .25, .2, .1, .04, .01, .01, .02, .01]
k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

expected_degree_sequence = np.random.choice(
  k, 
  100,
  p = p_k
)

G = nx.configuration_model(expected_degree_sequence)
nx.draw(G)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多