BÀI TẬP CÁC THUẬT TOÁN BFS, DFS và AT
Bài 1:
Bài 2: Giải bài toán sau bằng thuật toán A
T
Bài 3:
Tìm kiếm đường đi từ đỉnh 1 đến đỉnh 6 theo thuật toán AT
ĐÁP ÁN
Bài 1:
BFS
Vịng lặp
0
1
2
3
4
5
6
7
8
9
10
11
12
Giá trị
1
2
3
4
5
6
7
8
9
10
11
12
Open
[1]
[2,3,4]
[3,4,5,6]
[4,5,6]
[5,6,7,8]
[6,7,8,9,10]
[7,8,9,10]
[8,9,10,11,12]
[9,10,11,12]
[10,11,12]
[11,12]
[12]
[]
Close
[]
[1]
[1,2]
[1,2,3]
[1,2,3,4]
[1,2,3,4,5]
[1,2,3,4,5,6]
[1,2,3,4,5,6,7]
[1,2,3,4,5,6,7,8]
[1,2,3,4,5,6,7,8,9]
[1,2,3,4,5,6,7,8,9,10]
[1,2,3,4,5,6,7,8,9,10,11]
[1,2,3,4,5,6,7,8,9,10,12]
DFS
Vịng lặp
0
1
2
3
4
5
6
7
Thuật tốn AT
Giá trị
1
2
5
9
10
6
3
Open
[1]
[2,3,4]
[5,6,3,4]
[9,10,6,3,4]]
[10,6,3,4]
[6,3,4]
[3,4]
[4]
Đỉnh (N)
Open
S
Close
[]
S
[A, B, C, D]
[S]
C
G
[G, H]
[L]
[]
[S, C]
[S, C, G]
[S, C, G, L]
Close
[]
[1]
[1,2]
[1,2,5]
[1,2,5,9]
[1,2,5,10]
[1,2,4,10,6]
[1,2,4,10,6,3]
Giá thành G(N)
0
[100,17,1,1] C và
D có cùng g(N):
chọn ngẫu nhiên
C
[11,21]
[12]
Dừng
Bài 2:
Mở S, đặt g(S) = 0
Đóng S, mở A, B
g(A) = g(S) + g(S->A) = 3 (min); g(B)
=0+4=4
Đóng A, mở C,D
G(B) =4
g(C) = 3+4 = 7 (min); g(D) = 8
Đóng B, mở E, F
g(C) = 3+4 = 7; g(D) = 8
g(E) = 4 + 5 = 9; g(F) = 4+2 = 6 (min)
Đóng F, mở L, M
g(C) = 3+4 = 7 (min); g(D) = 8
g(E) = 4 + 5 = 9;
g(L) = 6+5 = 11; g(M) = 6 + 4 = 10
Đóng C, mở H, I
g(D) = 8 (min)
g(E) = 4 + 5 = 9;
g(L) = 6+5 = 11; g(M) = 6 + 4 = 10
G(H) = 7 + 4 =11; G(I) = 7+5 = 12
Đóng D, mở J
g(J) = 8 +2 = 10 (min);
g(E) = 4 + 5 = 9;
g(L) = 6+5 = 11; g(M) = 6 + 4 = 10
G(H) = 7 + 4 =11; G(I) = 7+5 = 12
Chọn ngẫu nhiên J và M: Chọn M
Đóng M, mở G
g(J) = 8 +2 = 10 ; (min)
g(E) = 9 + 5 =14 ;
g(L) = 6+5 = 11;
g(H) = 7 + 4 =11; G(I) = 7+5 = 12
g(G) = 10+3 = 13
Đóng J, mở Q,R
g(E) = 9 + 5 = 14
g(L) = 6+5 = 11; (min)
g(H) = 7 + 4 =11; (min) G(I) = 7+5 =
12
g(G) = 10+3 = 13
g(Q) = 10 +5 =15 ; g(R) = 10+4= 14
Chọn ngẫu nhiên đỉnh L, H: Chọn L
Đóng L, Mở U, V
g(E) = 9 + 5 = 14
g(H) = 7 + 4 =11; (min)
G(I) = 7+5 = 12
g(G) = 10+3 = 13;
g(Q) = 10 +5 =15 ; g(R) = 10+4= 14
g(U) = 11 + 4 =15; g(V) = 11+4= 15
Đóng H
g(E) = 9 + 5 = 14
G(I) = 7+5 = 12
g(G) = 10+3 = 13;(min)
g(Q) = 10 +5 =15 ; g(R) = 10+4= 14
g(U) = 11 + 4 =15; g(V) = 11+4= 15
Đóng G
S ->B -> F - > M -> G
Bài 3:
Tìm kiếm đường đi từ đỉnh 1 đến đỉnh 6 theo thuật toán AT
Khởi động: mở đỉnh 1, gán g(1) = 0
-
Đóng đỉnh 1, mở 2, 4, 5
Tính g(2) = 0 + 5 = 5, g(4) = 0 + 4 = 4, g(5) = 0 + 1 = 1 (min)
-
Đóng đỉnh 5, mở đỉnh 3
G(2) = 5, g(4) = 4(min), g(3) = 5
-
Đóng đỉnh 4, mở đỉnh 7
G(2) = 5, g(3) = 5, g(7) = 4 + 2 = 6
Chọn ngàu nhiên đỉnh 2 hoặc đỉnh 3, chọn đỉnh 2
-
Đóng đỉnh 2, mở đỉnh 6
G(3) = 5(min), g(7) = 6, g(6) = 5+3=8
-
Đóng đỉnh 3
G(7) = 6(min), g(6) = 8
-
Đóng đỉnh 7, g(6) = 8 (min)
-
Đóng đỉnh 6, dừng.
-
Đường đi nhở nhất từ 1 đến 6 là: 1->2->6