Bài tập: Tìm đường đi ngắn nhất
x1->x3
x1->x4
x1->x5
Bài giải:
Bước 1: l(x1)=0+; l(x i)=∞với mọi xi ≠ x1, p = x1
X1 nhận được nhãn cố định
1) Vòng 1:
Bước 2:Γ(p)=Γ(x1)={x2,x4,x5} tất cả các nhãn đều tạm thời
Đầu tiên với x2: l(x2)=min[∞;0++10]=10
l(x4)=min[∞;0+ +5]=5
l(x5)=min[∞;0++8]=8
Bước 3: min[10(x2),5(x4),8(x5),∞(x3,x6)=5tương ứng với x4
Bước 4: nút x4 nhận được nhãn cố định
L(x4) = 5+; p = x4
Bước 5:Còn có những nút mang nhãn tạm thời, vì vậy chuyển sang bước 2.
2) Vòng 2:
Bước 2: Γ(p)=Γ(x4)={x1,x2,x3,x5} x1đã được dán nhãn cố định
Tất cả các nhãn đều là tạm thời
( )x2 =min[10;5+ +16]=10
l
( )x3 =min[∞;5++25]=30
l
( )x5 =min[8;5+ +2]=7
l
Bước 3: min[10(x2),30(x3),7(x5),∞(x6) =7tương ứng với x5
Bước 4: nút x5 nhận được nhãn cố định
l(x5) = 7+ ; p = x5
Bước 5: còn nhãn tạm thời, chuyển sang bước 2.
3) Vòng 3
Bước 2:Γ(p)=Γ(x5)={x1,x4,x6} x1,x4 đã được dán nhãn cố định
] 14 7
; min[
) (x6 = ∞ ++
Trang 2Bước 3: min[30(x3),21(x6),10(x2)]=10tương ứng với x2
Bước 4: nút x2 nhận nhãn cố định
L(x2) = 10+ ; p = x2
Bước 5: còn nhãn tạm thời, chuyển sang bước 2.
4) Vòng 4
Bước 2:Γ(p)=Γ(x2)={x4,x3} x4 đã được dán nhãn cố định
] 20 21
; 30 min[
)
Bước 3: min[30(x3),21(x6)]=21tương ứng với x6
Bước 4: nút x6 nhận nhãn cố định
L(x6) = 21+ ; p = x6
Bước 5: còn nhãn tạm thời, chuyển sang bước 2.
5) Vòng 5
Bước 2:Γ(p)=Γ(x6)={x3,x5} x5 đã được dán nhãn cố định
] 12 21
; 30 min[
)
Bước 3: min[30(x3)]=30tương ứng với x3
Bước 4: nút x3 nhận nhãn cố định
L(x3) = 30+ ; p = x3
Để tìm lộ trình ngắn nhất từ S đến các nút còn lại ta dùng quá trình lùi liên tiếp theo quan hệ:
l(x’i) + C(x’i, xi) = l(xi) Trong đó x’i là nút trực tiếp nằm trước nút xi trên đường đi ngắn nhất từ S đến xi
A Tìm đường ngắn nhất từ x1->x3
Ta sữ dụng quá trình lùi liên tiếp, đặt xi = x3 tìm nút x’3 nằm trực tiếp trước nút x3 trên đường ngắn nhất từ nút x1 đến x3; x’3 cần thỏa mãn điều kiện:
l(x’3) + C(x’3, x3) = l(x3) = 30 Đỉnh x4,x2 thỏa mãn đk này
Tiếp tục sử dụng quá trình lùi liên tiếp với xi = x4 Nút x’4 nằm trực tiếp trước x4 trên đường ngắn nhất từ x1 đến x3 cấn thỏa mãn đk:
l(x’4) + C(x’4, x4) = l(x4) = 5 Đỉnh duy nhất thỏa mãn điều kiện này là x1
30 +
10 +
5 +
0 +
7 +
21 +
1
5
4
6
10
20
8
5
2 16
14 25
Trang 3Ta thấy đường từ x2 về x1 lớn hơn x4 về x1 Như vậy đường ngắn nhất từ x1 đến x3 là: x1 –x4 – x3
B Tìm đường ngắn nhất từ x1->x4
Ta sữ dụng quá trình lùi liên tiếp, đặt xi = x4 tìm nút x’4 nằm trực tiếp trước nút x4 trên đường ngắn nhất từ nút x1 đến x4; x’4 cần thỏa mãn điều kiện:
l(x’3) + C(x’3, x3) = l(x3) = 5 Đỉnh duy nhất thỏa mãn điều kiện này là x1
Như vậy đường ngắn nhất từ x1 đến x4 là: x1 –x4
C Tìm đường ngắn nhất từ x1->x5
Ta sữ dụng quá trình lùi liên tiếp, đặt xi = x5 tìm nút x’5 nằm trực tiếp trước nút x5trên đường ngắn nhất từ nút x1 đến x5; x’5 cần thỏa mãn điều kiện:
l(x’5) + C(x’5, x5) = l(x5) = 7 Đỉnh x4 thỏa mãn đk này
Tiếp tục sử dụng quá trình lùi liên tiếp với xi = x4 Nút x’4 nằm trực tiếp trước x4 trên đường ngắn nhất từ x1 đến x5 cấn thỏa mãn đk:
l(x’4) + C(x’4, x4) = l(x4) = 5 Đỉnh duy nhất thỏa mãn điều kiện này là x1
Như vậy đường ngắn nhất từ x1 đến x3 là: x1 –x4 – x5