Kalkulator Najkrótszej Ścieżki Dijkstry
Znajdź najkrótszą ścieżkę między węzłami w grafie ważonym przy użyciu algorytmu Dijkstry. Zawiera interaktywną wizualizację grafu, śledzenie kolejki priorytetowej krok po kroku oraz wyświetlanie drzewa najkrótszych ścieżek.
Blokada reklam uniemożliwia wyświetlanie reklam
MiniWebtool jest darmowy dzięki reklamom. Jeśli to narzędzie Ci pomogło, wesprzyj nas przez Premium (bez reklam + szybciej) albo dodaj MiniWebtool.com do wyjątków i odśwież stronę.
- Albo przejdź na Premium (bez reklam)
- Zezwól na reklamy dla MiniWebtool.com, potem odśwież
O Kalkulator Najkrótszej Ścieżki Dijkstry
Witaj w Kalkulatorze Najkrótszej Ścieżki Dijkstry, interaktywnym narzędziu do znajdowania najkrótszych ścieżek w grafach ważonych przy użyciu algorytmu Dijkstry. Niezależnie od tego, czy jesteś studentem informatyki uczącym się teorii grafów, profesjonalistą zajmującym się sieciami analizującym protokoły routingu, czy programistą wdrażającym wyznaczanie ścieżek, ten kalkulator zapewnia wizualną eksplorację krok po kroku jednego z najbardziej fundamentalnych algorytmów w informatyce.
Co to jest algorytm Dijkstry?
Algorytm Dijkstry, opracowany przez holenderskiego informatyka Edsgera W. Dijkstrę w 1956 roku, jest algorytmem przeszukiwania grafu, który rozwiązuje problem najkrótszej ścieżki z jednego źródła dla grafu ważonego o nieujemnych wagach krawędzi. Dla danego węzła źródłowego znajduje on najkrótszą ścieżkę z tego węzła do każdego innego węzła w grafie.
Algorytm działa poprzez utrzymywanie zbioru nieodwiedzonych węzłów i wielokrotne wybieranie nieodwiedzonego węzła o najmniejszej tymczasowej odległości (strategia zachłanna). To właśnie sprawia, że jest on zarówno elegancki, jak i wydajny — gdy węzeł zostanie „odwiedzony”, jego najkrótsza odległość jest gwarantowana jako ostateczna.
Pseudokod Algorytmu
dla każdego węzła v w Graf:
dist[v] ← ∞
prev[v] ← niezdefiniowane
dist[źródło] ← 0
Q ← kolejka priorytetowa wszystkich węzłów
dopóki Q nie jest pusta:
u ← węzeł w Q o minimalnym dist[u]
usuń u z Q
dla każdego sąsiada v węzła u będącego w Q:
alt ← dist[u] + waga(u, v)
jeśli alt < dist[v]:
dist[v] ← alt // relaksacja
prev[v] ← u
zwróć dist[], prev[]
Podstawowa Formuła
Gdzie:
- d[u] = aktualna najkrótsza znana odległość ze źródła do węzła u
- w(u, v) = waga krawędzi z u do v
- d[v] = aktualna najkrótsza znana odległość ze źródła do węzła v
Jak korzystać z tego kalkulatora
- Zdefiniuj krawędzie grafu: Wprowadź krawędzie w formacie
źródło, cel, waga, po jednej w linii. Każda linia reprezentuje połączenie między dwoma węzłami. - Wybierz typ grafu: Wybierz „Nieskierowany” dla krawędzi dwukierunkowych (jak drogi) lub „Skierowany” dla krawędzi jednokierunkowych (jak trasy lotnicze lub linki internetowe).
- Ustaw węzeł źródłowy: Wprowadź węzeł początkowy, od którego zostaną obliczone wszystkie najkrótsze ścieżki.
- Znajdź najkrótsze ścieżki: Kliknij przycisk, aby uruchomić algorytm Dijkstry. Eksploruj interaktywną wizualizację grafu, tabelę odległości i śledzenie krok po kroku.
- Przejdź przez kroki: Użyj przycisków Dalej/Wstecz, aby zobaczyć wykonanie algorytmu krok po kroku, z podświetleniem zaktualizowanych węzłów i krawędzi w czasie rzeczywistym.
Zrozumienie wyników
Tabela odległości
Pokazuje najkrótszą odległość od źródła do każdego węzła wraz z pełną ścieżką. Węzły oznaczone symbolem ∞ są nieosiągalne ze źródła.
Wizualizacja grafu
Interaktywne płótno (canvas) pokazuje Twój graf z węzłami i krawędziami oznaczonymi kolorami:
- Niebieski węzeł = Węzeł źródłowy
- Zielone węzły = Odwiedzone (ustalona odległość)
- Pomarańczowy węzeł = Aktualnie przetwarzany
- Szare węzły = Jeszcze nieodwiedzone
- Zielone krawędzie = Drzewo najkrótszych ścieżek
Śledzenie krok po kroku
Pokazuje wykonanie algorytmu, w tym pobieranie z kolejki priorytetowej, relaksacje krawędzi i aktualizacje odległości na każdym etapie. Jest to nieocenione przy nauce działania algorytmu.
Złożoność czasowa
Wydajność algorytmu Dijkstry zależy od struktury danych użytej dla kolejki priorytetowej:
| Kolejka Priorytetowa | Złożoność Czasowa | Najlepsza dla |
|---|---|---|
| Kopiec Binarny | \( O((V + E) \log V) \) | Ogólnego przeznaczenia, grafy rzadkie |
| Kopiec Fibonacciego | \( O(V \log V + E) \) | Grafy gęste (teoretycznie) |
| Tablica (bez kopca) | \( O(V^2) \) | Bardzo gęste grafy, małe V |
Gdzie V to liczba wierzchołków (węzłów), a E to liczba krawędzi. Ten kalkulator korzysta z implementacji opartej na kopcu binarnym.
Grafy skierowane vs. nieskierowane
- Graf nieskierowany: Krawędź między A i B oznacza, że możesz podróżować zarówno A→B, jak i B→A. Przykłady: sieci drogowe, sieci znajomości, obwody elektryczne.
- Graf skierowany: Krawędź z A do B pozwala tylko na podróż A→B, niekoniecznie B→A. Przykłady: hiperłącza internetowe, obserwujący na Twitterze, trasy lotnicze, przepływ rzeki.
Ograniczenia algorytmu Dijkstry
- Brak ujemnych wag: Algorytm Dijkstry daje błędne wyniki przy ujemnych wagach krawędzi. Użyj algorytmu Bellmana-Forda dla grafów z ujemnymi wagami (ale bez ujemnych cykli).
- Jedno źródło: Znajduje najkrótsze ścieżki z jednego źródła. Dla ścieżek między wszystkimi parami węzłów użyj algorytmu Floyda-Warshalla lub uruchom Dijkstrę z każdego węzła.
- Brak ujemnych cykli: Ujemne cykle sprawiają, że najkrótsze ścieżki są niezdefiniowane (zawsze można przejść cykl, aby nieskończenie zmniejszać odległość).
Rzeczywiste zastosowania
Nawigacja GPS
Usługi mapowania używają wariantów algorytmu Dijkstry (często z heurystyką A*), aby znaleźć najszybszą trasę między dwiema lokalizacjami. Skrzyżowania dróg to węzły, a odcinki dróg to ważone krawędzie (według czasu lub odległości).
Routing sieciowy
Protokoły routingu internetowego, takie jak OSPF (Open Shortest Path First) i IS-IS, używają algorytmu Dijkstry do obliczania najkrótszych ścieżek w topologiach sieciowych. Każdy router buduje drzewo najkrótszych ścieżek, aby określić przekazywanie pakietów.
Analiza sieci społecznościowych
Znajdowanie najkrótszej ścieżki połączenia między użytkownikami (stopnie oddalenia), obliczanie miar centralności i identyfikacja wpływowych węzłów w sieci.
Tworzenie gier
Wyznaczanie ścieżek NPC w grach wideo wykorzystuje algorytm Dijkstry lub A* (który rozszerza Dijkstrę o heurystyki) do nawigacji po mapach gier i znajdowania optymalnych ścieżek ruchu.
Łańcuch dostaw i logistyka
Optymalizacja tras dostaw, ścieżek z magazynu do sklepu oraz multimodalnych sieci transportowych, w których różne metody transportu mają różne koszty.
Często zadawane pytania
Co to jest algorytm Dijkstry?
Algorytm Dijkstry to algorytm wyszukiwania w grafie, który znajduje najkrótszą ścieżkę z węzła źródłowego do wszystkich innych węzłów w grafie ważonym o nieujemnych wagach krawędzi. Wykorzystuje strategię zachłanną z kolejką priorytetową (min-heap). Złożoność czasowa wynosi O((V + E) log V) przy użyciu kopca binarnego.
Czy algorytm Dijkstry obsługuje ujemne wagi krawędzi?
Nie, algorytm Dijkstry wymaga nieujemnych wag krawędzi. Ujemne wagi mogą prowadzić do błędnych wyników, ponieważ algorytm zakłada, że raz ustalona odległość do odwiedzonego węzła jest minimalna. Dla ujemnych wag użyj algorytmu Bellmana-Forda.
Jaka jest różnica między grafem skierowanym a nieskierowanym?
W grafie skierowanym krawędzie mają kierunek (jednokierunkowe), podczas gdy w nieskierowanym działają w obie strony (dwukierunkowe). Sieci drogowe są zazwyczaj nieskierowane, a linki www skierowane.
Co to jest relaksacja krawędzi w algorytmie Dijkstry?
To proces sprawdzania, czy przejście przez nowy węzeł u do sąsiada v skraca aktualnie znaną odległość do v. Jeśli tak, odległość do v jest aktualizowana na mniejszą wartość.
Co to jest drzewo najkrótszych ścieżek?
Jest to podgraf pokazujący najkrótsze drogi ze źródła do wszystkich osiągalnych węzłów. Każdy węzeł ma w nim dokładnie jednego „rodzica”, który prowadzi do niego najkrótszą trasą.
Jakie są rzeczywiste zastosowania algorytmu Dijkstry?
Stosuje się go w GPS, routingu internetowym (OSPF), logistyce, planowaniu tras w grach komputerowych oraz analizie połączeń w sieciach społecznościowych.
Dodatkowe zasoby
Cytuj ten materiał, stronę lub narzędzie w następujący sposób:
"Kalkulator Najkrótszej Ścieżki Dijkstry" na https://MiniWebtool.com/pl// z MiniWebtool, https://MiniWebtool.com/
przez zespół miniwebtool. Aktualizacja: 19 lutego 2026
Możesz także wypróbować nasz AI Rozwiązywacz Matematyczny GPT, aby rozwiązywać swoje problemy matematyczne poprzez pytania i odpowiedzi w języku naturalnym.