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