Bài 3 của bài giảng Trí tuệ nhân tạo giúp người học biểu diễn được các bài toán trong không gian trạng thái, biết được các chiến lược tìm kiếm, biết cách tìm kiếm trên không gian trạng thái, nắm bắt được cách sử dụng không gian trạng thái để biễu diễn suy luận với phép tính vị từ: đồ thị và/hoặc. Mời các bạn cùng tham khảo.
CHƯƠNG 3: KỸ THUẬT TÌM KIẾM: Lec Giải vấn đề tìm kiếm: tìm kiếm mù TTNT p.1 Nội dung Biểu diễn tốn Khơng Gian Trạng Thái Các chiến lược tìm kiếm – Tìm kiếm mù – Tìm kiếm kinh nghiệm (heuristic) Tìm kiếm khơng gian trạng thái: – 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 cách đào sâu nhiều lần (depth – first search with iterative deepening) Sử dụng không gian trạng thái để biễu diễn suy luận với phép tính vị từ: Đồ thị Và/Hoặc (And/Or Graph) TTNT p.2 Giải vấn đề tìm kiếm Khi biểu diễn vấn đề đồ thị không gian trạng thái, sử dụng lý thuyết đồ thị để phân tích cấu trúc độ phức tạp vấn đề rb1 thủ tục tìm kiếm b2 Riverbank1 b4 b3 b1 Island1 i2 i1 Island b5 b6 b7 Riverbank rb2 Hệ thống cầu thành phố Konigsberg biểu diễn đồ thị tương ứng TTNT p.3 Bài tốn tìm kiếm Tìm kiếm: tìm đối tượng thoả mãn số địi hỏi đó, tập hợp rộng lớn đối tượng Các kỹ thuật tìm kiếm đuợc áp dụng rộng rãi lĩnh vực TTNT : – Tìm kiếm mù : khơng có hiểu biết đối tượng để hướng dẫn tìm kiếm – Tìm kiếm kinh nghiệm (heuristic) : dựa vào kinh nghiệm hiểu biết vấn đề cần giải để xây dựng hàm đánh giá hướng dẫn tìm kiếm • Tìm kiếm tối ưu • Tìm kiếm có đối thủ : tìm kiếm nước trò chơi hai người (cờ vua, cờ tướng, ) TTNT p.4 Không gian trạng thái Không gian tìm kiếm : bao gồm tất đối tượng mà ta cần quan tâm tìm kiếm (có thể không gian liên tục (không gian véc tơ thực n chiều) hoạc không gian đối tượng rời rạc Tốn tử : mơ tả hành động phép biến đổi để đưa trạng thái tới trạng thái khác Ví dụ : Bài tốn tìm đường : đường nối thành phố biểu diễn toán tử ->Giải toán tìm dãy tốn tử để đưa trạng thái ban đầu (điểm xuất phát) trạng thái kết thúc (điểm đích) Biểu diễn tốn khơng gian trạng thái, cần xác định yếu tố : + Trạng thái ban đầu + Một tập hợp toán tử + Một tập hợp trạng thái kết thúc (trạng thái đích) Khơng gian trạng thái biểu diễn đồ thị có hướng: đỉnh đồ thị tương đương với trạng thái, toán tử R biến đổi trạng thái u thành trạng thái v cung (u,v) gán nhãn R TTNT p.5 Một phần KGTT triển khai Tic-tac-toe Đồ thị có hướng khơng lặp (directed acyclic graph - DAG) TTNT p.6 Trị đố hay 15 Trạng thái ban đầu Trị đố 15 Trị đố 8ơ 11 14 10 Trạng thái đích 12 13 14 13 15 11 15 12 10 8 Cần biểu diễn KGTT cho toán nào? TTNT p.7 KGTT 8-puzzle sinh phép “di chuyển trống” Có khả xảy vịng lặp khơng? TTNT p.8 Một ví dụ toán TSP Cần biểu diễn KGTT cho toán nào? TTNT p.9 KGTT toán TSP Mỗi cung đánh dấu tổng giá đường từ nút bắt đầu đến nút TTNT p.10 TK hướng từ liệu Việc tìm kiếm từ liệu đến mục tiêu Thích hợp khi: – Tất phần liệu cho từ đầu – Có nhiều mục tiêu, có số phép tốn áp dụng cho trạng thái toán – Rất khó đưa mục tiêu giả thuyết lúc đầu TTNT p.18 TK hướng từ mục tiêu Việc tìm kiếm từ mục tiêu trở liệu Thích hợp khi: – Có thể đưa mục tiêu giả thuyết lúc đầu – Có nhiều phép tốn áp dụng trạng thái toán => bùng nổ số lượng trạng thái – Các liệu tốn khơng cho trước, hệ thống phải đạt trình tìm kiếm TTNT p.19 Các phương pháp tìm kiếm đồ thị KGTT: Phát triển từ giải thuật quay lui (back – tracking): Tìm kiếm rộng (breath-first search) Tìm kiếm sâu (depth-first search) TK sâu cách đào sâu nhiều lần (depth-first search with iterative deepening) TTNT p.20 Tìm kiếm theo chiều rộng 2 Open = [A]; closed = [] Open = [B,C,D]; closed = [A] Open = [C,D,E,F]; closed = [B,A] Open = [D,E,F,G,H]; closed = [C,B,A] Open = [E,F,G,H,I,J]; closed = [D,C,B,A] Open = [F,G,H,I,J,K,L]; closed = [E,D,C,B,A] Open = [G,H,I,J,K,L,M]; (vì L có open); closed = [F,E,D,C,B,A] … TTNT p.21 Tìm kiếm theo chiều sâu Open = [A]; closed = [] Open = [B,C,D]; closed = [A] Open = [E,F,C,D];closed = [B,A] Open = [K,L,F,C,D]; closed = [E,B,A] Open = [S,L,F,C,D]; closed = [K,E,B,A] Open = [L,F,C,D]; closed = [S,K,E,B,A] Open = [T,F,C,D]; closed = [L,S,K,E,B,A] Open = [F,C,D]; closed = [T,L,S,K,E,B,A] … TTNT p.22 Tìm kiếm Sâu hay Rộng? (1) Có cần thiết tìm đường ngắn đến mục tiêu hay không? Sự phân nhánh không gian trạng thái Tài nguyên không gian thời gian sẵn có Khoảng cách trung bình đường dẫn đến trạng thái mục tiêu Yêu cầu đưa tất lời giải lời giải tìm TTNT p.23 Tìm kiếm sâu cách đào sâu nhiều lần (depth-first iterative deepening) Độ sâu giới hạn (depth bound): giải thuật TK sâu quay lui trạng thái xét đạt đến độ sâu giới hạn định TK Sâu cách đào sâu nhiều lần: TK sâu với độ sâu giới hạn 1, thất bại, lặp lại GT TK sâu với độ sâu 2,… GT tiếp tục tìm mục tiêu, lần lặp lại tăng độ sâu lên GT có độ phức tạp thời gian bậc với TK Rộng TK Sâu TTNT p.24 The 8-puzzle searched by a production system with loop detection and depth bound Trị chơi đố 8-puzzle TTNT p.25 Đồ thị Và/Hoặc Sử dụng KGTT để biễu diễn suy luận với phép tính vị từ Là phương pháp qui toán toán Một tập hợp mệnh đề / câu vị từ tạo thành đồ thị Và/Hoặc (And/Or graph) hay siêu đồ thị (hypergraph) Trong đồ thị Và/Hoặc: – Các nút AND biểu thị phân chia toán, tất toán phải chứng minh – Các nút OR biểu thị chiến lược giải toán khác nhau, cần chứng minh chiến lược đủ Có thể áp dụng TK theo kiểu hướng từ liệu hay từ mục tiêu Trong giải thuật cần ghi nhận diễn tiến q trình TTNT p.26 Ví dụ Đồ thị Và/Hoặc Giả sử tình với mệnh đề sau: a b abd bdf aeh c ace fg Hãy trả lời câu hỏi sau: h có khơng? h có cón nêu b sai? TTNT p.27 Cây nghiệm Gốc ứng với toán cần giải Các đỉnh kết thúc (ứng với toán sơ cấp) Nếu u đỉnh cây, đỉnh u đỉnh kề u theo tốn tử Các đỉnh gán nhãn giải khơng giải – Đỉnh giải được: • Đỉnh kết thúc • Đỉnh khơng kết thúc có toán tử R cho tất đỉnh kề theo R giải – Đỉnh khơng giải được: • Đỉnh khơng kết thúc khơng có đỉnh kề • u khơng phải đỉnh kết thúc toán tử R áp dụng u có đỉnh v kề u theo R khơng giải TTNT p.28 Tìm kiếm đồ thị VÀ/HOẶC Sử dụng kỹ thuật tìm kiếm theo chiều sâu để đánh dấu đỉnh Function Solvable(u); Begin If u đỉnh kết thúc then {Solvable true; stop}; If u khơng đỉnh kết thúc khơng có đỉnh kề then {Solvable false; stop}; For toán tử R áp dụng u {OKtrue; for v kề u theo R if Solvable(v) = false then {OKfalse; exit}; if OK then {Solvable(u)true; operator(u)R; stop} } Solvable(u)false; End; TTNT p.29 Ví dụ: Hệ Tư Vấn Tài Chính Đồ Thị And/Or biểu diễn phần KGTT duyệt qua để đến lời giải TTNT p.30 VÍ DỤ ĐỒ THỊ AND/OR: Cho tốn mơ tả câu vị từ: Hãy vẽ đồ thị AND/OR biểu diễn phần KGTK để trả lời câu hỏi: “Fred đâu?” (Áp dụng suy diễn lùi) TTNT p.31 Bài Tập Chương TTNT p.32 ... dẫn tìm kiếm – Tìm kiếm kinh nghiệm (heuristic) : dựa vào kinh nghiệm hiểu biết vấn đề cần giải để xây dựng hàm đánh giá hướng dẫn tìm kiếm • Tìm kiếm tối ưu • Tìm kiếm có đối thủ : tìm kiếm. .. Trạng Thái Các chiến lược tìm kiếm – Tìm kiếm mù – Tìm kiếm kinh nghiệm (heuristic) Tìm kiếm khơng gian trạng thái: – Tìm kiếm theo chiều rộng (breath – first search) – Tìm kiếm theo chiều sâu (depth... ứng TTNT p.3 Bài tốn tìm kiếm Tìm kiếm: tìm đối tượng thoả mãn số địi hỏi đó, tập hợp rộng lớn đối tượng Các kỹ thuật tìm kiếm đuợc áp dụng rộng rãi lĩnh vực TTNT : – Tìm kiếm mù : khơng có