Nh ng ng i có tri th t t là nh ng chuyên gia expert... T ch c xã h i chuyên nghi p v AI là American Association for AI AAAI, ACM Special Interest Group in AI SIGART và AISB Society for A
Trang 1H C VI N CÔNG NGH B U CHÍNH VI N THÔNG
NH P MÔN TRÍ TU NHÂN T O
(Dùng cho sinh viên h đào t o đ i h c t xa)
L u hành n i b
HÀ N I - 2007
Trang 2H C VI N CÔNG NGH B U CHÍNH VI N THÔNG
NH P MÔN TRÍ TU NHÂN T O
Trang 3L I NÓI U
Trí tu nhân t o (hay AI: Artificial Intelligence), là n l c tìm hi u nh ng y u t trí tu
Lý do khác đ nghiên c u l nh v c này là cách đ ta t tìm hi u b n thân chúng ta Không gi ng tri t h c và tâm lý h c, hai khoa h c liên quan đ n trí tu , còn AI c g ng thi t l p các các y u t trí tu c ng nh tìm bi t v chúng Lý do khác đ nghiên c u AI là đ t o ra các th c th thông minh giúp ích cho chúng ta AI có nhi u s n ph m quan tr ng và đáng l u ý, th m chí ngay t lúc
s n ph m m i đ c hình thành M c dù không d báo đ c t ng lai, nh ng rõ ràng máy tính
đi n t v i đ thông minh nh t đ nh đã có nh h ng l n t i cu c s ng ngày nay và t ng lai phát tri n c a v n minh nhân lo i
Trong các tr ng đ i h c, cao đ ng, Trí tu nhân t o đã tr thành m t môn h c chuyên ngành c a sinh viên các ngành Công ngh Thông tin đáp ng k p th i cho đào t o t xa, H c
vi n Công ngh B u chính Vi n thông biên so n tài li u này cho sinh viên, đ c biêt h ào t o t
xa h c t p Trong quá trình biên so n, chúng tôi có tham kh o các tài li u c a i h c Bách khoa
Hà n i [1] giáo trình g n g i v tính công ngh v i H c vi n M t s giáo trình khác c a i h c
Qu c gia thành ph H Chí Minh [], tài li u trên m ng và các tài li u n c ngoài b ng ti ng Anh [] c ng đ c tham kh o và gi i thi u đ sinh viên đào t o t xa đ c thêm
Tài li u này nh m h ng d n và gi i thi u nh ng ki n th c c b n, các khái ni m, đ nh ngh a tóm t t M t s thu t ng đ c chú gi i b ng ti ng Anh đ h c viên đ c b ng ti ng Anh d dàng, tránh hi u nh m khi chuy n sang ti ng Vi t
Nhi u c g ng đ c p nh t ki n th c nh ng th i gian, đi u ki n, kh n ng có h n nên tài
li u ch c ch n còn nhi u thi u sót Chúng tôi mong nh n đ c nhi u ý ki n đóng góp đ tài li u
đ c hoàn thi n h n cho các l n tái b n sau
TÁC GI
Trang 5CH NG 1: KHOA H C TRÍ TU NHÂN T O: T NG QUAN
ph i là b môn h p d n khi nghiên c u không
Trí tu nhân t o hay AI (Artificial Intelligence) là m t trong nh ng ngành tiên ti n nh t
Nó chính th c đ c b t đ u vào n m 1956, m c dù vi c này đã b t đ u t 5 n m tr c Cùng v i ngành di truy n h c hi n đ i, đây là môn h c đ c nhi u nhà khoa h c đánh giá: “là l nh v c tôi thích nghiên c u nh t trong s nh ng môn tôi mu n theo đu i” M t sinh viên v t lý đã có lý khi nói r ng: t t c các ý t ng hay đã đ c Galileo, Newton, Einstein tìm r i; m t s ý t ng khác
l i m t r t nhi u n m nghiên c u tr c khi có vai trò th c ti n AI v n là v n đ đ tr ng t th i Einstein
Qua h n 2000 n m, các tri t gia đã c g ng đ hi u cách nhìn, h c, nh và l p lu n đ c hình thành nh th nào S ki n nh ng chi c máy tính có th s d ng đ c vào đ u nh ng n m
50 c a th k XX đã làm các nhà tri th c thay đ i h ng suy ngh R t nhi u ng i cho r ng:
“nh ng trí tu siêu đi n t ” m i này đã cho ta d đoán đ c ti m n ng c a trí tu AI th c s khó
h n r t nhi u so v i ban đ u m i ng i ngh
Hi n nay AI đã chuy n h ng sang nhi u l nh v c nh , t các l nh v c có m c đích chung chung nh nh n th c, l p lu n, t duy logic đ n nh ng công vi c c th nh đánh c , cung c p
đ nh lý toán h c, làm th và chu n đoán b nh Th ng, các nhà khoa h c trong các l nh v c khác
c ng nghiêng v trí tu nhân t o Trong l nh v c này h th y các ph ng ti n làm vi c, v n t
v ng đ c h th ng hoá, t đ ng hoá: các nhi m v trí tu là công vi c mà h s có th c ng hi n
c đ i ây th c s là m t ngành r t ph bi n
N u mu n m t ch ng trình máy tính có kh n ng suy ngh nh con ng i, chúng ta ph i tìm hi u con ng i đã t duy nh th nào? Có m t s tiêu chí xác đ nh nh th nào là suy ngh
ki u con ng i Chúng ta c n xem công vi c bên trong c a b óc con ng i Có hai ph ng pháp
đ th c hi n đi u này: th nh t là thông qua t duy bên trong - ph i n m b t đ c suy ngh c a con ng i khi làm vi c - th hai thông qua thí nghi m tâm lý Khi chúng ta đã có đ c đ y đ lý thuy t v t duy thì chúng ta có th ch ng trình hoá nó trên máy tính N u đ u vào/ra c a
ch ng trình và th i gian làm vi c phù h p v i con ng i thì nh ng ch ng trình t đ ng này có
th ho t đ ng theo con ng i Ví d , Newell và Simon đã phát tri n ph ng pháp gi i quy t v n
đ GPS- General Problem Solver (Newell and Simon 1961) ây là ph ng pháp đ i l p v i các
Trang 6nghiên c u đ ng th i (nh Wang (1960)) ông quan tâm đ n vi c có đ c nh ng gi i pháp đúng
đ n, không quan tâm đ n vi c con ng i ph i làm nh th nào
1.1.2 Các qui t c t duy
Tri t gia Aristote là ng i đ u tiên h th ng hoá “t duy chính xác” Phép tam đo n lu n c a ông đ a ra k t lu n đúng n u c ti n đ chính và ti n đ th là đúng Ch ng h n: “n u Sô-crát là con ng i, m i con ng i đ u ch t, nh v y Sô-crát s ch t”
Môn t duy logic phát tri n vào cu i th k XIX đ u XX N m 1965 các ch ng trình cung
c p cho chúng ta đ nh ng thông tin, chi ti t v m t v n đ trong t duy logic và tìm ra ph ng pháp gi i N u v n còn v n đ ch a có cách gi i thì ch ng trình s không ng ng tìm ki m cách
gi i Môn logic truy n th ng trong AI là đi u mong m i đ có đ c m t ch ng trình mô t h
th ng trí tu
1.1.3 Kh i ngu n c a AI (1943 - 1956)
Nh ng công vi c đ u tiên c a AI đ c Warren McCulioch và Walter Pitts (1943) th c hi n
H đã nghiên c u ba c s lí thuy t: tri t h c c b n và ch c n ng c a các n ron th n kinh; phân tích v các m nh đ logic là c a Russell và whitehead và cu i cùng là thuy t d đoán c a Turning H đã đ ra mô hình n ron nhân t o, trong đó m i n ron đ c đ c tr ng b i hai tr ng thái “b t”, “t t” McCulloch và Pitts c ng đã phát hi n: m ng n ron có kh n ng h c Donald Hebb (1949) s d ng lu t h c đ n gi n t ng tr ng cho vi c truy n thông tin gi a các gi a các n ron
u nh ng n m 1950, Claude Shannon (1950) và Alan Turning (1953) đã vi t ch ng trình đánh c theo cách mà Von Newman sáng ch ra máy tính Cùng lúc đó, hai sinh viên khoa toán
tr ng đ i h c Princeton, Marvin Minsky và Dean Edmond đã xây d ng h th ng máy tính n ron
đ u tiên vào n m 1951 đ c g i là SNARC Nó s d ng kho ng 3000 bóng đi n t chân không và thi t b c khí t đ ng tính giá tr th ng d t chùm B-24 đ mô ph ng m ng v i 40 n ron Nhóm th c s c a Minsky nghi ng r ng li u đây có đ c coi là m t ph n c a toán h c, nh ng Neuman m t thành viên c a nhóm đã cho bi t r ng “n u bây gi nó không ph i là m t ph n c a toán h c thì m t ngày nào đó nó s là nh th ” Th t m a mai, sau này Minsky l i chính là ng i
ch ng minh h c thuy t này và đã bác b nhi u h th ng nghiên c u v m ng n ron trong su t
nh ng n m 1970
Lòng say mê và tôn tr ng l n ngay t r t s m (1952-1969)
N m 1958 McCarthy đã đ nh ngh a ngôn ng b c cao Lisp, và tr thành ngôn ng l p trình cho AI Lisp là ngôn ng l p trình lâu đ i th hai mà hi n nay v n s d ng V i Lisp, McCarthy đã có ph ng ti n ông c n, nh ng đ đáp ng đ c yêu c u và tài nguyên tính toán là
m t v n đ quan tr ng C ng vào n m 1958, McCarthy xu t b n bài báo “Các ch ng trình v i cách nhìn nh n chung” Trong bài báo này, ông bàn v ch ng trình t v n, m t ch ng trình gi
đ nh đ c coi là h th ng AI hoàn thi n đ u tiên Gi ng h c thuy t logic và cách ch ng minh các
đ nh lý hình h c, ch ng trình c a McCarthy đ c thi t k nh m s d ng ki n th c đ nghiên c u cách gi i quy t v n đ Không nh các ch ng trình khác, ch ng trình này là m t b ph n ki n
th c c a toàn b th gi i quan Ông ch ra r ng làm th nào đ nh ng đi u r t đ n gi n l i làm cho ch ng trình có th khái quát đ c m t k ho ch đ n sân bay và lên máy bay Ch ng trình này c ng đ c thi t k đ nó có th ch p nh n vài chân lý m i v quá trình th c hi n bình th ng Chính vì v y, ch ng trình này có đ c nh ng kh n ng th c hi n trong các ch ng trình m i mà không c n l p trình l i
Trang 7N m 1963, McCarthy đã có các nghiên c u v s d ng logic đ xây d ng ch ng trình
ng i t v Ch ng trình này đ c phát tri n do khám phá c a Robinson v ph ng pháp c i cách Nh ng công vi c đ u tiên t o ra nh ng h th ng m i c a McCulloch và Pitts làm cho chúng phát tri n Các ph ng pháp nghiên c u c a Hebb đã đ c Widrow ng h (Widrow và Hoff, 1960; Widrow, 1962) H đã đ t tên mang n ron là m ng c a ông, và c ng đ c Frank Rosenblatt (1962) c ng c Rosenblatt ch ng minh r ng thu t toán mà ông nghiên c u có th thêm vào nh ng kh n ng c a nh n th c phù h p v i b t c d li u đ u vào nào
phát bi u (1957): Không ph i m c đích c a tôi là làm các b n ng c nhiên, nh ng cách đ n gi n
nh t đ có th khái quát là hi n nay trên th gi i, máy móc có th suy ngh , có th h c và sáng t o
đ c H n n a, kh n ng c a nó là làm vi c v i ti n đ cao- trong t ng lai rõ ràng – cho đ n khi
v n đ chúng ta có th gi i đ c, s cùng t n t i v i t duy c a con ng i có th áp d ng đ c
N m 1958, ông d đoán trong 10 n m n a, m t máy tính có th vô đ ch trong môn c vua, và các
đ nh lý toán h c m i s đ c máy ch ng minh
1.2 CÁC TI N C B N C A TTNT
Toàn c nh v ph ng pháp gi i quy t v n đ hình thành trong th p k đ u nghiên c u AI là
m c đích nghiên c u n l c liên k t các b c l p lu n c b n v i nhau đ tìm ra ph ng pháp hoàn thi n Các ph ng pháp này đ c coi là các ph ng pháp kém vì s d ng thông tin kém v
l nh v c i v i nhi u l nh v c ph c t p, thì các ph ng pháp th c hi n l i r t kém Cách duy
nh t quanh v n đ là s d ng ki n th c phù h p h n đ có b c l p r ng h n và đ gi i quy t các
tr ng h p n y sinh nh t đ nh trong các l nh v c nh chuyên môn Chúng ta ch c s nói r ng gi i quy t các v n đ khó thì h u nh ph i bi t tr c đáp án
Ch ng trình DENDRAL (Buchanan, 1969) là m t ví d s m ti p c n ph ng pháp này
Nó đ c phát tri n t i Stanford, đây chính là n i Ed Feigenbaum (m t sinh viên chính qui c a Herbert Simon) Bruce Buchanan (m t tri t gia chuy n sang làm nghiên c u máy tính) và Joshua Lederberg (nhà nghiên c u di truy n đo t gi i Nobel) đã h p nhau l i đ cùng suy lu n, gi i quy t
v n đ có c u trúc phân t t nh ng thông tin do máy đo quang ph cung c p D li u đ a vào
ch ng trình g m các c u trúc c b n c a phân t (Ví d C6H12NO2), và r t nhi u d i quang ph
đ a ra hàng lo t đo n phân t khác nhau khái quát chung khi nó cùng m t lúc đ a ra các dòng
đi n t Ví d d i quang ph ch a đ ng m t đi m nh n t i m=15 t ng ng v i m t d i c a đo n methyl (CH3)
Phiên b n s khai c a ch ng trình khái quát đ c toàn b c u trúc có th bên trong b ng phân t và sau đó ph ng đoán b ng cách quan sát m i d i quang ph , so sánh nó v i quang ph
th c t Nh chúng ta ngh thì đi u này tr nên nan gi i đ i v i các phân t có kích th c đáng
k Các nhà nghiên c u DENDRAL khuyên các nhà phân tích d c khoa và cho th y r ng h nghiên c u b ng cách tìm ki m các ph n bên trên c a đi m nh n trong d i quang ph , đi u đó
đ a ra g i ý chung v các c u trúc nh bên trong phân t Ví d , qui lu t sau đây đ c s d ng đ
Trang 8Khi nh n ra phân t ch a m t c u trúc nh đ c bi t, s l ng thành ph n tham gia có th b
gi m xu ng nhanh chóng Nhóm DENDRAL k t lu n r ng h th ng m i là r t m nh b i vì: toàn
b ki n th c có liên quan đ n gi i quy t công vi c đã đ c phác th o s qua t c u trúc chung trong [thành ph n quang ph đoán tr c] đ có nh ng c u trúc đ c bi t
T m quan tr ng c a DENDRAL là nó là h th ng c m nh n ki n th c thành công đ u tiên Các chuyên gia c a l nh v c này đi sâu t s l ng l n các qui lu t có m c đích đ c bi t Các h
th ng sau này c ng không k t h p l i thành ch đ chính c a ph ng pháp chuyên gia c a McCarthy - ph n hoàn toàn tách bi t c a ki n th c (trong c u trúc c a qui lu t) và thành ph n l p
lu n
V i bài h c này, Feigebaum và các thành viên khác t i Stanford b t đ u l p d án ch ng trình Heuristic, đ đ u t m r ng vào các ph ng pháp m i c a h chuyên gia nh m áp d ng vào các l nh v c khác nhau Nh ng n l c chính sau đó là chu n đoán y h c Feigenbaum, Buchanan
và Edward Shortlife đã phát tri n h chuyên gia MYCIN đ ch n đoán b nh nhi m trùng máu
V i kho ng 450 lu t, h chuyên gia MYCIN có th th c hi n t t h n nhi u bác s m i Nó có hai
s khác bi t c b n v i h chuyên gia DENDRAL Th nh t: không gi ng nh các lu t DENDRAL, không m t m u lý thuy t chung nào t n t i mà có th suy lu n t các lu t c a h MYCIN Các lu t ph i có câu ch t v n c a chuyên gia, ng i có nhi m v tìm chúng t kinh nghi m Th hai: các lu t ph n ánh m i liên quan không ch c ch n v i ki n th c y h c MYCIN
k t h p v i h vi phân c a bi n s đ c coi là các nhân t phù h p t t ( m i lúc) v i ph ng pháp mà các bác s ti p c n v i các tri u ch ng trong quá trình chu n đoán
Cách ti p c n khác đ chu n đoán y h c c ng đ c nghiên c u T i tr ng đ i h c Rutger,
nh ng máy tính trong ngành sinh hoá c a Sual Amarel b t đ u tham v ng nh m c g ng chu n đoán b nh t t d a trên ki n th c đ c bi u đ t rõ ràng c a nh ng chi c máy phân tích quá trình
b nh t t Trong khi đó, m t s nhóm l n h n t i MIT và trung tâm y t c a Anh đang ti p t c
ph ng pháp chu n đoán và đi u tr d a trên h c thuy t có tính kh thi và th c t M c đích c a
h là xây d ng các h th ng có th đ a ra các ph ng pháp ch n đoán y h c V y h c, ph ng pháp Stanford s d ng các qui lu t do các bác s cung c p ngay t đ u đã đ c ch ng minh là ph
bi n h n Nh ng h chuyên gia PROSPECTOR (Duda 1979) đ c công b cho m i ng i b ng cách gi i thi u thi t b khoan th m qu ng
M t vài ngôn ng d a vào logic nh ngôn ng Prolog ph bi n châu Âu, và PLANNER M Các ngôn ng khác, theo sau các ý t ng c a Minsky (1975) ch p nh n
ph ng pháp ti p c n c u trúc, thu th p các ch ng c v đ i t ng và các lo i s ki n
1.3 CÁC KHÁI NI M C B N
1.3.1 Trí tu nhân t o(AI) là gì?
Chúng ta có th nói: “Tuy t th t, đây là m t ch ng trình đ c th c hi n b ng nh ng suy
di n thông minh, vì th c n ph i ti p t c và m i ng i c n b sung cho nó” Nh ng theo s phát tri n c a khoa h c cho th y: s có ích n u ta đi đúng h ng nh ngh a v AI đã có t i tám cu n sách đ c p Nh ng đ nh ngh a đó đ a ra trên hai nh n đ nh chính:
- Th nh t: quan tâm ch y u đ n quá trình t duy và l p lu n
- Th hai: v n đ ít đ c quan tâm h n, đó là ho t đ ng
M t h th ng đ c coi là h p lý n u nh nó th c hi n đúng i u này s đ a ngành AI đ n
4 m c tiêu.(xem B ng 1.1)
Chúng ta s đi vào chi ti t c a t ng h ng theo các phát bi u sau đây:
Trang 9(Charniak and McDermott, 1985)
“Nghiên c u máy tính l m cho máy tính có kh n ng c m nh n,
đ c nh ng h nh đ ng có t duy trong “l nh v c x lý tính toán”
(Schalkoff, 1990)
“Trong ng nh khoa h c máy tính
có liên quan đ n s t đ ng hoá
Ph ng pháp tr c nghi m Turning đ c Alan Turning (1950) đ a ra ây là ph ng pháp
nh m đ nh ngh a m t ho t đ ng g i là thông minh Turning cho r ng: ho t đ ng trí tu là kh
n ng có đ c nh con ng i trong nh ng công vi c c n tri th c, đ đ đánh l a ng i th m v n mình Nói khái quát, ph ng pháp tr c nghi m c a ông là: máy tính s b m t ng i h i thông qua giao ti p gõ ch qua vô tuy n K t thúc thí nghi m s là lúc ng i h i không còn câu nào đ
h i ho c c ng i và máy đ u hoàn thành l p ch ng trình cho máy tính qua đ c quá trình
ki m tra c n hoàn thành nhi u vi c Máy tính c n có các kh n ng sau:
• X lý ngôn ng t nhiên đ giao ti p t t b ng ti ng Anh (ho c ngôn ng khác)
Trang 10• Bi u di n tri th c, l u tr thông tin đ c cung c p tr c ho c trong quá trình th m v n
• T đ ng l p lu n đ s d ng thông tin đã đ c l u nh m tr l i câu h i và phác th o k t lu n
m i
• Máy h c: đ thích nghi v i môi tr ng m i, ki m tra và ch p nh n nh ng m u m i
• i v i AI, không c n có s c g ng cao m i qua đ c quá trình ki m tra c a Turning Khi các ch ng trình AI giao ti p tr c ti p v i con ng i thì vi c ho t đ ng đ c gi ng nh ng i
là v n đ thi t y u Quá trình trình di n và lý gi i nh ng h th ng nh th có th ho c không
c n d a vào con ng i
1.3.2 Tri th c là gì?
Tri th c là s hi u bi t b ng lý thuy t hay th c t vè m t ch đ hay l nh v c Tri th c là
t ng c a nh ng cái đang bi t hi n nay; tri th c là s c m nh Nh ng ng i có tri th t t là nh ng chuyên gia (expert)
So v i ch ng trình truy n th ng (đ c c u t o t hai “ch t li u” c b n là d li u và
(knowledge base) và đ ng c suy di n (inference engine)
1.3.3 C s tri th c (Knowledge Base: KB)
Trong h c s tri th c ch a hai ch c n ng tách bi t nhau, tr ng h p đ n gian g m hai
kh i: kh i tri th c hay còn g i là c s tri th c; kh i đi u khi n hay còn g i là đông c suy di n
V i các h th ng ph c t p, b n thân đ ng c suy di n c ng có th là m t h c s tri th c ch a các siêu tri th c (tri th c v các tri th c) Hình d i đây mô t c u trúc ch ng trình truy n th ng (bên trái) và c u trúc ch ng trình trí tu nhân t o (bên ph i)
ng c suy di n: là ph ng pháp v n d ng tri th c trong c s tri th c đ gi i quy t v n đ
THU T
DI N
Trang 111.4 CÁC L NH V C NGHIÊN C U VÀ NG D NG C B N
1.4.1 Lý thuy t gi i bài toán và suy di n thông minh
Lý thuy t gi i bài toán cho phép vi t các ch ng trình gi i câu đ , ch i các trò ch i thông qua các suy lu n mang tính ng i H th ng gi i bài toán GPS do Newel, Shaw và Simon đ a ra
r i đ c hoàn thi n n m 1969 là m t m c đáng ghi nh Tr c n m 1980, Buchanal và Luckham
c ng hoàn thành h th ng ch ng minh đ nh lý Ngoài ra các h th ng h i đáp thông minh nh S , QA2, QA3, cho phép l u tr và x lý kh i l ng l n các thông tin Ch ng trình c a McCarthy
v các ph ng án hành đ ng có kh n ng cho các l i khuyên
1.4.2 Lý thuy t tìm ki m may r i
Vi c tìm ki m l i gi i c ng là vi c bài toán Lý thuy t tìm ki m nh may r i g m các
ph ng pháp và k thu t tìm ki m v i s h tr c a thông tin ph đ gi i bài toán m t cách hi u
qu Công trình đáng k v lý thuy t này là c a G.Pearl vào n m 1984
1.4.3 Các ngôn ng v Trí Tu Nhân T o
x lý các tri th c ng i ta không th ch s d ng các ngôn ng l p trình dùng cho các x
lý d li u s mà c n có các ngôn ng khác Các ngôn ng chuyên d ng này cho phép l u tr và
x lý các thông tin kí hi u Dùng các ngôn ng này c ng là cách đ tr l i câu h i “ th nào” (what) r i t i câu h i “làm sao v y”(how) M t s ngôn ng đ c nhi u ng i bi t đ n là:
• Các ngôn ng IPL.V, LISP
• Ngôn ng m nh h n nh PLANNER, PROLOG Ngay trong m t ngôn ng c ng có nhi u
th h v i nh ng phát tri n đáng k
1.4.4 Lý thuy t th hi n tri th c và h chuyên gia
Theo quan đi m c a nhi u chuyên gia công ngh thông tin, trí tu nhân t o là khoa h c v
th hi n tri th c và s d ng tri th c Ng i ta nh n xét v ph ng pháp th hi n tri th c nh sau:
Vi c g n li n cách th hi n và s d ng tri th c là c s hình thành h chuyên gia V y nên
ph i k t h p các quá trình nghiên c u các quy lu t, thi t k và xây d ng h chuyên gia Tuy nhiên cho đên nay, đa s các h chuyên gia m i thu c l nh v c y h c
Trang 12ng d ng c a ph ng pháp này trong vi c nh n d ng trong ch vi t, âm thanh, hình nh… cho đ n ngay đã tr nên quen thu c Ng i ta đã có h th ng x lý hình nh ba chi u, h th ng
t ng h p ti ng nói
Do kh i l ng đ s c a tri th c v lý thuy t nh n d ng các ch ng trình sau ch a đ c p
đ n các ph ng pháp nh n d ng đ c
Cu i nh ng n m 70, ng i máy trong công nghi p đã đ t đ c nhi u ti n b “ Khoa h c
ng i máy là n i k t thông minh c a nh n th c v i hành đ ng” Ng i máy có b c m nh n và các c ch ho t đ ng đ c n i ghép theo s đi u khi n thông minh Khoa h c v c h c và trí tu nhân t o đ c tích h p trong khoa h c v ng i máy Các đ án trí tu nhân t o nghiên c u v
ng i máy b t đ u t đ án “m t – tay” Trong th c t , ng i máy đ c dùng trong các nhi m v chuyên sâu, thu c các dây truy n công nghi p
N i dung v khoa h c ng i máy s đ c trình bày trong tài li u riêng, không thu c các
ch ng c a tài li u này
1.4.7 Tâm lý h c x lý thông tin
Các k t qu nghiên c u c a tâm lý h c giúp trí tu nhân t o xây d ng các c ch tr l i theo hành vi, có ý th c Nó giúp th c hi n các suy di n mang tính ng i
H th ng chuyên gia th ng m i đ u tiên, R1, b t đ u ho t đ ng t i công ty thi t b k thu t
s (McDemott, 1982) Ch ng trình giúp s p x p c u hình cho các h th ng máy tính m i và
tr c n m 1986, nó đã ti t ki m cho công ty kho ng 40 tri u dollar m i n m n tr c n m
1988, nhóm nghiên c u AI c a DEC đã có 40 h th ng chuyên gia đ c tri n khai Du pont có
100 chi c đi vào s d ng và 500 chi c đ c phát tri n, ti t ki m đ c kho ng 10 tri u dollar m i
n m D ng nh m i m t công ty chính c a M đ u có m t nhóm AI c a riêng công ty và cùng s
d ng ho c đ u t vào công ngh h chuyên gia
N m 1981, Nh t b n thông báo v d án “Th h th n m”, k ho ch 10 n m xây d ng
nh ng chi c máy tính thông minh ch y Prolog gi ng nh nh ng chi c máy ch y ch ng trình mã máy Ý t ng đó v i kh n ng th c hi n hàng tri u phép tính m i giây, máy tính có th thu n l i trong vi c l u tr hàng lo t lu t có s n D án đ c đ a ra nh m máy tính có th giao ti p b ng ngôn ng t nhiên cùng m t s các tham v ng khác
D án “th h 5” thúc đ y ni m đam mê vào AI, b ng cách t n d ng n i lo l ng c a ng i
Nh t, các nhà nghiên c u, các t ng công ty có th h tr chung cho vi c đ u t t ng t nh
n c M T ng công ty công ngh máy tính và siêu đi n t (MMC) đã đ c hình thành nh m t công ty liên k t nghiên c u d án c a Nh t Anh, bài báo Alvey làm ph c h i s v n đã b bài báo Lighthill làm h t Trong c hai tr ng h p, thì AI đ u là m t ph n trong n l c l n bao g m
c thi t k con chip và nghiên c u giao di n v i con ng i
Bùng n công nghi p AI c ng bao g m c các công ty nh t p đoàn Carnegie, Inference, Intellicorp, và Teknowledge các công ty này yêu c u các công c ph n m m đ xây d ng h chuyên gia và các công ty ph n c ng nh Lisp Machine, công ty thi t b Texas, Symbolic và Xerox đã xây d ng h th ng làm vi c t i u đ phát tri n các ch ng trình Lisp Trên 100 công ty
l p ráp h th ng công nghi p robot Nói chung ngành công nghi p đi t m c ch bán đ c vài tri u trong n m 1980 lên 2 t dollar n m 1988
M c dù khoa h c máy tính b quên l nh v c m ng n ron sau khi cu n sách “kh n ng nh n
th c” c a Minsky và Papert ra đ i, nh ng các l nh v c khác v n ti p t c, đ c bi t là v t lý M t s
Trang 13l ng l n các n ron đ n gi n đã có th coi nh m t s nguyên t trong ch t r n Các nhà v t lý
h c nh Hopfield (1982) đã s d ng các k thu t c h c th ng kê d n t i các ý t ng th thai chéo quan tr ng Các nhà tri t h c David Rumelhart và Geoff Hinton nghiên c u các m u m ng
n ron trí nh Vào nh ng n m 1980, có ít nh t b n nhóm khác nhau nghiên c u l i thu t toán Back-propagation Thu t toán này đ c công b l n đ u vào n m 1969 b i Bryson và Ho Thu t toán đ c áp d ng r t nhi u trong khoa h c máy tính và tâm lý h c, và ph bi n k t qu trong
cu n “x lý phân tán song song” (Rumelhart và McClelland, 1986)
Nh ng n m g n đây, chúng ta đã ch ng ki n s thay đ i r t l n trong n i dung và ph ng pháp nghiên c u AI Nó tr nên ph bi n khi d a trên các lý thuy t có s n Trong nh ng n m
1970, m t s l n các ki n trúc và các ph ng pháp đã bu c ph i th R t nhi u trong s này, th m
trí là ad hoc và fragile và đ c t ng tr ng m t vài ví d đ c ch n là đ c bi t Trong nh ng
n m g n đây, các ph ng pháp d a trên mô hình Markov n (HMMs) đã th ng tr l nh v c này, hai khía c nh c a HMMs có liên quan đ n nh ng v n đ bàn lu n hi n t i u tiên, chúng đ c
d a trên lý thuy t toán h c chính xác i u này cho phép các nhà nghiên c u ti ng nói xây d ng các k t qu toán h c c a m t vài th p k đã đ c phát tri n m t s l nh v c khác Th hai, chúng đã đ c sinh ra b i m t quá trình x lý trên t p d li u ti ng nói Ch c ch n r ng th c hi n
đó là d ng thô, và trong các tr c nghi m HMMs kh t khe không rõ ràng đã ti n tri n đ u đ n
L nh v c khác xem ra có l i ích t s chính th c hoá là l p k ho ch Công vi c s m đ c
th c hi n b i Austin Tate (1977), sau đó là David Chapman (1987) đã có k t qu trong s t ng
h p c a các ch ng trình l p k ho ch vào m t khung làm vi c đ n gi n ã có m t vài l i khuyên r ng nên xây d ng trên m i cái khác nhau h n là b t đ u t con s không t i m i th i
đi m K t qu c a các h th ng l p k ho ch đó ch th c s t t trong các th gi i thu h p, trong
n m 1970 nhi m v l p l ch cho công vi c c a nhà máy Xem Ch ng 11 và 12 đ bi t thêm chi
ti t
Cu n Tranh lu n theo xác su t trong các h th ng thông minh đã đánh d u m t s tán
th ng c a lý thuy t quy t đ nh và xác su t trong AI, ti p theo s h i sinh c a m t s thu nh lí thú theo bài báo “Trong bi n h c a xác su t” c a Peter Cheeseman (1985) Tin t ng r ng hình
th c m ng là phát minh đã cho phép tranh lu n hi u qu v ch ng minh c a s ph i h p không
ch c ch n Cách ti p c n l n này v t qua đ c v n đ các h th ng l p lu n có kh n ng trong
nh ng n m 1960 đ n 1970 Ch ng 14 t i 16 bàn t i l nh v c này
C ng t ng t nh cu c cách m ng trong l nh v c ng i máy, kh n ng c a máy tính, máy
h c (bao g m c các m ng neural) và s trình di n tri th c M t cách hi u t t nh t c a các v n đ
và s ph c t p các thu c tính, ph i h p cùng v i s ng y bi n đã gia t ng trong toán h c, đã có s
ch đ o v l ch nghiên c u công vi c có kh n ng và các ph ng pháp d ng thô Có l đ c khuy n khích b i s ti n tri n trong gi i quy t các v n đ con c a AI, các nhà nghiên c u đã b t
đ u tìm ki m “y u t đ y đ ” cho v n đ Công vi c c a Allen Newel, John Laird và Paul Rosenbloom SOAR (Newel, 1990; Laird 1987) là nh ng ví d hi u bi t t t nh t c a m t y u t hoàn ch nh v ki n trúc trong AI C ng g i là hành đ ng có m c đích “trong nh ng hoàn c nh xác
đ nh” c a các y u t đ a vào trong các môi tr ng th c t v i các đ u vào c m bi n liên t c Nhi u k t qu lý thú đã đ c tìm th y trong công vi c; bao g m s th c r ng tr c đó các l nh
v c con riêng bi t c a AI c n tái t o l i cái gì đó khi mà các k t qu c a h là cùng ch trong thi t
k m t y u t riêng r
Trang 141.5 NH NG V N CH A C GI I QUY T TRONG TRÍ TU NHÂN T O
Ki n t ng c vua qu c t Amold Denker, nghiên c u các quân c trên bàn c tr c m t ông ta Ông ta không hy v ng là hi n th c: ông ph i t b cu c ch i i th c a ông, HITECH,
đã tr thành ch ng trình máy tính đ u tiên đánh th ng m t ki n t ng c trong m t ván ch i (Berliner, 1989)
“Tôi mu n đi t Boston t i San Francisco” m t ng i du l ch nói trong micro “B n s đi vào th i gian nào?” là câu h i l i Ng i du l ch gi i thích r ng cô y mu n đi vào ngày 20 tháng
10, trên chuy n r nh t có th , và tr v vào ngày Ch nh t M t ch ng trình giao ti p b ng tay
có th hi u đ c hành đ ng nói c a ng i là PEGASUS, đó là k t qu khiêm t n dùng đ đ t ch chuy n đi du l ch v i giá 894 dollar b ng xe khách đ ng dài M c dù v y ch ng trình nh n bi t
ti ng nói có quá 10 t b sai, nó có th là s t ng h p t các l i nh b i vì s hi u c a nó t các
h i tho i là đ a vào cùng m t lúc (Zue 1994)
M t phân tích t n i đi u khi n các nhi m v c a phòng thí nghi m Jet Propulsion b t đ u
xu h ng thanh toán M t thông báo màu đ xu t hi n trên màn hình ch ra r ng “s không bình
th ng” v i ng i du hành trên tàu không gian, đó là m t n i nào đó trong vùng xung quanh sao
H i v ng May thay, v n đ phân tích có th đúng t m t đ t Nh ng ng i đi u khi n tin t ng
r ng có v n đ ph i đ c b qua đó là MARVEL, m t h chuyên gia th i gian th c có các màn hình, dòng d li u thô đ c chuy n t tàu không gian, các công vi c đi u khi n ch ng trình và phân tích c nh báo đ i v i nh ng v n đ nghiêm tr ng
T NG K T
Ch ng này đ a ra các đ nh ngh a v AI và thi t l p l i các c s c a nó, đó là s phát tri n M t s các đi m quan tr ng đáng l u ý nh sau:
Ng i ta ngh v AI có khác nhau Có hai câu h i quan tr ng đó là: b n có quan tâm đ n suy ngh ho c hành vi? và B n có mu n hình m u con ng i ho c t m t ý t ng chu n m c?
Các nhà tri t h c (quay tr l i n m 400 tr.CN) đ a ra ý ki n cho r ng não b c ng nh m t chi c máy, r ng nó đ c đi u khi n b ng tri th c đã đ c mã hoá, và ý ngh có th mang theo thói quen giúp đ nh ng hành đ ng đúng đ n
M t s nhà toán h c đã cung c p nh ng công c các l nh tính toán logic ch c ch n c ng t t
nh là không ch c ch n, các l nh không chính xác H c ng đ t c s làm vi c cho các thu t toán Ngành tâm lý h c c ng c thêm ý t ng r ng loài ng i và đ ng v t có th đ a ra cách x
lý thông tin máy móc Ngành ngôn ng h c trình bày r ng ngôn ng đ đ dùng trong mô hình này
Ngành công nghi p máy tính cung c p các ng d ng c a AI Các ch ng trình AI có xu
h ng khá l n, và h không làm vi c đ c n u máy tính không có đ t c đ và b nh c n thi t
L ch s c a AI có các chu kì thành công, t i u hoá đ t không đúng ch , và k t qu d n đ n
gi m lòng nhi t tình và chi phí C ng đã có nh ng b c l p ch ra đ c các cách ti p c n m i và trau d i có h th ng trong s các cách đó
Nh ng ti n tri n g n đây trong h c thuy t c n b n v s thông minh đã ti n b cùng v i kh
n ng c a các h th ng th c t
Trang 15Cu n sách Artificial Intelligence c a Daniel Crevier (1993) đ a ra l ch s khá hoàn ch nh
c a l nh v c này, và Age of Intelligent Machines c a Raymond Kurzweil (1990) v AI trong ng
c nh c a khoa h c máy tính và l ch s trí tu Các v n b n c a Dianne Martin (1993) c ng công
nh n r ng t r t s m các máy tính là có kh n ng b i s c m nh th n k c a trí tu
Ph ng pháp lu n tr ng thái c a AI đ c Herb Simon bàn t i trong The Sciences of the Artificial (1981), đó là các l nh v c nghiên c u đ c quan tâm cùng v i các đ t o tác ph c t p
Nó c ng lý gi i t i sao AI có th có t m nhìn trên c hai l nh v c toán h c và khoa h c
Artificial Intelligence: The very Idea b i John Haugeland (1985) đã đ a ra s t ng thu t có
th đ c đ c c a tri t h c và các v n đ c a AI Khoa h c nh n th c đ c mô t t t nh t b i Johnson Laird, Máy tính và não b : gi i thi u v khoa h c nh n th c Baker (1989) g m c ph n
cú pháp c a ngôn ng h c hi n đ i, cùng Chierchia và McConnel-Ginet (1990) bao g m c ng ngh a, Allen (1995) bao g m c ngôn ng h c t quan đi m c a AI
Feigenbaum và Feldman đã làm vi c v i AI t r t s m, cu n sách c a h có t a đ Máy tính và suy ngh Cu n X lý thông tin ng ngh a c a Minsky và m t lo t bài vi t v Trí tu máy
c a Donald Michie M t s l ng l n các trang báo đ c t p h p l i trong S hi u bi t trong AI (Webber và Nilsson, 1981)
Các cu c h i th o xu t hi n g n đây bàn v v n đ chính c a AI, đó là: th ng nh t c hai
n m m t l n di n ra h i th o qu c t AI, g i t t là IJCA (International Joint Conference AI), và
h i th o di n ra hàng n m m c qu c gia v AI, và AAAI là t ch c đ ng ra b o tr cho AI Các
t p chí chuyên ngành chung v AI là AI, Computation Intelligence, t ch c IEEE Transactions on Pattern Analysis and Machine Intelligence, và t p chí đi n t Journal of Artificial Intelligence Research Các s n ph m th ng m i đ a ra trong các t p chí nh AI Expert và PC AI T ch c xã
h i chuyên nghi p v AI là American Association for AI (AAAI), ACM Special Interest Group in
AI (SIGART) và AISB (Society for AI and Simulation of Behaviour) T p chí v AI c a AAAI và SIGART Bullentin có r t nhi u các đ tài và th y h ng d n t t nh là thông báo c a các cu c
h i th o và th o lu n
Vi t Nam g n đây có t ch c các H i nghi Khoa h c: H m m ng n ron; Hoi th o Qu c gia vè H m do vi n Toan h c, Vi n Công ngh Thông tin thu c vi n Khoa h c Công ngh Qu c gia t ch c hàng n m
BÀI T P VÀ CÂU H I
1 Chúng tôi đ a ra đ nh ngh a c a AI theo hai khía c nh, con ng i, ý t ng và hành đ ng
Nh ng có nhi u khía c nh khác có giá tr đáng xét đ n M t trong s đó là s ch n l a gi a: s
ph n khích c a chúng tôi v các k t qu lí thuy t ho c các ng d ng th c hành M t khía c nh n a
là chúng tôi có d ki n có th nh n ra các máy tính c a chúng tôi có thông minh hay không ã có
8 đ nh ngh a tiêu bi u trong Hình 1.1 và có 7 đ nh ngh a theo b n khía c nh chúng tôi v a đ c p
Trang 16d “m t l nh v c nghiên c u đó là xoay quanh các k thu t tính toán, cho phép th c hi n các công vi c đòi h i thông minh th c s khi có con ng i tham d ” (Tanimoto, 1990)
e “m t s đ u t r t l n c a trí tu c a t nhiên và các nguyên lí, các máy móc yêu c u s
am hi u ho c tái t o nó ” (Sharples , 1989)
f “L i ích c a máy tính là làm đ c m i th , xem nó nh là thông minh.” (Rowe, 1988)
2 Nghiên c u tài li u AI đ tìm ra các công vi c nào d i đây có th gi i quy t đ c b ng máy tính:
a Trò ch i bóng bàn
b Lái xe trung tâm Cairô
c Khám phá và ch ng minh các lý thuy t toán h c m i
d Vi t m t truy n c i
e a ra m t l i khuyên khá h p lý trong ph m vi liên quan đ n lu t pháp
f D ch ti ng Anh sang ti ng Vi t theo th i gian th c
3 Th c t , h c u và d đoán:
a Tìm m t b n công b c a m t nhà tri t h c ho c nhà khoa h c có uy tín cho r ng hi u qu
c a đ ch c ch n s không bao gi đ c trình di n b i máy tính, r ng đó bây gi đã đ c trình di n
b Tìm m t công b c a m t nhà khoa h c v máy tính có uy tín cho r ng hi u qu c a đ đo
ch c ch n đ c trình di n b i th i đi m t khi nó h p qui cách
c So sánh đ chính xác c a nh ng d đoán trong các l nh v c khác nhau, ch ng h n nh y sinh, công ngh nano, ho c đi n gia d ng
4 Cho r ng “nh ng chi c máy tính là không thông minh - chúng ch có th làm đ c nh ng gì
mà l p trình viên b o chúng” là câu l nh ph n tr c thì đúng và hàm ý sau đó không đúng?
Trang 17CH NG 2: CÁC PH NG PHÁP GI I QUY T V N
Trong ph n này, chúng ta ch ra m t agent có th hành đ ng nh th nào b ng cách đ t ra
m c tiêu và xem xét chu i các hành đ ng mà có th đ t đ c nh ng m c tiêu này M t m c tiêu
và t p các ph ng ti n đ đ t đ c m c tiêu đ c g i là v n đ Quá trình khám phá các ph ng
ti n có th làm đ c gì g i là tìm ki m Chúng ta cho th y tìm ki m có th th c hi hie và nh ng
gi i h n c a nó
Gi i quy t bài toán b ng cách tìm ki m
Chúng ta xem m t agent quy t đ nh ph i làm gì? nh th nào? b ng cách xem xét có h
th ng k t qu các chu i hành đ ng mà nó th c hi n
Trong ch ng này, chúng ta mô t m t agent d a trên m c đích g i là agent gi i quy t bài
đ ng d n đ n tr ng thái mong mu n Ch ng này phân tích các thu t toán
Hãy t ng t ng các agent c a chúng ta trong thành ph Arad, Rumani đang th c hi n
m t chuy n du l ch Agent đã có vé đ bay đ n Bucarét vào ngày hôm sau Vé máy bay không th
tr l i đ c, visa c a agent chu n b h t h n, và k t ngày mai s không còn ch trong 6 tu n t i
Ph m vi th c hi n c a agent ch a nhi u y u t khác ngoài chi phí ti n vé máy bay và có m t đi u không mong mu n là có th b tr c xu t Ch ng h n, agent mu n c i thi n n c da rám n ng c a mình, h c thêm ti ng Rumani, đi ch i đâu đó vv… T t c nh ng y u t này có th g i ra vô s các hành đ ng
Agent đ a ra m c tiêu: lái xe t i Bucarét, và xem nh ng thành ph nào c n ph i đ caa,
xu t phát t Arad Có ba con đ ng ra kh i Arad, m t đ ng đ n Sibiu, m t đ ng đ n Timisoara và m t đ n Zerind T t c các con đ ng này đ u không đ n Bucaret, vì v y tr khi agent n m rõ b n đ Rumani, agent s không bi t ph i đi con đ ng nào ti p theo Nói cách khác, agent không bi t hành đ ng nào là t t nh t trong các hành đ ng N u agent không có các ki n
th c tr giúp, nó s b t c (không tìm ra đ c đ ng đi ti p theo) Cách t t nh t nó có th làm là
ch n ng u nhiên m t trong các hành đ ng
Gi thi t agent có m t b n đ Rumani, ho c trên gi y ho c trong trí nh M c đích c a b n
đ là cung c p cho agent các thông tin v các tr ng thái mà nó có th đ n và nh ng hành đ ng mà
nó có th th c hi n Agent có th s d ng thông tin này đ xem xét các các đo n c a hành trình mang tính gi thi t là: khi nó tìm ra m t con đ ng trên b n đ t Arad t i Bucaret, nó có th đ t
m c tiêu b ng cách th c hi n các hành đ ng t ng ng v i các ch ng c a hành trình Sau đó agent l a ch n các giá tr ch a bi t đ quy t đ nh ph i làm gì b ng cách ki m tra chu i các hành
đ ng khác nhau d n đ n các tr ng thái đã bi t; sau đó ch n hành đ ng t t nh t Quá trình tìm
ki m m t chu i các hành đ ng nh v y đ c g i là tìm ki m Gi i thu t tìm ki m coi m t v n đ
nh d li u vào và đáp s là m t gi i pháp d i d ng chu i hành đ ng Khi m t gi i pháp đ c tìm th y, các hành đ ng mà nó đ xu t có th đ c ti n hành i u này đ c g i là giai đo n th c
hi n
Trang 18Trong ph n này, chúng ta s tìm hi u quá trình xác đ nh bài toán chi ti t h n Tr c tiên, ta xem xét kh i l ng ki n th c mà agent có th có s d ng đ h ng đ n các hành đ ng c a nó và
tr ng thái mà nó ph i đi qua i u này ph thu c vào s nh n th c c a agent v i môi tr ng c a
nó nh th nào thông qua k t qu giác quan và hành đ ng c a nó Chúng ta bi t có b n lo i bài toán khác nhau: bài toán m t tr ng thái đ n gi n; bài toán đa tr ng thái; bài toán ng u nhiên và bài toán th m dò
M t v n đ là m t t p h p các thông tin mà agent s d ng đ quy t đ nh ph i làm gì Chúng
ta b t đ u b ng cách phân lo i các thông tin c n thi t dùng cho đ nh ngh a bài toán đ n tr ng thái Các y u t c b n c a vi c đ nh ngh a m t bài toán là các tr ng thái và các hành đ ng xác đ nh đ c chúng m t cách chính xác, chúng ta c n các y u t sau:
(operation) đ c s d ng đ mô t m t hành đ ng trong ng c nh là tr ng thái nào nó s đ n n u
th c hi n hành đ ng trong t m t tr ng thái đ c bi t (M t công th c s d ng hàm S Cho tr c
tr ng thái x, S(x) cho tr ng thái có th đi t i t x b ng b t c m t hành đ ng đ n)
chu i hành đ ng b t k xu t phát t tr ng thái ban đ u M t hành trình trong không gian tr ng thái là t p các hành đ ng tu ý xu t phát t tr ng thái này đ n tr ng thái khác
Y u t ti p theo c a v n đ nh sau: tiêu chu n ki m tra tr ng thái hi n th i là tr ng thái đích (m c tiêu)? Vi c ki m tra đ n gi n ch là đ nh m ki m tra xem chúng ta đã đi t i m t trong các tr ng thái m c tiêu hay ch a Th nh tho ng m c tiêu đ c xác đ nh b i m t thu c tính tr u
t ng thay vì m t t p đ m đ c các tr ng thái Ch ng h n, trong môn đánh c , m c tiêu là đi t i
m t tr ng thái g i là “chi u t ng”, khi t ng c a đ i ph ng s b n b t k đ i ph ng đi nh
th nào b c k ti p
Cu i cùng, ch n gi i pháp thích h p nh t, dù có nhi u gi i pháp t i đích Ví d , chúng ta có
th thích nh ng hành trình có ít hành đ ng ho c các hành đ ng có chi phí th p
Hàm chi phí đ ng đi là hàm đ c gán chi phí cho m t đ ng đi Trong t t c các tr ng
h p chi phí c a đ ng đi là t ng các chi phí c a các hành đ ng đ n d c theo đ ng đi Hàm chi phí đ ng đi th ng đ c ký hi u là hàm g Tr ng thái ban đ u, t p toán t , th t c ki m tra m c
tiêu và hàm chi phí đ ng đi xác đ nh m t v n đ V m t t nhiên, chúng ta có th xác đ nh m t
ki u d li u đ bi u di n các v n đ :
Ki u d li u B i toán
Các thành ph n: Tr ng thái ban đ u, các toán t , ki m tra m c
Hi u qu c a tìm ki m có th đo đ c theo ít nh t ba ch tiêu Th nh t, có tìm th y m t gi i pháp nào không? Th hai, đó có ph i là m t gi i pháp t t không (gi i pháp có chi phí đ ng đi
Trang 19th p)? Th ba, chi phí tìm ki m v i th i gian tìm ki m và b nh yêu c u đ tìm m t gi i pháp là bao nhiêu? Chi phí toàn b c a vi c tìm ki m là t ng chi phí đ ng đi và chi phí tìm ki m (S)
i v i v n đ tìm đ ng đi t Arad đ n Bucarét, chi phí đ ng đi t l thu n v i t ng đ dài c a đ ng, c ng thêm chi phí do s c d c đ ng Chi phí tìm ki m ph thu c vào các tình
hu ng Trong môi tr ng t nh, nó b ng không vì ph m vi th c hi n là đ c l p v i th i gian N u
ph i c p t c đ n Bucarét, môi tr ng là bán đ ng b i vì vi c cân nh c lâu h n s làm chi phí nhi u h n Trong tr ng h p này, chi phí tìm ki m có thbi ì n thiên x p x tuy n tính v i th i gian tính toán(ít nh t v i m t kho ng th i gian nh ) Do đó, đ tính toán t ng chi phí, chúng ta
c n ph i b sung thêm các giá tr là d m và mili giây i u này không ph i luôn d dàng b i vì không có m t “t l trao đ i chính th c” gi a hai đ i l ng này Agent b ng cách nào đó ph i quy t đ nh nh ng tài nguyên nào s dành cho vi c tìm ki m và nh ng tài nguyên nào dành cho
vi c th c hi n i v i nh ng v n đ có không gian tr ng thái r t nh , d dàng tìm ra gi i pháp
v i chi phí đ ng đi th p nh t Nh ng đ i v i nh ng v n đ ph c t p, l n, c n ph i th c hi n m t
s tho hi p- agent có th tìm ki m trong m t th i gian dài đ tìm ra gi i pháp t i u ho c agent
có th tìm ki m trong m t th i gian ng n h n và nh n đ c m t gi i pháp v i chi phí đ ng đi cao h n m t chút Ch n l a tr ng thái và hành đ ng
Bây gi chúng ta có các đ nh ngh a m i, chúng ta hãy b t đ u s đi u tra các v n đ c a chúng ta v i m t v n đ khá d nh sau: “ Lái xe t Arad đ n Bucarét s d ng các con đ ng trên
b n đ ” M t không gian tr ng thái có x p x 20 tr ng thái, m i tr ng thái đ c xác đ nh b i v trí,
đ c ghi rõ là m t thành ph Nh v y, tr ng thái ban đ u là “ Arad” và ki m tra m c tiêu là
“đây có ph i là Bucarét không?” Các toán h ng t ng ng v i vi c lái d c theo các con đ ng
gi a các thành ph
Các bài toán ví d
Ph m vi c a các môi tr ng nhi m v mà có th đ c mô t đ c đi m b i các v n đ đ c
đ nh ngh a rõ ràng là r t r ng l n Chúng ta có th phân bi t gi a cái g i là các bài toán trò
g i là các bài toán thu c th gi i th c mà s là các v n đ khó kh n h n và m i ng i th c s quan tâm đ n các gi i pháp đ gi i quy t các v n đ này Trong ph n này, chúng ta s đ a ra ví d cho c hai lo i v n đ đó Các v n đ đ ch i t t nhiên có th mô t m t cách chính xác, ng n
g n i u đó có ngh a là các nhà nghiên c u khác nhau có th d dàng s d ng các v n đ này đ
t th hai này s ít h n i u đó s giúp chúng ta có các khái ni m nh sau:
• Các tr ng thái: m t s mô t tr ng thái ch rõ v trí c a m i quân c trong 8 quân c m t trong 9 ô vuông có hi u qu , s có ích n u tr ng thái bao g m c v trí c a ô tr ng
• Các toán t : ô tr ng di chuy n sang trái, ph i, lên trên, đi xu ng
Trang 20• Ki m tra m c tiêu: tr ng thái kh p v i hình d ng ch ra hình 3.4
• Chi phí đ ng đi: m i b c đi chi phí là 1, vì v y chi phí đ ng đi b ng đ dài c a
Trò ch i 8 quân c thu c v lo i trò ch i tr t kh i L p trò ch i này đ c bi t đ n có m c
đ hoàn thành NP, vì v y chúng ta không mong mu n tìm đ c các ph ng pháp t t h n các thu t toán tìm ki m đã đ c mô t trong ch ng này và trong các ch ng ti p theo Trò ch i 8 quân c và s m r ng c a nó, trò ch i 15 quân c là nh ng v n đ ki m tra tiêu chu n đ i v i các gi i thu t tìm ki m trong AI
Bài toán 8 quân h u
M c tiêu c a bài toán 8 quân h u là đ t 8 con h u trên m t bàn c vua sao cho không con nào n con nào (M t con h u s n b t c con nào n m trên cùng hàng, cùng c t ho c cùng
đ ng chéo v i nó) Hình 2.2 ch ra m t gi i pháp c g ng đ gi i quy t bài toán nh ng không thành công: con h u c t bên ph i nh t b con h u trên cùng bên trái chi u
M c d u các gi i thu t đ c bi t hi u qu t n t i đ gi i quy t bài toán này và t p các bài toán t ng quát n con h u, nó th c s v n là v n đ r t thú v dùng đ ki m tra các gi i thu t tìm
ki m Có hai hai lo i ph ng pháp chính Ph ng pháp gia t ng bao g m vi c đ t các con h u
t ng con m t, trong khi ph ng pháp tr ng thái hoàn thành l i b t đ u v i 8 con h u trên bàn c
và ti n hành di chuy n các con h u Trong c hai ph ng pháp, ng i ta không quan tâm đ n chi phí đ ng đi do ch tính đ n tr ng thái cu i cùng: các gi i thu t do đó ch đ c so sánh v chi phí tìm ki m Nh v y, chúng ta có vi c ki m tra m c tiêu và chi phí đ ng đi nh sau:
dành cho b n đ c t làm nh m t bài t p.)
Tr ng thái đ u Tr ng thái đích
Trang 21Hình 2.2 M t gi i pháp đ i v i bài toán 8 con h u
◊ Ki m tra m c tiêu: 8 con h u trên bàn c , không con nào n con nào
◊ Chi phí đ ng đi: b ng không
◊ C ng có các tr ng thái và các toán t có th khác
.Hãy xem xét s công th c hoá
◊ Các tr ng thái: b t c s s p x p c a t 0 đ n 8 con h u trên bàn c
◊ Các toán t : thêm m t con h u vào b t c ô nào
Trong cách công th c hoá này, chúng ta có 648 dãy có th đ th M t s l a ch n khôn khéo s s d ng th c t là vi c đ t m t con h u vào ô mà nó đã b chi u s không thành công b i
vì vi c đ t t t c các con h u còn l i s không giúp nó kh i b n(b con h u khác chi u) Do v y chúng ta có th th cách công th c hoá sau:
◊ Các tr ng thái: là s s p x p c a 0 đ n 8 con h u mà không con nào n con nào
◊ Các toán t : đ t m t con h u vào c t tr ng bên trái nh t mà nó không b n b i b t c con
h u nào khác
D th y r ng các hành đ ng đã đ a ra ch có th t o nên các tr ng thái mà không có s n
l n nhau; nh ng đôi khi có th không có hành đ ng nào Tính toán nhanh cho th y ch có 2057
kh n ng có th đ x p th các con h u Công th c hoá đúng đ n s t o nên m t s khác bi t r t
l n đ i v i kích th c c a không gian tìm ki m Các s xem xét t ng t c ng s đ c áp d ng cho cách công th c hoá tr ng thái đ y đ Ch ng h n, chúng ta có th thi t l p v n đ nh sau:
◊ Các tr ng thái: là s s p x p c a 8 con h u, m i con trên m t c t
◊ Các toán t : di chuy n b t c con h u nào b chi u t i m t ô khác trên cùng c t
Cách công th c này s cho phép các gi i thu t cu i cùng tìm ra m t gi i pháp, nh ng s là
t t h n n u di chuy n t i ô b chi u
Các bài toán th gi i th c
Chúng ta đã xem vi c tìm ki m đ ng đi đ c đ nh ngh a nh th nào b ng các thu t ng
ch các v trí xác đ nh và các phép di chuy n d c theo các đ ng n i gi a chúng Các gi i thu t tìm ki m đ ng đi đ c s d ng trong r t nhi u các ng d ng, nh tìm đ ng đi trong các m ng máy tính , trong các h th ng t v n du l ch t đ ng, và trong các h th ng l p k ho ch cho các chuy n du l ch b ng máy bay ng d ng cu i cùng có l ph c t p h n, b i vì du l ch b ng máy bay có chi phí đ ng đi r t ph c t p, liên quan đ n v n đ ti n nong, ch t l ng gh ng i, th i gian trong ngày, lo i máy bay, các gi i th ng cho các l trình bay th ng xuyên, v.v H n n a, các hành đ ng trong bài toán không có k t qu đ c bi t đ y đ : các chuy n bay có th đ n ch m hay đ ng ký tr c quá nhi u, có th b m t liên l c, s ng mù ho c s b o v kh n c p có th gây
ra s trì hoãn
Bài toán ng i bán hàng rong và các chuy n du l ch
Hãy xét bài toán kinh đi n sau: “ Th m t t c các thành ph m i thành ph th m ít nh t m t
l n, kh i hành và k t thúc Bucaret” i u này r t gi ng v i tìm ki m đ ng đi, b i vì các toán
t v n t ng ng v i các chuy n đi gi a các thành ph li n k Nh ng đ i v i bài toán này, không gian tr ng thái ph i ghi nh n nhi u thông tin h n Ngoài v trí c a agent, m i tr ng thái
ph i l u l i đ c các thành ph mà agent đã đi qua Nh v y, tr ng thái ban đ u s là “ Bucaret:
đã th m{Bucaret}.”, m t tr ng thái trung gian đi n hình s là “ Vaslui: đã th m {Bucaret,
Trang 22Urziceni, Vaslui}.” và vi c ki m tra m c tiêu s ki m tra xem agent đã Bucaret ch a và t t c
20 thành ph đã đ c vi ng th m xong toàn b ch a
Bài toán ng i bán hàng rong (TSP) là m t bài toán du l ch n i ti ng trong đó m i thành
ph ph i đ c vi ng th m đúng chính xác m t l n M c đích là tìm hành trình ng n nh t 6 Bài toán có đ ph c t p NP(Karp,1972), nh ng đã có m t s c g ng r t l n nh m c i thi n kh n ng
c a các thu t toán TSP Ngoài các chuy n đi đã đ c l p k ho ch cho ng i bán hàng rong,
nh ng thu t toán này đã đ c s d ng cho các nhi m v nh l p k ho ch cho s d ch chuy n c a các m i khoan trên trên b ng m ch m t cách t đ ng
Bài toán hành trình ng n nh t - ng d ng nguyên lý tham lam (Greedy)
Bài toán: Hãy tìm m t hành trình cho ng i giao hàng đi qua n đi m khác nhau, m i đi m
đi qua m t l n và tr v đi m xu t phát sao cho t ng chi u dài đo n đ ng c n đi là ng n nh t
Gi s r ng có con đ ng n i tr c ti p t gi a hai đi m b t k
T t nhiên là có th gi i bài toán này b ng cách li t kê t t c các con đ ng có th đi, tính chi u dài c a m i con đ ng đó r i tìm con đ ng có chi u dài ng n nh t Tuy nhiên cách gi i này có đ ph c t p O(n!) Do đó, khi s đ i lý t ng thì s con đ ng ph i xét s t ng lên r t nhanh
M t cách đ n gi n h n nhi u cho k t qu t ng đ i t t là ng d ng thu t toán heuristic ng
d ng nguyên lý tham lam Greedy T t ng c a thu t gi i nh sau:
• i m kh i đ u, ta li t kê t t c các quãng đ ng t đi m xu t phát cho đ n n đ i lý r i ch n
đi theo con đ ng ng n nh t
• Khi đã đi đ n m t đ i lý ch n đi đ n đ i lý k ti p c ng theo nguyên t c trên Ngh a là li t
kê t t c các con đ ng t đ i lý ta đang đ ng đ n nh ng đ i lý ch a đ n Ch n con đ ng
ng n nh t L p l i quá trình này cho đ n lúc không còn đ i lý nào đ đi
Bài toán phân vi c - ng d ng c a nguyên lý th t
Bài toán: M t công ty nh n đ c h p đ ng gia công m chi ti t máy J1, J2, … Jm Công ty có
n máy gia công l n l t là P1, P2, … Pn M i chi ti t đ u có th gia công trên b t k máy gia công nào M t khi đã gia công m t chi ti t trên m t máy, công vi c s ti p t c cho đ n lúc hoàn thành, không th b c t ngang gia công m t vi c J1 trên m t máy b t k ta c n dùng th i gian t ng
ng là t1 Nhi m v c a công ty là làm sao đ gia công xong toàn b n chi ti t trong th i gian s m
nh t
Chúng ta xét bài toán trong tr ng h p có 3 máy P1, P2, P3 và sáu công vi c v i th i gian là
t1 = 2 , t2 = 5, t3 = 8, t4 = 1, t5 = 5, t6 = 1 Có m t gi i pháp đ c đ t ra là: T i th i đi m t = 0, ta
ti n hành gia công chi ti t J2 trên máy P1, J5 trên máy P2 và J1 t i P3 T i th i đi m t = 2 công vi c
J1 đ c hoàn thành, trên máy P3 ta gia công ti p chi ti t J4 Trong lúc đó, hai máy P1 và P2 v n đang th c hi n công vi c đ u tiên c a mình … Theo v y sau đó máy P3 s ti p t c hoàn thành n t các công vi c J6 và J3 Th i gian hoàn thành công vi c là 12 Ta th y ph ng án này đã th c hi n công vi c m t cách không t t Các máy P1 và P2 có quá nhi u th i gian r nh
Thu t toán tìm ph ng án t i u L0 cho bài toán này theo ki u vét c n có đ ph c t p c O(mn) (v i m là s máy và n là s công vi c) Bây gi ta xét đ n m t thu t gi i Heuristic r t đ n
gi n (đ ph c t p O(n)) đ gi i bài toán này:
• S p x p các công vi c theo th t gi m d n v th i gian gia công
• L n l t s p x p các vi c theo th t đó vào máy còn d nhi u th i gian nh t
V i t t ng nh v y ta hoàn toàn có th đ a ra m t ph ng án t i u L*
, th i gian th c
hi n công vi c b ng 8, đúng b ng th i gian th c hi n công vi c J3
Trang 23i u khi n Robot
i u khi n robot là s t ng quát hoá c a bài toán tìm đ ng đi đã đ c miêu t lúc tr c Thay vì m t t p các l trình r i r c, m t robot có th di chuy n trong m t không gian liên ti p v i (v m t nguyên lý) m t b vô h n các hành đ ng và tr ng thái có th đ n gi n, robot tròn di chuy n trên m t m t ph ng, không gian b n ch t là hai chi u Khi rob t có cánh tay và chân mà
ph i đ c đi u khi n, không gian tìm ki m tr nên đa chi u C n có các k thu t tiên ti n đ bi n không gian tìm ki m tr nên h u h n Ngoài s ph c t p c a bài toán còn ch các robot th t s
ph i x lý các l i trong vi c đ c thông tin sensor và các b đi u khi n đ ng c
S p x p dãy
S l p ráp t đ ng các đ i t ng ph c t p đ c th c hi n b i rôb t l n đ u tiên đã đ c
ti n hành b i robot Freddy (Michie,1972) S phát tri n k t đó khá ch m ch p nh ng ch c ch n
nó r t c n cho nh ng n i l p ráp ph c t p nh l p ráp đi n t Trong các bài toán l p ráp, v n đ
là tìm m t th t đ l p ráp các ph n c a m t s n ph m N u nh l a ch n sai m t th t , s không th l p thêm m t s các b ph n c a s n ph m n u nh không ph i d b m t s b ph n
đã l p ráp lúc tr c đó Ki m tra m t b c trong dãy đ đ m b o tính kh thi là m t bài toán tìm
ki m hình h c ph c t p r t g n v i đi u khi n robot Nh v y, vi c sinh ra nh ng b c k v h p
lý là khâu đ t nh t trong dây truy n l p ráp và vi c s d ng các gi i thu t t t đ làm gi m vi c tìm
Kh i t o các chu i hành đ ng
Ví d đ gi i quy t bài toán tìm đ ng đi t Arad đ n Bucaret, chúng ta b t đ u v i tr ng thái đ u là Arad B c đ u tiên là ki m tra xem nó có ph i là tr ng thái đích hay không Rõ ràng
là không, nh ng vi c ki m tra là r t quan tr ng đ chúng ta có th gi i quy t nh ng vi c b ch i
x nh “ b t đ u Arad, đi đ n Arad” Do nó không ph i là tr ng thái đích, chúng ta c n ph i xem xét m t s tr ng thái khác i u này đ c th c hi n b ng cách áp d ng các toán t cho tr ng thái hi n th i, do đó xây d ng nên m t t p các tr ng thái m i Quá trình này đ c g i là s m
r ng tr ng thái Trong tr ng h p này, chúng ta có ba tr ng thái m i, “ Sibiu”,” Timisoara” và
“ Zerind” b i vì có m t đ ng đi m t b c tr c ti p t Arad đ n ba thành ph này N u nh ch
có duy nh t m t kh n ng, chúng ta s ch n kh n ng đó và ti p t c đi ti p Nh ng b t c khi nào
mà có nhi u kh n ng l a ch n, chúng ta ph i quy t đ nh s ch n ph ng án nào đ đi ti p
ây chính là v n đ c t y u c a vi c tìm ki m – l a ch n m t v trí và đ các l a ch n còn l i cho vi c l a ch n sau này n u nh s l a ch n đ u tiên không đ a đ n m t gi i pháp Gi
s chúng ta ch n Zezind Chúng ta ki m tra xem nó đã ph i là tr ng thái đích ch a (nó ch a ph i
tr ng thái đích), và sau đó m r ng nó đ có “ Arad “ và “ Oradea” Nh th chúng ta có th
ch n m t trong hai tr ng thái này, ho c là quay l i và ch n Sibiu hay Timisoara Chúng ta ti p t c
ch n , ki m tra và m r ng cho đ n khi tìm đ c m t đ ng đi, ho c cho đ n khi không còn tr ng
Trang 24thái nào n a đ m r ng Vi c l a ch n tr ng thái nào đ m r ng tr c tiên do chi n l c tìm
ki m quy t đ nh
Các chi n l c tìm ki m
Công vi c ch y u c a vi c tìm ki m đã chuy n sang vi c tìm ki m m t chi n l c tìm
ki m đúng đ n đ i v i m t v n đ Trong s nghiên c u c a chúng ta v l nh v c này, chúng ta s đánh giá các chi n l c b ng các thu t ng c a b n tiêu chu n sau:
◊ Tính hoàn thành: chi n l c có b o đ m tìm th y m t gi i pháp khi có m t v n đ
b nh c n thi t đ th c hi n vi c tìm ki m
◊ Tính t i u: chi n l c có tìm đ c gi i pháp có ch t l ng cao nh t khi có m t s các
gi i pháp khác nhau?
Ph n này s nói đ n 6 chi n l c tìm ki m mà đ c s d ng d i tiêu đ tìm ki m không
đ thông tin (uninformed search) Thu t ng này có ngh a là không có các thông tin v s các
b c hay chi phi đ ng đi t tr ng thái hi n t i cho t i đích – t t c nh ng gì chúng có th làm là phân bi t m t tr ng thái đích v i m t tr ng thái không ph i là tr ng thái đích Tìm ki m không có thông tin đ y đ đôi khi còn đ c g i là tìm ki m mù (blind search)
Tìm ki m theo chi u r ng
M t chi n l c tìm ki m đ n gi n là tìm ki m theo chi u r ng Trong chi n l c này, nút
g c đ c m r ng tr c tiên, sau đó đ n l t t t c các nút mà đ c sinh ra b i nút g c đ c m
r ng, và sau đó ti p đ n nh ng nút k ti p c a chúng và c nh v y Nói m t cách t ng quát, t t
c các nút đ sâu d trên cây tìm ki m đ c m r ng tr c các nút đ sâu d+1 Tìm ki m theo chi u r ng có th đ c th c hi n b ng cách g i gi i thu t general-search v i m t hàm hàng đ i
mà đ a các tr ng thái m i đ c sinh ra vào cu i c a hàng đ i, đ ng sau t t c các tr ng thái mà
đã đ c sinh ra tr c nó:
Tìm ki m theo chi u r ng là m t chi n l c r t có ph ng pháp (có h th ng) b i vì nó xem xét t t c các đ ng đi có đ dài b ng 1 tr c, sau đó đ n t t c nh ng đ ng đi có đ dài
Function Tìm- ki m- r ng(problem)
Returns m t gi i pháp ho c th t b i
Return General-search (problem, x p vào cu i hàng)
Trang 25b ng 2, và c nh v y Hình 2.3 ch ra quá trình c a s tìm ki m trên m t cây nh phân đ n gi n
N u nh có m t gi i pháp, tìm ki m theo chi u r ng đ m b o s tìm đ c nó, và n u có nhi u gi i pháp, tìm ki m theo chi u r ng s luôn tìm ra tr ng thái đích nông nh t tr c tiên D i thu t ng
c a 4 tiêu chu n, tìm ki m theo chi u r ng là hoàn thành, và nó đ c cung c p m t cách t i u chi phí đ ng d n b ng m t hàm t ng c a đ sâu các nút
Chúng ta ph i xem xét th i gian và dung l ng b nh nó s d ng đ hoàn thành m t cu c tìm ki m làm đi u này, chúng ta xem xét m t không gian tr ng thái có tính gi thi t trong đó
m i tr ng thái có th đ c m r ng đ t o ra các tr ng thái m i b Chúng ta nói r ng y u t phân nhánh c a nh ng tr ng thái này (và c a cây tìm ki m) là b G c c a cây tìm ki m sinh ra b nút
m c đ u tiên, m i nút đó l i sinh ra thêm b nút, và s có c th y b2 nút m c th hai M i m t nút này l i sinh ra thêm b nút, t o ra b3 nút m c th ba, và c nh v y Bây gi chúng ta gi s
r ng gi i pháp cho bài toán này có đ dài đ ng đi là d, nh v y s nút t i đa đ c m r ng tr c khi tìm th y m t gi i pháp là :
1 + b + b2 + b3 + + bd
ây là s nút t i đa, nh ng gi i pháp có th đ c tìm th y b t c đi m nào thu c m c có
đ sâu là d Do đó, trong tr ng h p t t nh t , s l ng các nút s ít h n
Tìm ki m v i chi phí th p nh t
Phép tìm ki m theo chi u r ng tìm đ c tr ng thái đích, nh ng tr ng thái này có th không
ph i là gi i pháp có chi phí th p nh t đ i v i m t hàm chi phí đ ng đi nói chung Tìm ki m v i chi phí th p nh t thay đ i chi n l c tìm ki m theo chi u r ng b ng cách luôn luôn m r ng nút
có chi phí th p nh t (đ c đo b i công th c tính chi phí đ c đi g(n)), thay vì m r ng nút có đ
sâu nông nh t D th y r ng tìm ki m theo chi u r ng chính là tìm ki m v i chi phí th p nh t
v i g(n)= DEPTH(n)
Khi đ t đ c nh ng đi u ki n nh t đ nh, gi i pháp đ u tiên đ c tìm th y s đ m b o là gi i pháp r nh t, do n u nh có m t đ ng đi khác r h n, nó đã ph i đ c m r ng s m h n và nh
v y nó s ph i đ c tìm th y tr c Vi c quan sát các hành đ ng c a chi n l c s giúp gi i thích
đi u này Hãy xem xét bài toán tìm đ ng đi Ván đ là đi t S đ n G, và chi phí c a m i toán t
đ c ghi l i u tiên chi n l c s ti n hành m r ng tr ng thái ban đ u, t o ra đ ng đi t i A, B
và C Do đ ng đi t i A là r nh t, nó s ti p t c đ c m r ng, t o ra đ ng đi SAG mà th c s
là m t gi i pháp, m c dù không ph i là ph ng án t i u Tuy nhiên, gi i thu t không công nh n
nó là m t gi i pháp, b i vì nó chi phí là 11, và nó b che b i đ ng đi SB có chi phí là 5 trong hàng đ i D ng nh th t là x u h n u sinh ra m t gi i pháp ch nh m chôn nó sâu trong hàng
đ i, nh ng đi u đó là c n thi t n u chúng ta mu n tìm m t gi i pháp t i u ch không đ n thu n
là tìm b t c gi i pháp nào B c ti p theo là m r ng SB, t o ra SBG, và nó là đ ng đi r nh t còn l i trong hàng đ i, do v y m c tiêu đ c ki m tra và đ a ra m t gi i pháp
Phép tìm ki m chi phí ít nh t tìm ra gi i pháp r nh t tho mãn m t yêu c u đ n gi n: Chi phí c a m t đ ng đi ph i không bao gi gi m đi khi chúng ta đi d c theo đ ng đi Nói cách khác, chúng ta mong mu n r ng
g(Successor(n)) ≥ g(n) v i m i nút n
Gi i h n đ i v i chi phí đ ng đi không đ c gi m th c s s là v n đ c n quan tâm n u chi phí đ ng đi c a m t nút là t ng chi phí c a các toán t mà t o nên đ ng đi N u nh m i toán t có m t chi phí không âm, thì chi phí c a đ ng đi không bao gi có th gi m đi khi chúng
ta đi d c theo đ ng đi và phép tìm ki m v i chi phí gi ng nhau có th tìm đ c đ ng đi r nh t
mà không c n ki m tra h t toàn b cây Nh ng n u m t s toán t có chi phí âm thì ch ng có m t
Trang 26cách tìm ki m nào khác ngoài m t phép tìm ki m toàn b t t c các nút đ tìm ra gi i pháp t i u,
b i vì chúng ta s không bao gi bi t đ c r ng khi nào m t đ ng đi s chuy n sang m t b c
v i chi phí âm cao và do đó tr thành đ ng đi t t nh t trong t t c các đ ng đi, b t k là nó dài bao nhiêu và chi phí th nào
Tìm ki m theo chi u sâu
Tìm ki m theo chi u sâu luôn luôn m r ng m t trong các nút m c sâu nh t c a cây Ch khi phép tìm ki m đi t i m t đi m c t (m t nút không ph i đích mà không có ph n m r ng), vi c tìm ki m s quay l i và m r ng đ i v i nh ng nút nông h n Chi n l c này có th đ c th c
hi n b i General-search v i m t hàm hàng đ i mà luôn đ a các tr ng thái m i đ c sinh ra vào
tr c hàng đ i Do nút đ c m r ng là sâu nh t, các nút k ti p c a nó th m chí s sâu h n và khi đó s tr thành sâu nh t Quá trình tìm ki m đ c minh ho trong hình 2.4
Hình 2.4 Tìm ki m theo chi u sâu
Phép tìm ki m theo chi u sâu yêu c u dung l ng b nh r t khiêm t n Nh hình v cho
th y, nó ch c n ph i l u m t đ ng duy nh t t g c t i nút lá, cùng v i các nút anh em v i các nút trên đ ng đi ch a đ c m r ng còn l i i v i m t không gian tr ng thái v i h s r nhánh b và đ sâu t i đa m, phép tìm ki m theo chi u sâu ch yêu c u l u tr bm nút, ng c lai
so v i bd nút mà phép tìm ki m theo chi u r ng yêu c u trong tr ng h p m c tiêu nông nh t
đ sâu d
ph c t p th i gian c a phép tìm ki m sâu là O(bm) i v i nh ng v n đ mà có r t nhi u gi i pháp, phép tìm ki m sâu có th nhanh h n tìm ki m r ng, b i vì nó có m t c h i t t tìm ra m t gi i pháp ch sau khi khám phá m t ph n nh c a toàn b không gian Tìm ki m theo chi u r ng s v n ph i tìm t t c các đ ng đi có đ sâu d-1 tr c khi xem xét b t c đ ng đi nào có đ sâu d Phép tìm ki m theo chi u sâu v n c n th i gian O(bm) trong tr ng h p t i nh t
M t h n ch c a phép tìm ki m sâu là nó có th b t c khi đi theo m t đ ng sai R t nhi u bài toán có các cây tìm ki m r t sâu, th m chí vô h n, vì v y tìm ki m sâu s không bao gi có th quay tr l i đ c m t trong các nút g n đ nh c a cây sau khi có m t s l a ch n sai Phép tìm
ki m s luôn luôn ti p t c đi xu ng mà không quay tr l i, th m chí khi có m t gi i pháp m c
r t nông t n t i Nh v y đ i v i nh ng bài toán này, phép tìm ki m sâu s ho c là b sa l y trong
m t vòng l p vô h n và không bao gi đ a ra m t gi i pháp, ho c là cu i cùng nó có th đ a ra
m t đ ng đi gi i pháp mà dài h n so v i ph ng án t i u i u đó có ngh a là phép tìm ki m theo chi u sâu là không hoàn thành và không t i u B i vì đi u này, c n tránh s d ng phép tìm
ki m sâu cho các cây tìm ki m có đ sâu t i đa là vô h n ho c r t sâu
Trang 27có th th c hi nvi c gi i h n đ sâu b ng cách s d ng các toán t d i d ng “ N u b n thành
ph A và v a đi m t đo n đ ng ít h n 19 b c, thì kh i t o m t tr ng thái m i thành ph B
v i đ dài đ ng đi l n h n 1” V i t p các toán t m i này, chúng ta đ m b o tìm th y gi i pháp
n u nó t n t i, nh ng chúng ta v n không đ m b o tìm th y gi i pháp ng n nh t tr c tiên: phép tìm ki m theo chi u sâu gi i h n là hoàn thành nh ng không t i u N u chúng ta ch n m t gi i
h n đ sâu mà quá nh , thì phép tìm ki m theo chi u sâu gi i h n th m chí không hoàn thành
ph c t p v không gian và th i gian c a phép tìm ki m theo chi u sâu gi i h n t ng đ ng v i phép tìm ki m sâu Nó m t O(bl) th i gian và O(bl) không gian, v i l là gi i h n đ sâu
Tìm ki m l p sâu d n (Iterative Deepening Search)
Thành ph n khó kh n c a tìm ki m theo đ sâu gi i h n đem l i m t gi i h n khá t t Chúng ta l y 19 nh là m t gi i h n đ sâu “hi n nhiên” cho bài toán Rumani, nh ng th c ra n u chúng ta nghiên c u k b n đ , chúng ta s th y r ng b t c thành ph nào c ng có th đi đ n
đ c t b t k thành ph nào khác v i nhi u nh t là 9 b c Con s này, đ c bi t đ n nh là
đ ng kính c a không gian tr ng thái , cho chúng ta m t gi i h n đ sâu t t h n, và đ a đ n m t phép tìm ki m theo đ sâu gi i h n hi u qu h n Tuy nhiên, đ i v i h u h t các bài toán, chúng
ta ch bi t m t gi i h n đ sâu t t sau khi đã gi i quy t xong bài toán
returns General-search(bài toán, x p đ u hàng đ i)
Function tìm ki m -l p -sâu d n(bài toán) returns m t dãy gi i pháp
Inputs: bài toán, m t v n đ c n gi i quy t
Trang 28Phép tìm ki m l p sâu d n là m t chi n l c né tránh v n đ l a ch n gi i h n đ sâu t t
nh t và c g ng th t t c các gi í h n đ sâu có th : đ u tiên th đ sâu b ng 0, sau đó đ sâu
b ng 1, ti p theo là 2, và c nh v y V m t hi u qu , vi c l p sâu d n k t h p l i ích c a c hai phép tìm ki m theo chi u sâu và tìm ki m theo chi u r ng ây là ph ng pháp t i u và đ y đ ,
gi ng nh phép tìm ki m theo chi u r ng, nh ng ch yêu c u b nh r t ít nh phép tìm ki m sâu yêu c u Th t m r ng các tr ng thái t ng t v i tìm ki m r ng, ngo i tr vi c m t s tr ng thái đ c m r ng nhi u l n
Phép tìm ki m l p sâu d n có th d ng nh là h i lãng phí, b i vì có r t nhi u tr ng thái
đ c m r ng nhi u l n Tuy nhiên, đ i v i h u h t các bài toán, t ng chi phí c a s m r ng nhi u l n này th c ra khá nh B ng tr c giác, có th th y r ng trong m t cây tìm ki m theo lu t
s m , h u h t t t c các nút là m c th p nh t, vì v y vi c các m c bên trên đ c m r ng nhi u l n s không thành v n đ l m nh c l i r ng s l n m r ng trong phép tìm ki m theo đ sâu gi i h n t i đ sâu d v i h s phân nhánh b là:
1+ b + b 2 + ….+ bd -2 + bd -1 + bd
C th , cho b=10, và d=5 thì s l n m r ng là :
1+10+100+1000+10.000+100.000= 111.111
Trong phép tìm ki m l p sâu d n, các nút m c d i cùng đ c m r ng m t l n, nh ng nút trên m c d i cùng đ c m r ng hai l n, và c nh v y đ n g c c a cây tìm ki m s đ c
m r ng d+1 l n Do đó t ng s l n m r ng trong m t phép tìm ki m l p sâu d n là :
(d+1)1 + (d)b + (d-1)b 2 + … + 3bd -2 + 2bd -1 + 1bd
Và c th l i cho b=10, và d=5 thì s l n m r ng là :
6+50+400+3000+20.000+100000= 123.456
Nh v y chúng ta th y, m t phép tìm ki m l p sâu d n t đ sâu1 xu ng t i đ sâu d ch
m r ng nhi u h n kho ng11% s nút so v i phép tìm ki m theo chi u r ng hay phép tìm ki m theo chi u sâu t i đ sâu d khi h s phân nhánh b=10 H s phân nhánh càng cao, t ng s các
tr ng thái đ c m r ng l p l i (nhi u l n) càng th p, nh ng th m chí khi h s phân nhánh là 2, phép tìm ki m l p sâu d n ch m r ng s tr ng thái nhi u g p hai so v i m t phép tìm ki m theo chi u r ng đ y đ i u đó có ngh a r ng đ ph c t p th i gian c a phép tìm ki m l p sâu d n
v n là O(bd), đ ph c t p không gian là O(bd) Nói chung, l p sâu d n là phép tìm ki m đ c tham kh o đ n khi có m t không gian tìm ki m l n và đ sâu c a gi i pháp là không bi t tr c
gi i pháp s đ c tìm th y sau O(2bd/2) = O(bd/2) b c, b i vì m i phép tìm ki m ti n và lùi ch
ph i đi m t n a quãng đ ng Xét ví d c th , v i b=10 và d=6, phép tìm ki m r ng sinh ra 1.111.111 nút, trong khi đó phép tìm ki m ti n lùi thành công khi m i h ng đ sâu b ng 3, t i
th i đi m 2.222 nút đã đ c t o ra i u này v m t lý thuy t nghe r t h p d n Chúng ta c n ph i xem xét m t s v n đ tr c khi th c hi n gi i thu t
Trang 29Câu h i chính là, tìm ki m lùi t đích có nghiã là nh th nào? Chúng ta đ nh ngh a các nút
t tiên (predecessor) c a m t nút n là t t c các nút mà có nút n là nút k v (successor) Phép tìm
ki m lùi có ngh a là sinh ra nh ng nút t tiên liên ti p b t đ u t nút đích
Khi t t c các toán t là có th đ o ng c, các t p k v và t p t tiên là gi ng h t nhau Tuy nhiên, đ i v i m t s bài toán, vi c tính toán các ph n t t tiên là r t khó kh n
Con s O(bd/2) c a đ ph c t p th a nh n r ng quá trình ki m tra s giao nhau c a hai biên
gi i có th đ c th c hi n trong m t kho ng th i gian không đ i (nh v y, nó không ph thu c vào s tr ng thái) i u này th ng có th thu đ c v i m t b ng b m hai phép tìm ki m cu i cùng s g p nhau, t t c các nút c a ít nh t m t trong hai phép tìm ki m ph i đ c l u gi trong
b nh (gi ng nh v i tr ng h p c a phép tìm ki m r ng) i u này có ngh a là đ ph c t p không gian c a phép tìm ki m ti n lùi không có đ thông tin là O(bd/2)
Tiêu chu n
Tìm ki m theo chi u
r ng
Tìm ki m chi phí
th p nh t
Tìm ki m theo đ sâu
Tìm ki m theo đ sâu
gi i h n
Tìm
ki m l p sâu d n
bl
bl Không
ánh giá các chi n l c tìm ki m, b là h s phân nhánh, d là đ sâu c a gi i pháp; m là đ sâu
t i đa c a cây tìm ki m; l là gi i h n đ sâu
Cho đ n lúc này, chúng ta đã xét t t c các v n đ ngo i tr còn m t trong nh ng v n đ
ph c t p nh t c a quá trình tìm ki m, đó là: kh n ng lãng phí th i gian do vi c m r ng các tr ng thái mà đã g p và đã đ c m r ng tr c đó trên m t s đ ng đi i v i m t s bài toán, kh
n ng này không bao gi x y ra, m i tr ng thái ch đ c đi đ n theo m t con đ ng Vi c xác
đ nh chính xác v n đ bài toán 8 con h u r t có tác d ng, đó là m i tr ng thái ch có th nh n
đ c thông qua m t đ ng đi
i v i r t nhi u bài toán, các tr ng thái b l p l i là đi u không th tránh kh i i u này có
t t c các bài toán mà các toán t là có th đ o ng c, nh các bài toán tìm đ ng đi và bài toán
nh ng nhà truy n giáo và nh ng k n th t ng i Các cây tìm ki m cho nh ng bài toán này là vô
h n, nh ng n u chúng ta t a b t m t s tr ng thái l p l i, chúng ta có th c t cây tìm ki m xu ng còn kích th c h u h n, ch sinh ra m t ph n c a cây mà m r ng đ th không gian tr ng thái
Th m chí khi cây là h u h n, vi c tránh các tr ng thái l p có th d n đ n m t s suy gi m theo
c p s m chi phí tìm ki m M t ví d kinh đi n đ c mô t hình 2.4 Không gian ch ch a m+1
tr ng thái, v i m là đ sâu t i đa Do cây bao g m m i đ ng đi có th trong không gian, nó có 2m nhánh
Trang 302.6 GI I QUY T V N VÀ CÁC K THU T HEURISTIC
Các ph ng pháp tìm ki m có đ y đ thông tin
Ph n tr c đã ch ra r ng các chi n l c tìm ki m không đ y đ thông tin có th tìm th y
gi i pháp đ i v i các bài toán b ng cách t o ra m t cách có h th ng các tr ng thái m i và ki m tra chúng v i m c tiêu i u không may là, nh ng chi n l c này rõ ràng là không có hi u qu trong h u h t các tr ng h p Ph n này cho m t chi n l c tìm ki m có thêm hi u bi t (có đ thông tin the- m t chi n l c s d ng các tri th c đ c thù đ i v i bài toán - có th tìm các gi i pháp m t cách hi u qu h n nh th nào Ph n này c ng ch ra các bài toán t i u có th đ c
c a chúng ta là có gi i h n N u chúng ta s d ng gi i thu t tìm ki m t ng quát, thì cách duy
nh t có th áp d ng đ c tri th c là hàm "hàng đ i”, hàm quy t đ nh nút nào s đ c m r ng
ti p theo Thông th ng, tri th c đ quy t đ nh đi u này đ c cung c p b i m t hàm đ nh giá
tr v m t s có ngh a mô t s mong mu n đ c m r ng nút Khi các nút đ c x p th t
đ nút nào có đ nh giá t t nh t s đ c m r ng tr c Chi n l c nh v y đ c g i là phép tìm ki m t t nh t (best-first) Nó có th đ c cài đ t tr c ti p v i tìm ki m t ng quát, nh hình 2.6
Tên g i “tìm ki m t t nh t” là phép tìm ki m quan tr ng nh ng không chính xác N u chúng ta m r ng nút t t nh t tr c tiên, đó không ph i là phép tìm ki m - đó là m t cách đi
th ng đ n m c tiêu i u có th làm là ch n nút t ra là t t nh t theo hàm giá N u hàm giá là
rõ, thì nút này s là nút t t nh t Trong th c t , hàm giá th nh tho ng có sai sót và vi c tìm
ki m b l c đ ng Tuy nhiên, chúng ta s dùng tên “tìm ki m t t nh t”, vì tên “tìm ki m v ngoài t t nh t“ có v không ti n
Khi có m t h gi i thu t tìm ki m t ng quát v i các hàm theo th t khác nhau, t n t i
m t h các gi i thu t tìm ki m t t nh t v i các hàm giá khác nhau Vì m c đích là tìm ki m các gi i pháp có chi phí th p, nh ng gi i thu t này s d ng ph ng pháp đánh giá các chi phí
c a gi i pháp và c g ng t i thi u nó Chúng ta có m t ph ng pháp đo: s d ng chi phí
Function best-first-search(problem, hàm đ nh giá) return m t dãy gi i pháp
Input : problem, m t bài toán
Hàm đ nh giá, m t hàm giá tr
Hàm hàng đ i – m t hàm mà s p th t các nút theo hàm giá
Return general-search ( problem, hàm hàng đ i)
Trang 31đ ng đi g đ quy t đ nh đ ng đi nào s m Tuy nhiên, ph ng pháp này không tìm tr c
ti p v phía đích làm ch m phép tìm ki m, ph ng pháp k t h p m t s cách đánh giá chi phí đ ng đi t m t tr ng thái t i tr ng thái đích g n nh t Xét hai ph ng pháp c b n
Ph ng pháp th nh t m nút g n đích nh t Ph ng pháp th hai m nút đ ng đi có chi phí ít nh t
T i thi u hoá chi phí đánh giá đ đi t i m c tiêu: phép tìm ki m tham lam
M t trong nh ng chi n l c tìm ki m t t nh t tr c đ n gi n nh t là t i thi u chi phí c
l ng đ đi t i m c tiêu ó là, nút mà tr ng thái c a nó đ c đánh giá là g n v i tr ng thái
m c tiêu nh t luôn luôn đ c m r ng tr c i v i h u h t các bài toán, chi phí c a vi c đi
t i đích t m t tr ng thái nào đó có th đ c c l ng nh ng không th xác đ nh chính xác
M t hàm mà tính toán nh ng c l ng chi phí nh v y đ c g i là hàm heuristic và th ng
v i bài toán tim đ ng đi t Arad đ n Bucaret
M t hàm heuristic t t đ i v i nh ng bài toán tìm đ ng đi gi ng nh th này là kho ng cách đ ng th ng(straight-line distance hay SLD) t i m c tiêu T c là,
hSLD(n) = kho ng cách đ ng th ng gi a n và v trí đích
V i phép heuristic kho ng cách -đ ng th ng, nút đ u tiên s m r ng t Arad s là Sibiu,
b i vì nó g n Bucaret h n so v i Zerind và Timisoara Nút m r ng ti p theo s là Fagaras, do nó
là nút g n nh t Fagaras s sinh ra Bucaret, và là đích i v i bài toán này, phép heuristic d n t i chi phí tìm ki m t i thi u: nó tìm m t gi i pháp mà không c n m m t nút nào không n m trên
đ ng đi gi i pháp (đ ng đi t i đích) Tuy nhiên, nó không ph i là hoàn toàn t i u: đ ng đi
mà nó tìm ra đi qua Sibiu và Fagaras t i Bucaret dài h n đ ng đi xuyên qua Rimnicu Vilcea và Pitesti (r i t i Bucaret) là 32 km Con đ ng này nó không tìm ra b i vì Fagaras g n v i Bucaret theo kho ng cách đ ng th ng h n so v i Rimnicu, vì v y nó đ c m tr c Chi n l c u tiên
ch n kh n ng có “mi ng ngo m l n nh t” (t c là đi b c đ u tiên đi đ c xa nh t) không quan tâm đ n các chi phí còn l i đ đi đ n đích, không đ m x a đ n vi c b c đi này có ph i là t t nh t xét v toàn c c hay không – chính vì th nó đ c g i là “ph ng pháp tìm ki m tham lam” M c
dù tham lam đ c coi là m t trong 7 l i n ng, nh ng các gi i thu t tham lam th ng t ra khá
hi u qu Chúng có thiên h ng tìm gi i pháp nhanh chóng, m c dù nh đã ch ra trong ví d v a
function greedy-search(problem) returns m t gi i pháp ho c th t b i
return best-first-search(problem,h)
Trang 32r i, chúng không ph i luôn luôn tìm ra các gi i pháp t i u: c n ph i có s phân tích m t cách k các gi i pháp toàn c c, ch không ch m t s l a ch n t t nh t t c thì
Phép tìm ki m tham lam t ng t phép tìm ki m theo đ sâu đi m là nó u tiên đi theo
m t đ ng đ n t i đích, nh ng nó s quay lui khi g p đ ng c t.Nó có nh ng nh c đi m gi ng
v i ph ng pháp tìm ki m sâu - không t i u, và không hoàn thành vì có th r i vào m t đ ng
vô h n và không bao gi quay l i đ ch n kh n ng khác ph c t p th i gian trong tr ng h p
t i nh t c a phép tìm ki m tham lam là O(b m ), v i m là đ sâu t i đa c a không gian tìm ki m
B i vì phép tìm ki m tham lam l u tr t t c các nút trong b nh , đ ph c t p không gian c a nó
t ng t nh đ ph c t p th i gian V i m t hàm heuristic t t, đ ph c t p không gian và đ ph c
t p th i gian có th gi m đáng k L ng gi m ph thu c vào bài toán c th và ch t l ng c a
hàm h
Ph ng pháp tìm ki m háu n t i thi u hoá chi phí d tính t i đích, h(n), và do đó gi m chi phí tìm ki m đi đáng k i u không may là, đó không ph i là ph ng pháp t i u c ng nh hoàn thành M t khác, phép tìm ki m theo chi phí ít nh t l i t i thi u hoá chi phí đ ng tính đ n th i
đi m hi n t i, g(n); ó là ph ng pháp tìm ki m t i u và hoàn thành, nh ng có th r t không
hi u qu S r t t t n u chúng ta k t h p c hai ph ng pháp này đ l i d ng đi m m nh c a c hai ph ng pháp R t may là chúng ta có th làm đ c chính xác đi u đó, k t h p hai hàm đ nh giá đ n gi n b ng cách c ng chúng l i:
H n ch là c n ch n m t hàm h mà không v t quá chi phi đi t i đích M t hàm h nh v y
d c g i là m t heuristic có th ch p nh n Nh ng heuristic có th ch p nh n là theo quan đi m
c a nh ng ng i l c quan, vì h ngh chi phí c a vi c gi i quy t v n đ là ít h n th c t S l c quan này c ng s chuy n hàm f: N u h là ch p nh n đ c, f(n) không bao gi v t quá chi phí
th c t c a gi i pháp n Phép tìm ki m t t nh t s d ng f nh là m t hàm giá và m t hàm h ch p
nh n đ c v i tên ph ng pháp tìm ki m A*
Hình 2.7
Ví d rõ ràng v phép heuristic ch p nh n đ c là kho ng cách đ ng th ng hSLD mà chúng ta s d ng đ đi đ n Bucaret Kho ng cách đ ng th ng là ch p nh n đ c b i vì đ ng đi
ng n nh t gi a b t c hai đi m là m t đ ng th ng Trong hình 2.7, chúng ta ch ra m t s b c
đ u tiên c a phép tìm ki m A* t i Bucaret s d ng phép heuristic hSLD Chú ý r ng phép tìm
ki m A* u tiên m r ng t Rimnicu Vilcea h n so v i m r ng t Fagaras M c dù th m chí
Function A*-search(problem) return m t gi i pháp ho c th t b i
Return best-first-search(problem, g+ h)
Trang 33Fagaras g n Bucaret h n, đ ng đi t i Fagaras không hi u qu b ng đ ng đi t i Rimnicu trong
vi c ti n g n t i Bucaret B n đ c có th mong mu n ti p t c ví d này đ xem đi u gì s x y đ n
ti p theo
Tr c khi chúng ta ch ng minh tính hoàn thành và tính t i u c a A*, chúng ta nên đ a ra
m t b c tranh tr c giác v ho t đ ng c a ph ng pháp tìm ki m này (Hình 2.8).M t minh ho không th thay th cho m t b ng ch ng, nh ng nó th ng d nh và có th s d ng t o ra các
ch ng c khi có yêu c u Tr c tiên, m t s quan sát ban đ u: n u nh b n ki m tra các cây tìm
ki m, b n s chú ý m t hi n t ng thú v : D c theo b t c đ ng đi nào t g c, chi phí f không bao gi t ng i u này không ph i là ng u nhiên Nó là đúng đ i v í h u nh t t c các heuristic
ch p nh n đ c Ng i ta nói m t heuristic nh v y là đ a ra s đ n đi u (monotonicity1)
N u heuristic là m t trong nh ng heuristic k c c mà không ph i là đ n đi u Chúng ta có
th s a ch a nh đ ph c h i tính đ n đi u Xét hai nút n và n’, v i n là nút cha c a n’ Gi s
g(n) = 3 và h(n) = 4, ta có, f(n)= g(n)+h(n) = 7 – nh v y ta bi t r ng giá tr th c c a m t gi i
pháp t i n ít nh t là 7 C ng gi s g(n’) = 4 và h(n’) = 2, do v y f(n’) =6 Rõ ràng, đây là m t ví
d v m t heuristic không đ n đi u R t may là, t th c t r ng b t c đ ng đi nào đ n n’ thì
c ng là đ ng đi đ n n, chúng ta có th th y r ng giá tr 6 là không có ý ngh a gì, b i vì chúng ta
đã bi t chi phí th c t ít nh t là 7 Nh v y, chúng ta nên ki m tra , m i l n chúng ta t o ra m t nút m i, đ xem chi phí f c a nó có nh h n chi phí f c a nút cha c a nó nay không: n u nh h n, chúng ta s s d ng chi phí f c a nút cha c a nó:
f(n’) = max(f(n), g(n’) + h(n’))
Theo cách này, ta b qua các giá tr d n sai đ ng có th x y ra v i m t heuristic không
đ n đi u Công th c này g i là c c đ i đ ng đi N u s d ng công th c đó, thì f luôn không
gi m d c theo b t c đ ng đi t g c, giá tr h đ c cung c p là ch p nh n đ c
ph c t p c a thu t toán A*
= g +h Các giá tr h là các kho ng cách đ ng th ng t i Bucharest l y t gi thi t
Trang 34Ph ng pháp tìm ki m A* là hoàn thành, t i u và hi u qu m t cách t i u trong s t t c các thu t toán nh v y i u đó không có ngh a là A* là câu tr l i cho t t c các yêu c u tìm ki m
i v i h u h t các bài toán, s nút trong không gian tìm ki m đ ng vi n m c tiêu là c p s m theo đ dài c a gi i pháp M c dù không ch ng minh, nó đã đ c ch ra r ng đ t ng theo c p s
m s x y ra tr phi sai s trong hàm heuristic không t ng nhanh h n logarits c a chi phí đ ng đi
th c t Theo ký hi u toán h c, đi u ki n đ i v i đ t ng nh h n c p s m là :
⏐h(n) – h*(n)⏐≤ O(logh*(n)),
v i h*(n) là chi phí th c t c a vi c đi t n đ n m c tiêu i v i h u h t t t c các heuristic trong th c t s d ng, sai s ít nh t c ng t l v i chi phí đ ng đi , và đ t ng theo c p s m
cu i cùng s v t quá b t c kh n ng c a máy tính nào T t nhiên, vi c s d ng m t heuristic t t
v n cho chúng ta m t ti t ki m r t l n so v i các phép tìm ki m không đ thông tin Trong ph n
ti p theo, chúng ta s xem xét đ n v n đ thi t k các heuristic t t
Tuy nhiên, th i gian tính toán không ph i là m t tr ng i chính c a A* Do nó l u tr t t
c các nút đ c t o ra trong b nh , A* th ng b v t ra kh i b nh r t lâu tr c khi nó h t th i gian Các gi i thu t phát tri n g n đây đã v t qua tr ng i v dung l ng b nh mà không ph i
hi sinh tính t i u hay tính hoàn thành
Các hàm heuristic
Cho đ n lúc này, chúng ta m i ch xem xét m t ví d v m t heuristic: kho ng cách đ ng
th ng đ i v i các bài toán tìm đ ng đi Trong ph n này, chúng ta s xét các hàm heuristic đ i v i trò ch i s 8 i u này s soi r i v y u t t nhiên c a các hàm heuristic nói chung
Trò ch i s 8 là m t trong nh ng bài toán tìm ki m theo ph ng pháp heuristic s m nh t Nh đã
đ c p trong ph n 2.5, m c tiêu c a trò ch i này là đi các con c theo chi u ngang ho c chi u d c vào ô
tr ng cho đ n khi thu đ c tr ng thái các quân c nh mô hình m c tiêu (hình 2.9)
362980 các s s p x p khác nhau c a 9 ô vuông ây v n là m t s r t l n các tr ng thái, vì th
Trang 35b c ti p theo là tìm m t hàm heuristic t t N u chúng ta mu n tìm ki m các gi i thu t ng n nh t, chúng ta c n m t hàm heuristic mà không bao gi c đoán v t quá s các b c đi t i m c tiêu Sau đây là hai “ ng c viên”:
• h1 = s l ng quân c mà sai v trí i v i hình 2.9, 7 trong s 8 quân c sai v trí, vì
v y tr ng thái đ u s có h1 = 7 h1 là m t hàm heuristic ch p nh n đ c, b i vì rõ ràng là
b t c quân c nào mà đang sai v trí ph i di chuy n ít nh t m t l n
• h 2 = t ng s kho ng cách c a các quân c so v i v trí m c t êu B i vì các quân c không
th đi theo các đ ng chéo, kho ng cách mà chúng ta tính t ng s là t ng c a các kho ng cách theo chi u ngang và theo chi u d c Kho ng cách này đôi khi đ c g i là “kho ng
cách kh i thành ph ”(city block distance) ho c kho ng cách Manhantan h 2 là ch p
nh n đ c, vì b t c n c đi nào c ng ch có th di chuy n m t quân c m t b c g n
h n t i đích Các quân c t 1 đ n 8 trong tr ng thái đ u cho ta m t kho ng cách
Manhatan là:
h2 = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18
Hi u qu (tác d ng) c a đ chính xác heuristic trong khi th c hi n
M t cách đ xác đ nh ch t l ng c a m t hàm heuristic là h s phân nhánh hi u qu b*
N u t ng s các nút đ c m r ng b i A* đ i v i m t bài toán nào đó là N, và đ sâu gi i pháp là
d, thì b* là h s phân nhánh mà m t cây đ ng d ng có đ sâu d s ph i có đ ch a đ c N nút
Nh v y,
N = 1 + b* + (b*)2 +….+ (b*)d
Ch ng h n, n u A* tìm th y m t gi i pháp đ sâu b ng 5 s d ng 52 nút, thì h s phân nhánh hi u qu là 1,91 Thông th ng, h s phân nhánh hi u qu đ a ra b i m t heuristic cho
tr c là khá n đ nh đ i v i đa s các bài toán Do đó, các phép đo th nghi m giá tr b* trong
m t t p nh các bài toán có th đ a ra m t ch d n t t khi xét t ng th hàm heuristic M t hàm heuristic đ c thi t k t t s có giá tr b* g n v i 1, cho phép gi i quy t m t s l ng l n các bài toán ki m tra các hàm heuristic h1 và h2, chúng ta ít khi sinh ra 100 bài toán, m i bài toán v i các đ dài gi i pháp là 2,4,…,20, và gi i quy t chúng v i phép tìm ki m A* v i h1 và h2, cùng
v i phép tìm ki m l p sâu d n không đ y đ thông tin Hình 2.8 đ a ra s trung bình các nút
đ c m r ng b i chi n l c tìm ki m và h s phân nhánh hi u qu K t qu cho th y là h2 t t
h n h1 và phép tìm ki m thi u thông tin t i h n nhi u
Xây d ng các hàm heuristic
Chúng ta đã th y r ng, c h1 và h2 là nh ng heuristic khá t t đ i v i trò ch i s 8, và h2 thì
t t h n h1 Nh ng chúng ta không bi t làm th nào đ phát minh ra m t hàm heuristic Làm sao
m t ng i có th có đ c m t heuristic nh h2? M t máy tính có th phát minh m t cách máy móc ra đ c m t heuristic nh v y không?
h1 và h2 là các đánh giá ( c đoán) đ i v i đ dài đ ng đi còn l i trong trò ch i s 8,
nh ng chúng c ng có th đ c xem là các đ dài đ ng đi có đ chính xác tuy t v i đ i v i
nh ng ki u đ n gi n hoá c a trò ch i này N u nh qui t c c a trò ch i đ c thay đ i đ m t quân c có th di chuy n đ n b t c ch nào, thay vì ch có th đi đ n ô tr ng ngay c nh nó, thì h1
s đ a ra m t cách chính xác s các b c c a gi i pháp g n nh t T ng t , n u m t quân c có
th đi m t ô theo t t c các h ng, th m chí đi vào ô đã b chi m b i m t quân c khác, thì h2 s
đ a ra con s chính xác các b c đi c a gi i pháp ng n nh t M t bài toán v i ít ràng bu c h n
đ i v i các toán t đ c g i là m t bài toán gi i trí (relaxed problem) Th ng x y ra tr ng h p
Trang 36là chi phí đ ng đi c a m t gi i pháp đúng đ i v i m t bài toán gi i trí là m t heuristic t t đ i
v i bài toán g c (ban đ u)
N u vi c đ nh ngh a v n đ đ c vi t d i d ng m t ngôn ng chính th c, có th xây d ng các bài toán th giãn m t cách t đ ng 3 Ví d , n u các toán t c a trò ch i s 8 đ c miêu t
nh sau:
Quân c A có th đi t ô A đ n ô B n u A là c nh B và B tr ng, thì chúng ta có th t o ra ba bài toán gi i trí b ng cách b đi m t ho c nhi u h n các đi u ki n:
(a) Quân c A có th đi t ô A đ n ô B n u A c nh B
(b) Quân c A có th đi t ô A đ n ô B n u B là tr ng
(c) Quân c A có th đi t ô A đ n ô B
G n đây, m t ch ng trình đ c g i là ABSOLVER đã đ c vi t mà có th t o ra các heuristic m t cách t đ ng t các khái ni m xác đ nh bài toán, s d ng ph ng pháp “bài toán th giãn” và r t nhi u các k thu t khác (Prieditis, 1993) ABSOLVER sinh ra m t heuristic m i cho trò ch i s 8 t t h n b t c heuristic đang t n t i nào, và tìm ra heuristic h u ích đ u tiên cho trò
h(n) = max(h 1 (n) ,…, hm(n))
Heuristic t h p này s d ng b t c hàm nào chính xác nh t đ i v i nút trong câu h i Do các heuristic thành ph n là ch p nh n đ c , h c ng ch p nh n đ c H n n a, h v t tr i h n so
v i t t c các heuristic thành ph n t o nên nó
M t cách khác đ phát minh ra m t heuristic t t là s d ng thông tin th ng kê i u này
có th thu đ c b ng cách ch y m t phép tìm ki m đ i v i m t s các bài toán đào t o, nh 100
mô hình ng u nhiên c a trò ch i s 8 đ c ch n, và thu th p các th ng kê Ví d , chúng ta có th tìm th y r ng, khi h2(n) = 14, thì 90% c a quãng đ ng th c s đ t i đích là 18 Nh v y khi
g p nh ng bài toán “th c s ”, chúng ta có th s d ng 18 làm giá tr quãng đ ng b t c khi nào
h2(n) cho giá tr 14 T t nhiên, n u chúng ta s d ng các thông tin theo xác xu t nh th này, chúng ta đang t b s b o đ m v tính có th ch p nh n đ c, nh ng tính trung bình chúng ta có
l s m r ng ít nút h n
Thông th ng có th l y ra các đ c đi m c a m t tr ng thái mà đóng góp cho hàm đ nh giá heuristic c a nó, th m chí n u r t khó nói chính xác s đóng góp là gì Ch ng h n, m c t êu trong đánh c là chi u t ng đ i ph ng, và các đ c đi m liên quan nh s quân m i lo i c a m i bên,
s quân mà b n b i quân c a đ i th , v .v Thông th ng, hàm đ nh giá đ c gi đ nh là t h p tuy n tính c a các giá tr đ c đi m Th m chí n u chúng ta không bi t các đ c đi m quan tr ng
nh th nào, hay th m chí m t đ c đi m là t t hay x u, ta v n có th s d ng m t gi i thu t h c
t p đ thu đ c các h s h p lý cho m i đ c đi m Ví d , trong đánh c , m t ch ng trình có th
h c h i đ c r ng con h u c a m t ng i nên có h s d ng l n, trong khi m t con t t c a đ i
th nên có m t h s âm nh
M t y u t khác mà chúng ta ch a xem xét đ n là chi phí tìm ki m c a vi c ch y th t s hàm heuristic trên m t nút Chúng ta v a gi đ nh r ng chi phí c a vi c tính toán hàm heuristic
Trang 37t ng đ ng v i chi phí m r ng m t nút do v y t i thi u hoá s l ng nút m r ng là m t đi u
t t Nh ng n u hàm heuristic ph c t p đ n n i mà tính toán giá tr c a nó cho m t nút m t kho ng
th i gian đ m r ng hàng tr m nút thì chúng ta c n ph i cân nh c Cu i cùng, r t d đ có m t hàm heuristic mà chính xác tuy t đ i – n u chúng ta cho phép hàm heuristic th c hi n, ví d , m t phép tìm ki m theo chi u r ng “kín đáo” i u đó s t i thi u hoá s l ng các nút đ c m r ng
b i phép tìm ki m th c s , nh ng nó s không t i thi u hoá chi phí tìm ki m t ng th M t hàm heuristic t t ph i v a chính xác v a hi u qu
đ c s a đ i đ s d ng m t gi i h n chi phí f thay vì m t gi i h n đ sâu Nh v y, m i vòng l p
m r ng các nút bên trong d ng vi n c a chi phí f hi n t i, nhin vào trong đ ng vi n đ tìm
đ ng vi n ti p theo đâu Khi phép tìm ki m bên trong m t đ ng vi n đã cho đã hoàn thành, vòng l p m i l i b t đ u s d ng m t chi phí f m i cho đ ng vìên ti p theo.IDA* là hoàn thành và
t i u v i cùng m t d báo cho tr c nh phép tìm ki m A*, nh ng do nó là ph ng pháp tìm
ki m theo chi u sâu, nó ch yêu c u không gian b nh t l v i đ ng đi dài nh t mà nó khám
function IDA*(problem) return m t d∞ãy gi i pháp
Inputs: problem, m t bài toán, v n đ
Các bi n đ a ph ng: gi i h n-f, gi i h n chi phí f hi n th i
root, m t nút root - Make-node(tr ng thái đ u[problem])
gi i h n-f - chiphí- f(root)
loop do
gi i pháp, gi ih n-f - DFS-contour(root,gi i h n-f)
if gi i pháp khác r ng then return gi i pháp
if gi i han-f = ∞ then return th t b i; end
function dfs-contour(node, gi ih n-f) returns m t dãy gi i pháp và m t gi i h n chi phí f m i
Input: node, m t nút
Gi i h n –f, gi i h n chi phí f hi n th i
Các bi n đ a ph ng: next-f, gi i h n chi phí f c a contour ti p theo, ban đ u là ∞
If chiphí -f[node] > gi ih n-f then return r ng, chiphí-f[node]
If goal-test[problem](state[node]) then return node, gi ih n-f
For m i nút s trong successor(node) do
Gi i pháp, f-m i – dfs-contour(s, gi ih n-f)
If gi i pháp khác r ng then return gi i pháp, gi ih n-f
Next-f ← MIN(next-f, new-f); end
Return r ng, next-f
Trang 38phá N u δ là chi phí nh nh t và f* là chi phí gi i pháp t i u, thì trong tr ng h p t i nh t,
IDA* s yêu c u bf*/δ nút l u tr Trong h u h t các tr ng h p, bd là s c đoán r t t t đ i v i yêu c u v dung l ng l u tr
ki m tra đ ng đi hi n th i đ i v i nh ng tr ng thái l p l i, nh ng nó không th tránh đ c các
tr ng thái l p l i đ c t o ra b i các đ ng đi thay đ i
Trong ph n này, chúng ta miêu t gi i thu t SMA* mà có th s d ng t t c b nh s n có đ
ti n hành vi c tìm ki m Vi c s d ng b nh nhi u h n ch có th c i thi n đ c hi u qu tìm ki m – m t gi i thu t có th luôn b qua không gian ph , nh ng th ng t t h n là nh m t nút thay vì t o
ra nó khi c n thi t SMA* có các thu c tính sau đây:
• Nó s s d ng t t c d ng l ng b nh đ c t o ra dành cho nó
• Nó tránh các tr ng thái l p l i ch ng nào mà b nh còn cho phép
• Nó là hoàn thành n u b nh có s n là hi u qu đ l u tr đ ng đi gi i pháp nông nh t
• Nó là t i u n u có đ b nh đ c t gi đ ng đi gi i pháp t i u nông nh t Trái l i, nó tr
v gi i pháp t t nh t có th có đ c trong ph m vi b nh cho phép
Khi có đ b nh cho cây tìm ki m toàn b , phép tìm ki m là hi u qu m t cách t i u
V n đ không gi i quy t đ c là không rõ SMA* có ph i luôn hi unqu m t cách t i u trong các gi i pháp cho b i cùng các thông tin heuristic và cùng dung l ng b nh
Vi c thi t k SMA* là đ n gi n , ít nh t là vè t ng quát Khi c n ph i t o ra m t nút ti p theo nh ng không còn b nh , nó s c n ph i t o ra không gian nh trong hàng đ i làm đi u này, nó b qua m t nút trong hàng đ i Nh ng nút mà b b r i trong hàng đ i theo cách này đ oc
g i là nh ng nút b b quên Nó u tiên b qua nh ng nút mà không có tri n v ng – t c là nh ng nút có chi phí f cao tránh khám phá l i nh ng cây conmà đã b b r i kh i b nh , nó l u l i trong các nút t tiên nh ng thông tin v ch t l ng c a đ ng đi t t nh t trên cây con b b qua Theo cách này, nó ch tái sinh ra ccác cây con khi t t c các đ ng đi khác đã đ c ch ra là t i
h n đ ng đi mà nó v a b qua M t cách nói khác là n u t t c các h u du c a m t nút n b b quên, thì chúng ta s không bi t đi đ ng nào t n, nh ng chúng ta vãn có v n có ý t ng v giá
mô hình đ y đ và thay đ i mô hình đ c i thi n ch t l ng c a nó
Trang 39Cách t t nh t đ hi u các gi i thu t c i ti n l p là xét t t c các tr ng thái đ c bày ra trên
b m t c a m t phong c nh cao c a b t c đi m nào trên phong c nh t ng ng v i hàm giá
c a tr ng thái đi m đó Ý t ng c i ti n l p là di chuy n quanh phong c nh đ c g ng tìm các
đ nh cao nh t, mà là các gi i pháp t i u Các gi i thu t c i ti n l p th ng ch theo sát tr ng thái
hi n th i, và không nhìn v phía tr c v t qua nh ng lân c n t c thì c a tr ng thái đó i u này
c ng gi ng v i vi c c g ng tìm đ nh c a ng n núi Everest trong s ng mù dày đ c trong khi ph i
ch u đ ng ch ng hay quên Tuy nhiên, đôi khi các gi i thu t c i ti n l p là m t ph ng pháp c a
s l a ch n các bài toán th c t và hóc búa
Các gi i thu t c i ti n l p đ c chia thành hai l p chính Các gi i thu t trèo núi (hay
luôn c g ng thay đ i đ c i ti n tr ng thái Các gi i thu t rèn luy n tái t o th nh tho ng t o thay
đ i mà làm cho m i th t i t h n, ít nh t là t m th i
Phép tìm ki m leo núi (Hill-climbing)
Gi i thu t tìm ki m leo núi đ c ch ra hình 2.11 Nó đ n gi n là m t vòng l p mà di chuy n liên t c theo h ng làm t ng giá tr Gi i thu t không duy trì m t cây tìm ki m , vì v y
c u trúc d li u nút ch c n ghi l i tr ng thái và giá tr c a nó, mà chúng ta bi u di n b ng giá tr
M t khái ni m quan tr ng là khi có nhi u h n m t nút k tiép t t nh t đ ch n l a, gi i thu t có
th l a ch n trong s chúng m t cách ng u nhiên Qui t c đ n gi n này có ba nh c đi m n i
ti ng nh sau:
• Các giá tr c c đ i đ a ph ng: m t giá tr c c đ i đ a ph ng, trái ng c v i m t giá tr
c c đ i toàn c c, là m t đ nh mà th p h n đ nh cao nh t trong không gian tr ng thái Khi trên m t đ i l ng c c đ i đ a ph ng , gi ithu t s d ng l i th m chí m c dù gi i pháp
đi u này x y ra, m t đi u ch c ch n ph i làm là b t đ u l i t m t đi m kh i đ u khác Phép leo
tr ng thái ban đ u đ c t o ra m t cách ng u nhiên , th c hi n m i phép tìm ki m cho đ n khi nó
d ng l i ho c không có s ti n tri n rõ r t Nó l u l i k t qu t t nh t tìm d c c a b t c phép tìm
ki m nào Nó có th s d ng m t s b c l p h n h p, ho c có th ti p t c cho đ n khi k t qu l u
đ c t t nh t ch a đ c c i thi n đ i v i m t s phép l p nào đó
Rõ ràng, n u cho phép đ s l n l p, phép tìm ki m leo núi b t đ u l i ng u nhiên
cu i cùng s tìm ra gi i pháp t i u S thành công c a phép tìm ki m leo núi ph thu c r t nhi u vào hình fd ng c a ”b m t” không gian tr ng thái: n u nh ch có m t vài giá tr c c đ i đ a
ph ng, phép tìm ki m leo núi b t đ u l i ng u nhiên s r t nhanh chóng tìm th y m t gi i pháp
t t M t bài toán th c s có m t b m t mà trôngr t gi ng môtj con nhím N u bài toán là hoàn thành trong th i gian NP, thì r t có th chúng ta không th làm t t h n th i gian theo c p s m
Ti p theo là ph i có s các c c đ i đ a ph ng theo c p s m mà gi i thu t s m c k t vào đó Tuy nhiên, thông th ng, m t gi i pháp t t h p lý có th đ c tìm th y sau m t s ít l n l p
Trang 40
Hình 2.11 Gi i thu t tìm ki m trèo núi
Gi i h n c a vi c tìm ki m
Ph ng pháp d h u nh t đ đi u khi n kh i l ng vi c tìm ki m là thi t l p m t đ sâu
gi i h n, đ vi c ki m tra ng ng (gi i h n) ti n hành đ i v i t t c các nút đ sâu d hay bên
d i đ sâu d sâu đ c ch n đ kh i l ng th i gian s d ng s không v t quá nh ng gì mà
lu t ch i cho phép Khi th i gian h t, ch ng trình s quay l i b c đi mà đ c l a ch n b i phép tìm ki m k t thúc sâu nh t
Nh ng ph ng pháp này có m t s nh ng h u qu tai h i do tính ch t g n đúng c a hàm
đ nh giá Rõ ràng, c n có m t hàm ki m tra gi i h n ph c t p Hàm giá ch nên áp d ng cho các
v trí th đ ng, t c là d ng nh s không phô bày s “đung đ a chuy n đ ng d d i” (s bi n
đ ng l n) v m t giá tr trong t ng lai g n Ví d trong đánh c , các v trí mà d n có th đ c
t o ra là không th đ ng d i v i m t hàm đ nh giá mà ch tính đ n v t ch t Các v trí không th
đ ng có th đ c m r ng h n n a cho đ n khi ch m t i các v trí th đ ng Vi c tìm ki m b sung này đ c g i là m t ph ng pháp tìm ki m th đ ng; đôi khi nó đ c gi i h n ch đ xem
xét các ki u đi nào đó, nh b c đi n (quân đ i ph ng), mà s nhanh chóng gi i quy t s không
C vua thu hút đ c s quan tâm l n nh t trong trò ch i M c dù không đ t t i nh l i
kh ng đ nh c a Simon n m 1957 r ng trong vòng 10 n m n a, các máy tính s đánh b i b t c nhà vô đ ch th gi i nào, nh ng gi đây các máy tính g n nh đã s p đ t đ c m c tiêu đó Trong môn c vua t c đ , các máy tính đã đánh b i nhà vô đ ch th gi i, Gary Kasparov, trong các trò
ch i 5 phút và 25 phút, nh ng trong các trò ch i đ y đ , máy tính ch x p trong t p 100 tay c
gi i nh t th gi i Hình d i đây cho th y t l c a các nhà vô đ ch c vua là ng i và máy tính trong nh ng n m qua
Function Hill-climbing(problem) return m t tr ng thái gi i pháp
Inputs : problem, m t bài toán
Các bi n c c b : current, m t nút
Next, m t nút Curent ← make-node(initial-state[problem])
Loop do
Next ← m t nút con cháu có giá tr cao nh t c a nút current(hi n t i)
If value[next] < value[current] then return current
Current ← next
End