Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
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 kể 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 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) dựa vào kinh nghiệm 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 biểu diễn 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 từ đỉnh u tới đỉnh v Khi đ ờng không gian trạng thái đờng đồ thị Sau xét số ví dụ 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 áp dụng 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 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 nhiều vấn đề, dựa vào 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 đỉnh Kỹ thuật 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ả 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) [...]... stop}} 4 Solvable(u) false; end; Nhận xét Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang 15 Hoàn toàn tơng tự nh thuật toán tìm kiếm theo độ sâu trong không gian trạng thái (mục 1.3.2), thuật toán tìm kiếm theo độ sâu trên đồ thị và/hoặc sẽ xác định đợc bài toán ban đầu là giải đợc hay không giải đợc, nếu cây tìm kiếm không có nhánh vô hạn Nếu cây tìm kiếm có nhánh vô hạn thì cha chắc thuật toán đã... cây nghiệm trong hình 1.11a, thứ tự giải các bài toán có thể là b, c, d, j, f, e, a ta có thể sử dụng thủ tục sắp xếp topo (xem [ ]) để sắp xếp thứ tự các bài toán trong một cây nghiệm Đơng nhiên ta cũng có thể giải quyết đồng thời các bài toán con ở cùng một mức trong cây nghiệm Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang 14 Vấn đề của chúng ta bây giờ là, tìm kiếm trên đồ thị và/hoặc để xác định... để xác định đợc đỉnh ứng với bài toán ban đầu là giải đợc hay không giải đợc, và nếu nó giải đợc thì xây dựng một cây nghiệm cho nó 1.4.3 Tìm kiếm trên đồ thị và/hoặc Ta sẽ sử dụng kỹ thuật tìm kiếm theo độ sâu trên đồ thị và/hoặc để đánh dấu các đỉnh Các đỉnh sẽ đợc đánh dấu giải đợc hoặc không giải đợc theo định nghĩa đệ quy về đỉnh giải đợc và không giải đợc Xuất phát từ đỉnh ứng với bài toán ban... quy vấn đề về các vấn đề con Giả sử ta có bản đồ giao thông trong một vùng Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang 11 lãnh thổ (xem hình 1.6) Giả sử ta cần tìm đờng đi từ thành phố A tới thành phố B Có con sông chảy qua hai thành phố E và G và có cầu qua sông ở mỗi thành phố đó Mọi đờng đi từ A đến B chỉ có thể qua E hoặc G Nh vậy bài toán tìm đờng đi từ A đến B đợc quy về: 1) Bài toán tìm. .. tất cả các đỉnh kề u theo R đều giải đợc thì u giải đợc Các đỉnh không giải đợc đợc xác định đệ quy nh sau: Các đỉnh không phải là đỉnh kết thúc và không có đỉnh kề, là các đỉnh không giải đ- ợc Nếu u không phải là đỉnh kết thúc và với mọi toán tử R áp dụng đợc tại u đều có một đỉnh v kề u theo R không giải đợc, thì u không giải đợc Ta có nhận xét rằng, nếu bài toán a giải đợc thì sẽ có một cây nghiệm... bài toán đã biết cách giải) Chẳng hạn, trong bài toán tính tích phân, các tích phân cơ bản là các trạng thái kết thúc Một điều cần lu ý là, trong không gian trạng thái biểu diễn việc quy vấn đề về các vấn đề con, các toán tử có thể là đa trị, nó biến đổi một trạng thái thành nhiều trạng thái khác Vấn đề tìm đờng đi trên bản đồ giao thông Bài toán này đã đợc phát triển nh bài toán tìm đờng đi trong không... A đến B qua E (hoặc) 2) Bài toán tìm đờng đi từ A đến b qua G Mỗi một trong hai bài toán trên lại có thể phân nhỏ nh sau 1) Bài toán tìm đờng đi từ A đến B qua E đợc quy về: 1.1 Tìm đờng đi từ A đến E (và) 1.2 Tìm đờng đi từ E đến B 2) Bài toán tìm đờng đi từ A đến B qua G đợc quy về: 2.1 Tìm đờng đi từ A đến G (và) 2.2 Tìm đờng đi từ G đến B Quá trình rút gọn vấn đề nh trên có thể biểu diễn dới dạng... kề a theo toán tử R2 Giáo trình Trí Tuệ Nhân Tạo - Đinh Mạnh Tờng Trang 13 Khi đã có các toán tử rút gọn vấn đề, thì bằng cách áp dụng liên tiếp các toán tử, ta có thể đa bài toán cần giải về một tập các bài toán con Chẳng hạn, trong ví dụ trên nếu ta áp dụng các toán tử R1, R4, R6, ta sẽ quy bài toán a về tập các bài toán con {b, c, e, f}, tất cả các bài toán con này đều là sơ cấp Từ các toán tử R... nào đó đợc đánh dấu giải đợc thì u sẽ đợc đánh dấu giải đợc và quay lên cha của u Còn nếu từ u đi xuống các đỉnh kề nó theo mọi toán tử đều gặp các đỉnh kề đợc đánh dấu không giải đợc, thì u đợc đánh dấu không giải đợc và quay lên cha của u Ta sẽ biểu diễn thủ tục tìm kiếm theo độ sâu và đánh dấu các đỉnh đã trình bày trên bởi hàm đệ quy Solvable(u) Hàm này nhận giá trị true nếu u giải đợc và nhận giá... đợc gọi là đỉnh hoặc Lý do là, đỉnh a1 biểu diễn tập các bài toán {d, e, f} và a 1 đợc giải quyết nếu d và e và f đợc giải quyết Còn tại đỉnh a, ta có các toán tử R 1, R2, R3 quy bài toán a về các bài toán con khác nhau, do đó a đợc giải quyết nếu hoặc a 1 = {d, e, f}, hoặc a 2 = {d, k}, hoặc a3 = {g, h} đợc giải quyết Ngời ta thờng sử dụng đồ thị và/hoặc ở dạng rút gọn Chẳng hạn, đồ thị và/hoặc trong