matematykaszkolna.pl
Algorytm jarnika vs kruskala Szofer : Jaka jest różnica między tymi dwoma algorytmami ?
5 sie 22:06
Szofer : Bo czytam i ciężko jakoś wyczuć mi różnicę a do zadania mi potrzebne.
5 sie 22:16
. : Ciężko? No to nie wiem. Ja jie miałem pojęcia o tych algorytm ach i zajęło mi 5 minut aby zajarzyc jak one działają i czym się różnią w swojej zasadzie.
5 sie 22:43
Szofer : No ale w dwóch prostych słowach?
6 sie 09:26
Szofer : Poważnie się pytam.
6 sie 11:43
wredulus_pospolitus: rysunek Jarnika − 1) wybieramy dowolny wierzchołek od którego będziemy prowadzić ścieżkę 2) wybieramy 'najtańszą' krawędź i dodajemy wierzchołek 3) oraz wszystkie krawędzie tego wierzchołka 4) wybieramy kolejną 'najtańszą' krawędź (o ile nie zamknie nam cyklu) i dodajemy kolejny wierzchołek powtarzamy krok (3) i (4) aż do momentu dodania ostatniego wierzchołka Czyli : zaczynamy z dowolnego punktu i z tego punktu (wierzchołka) poprzez krawędzie rozchodzimy się po całym grafie. Kruskała − 1) SORTUJEMY krawędzie pod względem 'kosztu' 2) Zaczynamy od najtańszej krawędzi (co daj nam dwa wierzchołki) 3) Wybieramy kolejną najtańszą krawędź (nie musi być połączona z już wybranymi wierzchołkami), o ile nie zamknie nam cyklu − wtedy daną krawędź omijamy powtarzamy (3) krok aż do połączenia wszystkich wierzchołków. Czyli: zaczynamy od najtańszych dróg i sukcesywnie je dodajemy do trasy, aż w końcu będziemy mieli wszystkie wierzchołki A. Jarnika: 1. Startujemy w dowolnym miejscu ... niech to będzie wierzchołek D. 2. Mamy krawędzie: DE, DB, DC (już są postortowane od najtanszej do najdroższej) .. wybieramy DE 3. Dodajemy krawędź EB. Więc mamy EB,DB,DC ... wybieramy EB. 4. Dodajemy krawędzie AB i BC (krawędź BD już jest). Więc mamy AB, BC, DB, DC ... wybieramy AB. 5. Dodajemy krawędź AC. Więc mamy AC, BC, DB, DC ... wybieramy AC co kończy pracę algorytmu A. Kruskala 1. Sortujemy krawędzie od najtańszej do najdroszej: AC, DE, AC, BC, BE, BD, CD 2. Wybieramy najtańszą: AB −−− mamy już wierzchołki a i b 3. Wybieramy najtańszą: DE −−− mamy już 4 wierzchołki a, b, d, e 4. Wybieramy najtańszą: AC −−− mamy już 5 wierzchołków a, b, c, d, e 5. Pomijamy najtańszą BC, ponieważ zamknie nam się cykl (a,b,c) 6. Wybieramy najtańszą: BE −−− mamy już 5 wierzchołków POŁĄCZONYCH co kończy pracę algorytmu Teraz widzisz różnicę w pracy tych algorytmów
6 sie 12:13
wredulus_pospolitus: Tak więc ... patrząc z podejścia informatycznego − kwestia kiedy sortujesz (i ile) wierzchołków. u Kruskała wszystkie krawędzie sortujesz na początku. u Jarnika sortujesz ograniczoną liczbę krawędzi, a w kolejnych krokach sukcesywnie 'dosortowujesz' pozostałe czy to ma jakiś wpływ na złożoność obliczeniową −−− nie mam pojęcia ... nie mój 'konik'.
6 sie 12:30
wredulus_pospolitus: Dodatkowa różnica pomiędzy tymi algorytmami jest taka, że u Kruskała 'wizja' ścieżki ścieżki może być widoczna dopiero na sam koniec podczas gdy u Jarnika widzimy w kolejnych etapach jak kolejne wierzchołki są dodawane do spójnej całości.
6 sie 12:34
:
6 sie 14:31
Szofer: Dziękuje. Bóg zapłać.
7 sie 19:35
Szofer: Jeszcze raz dzięki. W internetach jak patrzyłem to tak sobie było to wytłumaczone ale tutaj daje już do myślenia. Dziękuje.
7 sie 19:43
Szofer: Pytałem o te różnice pomiędzy tymi algorytmami w kontekście tego zadania: "Pewna firma zajmująca się transportem kolejowym prowadzi działalność w następujących miastach: Szczecin, Gdańsk, Poznań, Bydgoszcz, Łódź, Wrocław, Gorzów Wielkopolski, Opole. Poglądową mapę dostępnych tras kolejowych z dwukierunkowymi przelotami przedstawia rysunek poniżej https://zapodaj.net/plik-iwIWQaAHAN . Wyznacz najkrótszy możliwy czas(w minutach) transportu towarów ze Szczecina do Opola zakładając, że pociągi poruszają się ze stałą szybkością 190 km/h na wszystkich odcinkach tras i nie zatrzymują sie. Podaj również przebieg trasy tego transportu. Skorzystaj z tabeli(tabela jest tu https://zapodaj.net/plik-iwIWQaAHAN .)" Taki przelot trasy tych pociągów muszę zrobić tylko pomiędzy miastami, które wymienione są w zadaniu?
8 sie 16:57
. : Tak − ale ani jeden ani drugi algorytm nie jest właściwy dla tego zadania
8 sie 18:27
Szofer: Właśnie i myślałem jeszcze nad algorytmem djikstry?
8 sie 18:59
. : Zamiast myśleć nad algorytmem to byś policzył te 4 drogi i porównał która jest najlepsza
8 sie 19:07
Szofer: No tak, ale musi tu być użyty jakiś algorytm. Jak inaczej zrobić to zadanie.
8 sie 19:47
wredulus_pospolitus: to jedziesz tym djikstry (zmodyfikowanym)
8 sie 20:11
wredulus_pospolitus: Jak to jak 'inaczej' ... normalnie policzyć na łapkach Naprawdę już nic nie jesteś sam policzyć, o ile nie masz podanej procedury algorytmu (krok po kroku co robić) Jeżeli tak, to jak Ty sobie wyobrażasz programować cokolwiek?
8 sie 20:12
Szofer: Ale nie musisz się tak pieklić @wredulus. Staram się rozważyć wszystkie możliwe warianty. Może ta matematyka nie jest moją mocną stroną ale staram się jakoś nad tym pracować.
8 sie 22:13
wredulus_pospolitus: Szofer −−− dobrze jest znać algorytmy ... a raczej − kojarzyć że taki a taki jest i wiedzieć gdzie szukać informacji o nim. Jednak nie ma nic ważniejszego od umiejętności logicznego i analitycznego myślenia, rozłożenia problemu na 'czynniki pierwsze' i znalezienia sposobu na rozwiązanie danego problemu. Tak więc −−− zamiast pisać: "ale musi tu być użyty jakiś algorytm. Jak inaczej zrobić to zadanie" ... powinieneś pisać: "muszę się zastanowić jak można podejść do tego zadania". Nie wiem czy mnie rozumiesz −−− tu nie chodzi o to czy matematyka jest mocno czy słabą stroną (w tym zadaniu to akurat 'mało tej matematyki jest') tu chodzi oto czy jesteś w stanie 'kombinować' i podchodzisz do problemu z hasłem "no dobra ... zobaczmy co tutaj można zrobić" czy też zamykasz się i przeglądasz długą listę algorytmów i szukasz takiego który by w 100% pasował do danego zadania.
8 sie 22:28
Szofer: No to mój sposób na rozwiązanie tego zadania jest taki. Mianowicie. Mam podane miasta: Szczecin, Gdańsk, Poznań, Bydgoszcz, Łódź, Wrocław, Gorzów Wielkopolski, Opole. I jakbym rozwiązał to zadanie to zrobiłbym bym to tak: Mam wyznaczyć najkrótszą trasę ze Szczecina do Opola. No to zaczynam w punkcie startowym czyli w Szczecinie i sprawdzam połączenia pomiędzy miastami, które są podane w zadaniu. Czyli sprawdzam czy istnieje połączenie Szczecina, z którymś z podanych miast jeśli tak to wypisuje odległość pomiędzy tymi miastami i tak robie z każdym z miast. Następnie sprawdzam najkrótsze odległości i na tej podstawie tworze graf i wszystko ze sobą sumuje. Jak by było coś nie jasne to powiedz to doprecyzuje.
10 sie 17:49
Szofer: Chyba że idąc twoim tokiem rozumowania mogę wyliczy @. : to chodzi ci o to że patrząc na ten graf który tam jest mogę spojrzeć na poszczeglóne połączenia pomiędzy wymienionymi miastami i wszystko zsumować. Nie wiem czy o to ci chodziło pisząc: "Zamiast myśleć nad algorytmem to byś policzył te 4 drogi i porównał która jest najlepsza"
14 sie 17:56
wredulus_pospolitus: Tak jak pisałem −−− możesz skorzystać z algorytmu który podałeś ... do tego on jest. Albo zacznijmy od narysowania tego grafu prawidłowo 'w skali'
14 sie 19:32
Szofer: @wredulus __ pospolitus: pisząc " możesz skorzystać z algorytmu który podałeś" masz na myśli to: "patrząc na ten graf który tam jest mogę spojrzeć na poszczeglóne połączenia pomiędzy wymienionymi miastami i wszystko zsumować" czy to co napisałem 10.08?
14 sie 21:31
wredulus_pospolitus: chodzi mi o moją wypowiedź: to jedziesz tym djikstry (zmodyfikowanym)
14 sie 21:59
Szofer: Ok. A to co ja napisałem to można by wykorzystać do tego zadania czy nie? Tylko szczerze.
14 sie 22:28
Szofer: A co masz na myśli mówiąc że ten algorytm djisktry ma być zmodyfikowany. W jakim sensie?
16 sie 14:10
. : Szofer − mam pytanie, Ty to już studiowałeś czy się przyuczasz do materiału którego jeszcze nie miałeś?
16 sie 14:38
Szofer: Wykorzystywałem ten algorytm Djikstry, ale jak mam rozumieć "zmodyfikowany"? Rozwiązałem to zadanie ale nie wiem czy zgodnie z ideą "zmodyfikowany". Dlatego pytam.
16 sie 16:32
Szofer: No to o co chodzi z tym zmodyfikowanym algorytmem djisktry. Wytłumaczy mi to ktoś? Bo przerabiałem ten algorytm ale o zmodyfikowanym nie słyszałem przez co nie jestem pewien rozwiązania.
17 sie 20:15