-1

我一直在使用 networkx 的 Girvan-Newman 算法来查找具有 4039 个节点和 88,234 个边的网络的模块化。由于算法的性质,它在一夜之间运行,并且不会完成。因此,我支付了 colab pro 的费用,并打算使用 CuGraph 来加快速度,但找不到有效的 CuGraph 算法。我如何能够构建一个,使用边缘中心性算法,以产生类似这样的东西:

G2 = nx.karate_club_graph()

comp = girvan_newman(G2)

node_groups = []
for com in next(comp):
  node_groups.append(list(com))

print(node_groups)

color_map = []
for node in G2:
    if node in node_groups[0]:
        color_map.append('blue')
    else: 
        color_map.append('green')  
nx.draw(G2, node_color=color_map, with_labels=True)
plt.show() 
4

1 回答 1

1

Girvan-Newman 算法不在 cuGraph 中。这是一种非常顺序的算法,您可以在其中运行中间中心性,然后以最高分下降边缘。然后继续重复这个过程。

如果您对模块化感兴趣,您可以使用 Louvain、Leiden、ECG 或 Spectral 社区检测算法。

一个有 88000 条边的图应该是几秒钟

于 2021-11-09T18:59:07.360 回答