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循环”的每次迭代中,算法选择两个未连接的节点 vw,其度分别为 kl,对于这些节点, joint_degrees[k][l] 尚未达到其目标值。然后添加边 (v, w) 并将图 G 中的边数增加一。

该算法的智能之处在于,总是可以在这两个未连接的节点 vw 之间添加一条边,即使其中一个或两个节点没有自由的存根。这是通过执行一个“邻居交换”来实现的,这是一种边重连操作,可以释放一个自由存根,同时保持 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)
>>>