2013/1/11 Va Sa <mihtal@gmail.com>
Greetings,

Is it possible to somehow enter a list of vertices to be removed all at once?

My naive approach

for v in g.vertices():
  if v.in_degree() == 0 and v.out_degree()==0:
    g.remove_vertex(v)

is taking a while to run on a 3M Vertices graph, i.e.  ~9 trillion memory shifts..

If one could avoid the memory shifting after each removal, the complexity would go down to just O(g.num_vertices)

Sincerely,
  Val


Instead of iterating, you could use a filter on the vertices, by using a GraphView (and maybe building a graph from the view using the prune parameter) like that

gv = gt.GraphView(g,vfilt=lambda x: x.in_degree()>0 or x.out_degree()>0)
g2 = gt.Graph(gv,prune=True)

However I don't know if with this approach the complexity would go down.

Good luck,
Giuseppe