-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邊緣。
我想你想排除循環路徑,否則有他們的無限... – Julien
基本的調試技巧:運行代碼首先在一個簡單的例子!如果有效,則逐漸增加問題的大小。如果它變得太慢,那就着手優化它。 – Julien
是函數實際遞歸還是縮進不好? –