Czy dobrze zrobiłem zadanie związane z algorytmem Dijkstry?

0

Cześć, chciałbym się dowiedzieć czy dobrze myślę jak można rozwiązać zadanie za pomocą algorytmu Dijkstry. Widziałem w internecie różne tabelki co zrobić, aby wyznaczyć z każdego wierzchołka najkrótszą drogę do innego, ale co jeśli mam konkretnie powiedziane, że mam wyznaczyć drogę od A do D?

Załóżmy, że mam jakiś schemat, nie ważne jaki. Muszę dojść od A do D.
A prowadzi do B i C, ale B i C również prowadzą do D.
B i C mają różne drogi.

A -> B = 3
A -> C = 5

B -> D = 6
C -> D = 4

A -> B -> D = 3 + 6 = 10
A -> C -> D = 5 + 4 = 9

Odp. najkrótsza droga z wierzchołka A do wierzchołka D jest przez ACD, bo łączna suma to 9.

Mogę tak rozwiązać zadanie? Oczywiście na kartce lepiej opiszę i oznaczę, jest też więcej liter, ale to tylko uproszczona wersja. Mogę coś takiego zrobić?

0

No przykład który masz jest trywialny, wiec można go rozwiązać tak jak to zrobiłeś, wypisując wszystkie możliwe drogi. Ale co jak będzie wierzchołków 1000? I graf będzie pełny, tzn między każdą parą będzie krawędź? Obawiam się, ze wtedy możesz mieć problem...

Dijkstra wymaga wyliczenia odległości do wszystkich innych wierzchołków ponieważ droga do docelowego wierzchołka moze prowadzić z dowolnego z tych wierzchołków. Zresztą to też tutaj zrobiłeś. Wyliczyłeś najpierw że droga A->B ma 3 oraz A->C ma 5, a następnie wyliczyłeś ile wynosi droga A->D przechodząc przez B oraz C.

0

@Shalom: Dzięki, już rozumiem. Mam jutro taki mały sprawdzian i wiem, że będzie taki mały graf dlatego zastanawiałem się, czy mogę to zrobić tak jak opisałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1