A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Dijkstrov algoritmus je jedným zo základných algoritmov teórie grafov. Jeho primárnym využitím je hľadanie najkratšej cesty v hranovo-ohodnotenom orientovanom grafe G = (V, H, c). Tento graf pozostáva z množiny vrcholov V, množiny orientovaných hrán H a funkcie c, ktorá zobrazuje množinu hrán do množiny reálnych čísel. Teda pre ňu platí H → R. Ďalším predpokladom je aby c(h) ≥ 0, pre všetky hrany h z množiny H. Jeho autorom je holandský matematik E. W. Dijkstra a typovo ide o algoritmus najkratšej cesty z jedného vrcholu (počiatok, označme ho aj s) do ostatných, najčastejšie však do jedného konkrétneho (cieľ d).
Popis samotného algoritmu
Pre každý vrchol grafu G udržiava algoritmus štyri symboly. Prvým je t(v), ktorý zaznamenáva dĺžku doteraz najkratšej cestu z počiatku do vrcholu v. Druhým je x(v), ktorý si pamätá predposledný vrchol cesty s – v, teda vrchol pomocou ktorého sa dostaneme do vrcholu v „najrýchlejšie“. Tento symbol nie je priamo potrebným pre beh algoritmu, no má svoje využitie pri spätnej konštrukcii cesty z počiatku do cieľa (prípadne hociktorého iného vrcholu množiny V). Ďalším symbolom je dvojstavová premenná p(v) (pozri údajový typ), určujúca či je doteraz najkratšia nájdená cesta t konečná alebo ňou nie je. Poslednou potrebnou charakteristikou bude riadiaci vrchol r.
Pred samotným behom je potrebné inicializovať už uvedené symboly nasledovne:
- t(v) = ∞, pre všetky v ≠ s; t(s) = 0,
- x(v) = 0, pre všetky v z V,
- p(v) = false, pre všetky v ≠ s; p(s) = true,
- r = s, teda za riadiaci vrchol zvolíme počiatok.
Samotný algoritmus pozostáva z dvoch opakujúcich sa krokov:
- Overíme, či sa d, teda cieľ, nestal riadiacim vrcholom . V takom prípade (r = d) algoritmus končí a jeho výsledkom sú s, ..., x(x(x(d))), x(x(d)), x(d), d (čiže najkratšia s – d cesta) a t(d) (jej dĺžka). Ak však podmienka, že riadiacim vrcholom je d, neplatí, vykonáme nasledujúci úkon: pre všetky hrany tvaru (r, i) z množiny H, pre ktoré platí, že p(i) = false a t(i) > t(r) + c(r, i) upravíme symbol t(i) na t(r) + c(r, i) a značku x(i) nastavíme na r.
- Nájdeme spomedzi všetkých dočasne označených vrcholov v (platí pre ne p(v) = false) taký, ktorého t(v) je najmenšie. Tento vrchol prehlásime za nový riadiaci a jeho značku p(v) nastavíme na true, čo bude znamenať, že t(v) skutočne označuje najkratšiu cestu z vrcholu s do vrcholu v. Ak by nastala situácia, že vrcholov s minimálnym t je viac, môžeme vybrať ľubovoľný z nich. Ďalej pokračujeme vo výpočte prvým krokom.
Ak na konci výpočtu obsahuje t(d) = ∞ (a x(d) = 0), tak je zrejmé, že spojenie s – d neexistuje.
Výpočtová zložitosť
Vo všetkých behoch prvého kroku sa vykoná maximálne |H| = m operácií, keďže každú hranu použijeme nanajvýš raz. V druhom kroku stačí prezrieť maximálne |V| = n vrcholov. Keďže |H| = O(|V|2), výpočtová zložitosť Dijkstrovho algoritmu je O(n2).
Iné projekty
- Commons ponúka multimediálne súbory na tému Dijkstrov algoritmus
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk