Dijkstra - ścieżka o najmniejszej liczbie węzłów.

Dijkstra - ścieżka o najmniejszej liczbie węzłów.
TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Ma ktoś pomysł jak zmodyfikować typowy algorytm dijkstry, by zamiast ścieżki o najniższym koszcie dojścia z A do B, znajdował ścieżkę o najmniejszej liczbie węzłów (wierzchołków) między A i B, niezależnie od kosztu dojścia.

Liczę na trafne sugestie.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
5

Nie rozumiem problemu. Niech graf będzie nieważony, tzn każda krawędź ma wagę 1. Wtedy ścieżka o najniższym koszcie będzie właśnie ta najkrótsza, tzn taka która ma najmniej krawędzi. A to oznacza też że ma najmniej węzłów po drodze.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2

Tylko że w tym przypadku DFS lepiej będzie się sprawował.

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Graf jest grafem ważonym. Załóżmy, że chcemy dojść z wierzchołka A do B. Są dwie drogi z A: Pierwsza -> Z A do D (koszt 10) i z D do B (tez 10). Koszt dojścia tą drogą to 20. Druga -> Z A do E (koszt 1), z E do F (koszt 1) i z F do B (koszta 1). Koszt dojścia A->E->F->B to 3. W tym momencie algorytm dijkstry wybierze drugą drogę, bo ma mniejszy koszt, ale tutaj mijamy po drodze dwa wierzchołki E i F. Natomiast ja chce tak przerobić ten algorytm, by wybierał taką drogę, by po drodze natrafić na jak najmniej wierzchołków, czyli wybrać tą pierwszą. Da się to zrealizować?

@Shalom, tak masz racje, to dobry pomysł.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.