I_R_W14_M38_Java Podejście zachłanne. Najkrótsza droga w grafie
jak działa podejście zachłanne i potrafisz wskazać, w którym momencie algorytm Dijkstry podejmuje lokalnie najlepszą decyzję,
umiesz przeanalizować kolejne kroki algorytmu na grafie ważonym, odczytać wartości w tablicach d i p oraz określić, kiedy wierzchołek zostaje oznaczony jako „odwiedzony”,
potrafisz przełożyć pseudokod na działający program w Javie, uruchomić go na przykładzie i zinterpretować otrzymane wyniki,
wiesz jak zmodyfikować implementację, aby działała dla różnych reprezentacji grafów.
Teraz czas sprawdzić swoją wiedzę i umiejętności w praktyce.
Wynik działania algorytmu Dijkstry dla każdego grafu skierowanego będzie poprawny.
Wynik działania algorytmu Dijkstry dla każdego grafu będzie poprawny.
Zapoznaj się z pseudokodem.
prev[] Możliwe odpowiedzi: 1. wierzchołek dodawany do zbioru S unikalny dla każdej iteracji, 2. zbiór wszystkich wierzchołków grafu, 3. tablica kosztów dojścia do każdego wierzchołka, 4. zbiór wierzchołków, do których najmniejsze koszty dojścia zostały wyznaczone, 5. tablica przechowująca poprzedniki wierzchołków d[] Możliwe odpowiedzi: 1. wierzchołek dodawany do zbioru S unikalny dla każdej iteracji, 2. zbiór wszystkich wierzchołków grafu, 3. tablica kosztów dojścia do każdego wierzchołka, 4. zbiór wierzchołków, do których najmniejsze koszty dojścia zostały wyznaczone, 5. tablica przechowująca poprzedniki wierzchołków u Możliwe odpowiedzi: 1. wierzchołek dodawany do zbioru S unikalny dla każdej iteracji, 2. zbiór wszystkich wierzchołków grafu, 3. tablica kosztów dojścia do każdego wierzchołka, 4. zbiór wierzchołków, do których najmniejsze koszty dojścia zostały wyznaczone, 5. tablica przechowująca poprzedniki wierzchołków S Możliwe odpowiedzi: 1. wierzchołek dodawany do zbioru S unikalny dla każdej iteracji, 2. zbiór wszystkich wierzchołków grafu, 3. tablica kosztów dojścia do każdego wierzchołka, 4. zbiór wierzchołków, do których najmniejsze koszty dojścia zostały wyznaczone, 5. tablica przechowująca poprzedniki wierzchołków V Możliwe odpowiedzi: 1. wierzchołek dodawany do zbioru S unikalny dla każdej iteracji, 2. zbiór wszystkich wierzchołków grafu, 3. tablica kosztów dojścia do każdego wierzchołka, 4. zbiór wierzchołków, do których najmniejsze koszty dojścia zostały wyznaczone, 5. tablica przechowująca poprzedniki wierzchołków
Zapoznaj się z ilustracją pewnego grafu.
d i p, które może zwrócić algorytm Dijkstry dla zaprezentowanego grafu skierowanego.A, wskaż grafy, dla których algorytm Dijkstry nie zwróci poprawnego wyniku.Graf składa się z sześciu wierzchołków oznaczonych od A do F. Wierzchołki połączone są krawędziami, tworzacymi sześciokąt. Ponadto dwie krawędzie zostały zaznaczone pomiędzy wierzchołkami wten sposób, że znajdują się w polu sześciokąta. Od wierzchołka A popdorwadzone sa dwie krawędzie do wierzchołka B o długości dziesięć i do wierzchołka C o długości sześć. Od wierzchołka B odchodzą dwie krawędzie. Pierwsza o długości cztery łączy go z wierzhcołkiem E, natomiast druga o długości dwa z wierzchołkiem F.Od wierzchołka C odchodzą dwie krawędzie. Pierwsza o długości siedem łączy wierzchołek C z wierzchołkiem D, natomiast druga o długości pięć z wierzchołkiem F. Warości dla krawędzi łączących odpowiednio wierzchołki D F oraz E F nie podano.
Wskaż długości ścieżek łączących, odpowiednio wierzchołki D F oraz E F, aby algorytm Dijkstry zwrócił następujący wynik:
d = { 6, 7, 0, 7, 6, 5 },
p = { C, F, NULL, C, F, C }Materiał źródłowy do ćwiczeń 7–8

s = E. Wskaż poprzednika, jeśli u = A.s = A. Wskaż poprawną długość najkrótszej ścieżki, jaką należy pokonać, by od wierzchołka s dojść do wierzchołka u = B.Zapisz program z polecenia nr 1, używając wybranego języka programowania.
Działanie programu przetestuj dla następującego grafu:

Specyfikacja problemu:
Dane:
lista_sąsiedztwa– lista sąsiedztwa grafu nieskierowanego o dodatnich wagachs– wierzchołek początkowy grafu
Wynik:
tablica przechowujące najkrótsze ścieżki od wierzchołka
sdo pozostałych wierzchołków oraz tablica przechowująca poprzedniki kolejnych wierzchołków
Napisz program, który dla grafu reprezentowanego przez macierz sąsiedztwa wypisze dwie tablice – najkrótszych ścieżek do danych wierzchołków oraz poprzedników tych wierzchołków.
Działanie programu przetestuj dla następujących danych:
Specyfikacja problemu:
Dane:
s– wierzchołek początkowy grafumacierzSasiedztwa– tablica dwuwymiarowa; macierz sąsiedztwa grafuV– liczba naturalna dodatnia; liczba wierzchołków grafu
Wynik:
tablica przechowująca najkrótsze ścieżki od wierzchołka
sdo pozostałych wierzchołków oraz tablica przechowująca poprzedniki kolejnych wierzchołków
Wynik dla podanych danych:
Napisz program, który dla danej tablicy poprzedników grafu wypisze kompletne ścieżki do kolejnych wierzchołków. Ścieżki powinny zaczynać się w wierzchołku początkowym, a kończyć na docelowym.
Działanie programu przetestuj dla następujących danych:
Specyfikacja problemu:
Dane:
p– tablica poprzedników; tablica liczb całkowitychV– liczba naturalna dodatnia; liczba wierzchołków grafu
Wynik:
komunikat dotyczący najkrótszych ścieżek do kolejnych wierzchołków
Wynik dla podanych danych:
Zmodyfikuj program tak, by algorytm Dijkstry działał dla grafu, którego każda krawędź ma wagę równą 1.
Działanie programu przetestuj dla następujących danych:
Specyfikacja problemu:
Dane:
listaSasiedztwa– tablica dwuwymiarowa; lista sąsiedztwa grafus– wierzchołek początkowy grafuV– liczba naturalna dodatnia; liczba wierzchołków grafu
Wynik:
tablica przechowująca najkrótsze ścieżki od wierzchołka
sdo pozostałych wierzchołków oraz tablica przechowująca poprzedniki kolejnych wierzchołków
Wynik dla podanych danych: