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

Nhóm 17.Docx

30 7 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

Nội dung

Tong cac phieu docx TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC TRÍ TUỆ NHÂN TẠO Đề tài Tìm hiểu thuật toán tìm kiếm heuristic và ứng dụng vào bài toán[.]

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO BÀI TẬP LỚN MƠN HỌC TRÍ TUỆ NHÂN TẠO Đề tài: Tìm hiểu thuật tốn tìm kiếm heuristic ứng dụng vào toán tháp Hà Nội Giảng viên hướng dẫn : Ths Lê Thị Thủy Nhóm : 17 Lớp 20224IT6043001 Thành viên nhóm : Trịnh Tiến Đạt Phạm Đức Thắng Nguyễn Mạnh Vinh Hà Nội, tháng năm 2023 PHIẾU HỌC TẬP CÁ NHÂN/NHĨM Thơng tin chung 1.Tên lớp : 20224IT6043001 Khóa : K16 2.Họ tên sinh viên : Nguyễn Mạnh Vinh, Trịnh Tiến Đạt, Phạm Đức Thắng 3.Tên nhóm : Nhóm 17 Họ tên thành viên nhóm : Nguyễn Mạnh Vinh, Trịnh Tiến Đạt, Phạm Đức Thắng Nội dung học tập Tên chủ đề : Tìm hiểu thuật tốn tìm kiếm heuristic ứng dụng vào tốn tháp Hà Nội Hoạt động sinh viên: - Hoạt động/Nội dung 1: Không gian trạng thái thuật tốn tìm kiếm heuristic Mục tiêu/chuẩn đầu ra: Phân tích thuật tốn tìm kiếm heuristic - Hoạt động/Nội dung 2: Ứng dụng thuật toán heuristic vào toán tháp Hà Nội Mục tiêu/chuẩn đầu ra: Biết ứng dụng thuật toán heuristic vào toán cụ thể 3.Sản phẩm nghiên cứu: Chương trình giải tốn trị chơi số Nhiệm vụ học tập Hoàn thành Tiểu luận, Bài tập lớn,Đồ án/Dự án theo thời gian quy định (từ ngày 28/07/2023 đến ngày 18/08/2023) Báo cáo sản phẩm nghiên cứu theo chủ đề giao trước giảng viên sinh viên khác Học liệu thực Tiểu luận, Bài tập lớn, Đồ án/Dự án 1.Tài liệu học tập : Giáo trình Trí tuệ nhân tạo ( Nguyễn Phương Nga) KẾ HOẠCH THỰC HIỆN TIỂU LUẬN, BÀI TẬP LỚN, ĐỒ ÁN Tên lớp : 20224IT6043001 Khóa : K16 Họ tên sinh viên : Nguyễn Mạnh Vinh, Trịnh Tiến Đạt, Phạm Đức Thắng Tên nhóm : Nhóm 17 Tên chủ đề : Tìm hiểu thuật tốn tìm kiếm heuristic ứng dụng vào toán tháp Hà Nội Tuần Người thực Nội dung công việc Kết đạt Phương pháp thực Tất thành viên Thảo luận đề tài, phân chia công việc Phân chia công Họp online qua việc cho thành google meet viên nhóm Nguyễn Mạnh Vinh Tìm hiểu tổng quan giải thuật heuristic, thuật tốn Hồn thành phần chương AKT Tham khảo giáo trình Trịnh Tiến Đạt Tìm hiểu khơng gian trạng Hồn thành phần chương thái, thuật tốn AT Tham khảo giáo trình Phạm Đức Thắng Tìm hiểu tìm kiếm tối ưu thuật tốn A* Tham khảo giáo trình Hồn thành phần chương Tất thành viên Tìm hiểu ứng dụng thuật Hồn thành tốn heuristic để giải chương toán tháp Hà Nội Trao đổi với thông qua google meet Tất thành viên Tổng hợp hoàn thiện tập lớn Sử dụng google doc thông qua google meet để trao đổi với Hoàn thiện tập lớn Hồn thiện chương trình tập lớn Ngày….tháng… năm 2023 XÁC NHẬN CỦA GIẢNG VIÊN (Kí,ghi rõ họ tên) Lê Thị Thủy BÁO CÁO HỌC TẬP CÁ NHÂN/NHÓM 17 Tên lớp : 20224IT6043001 Khóa : K16 Họ tên sinh viên : Nguyễn Mạnh Vinh, Trịnh Tiến Đạt, Phạm Đức Thắng Tên nhóm : Nhóm 17 Tên chủ đề : Tìm hiểu thuật tốn tìm kiếm heuristic ứng dụng vào toán tháp Hà Nội Tuần Người thực Nội dung công việc Kết đạt Tất thành viên Thảo luận đề tài, phân chia cơng việc Nguyễn Mạnh Vinh Tìm hiểu tổng quan Hoàn thành phần giải thuật heuristic, chương thuật tốn AKT Trịnh Tiến Đạt Tìm hiểu khơng gian trạng thái, thuật tốn AT Kiến nghị với giảng viên hướng dẫn Phân chia công việc cho thành viên nhóm Hồn thành phần chương Phạm Đức Thắng Tìm hiểu tìm kiếm Hoàn thành phần tối ưu thuật tốn A* chương Tất thành viên Tìm hiểu ứng dụng Hồn thành chương thuật tốn heuristic để giải toán tháp Hà Nội Tất thành viên Tổng hợp hoàn thiện Hoàn thiện tập lớn tập lớn Ngày….tháng… năm XÁC NHẬN CỦA GIẢNG VIÊN (Kí,ghi rõ họ tên) Lê Thị Thủy Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội Mục lục Mục lục Lời mở đầu Chương 1: Khơng gian trạng thái thuật tốn tìm kiếm I Không gian trạng thái thuật tốn tìm kiếm .3 1.1 Định nghĩa không gian trạng thái: 1.2 Một số khái niệm: 1.2.1 Mô tả trạng thái: 1.2.2 Toán tử: 2.3 Thuật tốn tìm kiếm theo chiều sâu (Depth First Search) 3.2.1 Thuật toán AT 11 3.2.1.1 Khái niệm: 11 3.2.1.2 Sử dụng hai danh sách CLOSE OPEN .12 3.2.2 Thuật toán AKT 13 3.2.3 Thuật giải A* .15 Chương 2: Xây dựng ứng dụng vào toán tháp Hà Nội .17 Khơng gian trạng thái tốn tháp Hà Nội 17 Thuật toán 19 Cấu trúc liệu .19 Ứng dụng vào toán tháp Hà Nội .20 4.1 Cấu trúc liệu toán 20 4.2 Cài đặt thuật toán 20 4.3 Truy xuất đường 23 4.4 Kết 24 Lời kết 25 Tài liệu tham khảo 26 Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội Lời mở đầu Trong năm gần đây, công việc nghiên cứu lĩnh vực trí tuệ nhân tạo ln quan tâm có vai trị vơ quan trọng việc phát triển thành tựu khoa học phát triển vượt bậc Cuộc sống người hệ tiếp cận, sử dụng thành tựu trí tuệ nhân tạo đem lại Nó mang lại lợi ích vơ to lớn nâng cao đời sống cá nhân, người Các vấn đề tốn trí tuệ nhân tạo luôn vô đa dạng, số tốn tìm kiếm Ta thường xun phải đối đầu với vấn đề tốn tìm kiếm, ta phải có kỹ thuật tìm kiếm áp dụng để giải vấn đề đặt cách nhanh xác nhất, đặc biệt lĩnh vực trí tuệ nhân tạo Vấn đề tìm kiếm, cách tổng qt, hiểu tìm đối tượng thỏa mãn số địi hỏi đó, tập hợp rộng lớn đối tượng Chúng ta kể nhiều vấn đề mà việc giải quy vấn đề tìm kiếm Áp dụng thuật tốn tìm kiếm hiểu thuật tốn tìm kiếm bước quan trọng lĩnh vực nghiên cứu Trí tuệ nhân tạo Chính quan trọng thuật tốn tìm kiếm, chủ đề mà nhóm 17 chọn “Tìm hiểu thuật tốn tìm kiếm heuristic ứng dụng vào toán tháp Hà Nội” Trong q trình thực khơng tránh khỏi sai sót, mong có thơng cảm bổ sung thầy cô bạn Chúng em xin chân thành cảm ơn! Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội Chương 1: Không gian trạng thái thuật tốn tìm kiếm I Khơng gian trạng thái thuật tốn tìm kiếm 1.1 Định nghĩa không gian trạng thái: Không gian trạng thái (state space) tập hợp tất trạng thái khả thi mà hệ thống thuật toán có q trình hoạt động Trong ngữ cảnh tốn tối ưu, trí tuệ nhân tạo khoa học máy tính, khơng gian trạng thái thường tập hợp giá trị trạng thái mơ tả tình trạng thơng tin vấn đề cụ thể Trong toán tối ưu giải vấn đề, việc xác định không gian trạng thái quan trọng, xác định phạm vi mà thuật tốn phải thăm dị để tìm kiếm giải pháp tốt tối ưu Q trình di chuyển qua trạng thái khơng gian trạng thái thực thơng qua hành động phép biến đổi trạng thái 1.2 Một số khái niệm: 1.2.1 Mô tả trạng thái: Giải tốn khơng gian trạng thái, trước hết phải xác định dạng mô tả trạng thái toán cho toán trở nên đơn giản hơn, phù hợp chất vật lý tốn (Có thể sử dụng xâu ký hiệu, véctơ, mảng hai chiều, cây, danh sách,…) Mỗi trạng thái hình trạng tốn, tình trạng ban đầu tình trạng cuối tốn gọi trạng thái đầu trạng thái cuối Ví dụ 1.1: Bài tốn tháp Hà Nội Hình 1.1 Bài tốn tháp Hà Nội với n=3 Cho cọc 1, 2, Ở cọc ban đầu có n đĩa xếp theo thứ tự từ nhỏ đến lớn Hãy dịch chuyển n đĩa sang cọc cho: - Mỗi lần chuyển đĩa - Trong cọc không đặt đĩa to đĩa nhỏ tình Trong tốn trạng thái (ijk) với ý nghĩa: Đĩa C (đĩa lớn nhất) cọc i, đĩa B cọc j, đĩa A (đĩa bé nhất) cọc k Trạng thái đầu (111) cịn trạng thái đích (333) Khoa công nghệ thông tin Trường Đại học Cơng Nghiệp Hà Nội Với tốn ta dùng mảng hai chiều để biểu diễn: mảng gồm cột tương ứng với cọc, số dòng tương ứng với số đĩa Cụ thể trường hợp ta dùng mảng 3×3 Trạng thái đầu Trạng thái đích 1.2.2 Tốn tử: Tốn tử phép biến đổi từ trạng thái sang trạng thái khác Có hai cách dùng để biểu diễn tốn tử: Biểu diễn hàm xác định tập trạng thái nhận giá trị tập Biểu diễn dạng quy tắc sản xuất S →A có nghĩa có trạng thái S đưa đến trạng thái A Trong ví dụ 1.1, tốn tử cách chu ển trống, có kiểu tốn tử : chu ển trống lên trên, xuống dưới, sang trái, sang phải Tu nhiên số trạng thái đó, tốn tử khơng áp dụng được, chẳng hạn trống nằm cột ô trống sang trái Trong ví dụ 1.2, toán tử cách chuyển đĩa từ cọc sang cọc khác lần chuyển đĩa không đặt đĩa to đĩa nhỏ 1.3 Tìm kiếm lời giải khơng gian trạng thái Q trình tìm kiếm lời giải tốn biểu diễn khơng gian trạng thái xem q trình dị tìm đồ thị, xuất phát từ trạng thái ban đầu, thơng qua tốn tử chuyển trạng thái, đến trạng thái gặp trạng thái đích khơng cịn trạng thái tiếp tục Khi áp dụng phương pháp tìm kiếm, ta thường quan tâm đến vấn đề: - Kỹ thuật tìm kiếm lời giải - Phương pháp luận việc tìm kiếm - Chiến lược tìm kiếm Tuy nhiên, khơng phải phương pháp áp dụng để giải cho tất toán phức tạp mà cho lớp tốn Khoa cơng nghệ thơng tin Trường Đại học Công Nghiệp Hà Nội Không gian trạng thái Đồ thị -Trạng thái đầu - Đỉnh đầu -Trạng thái đích - Đỉnh đích - Tốn tử dịch chuyển - Cung - Dãy trạng thái - Đường -Bài toán S - Bài toán G Việc chọn chiến lược tìm kiếm cho tốn cụ thể phụ thuộc nhiều vào đặc trưng toán Trong tập lớn này, nghiên cứu hai chiến lược tìm kiếm: - Các kỹ thuật tìm kiếm mù: Trong chiến lược tìm kiếm này, khơng có hướng dẫn cho tìm kiếm, mà ta phát triển trạng thái cách hệ thống từ trạng thái ban đầu gặp trạng thái đích Có ba kỹ thuật tìm kiếm mù bản, tìm kiếm theo chiều rộng (Breath First Search), tìm kiếm theo chiều sâu (Depth First Search) tìm kiếm sâu dần - Các kỹ thuật tìm kiếm kinh nghiệm (tìm kiếm heuristic): với kỹ thuật tìm kiếm ta dựa vào kinh nghiệm hiểu biết vấn đề cần giải để xây dựng nên hàm đánh giá nhằm tìm đ nh tiềm n ng dẫn đến lời giải Trong số trạng thái chờ phát triển, ta chọn trạng thái đánh giá tốt để phát triển Do tốc độ tìm kiếm nhanh Các thuật tốn tìm kiếm mù 2.1 Khái niệm Thuật tốn tìm kiếm mù (Blind Search Algorithm) loại thuật tốn lĩnh vực trí tuệ nhân tạo khoa học máy tính sử dụng để giải vấn đề tìm kiếm, mà khơng yêu cầu sử dụng thông tin chi tiết không gian trạng thái cách thức di chuyển để tới mục tiêu Trong thuật tốn tìm kiếm mù, q trình tìm kiếm dựa vào việc thử nghiệm mở rộng trạng thái nút khơng gian tìm kiếm mà không cần dựa vào thông tin hướng di chuyển mức độ ưu tiên Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội Thuật tốn tìm kiếm mù thường áp dụng thơng tin tốn hạn chế, khơng tồn hàm mục tiêu hàm heuristic sử dụng để định hướng tìm kiếm Các ví dụ điển hình thuật tốn tìm kiếm mù bao gồm thuật tốn tìm kiếm theo chiều rộng (Breadth-First Search - BFS) thuật tốn tìm kiếm theo chiều sâu (Depth-First Search - DFS) 2.2 Thuật tốn tìm kiếm theo chiều rộng (Breadth First Search) a • • • Tư tưởng chiến lược tìm kiếm theo chiều rộng Từ đỉnh xuất phát duyệt tất đỉnh kề Làm tương tự với đỉnh vừa duyệt Quá trình duyệt kết thúc tìm thấy đỉnh TG hết đỉnh để duyệt b Thuật tốn tìm kiếm theo chiều rộng Lưu trữ: Sử dụng hai danh sách DONG MO hoạt động theo kiểu FIFO (hàng đợi) DONG: Chứa đỉnh xét MO: chứa đỉnh xét MO = Ø; MO = MO ∪ {T0} while (MO != Ø) { n = get(MO) // lấy đỉnh đầu danh sach MO if (n==TG) // n trạng thái kết thúc return TRUE // tìm kiếm thành cơng, dừng DONG = DONG ∪ {n} //đánh dấu n xét for đỉnh kề v n if (v chưa đc xét) //v chưa DONG MO = MO ∪ {v} //đưa v vào cuối DS MO father(v)=n// lưu lại vết đường từ n đến v } Chúng ta có số nhận xét sau thuật tốn tìm kiếm theo chiều rộng: Trong tìm kiếm theo chiều rộng, trạng thái sinh trước phát triển trước, danh sách MỞ xử lý hàng đợi Trong bước 2, ta cần kiểm tra xem n có trạng thái kết thúc hay khơng Nói chung trạng thái kết thúc xác định Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội OPEN ={T0}, g(T0) = 0, CLOSE = while OPEN { n getNew(OPEN) g(n) → // lấy đỉnh n cho if (n = TG) then return True else { for each m if(m A(n) OPEN) and (m CLOSE) then { g(m) = g(n) + cost(m,n) OPEN = OPEN {m} } else g(m) = min{g(m), gnew(m)} CLOSE = CLOSE {n} } return False; } 3.2.2 Thuật toán AKT 3.2.2.1 Khái niệm Thuật giải AT trình tìm đường xét đến đỉnh giá chúng Nghĩa việc tìm đỉnh triển vọng phụ thuộc hàm g(n) (thông tin khứ) Tuy nhiên thuật giải khơng cịn phù hợp gặp phải toán phức tạp (độ phức tạp cấp hàm mũ) ta phải tháo lượng nút lớn Để khắc phục nhược điểm này, người ta sử dụng thêm thông tin bổ sung xuất phát từ thân tốn để tìm đỉnh có triển vọng, tức đường tối ưu tập 12 Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội trung xung quanh đường tốt sử dụng thông tin đặc tả tốn (thơng tin q tương lai) Theo thuật giải này, chi phí đỉnh xác định: f(n) = g(n) + h(n) Đỉnh n chọn f(n) Việc xác định hàm ước lượng h(n) thực dựa theo: i) Chọn toán tử xây dựng cung cho loại bớt đỉnh khơng liên quan tìm đỉnh có triển vọng ii) Sử dụng thêm thông tin bổ xung nhằm xây dựng tập OPEN cách lấy đỉnh tập OPEN Để làm việc người ta phải đưa độ đo, tiêu chuẩn để tìm đỉnh có triển vọng Các hàm sử dụng kỹ thuật gọi hàm đánh giá Sau số phương pháp xây dựng hàm đánh giá: i) Dựa vào xác suất đỉnh đường tối ưu ii) Dựa vào khoảng cách, sai khác trạng thái xét với trạng thái đích thơng tin liên quan đến trạng thái đích 3.2.2.2 Thuật tốn Vào: - Đồ thị G = (V, E) V tập đỉnh, E tập cung - f: V RR+ ( f(n): hàm ước lượng) - Đỉnh đầu T0 tập đỉnh đích Ra: - Đường p: T0 R TG  Goal Phương pháp: Sử dụng danh sách CLOSE OPEN void AKT() { OPEN = {T0}, g(T0) = Tính h(T0), f(T0) = g(T0) + h(T0) while OPEN { n getNew(OPEN)// lấy đỉnh n cho f(n) → if(n = TG) then return True 13 Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội else { for each m A(n) { g(m) = g(n) + cost(m,n) Tính h(m), f(m) = g(m) + h(m) OPEN=OPEN {m} } } return False; } 3.2.3 Thuật giải A* 3.2.3.1 Khái niệm A* phiên đặc biệt AKT áp dụng cho trường hợp đồ thị Thuật tốn tìm đường từ nút khởi đầu tới nút đích cho trước (hoặ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 Ý tưởng trực quan Xét tốn tìm đường - toá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 cho trước tới đích Trong trường hợp tìm đường đi, đánh giá khoảng cách đường chim bay - đánh giá xấp xỉ 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 là, 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 14 Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội dạng mê cung, cách để đến đích trước hết phải phía xa đích cuối quay lại Trong trường hợp đó, việc thử nút theo thứ tự "gần đích thử trước" gây tốn thời gian 3.2.3.2 Thuật toá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 định hàm Trong đó, chi phí đường thời điểm tại, nghĩa tổng trọng số cạnh qua hàm đánh giá heuristic chi phí nhỏ để đến đích từ 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 có giá trị thấp độ ưu tiên cao (do 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 đó, đường (p) trả tập hợp đường tạo việc kéo dài p thêm nút kề cạnh Giả thiết hàng đợi xếp tự động giá trị hàm 15 Khoa công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội "Tập hợp đóng" (đóng) lưu giữ tất nút cuối p (các 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 Chương 2: Xây dựng ứng dụng vào toán tháp Hà Nội Khơng gian trạng thái tốn tháp Hà Nội Cho ba cọc 1, 2, Ở cọc ban đầu có n đĩa xếp theo thứ tự to dần từ lên Dịch chuyển n đĩa sang cọc thứ cho: - Mỗi lần chuyển đĩa - Trong cọc không cho phép đĩa to nằm đĩa nhỏ Bài toán xác định biết đĩa nằm cọc Ta xác định: 1- Cọc chứa đĩa nào? Cọc chứa đĩa nào? Và cọc chứa đĩa 2- Đĩa lớn thứ i nàm cọc nào? ( i = n ) Như cách mơ tả trạng thái tốn khơng nhất, vấn đề chọn cách mô tả để đạt mục đích dễ dàng Theo trên, với ta phải dùng danh sách động số đĩa cọc khác thời điểm khác Ví dụ: tốn tháp hà nội với đĩa, ban đầu đĩa cọc 1, cần chuyển đĩa sang cọc 3: 16

Ngày đăng: 30/08/2023, 02:16

TỪ KHÓA LIÊN QUAN

w