Python networkx,如何为每个节点添加 x 条边?

问题描述

我在 python 中使用 networkx 有一个基本的网络图,我想做的是为每个节点添加特定数量的边,而不是自己直接确定边。

import networkx as nx
import matplotlib.pyplot as plt

hosts = 100
nodes = list(range(1,(hosts+1)))

H=nx.Graph()
H.add_nodes_from(nodes)
nx.draw_random(H)

enter image description here

因此,对于此图,我想要做的是指定“每个节点有两条边”,然后让 python 计算结果。这可能吗?

非常感谢。

解决方法

您的问题听起来像是图中配置模型的概念,它将返回具有给定度数序列的随机图。

请参阅 networkx.generators.degree_seq.configuration_model 文档

例如度数为 [0,1,2,3,4] 的图:

import networkx as nx
import matplotlib.pyplot as plt

H = nx.configuration_model([i for i in range(5)])

nx.draw_random(H)

注意度数之和必须是偶数。 Configuration model with degree from 0 to 4