Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
1,8 MB
Nội dung
1 Tìm kiếm Tìm kiếm Ref: http://www.cs.cmu.edu/~awm/tutorials Tô Hoà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 2 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 và không gian • Cây Tìm kiếm • Tìm kiếm Theo chiều Sâu 3 Một bài toán Tìm kiếm Làm sao để đi từ S đến G? Và số biến đổi có thể ít nhất là gì? START GOAL d b p q c e h a f r 4 Hình thức hoá một bài toán tìm kiếm Một bài toán tìm kiếm có năm thành phần: Q , S , G , succs , cost • Q là một tập hữu hạn các trạng thái. • S ⊆ Q một tập khác rỗng các trạng thái ban đầu. • G ⊆ Q một tập khác rỗng các trạng thái đích. • succs : Q P(Q) là một hàm nhận một trạng thái làm đầu vào và trả về kết quả là một tập trạng thái. succs(s) nghĩa là “tập các trạng thái có thể đến từ s trong một bước”. • cost : Q , Q Số Dương là một hàm nhận hai trạng thái, s và s’, làm đầu vào. Nó trả về chi phí một bước của việc di chuyển từ s đến s’. Hàm chi phí chỉ được định nghĩa khi s’ là trạng thái con của s. 5 Bài toán Tìm kiếm 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’) = 1 cho tất cả các biến đổi START GOAL d b p q c e h a f r 6 Bài toán Tìm kiếm 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’) = 1 cho tất cả các biến đổi START GOAL d b p q c e h a f r T ạ i s a o t a q u a n t â m ? B à i t o á n n à o g i ố n g n h ư v ậ y ? 7 Các Bài toán Tìm kiếm 8 Các Bài toán Tìm kiếm Lập lịch 8-Hậu Gì nữa? Giải toán 9 Tìm kiếm Theo Chiều Rộng Gán nhãn tất cả trạng thái có thể đi đến được từ S trong 1 bước nhưng không thể đi đến được trong ít hơn 1 bước. Sau đó gán nhãn tất cả trạng thái có thể đi đến được từ S trong 2 bước nhưng không thể đi đến được trong ít hơn 2 bước. Sau đó gán nhãn tất cả trạng thái có thể đi đến được từ S trong 3 bước nhưng không thể đi đến được trong ít hơn 3 bước. V.v… đến khi trạng thái Goal được đi đến. START GOAL d b p q c e h a f r 10 START GOAL d b p q c e h a f r Tìm kiếm Theo Chiều Rộng 0 bước từ start [...].. .Tìm kiếm Theo Chiều Rộng 1 bước từ start GOAL a c b 0 bước từ start e d f START h p q r 11 Tìm kiếm Theo Chiều Rộng 1 bước từ start GOAL a c b 0 bước từ start e d f START h p q r 2 bước từ start 12 Tìm kiếm Theo Chiều Rộng 1 bước từ start GOAL a c b 0 bước từ start e d f START h p q r 3 bước từ start 2 bước từ start 13 4 bước từ start Tìm kiếm Theo Chiều Rộng 1 bước từ... 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, 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 Rất rẻ (dù không Hàng đợi Ưu tiên có thể được tuyệt đối, nhưng rẻ cài đặt theo một cách sao cho không tin được!) chi phí của các toán tử thêm và lấy... Thuật toán này rất giống thuật toán Dijkstra • Bất kỳ thuật toán nào hoạt động theo kiểu quay lui từ đích được gọi là suy diễn lùi • Lùi so với tiến Cái nào tốt hơn? 27 Chi phí chuyển đổi a 2 GOAL 2 c b 1 8 9 START 1 h 4 1 p 15 q 5 e 2 d 3 5 4 f 9 5 3 r Lưu ý rằng BFS tìm đường đi ngắn nhất theo số biến đổi Nó không tìm thấy đường đi có chi phí ít nhất Bây giờ chúng ta xem xét một thuật toán tìm đường... op ìm kiếm ch t ện không gian ch thuận ti h t cá Giả sử i t r ư ớ c mộ t há được trạng h khác cho các p r h ĩ a r a mộ t có thể ngq • Bạn B F S? phải lưu trữ VVà bạn có thể không cần u? • 1 p ải lư ước đóVh 2 những gì tr V3 25 Một cách khác: Đi lui a GOAL c b e d f h START p q r Gán nhãn tất cả các trạng thái có thể đến G trong 1 nhưng không thể đi đến nó trong ít hơn 1 bước Gán nhãn tất cả các trạng... Định nghĩa Sk = GOAL, và với mọi i