-1
J'utilise le code python suivant pour trouver tous les chemins possibles entre deux noeuds, mais il retourne n'importe quoi, il attend juste de s'exécuter.Recherche de tous les chemins possibles entre deux noeuds dans un grand graphique
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
Mon graphique a environ 4K nœuds et 23K arêtes.
Je suppose que vous voulez exclure les chemins en boucle, sinon il y a une infinité ... – Julien
technique de débogage de base: exécuter votre code sur un exemple simple d'abord! Si cela fonctionne, augmentez progressivement la taille de votre problème. Si cela devient trop lent, alors travaillez à l'optimiser. – Julien
est la fonction réellement récursive ou l'indentation est-elle mauvaise? –