Wpis z mikrobloga

Mirki, ważne pytanie:
Miałem w treści zadania: Wypisz wierzchołki grafu w kolejności w jakiej będą przetwarzane w alg. Djikstry

Miałem dość prosty graf, gdzie przejscie bylo jedno. Z wierzchołka połączonego z 4 innymi do jednego z nich (bo najkrótsza droga tędy prowadziła). Najkrotsza droga z A do G

Pytanie, czy PRZETWARZANE oznacza że każdy był sprawdzany, czy oznacza ścieżkę? Ogólnie to wypisałem wszystkie krawędzie (bo przecież djikstra musi wszystkie sprawdzić), bo logicznym dla mnei było, że każdy jest przetwarzany. Czy może jednak PRZETWARZANY oznacza taki przez który algorytm przechodzi i tyle?

Mój strzał to było A G D C E
Podobno odpowiedź to A G :/

#pytanie #algorytmy #informatyka troche #programowanie
Rabusek - Mirki, ważne pytanie:
Miałem w treści zadania: Wypisz wierzchołki grafu w ...

źródło: comment_zhCmCZKoga7JiQeIj3P4lVW9oLWAjvIP.jpg

Pobierz
  • 15
  • Odpowiedz
@Rabusek: aha nie zauważyłem, że to jest g a nie b xD faktycznie, w takim razie najtańsza droga z A do G to 2 z A do G. Skoro doszedł do G, to nie odwiedza innych.
  • Odpowiedz
@Arveit: No ale czy nie musi "przetworzyć" innych żeby wiedzieć że idzie do G?
Teoretycznie podkreśliłem A G (xD) przy wypisywaniu wierzchołków więc jeśli tak, to po prostu przy sprawdzaniu bede sie bronić że to była ta odpowiedź, dlatego jest podkreślona
  • Odpowiedz
@Rabusek: z tego co pamiętam, to Dijkstra znajduje najkrótszą ścieżkę poprzez odwiedzenie każdego z wierzchołków, więc Twoja odpowiedź byłaby poprawna. A G to już najkrótsza ścieżka.
  • Odpowiedz
@Porana123: Dla pewności spisałem wszystkie zadania 1:1 na kartce żeby w domu ogarnąć, i na bank jest przetworzone. No nic, jak dostane jeszcze jedno potwierdzenie to tak będę się bronić.
  • Odpowiedz
@sdaniel: ale musi PRZETWORZYĆ wszystkie 4 żeby wiedzieć, że A->G jest najkrótsze. Jeśli PRZETWORZY tylko A->G to przecież nie będzie w ogóle znać wartości A->C->D->G czy A->D->G, bo nawet nie podejrzy tych c/d/e
  • Odpowiedz
@Rabusek: W tym pytaniu trudnością nie jest wypisanie wierzchołków tylko wypisanie ich w dobrej kolejności. Ja bym dał odpowiedź w stylu 'C D E G, gdyż używam porządku alfabetycznego dla wierzchołków'. Dijkstra na tym grafie a szczególnie dla A -> G to generalnie jakiś żart.
  • Odpowiedz
@Porana123: Mnie martwi że wykładowca stwierdził, iż poprawna odpowiedź to AG, z czym sie totalnie nie zgadzam - wszystko tu zależy właśnie o interpretacji słowa przetwarzać :/
  • Odpowiedz
@Rabusek: Popatrz na stronkę, do której wysłałem link. Myślę, że jeśli chodzi o przetwarzanie wierzchołka, to z pewnością chodzi o ten, który zdejmujesz ze zbioru Q, dodajesz do zbioru S i sprawdzasz jego sąsiadów. Każda iteracja Dijkstry dotyczy jednego wierzchołka.
Rozumiem, że pewne zamieszanie może spowodować implementacja, np.: jeśli masz w jakiejś strukturze przedstawiającej wierzchołek również informacje, gdzie można z niego dojść i z jaką wagą, to teoretycznie "nie dotykasz" tych
  • Odpowiedz
@Rabusek:
zaczynasz od wrzucenia wierzchołka początkowego A do kolejki Q. Kolejka zawiera pary (wierzchołek, długość ścieżki) i jest posortowana po długości ścieżki:
Q = (A, 0)

Potem "przetwarzasz" wierzchołek A, pobierając go z kolejki i wrzucając wszystkich jego sąsiadów do kolejki:
Q = (G, 2) (D, 5) (C, 10) (E, 23)

Potem "przetwarzasz" następny wierzchołek, czyli ten pierwszy w kolejce: wierzchołek G. Ponieważ to wierzchołek docelowy, a posortowanie kolejki (w połączeniu
  • Odpowiedz