is_valid_joint_degree#

is_valid_joint_degree(joint_degrees)[source]#

检查给定的联合度字典是否可实现。

联合度字典*是一个字典的字典,其中条目 ``joint_degrees[k][l]`` 是一个整数,表示连接度为 *k 的节点与度为 l 的节点的边数。这样的字典只有在满足以下条件时才能作为简单图实现:

  • 每个条目必须是一个整数,

  • 度为 k 的节点的总数,通过 sum(joint_degrees[k].values()) / k 计算,必须是一个整数,

  • 连接度为 k 的节点与度为 l 的节点的边数不能超过所有可能的边数,

  • 每个对角线条目 joint_degrees[k][k] 必须是偶数(这是由 joint_degree_graph() 函数假设的约定)。

Parameters:
joint_degrees字典的字典,包含整数

一个联合度字典,其中条目 joint_degrees[k][l] 是连接度为 k 的节点与度为 l 的节点的边数。

Returns:
bool

给定的联合度字典是否可以作为简单图实现。

References

[1]
  1. Gjoka, M. Kurant, A. Markopoulou, “2.5K Graphs: from Sampling to Generation”, IEEE Infocom, 2013.

[2]
  1. Stanton, A. Pinar, “Constructing and sampling graphs with a prescribed joint degree distribution”, Journal of Experimental Algorithmics, 2012.