Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
801,5 KB
Nội dung
phần i giải vấn đề tìm kiếm - Vấn đề tìm kiếm, cách tổng quát, hiểu tìm đối tợng thỏa mÃn số đòi hỏi đó, tập hợp rộng lớn đối tợng Chóng ta cã thĨ kĨ rÊt nhiỊu vÊn ®Ị mà việc giải đợc quy vấn đề tìm kiếm Các trò chơi, chẳng hạn cờ vua, cờ carô xem nh vấn đề tìm kiếm Trong số nhiều nớc đợc phép thực hiện, ta phải tìm nớc dẫn tới tình kết mà ta ngời thắng Chứng minh định lý xem nh vấn đề tìm kiếm Cho tập tiên đề luật suy diễn, trờng hợp mục tiêu ta tìm chứng minh (một dÃy luật suy diễn đợc áp dụng) để đợc đa đến công thức mà ta cần chứng minh Trong lĩnh vực nghiên cứu Trí Tuệ Nhân Tạo, thờng xuyên phải đối đầu với vấn đề tìm kiếm Đặc biệt lập kế hoạch học máy, tìm kiếm đóng vai trò quan trọng Trong phần nghiên cứu kỹ thuật tìm kiếm đợc áp dụng để giải vấn đề đợc ¸p dơng réng r·i c¸c lÜnh vùc nghiªn cøu khác Trí Tuệ Nhân Tạo Chúng ta lần lợt nghiên cứu kỹ thuật sau: ã Các kỹ thuật tìm kiếm mù, hiểu biết đối tợng để hớng dẫn tìm kiếm mà đơn xem xét theo hệ thống tất đối tợng để phát đối tợng cần tìm ã Các kỹ thuật tìm kiếm kinh nghiệm (tìm kiếm heuristic) chóng ta dùa vµo kinh nghiƯm vµ sù hiĨu biÕt vấn đề cần giải để xây dựng nên hàm đánh giá hớng dẫn tìm kiếm ã Các kỹ thuật tìm kiếm tối u ã Các phơng pháp tìm kiếm có đối thủ, tức chiến lợc tìm kiếm nớc trò chơi hai ngời, chẳng hạn cờ vua, cờ tớng, cờ carô Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang chơng I Các chiến lợc tìm kiếm mï - Trong ch¬ng này, nghiên cứu chiến lợc tìm kiÕm mï (blind search): t×m kiÕm theo bỊ réng (breadth-first search) tìm kiếm theo độ sâu (depth-first search) Hiệu phơng pháp tìm kiếm đợc đánh giá 1.1 Biểu diễn vấn đề không gian trạng thái Một muốn giải vấn đề tìm kiếm, ta phải xác định không gian tìm kiếm 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 Nó không gian liên tục, chẳng hạn không gian véctơ thực n chiều; không gian đối tợng rời rạc Trong mục ta xét việc biểu diễn vấn đề không gian trạng thái cho việc giải vấn đề đợc quy việc tìm kiếm không gian trạng thái Một phạm vi rộng lớn vấn đề, đặc biệt câu đố, trò chơi, mô tả cách sử dụng khái niệm trạng thái toán tử (phép biến đổi trạng thái) Chẳng hạn, khách du lịch có tay đồ mạng lới giao thông nối thành phố vùng lÃnh thổ (hình 1.1), du khách thành phố A muốn tìm đờng tới thăm thành phố B Trong toán này, thành phố có đồ trạng thái, thành phố A trạng thái ban đầu, B trạng thái kết thúc Khi thành phố, chẳng hạn thành phố D theo đờng để nối tới thành phố C, F G Các đờng nối thành phố đợc biểu diễn toán tử Một toán tử biến đổi trạng thái thành trạng thái khác Chẳng hạn, trạng thái D có ba toán tử dẫn trạng thái D tới trạng thái C, F G Vấn đề du khách tìm dÃy toán tử để đa trạng thái ban đầu A tới trạng thái kết thúc B Một ví dụ khác, trò chơi cờ vua, cách bố trí quân bàn cờ trạng thái Trạng thái ban đầu xếp quân lúc bắt đầu chơi Mỗi nớc hợp lệ toán tử, biến đổi cảnh bàn cờ thành cảnh khác Nh muốn biểu diễn vấn đề không gian trạng thái, ta cần xác định yếu tố sau: ã Trạng thái ban đầu ã Một tập hợp toán tử Trong toá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 Tập hợp tất trạng thái đạt tới từ trạng thái ban đầu cách áp dụng dÃy toán tử, lập thành không gian trạng thái vấn đề Ta ký hiệu không gian trạng thái U, trạng thái ban đầu u (u0 U) Mỗi toán tử R xem nh ánh xạ R: UU Nói chung R ánh xạ không xác định khắp nơi U Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang ã Một tập hợp T trạng thái kết thúc (trạng thái đích) T tập không gian U Trong vấn đề du khách trên, có trạng thái đích, thành phố B Nh ng nhiều vấn đề (chẳng hạn loại cờ) có nhiều trạng thái đích ta xác định trớc đợc trạng thái đích Nói chung phần lớn vấn đề hay, ta mô tả trạng thái đích trạng thái thỏa mÃn số điều kiện ®ã Khi chóng ta biĨu diƠn mét vÊn ®Ị th«ng qua trạng thái toán tử, việc tìm nghiệm toán đợc quy việc tìm đờng từ trạng thái ban đầu tới trạng thái đích (Một đờng không gian trạng thái dÃy toán tử dẫn trạng thái tới trạng thái khác) Chúng ta biểu diễn không gian trạng thái đồ thị định hớng, đỉnh đồ thị tơng ứng với trạng thái Nếu có toán tử R biến đổi trạng thái u thành trạng thái v, có cung gán nhÃn R ®i tõ ®Ønh u tíi ®Ønh v Khi ®ã đ ờng không gian trạng thái đờng đồ thị Sau chóng ta sÏ xÐt mét sè vÝ dơ vỊ c¸c không gian trạng thái đợc xây dựng cho số vấn đề Ví dụ 1: Bài toán số Chúng ta có bảng 3x3 ô tám quân mang số hiệu từ đến đợc xếp vào tám ô, lại ô trống, chẳng hạn nh hình bên trái Trong trò chơi này, bạn chuyển dịch quân cạch ô trống tới ô trống Vấn đề bạn tìm dÃy chuyển dịch để biến đổi cảnh ban đầu (hình 1.2 bên trái) thành cảnh xác định đó, chẳng hạn cảnh hình 1.2 bên phải Trong toán này, trạng thái ban đầu cảnh bên trái hình 1.2, trạng thái kết thúc bên phải hình 1.2 Tơng ứng với quy tắc chuyển dịch quân, ta có bốn toán tử: up (đẩy quân lên trên), down (đẩy quân xuống dới), left (đẩy quân sang trái), right (đẩy quân sang phải) Rõ ràng là, toán tử toán tử phận; chẳng Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang hạn, từ trạng thái ban đầu (hình 1.2 bên trái), ta chØ cã thĨ ¸p dơng c¸c to¸n tư down, left, right Trong ví dụ việc tìm biểu diễn thích hợp để mô tả trạng thái vấn đề dễ dàng tự nhiên Song nhiều vấn đề việc tìm hiểu đợc biểu diễn thích hợp cho trạng thái vấn đề hoàn toàn không đơn giản Việc tìm dạng biểu diễn tốt cho trạng thái đóng vai trò quan trọng trình giải vấn đề Có thể nói rằng, ta tìm đợc dạng biểu diễn tốt cho trạng thái vấn đề, vấn đề hầu nh đà đợc giải Ví dụ 2: Vấn đề triệu phú kẻ cớp Có ba nhà triệu phú ba tên cớp bên bờ tả ngạn sông, thuyền chở đợc hai ngời HÃy tìm cách đa ngời qua sông cho không để lại bên bờ sông kẻ cớp nhiều triệu phú Đơng nhiên toán này, toán tử tơng ứng với hành động chở ngời qua sông Nhng ta cần lu ý rằng, hành động xẩy (lúc thuyền bơi qua sông) bên bờ sông thuyền vừa dời chỗ, số kẻ cớp không đợc nhiều số triệu phú Tiếp theo ta cần định trạng thái vấn đề ta không cần phân biệt nhà triệu phú tên cớp, mà số lợng họ bên bờ sông quan trọng Để biểu diễn trạng thái, ta sư dơng bé ba (a, b, k), ®ã a số triệu phú, b số kẻ c ớp bên bờ tả ngạn vào thời điểm mà thuyền bờ bờ kia, k = thuyền bờ tả ngạn k = thuyền bờ hữu ngạn Nh vậy, không gian trạng thái cho toán triệu phú kẻ cớp đợc xác định nh sau: ã Trạng thái ban đầu (3, 3, 1) ã Các toán tử Có năm toán tử tơng ứng với hành động thuyền chở qua sông triệu phú, kẻ cớp, triệu phú, kẻ cớp, triệu phú kẻ cớp ã 1.2 Trạng thái kết thúc (0, 0, 0) Các chiến lợc tìm kiếm Nh ta đà thấy mục 1.1, để giải vấn đề tìm kiếm không gian trạng thái, ta cần tìm dạng thích hợp mô tả trạng thái cảu vấn đề Sau cần xác định: ã Trạng thái ban đầu ã Tập toán tử ã Tập T trạng thái kết thúc (T không đợc xác định cụ thể gồm trạng thái mà đợc định số điều kiện đó) Giả sử u trạng thái R toán tử biến đổi u thành v Ta gọi v trạng thái kề u, v đợc sinh từ trạng thái u toán tử R Quá trình áp dụng toán tử để sinh trạng thái kề u đợc gọi phát triển trạng thái u Chẳng hạn, toán toán số, phát triển trạng thái ban đầu (hình bên trái), ta nhận đợc ba trạng thái kề (hình 1.3) Khi biểu diễn vấn đề cần giải thông qua trạng thái toán tử việc tìm lời giải vấn đề đợc quy việc tìm đờng từ trạng thái ban đầu tới trạng thái kết thúc Có thể phân chiến lợc tìm kiếm thành hai loại: Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang ã Các chiến lợc tìm kiếm mù Trong chiến lợc tìm kiếm này, hớng dẫn cho tìm kiếm, mà ta phát triển trạng thái ban đầu gặp trạng thái đích Có hai kỹ thuật tìm kiếm mù, tìm kiếm theo bề rộng tìm kiếm theo độ sâu T tởng tìm kiếm theo bề rộng trạng thái đợc phát triển theo thứ tự mà chúng đợc sinh ra, tức trạng thái đợc sinh trớc đợc phát triển trớc Trong nhiều vấn đề, dù phát triển trạng thái theo hệ thống (theo bề rộng theo độ sâu) số lợng trạng thái đợc sinh trớc ta gặp trạng thái đích thờng lớn Do thuật toán tìm kiếm mù hiệu quả, đòi hỏi nhiều không gian thời gian Trong thực tế, nhiều vấn đề giải đợc tìm kiếm mù ã Tìm kiÕm kinh nghiƯm (t×m kiÕm heuristic) Trong rÊt nhiỊu vÊn ®Ị, chóng ta cã thĨ dùa vµo sù hiĨu biÕt vấn đề, dựa vào kinh nghiệm, trực giác, để đánh giá trạng thái Sử dụng đánh giá trạng thái để hớng dẫn tìm kiếm: trình phát triển trạng thái, ta chọn số trạng thái chờ phát triển, trạng thái đợc đánh giá tốt để phát triển Do tốc độ tìm kiếm nhanh Các phơng pháp tìm kiếm dựa vào đánh giá trạng thái để hớng dẫn tìm kiếm gọi chung phơng pháp tìm kiếm kinh nghiệm Nh chiến lợc tìm kiếm đợc xác định chiến lợc chọn trạng thái để phát triển bớc Trong tìm kiếm mù, ta chọn trạng thái để phát triển theo thứ tự mà đợc sinh ra; tìm kiếm kinh nghiệm ta chọn trạng thái dựa vào đánh giá trạng thái Cây tìm kiếm Chúng ta nghĩ đến trình tìm kiếm nh trình xây dựng tìm kiếm Cây tìm kiếm mà đỉnh đợc gắn trạng thái không gian trạng thái Gốc tìm kiếm tơng ứng với trạng thái ban đầu Nếu đỉnh ứng với trạng thái u, đỉnh ứng với trạng thái v kề u Hình 1.4a đồ thị biểu diễn không gian trạng thái với trạng thái ban đầu A, hình 1.4b tìm kiếm tơng ứng với không gian trạng thái Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang Mỗi chiến lợc tìm kiếm không gian trạng thái tơng ứng với phơng pháp xây dựng tìm kiếm Quá trình xây dựng cây có đỉnh trạng thái ban đầu Giả sử tới bớc chiến lợc tìm kiếm, ta đà xây dựng đợc đó, tơng ứng với trạng thái cha đợc phát triển Bớc phụ thuộc vào chiến lợc tìm kiếm mà đỉnh đợc chọn để phát triển Khi phát triển đỉnh đó, tìm kiếm đợc mở rộng cách thêm vào ®Ønh cđa ®Ønh ®ã Kü tht t×m kiÕm theo bề rộng (theo độ sâu) tơng ứng với phơng pháp xây dựng tìm kiếm theo bề rộng (theo độ sâu) 1.3 Các chiến lợc tìm kiếm mù Trong mục trình bày hai chiến lợc tìm kiếm mù: tìm kiếm theo bề rộng tìm kiếm theo độ sâu Trong tìm kiếm theo bề rộng, bớc ta chọn trạng thái để phát triển trạng thái đợc sinh trớc trạng thái chờ phát triển khác Còn tìm kiếm theo độ sâu, trạng thái đợc chọn để phát triển trạng thái đợc sinh sau số trạng th¸i chê ph¸t triĨn Chóng ta sư dơng danh s¸ch L để lu trạng thái đà đợc sinh chờ đợc phát triển Mục tiêu tìm kiếm không gian trạng thái tìm đờng từ trạng thái ban đầu tới trạng thái đích, ta cần lu lại vết đờng Ta sử dụng hàm father để lu lại cha đỉnh đờng đi, father(v) = u cha đỉnh v u 1.3.1 Tìm kiếm theo bề rộng Thuật toán tìm kiếm theo bề rộng đợc mô t¶ bëi thđ tơc sau: procedure Breadth_First_Search; begin Khëi tạo danh sách L chứa trạng thái ban đầu; loop 2.1 if L rỗng then { thông báo tìm kiếm thất bại; stop}; 2.2 Loại trạng thái u đầu danh sách L; 2.3 if u trạng thái kết thúc then Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang { thông báo tìm kiếm thành công; stop}; 2.4 for trạng thái v kề u { Đặt v vào cuối danh s¸ch L; father(v)