edge_current_flow_betweenness_partition#

edge_current_flow_betweenness_partition(G, number_of_sets, *, weight=None)[源代码]#

通过移除边电流介数最高的边创建的划分。

此算法通过计算所有边的边电流介数,然后移除值最高的边。接着判断图是否已被分成至少 number_of_sets 个连通分量。如果还没有,则重复此过程。

参数:
GNetworkX Graph, DiGraph 或 MultiGraph

待划分的图

number_of_setsint

图的期望划分中的集合数量

weightkey, 可选 (默认为 None)

用于边电流介数计算权重的边属性键

返回:
Clist of sets

G 的划分

抛出:
NetworkXError

如果 number_of_sets <= 0 或 number_of_sets > len(G)

注意

此算法非常慢,因为边电流介数的重新计算非常耗时。

参考

[1]

Santo Fortunato ‘Community Detection in Graphs’ Physical Reports Volume 486, Issue 3-5 p. 75-174 http://arxiv.org/abs/0906.0612

示例

>>> G = nx.karate_club_graph()
>>> part = nx.community.edge_current_flow_betweenness_partition(G, 2)
>>> {0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 17, 19, 21} in part
True
>>> {8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33} in part
True