Algorytm Dijkstry
Zastanów się, na podstawie czego podejmiesz decyzję, jaką drogą dojść na miejsce spotkania z kolegą lub koleżanką czy do kina. Być może jednym z kryteriów będzie to, by odcinek do przejścia był jak najkrótszy. O ile łatwo zaplanować taką drogę, gdy odległość jest niewielka, o tyle sytuacja się komplikuje, gdy w taki sposób zaplanować masz podróż z miasta do miasta.
Problem, który się pojawia, w algorytmice znany jest jako problem szukania najkrótszej ścieżki. Należ do jednych z najbardziej znanych problemów grafowych. Istnieje konkretny algorytm, który może zostać wykorzystany do jego rozwiązania. Omawiamy go w tym e‑materiale – to algorytm Dijkstry.
Implementację tego algorytmu w wybranych językach programowania znajdziesz w e‑materiałach:
Algorytm Dijkstry w języku C++Algorytm Dijkstry w języku C++,
Algorytm Dijkstry w języku JavaAlgorytm Dijkstry w języku Java,
Algorytm Dijkstry w języku PythonAlgorytm Dijkstry w języku Python.
Zastosujesz podejście zachłanne w wyznaczaniu najkrótszych ścieżek.
Przeanalizujesz krok po kroku przykład zastosowania algorytmu Dijkstry dla grafu ważonego.
Wyjaśnisz, dlaczego w algorytmie Dijkstry decyzje lokalnie optymalne prowadzą nas do globalnie optymalnego rezultatu.