Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
2,59 MB
Nội dung
1 TRÍ TUỆ NHÂN TẠO Chương KHƠNG GIAN TRẠNG THÁI VÀ CÁC PHƯƠNG PHÁP TÌM KIẾM MÙ ´ Giải vấn đề tìm kiếm ´ Tìm kiếm AI ´ Các chiến lược tìm kiếm ´ Các chiến lược tìm kiếm mù o Tìm kiếm theo bề rộng o Tìm kiếm theo độ sâu o Tìm kiếm theo độ sâu dần Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm Các trị chơi đố Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm Bài toán ba thầy tu ba quỷ ´Mục tiêu: đưa tất người quỷ sang bờ phải sơng an tồn ´Điều kiện: o Nếu số người bờ số quỷ người bị quỷ ăn thịt o Mỗi lượt thuyền chở nhiều người không trống Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm Bài tốn người giao hàng ´Tìm đường đồ thị gồm chuỗi đỉnh T0,T1, T2, …,Tn cho tổng chi phí nhỏ å cos t (T n i -1 , Ti ) 2 4 Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm “Bài tốn Konigsberg” ´Nhà tốn học người Áo Leonhard Euler phát minh lý thuyết đồ thị để giải “bài toán cầu Konigsberg” Thành phố Konigsberg nằm hai bờ hai hịn đảo sơng Người ta nối đảo hai bờ sông với bảy cầu Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm “Bài toán Konigsberg” Bài toán Konigsberg đặt câu hỏi liệu khắp thành phố mà ngang qua cầu lần hay không? Mặc dù người dân khơng tìm lối vậy, họ nghi ngờ có thể, đồng thời không chứng minh khơng có khả Nhờ phát minh dạng lý thuyết đồ thị, Euler tạo cách biểu diễn phương án lựa chọn cho đồ thành phố Nguyễn Đình Cơng, BM Khoa học máy tính Đồ thị hệ thống cầu Konigsberg Giải vấn đề tìm kiếm Biểu diễn đồ thị toán ´Đồ thị: cấu trúc bao gồm: oTập nút N1, N2,… Nn, Không hạn chế oTập cung nối cặp nút, có nhiều cung cặp nút A B B A C D Nút: {A,B,C,D,E} D E C E Cung: {(a,d), (a,b), (a,c), (b,c), (c,d), (c,e), (d,e) } Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm Biểu diễn đồ thị tốn ´Đặc tính đồ thị oĐồ thị có hướng: đồ thị với cung có định hướng, nghĩa cặp nút có quan hệ thứ tự trước sau theo cung Cung (Ni,Nj) có hướng từ Ni đến Nj, Khi Ni nút cha Nj nút oNút lá: nút nút oPath: chuỗi có thứ tự nút mà nút tồn cung oĐồ thị có gốc: Trên đồ thị tồn nút X cho tất path qua nút X gốc – Root oVịng: path qua nút nhiều lần oCây: graph mà khơng có path vịng oHai nút nối nhau: có path qua nút Nguyễn Đình Cơng, BM Khoa học máy tính Giải vấn đề tìm kiếm Khơng gian trạng thái ´Định nghĩa:Không gian trạng thái hệ thống gồm thành phần [N,A,S,G] Trong đó: oN: tập nút Graph Mỗi nút trạng thái trình giải vấn đề oA: Tập cung nối nút N Mỗi cung bước giải vấn đề Cung có hướng oS: Tập trạng thái bắt đầu S khác rỗng oG: Tập trạng thái đích G khác rỗng ´Solution path: Là path từ nút bắt đầu Si đến nút kết thúc Gj ´Mục tiêu giải thuật tìm kiếm tìm solution path và/hay solution path tốt Nguyễn Đình Cơng, BM Khoa học máy tính 10 Giải vấn đề tìm kiếm ´ Khơng gian trạn thái trị chơi Caro: Có tất x x x … hay 9! = 362880 trạng thái khác tạo Nguyễn Đình Cơng, BM Khoa học máy tính Breadth-first search 28 ´ Thuật giải: o Bước 1: Tập Open chứa đỉnh gốc s chờ xét o Bước 2: Kiểm tra tập Open có rỗng khơng • Nếu tập Open không rỗng, lấy đỉnh khỏi tập Open làm đỉnh xét p Nếu p đỉnh g cần tìm, kết thúc tìm kiếm • Nếu tập Open rỗng, tiến đến bước o Bước 3: Đưa đỉnh p vào tập Close, sau xác định đỉnh kề với đỉnh p vừa xét Nếu đỉnh v kề với p không thuộc tập Close, đưa chúng vào cuối tập Open Quay lại bước o Bước 4: Kết luận khơng tìm đỉnh đích cần tìm Open hoạt động theo quy tắc FIFO Nguyễn Đình Cơng, BM Khoa học máy tính Breadth-first search 29 ´ Ví dụ Lần lặp A D p A B C D E F G Open [A] [B C D ] [C D E F] [D E F G] [E F G] [F G H I] [G H I J] [H I J] Close [] [A] [A B] [A B C [A B C [A B C [A B C [A B C Nguyễn Đình Cơng, BM Khoa học máy tính B C G E ] D] D E] D E F] D E F] H F I J Breadth-first search 30 Ưu điểm Sử dụng kỹ thuật vét cạn tìm lời giải tốn có lời giải Đường tìm qua đỉnh Nhược điểm Tìm kiếm cách máy móc, khơng có thơng tin hỗ trợ cho q trình tìm kiếm, không nhận lời giải o Không phù hợp với khơng gian tốn có kích thước lớn: ´ o o ´ o • • • Cần nhiều nhớ theo số nút cần lưu trữ Cần nhiều công sức xử lý nút, nhánh dài, số nút nhiều Dễ thực thao tác khơng thích hợp, thừa, đưa đến việc tăng đáng kể số nút phải xử lý o Không hiệu qủa lời giải sâu Nguyễn Đình Cơng, BM Khoa học máy tính 31 Breadth-first search ´ Hồn thành? Chắc chắn tìm nghiệm tốn có nghiệm (nếu b hữu hạn) ´ Thời gian? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1) ´ Không gian? O(bd+1) (luôn giữ tất nút nhớ) Trong đó: b: số nhánh tối đa trạng thái d: độ sâu ´ Tối ưu? Thuật toán tối ưu giá = bước ´ Không gian vấn đề quan trọng thời gian Nguyễn Đình Cơng, BM Khoa học máy tính Depth-first search 32 ´ Tư tưởng tìm kiếm theo độ sâu nút “con cháu” nút thời xem xét trước nút “anh em” ´ Thuật giải: o Bước 1: Tập Open chứa đỉnh gốc s chờ xét o Bước 2: Kiểm tra tập Open có rỗng khơng • Nếu tập Open không rỗng, lấy đỉnh khỏi tập Open làm đỉnh xét p Nếu p đỉnh g cần tìm, kết thúc tìm kiếm • Nếu tập Open rỗng, tiến đến bước o Bước 3: Đưa đỉnh p vào tập Close, sau xác định đỉnh kề với đỉnh p vừa xét Nếu đỉnh v kề với p không thuộc tập Close, đưa chúng vào đầu tập Open Quay lại bước o Bước 4: Kết luận khơng tìm đỉnh đích cần tìm ´ Open hoạt động theo quy tắc LIFO Nguyễn Đình Cơng, BM Khoa học máy tính 33 Depth-first search ´ Ví dụ Lần lặp A p A B E H I F J C G Open [A] [B C D ] [E F C D] [H I F C D] [I F C D] [F C D] [J C D] [C D] [G D] Nguyễn Đình Cơng, BM Khoa học máy tính D Close [] [A] [A B] [A B E [A B E [A B E [A B E [A B E [A B E B C G E ] H] H I] H I F] H I F J] H I F J C] H F I J 34 Depth-first search ´ Ưu điểm o Bảo đảm tìm lời giải tốn có lời giải o Tiết kiệm thời gian lời giải sâu ´ Nhược điểm o Tìm kiếm cách máy móc, khơng có thơng tin hỗ trợ cho q trình tìm kiếm, khơng nhận lời giải Nếu chọn nút ban đầu khơng thích hợp khơng dẫn đến đích tốn o Sử dụng kỹ thuật vét cạn nên không phù hợp với không gian tốn lớn Nguyễn Đình Cơng, BM Khoa học máy tính 35 Depth-first search ´ Hồn thành? Khơng tìm nghiệm khơng gian có độ sâu vơ hạn, khơng gian lặp ´ Sửa đổi thuật toán để tránh đường đến trạng thái gây việc lặp lại-> tìm nghiệm khơng gian hữu hạn ´ Thời gian? O(bd): lớn m lớn nhiều so với b tốn có nhiều nghiệm, thực nhanh tìm kiếm theo bề rộng ´ Không gian? O(bd) tức không gian tuyến tính! (chỉ cần lưu nút chưa phát triển nút nút đường từ gốc đến nút u) ´ Tối ưu? Thuật tốn khơng tối ưu Nguyễn Đình Cơng, BM Khoa học máy tính Breath First vs Depth First 36 ´ BFS: open tổ chức dạng FIFO (Queue) ´ DFS: open tổ chức dạng LIFO (Stack) ´ Đặc tính o BFS: hiệu lời giải nằm gần gốc tìm kiếm, tìm nhiều lời giải, ln tìm nghiệm có số cung nhỏ o DFS: hiệu lời giải nằm sâu tìm kiếm có phương án chọn hướng xác ´ Kết o BFS: chắn tìm kết có o DFS: bị lặp vơ tận Tại sao? ´ Bùng nổ tổ hợp khó khăn lớn cho giải thuật Giải pháp cho bùng nổ tổ hợp? Nguyễn Đình Cơng, BM Khoa học máy tính 37 Depth limited search ´ DFS có khả lặp vô tận trạng thái sinh liên tục Độ sâu tăng vô tận ´ Khắc phục tìm kiếm theo độ sâu với mức giới hạn độ sâu L, tức nút độ sâu L khơng có nút ´ Chiến lược giới hạn: o Cố định độ sâu MAX, danh thủ chơi cờ tính trước số nước định o Theo cấu hình tài nguyên máy tính o Meta knowledge việc định giới hạn độ sâu ´ Giới hạn độ sâu => co hẹp không gian trạng thái => nghiệm Nguyễn Đình Cơng, BM Khoa học máy tính 38 Depth limited search ´ Thuật giải: o Bước 1: Tập Open chứa đỉnh gốc s chờ xét o Bước 2: Kiểm tra tập Open có rỗng khơng • Nếu tập Open khơng rỗng, lấy đỉnh khỏi tập Open làm đỉnh xét p Nếu p đỉnh g cần tìm, kết thúc tìm kiếm • Nếu tập Open rỗng, tiến đến bước o Bước 3: Nếu L(p)£ L, đưa đỉnh p vào tập Close, sau xác định đỉnh kề với đỉnh p vừa xét Nếu đỉnh u kề với p không thuộc tập Close, đưa chúng vào đầu tập Open, đặt L(u)=L(p)+1 Quay lại bước o Bước 4: Kết luận khơng tìm đỉnh đích cần tìm Open hoạt động theo quy tắc LIFO Nguyễn Đình Cơng, BM Khoa học máy tính 39 Iterative Deepening search ´ Nếu tìm kiếm chứa nhánh vơ hạn, sử dụng tìm kiếm theo độ sâu, ta bị mắc kẹt nhánh khơng tìm nghiệm ´ Để khắc phục tình trạng đó, ta tìm kiếm theo độ sâu tới mức L đó; khơng tìm nghiệm, ta tăng độ sâu lên L +1 lại tìm kiếm theo độ sâu tới mức L+1 Quá trình lặp lại với L 1, 2,…, MAX dừng Nguyễn Đình Cơng, BM Khoa học máy tính 40 Iterative Deepening search Nguyễn Đình Cơng, BM Khoa học máy tính 41 Iterative Deepening search Nguyễn Đình Cơng, BM Khoa học máy tính 42 Iterative Deepening search ´ Ln tìm nghiệm (nếu tốn có nghiệm), miễn chọn max đủ lớn (giống tìm kiếm theo chiều rộng) ´ Có độ phức tạp thời gian O(kd) (giống tìm kiếm rộng) ´ Có độ phức tạp khơng gian O(k*d) (giống tìm kiếm sâu) ´ Giải thuật tìm kiếm sâu dần thường áp dụng cho toán có khơng gian trạng thái lớn độ sâu nghiệm khơng biết trước Nguyễn Đình Cơng, BM Khoa học máy tính ... máy tính 16 Các chiến lược tìm kiếm ´ Các chiến lược tìm kiếm mù o Tìm kiếm theo bề rộng, tìm kiếm theo độ sâu, tìm kiếm theo độ sâu hạn chế, tìm kiếm sâu lặp,… ´ Các chiến lược tìm kiếm có sử... Các phương pháp tìm kiếm dựa vào đánh giá trạng thái để hướng dẫn tìm kiếm gọi chung phương pháp tìm kiếm kinh nghiệm Nguyễn Đình Cơng, BM Khoa học máy tính 19 Các chiến lược tìm kiếm ´ Cây tìm. .. Cây tìm kiếm o Quá trình tìm kiếm trình xây dựng tìm kiếm Cây tìm kiếm mà đỉnh gắn trạng thái khơng gian trạng thái Gốc tìm kiếm tương ứng với trạng thái ban đầu o Có thể chuyển vấn đề tìm kiếm