thuật giải trong tin học

56 317 0
thuật giải trong tin học

Đ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

Trương Hải Bằng-AI ThuậtgiảiA T ,A KT ThuậtgiảiA T (Algorithm for Tree): Mỗi đỉnh n tương ứng vớimộtsố g(n): giá thành của đường đitừđỉnh ban đầu đến đỉnh n. Đỉnh: + Đỉnh đóng (Closed) : là những đỉnh đã được xem xét. +Đỉnh mở (Open) : là những đỉnh giả thiếtsẽ đượcxemxétở bướcsau. + Đỉnh ẩn (Hiden) : là những đỉnh mà tại đóhàm g(n) chưa đượcxácđịnh. Trương Hải Bằng-AI ThuậtgiảiA T Bước1: + Mọi đỉnh n, mọigiátrị g(n) đềulàẩn. + Mởđỉnh đầutiênvàgọi đólàđỉnh S. Đặt g(S) = 0. Bước2 : Chọn đỉnh mở vớigiáthànhg tương ứng là nhỏ nhấtvàgọi đólàđỉnh N. + NếuN làmụctiêu: đường đitừđỉnh ban đầu đếnN làđường đingắnnhấtvà bằng g(N). Dừng (Success). + Nếukhôngtồntạimột đỉnh mở nào nữa: cây biểudiễnvấn đề không có đường đitớimụctiêu. Dừng (Fail). + Nếutồntại nhiềuhơn1 đỉnh N (nghĩalàcó2 đỉnh N trở lên) mà có cùng giá thành g(N) nhỏ nhất. Kiểmtraxemtrongsốđócóđỉnh nào là đích hay không. Nếucó: đường đitừđỉnh ban đầu đến đỉnh N là ngắnnhấtvàbằng g(N), dừng (Success). Nếukhôngcó: Chọnngẫu nhiên mộttrongcácđỉnh đóvàgọilàđỉnh N. Bước3 : Đóng đỉnh N và mở các đỉnh sau N (là những đỉnh có cung hướng từ N tới). Tạimọi đỉnh S sau N tính : g(S) = g(N) + cost(N→S) Bước4 : Quay lạibước2 Trương Hải Bằng-AI ThuậtgiảiA T- Ví dụ A B C D E K O Q S T U V F G H L M I J N P R Traïng thaùi ñích 1 1 1 1 1 1 1 1 100 17 1 1 1 10 11 20 12 1 1 1 1 Trương Hải Bằng-AI ThuậtgiảiA T- Ví dụ Mọi đỉnh n, g(n) chưabiết. B1: Mở S, đặt g(S) = 0. B2: Đóng S; mở A, B, C, D g(A) = g(S) + gt(S→A) = 0 + 100 = 100 g(B) = 0 + 17 = 17 g(C) = g(D) = 0 + 1 = 1 (min) ChọnngẫunhiêngiữaC, D: chọnC B3: Đóng C, mở G, H: g(A) = 100 g(B) = 17 g(D) = 1 (min) g(G) = 11 g(H) = 21 A B C D E K O Q S T U V F G H L M I J N P R Traïng thaùi ñích 1 1 1 1 1 1 1 1 100 17 1 1 1 10 11 20 12 1 1 1 1 Trương Hải Bằng-AI ThuậtgiảiA T- Ví dụ B4: Đóng D, mở I, J: g(A) = 100 g(B) = 17 g(I) = 12 g(J) = 2 (min) g(G) = 11 g(H) = 21 B5: Đóng J, mở N: g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(N) = 3 (min) A B C D E K O Q S T U V F G H L M I J N P R Traïng thaùi ñích 1 1 1 1 1 1 1 1 100 17 1 1 1 10 11 20 12 1 1 1 1 Trương Hải Bằng-AI ThuậtgiảiA T- Ví dụ B6: Đóng N, mở P: g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(P) = 4 (min) B7: Đóng P, mở R: g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(R) = 5 (min) R là đích. Vậy đường đilà: Nhậnxét : Thuậttoánnàychỉ sử dụng 3 thông tin: đỉnh, cung và giá thành của cung. RPNJDS ⎯→⎯⎯→⎯⎯→⎯⎯→⎯⎯→⎯ 11111 A B C D E K O Q S T U V F G H L M I J N P R Traïng thaùi ñích 1 1 1 1 1 1 1 1 100 17 1 1 1 10 11 20 12 1 1 1 1 Trương Hải Bằng-AI ThuậtgiảiA KT –Tìmkiếmvớitri thứcbổ sung ( Algorthm for Knowled geable Tree Search):  ThuậtgiảiA T là thuậtgiải tìm kiếm đường đitốtnhất đốivớicâychỉ có các thông tin vềđỉnh, cung và giá trị của cung. Trong nhiềutrường hợpviệc tìm kiếm đường đisẽđược định hướng rõ thêm nếusử dụng các tri thứcthuđược dựatrêncáchiểubiếtvề tình huống vấn đề ở mỗibước. Tri thứcbổ sung ở mỗi đỉnh đượctương ứng vớimộtgiátrị h(n). Chẳng hạn đólà ướclượng giá thành đường đitừ n đếnmục tiêu. Ở ví dụ củagiảithuậtAT, ở bước đầutiên: g(c) = g(d) = 1  A T chọn tùy ý một trong hai đỉnh c và d để xét tiếp. Nhưng thay vì chọntùyý chúng ta có thểđặtcâuhỏi“Đỉnh nào trong các đỉnh c và d gầnmụctiêuhơn”, chúng ta ướclượng được: h(c) = 11 h(d) = 4 thì việcchọn đỉnh kế tiếpsẽ là d chứ không phảic. Do vậy tri thứcbổ sung sẽ dựatrêncơ sở cựctiểu hóa giá thành f ở mỗibước: f(n) = g(n) + h(n) Trương Hải Bằng-AI ThuậtgiảiA KT Bước1: Mọi đỉnh, cũng như các hàm g, h, f chưabiết. Mởđỉnh đầu tiên S, gán g(S) = 0 Sử dụng tri thứcbổ sung để ướctínhhàmh(S) Tính f(S) = g(S) + h(S) Bước2 : Chọn đỉnh mở có f là nhỏ nhấtvàgọilàđỉnh N NếuN làđích: đường đitừđỉnh ban đầu đến đỉnh N là ngắnnhấtvàvàbằng g(N). Dừng (Success). Nếu không tồntại đỉnh mở nào: cây biểudiễnvấn đề không tồntại đường đitớimục tiêu. Dừng (Fail). Nếucó2 đỉnh mở trở lên có cùng giá trị f nhỏ nhất: Chúng ta phảikiểmtraxemnhững đỉnh đócó đỉnh nào là đích hay không. + Nếu có: đường đitừđỉnh ban đầu đến đỉnh N là ngắnnhấtvàbằng g(N). Dừng (Success). + Nếu không có: chọnngẫunhiênmột trong các đỉnh đóvàgọi đỉnh đólàN. Bước3 : Đóng đỉnh N, mở mọi đỉnh sau N. Vớimỗi đỉnh S sau N, tính: g(S) = g(N) + cost(S→N) Sử dụng tri thứcbổ sung để tính h(S) và f(S): f(S) = g(S) + h(S) Bước4 : Quay lạibước2. Trương Hải Bằng-AI Bài toán Tháp Hà Nộivớin = 2 S 0 S n Các trường hợpcủa bài toán là vớitrạng thái cộtthứ ba : h(n) = 0123 Trương Hải Bằng-AI g = 0 h = 2 f = 2 g = 1 h = 2 f = 3 (min) g = 1 h = 3 f = 4 g = 2 h = 2 f = 4 g = 2 h = 3 f = 5 g = 2 h = 1 f = 3 (min) g = 3 h = 2 f = 5 g = 3 h = 1 f = 4 g = 3 h = 0 f = 3 (Ñích) . Bước4 : Đặtvàotrongθ những Si không có trong θ lẫn trong C. VớicácSiđãc trong hoặctrongC thìgán: f(Si) = Min( f cũ (Si), f mới (Si) ). If Si có trong C and. g(d) = 1  A T chọn tùy ý một trong hai đỉnh c và d để xét tiếp. Nhưng thay vì chọntùyý chúng ta có thểđặtcâuhỏi“Đỉnh nào trong các đỉnh c và d gầnmụctiêuhơn”,

Ngày đăng: 03/12/2013, 14:01

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

Tài liệu liên quan