2016-07-20 153 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

一種解決方案是使用動態編程,我不知道如何使用

相關問題