Câu 1.
Để tìm số tiền vé ít nhất có thể để Nam đi được từ Quốc gia A tới Quốc gia G, chúng ta sẽ áp dụng thuật toán Dijkstra để tìm đường đi ngắn nhất từ A đến G.
1. Khởi tạo:
- Đặt khoảng cách ban đầu từ A đến tất cả các điểm là vô cùng (), ngoại trừ A là 0.
- Tập hợp các điểm chưa xử lý bao gồm tất cả các điểm: {A, B, C, D, E, F, G}.
2. Bước 1: Xét điểm A
- Điểm hiện tại là A, khoảng cách từ A đến A là 0.
- Cập nhật khoảng cách từ A đến các điểm liền kề:
- A-B: 0 + 4 = 4
- A-E: 0 + 5 = 5
- Tập hợp các điểm chưa xử lý: {B, C, D, E, F, G}
3. Bước 2: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm B có khoảng cách nhỏ nhất là 4.
- Xét điểm B:
- B-E: 4 + 2 = 6 (nhỏ hơn 5, cập nhật lại)
- B-F: 4 + 7 = 11
- B-D: 4 + 6 = 10
- Tập hợp các điểm chưa xử lý: {C, D, E, F, G}
4. Bước 3: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm E có khoảng cách nhỏ nhất là 5.
- Xét điểm E:
- E-C: 5 + 9 = 14
- E-F: 5 + 20 = 25 (không cập nhật vì lớn hơn 11)
- Tập hợp các điểm chưa xử lý: {C, D, F, G}
5. Bước 4: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm D có khoảng cách nhỏ nhất là 10.
- Xét điểm D:
- D-C: 10 + 2 = 12 (nhỏ hơn 14, cập nhật lại)
- D-G: 10 + 11 = 21
- Tập hợp các điểm chưa xử lý: {C, F, G}
6. Bước 5: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm C có khoảng cách nhỏ nhất là 12.
- Xét điểm C:
- C-G: 12 + 8 = 20 (nhỏ hơn 21, cập nhật lại)
- Tập hợp các điểm chưa xử lý: {F, G}
7. Bước 6: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm F có khoảng cách nhỏ nhất là 11.
- Xét điểm F:
- F-C: 11 + 1 = 12 (không cập nhật vì lớn hơn 12)
- F-D: 11 + 12 = 23 (không cập nhật vì lớn hơn 21)
- Tập hợp các điểm chưa xử lý: {G}
8. Bước 7: Chọn điểm có khoảng cách nhỏ nhất từ tập hợp các điểm chưa xử lý
- Điểm G có khoảng cách nhỏ nhất là 20.
- Kết thúc thuật toán.
Vậy, số tiền vé ít nhất có thể để Nam đi được từ Quốc gia A tới Quốc gia G là 20 triệu đồng.