Woj ie h Pen zek
1 Znajdowanie nakrótszej ± ie»ki w grae
Zastosowania: znalezienie najkrótszej trasy midzy dwoma
miastami.
Dany graf
G
= (V, E, M )
, w którymM
(v, v
′
)
przyp-isuje krawdziom wagi o warto± ia h rze zywisty h
nieu-jemny h.
Wag¡ ± ie»ki w grae nazywamy sum wag jej krawdzi.
Waga najkrótszej ± ie»ki w grae pomidzy
v
iv
′
(ozn.
δ
(v, v
′
)
) to minimum ze wszystki h wag ± ie»ek zv
dov
′
lub
∞
je±li taka ± ie»ka nie istnieje.Algorytm BFS znajduje najkrótsze ± ie»ki w grafa h z
jed-norodn¡ wag¡ wszystki h krawdzi.
Rozwa»amy graf
G
z wyró»nionym wierz hoªkiems
. Nale»y znale¹¢ najkrótsz¡ ± ie»k zs
dov
dla ka»dego wierz hoªkaBadamy podgraf poprzedników
G
π
= (V
π
, E
π
, M
π
)
, gdzieV
π
= {v ∈ V | π[v] 6= nil} ∪ {s}
,E
π
= {(π[v], v) | v ∈ V
π
\ {s}}
.M
π
= M |
(V
π
×V
π
)
.Algorytm bdzie tak budowaª graf
G
π
by byª on grafem najkrótszy h ± ie»ek tzn. takim podgrafemG
, »e ka»da ± ie»kaG
π
jest najkrótsz¡ ± ie»k¡ wG
.Zauwa»my, »e graf
G
π
jest drzewem, a wi dla ka»dego wierz hoªkav
istnieje o najwy»ej jedna ± ie»ka zs
dov
. Przykªad 1.1 Graf i najkrótsze ± ie»ki w grae.Fakty:
•
Pod± ie»ki najkrótszy h± ie»ek s¡ najkrótszymi ± ie»kami,• δ(s, v) ≤ δ(s, w)+M (w, v)
dla ka»dej krawdzi(w, v)
. 1.1 Relaksa jaAtrybut
d
[v]
utrzymuje najmniejsz¡ obli zon¡ wag ± ie»ki zs
dov
.Ini jaliza ja: po z¡tkowo wszystkie
d
[v] = ∞
za wyj¡tkiemd
[s] = 0
,π
[v] = nil
.Relaksa ja krawdzi
(u, v)
polega na sprawdzeniu zyod doty h zasowej najkrótszej ± ie»ki do
v
i je±li tak na zmodykowaniuπ
[v]
id
[v]
.RELAX(u,v,M)
1. if
d
[v] > d[u] + M (u, v)
thend
[v] := d[u] + M (u, v)
,π
[v] := u
; Wªasno± i relaksa ji1. Po wykonaniurelaksa ji za hodzi
d
[v] ≤ d[u]+M (u, v)
, 2. Warunekd
[v] ≥ δ(s, v)
jest niezmiennikiem dowolnegoi¡gu relaksa ji po wykonaniu ini jaliza ji,
3. Kiedy
d
[v] = δ(s, v)
, to ju» wi ej nie ulega zmianie. 4. Nie hs
− − > u → v
bdzie najkrótsz¡ s ie»k¡ wgrae. Je±li po wykonaniu i¡gu relaksa ji
d
[u] = δ(s, u)
i zostanie wykonaneRELAX
(u, v, M )
, tod
[v] = δ(s, v)
. 5. Po wykonaniu ini jaliza ji grafG
π
jest drzewem oko-rzeniu
s
i wªasno±¢ ta jest niezmiennikiem ka»dego i¡gu relaksa ji.6. Je±li po wykonaniu ini jaliza ji i dowolnego i¡gu
re-laksa ji w grae
G
za hodzid
[v] = δ(s, v)
dla ka»dego wierz hoªkav
, toG
π
jest drzewem najkrótszy h ± ie»ek wG
.Dijkstra(G,s) 1 ini jaliza ja
G, s
; 2S
:= ∅
; 3Q
:= V
; 4 whileQ
6= ∅
; 5u
:= Extract−M in(Q)
6S
:= S ∪ {u}
; 7 for ea hv
∈ L[u
℄;8
RELAX
(u, v, G)
;Q
- kolejka (priorytetowa),Wierz hoªki w
Q
s¡ ustawione zgodnie ze wzrastaj¡ ymi wagamid
.Extract
−M in(Q)
ozna za wybranie i usuni ie zQ
wierz- hoªka o minimalnej wadzed
.BELLMAN-FORD(G,s)
1 ini jaliza ja
G, s
; 2 fori
:= 1
to|V | − 1
;3 do for ea h