python 图形工具:添加无重复边的最快方法?
python graph-tool: Fastest way to add edges without duplicates?
在 Python 的 graph-tool
中向有向图中添加无重复边的 fastest/most 高效方法是什么?
天真的解决方案是在添加边之前调用 g.edge(u, v)
,但这似乎对性能有很大影响,尤其是在无标度网络中。如果设置了 g.set_fast_edge_removal()
,g.edge(u, v)
是否在 O(1) 中进行查找?我想象任何额外的数据结构 graph-tool
为此分配的都是边缘列表的东西。
在我看来,最好是把所有的边都加起来,然后把平行边去掉。
您可以将边添加为列表:
g = gt.Graph()
edges = [(1, 2), (2, 5), (1, 2)]
g.add_edge_list(edges)
gt.remove_parallel_edges(g)
在 Python 的 graph-tool
中向有向图中添加无重复边的 fastest/most 高效方法是什么?
天真的解决方案是在添加边之前调用 g.edge(u, v)
,但这似乎对性能有很大影响,尤其是在无标度网络中。如果设置了 g.set_fast_edge_removal()
,g.edge(u, v)
是否在 O(1) 中进行查找?我想象任何额外的数据结构 graph-tool
为此分配的都是边缘列表的东西。
在我看来,最好是把所有的边都加起来,然后把平行边去掉。
您可以将边添加为列表:
g = gt.Graph()
edges = [(1, 2), (2, 5), (1, 2)]
g.add_edge_list(edges)
gt.remove_parallel_edges(g)