Używam networkx
do zarządzania dużym grafem sieciowym, który składa się z 50 000 węzłów.Networkx - najkrótsza długość ścieżki
Chcę obliczyć najkrótszą drogę między określonym zbiorem węzłów, powiedzmy N.
Dla tego używam funkcji nx.shortest_path_length
.
W niektórych węzłach z N może nie być ścieżki, więc networkx podnosi i zatrzymuje mój program.
Czy istnieje sposób na uruchomienie tego programu bez żadnego błędu?
I powiedzieć shortest_path_length
, aby zwrócić jakąś maksymalną wartość?
Kod po prostu używa nx.shortest_path_length(G,i,j)
w pętli. i błąd jest następujący
raise nx.NetworkXNoPath("No path between %s and %s." % (source, target)) networkx.exception.NetworkXNoPath: No path between V and J
"i zatrzymanie mój program"? Czy masz na myśli, że to podnosi wyjątek? Czy potrzebujesz pomocy z instrukcją 'try:'? Czy możesz opublikować kod i faktyczny komunikat o błędzie, który faktycznie otrzymujesz? –
Tak, to wywołuje wyjątek i jest błąd czasu wykonywania, więc drukuje komunikat wyjątku na wyjściu i nie przetwarza nawet innych węzłów w iteracji. –
Komentarz nie jest pomocny. Właściwie ** aktualizacja ** pytanie z kodem i szczegółami wyjątku. I jeśli nie jesteś zaznajomiony z instrukcją try, znajdź samouczek i zadaj ** szczegółowe ** pytania dotyczące instrukcji try po wykonaniu samouczka. –