Jak znaleźć najkrótszą ścieżkę w grafie skierowanym?
Jak znaleźć najkrótszą ścieżkę w grafie skierowanym?

Wideo: Jak znaleźć najkrótszą ścieżkę w grafie skierowanym?

Wideo: Jak znaleźć najkrótszą ścieżkę w grafie skierowanym?
Wideo: Shortest/Longest path on a Directed Acyclic Graph (DAG) | Graph Theory 2024, Kwiecień
Anonim

Biorąc pod uwagę ważoną Skierowany Acykliczny Wykres i wierzchołek źródłowy w wykres , znaleźć najkrótsze ścieżki z podanego źródła do wszystkich innych wierzchołków.

Najkrótsza ścieżka w ukierunkowanym grafie acyklicznym

  1. Zainicjuj dist = {INF, INF, ….}
  2. Utwórz porządek topologiczny wszystkich wierzchołków.
  3. Wykonaj następujące czynności dla każdego wierzchołka u w kolejności topologicznej.

Jak w ten sposób znaleźć najkrótszą ścieżkę na wykresie?

Kroki algorytmu: dla wykres z wierzchołkami: Zainicjuj najkrótsze ścieżki między dowolnymi wierzchołkami z nieskończonością. Odnaleźć wszystkie pary najkrótsze ścieżki które używają pośrednich wierzchołków, to odnaleźć ten najkrótsze ścieżki które używają wierzchołka pośredniego i tak dalej… aż do użycia wszystkich wierzchołków jako węzłów pośrednich.

Poza powyższym, jak znaleźć najkrótszą ścieżkę w DFS? Nie, nie możesz użyć DFS do znajdź najkrótszą ścieżkę na wykresie nieważonym. Nie jest tak, że odkrycie ten najkrótsza droga między dwoma węzłami jest rozwiązywany wyłącznie przez BFS.

Podobnie, jak znaleźć najkrótszą ścieżkę na drzewie?

  1. Drzewo trawersu (od głębokości)
  2. Zachowaj indeksy (węzły)
  3. dodaj wartości.
  4. zrób (1) do końca drzewa.
  5. porównaj sumę i wydrukuj ścieżkę i sumę.

Jaki algorytm jest używany do znalezienia najkrótszej ścieżki?

Algorytm najkrótszej ścieżki Dijkstry

Zalecana: