Hi all,

I have a pretty large graph G from which want to do the following:

1) Randomly select a node from G

2) Get the vertices that lie within radius 2 of the node

3) Extract the subgraph induced by those vertices

My code for doing this is the following:

/

randnode = random.randint(0,G.num_vertices())

pred_map = gt.shortest_distance(G, source=G.vertex(randnode), max_dist=2,

pred_map=True)

pred_tree = gt.predecessor_tree(G, pred_map[1])

# DEBUG

#print(pred_tree.num_vertices())

verts = pred_tree.vertices()

vmap = G.new_vertex_property('bool')

for i in verts:

vmap[G.vertex_index[i]] = True

/

Then using vmap, I plan to do a GraphView on G and get the subgraph. But

something is clearly going wrong here. If I uncomment the line under the #

DEBUG comment, then I clearly see that pred_tree always has the same number

of vertices as the original graph.

Am I missing something about how predecessor_tree() works? I expected it to

only return a subgraph of the original graph, which should have a lot fewer

vertices...