group_betweenness_centrality#

group_betweenness_centrality(G, C, normalized=True, weight=None, endpoints=False)[source]#

计算一组节点的组间中心性。

一组节点的组间中心性 \(C\) 是所有节点对的最短路径中通过 \(C\) 中任意节点的路径分数之和。

\[c_B(v) =\sum_{s,t \in V} \frac{\sigma(s, t|v)}{\sigma(s, t)}\]

其中 \(V\) 是节点集合,\(\sigma(s, t)\)\((s, t)\) 最短路径的数量,\(\sigma(s, t|C)\) 是通过 \(C\) 中某个节点的这些路径的数量。注意 \((s, t)\) 不是 \(C\) 的成员(\(V-C\)\(V\) 中不在 \(C\) 中的节点集合)。

Parameters:
G

一个 NetworkX 图。

C列表或集合或列表的列表或集合的列表

包含属于 G 的节点的一个组或多个组,用于计算组间中心性。

normalized布尔值, 可选 (默认=True)

如果为 True,组间中心性通过 1/((|V|-|C|)(|V|-|C|-1)) 进行归一化,其中 |V| 是 G 中的节点数量, |C| 是 C 中的节点数量。

weightNone 或字符串, 可选 (默认=None)

如果为 None,所有边的权重视为相等。 否则,持有用作权重的边属性的名称。 边的权重被视为两端之间的长度或距离。

endpoints布尔值, 可选 (默认=False)

如果为 True,在最短路径计数中包括端点。

Returns:
betweenness浮点数或浮点数列表

如果 C 是一个单独的组,则返回一个浮点数。如果 C 是包含多个组的列表,则返回组间中心性的列表。

Raises:
NodeNotFound

如果 C 中的节点在 G 中不存在。

Notes

组间中心性在 [1] 中描述,并在 [3] 中讨论其重要性。该算法的初始实现见 [2]。此函数使用 [4] 中提出的改进算法。

组中的节点数量最多为 n - 2,其中 n 是图中的总节点数。

对于加权图,边权重必须大于零。零边权重可能导致无限数量的等长路径。

源和目标之间的总路径数在有向图和无向图中计算方式不同。有向图中 “u” 和 “v” 之间的路径计为两条可能的路径(每个方向一条),而无向图中 “u” 和 “v” 之间的路径计为一条路径。换句话说,上述表达式中的和在有向图中是所有 s != t ,在无向图中是所有 s < t

References

[1]

M G Everett 和 S P Borgatti: The Centrality of Groups and Classes. Journal of Mathematical Sociology. 23(3): 181-201. 1999. http://www.analytictech.com/borgatti/group_centrality.htm

[2]

Ulrik Brandes: On Variants of Shortest-Path Betweenness Centrality and their Generic Computation. Social Networks 30(2):136-145, 2008. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.9610&rep=rep1&type=pdf

[3]

Sourav Medya 等人: Group Centrality Maximization via Network Design. SIAM International Conference on Data Mining, SDM 2018, 126–134. https://sites.cs.ucsb.edu/~arlei/pubs/sdm18.pdf

[4]

Rami Puzis, Yuval Elovici, 和 Shlomi Dolev. “Fast algorithm for successive computation of group betweenness centrality.” https://journals.aps.org/pre/pdf/10.1103/PhysRevE.76.056709