generalized_degree#

generalized_degree(G, nodes=None)[source]#

计算节点的广义度。

对于每个节点,广义度显示该节点连接了多少条具有给定三角形重数的边。边的三角形重数是该边参与的三角形数量。节点 \(i\) 的广义度可以写成向量 \(\mathbf{k}_i=(k_i^{(0)}, \dotsc, k_i^{(N-2)})\) ,其中 \(k_i^{(j)}\) 是连接到节点 \(i\) 并参与 \(j\) 个三角形的边的数量。

Parameters:
G
nodes节点容器,可选(默认=G中的所有节点)

计算容器中节点的广义度。

Returns:
outCounter,或 Counter 的字典

指定节点的广义度。Counter 按边的三角形重数键入。

Notes

自环被忽略。

在一个 N 个节点的网络中,一条边可以具有的最高三角形重数是 N-2。

返回值不包括没有特定三角形重数的边的 zero 条目。

节点 \(i\) 连接的三角形数量可以从广义度 \(\mathbf{k}_i=(k_i^{(0)}, \dotsc, k_i^{(N-2)})\) 恢复为 \((k_i^{(1)}+2k_i^{(2)}+\dotsc +(N-2)k_i^{(N-2)})/2\)

References

[1]

V. Zlatić, D. Garlaschelli 和 G. Caldarelli 的“具有任意边重数的网络”,EPL(欧洲物理快报), 第 97 卷,第 2 期(2012 年)。 https://iopscience.iop.org/article/10.1209/0295-5075/97/28005

Examples

>>> G = nx.complete_graph(5)
>>> print(nx.generalized_degree(G, 0))
Counter({3: 4})
>>> print(nx.generalized_degree(G))
{0: Counter({3: 4}), 1: Counter({3: 4}), 2: Counter({3: 4}), 3: Counter({3: 4}), 4: Counter({3: 4})}

要恢复连接到节点的三角形数量:

>>> k1 = nx.generalized_degree(G, 0)
>>> sum([k * v for k, v in k1.items()]) / 2 == nx.triangles(G, 0)
True

Additional backends implement this function

graphblas : OpenMP-enabled sparse linear algebra backend.