Trí tuệ nhân tạo

39 68 0
Trí tuệ nhân tạo

Đ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

ĨS ĐINH MẠNH TƯỊNG TRÍ TUỆ NHÂN TẠO Q p NHÀ XUẤT BẢN KHOA H Ọ C V À KỸ THUẬT HÀ NÔI - 2002 M Ụ C LỤ C Trang IẨ)1 N Ó I Đ Ẩ U " NliẬt> M Ó N Phồn I GIẢI Q U Y Ế T VẤN Đ Ể BANG TÌM K IE M Chương CÁC CHIẾN lA/ỢC TÌM KIẾM M Ù .19 1.1 ííiểu diỗn vấn dề khơng gian trạng t h i 19 1.2 Các chiến lược lìm k i ế m .22 1.3 Cát chiến lược lìm kiếm m ù 2õ 1.3 ] Tìm kiếm theo bề r ộ n g 26 1.3.2 Tìm kiếm theo độ s â u 28 1.3.3 Các trạ n g ihái l ặ p 29 1.3.4 Tìm kiơrn sâu l ặ p 30 1.4 í^iy vấn dề vế vấn để Tìm kiếm đồ thị và/hoặc 31 1.4.1 Quy vấn để vể vấn đề c o n 31 1.4.2 ĩ)ồ thị v /h o ặ c .34 ] 4.3 Tìin kiếm đồ thị v / h o ặ c 38 Chương C Á r C m Ế N LƯỢC TÌM KIẾM k i n h N í l H í Ệ M .40 2.1 lỉàm (tánh giá tìm kiếm kinh n g h i ệ m 40 2:1 Tìm kiếni tô’t nhrấl - (ỉầu t i è n 42 2.3 Tìm kiếm leo (ỉồi 44 \ Tìm kiếm b e a m 45 Chương ('ÁC C ỉ l l Ế N L.ƯỢ(" TÌM KlẾ M T ố l u .47 3.1 Tìm dường ngắn n h ấ t 47 3.1.1 T h u ậ t toán A * 49 3.1.2 T h u ậ t tốn tìm kiêm n h n h - -c ậ n 52 3.2 Tìm dơì iượng tốt n h ấ t 54 3.2.1 Tìm kiếm leo d i .54 _ _ _ TRÍ TUỆ N H Â N T Ạ O 3.2.2 Tìm kiếm g r a d i e n t f)6 3.2.3 Tìni kiếm mô luyện k i m 56 3.3 Tìm kiếm mơ Ị)hỏng liên hóa T h u ậ t toán di truyền 58 Chương TÌM KIẾM c ó Đ ố l T H Ử 4.1 Cây trò chời tìm kiếm trò c h i 66 4.2 Chiến lược M in im a x 69 4.3 Phương pháỊ) cắt cụt alpha - b e ta 75 Phồn II T R I T H Ứ C VÀ L Ậ P LU Ậ N Chương LOGIC MỆNH Đ Ể 80 5.1 Biểu diễn tri thức 80 5.2 Cú pháp ngữ nghĩa logic mệnh đề .82 Õ.2.1 Cú p h p 82 Õ.3.2 Ngữ n g h ĩ a 83 5.3 Dạng chuẩn t ấ c .86 5.3.1 Sự tưởng đương công t h ứ c 86 0.3.2 Dạng chuẩn t ắ c 87 5.3.3 Các câu Horn .88 5.4 Luật suy d i ễ n 88 5.5 Luật phân ^ ả i chứng minh bác bỏ bàng luật phân g i i 92 Chương LOGIC VỊ TỪ CẤP M Ộ T 96 6.1 Cú pháp ngữ nghĩa logic vỊ từ cấp m ộ t í)7 6.1.1 Cú p h p .97 6.1.2 Ngử n g h í a 99 6.2 Chuẩn hố cơng thức 102 6.3 Các luạl suy d i ễ n 105 6.4 Thuật toán hợp nhâ^t 108 6.5 Chứng minh bằn^ luật phán g i ả i 112 6.6 Các chiến lược phân g i ả i .117 G.6.1 Chiên lược phân giải theo bể r ộ n g 119 6.6.2 Chiên lược p h ân giải sử d ụn g lập hỗ trỢ 119 6.6.3 Chiến lược tuyến t í n h 121 6.7 Sử dụng logic vị từ cấp để biểu diễn tri t h ứ c .121 6.7.1 Vị từ b ằ n g 122 M Ụ C L Ụ C _ (>.7.2 Dỉuih sách ịỉhĨỊ) tf)í'm tì‘ón cianh s c h 122 ().s Xây (iựn^ (’(ỉ sỏ tri thức .126 B.9 Cài đặt i'd sớ tri thức 129 (ì.9.1 ('àĩ ([ạt h n g lliức (‘ác c â u Ị)hán t 130 (ì.9.2 Cài tiặt sỏ tri thứr,., 133 Chương lilỂU DIỂN TRI TỈỈỨC' n o i ('A(' LUẬT VÀ LẬP LUẬN IMG 7.1 Hiêu tliỄn t n thứí' hdi :ÍU' liiậl nêu - t h ì 136 7.2 ỉ.ậị) liỉộn úôn lỘỊ) luận lùi tron^ hộ dựa tréĩì l u ậ t 138 7.1^ LẠị) luận í-iơn 138 7.2.2 LẠị) luận l ù i 141 I.Ạịì luận lùi Ìihiì íim kiêm trơn dồ v / h o ặ c 143 7.3 Thù tục lạp luận t iế n 145 7.3.1 Thu tục F o r j ' h a i n 146 7.3.2 Thủ tục r e t o 149 Ỉ.3 Ilộ hành (ỉộng dựa trôn l u ậ t 155 7.1 Thu lục lập luậìi lù i 157 ") Hi e u d i ễ n Iri t h ứ c k h ô n g chắ(' c h ã n 161 7.6 Hộ lập trình logic 163 7.7 llộ chuyên 165 Chương l o c k ; KHỒNC đ n đ i ệ u 168 K I.Ạị) kiậỉi có thê xem xél lại lopc khơng đơn diộu 168 5.2 \)'ãv íiiỏm cúa logic khơng dơiì diộu .170 HM mặc đ ị n h .172 8.-1 (ỉiá íhiêt thê giới dóng 177 B.T) Hỏ sun;; vị l .179 8.(ỳ ỉỉạn (‘hơ [)hạiìì v i 181 Chư(ỉng9 LƯOl N C Ử N C H ỈA V À Ỉ I Ệ K Ỉ Ỉ Ư N í; 184 9.1 X^ỎỈI ĨÌỊ^Í mỏ khái n i ệ m 184 9.2 Lưới ìi^nỉ ng h ĩa 187 9.:i K huĩi^ Ỉ93 Chương 10 TKI THỨC KHv3NG ( ’Ỉ1Á(^ (;HẢN 198 10.1 Klìỏn^^ chan biểu diỗn 198 10.2 Một số khíú niộnì ly thut xác s u ấ t 200 10 ^ Mạii^ xác suáì 10.3.1 10.3.2 10.3.3 10.3.4 _ T R Í TUỆ N HÂNi T Ạ O Định nghĩa m ạng xác s u ấ t .209 Vấn đê lậ]) luận m ạng xác s u â \ 212 Khả biểu diễn m ạng xác s u ấ l 211 Sự độc lập biến m n g xác suất ‘j l 10.4 Suy diễn mạng có câu trúc c â y ’3 18 10.5 Mạng kết nơì đ đ n 'J2õ 10.6 Suy diễn mạng đa kết n ô i 232 10.6.2 Biên đổi m ạng đa kết nôi th n h m ạng kết nôi đơn 233 10.6.3 Phương pháp mô ngẫu n h i ê n 234 10.7 Lý thuyết đ ịn h - Chương 11 LOGIC MỜ VÀ LẬP L U Ậ N XẤP x ỉ 1!46 11.1 Tập m ò 247 11.1.1 Khái niệm tập m ò 2!47 11.1.2 Một sô khái niệm liên quan tới tập m .21Õ1 11.1.3 Tính mò tính ngẫu n h i ê n 21Õ4 11.1.4 Xác định hàm t h u ộ c 2;55 11.2 Các phép toán tập mò 260 11.2.1 Các phép tốn chuẩn tập m ò 2:60 11.2.2, Các phép toán khác tập m ò 2:62 11.3 Quan hệ mờ nguyên lý mở r ộ n g 267 11.3.1 Q uan hệ m .2!67 11.3.2 Hợp t h n h q u an hệ m 2Ỉ68 11.3.3 Nguyên lý mở rộ n g 2;70 11.4 Logic mò .271 11.4.1 Biến ngôn ngữ mệnh đê m ò 2:71 11.4.2 Các mệnh dề mò hỢp i h a n h 2:74 11.4.3 Kéo theo mờ - L uậl if-then m ò 2:75 11.4.4 Luật Modus - Ponens tổng (ịu át 2!79 14.5 Hệ mờ 2Ỉ81 14.5.1 Kiến trúc hệ m 2ĩ82 14.5.2 Cớ sở luật mờ 2:8.'i 14.5.3 Bộ suy diễn m 2:84 H.5,4 Mò h ó a , 2;86 11.Õ.5 Khử m ò .2:88 11.Õ.6 Hệ mờ hệ tính xấ|) xi' vạn n ă n g .2:89 TÀI LIÊU THAM K H Ả O .2:90 LÒI N Ó I ĐẨU Trí tuộ n h â n tạo (TTNT) lĩỉih vực khoa học máy tính, nghiên cứu thiêt k ế lá(‘ nh ân thơng minh (“Computational intelligence IS the study Í' the design of intelligent agents'’)- Các áp dụng T T N T đa dạng phong phú, có nhiều hệ ihơng minh đòi: hệ chuyên gia, hệ điều khiên tự động, robot, hệ dịch tự động ngôn ngữ tự nhiên, hệ n h ặ n dạng, chướng Lrình chơi cò, Kỹ t h u ậ t T T N T sử dụng việc xây dựng hệ mểm nhằm tạo hộ môm m an g yếu tô^ thông minh, linh hoạt tiộn dụng, nước ta, năm gần đây, T T N T (lưa vào chương Irình giảng dạy cho sinh viên năm cì ngành Tin học Công nghệ thông tin Cuôn sách hình th n h trẽn sở í‘ác giáo Irình T T N T mà chúng tơi giảng dạy cho sinh viên cho lớp cao học n g n h Tin học Công nghệ thông tin nám học từ 1997 tdi nay, khoa Công nghệ thông tin, Đại học Khoa học tự nhiên, khoa Công nghệ Đại học Quốc gia Hà nội Cuôn sách viết cuôn n h ậ p môn T T N T , đôi tượng phục vụ chủ yếu sinh viên ngành Tin học Cơng Iighộ thỏìig lin Nội d n g c u ỏ n sach góm hai phấn: • Phần /; Gidi vấn đế tim kiếm Trong ph ần nằy, chúng tơi trình bày phương pháp biểu diền vấn đề kỹ th ụ ậ t t^rụ lỹiện% Ọíự ậặ,c Jữiệt^là tìm kiêm kinh nghiộm (heuristic search), sử dụng thưòng xun nhiều lĩnh vực ìighiên cứu TTN T • Phần 2: Biển dién tri thức láp luận P h ầ n đề cập đên ngôn ngữ biểu diễn t n thức, đặc biột logic phường pháp IẠị) luận ngôn ngữ biểu diễn t n thức Các kỹ th u ậ t biếu diỗn tri thức lập luận đóng vai trò q u an trọng việc thiết hệ thơng minh ® TRÌ TUỆ N H Â N L Ạ O Tuy nhiên với mong muôn cuỏn sách có Ihê clùii^^ làin tài hiịni tharn khảo cho phạm vi rộn^^ rãi độc giầ, C’húnfí tơi t n ii!', bày cách hệ thống cáo khái niệm kỹ tliuật bán cua 7 ’Av7’ n h m s n ip (’ho độc giả có sỏ dể di vào nghipn cứu lĩnli vựr c h u v ô n sá u T T N T liạn nhu’ lậỊ) kê hoạch (Ị)lanMìiig), họ(' niiá\' (machine learning), nhìn máy (computer V i s i o n ) , hiếu ngôn ngừ tụ Iihiiôn ( n a tu l language underslanding) Hai ngôn ngữ thao lác ký hiộu dược sử dụng nhiều lập trì nh T T N T Lisp Prolog Trong sách viết T T N r năm gần điây sô tác gui, h n [5] [7], dã sử d ụ n g Common List) (lô mô tả t h u ậ t loán Trong [20], táo giả lại sử dụng Prolog để biểu diiễii t h u ậ t tốn, nước ta ngơn ngữ Lisp ỉ^rolog lì n^ưòi đên, chúng tơi biêu ciiỗn th u ậ t tốn troiig sách theo i:’ái('h Iruyên thông Tức sử dụng cấu trúc điểu khiến ( t u ầ n tiự, điều kiện, lặp) mà ngưòi quen biết ĐặL biệt, sử dụng c:ấu Irúc l o o p d o đê biếu diễn rằng, thực Ihiiộn lặp Toán tứ e x i t đê khỏi vòng lặp, tốn tử s t o p dê dừn;^ sụ thực th u ật Loán Khi cài đ ặ l th u ậ t tốn, bạii có ihể lựa c hiọn ngôn ngữ sau để sử dụng: Common LisỊ), Scheme, Prolog, Smalltalk, C " ML (xem [28]) C h ú n g xin chân th n h cảm dn giáo sư Nguyễn Văn Hiệu, clhủ nhiệm khoa Công ngiiộ, Đại học Quốc gia Hà nộ] tạo diểu kiên th luận !ợi cho viết cuôn sách ( uôn sách chắn khơng tráiih khỏi thiơu sót Chúng' ttơi mong n h ậ n góp ý độc giíi Thư fíĨỊj ý xin gửi vổ Nhà \:u;í'ú bần Khoa học Kỹ t h u ậ t - 70 T rầ n Filing Đạo Hà Nội Tá c gìiả NHẬP MƠN TRÍ TUỆ NHÂN TẠO LÀ GÌ? T h u ậ t Uị;ử t r i t u ệ n h a n tạ o (ai’tilicial intelligence) dược J o h n Mí^Carthy dưa hội Jiat) t) Daỉ-liiìoh vào mùa hè 1956 Trong hộì iháo lìàv có inậl cấc Ií‘n tu.)i nối tiỏn^ Marvin Minsky Claude Shannon Nallianiel Rufhos((‘ỉ\ Ai’thiu' Samuel Allen Newell H erbert Simofi- Trưóc hội th;i ĩìày từ nãiii 1952 A rth u r Samuel viết ('hdng ífìiìh (‘hơi cò Sanìut*] (iã bác 1)0 tư tướng cho ràng máy tíi)h C'ó tliỏ làm dưỢc nià ÌV/Ạ ta l)áo làm chương Irình Sam uel có tho học chdi iòí hdn ngiíòi viỏl I‘a ỉìó Đơn liội thảo nàv, Alien Newell Herbert Simon (‘ÙIÌK t-iA viêl (‘hương trìn h lỘỊ) luạn vối lên gọi "the logic lh(H)rist’' Chư(jng tỉ‘ình í‘ua VIÌC ơng có chứng minh liaia lìơt (,‘á(‘ (ÌỊiih lý (‘lúiíì*r ('Unn "PnnciỊìia Matheniaiics’' Russell \VhìU‘lu‘a(l Tl’oiig liội íhrio ỏ Darliiìouth nhà nghiên cứu (ÌA tháo ìuẠìi va vạcli pliưdii^ huVín^ nịíhìơiì ('ứu lĩiìli vực Trí tuệ' ììhân tạo (TTNT) Vì hội thao í‘i Darlmoutli mua hò 1956 đưỢc xem thời tiiốin I'íi dờì ihực cưa Hiìli vực ìighiỏiì cứu TTNT Ti’on^ c‘ác sáí’h VUM xế T T N T ìi;ì ^^Ììì (!ây tác Riả dưa nhi ồu tlỊnh n^^hĩa vổ T T N T ('luinu tòi dan dây sơ (iịnh lìghìa; • "Sự nghiõn í ứu t‘á(‘ náii^^ lực trí ÍIIỘ llìỏng qua viộc sử dụng ni(j liình tính {()[]]{' (“'[’lu* siudv oC ini'iital faculties through the use of (‘oinpiUnlional iìK)(i(‘ls" (’liam iak and McDoi'mott 1985) • "Xííhệ lliuẠi tạo iníiV tliực chức năiig dòi hỏi thơng minh dưỢc thục hiộiì bơi ngưòi” ("The a r t of Croat ịn g inachinos ihal Ị)(*rfornì vvh(‘ii Ị)í*ríbnìK^ :1 by Ị)(‘()Ị)le" functions that K u r z w e i l 199 0) require 10 _ TRÍ TUỆ N H Ã N T Ạ O • "l.ĩnh vựí’ nghiên cứu tìm cách ^Mai tlìícli mơ Ị)hóng h àn h VI t l i ò n g ìiiinh t r o n g t h u ậ t n^ữ -ác (Ịuá t r ì n h t í n h tốn" (“A fie ld oí’ s t u d y t h a t s e o k s to exỊ)lain d e m u l a t e in te l lig e n t , b e h a v i o r in te rm s of computational processes” - Schalkoff, 1990) • “Sự nghiên cứu tính tốn để có ih ể n h ậ n thức, lập luận hành động' ("The study of comf utations th a t make it possible to p e r c e i v e , r e a s o n , a n d a c t ” - VVin-;ton 9 ) • “Một n h n h khoa học máy 'inh Hên quan tới lự cỉộng hố hành V] thơng m in h ” (“The branch of computer science th at IS concerned with the automation of intelligent behavior" - Luger and Stubblefield, 1993) Saư sô^ định nghĩa gần nhất: • '^TTNT thiơt kê nghiên cứu chương trình máy tín h ứng xử cách thơng minh Các chương trình xây dựng dể thực h àn h VI mà ngưòì dộng vật chúng La xem thơng mmh" (“Artificial Intelligence IS th e design and study of computer programs th a t behave intelligently These p)rograms are constructed to perform as would a h u m a n or an anim al whose behvior we consider intelligent” - Dean Allen and Aloi monos 1995) • "'TTNT nghiên cứu táf' nhân tồn lại môi trưòrìg, nhặn Ihửc va hanh động" ("Artificial Intelligence IS the sluciy of agents that exists in an environment and perccMve and act” Russell and Norvig, 1995) • ^'TTNT nghiên cứu (“ComỊ)utational thiôt kô tác Iihân thôiig h’' Intelligence is tho study of the desigìì oỉ’ intelligent agents" - Poole Mackworth and Goebel 1998) Hiện nhiểu nhà nghiên cứu quan niệm rằng, T T N T lĩnh vực nghiên cứu thiốt k ế t c n h â n t h ô n g m i n h (intelligent agenit) Tác n h â n thông minh b ất lồn mơi trưòng hàinh động cách thông minh (Một câu hỏi đặt ra: h àn h động t,hố đưỢc xom thông minh?) 25 'hân ĩ G IẢI Q U Y Ẽ Ì V Ấ N Đ Ể B A N G TÌM KIẾM đỉnh ứng VỚI trạ n g 111 Í1 V kế u Hình 1.4a đồ thị biểu ciễn m ột khơng gian t r n g thái VỚI I r i n g t h i ban dầu A, hình 1.4b (ây tì m kiếm tương ứng VỚI khơng fTian trạng thái dó b) Câ y tim kiếm l ương ứng a ) Đ ổ thị k hô n g g i an trạng thái H ìn h 1.4 C â y tìm k iếm Mỗi chiến lược tìm kiếm khòiig gian trạ ng thái tương ứng với imộl phương pháp xây dựng tini kiếm, Quá trình xây dựng b ( dỉầu lừ chi có dỉnh t r n g thái han đầu Giả sử tối bước mào (ìó chiơn lược Um kiếm, ta xây dựng đó, c ccác tương ứng vối t r a n g thái chưa ph t tn ển Bước t tiiếp theo phụ thuộc vào chiến lược tìm kiếm mà đỉnh mào ccíác dược chọn để p h t triển K h i phai triển đỉnh đó, tìm kiếm ùdíượo rnủ rộng bàng cách Ihêni v o diỉih đỉnh Kỹ LhuậL L lììm kiếm theo bề rộng (theo độ s â u ) lường ưng ddtựng rây tìm kiếm thoo bể rộng VỚI phương pháp xây ( t h p o đ ộ SÍIII) ' ' n X C Á C tfílẾN ' Lưộc' TỈM' KÌẾM MÙ Trcng inục t r ì n h bày hai chiến lược tìm kiếm mù: tìtìiim kiêm theo bề rộng tìm kiếĩri t hPO độ sâu Trong tìm kiếm theo bể nrộộng, tai mci bưóc ta chọn t r n g t hái để p h t triển trạ n g thái siỉiiinh trưíc trạ n g thái chờ p h t triên khác Còn tìm kiếm tt h h h e o dệ sâu trạng thái chọn đ ể phát triến trạng thái đưỢc sinh )ra-aa sau oùng số trang thái cìhờ phát triển 26 _ TRÍ TUỆ N H Ả N T Ạ O ('h ú n g ta sử dụng danh sách L dổ lưu trạng thái đă sinh chò đưỢc pháL triển Mục liêu lìm kiếm khơng gian t r n g thái tìm đường từ trạng thái ban đầu tới t r n g thái đích, đió q trình tìm kiếm ta cần lưu lại vết đường Ta có th ể s ủ dụng hàm father để lưu lại cha đỉnh đường á\,faíher{v) = lu cha đỉnh V u 1.3.1 Tìm kiêm theo bể rộng T h u ậ t tốn tìm kiêm theo bề rộng mô tả bới th ủ tục sau: Procedux'e B r e a d t h JFirst Search b e g in Khởi tạo d a n h sách L chứa trạ n g Lhái b a n đầu; loop 2.1 if L rỗng t h e n { thơng báo tìm kiếm thất bại; stop }; 2.2 Loại tr n g thái u đầu d a n h sách L; 2.3 i f u trạ n g thái kết thúc t h e n { thơng báo tìm kiếm th n h công; stop }; 2.4 f o r t r n g thái V kề u { Đặt V vào cì d a n h sách L; father(v) u } end; C h ú ng ta có sô n h ậ n xét sau vê th u ậ t tốn tìm kiêm thíCO) bê rộng: • Trong tìm kiếm theo bề rộiig, t r n g thái đưỢc sinh trước ísẽẽ phát t n ể n Lrước, d a n h sách L xử lý h n g đcỢi! Trong bưốc 2.3, ta cần kiểm t r a xem u có t r n g thái k ế t thiúcc hay khơng Nói chung t r n g thái kết thúc đưỢc xác định b)Ở3i sơ điều kiệ n đó, ta cần k iểm tra x e m u có Ihtỏ&a m ãn điểu kiện hay k h ôn g 27 G I Ả ! Q U Y Ế T V Ấ N Đ Ể B Ẳ N G TÌM KIÊM • Nơu tốn có ìighiệm (tồn tọì íỉưòng từ trạng thái ban đâu tới trạng thái dích), ihì thuật tốn lìm kiêm theo bể rộng tìm nghiệm, đồng thòi đường di tìm dược sõ ngắn Trong trường hỢp lốn vơ nghiệnì khơng gian trạng thái hữu hạn thuật tốn dừng cho thơng báo vơ nghiệm Đ Á N H GIÁ TÌM KIÊM THEO BỂ RỘNG Bây giò la đ n h giá thòi gian nhớ ìnà tìm kiêm theo bề rộng dM hỏi Giả sử rằng, trạng thái đưỢc phát triển sinh b trạiìg thái kề Ta gọi nhăn t ố n hánh Giả sử rằng, nghiệm tốn dường có độ dài d Bời nghiệm có thê đưỢc tìm đinh mức d tìm kiếm, số đỉnh cần xem xét để tìm nghiệm là: + + - + , + b ‘' ' + k đó, k 1, 2, , b‘[ Do sơ'lớn đỉnh cần xem xét là: + + 6^ N hư vậy, độ phức tạp thời g ia n cúa t h u ậ t tốn tìm kiếm theo bể irộng ( “) Độ phức tạp không gian ( ‘'), ta cần lưu \vào danh sách L tất đỉnh ciía tìm kiếm mức d, s ố đỉnh m y b'\ Để thấy rõ tìm kiếm theo bề rộ ng đòi hỏi thòi gian khơng gian lớn ttới inửc nào, ta xét trường hỢp nh,ân tô" nhánh ò = 10 độ sâu d thay cđổi Giả sử để ph t hiộn kiểm t r a 1000 trạ n g thái cần giây lưu gíĩiữ trạ n g thái cần 100 bytes, plhi (ỉó thòi gian khơng gian mà iLhuật tốn đòi hỏi cho b ả n g sau; Đồ sảu d T h i gian K h ô n g gian 11 g i â y megabyte 18 g i â y 111 m e g a b y t e s 31 g i 11 g i g a b y t e s 10 128 n g y terabyte 12 niărn 111 t e r a b yt e s 14 350í0 năm 1 11 t e r a b yt e s _ T R Í TUỆ N H Ẩ N T Ạ O 1.3.2 Tìm kiếm theo độ sâu N hư la dã biết, Lií tưởng chiến lược tìm kiếm theo độ sâu bưdc, Lrạng thái chọn dê |)hát Iriển trạng thái s m h sau sô t r n g thái chờ p h t tn ển Do t h u ậ t tốn tìm kiốm theo độ sâu hồn tồn tương lự i h u ậ t tốn tìm kiêm th e o bể rộng, chi có điểu khác là, ta xử lý danh sách L t r n g thái chò p h t triển khơng phải n h hàn g đợi mà ngăn xếp Cụ th ể tro n g bước 2.4 th u ậ t tốn tìm kiếm theo bề rộng, ta cần sửa lại “Đ ặ t I’ vào đấu d a n h sách L”, S au đưa nhận xél so sá n h hai chiên lược tìm kiếm mù: • T h u ậ t tốn lìm kiếm theo bể rộng ln ln tìm r a nghiệm Lốn có nghiệm Song khơng phải với b ấ t kỳ to n có nghiệm th u ậ t tốn tìm kiếm theo độ sâu tìm nghiệm! x ế u tốn có nghiệm khơng gian t r n g thái hữu hạn, t h u ậ t tốn tìm kiếm theo độ sâu tìm nghiệm Tuy nhiên, Irong trường hỢp khơng gian trạng thái vơ hạn, có thơ khơng tìm nghiệm, lý ta ln ln xuông theo độ sâu, ta theo n h n h vô hạn mà nghiệm không n ằ m n h n h t h u ậ t tốn khơng dừng Do đó, người ta khuy ên rằng, khơng nên áp dụng tìm kiếm theo dộ sâu cho tốn có tìm kiếm chứa n h n h vơ hạn • Độ pliức lạ]) Lhuậl lốn tìm kiếiTi t h e o độ sâu Giá sử rằng, nghiệm tốn đưòng có độ dài d, lìm kiếm có n h â n lơ” n h n h b có chiều cao d Có th ể xẩy ra, nghiệm đỉnh bên phải mức d tìm kiếm, độ phức tạp ihời gian tìm kiếm theo độ sâu Irường hợp xấu 0(6''), tức tìm kiếm theo rộng Tuy nhiên, thực t ế đôi với nhiểu tốn, tìm kiếm theo dộ sáu thực n h a n h hơti tìm kiêm theo bể rộng, Lý tìm kiếm theo bề rộng phẳi xem xét tồn tìm kiêm tới mức d-1, mổi xem xét đỉnh mức d Còn tìm kiếm theo độ sâu, ta cần xem xét p h ậ n nhỏ Lìm kiếm tìm nghiệm Jl’i m i n I G I Ả I Q U Y Ê T V Ấ N Đ Ể B A N G TÌM KIẾM 29 í) ẽ clánli ịĩiá dộ Ị)ìiức tạp kliơiig gian tìm kiếm tiu'o dộ sáu ta có n h ậ n xé t I'ang, k h i la |)liát triến m ộ t dỉiili u trơ n c â y t ìm kiốni ituH) (ìộ sâu la chi cần lưu (linh chưa dưỢc phát t n e n mà c h ú n g đỉnh cua đỉnh nằm Irên dường (li lừ gốc lới dỉỉih II X hư dơì VỚI tìm kiếrn có nhân lố Iihánh (lộ s â u lỏn nhát d ta (‘hỉ cẩn lưu il (Ib dinh ; H) độ pliức tạp khơng gian tìm kiốm theo độ sâu 0(àó) Irong dó tii:i kiơm theo bể rộng đòi hỏi khơnfĩ gian nhớ ()(6‘‘)! 3.3 C c trạng thái lặp X h ta thấy mục 1.2 tìm kiơm có lliố chứa ninều (ỉínli lửing vc3i ti-ạng thái, trạng thái dượr gọi trạng ih llặiỊ) C h ắ n g hạii Lrong Um kiếm hình l , ‘1b tr n g thái c , E F (cáic trạ n g thái lạp Trong đồ thị biổu diễn không gian trạng thái, Itr-ạiig Lhái lặỊ) ứng với đinh có nhiều dưòng dẫn tới từ trạng llhiái ban đầu N ếu đồ thị có chu t’’ình Ihì tìm kiếm sẻ chứa inlhánh VỚI số đinh lặỊ) lại vô hạn lấn Trong th uật Lốn tìm kiếm ;sẽ' lã n g ị)hí râ't nhiểu thòi gian để phái t n ế n lại trạng ihái mà La ịgãiỊ) cỉã I)hát tn ế n Vì trình tìm kiếm La cẩn t r n h snih li'ai t'ác trạng ihái mà ta Ị)hát tn ể n Chúng la có th ể áp (lụng llr-ong giái pháp sau đây: • Khi Ị)hál triển dỉnh u, không siiih lỉỉnh Irùng VỚI cha a • Khi ))háí Iriển dỉnh i/ không sinh đỉnh t r ù n s với (linh dó nằm dường di d ẫ n tới !/ • Khơng sinh đỉiih mà dã ciược siiih ra, tức clìí sinh i-a dinh Fiai giài phắỊ) đẩu dễ cài đặt không tốn nhiếu k h ôn g gian Iihớ, ttuiy nhiên ííiái Ị ) h p n y k h ô n g t r n h d ợ c hốL c c t r n g t h i l ặ p Dê thúi giái phá|) Lliứ ba ta cáii lưu trạng thái dã píiát lirnên vào ti.[) Q lưu Irạng Ihái chờ Ị)hál t n ể n vào (lanh sách L IDiưitng Iihiên, Irạng thái r !ẩn dau (iược sinh khơng có tronịí Q \vấỉ L Việc liu trạng Uiái dã p h i triển kiếm tra xem mội li-ạng tlhiái có phái lổn đẩu ùược sinh k h n g đòi hỏi râ't nhiỂu khơng giaii tthiòi gian Cnúng ta cài tlạt t.'ip Q brii báng băm (xem [8]) 30 _ _ TRÍ TUỆ N H Á N T Ạ O 1.3.4 Tim kiếm sâu lặp N hư ch ú n g la đă nh ận xét, nơu lìm kiếm c:hứa nhánh vơ hạn sử dụng tìm kiêm theo dộ sau, ta mắc kẹt n h n h khơng tìm nghiệm Để khắc phục hồn cảnh iLa tìm kiơiìì thoo độ sâu tới mức d đó; khơng tìm nghiộm., ta Vàng độ sâu lên lại tìm kiếm theo độ sáu tới mức Quá trì nh lặp lại VỎI d lẩn lượt lả L 2, dến độ sávi max N h vạy t h u ậ t tốn tìm kiơm sáu lặp (iterative deepening search) s dụng thủ lục tìm kiếm sâu h n chơ^ (d)lh_limũed search) n h thủ íụic Đó íhủ tục tim kiế theo độ sâu, n h n g (Ỉ1 tới độ s â u d đtó I‘ồi (Ịuay lên Trong th ú tục tìm kiếm sâu hạn chế, d i h a i n SC) dộ sâu hàm depth ghi lại độ sâu dỉnh Procedure D e p t h _ L i m i t e d _ S e a r c h ( d)\ begin Khởi tạo danh sách L chứa írạiig thái b a n đầu Uq; depth(U(j) b, c , d Vi d ụ Giả sử chúng la có khóiiỊí pian 'rạ n g thái sau: • T r n g i h i b a n dáu (bài loan caii giai) a • T ậ p toán tử quy gồm: /ĩ,; a ^ d, e, /' R.^: a d, k R, a - > g , h Rị \ ci h c Ry k - > e l /í^: k h • Tậ{) trạng thái kết thúc (các toán sơ cấp) T = {6, c, e,j, l) Không gian Lrạng thái trê n l)iổu (liỗn đồ thị và/hoặc hình 1.9 Trong đồ thị đó, dỉnh, chảng hạn a „ Ơ2 , gọi dỉnh và, dỉn h chẳng hạn a, f k gọi đỉnh ỉwậc Lý là, đỉnh a biểu diễii tập toán {d, e /1 a, đưỢc giải nêu d e f 36 TRÍ TỤỆ N H Â N ' Ạ O giải Còn đỉnh ơ, ta có tốn tứ /ỉ,, R.^, R.ị quy toán vể toán coti khác nhau, a giải a, = {d, e /ì, a-2 = {d, k), = >^g h\ giải quyết, a Ị 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 hình 1,9 ró thể rú t gọn thành đồ thị Irong hình 1.10 T rong đồ thị r ú t gọn này, ta nói chẩng hạn d e, f \ h đỉnh kể đinh a theo tốn tử /?,, d k đỉnh kể a theo toán tử R; 37 n u m ỉ G I À ! Q U Y Ẽ T V Ấ N Đ Ể B A N G TÌM KIẾM Klìi có cár t o n tứ rút gọii v a n il(‘ h a iìg cácl) á|) d ụ n g l i ê n tiơ p tốn lử, la có íììể dưa bíu tốii cáii ^lai vổ tập tốn ('hẩng hạn, ví (lụ trên, néu ta quy hài tốiì vế tạp lốn aỊ) Í ‘( J M dụng CÍU' lốiì lử Rị Rị, Rị., ta sè c, e, /ì lấ t ('â Loan đểu sơ cap Từ cốc tốn tử R Rị fí,- la xây dựng mộl hình 1.1 la, đưỢ(' gọi ỉà nghiệni Cây nghiộìn dược định nghĩa sau: a) b) H ình 1.11 C c c â y n g h i ệ m C â v n g h i ê m m ộ t cây, t r o n g (ỉó: • Gòc ứng V(3i íốii can ^iãi • Tấl đinh kêt thúc (cỉỉnh ứìig với tốn sơ cấp) • Nếu u đinh tlìì đỉnh cúa li ta’l cá đỉnh kề u theo mội lốìì tử lỈM Các đỉnh cúa đồ thị và/hoặ(* đưỢí' gan nhăn ^lai dược không già.i dượe C c d i n h ^ ị a i d ợ c dưỢc xá(* tlỊiìlì (lệ q u y nhu' s a u : • C c đ í n h k ê t i húí - c c íliiih giàỉ dược • N u u k h n g p hỉ ì ì d í n h k(‘l ílìú'- n h n g có m ộ t t o n l R s a o cho t:ít Cíi cát' đíĩlh'k(*^ // th(‘fì f\ (\vW íĩiÁi 'u Ịíiíu'dơỢ(V ( \ ấ c díììh • khong ịịỉải dươc í ỉ u ụ c x;u' í i Ịnh tỉộ í Ị uy n h s a u : ('ác dinli khơng Ị)hí'n ihì.h kri íliức khơng có dinh kề, dinh khơng giải đưỢc • Nếư u khơng phải đinh KƠl thúc với tốn tử R áp dụng lại u đểu có dinh V kế u thoo R khơng giải đưỢc, u khcng giai dược 38 _ _ TRÍ TUỆ N H Â N T Ạ ( Ta có n h ậ n xét rằiiK nơ'u tốn a giải dượothi có C'â'v nghiộm góc a ngược lại nêu có nghiệm gốc a a giài đượcc Hiêii nhiên tốn giải điíỢc có thổ có nhiểii nghiệm mồ)i nghiệm biốu (iiỗn cách giai bải tốn ( l i ắ i ig hạn ví diụ nêu, tốn a có hai nghiệin hình 1.] Thứ tự giầi toán nghiệm sau íỉàu toán ứng VỚI đinh u giái sau l ấ t toán ứng với cáu' dinh ron cua u dã dược giái Chăng hạn với nghiệm hìnlh 1.1 la, thứ lự ^iái tốn h c d, j , f e a Ta có thê sử dụnjg ihủ lục sáp xêp lopo (xem [8]) đế xêp thứ tự toán mộu nghiệm Dương nhiên ta giải đồng thòi bàii toán mức nghiệm, Vân để bây giò là, tìm kiếm đồ thị và/hoặc để xá(c định đin h ứng VĨI tốn ban đầu giải đưỢc hay khơng giảu dược, giái đượp xây dựng nghiệm cho 1.4.3 Tìm kiếm đổ thị và/hoặc a sử dụng kỷ th u ậ t tìm kiêm theo độ sâvi Irén đồ thị và/hoặc đ(ế d án h dâu đỉnh Các dỉnh đ án h dấu giái không giản theo địn h nghĩa đệ quy đỉnh giải đưỢc không giải đưỢc X u ấ ú phát từ đỉnh ứng VỚI toán ban đầu, xuông theo độ sâu, gặịD dinh u đ ỉnh kêt thúc đánh dâu giải Nêu gặp đỉnh lu không phái đỉnh kết thúc từ u khơng tiep được, u đưỢc đ n lh dấu khơng íĩiải đưỢc Khi tới đỉnh u từ u la xuống cá(c đinh V kề u theo mộl toán tử R N đánh dấu đ ỉn h IV khơng giải khơng cần tiếp xVig đính V lại Tiếp tự(.c xuống đỉnh kể u theo loán tử khác Nếu t ấ t đỉnh k ề Ui theo tốn tử dược đánh dấu giải u đánh d ấ u i giải quay lên cha u Còn từ u đì xuống đỉnh kề ncó theo tốn lử đểu gặ]) đính kể đánh dấu không giải được, tliù u dược đán h dấu không giải đưỢc quay lên cha u Ta biêu diễn thủ tục tìm kiêm theo độ sâu đ n h d â u đ ỉn h i trình bày hàm đệ quy Solvable(u) Hàrn nàv n h ậ n giá trị trute nêu u giải dược n hận giá trị false nêu u không giải 1'rong h r m Solvable(u) la sử dụng: riHin I G I Ả I Q U Y Ẽ T V Ấ N Đ Ể B Ả N G TÌM K I Ê M 39 l ^ i ê n O h VỎI m ỗ i t o n t ứ R a]) d ụ n g clvíực l i u b i ế n Ok nhận g i ti'Ị Iriií' I i u t;Vl C.-I c c ( l ỉ n h í ’ k t ' I/ t h ( ‘o R i l r u Ị ỉ i i l i i Ợc v Ok nliận li'ị false Iiini có (Imh V kồ u I h

Ngày đăng: 03/01/2020, 23:39

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan