Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
154,29 KB
Nội dung
BÀI TẬP LỚN MÔN: TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: TRÒ CHƠI Ô CHỮ PUZZLE SỬ DỤNG THUẬT TOÁN A* • Nhóm sinh viên thực hiện: – Nguyễn Huy Triển 20082751 – Trần Bá Tùng 20083041 – Đặng Vũ Hạnh 20080899 – Phùng Ngọc Duy20101256 – Phan Việt Phong 20083429 – Nguyễn Anh Tuấn 20102772 Phân công công việc: - Triển, Tùng và Hạnh code chương trình Duy viết báo cáo Phong tìm hiểu thuật toán Tuấn và Triển làm slide Nội dung chính 1 2 3 4 5 Bài toán thực tế Giải thuật A* Phương pháp giải quyết Vấn đề tồn tại Hướng phát triển Bài toán thực tế • Xáo trộn hoặc đưa ra trạng thái ban đầu (có lời giải) như hình bên • Bài toán đặt ra: di chuyển ô trống (đổi chỗ với các ô số lân cận) sao cho đưa về trạng thái đích ở hình dưới Giải thuật A* • • Ý tưởng: tránh việc phát triển các nhánh tìm kiếm có chi phí cao Sử dụng hàm đánh giá f(n) = g(n) + h(n) g(n): chi phí từ nút gốc đến nút hiện tại h(n): chi phí ước lượng từ nút hiện tại n đến đích f(n): chi phí tổng thể ước lượng đường đi của nút hiện tại n đến đích Ước lượng heuristic • • h(n) = h1 + h2 h1 là tổng chi phí ngắn nhất để đưa các ô sai về vị trí đúng, tính theo khoảng cách manhattan • h2 là hàm chặn Gọi x là khoảng cách theo chiều dọc sai vị trí và y là khoảng cách theo chiều ngang sai vị trí thì h2 cộng thêm giá trị lớn nhất max(x,y) với mỗi ô có (x+y)>1 Phương pháp giải quyết • Để đảm bảo giải thuật A* là hoàn chỉnh thì phải khử các vòng lặp Giải pháp: Mỗi nút con sinh ra, ta kiểm tra trạng thái của chúng xem có xuất hiện trong 2 tập open và hash không, nếu không thì nạp vào open, ngược lại nếu g nút mới sinh nhỏ hơn g nút đã tồn tại thì thay thế nút mới vào đồng thời cập nhật các nút con Phương pháp giải quyết • - Để đảm bảo hệ thống sinh trạng thái đầu có lời giải, cần thỏa mãn: n lẻ : N mod 2 = 0 n chẵn : + N mod 2 = 0 và ô trống nằm trên dòng chẵn tính từ trên xuống + N mod 2 = 1 và ô trống nằm trên dòng lẻ tính từ trên xuống N là tổng số ô có giá trị bé hơn mỗi ô trước Phương pháp giải quyết • Sử dụng tập hash như 1 bảng băm để tăng tốc độ duyệt tìm các nút trùng nhau Vấn đề tồn tại • • Hàm h(n) chưa đánh giá hoàn chỉnh, chỉ sử dụng được ở các mức thấp Duyệt tìm ở mức cao, phần tử trong hash có số phần tử con rất lớn nên thuật toán bị chậm Hướng phát triển • • Tìm hàm h(n) tối ưu hơn để sử dụng ở các mức cao hơn Xây dựng hàm băm tối ưu hơn để tăng tốc tìm kiếm • Về việc so sánh ưu thế và nhược điểm so với các nhóm làm đề tài puzzle khác, em nghĩ demo chương trình không thể hiện được rõ Nếu phân tích code và thuật toán cài đặt sẽ thấy được ưu nhược điểm Trong đó em đề cao nhất là xuất phát điểm của bài toán và thuật giải Vì vấn đề đầu tiên đặt ra mới thể hiện ưu thế giải quyết bài toán của chương trình, thuật giải thể hiện tối ưu chương trình ... ngắn để đ? ?a sai vị trí đúng, tính theo khoảng cách manhattan • h2 hàm chặn Gọi x khoảng cách theo chiều dọc sai vị trí y khoảng cách theo chiều ngang sai vị trí h2 cộng thêm giá trị lớn max(x,y)... Hàm h(n) ch? ?a đánh giá hoàn chỉnh, sử dụng mức thấp Duyệt tìm mức cao, phần tử hash có số phần tử lớn nên thuật tốn bị chậm Hướng phát triển • • Tìm hàm h(n) tối ưu để sử dụng mức cao Xây dựng... – Phan Việt Phong 20083429 – Nguyễn Anh Tuấn 20102772 Phân công công việc: - Triển, Tùng Hạnh code chương trình Duy viết báo cáo Phong tìm hiểu thuật tốn Tuấn Triển làm slide Nội dung Bài toán