Trí tuệ nhân tạo search engine

35 668 1
Trí tuệ nhân tạo search engine

Đ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

Thuật toán tìm kiếm Trí tuệ nhân tạoThuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo Thuật toán tìm kiếm Trí tuệ nhân tạo

Tìm kiếm Tổng quát • Bài toán tìm kiếm • Tìm kiếm Theo chiều Rộng • Tính tối ưu, Tính đầy đủ, Độ phức tạp thời gian không gian • Cây Tìm kiếm • Tìm kiếm Theo chiều Sâu Một toán Tìm kiếm GOAL a c b e d f START h p q r Làm để từ S đến G? Và số biến đổi gì? Hình thức hoá toán tìm kiếm Một toán tìm kiếm có năm thành phần: Q , S , G , succs , cost • Q tập hữu hạn trạng thái • S  Q tập khác rỗng trạng thái ban đầu • G  Q tập khác rỗng trạng thái đích • succs : Q  P(Q) hàm nhận trạng thái làm đầu vào trả kết tập trạng thái succs(s) nghĩa “tập trạng thái đến từ s bước” • cost : Q , Q  Số Dương hàm nhận hai trạng thái, s s’, làm đầu vào Nó trả chi phí bước việc di chuyển từ s đến s’ Hàm chi phí định nghĩa s’ trạng thái s Bài toán Tìm kiếm GOAL a c b e d f START h p r q Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL} S = { START } G = { GOAL } succs(b) = { a } succs(e) = { h , r } succs(a) = NULL … etc cost(s,s’) = cho tất biến đổi Bài toán Tìm kiếm GOAL a c b e d f START h p q r Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL} S = { START } G = { GOAL } succs(b) = { a } succs(e) = { h , r } succs(a) = NULL … etc cost(s,s’) = cho tất biến đổi Các Bài toán Tìm kiếm Các Bài toán Tìm kiếm Lập lịch 8-Hậu Gì nữa? Giải toán Tìm kiếm Theo Chiều Rộng GOAL a c b e d f START h p r q Gán nhãn tất trạng thái đến từ S bước đến bước Sau gán nhãn tất trạng thái đến từ S bước đến bước Sau gán nhãn tất trạng thái đến từ S bước đến bước V.v… đến trạng thái Goal đến Tìm kiếm Theo Chiều Rộng GOAL a c b bước từ start e d f START h p q r 10 Tìm kiếm Theo Chiều Rộng bước từ start GOAL a c b bước từ start e d f START h p r q 11 Tìm kiếm Theo Chiều Rộng bước từ start GOAL a c b bước từ start e d f START h p q r bước từ start 12 Tìm kiếm Theo Chiều Rộng bước từ start GOAL a c b bước từ start e d f START h p bước từ start r q bước từ start 13 bước từ start Tìm kiếm Theo Chiều Rộng bước từ start GOAL a c b bước từ start e d f START h p q bước từ start r bước từ start 14 Ghi nhớ đường đi! GOAL a c b e d f START h p r q Ngoài ra, gán nhãn trạng thái, ghi nhận trạng thái trước Ghi nhận gọi trỏ quay lui Lịch sử trước dùng để phát sinh đường lời giải, tìm đích: “Tôi đến đích Tôi thấy f trước Và r trước tới f Và… … đường lời giải S  e  r  f  G” 15 bước từ start Con trỏ quay lui bước từ start GOAL a c b bước từ start e d f START h p q bước từ start r bước từ start 16 bước từ start Con trỏ quay lui bước từ start GOAL a c b bước từ start e d f START h p q bước từ start r bước từ start 17 Bắt đầu Tìm kiếm Theo chiều Rộng Với trạng thái s gán nhãn, ghi nhớ: •previous(s) trạng thái trước đường ngắn từ trạng thái START đến s Trong vòng lặp thứ k thuật toán ta bắt đầu với Vk định nghĩa tập trạng thái mà từ trạng thái start đến có k bước Sau đó, suốt vòng lặp, ta tính Vk+1, định nghĩa tập trạng thái mà từ trạng thái start đến có k+1 bước Chúng ta bắt đầu với k = 0, V0 = {START} định nghĩa, previous(START) = NULL Sau ta thêm vào trạng thái bước từ START vào V1 Và tiếp tục 18 BFS GOAL a c b e d f START h V0 p r q 19 BFS GOAL a c b e d f START V0 h p q r V1 20 10 Lặp UCS GOAL a 2 c b e d START h p f 15 r q PQ = { (a,6),(h,6),(c,11),(r,14),(q,16) } Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 41 Lặp UCS GOAL a 2 c b e d START h p 15 f r q PQ = { (h,6),(c,11),(r,14),(q,16) } Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 42 21 Lặp UCS GOAL a 2 c b e d START h p f 15 r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm PQ = { (q,10), (c,11),(r,14) } 43 Lặp UCS GOAL a 2 c b e d START h p 15 f r q PQ = { (q,10), (c,11),(r,14) } Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 44 22 Lặp UCS GOAL a 2 c b e d START h p f 15 r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm PQ = { (c,11),(r,13) } 45 Lặp UCS GOAL a 2 c b e d START h p PQ = { (r,13) } 15 f r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 46 23 Lặp UCS GOAL a 2 c b e d START h p f 15 r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm PQ = { (f,18) } 47 Lặp UCS GOAL a 2 c b e d START h p PQ = { (G,23) } 15 f r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 48 24 Lặp UCS GOAL a 2 c b e d START h p f 15 r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm PQ = { (G,23) } 49 Kết thúc UCS GOAL a 2 c b 2 e d START p 15 f h PQ = { } r q Lặp: Lấy trạng thái chi phí thấp từ PQ Thêm 50 25 Biểu diễn tìm kiếm a GOAL c b e d f h START p q r 51 Đánh giá thuật toán tìm kiếm • Tính đầy đủ: thuật toán có bảo đảm tìm thấy lời giải có hay không? • Có bảo đảm tìm thấy tối ưu? (nó tìm thấy đường có chi phí nhất?) • Độ phức tạp thời gian • Độ phức tạp không gian (sử dụng nhớ) Các biến: N số trạng thái toán B nhân tố phân nhánh trung bình (số trung bình) (B>1) L đọ dài đường từ start đến goal với số bước ngắn Chúng ta đánh giá thuật toán nào? 52 26 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu tất chuyển đổi chi phí O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) 53 Tìm kiếm Theo Chiều Sâu GOAL a 2 c b 5 e d START h p 15 f q r Một thay cho BFS Luôn mở từ node vừa mở nhất, có node chưa thử Ngược lại quay lại node trước đường 54 27 DFS thực tế GOAL a c b START START d START d b START START d b a START d c START d c a START d e START d e r START d e r f START d e r f c START d e r f c a START d e r f GOAL e d f h p r q 55 Duyệt tìm kiếm DFS a GOAL c b e d Bạn vẽ thứ tự mà node tìm kiếm viếng? f h START p q r 56 28 Thuật toán DFS Ta dùng cấu trúc liệu gọi Path để biểu diễn đường từ START đến trạng thái VD Path P = Cùng với node đường đi, phải nhớ ta mở VD điểm sau, ta có P = 57 Thuật toán DFS Đặt P = While (P khác rỗng top(P) không đích) if mở rộng top(P) rỗng then loại bỏ top(P) (“pop ngăn xếp”) else gọi s thành viên mở rộng top(P) loại s khỏi mở rộng top(P) tạo mục đỉnh đường P: s (expand = succs(s)) Thuật toán If P rỗng viết gọn dạng đệ qui, dùng ngăn trả FAILURE xếp chương trình Else để cài đặt P trả đường chứa trạng thái P 58 29 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS Depth First Search 59 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS Depth First Search K K N/A N/A 60 30 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) LMAX Độ dài đường dài từ start đến đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS** Depth First Search Giả sử Không gian Tìm kiếm không chu trình 61 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) LMAX Độ dài đường dài từ start đến đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS** Depth First Search C K O(BLMAX) Giả sử Không gian Tìm kiếm không chu trình O(LMAX) 62 31 Câu hỏi suy nghĩ • Làm để ngăn ngừa lặp vô tận DFS ? • Làm bắt buộc đưa lời giải tối ưu? A B A B C 63 Câu hỏi suy nghĩ Trả lời 1: PC-DFS (Path Checking DFS): • Làm để ngăn ngừa lặp vô tận DFS ? • Làm bắt buộc đưa lời giải tối ưu? A Don’t recurse on a state if that state is already in B the current path Trả lời 2: A MEMDFS (Memorizing DFS): B Remember all states expanded soC far Never expand anything twice 64 32 Câu hỏi suy nghĩ Trả lời 1: PC-DFS (Path Checking DFS): • Làm để ngăn ngừa lặp vô tận DFS ? • Làm bắt buộc đưa lời giải tối ưu? A Không gọi lại trạng thái có B đường Trả lời 2: A MEMDFS (Memorizing DFS): B Nhớ tất trạng thái mở Không mở C hai lần 65 Câu hỏi suy nghĩ Trả lời 1: PC-DFS (Path Checking DFS): • Làm để ngăn ngừa lặp vô tận DFS ? • Làm bắt buộc đưa lời giải tối ưu? A Không gọi lại trạng thái có B đường Trả lời 2: A MEMDFS (Memoizing DFS): B Nhớ tất trạng thái mở Không mở C hai lần 66 33 N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) LMAX Độ dài đường không chu trình dài từ start đến đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi (1) O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) PCDFS Path Check C K O(BLMAX) O(LMAX) MEMDFS Memoizing K O(min(N,BLMAX)) O(min(N,BLMAX)) DFS DFS C 67 Lặp Sâu dần Lặp sâu dần thuật toán đơn giản dùng DFS làm thủ tục con: Thực DFS tìm đường có độ dài hay (DFS bỏ đường dài hay 2) Nếu “1” thất bại, thực DFS tìm đường có độ dài hay Nếu “2” thất bại, thực DFS tìm đường có độ dài hay ….và tiếp tục thành công Chi phí O(b1 + b2 + b3 + b4 … + bL) = O(bL) 68 34 Đánh giá thuật toán N số trạng thái toán B thừa số phân nhánh trung bình (số trung bình) (B>1) L độ dài đường từ start đến goal với số bước (chi phí) LMAX Độ dài đường không chu trình dài từ start đến đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi (1) O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) PCDFS Path Check C K O(BLMAX) O(LMAX) MEMDFS Memoizing C K O(min(N,BLMAX)) O(min(N,BLMAX)) Y (1) O(BL) O(L) DFS DFS ID Iterative Deepening 69 Điều cần nắm • Hiểu thấu đáo BFS, LCBFS, UCS, DFS, PCDFS, MEMDFS • Hiểu khái niệm việc liệu tìm kiếm đầy đủ, tối ưu hay không, độ phức tạp thời gian không gian • Hiểu ý tưởng đằng sau lặp sâu dần 70 35 [...]... ít nhất Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS Depth First Search 59 Đánh giá một thuật toán N số trạng thái trong bài toán B thừa số phân nhánh trung bình (số con... ít nhất Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS Depth First Search K K N/A N/A 60 30 Đánh giá một thuật toán N số trạng thái trong bài toán B thừa số phân nhánh trung... cứ đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS** Depth First Search Giả sử Không gian Tìm kiếm không chu trình 61 Đánh giá một thuật toán N số trạng thái trong bài toán... cứ đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) DFS** Depth First Search C K O(BLMAX) Giả sử Không gian Tìm kiếm không chu trình O(LMAX) 62 31 Câu hỏi suy nghĩ • Làm sao... toán tử sau: Init-PriQueue(PQ) khởi tạo PQ rỗng Insert-PriQueue(PQ, thing, value) thêm (thing, value) vào hàng đợi Pop-least(PQ) trả về cặp (thing, value) với giá trị thấp nhất, và loại bỏ nó khỏi hàng đợi 31 Hàng đợi Ưu tiên Một hàng đợi ưu tiên là một cấu trúc dữ liệu trong đó ta có thể thêm và lấy các cặp (thing, value) với các toán tử sau: Init-PriQueue(PQ) khởi tạo PQ rỗng Insert-PriQueue(PQ, thing,... đến goal với số bước (chi phí) ít nhất Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu tất cả chuyển đổi cùng chi phí O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) 53 Tìm kiếm Theo Chiều Sâu GOAL a 2 2 c b 1 5 5 8 2 e d 3 9 1 START h 4 1 p 15 f 9 4 q 5... trình dài nhất từ start đến bất cứ đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau (1) O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) PCDFS Path Check C K O(BLMAX) O(LMAX) MEMDFS Memoizing K O(min(N,BLMAX)) O(min(N,BLMAX))... trình dài nhất từ start đến bất cứ đâu Q kích cỡ hàng đợi ưu tiên trung bình Thuật toán Tối ưu Thời gian Không gian BFS Breadth First C Search Đủ Nếu chi phí chuyển đổi như nhau (1) O(min(N,BL)) O(min(N,BL)) LCBFS Least Cost BFS C C O(BL) O(min(N,BL)) UCS Uniform Cost Search C C O(log(Q) * min(N,BL)) O(min(N,BL)) PCDFS Path Check C K O(BLMAX) O(LMAX) MEMDFS Memoizing C K O(min(N,BLMAX)) O(min(N,BLMAX))... hay không? • Có bảo đảm tìm thấy tối ưu? (nó sẽ tìm thấy đường đi có chi phí ít nhất?) • Độ phức tạp về thời gian • Độ phức tạp về không gian (sử dụng bộ nhớ) Các biến: N số trạng thái của bài toán B nhân tố phân nhánh trung bình (số con trung bình) (B>1) L đọ dài đường đi từ start đến goal với số bước ngắn nhất Chúng ta đánh giá thuật toán như thế nào? 52 26 Đánh giá một thuật toán N số trạng thái... succs(START))> While (P khác rỗng và top(P) không là đích) if mở rộng của top(P) rỗng then loại bỏ top(P) (“pop ngăn xếp”) else gọi s một thành viên của mở rộng của top(P) loại s khỏi mở rộng của top(P) tạo một mục mới trên đỉnh đường đi P: s (expand = succs(s)) Thuật toán này có thể If P rỗng được viết gọn dưới dạng đệ qui, dùng ngăn trả về FAILURE xếp của chương trình Else để cài đặt P trả về đường

Ngày đăng: 31/08/2016, 21:25

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan