joint_degree_graph#
- joint_degree_graph(joint_degrees, seed=None)[source]#
生成一个具有给定联合度字典的随机简单图。
- 参数:
- joint_degrees整数字典的字典
一个联合度字典,其中条目
joint_degrees[k][l]
表示连接度为 k 的节点和度为 l 的节点的边数。- seed整数, random_state, 或 None (默认)
随机数生成状态的指示器。参见 随机性。
- 返回:
- G图
具有指定联合度字典的图。
- 抛出异常:
- NetworkXError
如果 joint_degrees 字典不可实现。
注释
在“while 循环”的每次迭代中,算法选择两个断开连接的节点 v 和 w,它们的度分别为 k 和 l,并且
joint_degrees[k][l]
尚未达到目标值。然后添加边 (v, w),并将图 G 中的边数增加一。该算法的巧妙之处在于,即使一个或两个节点没有空闲的桩,也总有可能在这样的断开连接的节点 v 和 w 之间添加一条边。这是通过执行“邻居切换”来实现的,这是一种边重新布线操作,它释放一个空闲的桩,同时保持图 G 的联合度不变。
算法继续进行 E(边数)次“while 循环”迭代,此时给定
joint_degrees[k][l]
的所有条目都已达到其目标值,构造完成。参考文献
示例
>>> joint_degrees = { ... 1: {4: 1}, ... 2: {2: 2, 3: 2, 4: 2}, ... 3: {2: 2, 4: 1}, ... 4: {1: 1, 2: 2, 3: 1}, ... } >>> G = nx.joint_degree_graph(joint_degrees) >>>