Czy wiesz dlaczego w linii prostej jest dalej niż po łuku? Wyznaczanie odległości między dwiema równoległymi liniami Jaka jest najkrótsza odległość między dwoma punktami
Ścieżka wzdłuż linii przerywanej na obrazku jest krótsza niż ścieżka wzdłuż linii ciągłej. A teraz trochę więcej szczegółów na przykładzie szlaków morskich:
Jeśli płyniesz stałym kursem, to trajektoria statku wzdłuż powierzchnia ziemi będzie krzywą zwaną w matematyce logarytmicznyspirala.
W nawigacji nazywa się tę złożoną linię podwójnej krzywizny rododrom, co w tłumaczeniu z języka greckiego oznacza „ukośny bieg”.
Jednak najkrótszą odległość między dwoma punktami na kuli ziemskiej mierzy się wzdłuż łuku wielkiego koła.
Łuk koła wielkiego otrzymuje się jako ślad z przecięcia powierzchni ziemi z płaszczyzną przechodzącą przez środek ziemi, przyjmowaną jako kula.
W nawigacji nazywa się to wielkim kołem ortodromia, co w tłumaczeniu oznacza „bieg prosto”. Drugą cechą ortodromii jest to, że przecina ona południki pod różnymi kątami (ryc. 29).
Różnica odległości pomiędzy dwoma punktami na powierzchni Ziemi według loksodromy i ortodromy ma praktyczne znaczenie tylko podczas dużych przepraw oceanicznych.
W normalnych warunkach różnica ta jest pomijana i pływanie odbywa się po stałym kursie, tj. przez rododrom.
Aby wyprowadzić równanie, weźmy rodoksodrome (ryc. 30, A) dwa punkty A I W, odległość między nimi jest po prostu niewielka. Rysując przez nie południki i równoleżniki, otrzymujemy elementarny trójkąt sferyczny prostokątny ABC. W tym trójkącie kąt utworzony przez przecięcie południka i równoleżnika jest prosty i kąt PNAB równy kursowi statku K. Katet AC reprezentuje odcinek łuku południka i można go wyrazić
Gdzie R - promień Ziemi w postaci kuli;
Δφ - elementarny przyrost szerokości geograficznej (różnica szerokości geograficznej).
Noga NE reprezentuje równoległy segment łuku
gdzie r - promień równoległy;
Δλ - elementarna różnica długości geograficznej.
Z trójkąta OO 1 C można to znaleźć
Następnie w ostatecznej formie noga NE można wyrazić w ten sposób:
Biorąc elementarny trójkąt sferyczny ABC za mieszkanie napiszemy
Po redukcji R i zastąpienie elementarnych małych przyrostów współrzędnych nieskończenie małymi przyrostami, które będziemy mieli
Całkujmy otrzymane wyrażenie w zakresie od φ 1, λ 1 do φ 2, λ 2 zakładając, że wartość tgK jest stała:
Po prawej stronie mamy całkę tabelaryczną. Po podstawieniu jego wartości otrzymujemy równanie loksodromii na kuli
Analiza tego równania pozwala wyciągnąć następujące wnioski:
Przy kursach 0 i 180° loksodrome zamienia się w łuk koła wielkiego – południk;
Przy kursach 90 i 270° rododrom pokrywa się z równoleżnikiem;
Loksodrome przecina każdy równoleżnik tylko raz, ale każdy południk nieskończoną liczbę razy. te. spiralnie w kierunku bieguna, nie dociera do niego.
Żeglowanie stałym kursem, czyli po rododromie, choć nie jest to najkrótsza odległość pomiędzy dwoma punktami na Ziemi, zapewnia nawigatorowi znaczną wygodę.
Wymagania stawiane morskiej mapie nawigacyjnej można sformułować w oparciu o przewagę płynącą z żeglowania po rododromie i wyniki analizy jej równania w następujący sposób.
1. Loksodrome przecinające południki pod stałym kątem należy przedstawić jako linię prostą.
2. Projekcja mapy, używany do konstruowania map, musi być równokątny, tak aby znajdujące się na nim kursy, namiar i kąty odpowiadały ich znaczeniu w terenie.
3. Południki i równoleżniki, podobnie jak linie kursowe o kątach 0, 90, 180° i 270°, muszą być wzajemnie prostopadłymi liniami prostymi.
Najkrótsza odległość między dwoma danymi punktami na powierzchni Ziemi, rozumiana jako kula, to mniejszy z łuków koła wielkiego przechodzącego przez te punkty. Z wyjątkiem przypadku, gdy statek płynie wzdłuż południka lub równika, ortodroma przecina południki pod różnymi kątami. Dlatego statek podążający po takiej krzywiźnie musi stale zmieniać swój kurs. W praktyce wygodniej jest podążać kursem tworzącym stały kąt z południkami i zaznaczanym na mapie w rzucie Mercatora linią prostą – loksodromą. Jednak na dużych odległościach różnica w długości ortodromy i loksodromy osiąga znaczną wartość. Dlatego w takich przypadkach obliczana jest ortodroma i zaznaczane są na niej punkty pośrednie, pomiędzy którymi płyną wzdłuż loksodromy.
Projekcję kartograficzną spełniającą powyższe wymagania zaproponował holenderski kartograf Gerard Cramer (Mercator) w 1569 roku. Na cześć swojego twórcy projekcję nazwano Mercatorian
A kto chce dowiedzieć się jeszcze więcej? interesująca informacja Dowiedz się więcej Oryginał artykułu znajduje się na stronie internetowej InfoGlaz.rf Link do artykułu, z którego powstała ta kopia -
ODLEGŁOŚĆ, odległości, śr. 1. Przestrzeń oddzielająca dwa punkty, przerwa między czymś. Najkrótsza odległość między dwoma punktami w linii prostej. Mieszka dwa kilometry od nas. „Komendant pozwolił im podejść jak najbliżej... Słownik Uszakowa
dystans- rzeczownik, s., używany często Morfologia: (nie) co? dystanse, dlaczego? odległość, (widzisz) co? odległość, co? odległość, o co? o odległości; pl. Co? odległość, (nie) co? dystanse, co? odległości, (widzę) co? dystanse, co? odległości... Słownik wyjaśniający Dmitriewa
dystans- I; Poślubić Przestrzeń oddzielająca dwa punkty, dwa obiekty itp., odstęp między którymi, to l. Najkrótsza rzeka pomiędzy dwoma punktami. R. z domu do szkoły. Przejdź do pobliskiej rzeki. W odległości metra, na długość ramienia. Wiedz coś, poczuj coś. na… … słownik encyklopedyczny
dystans- I; Poślubić Zobacz też odległość a) Przestrzeń oddzielająca dwa punkty, dwa obiekty itp., odstęp między kim, niż l. Najkrótsza odległość między dwoma punktami. Odległość z domu do szkoły. Przejdź na bliską odległość... Słownik wielu wyrażeń
GEOMETRIA- dział matematyki badający właściwości różnych figur (punktów, linii, kątów, obiektów dwuwymiarowych i trójwymiarowych), ich rozmiary i względne położenie. Dla ułatwienia nauczania geometrię dzielimy na planimetrię i stereometrię. W… … Encyklopedia Colliera
Nawigacja*
Nawigacja- wydział nawigacji (patrz), który zawiera zestawienie metod określania pozycji statku na morzu za pomocą kompasu i dziennika (patrz). Określenie miejsca statku na morzu oznacza naniesienie na mapę punktu, w którym znajduje się statek ten moment usytuowany.… … Słownik encyklopedyczny F.A. Brockhausa i I.A. Efrona
COHEN- (Cohen) Hermann (1842 1918) Niemiecki filozof, założyciel i najwybitniejszy przedstawiciel marburskiej szkoły neokantyzmu. Główne dzieła: „Kantowska teoria doświadczenia” (1885), „Kantowe uzasadnienie etyki” (1877), „Kantowe uzasadnienie estetyki” (1889), „Logika... ...
Kanta Immanuela- Droga życiowa i twórczość Kanta Immanuel Kant urodził się w Królewcu (obecnie Kaliningrad) w Prusach Wschodnich w 1724 r. Jego ojciec był rymarzem, a matka gospodynią domową, sześcioro ich dzieci nie dożyło wieku dorosłego. Kant zawsze pamiętał swoich rodziców z... ... Filozofia Zachodu od jej początków do współczesności
FILOZOFIA KRYTYCZNA KANTA: NAUCZANIE ZDOLNOŚCI- (La philosophie critique de Kant: Doctrines des facultes, 1963) praca Deleuze'a. Charakteryzując metodę transcendentalną we wstępie, Deleuze zauważa, że Kant rozumie filozofię jako naukę o stosunku wszelkiej wiedzy do istotnych celów... ... Historia filozofii: encyklopedia
Zasada farmy- podstawowa zasada optyki geometrycznej (patrz Optyka geometryczna). Najprostszą formą f.p. jest stwierdzenie, że promień światła rozchodzi się zawsze w przestrzeni pomiędzy dwoma punktami po drodze, po której czas jego podróży jest krótszy niż... Duży Encyklopedia radziecka
(Geometria opisowa)(Geometria opisowa)
Wyznaczanie odległości pomiędzy dwiema równoległymi płaszczyznami
Wyznaczanie odległości pomiędzy dwiema równoległymi płaszczyznami w położeniu ogólnym 01| X Wygodnie jest sprowadzić to do problemu określenia odległości pomiędzy tymi samymi dwiema płaszczyznami, przekształconej na położenie projektorów. W tym przypadku odległość między płaszczyznami zostanie określona jako prostopadła między liniami...(Geometria opisowa)
Wyznaczanie odległości pomiędzy dwiema przecinającymi się liniami
Jeżeli chcemy wyznaczyć najkrótszą odległość pomiędzy dwiema przecinającymi się liniami prostymi, musimy dwukrotnie zmienić układy płaszczyzn rzutowania. Przy rozwiązywaniu tego problemu linia prosta Płyta CD (CXDX, C2D2) przedstawiony jako punkt C5 = D5(ryc. 198). Odległość od tego punktu do rzutu A5B5 równa się...(Geometria opisowa)
Kąt pomiędzy dwiema przecinającymi się liniami prostymi
Jest to kąt pomiędzy dwiema przecinającymi się liniami równoległymi do danych. Zatem to zadanie jest podobne do poprzedniego. Aby go rozwiązać, należy wziąć dowolny punkt i przeciągnąć przez niego dwie linie, równoległe do danych przecinających się linii, i korzystając z transformacji rzutów, określić pożądany kąt....(Podstawy geometrii wykreślnej. Krótki kurs i zbiór problemów.)
Wyznaczanie odległości pomiędzy dwiema równoległymi liniami
Problem rozwiązuje się metodą podwójnej zamiany płaszczyzn projekcyjnych. Na ostatnim etapie jedna z płaszczyzn projekcji musi być prostopadła do jednej z przecinających się linii. Następnie najkrótszą odległość między nimi wyznacza wielkość odcinka prostopadłego do drugiej linii przecięcia (ryc. 199)....(Geometria opisowa)
Po zaznaczeniu kredą dwóch punktów na tablicy nauczyciel stawia młodemu uczniowi zadanie: narysować najkrótszą drogę pomiędzy obydwoma punktami.
Uczeń po namyśle ostrożnie rysuje między nimi krętą linię.
- To najkrótsza droga! – dziwi się nauczyciel. -Kto cię tego nauczył?
- Mój tata. Jest taksówkarzem.
Rysunek naiwnego ucznia jest oczywiście anegdotyczny, ale czy nie uśmiechnąłbyś się, gdyby powiedziano Ci, że przerywany łuk na ryc. 1 - najkrótsza trasa z Przylądka Dobrej Nadziei na południowy kraniec Australii!
Jeszcze bardziej uderzające jest stwierdzenie: pokazane na ryc. 2 okrężna trasa z Japonii do Kanału Panamskiego jest krótsza niż linia prosta narysowana między nimi na tej samej mapie!
Ryż. 1. Włączone mapa morska Najkrótszą trasę z Przylądka Dobrej Nadziei na południowy kraniec Australii wyznacza nie linia prosta („loxodrome”), ale łuk („ortodroma”)
Wszystko to wygląda na żart, a przecież przed wami stoją bezsporne prawdy, dobrze znane kartografom.
Ryż. 2. Wydaje się niewiarygodne, że zakrzywiona ścieżka łącząca Jokohamę z Kanałem Panamskim na mapie morskiej jest krótsza niż linia prosta poprowadzona pomiędzy tymi samymi punktami
Aby wyjaśnić tę kwestię, będziemy musieli powiedzieć kilka słów o mapach w ogóle, a mapach morskich w szczególności. Przedstawienie na papierze części powierzchni Ziemi nie jest zadaniem łatwym, nawet w zasadzie, gdyż Ziemia jest kulą, a wiadomo, że żadna część powierzchni kulistej nie może zostać rozłożona na płaszczyźnie bez fałd i rozdarć. Nieuchronnie trzeba się pogodzić z nieuniknionymi zniekształceniami map. Wynaleziono wiele sposobów rysowania map, ale nie wszystkie mapy są wolne od wad: niektóre mają zniekształcenia takiego, inne innego rodzaju, ale nie ma map bez zniekształceń.
Żeglarze posługują się mapami sporządzonymi metodą starożytnego holenderskiego kartografa i matematyka z XVI wieku. Merkator. Ta metoda nazywa się „projekcją merkatorską”. Mapę morską łatwo rozpoznać po prostokątnej siatce: południki są na niej przedstawione w postaci szeregu równoległych linii prostych; okręgi szerokości geograficznej są również liniami prostymi, prostopadłymi do pierwszych (patrz ryc. 5).
Wyobraź sobie teraz, że musisz znaleźć najkrótszą drogę z jednego portu oceanicznego do drugiego, leżącą na tym samym równoleżniku. Na oceanie wszystkie ścieżki są dostępne, a podróżowanie tam najkrótszą ścieżką jest zawsze możliwe, jeśli wiesz, jak ona przebiega. W naszym przypadku naturalne jest, że najkrótsza droga przebiega wzdłuż równoleżnika, na którym leżą oba porty: w końcu na mapie jest to linia prosta, a cóż może być krótsza niż prosta ścieżka! Ale mylimy się: równoległa ścieżka wcale nie jest najkrótsza.
Rzeczywiście: na powierzchni kuli najkrótszą odległością między dwoma punktami jest łączący je łuk koła wielkiego. Ale krąg podobieństw - mały koło. Łuk dużego koła jest mniej zakrzywiony niż łuk dowolnego małego okręgu poprowadzonego przez te same dwa punkty: większy promień odpowiada mniejszej krzywiźnie. Rozciągnij nić na kuli ziemskiej pomiędzy naszymi dwoma punktami (por. ryc. 3); przekonasz się, że wcale nie będzie leżał równolegle. Napięta nić jest niepodważalnym wskaźnikiem najkrótsza droga, a jeśli nie pokrywa się z równoleżnikiem na kuli ziemskiej, to na mapie morskiej najkrótsza droga nie jest oznaczona linią prostą: pamiętaj, że okręgi równoleżników są przedstawiane na takiej mapie jako linie proste, ale każda linia, która tak nie pokrywa się z linią prostą krzywa .
Ryż. 3. Prosty sposób na znalezienie naprawdę najkrótszej ścieżki pomiędzy dwoma punktami: trzeba przeciągnąć nitkę na globusie pomiędzy tymi punktami
Po tym, co zostało powiedziane, staje się jasne, dlaczego najkrótsza droga na mapie morskiej jest przedstawiana nie jako linia prosta, ale jako linia zakrzywiona.
Mówią, że wybierając kierunek dla Nikołajewskiej (obecnie Oktyabrskiej) kolej żelazna Dyskusje na temat tego, jaką drogę wybrać, trwały w nieskończoność. Spór położyła kres interwencja cara Mikołaja I, który rozwiązał problem dosłownie „od ręki”: połączył linią Petersburg z Moskwą. Gdyby zrobiono to na mapie Mercatora, rezultat byłby żenującą niespodzianką: zamiast prostej drogi droga okazałaby się kręta.
Każdy, kto nie stroni od obliczeń, może za pomocą prostych obliczeń upewnić się, że ścieżka, która wydaje nam się krzywa na mapie, jest w rzeczywistości krótsza niż ta, którą jesteśmy gotowi uznać za prostą. Niech nasze dwa porty leżą na 60. równoleżniku i dzieli je odległość 60°. (To, czy takie dwa porty rzeczywiście istnieją, jest oczywiście nieistotne w obliczeniach).
Ryż. 4. Obliczanie odległości pomiędzy punktami A i B na kuli po łuku równoległym i po łuku wielkiego koła
Na ryc. 4 punkty O - Centrum glob, AB –łuk koła szerokości geograficznej, na którym leżą porty A i B; V jest 60°. Środek okręgu szerokości geograficznej znajduje się w punkcie Z Wyobraźmy sobie to od środka O kula ziemska przebiega przez te same porty łukiem wielkiego koła: jego promieniem OB = OA = R; przejdzie blisko narysowanego łuku AB, ale nie będzie się z tym pokrywać.
Obliczmy długość każdego łuku. Od punktów A I W leżą na 60° szerokości geograficznej, następnie promienie OA I OB wynieść system operacyjny(oś kuli ziemskiej) pod kątem 30°. W trójkącie prostokątnym ASO noga AC (=r), leży naprzeciw kąta 30°, równego połowie przeciwprostokątnej Spółka jawna;
Oznacza, r=R/2 Długość łuku AB stanowi jedną szóstą długości koła o szerokości geograficznej, a ponieważ okrąg ten ma połowę długości dużego koła (odpowiadającą połowie promienia), to długość łuku małego koła
Aby teraz wyznaczyć długość łuku koła wielkiego narysowanego pomiędzy tymi samymi punktami (tj. najkrótszą drogę między nimi), musimy poznać wielkość kąta AOB. Akord JAK, oparty na łuku 60° (małego koła), jest bokiem foremnego sześciokąta wpisanego w to samo małe kółko; Dlatego AB = r=R/2
Po narysowaniu linii prostej ODłączący centrum O kula ziemska ze środkiem D akordy AB, otrzymamy trójkąt prostokątny ODA, gdzie jest kąt D - prosty:
DA= 1/2 AB i OA = R.
sinAOD=AD: AO=R/4:R=0,25
Stąd znajdujemy (z tabel):
=14°28",5
i dlatego
= 28°57".
Teraz nie jest trudno znaleźć wymaganą długość najkrótszej ścieżki w kilometrach. Obliczenia można uprościć, jeśli pamiętamy, że długość jednej minuty koła wielkiego globu wynosi
Dowiadujemy się, że droga po okręgu równoleżnikowym, przedstawiona na mapie morskiej linią prostą, wynosi 3333 km, a droga po kole wielkim – po krzywej na mapie – ma długość 3213 km, czyli jest o 120 km krótsza.
Uzbrojeni w nić i mając pod ręką globus, z łatwością sprawdzicie poprawność naszych rysunków i przekonacie się, czy łuki wielkich kół rzeczywiście leżą tak, jak pokazano na rysunkach. Pokazane na ryc. 1 rzekomo „prosta” trasa morska z Afryki do Australii ma długość 6020 mil, a „krzywa” 5450 mil, czyli krótsza o 570 mil, czyli 1050 km. „Bezpośrednia” trasa lotnicza z Londynu do Szanghaju na mapie morskiej przecina Morze Kaspijskie, podczas gdy tak naprawdę najkrótsza trasa biegnie na północ od Sankt Petersburga. Jasne jest, jaką rolę odgrywają te kwestie w oszczędzaniu czasu i paliwa.
Jeśli w dobie żeglugi nie zawsze ceniono czas – to „czasu” nie uważano jeszcze za „pieniądz” – to wraz z pojawieniem się statków parowych za każdą tonę węgla nadmiernie zużytą trzeba płacić. Dlatego obecnie statki prowadzone są naprawdę najkrótszą trasą, często wykorzystując mapy wykonane nie w rzucie Mercatora, ale w tzw. rzucie „centralnym”: na tych mapach łuki wielkich kół są przedstawiane jako linie proste.
Dlaczego wcześniejsi nawigatorzy korzystali z takich zwodniczych map i wybierali niekorzystne trasy? Błędem jest sądzić, że w dawnych czasach nie znano obecnie wskazanej cechy map morskich. Sprawę tłumaczy się oczywiście nie tym, ale faktem, że mapy sporządzone metodą Mercatora, oprócz niedogodności, mają także bardzo cenne dla żeglarzy korzyści. Taka mapa, po pierwsze, przedstawia poszczególne małe części powierzchni ziemi bez zniekształceń, zachowując kąty konturu. Nie zaprzecza temu fakt, że wraz z odległością od równika wszystkie kontury zauważalnie się rozciągają. Na dużych szerokościach geograficznych rozciągnięcie jest tak duże, że mapa morska daje osobie niezaznajomionej z jej cechami całkowicie fałszywe wyobrażenie o prawdziwej wielkości kontynentów: Grenlandia wydaje się tej samej wielkości co Afryka, Alaska jest większa niż Australia, chociaż Grenlandia jest 15 razy mniejsza od Afryki, a Alaska wraz z Grenlandią jest o połowę mniejsza od Australii. Jednak marynarz dobrze zaznajomiony z tymi cechami mapy nie może dać się przez nie zwieść. Znosi je, zwłaszcza, że na małych obszarach mapa morza oddaje dokładne podobieństwo do natury (ryc. 5).
Jednak mapa morska znacznie ułatwia rozwiązywanie problemów praktycznych nawigacyjnych. Jest to jedyny rodzaj mapy, na którym droga statku poruszającego się stałym kursem jest przedstawiona w postaci linii prostej. Chodzenie „niezmiennym kursem” oznacza konsekwentne trzymanie się jednego kierunku, jednego konkretnego „punktu odniesienia”, czyli chodzenie w taki sposób, aby wszystkie południki przecinały się pod równym kątem. Ale tę ścieżkę („loksodrom”) można przedstawić jako linię prostą tylko na mapie, na której wszystkie południki są liniami prostymi równoległymi do siebie. A ponieważ na globusie okręgi szerokości geograficznej przecinają się z południkami pod kątem prostym, to na takiej mapie okręgi szerokości geograficznej powinny być liniami prostymi prostopadłymi do linii południków. Krótko mówiąc, dochodzimy do dokładnie siatki współrzędnych, która jest cechą charakterystyczną mapy morskiej.
Ryż. 5. Mapa globu morska lub Mercator. Mapy takie znacznie wyolbrzymiają wielkość konturów odległych od równika. Co na przykład jest większe: Grenlandia czy Australia? (Odpowiedź w tekście)
Upodobanie żeglarzy do map Mercatora jest teraz zrozumiałe. Chcąc wyznaczyć kurs, jakim należy podążać, udając się do wyznaczonego portu, nawigator przykłada linijkę do końcowych punktów trasy i mierzy kąt, jaki tworzy ona z południkami. Trzymając się cały czas na otwartym morzu w tym kierunku, nawigator dokładnie doprowadzi statek do celu. Widać, że „loksodrom” nie jest wprawdzie najkrótszą i nie najtańszą, ale pod pewnymi względami bardzo dogodną trasą dla żeglarza. Aby dotrzeć np. z Przylądka Dobrej Nadziei na południowy kraniec Australii (patrz rys. 1), należy zawsze trzymać się tego samego kursu S 87°.50”. Tymczasem doprowadzić statek do tego samego finału punkt najkrótsza trasa(wg „ortodromy”), jak widać na rysunku, należy w sposób ciągły zmieniać kurs statku: rozpocząć od kursu S 42°.50”, a zakończyć kursem N 53°.50 (w tym przypadku najkrótsza ścieżka nie jest nawet możliwa - opiera się ona na ścianie lodowej Antarktyki).
Obie ścieżki - wzdłuż „loksodromy” i wzdłuż „ortodromy” - pokrywają się tylko wtedy, gdy ścieżka wzdłuż wielkiego koła jest przedstawiona na mapie morskiej jako linia prosta: podczas poruszania się wzdłuż równika lub wzdłuż południka. We wszystkich pozostałych przypadkach ścieżki te są inne.
Algorytm Dijkstry to algorytm grafowy wynaleziony przez holenderskiego naukowca Edsgera Dijkstrę w 1959 roku. Znajduje najkrótszą ścieżkę z jednego z wierzchołków grafu do wszystkich pozostałych. Algorytm działa tylko dla grafów bez krawędzi o ujemnej wadze.
Rozważmy wykonanie algorytmu na przykładzie wykresu pokazanego na rysunku.
Załóżmy, że musisz znaleźć najkrótszą odległość od pierwszego wierzchołka do wszystkich pozostałych.
Okręgi oznaczają wierzchołki, linie wskazują ścieżki pomiędzy nimi (krawędzie grafu). Numery wierzchołków są wskazane w okręgach, a ich „cena” jest wskazana nad krawędziami - długość ścieżki. Przy każdym wierzchołku znajduje się czerwony znacznik - długość najkrótszej ścieżki do tego wierzchołka od wierzchołka 1.
Pierwszy krok. Dla naszego przykładu spójrzmy na krok algorytmu Dijkstry. Wierzchołek 1 ma etykietę minimum, a jego sąsiadami są wierzchołki 2, 3 i 6.
Pierwszym sąsiadem wierzchołka 1 jest wierzchołek 2, ponieważ długość ścieżki do niego jest minimalna. Długość ścieżki do niego przez wierzchołek 1 jest równa sumie wartości etykiety wierzchołka 1 i długości krawędzi przechodzącej od 1 do 2, czyli 0 + 7 = 7. Jest to mniej niż bieżąca etykieta wierzchołka 2, nieskończoność, więc nowa etykieta to 2. wierzchołek to 7.
Podobną operację wykonujemy z dwoma innymi sąsiadami pierwszego wierzchołka - trzecim i szóstym.
Sprawdzani są wszyscy sąsiedzi wierzchołka 1. Obecna minimalna odległość do wierzchołka 1 jest uważana za ostateczną i nie można jej zmienić (że rzeczywiście tak jest, po raz pierwszy udowodnił E. Dijkstra). Przekreślmy to na wykresie, aby zaznaczyć, że ten wierzchołek został odwiedzony.
Drugi krok. Krok algorytmu jest powtarzany. Ponownie znajdujemy „najbliższy” z nieodwiedzonych wierzchołków. To jest wierzchołek 2 z etykietą 7.
Ponownie próbujemy zredukować etykiety sąsiadów wybranego wierzchołka, próbując przejść do nich przez drugi wierzchołek. Sąsiadami wierzchołka 2 są wierzchołki 1, 3 i 4.
Pierwszym (w kolejności) sąsiadem wierzchołka 2 jest wierzchołek 1. Jednak został on już odwiedzony, więc z pierwszym wierzchołkiem nie robimy nic.
Następnym sąsiadem wierzchołka 2 jest wierzchołek 3, ponieważ ma on minimalną etykietę wierzchołków oznaczonych jako nieodwiedzone. Jeśli przejdziesz do tego przez 2, długość takiej ścieżki będzie równa 17 (7 + 10 = 17). Ale bieżąca etykieta trzeciego wierzchołka to 9, czyli mniej niż 17, więc etykieta się nie zmienia.
Kolejnym sąsiadem wierzchołka 2 jest wierzchołek 4. Jeżeli przejdziemy do niego przez wierzchołek 2, to długość takiej ścieżki będzie równa sumie najkrótszej odległości do wierzchołka 2 i odległości pomiędzy wierzchołkami 2 i 4, czyli , 22 (7 + 15 = 22) . Od 22<, устанавливаем метку вершины 4 равной 22.
Obejrzani zostali wszyscy sąsiedzi wierzchołka 2, zamrażamy odległość do niego i oznaczamy jako odwiedzoną.
Trzeci krok. Powtarzamy krok algorytmu, wybierając wierzchołek 3. Po „przetworzeniu” go otrzymujemy następujące wyniki:
Następne kroki. Powtarzamy krok algorytmu dla pozostałych wierzchołków. Będą to wierzchołki 6, 4 i 5, zgodnie z kolejnością.
Zakończenie wykonywania algorytmu. Algorytm kończy się, gdy nie można przetworzyć więcej wierzchołków. W tym przykładzie wszystkie wierzchołki są przekreślone, jednak błędem jest zakładać, że tak będzie w każdym przykładzie - niektóre wierzchołki mogą pozostać nieprzekreślone, jeśli nie można do nich dotrzeć, czyli jeśli graf jest rozłączony. Wynik działania algorytmu widoczny jest na ostatnim rysunku: najkrótsza droga od wierzchołka 1 do 2 to 7, do 3 to 9, do 4 to 20, do 5 to 20, do 6 to 11.
Implementacja algorytmu w różnych językach programowania:
C++
#include "stdafx.h" #includePascal
program DijkstraAlgorithm; używa crt; stała V=6; inf=100000; wpisz wektor=tablica liczb całkowitych; var początek: liczba całkowita; const GR: tablica liczb całkowitych=((0, 1, 4, 0, 2, 0), (0, 0, 0, 9, 0, 0), (4, 0, 0, 7, 0, 0), (0, 9, 7, 0, 0, 2), (0, 0, 0, 0, 0, 8), (0, 0, 0, 0, 0, 0)); (algorytm Dijkstry) procedura Dijkstra(GR: tablica liczb całkowitych; st: liczba całkowita); var liczba, indeks, i, u, m, min: liczba całkowita; odległość: wektor; odwiedzone: tablica wartości logicznych; rozpocznij m:=st; dla i:=1 do V rozpocznij odległość[i]:=inf; odwiedziliśmy[i]:=false; koniec; odległość:=0; dla count:=1 do V-1 rozpocznij min:=inf; dla i:=1 do V wykonaj if (nieodwiedzony[i]) i (odległość[i]<=min) then begin min:=distance[i]; index:=i; end; u:=index; visited[u]:=true; for i:=1 to V do if (not visited[i]) and (GR<>0) i (odległość[u]<>inf) i (odległość[u]+GRJawa
importuj java.io.BufferedReader; importuj wyjątek java.io.IO; importuj java.io.InputStreamReader; importuj java.io.PrintWriter; importuj java.util.ArrayList; importuj java.util.Arrays; importuj java.util.StringTokenizer; klasa publiczna Rozwiązanie ( private static int INF = Integer.MAX_VALUE / 2; private int n; //liczba wierzchołków w dwuznaku private int m; //liczba łuków w dwuznaku private ArrayListInna opcja:
Importuj Java.io.*; importuj java.util.*; publiczna klasa Dijkstra ( prywatna statyczna finalna Graph.Edge GRAPH = ( new Graph.Edge("a", "b", 7), new Graph.Edge("a", "c", 9), new Graph.Edge( "a", "f", 14), nowy Graph.Edge("b", "c", 10), nowy Graph.Edge("b", "d", 15), nowy Graph.Edge("c ", "d", 11), nowy Graph.Edge("c", "f", 2), nowy Graph.Edge("d", "e", 6), nowy Graph.Edge("e", "f", 9), ); prywatny statyczny końcowy String START = "a"; prywatny statyczny końcowy String END = "e"; publiczny statyczny void main(String args) ( Wykres g = nowy wykres(GRAPH); g.dijkstra (START); g.printPath(END); //g.printAllPaths(); ) ) class Graph (prywatna mapa końcowa