1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài Giảng Tìm Kiếm ĐH Khoa Học Tự Nhiên TPHCM

70 880 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 1,75 MB

Nội dung

TÌM KIẾM Tơ Hồi Việt Khoa Cơng nghệ Thơng tin Đại học Khoa học Tự nhiên TPHCM thviet@fit.hcmuns.edu.vn Ref: http://www.cs.cmu.edu/~awm/tutorials Tổng qt • Bài tố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 tố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 hố tốn tìm kiếm Một tố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 tốn Tìm kiếm a GOAL c b e d f h START 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 Bài toán Tìm kiếm a GOAL c b e d f h START p q r ? m Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL} â t h n gn a S = { START } u iố n q a og G = { GOAL } t o a succs(b) = { a } s n i succs(e) = { h , r } T i t oá n succs(a) = NULL … etc Bà ? cost(s,s’) = cho tất biến đổi y ậ v Các Bài tốn Tìm kiếm Các Bài tốn Tìm kiếm Lập lịch 8-Hậu Gì nữa? Giải tốn Tìm kiếm Theo Chiều Rộng a GOAL c b e d f h START p q r Gán nhãn tất trạng thái đến từ S bước khơng thể đến bước Sau gán nhãn tất trạng thái đến từ S bước khơng thể đế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 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 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 tố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 Đánh giá thuật toán N số trạng thái tố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 tốn Đủ Tối ưu Thời gian Khơng gian BFS Breadth First Search C 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 tốn Đủ Tối ưu Thời gian Không gian BFS Breadth First Search C 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 Đá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 tốn Đủ Tối ưu Thời gian BFS Breadth First Search C 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 Khơng gian 61 Đánh giá thuật toán N số trạng thái tố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 tốn Đủ Tối ưu Thời gian BFS Breadth First Search C 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 Khơng gian O(LMAX) 62 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 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): S • Làm để ngăn F MD E M ngừa lặp vô tận n hơ t tố S DDFS F n g? ? kh ó C in C hô P k h ốt t FS ? D M ông E M kh S F CD P n • Làm bắt buộc đưa lời n hi k Có 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 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 BFS Breadth First Search C 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)) ID Y (1) O(BL) O(L) DFS DFS Iterative Deepening Không gian 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: Chi phí Có th th th ông ể tố th ể lớ thư t hơ n hơ ờng n n n N hiề nh u h iều ưn so s o g c v ới vớ hi p DF i s hí S ố trạ có ng 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 O(b1 + b2 + b3 + b4 … + bL) = O(bL) 68 Đá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 tốn Đủ Tối ưu Thời gian BFS Breadth First Search C 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)) PCDFS Path Check C K O(BLMAX) O(LMAX) MEMDFS Memoizing K O(min(N,BLMAX)) O(min(N,BLMAX)) DFS DFS C Khơng gian 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 ...Tổng qt • Bài tố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 tốn Tìm kiếm GOAL a c b e... = NULL … etc Bà ? cost(s,s’) = cho tất biến đổi y ậ v Các Bài toán Tìm kiếm Các Bài tốn Tìm kiếm Lập lịch 8-Hậu Gì nữa? Giải tốn Tìm kiếm Theo Chiều Rộng a GOAL c b e d f h START p q r Gán nhãn... 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 q r 11 Tìm kiếm Theo Chiều

Ngày đăng: 30/10/2015, 17:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w