Longest Path problem
Verfasst: Dienstag 25. November 2014, 13:38
Hallo Leute
Ich bins mal wieder.
Und zwar habe ich Probleme beim Verstehen eines longest Path Algorithmus. Siehe: http://stackoverflow.com/questions/1798 ... in-digraph
Genauer gesagt, ist mir alles verständlich bis auf eine gewisse Zeile.
So wie ich das verstehe, ist das eine List Comprehension, richtig?
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:
Jedoch lierfert das nicht das selbe Resultat...
Vielen Dank für eure Hilfe beim lernen

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 pairsDoch 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