You are on page 1of 1

Thut ton Dijkstra: Tm ng i ngn nht

Bi ton:
Cho G = (V, E) n, lin thng, c trng s dng (w(uv) > 0 vi mi u khc
v). Tm ng i ngn nht t u0 n v v tnh khong cch d(u0,v).
Phng php:
Xc nh tun t cc nh c khong cch n u0 t nh n ln.
1. Trc tin nh c khong cch nh nht n u0 l u0.
2. Trong V\{u0} tm nh c khong cch n u0 nh nht (nh ny phi
l mt trong cc nh k vi u0), gi s l u1.
3. Trong V\{u0, u1} tm nh c khong cch n u0 nh nht (nh ny
phi l mt trong cc nh k vi u0 hoc u1), gi s l u2.
4. Tip tc nh trn cho n bao gi tm c khong cch t u0 n mi
nh.
Nu G c n nh th: 0 = d(u0,u0) < d(u0,u1) d(u0,u2) d(u0,un-1)
Thut ton Dijkstra
Bc1:
i := 0
S := V\{u0}
L(u0) := 0
Vi mi v S, L(v) := v c nh du bi (,-)
Nu n = 1 th xut d(u0,u0) = 0 = L(u0)
Bc 2:
Vi mi v S v k vi ui (nu th c hng th v l nh sau ca
ui),
L(v) := min{L(v), L(ui) + w(uiv)}
Xc nh k := min{L(v), v S}
Nu k = L(vj) th xut d(u0,vj) = k v nh du vj bi (L(vj),ui)
ui+1 := vj
S := S\{ui+1}
Bc 3:
i := i + 1
Nu i = n - 1 th kt thc, nu khng th quay li Bc 2.

You might also like