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