Ich bins mal wieder.
Und zwar habe ich Probleme beim Verstehen eines longest Path Algorithmus. Siehe: http://stackoverflow.com/questions/1798 ... in-digraph
Code: Alles auswählen
def longest_path(G):
dist = {} # stores [node, distance] pair
for node in nx.topological_sort(G):
# pairs of dist,node for all incoming edges
pairs = [(dist[v][0]+1,v) for v in G.pred[node]]
if pairs:
dist[node] = max(pairs)
else:
dist[node] = (0, node)
node,(length,_) = max(dist.items(), key=lambda x:x[1])
path = []
while length > 0:
path.append(node)
length,node = dist[node]
return list(reversed(path))
Code: Alles auswählen
pairs = [[dist[v][0]+1,v] for v in G.pred[node]] # incoming pairs
Doch wie funktioniert der Zugriff auf das Dictionary Dist, wenn dieses noch leer ist?
Wie wird der Zähler genau erhöht.
Ich dachte das ganze sei eine kurze Version von diesem Code:
Code: Alles auswählen
pairs = []
for v in graph.pred[node]:
distance += 1
pairs.append((distance,v))
Vielen Dank für eure Hilfe beim lernen