1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU GIẢI THUẬT A SAO VÀ BÀI TOÁN TÌM ĐƯỜNG

23 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Microsoft Word Báo cáo bài tập cá nhân docx TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP CÁ NHÂN HỌC PHẦN TRÍ TUỆ NHÂN TẠO Đề tài TÌM HIỂU GIẢI THUẬT A SAO[.]

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP CÁ NHÂN HỌC PHẦN: TRÍ TUỆ NHÂN TẠO Đề tài TÌM HIỂU GIẢI THUẬT A SAO VÀ BÀI TỐN TÌM ĐƯỜNG Sinh viên thực : Nghiêm Đình Mừng MSSV: 20111848 Lớp: CNTT-TT 2.3 Giáo viên hướng dẫn: TS Phạm Văn Hải Hà Nội – tháng 11 năm 2013 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Mục Lục Lời nói đầu I II III IV Tìm hiểu giải thuật A* Bài tốn tìm đường (PathFinding) Nêu tốn Mơ tả toán Ứng dụng giải thuật A * vào tốn Cài đặt chương trình Giới thiệu chương trình Cấu trúc chương trình Hình ảnh mơ tả Kết luận Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Lời mở đầu Trí tuệ nhân tạo trở thành mơn học phổ biến ngày có nhiều ứng dụn khoa học đời sống nay.Trí uệ nhân tạo ứng dụng lập trình game, chương trình xử lý phân tích tốn học phức tạp… Trong lĩnh vực trí tuệ nhân tạo tìm kiếm mảng quan tâm hàng đầu có nhiều thành tựu nghiên cứu.Vì em chọn đề tài nghiên cứu tìm kiếm tối ưu thể đặc trưng giải thuật A* minh họa tốn tìm đường Trong tập chắn khơng tránh khỏi thiếu sót mong góp ý bảo thêm thầy Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng I.Tìm hiểu về giải thuật tìm kiếm A * 1.Tìm kiếm ưu tiên tối ưu (best-first search) Ưu điểm tìm kiếm theo chiều sâu khơng phải quan tâm đến mở rộng tất nhánh Ưu điểm tìm kiếm chiều rộng khơng bị sa vào đường dẫn bế tắc (các nhánh cụt) Tìm kiếm ưu tiên tối ưu kết hợp phương pháp cho phép ta theo đường thời điểm, đồng thời "quan sát" hướng khác Nếu đường "có vẻ" khơng triển vọng đường ta "quan sát" ta chuyển sang theo số đường Để tiện lợi ta dùng chữ viết tắt BFS thay cho tên gọi tìm kiếm ưu tiên tối ưu Thuật giải BEST-FIRST SEARCH Đặt OPEN chứa trạng thái khởi đầu Cho đến tìm trạng thái đích khơng cịn nút OPEN, thực : 2.a Chọn trạng thái tốt (Tmax) OPEN (và xóa Tmax khỏi OPEN) 2.b Nếu Tmax trạng thái kết thúc 2.c Ngược lại, tạo trạng thái Tk có từ trạng thái Tmax Đối với trạng thái Tk thực : Tính f(Tk); Thêm Tk vào OPEN BFS đơn giản Tuy vậy, thực tế, tìm kiếm chiều sâu chiều rộng, ta dùng BFS cách trực tiếp Thông thường, người ta thường dùng phiên BFS AT, AKT A* 2.Giải thuật tìm kiếm A* a) Khái niệm Trong khoa học máy tính, A* ( đọc A sao) thuật tốn tìm kiếm đồ thị Thuật tốn tìm kiếm đường từ nút khởi đầu tới nút đích cho trước ( tới nút thỏa mãn điều kiện đích) Thuật tốn sử dụng “đánh giá heuristic” để xếp loại nút theo ước lượng tuyến đường tốt qua nút Thuật tốn duyệt nút theo thứ tự đánh giá heuristic Do đó, thuật tốn A* ví dụ tìm kiếm theo lựa chon tốt (best-first search) Thuật tốn A* mơ tả lần đầu vào năm 1986 Peter Hart, Nils Nilson, Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Và Bertram Raphael Trong cáo họ, thuật toán gọi thuật toán A; sử dụng thuật toán với đánh giá heuristic thích hợp thu hoạt động tối ưu, mà có tên A* Năm 1967, Nils Nisson phát minh phương pháp tiếp cận dựa khám phá để tăng tốc độ thuật toán Dijkstra Thuật toán gọi A1 Năm 1967 Bertram Raphael cải thiện đáng kể thuật tốn này, khơng thể hiển thị tối ưu Ơng gọi thuật tốn A2 Sau năm 1968 Peter E Hart giới thiệu đối số chứng minh A2 tối ưu sử dụng thuật toán với đánh giá heuristic thích hợp thu hoạt động tối ưu Chứng minh ơng thuật tốn bao gồm phần cho thấy thuật toán A2 thuật tốn tốt đưa điều kiện Do ơng đặt tên cho thuật toán A*( A , A-star) b) Ý tưởng thuật toán Xét tốn tìm đường – tốn mà A* thường dùng để giải A* xây dựng tăng dần tất tuyến đường từ điểm xuất phát tìm thấy đường chạm tới đích Tuy nhiên, tất thuật tốn tìm kiếm có thơng tin ( informed tìm kiếm thuật tốn), xây dựng tuyến đường “có vẻ” dẫn phía đích Để biết tuyến đường có khả dẫn tới đích, A* sử dụng “đánh giá heuristic” khoảng cách từ điểm đích Trong trường hợp tìm đường , đánh giá khoảng cách đường chim bay – cách đánh giá thường dùng cho khoảng cách đường giao thông Điểm khác biệt A* tìm kiếm theo lựa chọn tốt cịn tính đến khoảng cách qua Điều làm cho A* “đầy đủ” “tối ưu”, nghĩa , A* ln tìm thấy đường ngắn tồn đường A* không đảm bảo chạy nhanh thuật tốn tìm kiếm đơn giản Trong môi trường dạng mê cung , cách để tìm đến đích trước hết phải phía xa đích cuối với quay lại Trong trường hợp này, việc thử nút theo thứ tự “gần đích thử trước” gây tốn nhiều thời gian c Mơ tả thuật tốn A* lưu giữ tập lời giải chưa hoàn chỉnh, nghĩa đường qua đồ thị nút xuất phát Tập lời giải lưu hàng đợi ưu tiên ( priority queue) Thứ tự ưu tiên gán cho đường x định hàm f(x) = g(x) + h(x) Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Trong g(x) chi phí đường thời điểm tại, nghĩa tổng trọng số cạnh qua h(x) hàm đánh giá heuristic chi phí nhỏ để đến đích từ x Ví dụ “chi phí” tính khoảng cách qua, khoảng cách đường chim bay hai điểm đồ đánh giá heuristic cho khoảng cách phải tiếp Hàm f(x) có giá trị thấp độ ưu tiên x cao ( sử dụng cấu trúc heap tối thiểu để cải đặt hàng đợi ưu tiên này) function A* (điểm xuất phát, đích) var đóng := tập rỗng var q := tạo_hàng_đợi ( tạo_đường_đi(điểm_xuất_phát)) while q tập rỗng var p := lấy_phần_tử_đầu_tiên(q) var x:=nút cuối p if x in đóng continue if x = đích return p bổ sung x vào tập đóng foreach y in các_đường_đi_tiếp_theo(p) đưa_vào_hàng_đợi(q,y) return failure Trong các_đường_đi_tiếp_theo(p) trả tập hợp đường tạo việc kéo dài p thêm nút kề cạch Giả thiết hàng đợi xếp tự động giá trị hàm f “Tập hợp đóng” (đóng) lưu giữ tất nút cuối p ( nút mà đường mở rộng đó) để tránh việc lặp lại chu trình ( việc cho thuật tốn tìm kiếm theo đồ thị) Đôi hàng đợi gọi cách tương ứng “tập mở” Tập đóng bỏ qua (ta thu thuật tốn tìm kiếm theo cây) ta đảm bảo tồn lời giải hàm các_đường_đi_tiếp_theo chỉnh để loại bỏ chu trình d Các tính chất Cũng tìm kiếm theo chiều rộng (breadth-fist search), A* thuật toán đầy đủ (complete) theo nghĩa ln tìm thấy lời giải tốn có lời giải Nếu hàm heuristic h có tính chất thu nạp (admissible), nghĩa khơng đánh giá cao chi phí nhỏ thực việc tới đích, thân A* có tính chất thu nạp (hay tối ưu) sử dụng tập đóng Nếu Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng khơng sử dụng tập đóng tì hàm h phải có tính chất đơn điệu ( hay qn) A* có tính chất tối ưu Nghĩa khơng bao giừo đánh giá chi phí từ nút kề cao chi phí thực Phát biểu cách hình thức, với nút x,y y nút x: ℎ (𝑥 ) ≤ 𝑔(𝑦) − 𝑔(𝑥 ) + ℎ(𝑦) A* cịn có tính chất hiệu cách tối ưu với hàm heuristic h, có nghĩa khơng có thuật tốn sử dụng hàm heristic mà chi phí phải mở rộng nút A*, trừ có sớ lời giải chưa đầy đủ mà h dự đón xác chi phí đường tối ưu Thuật toán Dijkstra trường hợp đặc biệt A* đánh giá heuristic hàm h(x) = với x e.Độ phức tạp thuật toán Độ phức tạp thời gian A* phụ thuộc vào đáng giá heuristic Trong trường hợp xấu nhất, số nút mở rộng theo hàm mũ độ dài lời giải, hàm đa thức hàm heuristic h thỏa mãn điều kiện sau |ℎ(𝑥) − ℎ∗ (𝑥)| ≤ 𝑂(𝑙𝑜𝑔 ℎ∗ (𝑥 )) Trong ℎ∗ heuristic tối ưu, nghĩa hàm cho kết chi phí xác để từ x tới đích Nói cách khác, sai số h khơng nên tăng nhanh lơgarit “heuristic hồn hảo” ℎ∗ - hàm trả khoảng cách thực từ x tới đích Vấn đề sử dụng nhớ A* rắc rối độ phức tạp thời gian Trong trường hợp xấu nhất, A* phải ghi nhớ số lượng nút tăng theo hàm mũ Một số biến thể A* phát triển để đối phó với tượng này, số A* lặp sâu dần, A* nhớ giới hạn, A* nhớ giới hạn đơn giản Một thuật tốn tìm kiếm có thơng tin khác có tính chất tối ưu đầy đủ đánh giá heuristic thu nạp ( adminssible) Đó tìm kiếm đệ quy theo lựa chọn tốt ( recursive best- fist search – RBFS) Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng II.Bài tốn tìm đường (PathFinding) 1.Mơ tả bài tốn Bài tốn tìm đường (PathFinding) tốn tìm đường ngắn hai điểm Về chất phương pháp tìm đường tìm kiếm đồ thị cách đỉnh khám phá nút liền kề tìm đến nút đích với đường ngắn Nếu ta duyệt theo chiều rộng ngun tắc tìm đường có đủ thời gian Ở sử dụng phương pháp khác “khám phá” đồ thị để có xác xuất đến đích sớm Cũng giống ta phải tới phịng Thay kiểm tra tất đường tới phịng có, ta theo hướng phịng chệch khỏi hướng đường để tránh tắc nghẽn , làm sai lệnh nhỏ Hai vấn đề tốn tìm đường tìm đường hai nút biểu đồ tìm đường ngắn tối ưu Các thuật toán duyệt theo chiều rộng hay duyệt sâu dần tìm kiếm tất khả xảy ra, nút cho trước, họ lặp qua tất đường tiềm chúng đạt đến nút đích Các thuật tốn chạy O(|V| + |E|), có thời gian tính tốn tuyến tính V số đỉnh, E số cạnh đỉnh Về vấn đề tìm đường ngắn tối ưu Các thuật toán A* thuật toán Dijkstra với chiến lược loại bỏ đường dẫn không thể, thuật tốn đạt tới thời gian tính tốn thấp O( |E| log (|V|)) 2.Ứng dụng giải thuật A* trong bài tốn tìm đường Giả sử có người muốn từ điểm A đến điểm B có tường ngăn cách hai điểm Điều minh họa đây, với màu xanh điểm khởi đầu A, điểm màu đỏ điểm kết thúc B cịn vng có màu xanh tường Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Để đơn giản cho việc tìm kiếm chia khu vực tìm kiếm thành vng, bước để giải tốn pathfinding Cụ thể mơ tả khu vực tìm kiếm mảng hai chiều đơn giản Mỗi phần tử mảng đại diện cho vng đồ, có trạng thái ghi nhận walkable (đi được) unwalkable ( khơng được) Con đường tìm hình vuông từ A đến B VÀ đường tìm thấy cho người di chuyển từ tâm hình vng tới tâm hình vng khác đích Những điểm trung tâm hình vng gọi “nút” Tại ta khơng cần gọi hình vng? Bởi ta phần chia khu vực tìm đường vào khác hình vng, hình chữ nhật, tam giác, lục giác hình bất kì… Và nút đặt nơi hình thể - trung tâm, dọc theo cạnh, nơi Nhưng sử dụng hình vng với nút tâm hình vng đơn giản Bắt đầu tìm kiếm Sau đơn giản hóa khu vực tìm kiếm thành việc quản lý số nút, bước tiến hành tìm kiếm đường ngắn Chúng ta làm điều cách bắt đầu điểm A, kiểm tra ô liền kề nói chung tìm kiếm bên ngồi tìm tới điểm đích Qua trình tìm kiếm bắt đầu sau: Bắt đầu điểm khởi đầu A thêm vào “danh sách mở” hình vng xem xét Danh sách mở giống danh sách mua sắm Ngay có phần tử danh sách danh sách Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng thêm nhiều sau Nó chứa hình vng nằm đường bạn muốn đi, khơng Về danh sách hình vng mà cần phải kiểm tra Nhìn vào tất vng đến tiếp giáp với điểm khởi đầu, bỏ qua tường, vật cản… Thêm chúng vào danh sách mở Đối với hình vng, lưu điểm A “vng cha mẹ” Hình vng cha mẹ quan trọng muốn theo dõi đường cần tìm Điều giải thích kĩ Xóa hình vng khởi đầu khỏi danh sách mở, thêm vào “danh sách đóng” hình vng mà khơng cần phải xem xét lại đến lúc Tại thời điểm , ta có hình minh họa sau Trong hình minh họa, hình vng màu xanh đậm hình vng bắt đầu Nó trình bày ánh sáng màu xanh để hình vng thêm vào danh sách đóng Tất vng liền kề danh sách mở hình vng để kiểm tra, họ trình bày màu xanh Mơi hình vng có trỏ màu xám mà điểm trở lại cha mẹ nó, hình vng bắt đầu Tiếp theo , chọn hình vng liền kề danh sách mở nhiều lặp lại q trình trước đó, mơ tả Nhưng hình vng để chọn để chi phí thấp F? Để giải vấn đề phải sử dụng đến thuật giải A* Hàm lượng giá Chìa khóa để xác định hình vng để sử dụng tìm đường phương trình sau: F(n) = G(n) + H(n) Trong đó: 10 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng • G(n) chi phí di chuyển kể từ điểm xuất phát A đến hình vng nút n q trình tim kiếm • H(n) ước lượng chi phí di chuyển ước tính từ hình vng nút n tới điểm đích cuối cùng, điểm B Tại ước lượng biết thực tế tìm thấy đường, tất lạo vật cản ( nước , lửa, đá…) Để tính H ta sử dụng ước lượng heuristic trình bày sau Con đường mà tạo cách liên tục qua danh sách mở chọn hình vng với số điểm F thấp Quá trình mô tả phần sau báo cáo Đầu tiên nhìn nhận chặt chẽ việc tính phương trình Như mơ tả trên, G chi phí thấp để di chuyển từ điểm khởi đầu hình vng Trong ví dụ định chi phí từ ô vuông đến ô vuông liền kề nằm ngang thẳng đứng 10, đến ô vuông theo đường chéo 14 Chúng ta sử dụng số khoảng cách thực tế di chuyển theo đường chéo bậc 2, khoảng 1.1414 lần so với theo chiều ngang theo chiều dọc Chúng ta sử dụng 10 14 để đơn giản Tỉ lệ tương đối xác tránh tính tốn bậc hai số thập phân Điều khơng thể tính trực tiếp mà sử dụng số nhanh nhiều việc tính tốn tăng tốc độ xử lý cho máy tính Khi tính tốn chi phí G(n) đường cụ thể cho hình vng nút n, cách tìm chi phí a đến hình vng lấy chi phí mẹ sau thêm 10 14 tùy thuộc vào việc đường chéo trực giao ( khơng phải đường chéo) vớ hình vng cha mẹ Ước lượng heuristic Có nhiều cách tìm H(n), báo cáo tính ước lượng heuristic theo phương pháp Manhattan Theo phương pháp H tính tổng số ô vuông di chuyển theo chiều ngang theo chiều dọc để đạt mục tiêu từ ô vuông tại, bỏ qua chuyển động chéo bỏ qua trở ngại có đường Sau nhân tổng só với 10, chi phí để di chuyển hình vuông theo chiều ngang học theo chiều dọc Phương pháp gần kiểu ước lượng “đường chim bay” từ ơng vng tới đích, thực Ở đây, thực 11 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng cố gắng để ước lượng khoảng cách lại đường ( mà thường xa hơn) Ước lượng gần khoảng cách cịn lại thực tế, thuật tốn cho kết tìm kiếm nhanh Nhưng khơng thể đánh giá q cao ước lượng này, khơng đảm bảo cho ln tìm đường ngắn Về mặt kĩ thuật , phương pháp Manhattan khơng thể chấp nhận đánh giá cao khoảng cách lại Nhưng sử dụng ước lượng dễ đơn giản nhiều kĩ thuật khác F tính G H Các kết bước đầu việc tìm kiếm minh họa hình F, G, H đếm viết hình vuông F viết trên, G bên trái H bên phải Tiếp tục tìm kiếm Tiếp tục tìm kiếm , đơn giản chọn ô vng có giá trị F thấp từ danh sách mở Sau tiếp tục làm sau: Chuyển từ danh sách mở sang danh sách khép kín Kiểm tra ô vuông liền kề Bỏ qua vng nằm danh sách đóng ô vuông có trạng thái unwalkable ( tường, nước…) thêm ô vuông vào danh sách mở ô vuông chưa nằm danh sách mở Làm cho ô vuông chọn mẹ ô vuông Nếu nằm danh sách mở, kiểm tra xem đường từ hình vng đến hình vng có phải tốt ( sử dụng G để so sánh) Nếu vậy, thay đổi phụ huynh hình vng đến hình vng nay, tính tốn lại G, F Ngược lại khơng làm 12 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Điều giải thích cụ thể đây: Trong chín ô vuông ban đầu, có ô danh sách mở ô đưa vào danh sách đóng Trong số ơ có F thấp = 40 Vì chọn hình vng đường ô tô viền màu xanh hình minh họa: Đầu tiên chuyển vng từ danh sách mở vào danh sách đóng ( có viền màu xanh) Sau kiểm tra ô vuông liền kề Ta thấy bên cạch ô vuông tường ô vng danh sách đóng, cịn lại vng khác danh sách mở Vì phải kiểm tra đường dẫn tới ô vuông tốt sử dụng ô vuông để đến đó, sử dụng giá trị G để so sánh.Chúng ta nhìn vào vng bên vng chọn Điểm G 14 Nếu qua ô vuông chọn đến ô vuông điểm G=20 cao 14, đường tốt Khi lặp lại q trình cho vng liền kề có danh sách mở, nhận thấy khơng có đường dẫn cải thiện cách qua vng nay, khơng làm điều Bây nhìn vào vng liền kề, thực với ô vuông sẵn sàng chuyển sang ô vuông Tiếp theo bảy hình vng cịn lại danh sách mở ta chọn có chi phí thấp F Và điều đặc biệt có vng với giá trị F=54 Nó thực khơng quan trọng ta chọn hình vng lựa chọn cuối bổ sung vào danh sách mở 13 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Lúc này, kiểm tra ô vuông bên cạnh gặp ô vuông tường, bỏ qua Chúng ta bỏ ô vuông bên tường khơng thể có hình vng trực tiếp từ mà khơng cắt ngang qua tường gần Chúng ta thực cần phải xuống sau di chuyển xung quanh qóc vng tường Vậy hình vng khác Hai vng bên ô vuông thời đá nằm danh sách mở , thêm chúng ô vuông trở thành cha mẹ chúng Ba vng khác, hai sách có danh sách đóng( vng ban đầu vuông ô vuông tại) bên trái hình vng tại, kiểm tra xem G thấp bạn qua ô vuông để đến ô vuông 30 >24 Như hoàn tất chuyển sang kiểm tra ô vuông danh sách Chúng ta lặp lại trình hình vng mục tiê vào danh sách khép kín Lúc trơng hình minh họa sau: 14 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Để xác định đường đi, ta cần ô vuông mục tiêu màu đỏ, làm việc di chuyển ngược lại từ hình vng men nó, theo mũi tên Điều đưa ta tới ô vuông bắt đầu, đường mà ta cần tìm Di chuyển từ ô vuông bắt đầu A đên ô vuông mục tiêu B đơn giản vấn đề di chuyển từ trung tâm ô vuông (nút) đến trung tâm ô vuôn đường tới mục tiêu Tóm tắt phương pháp sử dụng giải thuật A* vào tốn tìm đường Thêm vuông bắt đầu (hoặc nút) vào danh sách mở Lặp lại bước sau a) Tìm vng có chi phí F thấp danh sách mở Gọi vng thời b) Chuyển vào danh sách đóng c) Đối với * vng bên cạnh vng nay… • Nếu khơng phải nút walkable nằm danh sách đóng bỏ qua nó, khơng làm sau: • Nếu khơng nằm danh sách mở thêm vào danh sách mở Làm cho ô vuông làm cha mẹ ô vuông Ghi lại giá trị F, G , H vng • Nếu nằm danh sách mở, kiểm tra xem đường từ hình vng đến hình vng có phải tốt ( sử dụng G để so sánh) Nếu vậy, thay đổi phụ huynh hình vng đến hình vng nay, tính tốn lại G, F Ngược lại khơng làm 15 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng d) Dừng lại • Thêm hình vng mục tiêu vào danh sánh khép kín, đường tìm thấy • Khơng tìm thấy hình vng mục tiêu, danh sách mở rộng trống, trường hợp khơng có đường III Cài đặt chường trình demo 1.Giới thiệu chương trình Chương trình PathFinding Demo cài đặt mô tả Khi sử dụng phần mềm kích chuột trái vào chọn làm tường, chuột vào ô chọn làm điểm bắt đầu, chuột phải vào chọn làm đích Sau chọn hàm heristic Ngồi hàm heuristic Manhattan đề cập cịn bổ sung thêm hai hàm heristic Closest Heuristic Closest Squared Heuristic Tiếp theo chọn nút tìm đường xem kết quả: đường ngắn đường màu xanh có mơ tả q trình tìm kiếm bên phải 16 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng 2.Cấu trúc chương trình Sơ đồ use case Thêm ô tường Thêm điểm đầu Thêm điểm cuối Người dùng Xem thơng số q trình tìm kiếm Chọn hàm heuristic Tìm đường 17 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Sơ đồ class Cài đặt các hàm heuristic Manhanttan Heuristic Ước lượng chi phí từ nút tới nút đích theo đường ngang dọc bỏ qua vật cản this.h=Math.abs(fx-target.fx)*10+Math.abs(fy-target.fy)*10; Closest Heuristic Ước lượng theo chi phí theo đường chim bay từ nút tới nút đích this.h=(int) Math.sqrt((fx-target.fx)*(fx-target.fx)*100+(fy-target.fy)*(fytarget.fy)*100); Closest Squared Heuristic Ước lượng theo diện tích hình chữ nhật tạo x, y nút nút đích this.h=(int) ((fx-target.fx)*(fx-target.fx)*100+(fy-target.fy)*(fy-target.fy)*100); 18 Báo cáo tập cá nhân 3.Demo chương trình Tìm hiểu giải thuật A * Nghiêm Đình Mừng Hướng dẫn Vẽ tường , điểm đầu , điểm đích, cách sử dụng phần mềm 19 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Thống kế một số trường hợp và đánh giá các hàm heuristic Chi phí Số nút tới đích Số nút duyệt Manhanttan Heuristic 56 28 Closest Heuristic 56 24 Closest Squared Heuristic 56 18 Trung bình 56 21 20 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Chi phí Số nút tới đích Số nút duyệt Manhanttan Heuristic 110 65 Closest Heuristic 110 74 Closest Squared Heuristic 110 26 Trung bình 110 55 21 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng Chi phí Số nút tới đích Số nút duyệt Manhanttan Heuristic 172 13 50 Closest Heuristic 172 13 50 Closest Squared Heuristic 172 13 40 Trung bình 172 13 46 Nhận xét: Qua ba thử nghiệm cho thấy, với trường hợp , hàm Closest Squared Heuristic có chi phí tìm kiếm tối ưu nhất, sau hàm Manhanttan Heuristic cịn hàm Closest Heuristic có chi phí tồi 22 Báo cáo tập cá nhân Tìm hiểu giải thuật A * Nghiêm Đình Mừng IV.Kết luận và hướng phát triển Báo cáo nêu phân tích rõ giải thuật tìm kiếm A* với tri thức bổ sung Thấy tối ưu việc vận dụng hàm heuristic khác vào việc giải vấn đề toán thực tế Báo cáo cho thấy mức độ tối ưu hàm heuristic khơng giống nhau, tốn A* ln có nhiều lời giải đặt u cầu phải tìm hàm heuristic để giải quết vấn đề tối ưu Qua báo cáo tập lớn này, em hiểu sâu giải thuật tìm kiếm với tri thức bổ sung A*, vận dụng lý thuyết vào thực tế thu nhiều kiến thức kinh nghiệm quí giá Hướng phát triển em tìm thêm hàm heuristic mới, nâng cao hiệu tìm kiếm, cải thiện khả tương tác , phân tích ứng dụng Ứng dụng toán để giải vấn đề thực tiễn đời sống, xã hội V.Tài liệu tham khảo Bài giảng trí tuệ nhân tạo thầy Phạm Văn Hải website website website 23

Ngày đăng: 20/06/2023, 16:21

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w