Re: [graph-tool] Extract largest biconnected component
Hi Tiago, Yes, your approach works in my case, and below I give the code. But imagine a graph consisting of a 4-clique and a 5-ring overlapping in one node: edgelist = np.array([[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3], [0, 4], [4, 5], [5, 6], [6, 7], [0, 7]]) G = Graph(directed=False) G.add_edge_list(edgelist) In this case your proposed method to extract the vertices with edges labeled the most frequent number doesn't work. Is there a universal recipe? This is the way to extract the largest bicomponent in a working example: # create graph edgelist = np.array([[ 0, 1], [ 0, 3], [ 0, 5], [ 0, 9], [ 1, 2], [ 1, 4], [ 1, 5], [ 1, 8], [ 1, 16], [ 1, 17], [ 1, 23], [ 3, 5], [ 3, 19], [ 5, 6], [ 5, 9], [ 5, 11], [ 5, 13], [ 6, 7], [ 6, 10], [ 8, 12], [ 8, 21], [ 9, 15], [ 9, 22], [11, 13], [13, 14], [13, 21], [15, 20], [15, 24], [17, 18]]) G = Graph(directed=False) G.add_edge_list(edgelist) # extract largest bicomponent bicomp, articulation, nc = label_biconnected_components(G) l = [] for i in list(bicomp.a == 16): l.append(bool(i)) edge_filter = G.new_edge_property('bool') edge_filter.a = l G.set_edge_filter(edge_filter) m = label_largest_component(G) G = GraphView(G, vfilt=m) G.num_vertices() Best Haiko
participants (1)
-
Lietz, Haiko