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()函数假定的约定)。

参数:
joint_degrees整数字典的字典

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

返回:
布尔值

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

参考文献

[1]

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

[2]

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