2016-07-20 119 views
-1

我使用以下python代码查找两个节点之间的所有可能路径,但它返回任何东西,只是等待运行。查找大图中两个节点之间的所有可能路径

def find_all_paths(graph, start, end, path=[]): 
    path = path + [start] 
    if start == end: 
     return [] 
    if start not in graph: 
     return [] 
    paths = [] 

    for node in graph[start]: 
     if node not in path: 
      print (node) 
      newpaths = find_all_paths(graph, node, end, path) 
      for newpath in newpaths: 
       paths.append(newpath) 
    return paths 

我的图有4K节点和23K边缘。

+0

我想你想排除循环路径,否则有他们的无限... – Julien

+1

基本的调试技巧:运行代码首先在一个简单的例子!如果有效,则逐渐增加问题的大小。如果它变得太慢,那就着手优化它。 – Julien

+0

是函数实际递归还是缩进不好? –

回答

0

一种解决方案是使用动态编程,我不知道如何使用

相关问题