joint_degree_graph#
- joint_degree_graph(joint_degrees, seed=None)[source]#
生成具有给定联合度字典的随机简单图。
- Parameters:
- joint_degrees字典的字典,整数类型
一个联合度字典,其中条目
joint_degrees[k][l]
表示连接度为 k 的节点与度为 l 的节点之间的边数。- seed整数,random_state,或 None(默认)
随机数生成状态的指示器。 参见 随机性 。
- Returns:
- GGraph
具有指定联合度字典的图。
- Raises:
- NetworkXError
如果 joint_degrees 字典不可实现。
Notes
在“while循环”的每次迭代中,算法选择两个未连接的节点 v 和 w,其度分别为 k 和 l,对于这些节点,
joint_degrees[k][l]
尚未达到其目标值。然后添加边 (v, w) 并将图 G 中的边数增加一。该算法的智能之处在于,总是可以在这两个未连接的节点 v 和 w 之间添加一条边,即使其中一个或两个节点没有自由的存根。这是通过执行一个“邻居交换”来实现的,这是一种边重连操作,可以释放一个自由存根,同时保持 G 的联合度不变。
算法继续进行 E(边数)次“while循环”迭代,此时给定的
joint_degrees[k][l]
的所有条目都达到了其目标值,构造完成。References
Examples
>>> 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) >>>