Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải Biểu diễn bài toán, tìm lời giải
Chương 2: Biểu diễn toán & tìm lời giải Nội dung Bài toán Biểu diễn toán Tìm kiếm Các chiến lược ñiều khiển Các ñặc trưng toán Vấn ñề thiết kế CT tìm kiếm Mô hình ứng dụng TTNT TTNT = Presentation & Search Tri Thức Knowledge Engineering Tìm kiếm Search Suy luận Heurictic Bài toán Giải toán cách tìm kiếm, gồm: Cấu trúc toán: tìm ñường ñi ñồ thị Biểu diễn toán không gian trạng thái Giải toán = Tìm trạng thái/con ñường không gian trạng thái (trạng thái ñầu -> trạng thái ñích) Trạng thái Biểu diễn bước ñó toán Trong trò chơi, tic-tac-toe, bàn cờ trạng thái X Trạng thái O O Trạng thái Trạng thái Bài toán (tt) Chuyển trạng thái, luật chuyển Biểu diễn cho việc chuyển từ trạng thái ñó ñến trạng thái khác Ví dụ: trò chơi, ñó luật chơi game O O O Bài toán (tt) Trạng thái ñầu Trạng thái xuất phát toán Một toán có nhiều trạng thái khởi ñầu Ví dụ: game tic-tac-toe, trạng thái rỗng Trạng ñích Trạng thái mà toán ñã ñược giải Một toán có nhiều trạng thái ñích Ví dụ: game tic-tac-toe, trạng thái ñích là: O X X X O Bài toán (tt) Không gian trạng thái: hệ thống gồm thành phần [N,A,S,G] N tập nút Graph Mỗi nút trạng thái trình giải vấn ñề A: Tập cung nối nút N Mỗi cung bước giải vấn ñề Cung có hướng S: Tập trạng thái bắt ñầu S khác rỗng G: Tập trạng thái ñích G Không rỗng Không gian trạng thái ñược xây dựng DẦN chương trình chạy Với toán lớn, không ñủ thời gian, không gian ñể ñặc tả cho trạng thái cụ thể, ñường chuyển cụ thể Bài toán (tt) Các vấn ñề khó khăn tìm kiếm với toán TTNT ðặc tả vấn ñề phức tạp Không gian tìm kiếm lớn ðặc tính ñối tượng tìm kiếm thay ñổi ðáp ứng thời gian thực Khó khăn kỹ thuật Bộ nhớ tốc ñộ truy xuất Bài toán (tt) State Space Không gian tìm kiếm thường graph Mục tiêu tìm kiếm path Phải lưu trữ toàn không gian trình tìm kiếm Không gian tìm kiếm biến ñộng liên tục trình tìm kiếm ðặc tính trạng thái/nút phức tạp & biến ñộng Database Không gian tìm kiếm list hay tree Tìm kiếm record/nút Phần tử ñã duyệt qua không dùng tới Không gian tìm kiếm cố ñịnh trình tìm kiếm Thuộc tính record/nút cố ñịnh Bài toán: Tic tac toe ðồ thị có hướng không lặp lại (directed acyclic graph - DAG) 10 BT: Traveling Salesman Problem (TSP) Mô tả: người bàn hàng có N thành phố phải ñi qua, ñi qua 01 lần/Tp Mỗi cặp TP có ñường nối Tìm ñường ngắn ñi vòng qua thành phố trở lại Tp ban ñầu Số ñường: (N-1)! ->Bùng nổ tổ hợp -> cần chiến lược sau Kỹ thuật: Nhánh Cận (branch-and-bound): Giữ ñường ngắn ñang xét Dừng việc xem xét ñường ñó có trị lớn ñường ngắn ñang xét 21 Heuristic search (informed search) Là kỹ thuật cải tiến hiệu trình tìm kiếm General-purpose: Người láng giềng gần nhất: Bằng cách chọn cách tốt bước TSP: Tại mổi thành phố, chọn TP gần -> time N2 ( cũ N!) Special-purpose: hai cách tham gia vào tìm kiếm: Chính luật Hàm heuristic: ñáng giá ưu TT cụ thể chọn TT mong muốn Có trade-off thời gian tính hàm thời gian có lợi hàm mang lại 22 Heuristic search Ví dụ Chess: Ưu ñối thủ TSP: Tổng khoảng cách puzzle: Tổng khoảng cách miếng sai vị trí 23 Các ñặc trưng toán Một số khía cạnh cần phân tích chọn kỹ thuật giải BT: Khả phân rã toán Khả lờ ñi quay lui Khả dự ñoán toàn cục ðích trạng thái hay ñường Lượng tri thức cần ñể giải toán Có cần can thiệp người trình giải không? 24 Các ñặc trưng toán (tt) Khả phân rã toán Phân rã ñược: BT tính tích phân ký hiệu Giải cách Chia nhỏ BT lớn thành BT ñộc lập Giải BT nhỏ Kết hợp thành BT lớn Không phân rã ñược: BT giới khối (??) 25 Các ñặc trưng toán (tt) Các bước giải lờ ñi hay quay lui Có thể lờ ñi : BT chứng minh ñịnh lý Vì: ñịnh lý ñúng sau vài bước áp dụng luật Có thể quay lui: BT 8-puzzle Vì: di chuyển theo hướng ngược lại ñể TT trước Không thể quay lui: BT chơi cờ Vì: game over! 26 Các ñặc trưng toán (tt) Các bước giải lờ ñi hay quay lui: Có thể lờ ñi : Có thể áp dụng chiến lược ñiều khiển ñơn giản không cần quay lui Dể dàng thực Có thể quay lui: Chiến lược phức tạp ñể quay lui ñược bước lỗi Có thể dùng Push-Down Stack Không thể quay lui: Dùng chiến lược phức tạp mổi ñịnh ñó ñịnh cuối Có thể dùng giải pháp Planning Sẽ ñược xem xét chương sau 27 Các ñặc trưng toán (tt) Khả dự ñoán toán: Có thể dự ñoán ñược: BT puzzle -> ñề chuổi nước ñi tự tin vào kết qua xãy -> Có thể quay lui ñược Không thể dự ñoán ñược: game có ñối kháng Cần theo ñuổi nhiều kế hoạch Có chiến lược/ñánh giá ñể chọn kế hoạch tốt 28 Các ñặc trưng toán (tt) Lời giải tuyệt ñối hay tương ñối Tuyệt ñối (best-path) : toán TSP Tính toán khó (tổng quát) Cần GT tìm toàn diện Tương ñối (any-path): toán suy luận ñời thường (xem sau) Có thể dùng heuristic ñể giải thời gian hợp lý 29 Các ñặc trưng toán (tt) Lời giải trạng thái hay ñường Trạng thái: toán tìm cách hiểu phù hợp cho câu Ví dụ: “The bank president ate a dish of pasta salad with the fork.” Từng từ như: bank, president, … ñược hiểu theo nhiều cách Một kiểu tìm kiếm ñó ñược thực ñể tìm cách hiểu toàn cho câu Con ñường Song, ñiều tương ñối Vì biểu diễn trạng thái ñể bao gồm thông tin phần hay toàn ñường 30 Các ñặc trưng toán (tt) Vai trò tri thức gì? Cần tri thức: Như toán: “chơi cờ” Tri thức = luật ñể di chuyển hợp lệ, chế ñiều khiển, chiến lược ñiều khiển ñể tăng tốc tìm kiếm Cần nhiều tri thức Như toán: Hiểu câu chuyện tạp chí Tri thức: nhiều, ñã ghi tường minh không ñược ghi câu chuyện 31 Vấn ñề thiết kế CT tìm kiếm Sự tìm kiếm Tìm kiếm ~ duyệt cây, từ TT bắt ñầu -> TT ñích Cả tìm kiếm thường không ñược xây dựng sẵn Cấu trúc ñồ thị thường thay cho biểu diễn KGTT Các vấn ñề Xác ñịnh hướng tìm (forward hay backward reasoning) Cách lựa chọn luật ñể áp dụng (matching) Cách biểu diễn NODE trình tìm Các NODE ñồ thị ñược phát sinh nhiều lần, ñã ñược xem xét trước ñó trình duyệt -> cần loại bỏ NODE lặp lại -> Cần lưu lại NODE ñã xét 32 Vấn ñề thiết kế CT … Giải thuật kiểm tra NODE lặp lại (DFS): Xem xét tập NODE ñã tạo ra, ñể xem NODE ñã có chưa Nếu chưa thêm NODE vào ñồ thị Nếu ñã có: Thiết lập ñiểm mở rộng NODE ñang tồn , NODE bỏ ñi Nếu GT có lưu giữ ñường tốt có cần xem xét xem ñạt ñến NODE ñường tốt không, cập nhật lại ñường tốt 33 BÀI T P Xét ñồ thị trạng thái sau ñây, với chiến lược tìm kiếm bên liệt kê với danh sách thứ tự nút ñược duyệt qua: 13 10 14 1/ Tìm kiếm rộng (BFS) 2/ Tìm kiếm sâu (DFS) 3/ Tìm kiếm sâu với ñộ sâu 11 15 12 16 17 34 BÀI T P Giả sử P nút mục tiêu ñồ thị bên Hãy liệt kê danh sách thứ tự nút duyệt qua ứng với chiến lược tìm kiếm 1/ Tìm kiếm rộng (BFS) 2/ Tìm kiếm sâu (DFS) 3/ Tìm kiếm sâu với ñộ sâu 35 [...]... First search hiệu quả khi lời giải nằm gần gốc của cây tìm kiếm, tìm nhiều lời giải, luôn tìm ra nghiệm có số cung nhỏ nhất Depth First search hiệu quả khi lời giaỉ nằm sâu trong cây tìm kiếm và có một phương án chọn hướng ñi chính xác Kết quả Breath First search chắc chắn tìm ra kết quả nếu có Depth First có thể sa lầy vào ñường quá dài Bùng nổ tổ hợp là khó khăn lớn nhất cho các giải thuật này 19 Depth... ñặc trưng của bài toán (tt) Lời giải là tuyệt ñối hay tương ñối Tuyệt ñối (best-path) : như bài toán TSP Tính toán khó hơn (tổng quát) Cần GT tìm toàn diện hơn Tương ñối (any-path): như bài toán suy luận ñời thường (xem sau) Có thể dùng heuristic ñể giải trong thời gian hợp lý 29 Các ñặc trưng của bài toán (tt) Lời giải là trạng thái hay con ñường Trạng thái: như bài toán tìm ra cách hiểu phù hợp cho... giải BT: Khả năng phân rã bài toán Khả năng lờ ñi và quay lui Khả năng dự ñoán toàn cục ðích là trạng thái hay con ñường Lượng tri thức cần ñể giải bài toán Có cần sự can thiệp của con người trong quá trình giải không? 24 Các ñặc trưng của bài toán (tt) Khả năng phân rã bài toán Phân rã ñược: như BT tính tích phân ký hiệu Giải bằng cách Chia nhỏ BT lớn thành các BT con ñộc lập Giải từng BT nhỏ Kết hợp... nhiều tri thức Như bài toán: Hiểu câu chuyện trên tạp chí Tri thức: nhiều, cả những cái ñã ghi tường minh và cả những cái không ñược ghi trong chính câu chuyện 31 Vấn ñề trong thiết kế CT tìm kiếm Sự tìm kiếm Tìm kiếm ~ duyệt cây, từ TT bắt ñầu -> TT ñích Cả cây tìm kiếm thường không ñược xây dựng sẵn Cấu trúc ñồ thị thường thay thế cho cây trong biểu diễn KGTT Các vấn ñề Xác ñịnh hướng tìm (forward hay... 33 BÀI T P 1 Xét ñồ thị trạng thái sau ñây, với mỗi chiến lược tìm kiếm bên dưới hãy liệt kê với danh sách thứ tự các nút ñược duyệt qua: 1 3 2 4 5 6 9 13 7 8 10 14 1/ Tìm kiếm rộng (BFS) 2/ Tìm kiếm sâu (DFS) 3/ Tìm kiếm sâu với ñộ sâu là 3 11 15 12 16 17 34 BÀI T P 2 Giả sử P là nút mục tiêu của ñồ thị bên dưới Hãy liệt kê danh sách thứ tự các nút duyệt qua ứng với từng chiến lược tìm kiếm 1/ Tìm. .. kiểu tìm kiếm nào ñó ñược thực hiện ñể tìm ra cách hiểu toàn bộ cho câu Con ñường Song, ñiều này cũng tương ñối Vì có thể biểu diễn trạng thái ñể nó có thể bao gồm thông tin về một phần hay toàn bộ con ñường 30 Các ñặc trưng của bài toán (tt) Vai trò của tri thức là gì? Cần ít tri thức: Như bài toán: “chơi cờ” Tri thức = luật ñể di chuyển hợp lệ, cơ chế ñiều khiển, chiến lược ñiều khiển ñể tăng tốc tìm. . .Bài toán: 8 puzzle Có khả năng xảy ra vòng lặp không? 11 Chiến lược ñiều khiển Sự cần thiết của chiến lược ñiều khiển ðể giải ñược và giải nhanh bài toán Các yêu cầu của 1 chiến lược tốt Tạo ra sự thay ñổi Có tính hệ thống Chọn luật radom -> tốt hơn so với trường hợp ñầu, nhưng quá trình giải có thể dài hơn -> Cần xây dựng khả năng duyệt một cách... các khối (??) 25 Các ñặc trưng của bài toán (tt) Các bước giải có thể lờ ñi hay quay lui Có thể lờ ñi : như BT chứng minh ñịnh lý Vì: ñịnh lý vẫn ñúng sau một vài bước áp dụng các luật Có thể quay lui: như BT 8-puzzle Vì: có thể di chuyển theo hướng ngược lại ñể về TT trước Không thể quay lui: như BT chơi cờ Vì: game over! 26 Các ñặc trưng của bài toán (tt) Các bước giải có thể lờ ñi hay quay lui: Có... tìm (forward hay backward reasoning) Cách lựa chọn luật ñể áp dụng (matching) Cách biểu diễn NODE của quá trình tìm Các NODE trong ñồ thị có thể ñược phát sinh nhiều lần, và có thể ñã ñược xem xét trước ñó trong quá trình duyệt -> cần loại bỏ những NODE lặp lại -> Cần lưu lại các NODE ñã xét 32 Vấn ñề trong thiết kế CT … Giải thuật kiểm tra NODE lặp lại (DFS): Xem xét tập NODE ñã tạo ra, ñể xem NODE mới... dùng giải pháp Planning Sẽ ñược xem xét trong các chương sau 27 Các ñặc trưng của bài toán (tt) Khả năng dự ñoán của bài toán: Có thể dự ñoán ñược: như BT 8 puzzle -> có thể ñề ra 1 chuổi nước ñi và tự tin vào kết qua sẽ xãy ra -> Có thể quay lui ñược Không thể dự ñoán ñược: như các game có ñối kháng Cần theo ñuổi nhiều kế hoạch Có chiến lược/ñánh giá ñể chọn kế hoạch tốt 28 Các ñặc trưng của bài toán ... hiệu lời giải nằm gần gốc tìm kiếm, tìm nhiều lời giải, tìm nghiệm có số cung nhỏ Depth First search hiệu lời giaỉ nằm sâu tìm kiếm có phương án chọn hướng ñi xác Kết Breath First search chắn tìm. .. Tìm kiếm Search Suy luận Heurictic Bài toán Giải toán cách tìm kiếm, gồm: Cấu trúc toán: tìm ñường ñi ñồ thị Biểu diễn toán không gian trạng thái Giải toán = Tìm trạng thái/con ñường không gian... truy xuất Bài toán (tt) State Space Không gian tìm kiếm thường graph Mục tiêu tìm kiếm path Phải lưu trữ toàn không gian trình tìm kiếm Không gian tìm kiếm biến ñộng liên tục trình tìm kiếm ðặc