def rnd_walk(self, topo, node, steps, visited = {}):
i = 0
visited[node] = True
# self.log.debug("rnd_walk %d %d" % (node, steps))
res = [node]
if steps == 0:
return res
while i < self.MAX_ITER:
i += 1
nnode = self.rng.choice(topo.graph.neighbors(node))
if nnode in visited:
continue
res.extend(self.rnd_walk(topo, nnode, steps - 1, visited))
return res
self.log.debug("Giving up on random walk")
raise nx.NetworkXNoPath("No random path from %s." % (node))
评论列表
文章目录