Készítette: Major Máté Dijkstra algoritmus Készítette: Major Máté
Célja és definíciója A Dijkstra algoritmus egy mohó algoritmus, aminek a célja az, hogy irányított vagy irányítás nélküli gráfokban megkeresi a legrövidebb utakat egy adott csúcspontból kiindulva. Def.: A fenti algoritmus, negatív él súlyokat nem tartalmazó G=(V,E) véges gráf esetén, s∈V forrás (kezdőcsúcs) és ∀v∈V csúcsra, meghatározza s-ből v-be vezető legrövidebb utat és annak hosszát.
Az algoritmus elve Minden lépésben nyilvántartjuk az összes csúcsra, a forrástól az adott csúcsba vezető legrövidebb utat. 1. Először a távolság a kezdőcsúcsra 0 mindegyik másikra pedig ∞ . 2.Minden lépésben a nem kész csúcsok közül vegyük a legkisebb távolságút: a. Kijelenthetjük, hogy ez a v∈V csúcs már kész,ismerjük a hozzávezető utat. b. v szomszédjaira kiszámítjuk a v-be vezető és onnan kimenő éllel meghosszabbított út hosszát. Ha ez kisebb mint az eddig talál legrövidebb út akkor ez lesz a legrövidebb. Ez a közelítés.
Adt stukrogram
1 0 példa Kezdeti állapot 6 # 9 4 1 3 4 # 14 # 15 8 2 12 # 10 # 1
1 0 6 9 9 4 1 3 4 14 # 15 8 2 12 # 10 # 1
1 6 5 9 4 1 3 4 14 # 15 8 2 12 19 10 12 1
1 6 5 9 4 1 3 4 14 8 15 8 2 12 19 10 12 1
1 6 5 9 4 1 3 4 14 8 15 8 2 12 19 10 1
1 6 5 9 4 1 3 4 14 8 15 8 2 12 11 10 1
1 0 Végeredmény 6 5 4 1 3 4 14 8 2 12 11 10 1
mŰveletigény Rendezetlen tömb esetén: T(n) = O(1+ n −1+1+ 0 + n2 + n + e) = O(n2 + e) = O(n2 ) Kupac esetén: T(n) = O(1+ n −1+1+ n + n* log n + n + e* log n) = O((n + e) *log n)
Köszönöm a figyelmet!!