graphscope.nx.generators.joint_degree_seq.joint_degree_graph¶
- graphscope.nx.generators.joint_degree_seq.joint_degree_graph(joint_degrees, seed=None)[源代码]¶
根据给定的联合度字典生成一个随机简单图。
- Parameters:
joint_degrees (dictionary of dictionary of integers) - 一个联合度数字典,其中条目
joint_degrees[k][l]表示 连接度数为k的节点与度数为l的节点之间的边数。seed (integer, random_state, or None (default)) - 随机数生成状态的指示器。 参见随机性。
- Returns:
G – 具有指定联合度字典的图。
- Return type:
- Raises:
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) >>>