prominent_group#

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

找到图 \(G\) 中大小为 \(k\) 的显著组。组的显著性通过组间中心性来评估。

一组节点 \(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 图。

k整数

组中的节点数量。

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

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

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

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

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

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

C列表或集合, 可选 (默认=None)

不会成为显著组候选节点的节点列表。

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

使用朴素贪心算法来寻找非最优的显著组。对于无标度网络,结果略低于最优结果。

Returns:
max_GBC浮点数

显著组的组间中心性。

max_group列表

显著组中的节点列表。

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]

Rami Puzis, Yuval Elovici, 和 Shlomi Dolev: “Finding the Most Prominent Group in Complex Networks” AI communications 20(4): 287-296, 2007. https://www.researchgate.net/profile/Rami_Puzis2/publication/220308855

[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