Dijkstrův algoritmus
1. Popis standardní metody algoritmu
Dijkstrův algoritmus slouží k vyhledání nejkratší cesty
z iniciálního uzlu do všech ostatních uzlů grafu.
Pracujeme s váženým neorientovaným grafem
, kde
je množina vrcholů,
je množina neorientovaných hran a
je
ohodnocení hran. Na počátku algoritmu vložíme do návěští iniciálního
uzlu
hodnotu "
",
do návěští ostatních uzlů
,
jejichž vzdálenost od
zatím neznáme, zapíšeme "
".
Ukázku takového grafu nabízíme na Obrázku 1.
Příklad 1: Neorientovaný graf 
Opakovaně provádíme následující tři kroky, dokud nezpracujeme všechny vrcholy:
- Mezi nezpracovanými vrcholy najdeme uzel "
" s nejmenší vzdáleností
od iniciálního
.
- Pro každou hranu
vedoucí z uzlu "
" do nezpracovaného vrcholu "
" provedeme následující:
- je-li
, změníme aktuální vzdálenost uzlu
od iniciálního uzlu na
,
- v opačném případě ponecháme návěští uzlu
beze změny.
- je-li
- Označíme uzel
jako zpracovaný.
Při aplikaci Dijkstrova algoritmu měníme pouze návěští vrcholů. Aktualizujeme jejich aktuální vzdálenost od iniciálního uzlu, nebo je označujeme za zpracované. Pro názornost uvádíme i konkrétní příklad neorientovaného grafu a Animaci 1 naznačující výpočet nejkratších vzdáleností od iniciálního uzlu pomocí Dijkstrova algoritmu.
Příklad 2: Neorientovaný graf 
-
- Počátek algoritmu
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
Nezobrazovat tento popisek