Xem mẫu

  1. CÁC HỆ THỐNG THÔNG MINH NHÂN TẠO & ỨNG DỤNG Bài toán tìm kiếm I THS. BÙI THỊ DANH BM.KHMT, KHOA CNTT, ĐH.KHTN TP.HCM
  2. Nội dung chính Tổng quan bài toán tìm kiếm Cây tìm kiếm Các thuật toán tìm kiếm mù 2
  3. Bài toán tìm kiếm Bài toán tìm đường đi ◦ Tìm đường ngắn nhất, ◦ Tìm đường nhanh nhất ◦ Tìm đường có nhiều cảnh đẹp nhất Các hành động: ◦ Đi thẳng ◦ Rẽ trái ◦ Rẽ phải 3
  4. Bài toán tìm kiếm Giải bài toán puzzle ◦ Tìm cách đạt đến “cấu hình” xác định Các hành động: ◦ Di chuyển các miếng ghép 4
  5. Bài toán tìm kiếm Một bài toán tìm kiếm gồm 5 thành phần: ◦ Không gian trạng thái: S ◦ Tập các hành động: Action(s) ◦ Trạng thái bắt đầu: start ◦ Hàm kiểm tra trạng thái đích: IsGoal(s) ◦ Hàm xác định trạng thái kế tiếp: Successor(s) ◦ Thường đi kèm với hành động và chi phí tương ứng Một lời giải của bài toán tìm kiếm là một chuỗi các hành động để di chuyển từ trạng thái bắt đầu đến trạng thái đích. 5
  6. Không gian trạng thái Trạng thái (state) là tập các chi tiết / thông tin cần thiết cho việc ra quyết định. Không gian trạng thái là tập tất cả các trạng thái có thể có. Kích thước của không gian trạng thái, được tính như sau: ◦ Mỗi trạng thái có N chi tiết ◦ Mỗi chi tiết có miền giá trị là 𝐷𝑖 ◦ Kích thước của không gian trạng thái: 𝑆 = 𝐷1 × 𝐷2 × ⋯ × 𝐷𝑁 6
  7. Bài toán tìm đường đi Trạng thái: (tên địa điểm) S : {tất cả các địa điểm trên bản đồ} Start : điểm xuất phát IsGoal(s): Có phải điểm muốn đến không? Successor(s): các trạng thái có thể đi đến được từ s. Câu hỏi: Kích thước không gian trạng thái là bao nhiêu? 7
  8. Bài toán tìm đường đi Tìm đường đi ngắn nhất từ thành phố 1 đến thành phố n. Biết rằng chỉ được di chuyển từ thành phố có chỉ số nhỏ hơn đến thành phố có chỉ số lớn hơn. ◦ Không được viếng thăm quá 2 thành phố lẻ Câu hỏi: trạng thái gồm các chi tiết gì? Từ đó, xác định các thành phần của bài toán? ◦ Trạng thái: (thành phố hiện tại, thành phố trước là lẻ?(true/false)) ◦ Actions(s): đi từ thành phố sang thành phố khác ◦ IsGoal(s): s có phải là thành phố n không? ◦ Successor(s): các trạng thái s’(Thành_phố, Là_lẻ). Trong đó, ◦ Thành_phố: chỉ số của thành phố đi đến được, tức 𝑇ℎà𝑛ℎ_𝑝ℎố ≥ 𝑠 ◦ Là_lẻ: true nếu s là thành phố lẻ hoặc chi tiết s.Là_lẻ là true. 8
  9. Bài toán tìm đường đi Tìm đường đi ngắn nhất từ thành phố 1 đến thành phố n. Biết rằng chỉ được di chuyển từ thành phố có chỉ số nhỏ hơn đến thành phố có chỉ số lớn hơn. ◦ Cần viếng thăm ít nhất 3 thành phố lẻ Câu hỏi: trạng thái gồm các chi tiết gì? Từ đó, xác định các thành phần của bài toán? 9
  10. Bài toán tìm đường đi Tìm đường đi ngắn nhất từ thành phố 1 đến thành phố n. Biết rằng chỉ được di chuyển từ thành phố có chỉ số nhỏ hơn đến thành phố có chỉ số lớn hơn. ◦ Cần viếng thăm số thành phố lẻ nhiều hơn số thành phố chẵn. Câu hỏi: trạng thái gồm các chi tiết gì? Từ đó, xác định các thành phần của bài toán? 10
  11. Bài toán Puzzle Câu hỏi: Cho biết trạng thái gồm các chi tiết gì? Liệt kê các thành phần của bài toán? 11
  12. Nội dung chính Tổng quan bài toán tìm kiếm Cây tìm kiếm Các thuật toán tìm kiếm mù 12
  13. Đồ thị trạng thái Đồ thị trạng thái (state graph): một cách biểu diễn hình học cho bài toán tìm kiếm. ◦ Mỗi đỉnh đồ thị tương ứng với một trạng thái ◦ Mỗi cạnh đồ thị nối trạng thái với một trạng thái kế của nó. ◦ Hàm kiểm tra trạng thái đích chính là tập các đỉnh tương ứng với trạng thái đích Trong đồ thị trạng thái, mỗi trạng thái chỉ xuất hiện duy nhất một lần Thường không xây dựng đồ thị trạng thái đầy đủ trên bộ nhớ máy tính vì rất lớn. 13
  14. Đồ thị trạng thái 14
  15. Cây tìm kiếm Cây tìm kiếm (search tree) là cấu trúc cây thể hiện các hành động và kết quả tương ứng của hành động. ◦ Node gốc tương ứng với trạng thái bắt đầu ◦ Các node con tương ứng với trạng thái kế tiếp của node cha. ◦ Node lá tương ứng với trạng thái đích ◦ Mỗi lời giải tương ứng với một đường đi từ gốc đến node lá Mỗi trạng thái có thể xuất hiện nhiều hơn 1 lần. Thường không xây dựng đầy đủ cây tìm kiếm trong bộ nhớ vì rất lớn 15
  16. Đồ thị trạng thái vs Cây tìm kiếm 16
  17. Câu hỏi Giả sử trạng thái bắt đầu là Faragas, hãy vẽ cây tìm kiếm cho đồ thị trạng thái dưới đây? Eforie Pitesti Vaslui Sibiu Craiova Arad Faragas Lugoj Zerind Oradea 17
  18. Cây tìm kiếm Câu hỏi: có bao nhiêu node trên cây tìm kiếm tương ứng với đồ thị trạng thái sau? 18
  19. Thuật toán tìm kiếm trên cây Input: problem – các thành phần của bài toán tìm kiếm strategy – chiến lược duyệt Output: solution – nếu tồn tại lời giải; failure – nếu ngược lại Khởi tạo cây tìm kiếm với trạng thái bắt đầu của problem Loop If không còn ứng viên để mở rộng then return “không có lời giải” Chọn một node lá để mở rộng dựa theo strategy If node được chọn là trạng thái đích then return “có lời giải” else mở rộng node và thêm các node kết quả vào cây tìm kiếm End 19
  20. Thuật toán tìm kiếm trên cây Mở rộng dần các trạng thái tiềm năng Cần cấu trúc dữ liệu hợp lý để đảm bảo thứ tự các trạng thái được xem xét, tạm gọi là Fringe Cố gắng mở rộng ít trạng thái nhất có thể. 20
nguon tai.lieu . vn