Mục lục
Ph n I : Gi i quy t v n đ b ng tìm ki m ầ ả ế ấ ề ằ ế1.1 Ch ng I - Các chi n l c tìm ki m mù ươ ế ượ ế
1.1 Bi u di n v n đ trong không gian tr ng thái ể ễ ấ ề ạ
Ch ng II - Các chi n l c tìm ki m kinh nghi m ươ ế ượ ế ệ
2.1 H m ánh giá v tìm ki m kinh nghi mà đ à ế ệ
3.2.3 Tìm ki m mô ph ng luy n kim ế ỏ ệ
1.2.2 3.3 Tìm ki m mô ph ng s ti n hóa Thu t toán di truy n ế ỏ ự ế ậ ề
1.3 Ch ng IV - Tìm ki m có i th ươ ế đố ủ
4.1 Cây trò ch i v tìm ki m trên cây trò ch iơ à ế ơ
4.2 Chi n l c Minimaxế ượ
4.3 Ph ng pháp c t c t Alpha-Betaươ ắ ụ
Ph n II: Tri th c v l p lu n ầ ứ à ậ ậ
Trang 3Ph n I ầ
Gi i quy t v n đ b ng tìm ki m ả ế ấ ề ằ ế
-V n tìm ki m, m t cách t ng quát, có th hi u l tìm m t i t ng th a mãnấ đề ế ộ ổ ể ể à ộ đố ượ ỏ
m t s òi h i n o ó, trong m t t p h p r ng l n các i t ng Chúng ta có th k raộ ố đ ỏ à đ ộ ậ ợ ộ ớ đố ượ ể ể
r t nhi u v n m vi c gi i quy t nó ấ ề ấ đề à ệ ả ế được quy v v n tìm ki m.ề ấ đề ế
Các trò ch i, ch ng h n c vua, c carô có th xem nh v n tìm ki m Trong sơ ẳ ạ ờ ờ ể ư ấ đề ế ố
r t nhi u n c i ấ ề ướ đ được phép th c hi n, ta ph i tìm ra các n c i d n t i tình th k tự ệ ả ướ đ ẫ ớ ế ế
cu c m ta l ng i th ng.ộ à à ườ ắ
Ch ng minh nh lý c ng có th xem nh v n tìm ki m Cho m t t p các tiênứ đị ũ ể ư ấ đề ế ộ ậ
v các lu t suy di n, trong tr ng h p n y m c tiêu c a ta l tìm ra m t ch ng minh
Trong ph n n y chúng ta s nghiên c u các k thu t tìm ki m c b n ầ à ẽ ứ ỹ ậ ế ơ ả được áp
d ng gi i quy t các v n v ụ để ả ế ấ đề à được áp d ng r ng rãi trong các l nh v c nghiên c uụ ộ ĩ ự ứkhác c a ủ Trí Tu Nhân T o ệ ạ Chúng ta l n l t nghiên c u các k thu t sau:ầ ượ ứ ỹ ậ
• Các k thu t tìm ki m mù, trong ó chúng ta không có hi u bi t gì v các iỹ ậ ế đ ể ế ề đố
t ng h ng d n tìm ki m m ch n thu n l xem xét theo m t h th ng n o ó t tượ để ướ ẫ ế à ỉ đơ ầ à ộ ệ ố à đ ấ
c các i t ng phát hi n ra i t ng c n tìm.ả đố ượ để ệ đố ượ ầ
• Các k thu t tìm ki m kinh nghi m (tìm ki m heuristic) trong ó chúng ta d aỹ ậ ế ệ ế đ ự
v o kinh nghi m v s hi u bi t c a chúng ta v v n c n gi i quy t xây d ng nênà ệ à ự ể ế ủ ề ấ đề ầ ả ế để ự
h m ánh giá h ng d n s tìm ki m.à đ ướ ẫ ự ế
• Các k thu t tìm ki m t i u.ỹ ậ ế ố ư
• Các ph ng pháp tìm ki m có i th , t c l các chi n l c tìm ki m n c iươ ế đố ủ ứ à ế ượ ế ướ đtrong các trò ch i hai ng i, ch ng h n c vua, c t ng, c carô.ơ ườ ẳ ạ ờ ờ ướ ờ
Trang 4Ch ươ ng I Các chi n l c tìm ki m mù ế ượ ế
-Trong ch ng n y, chúng tôi s nghiên c u các chi n l c tìm ki m mù (blindươ à ẽ ứ ế ượ ếsearch): tìm ki m theo b r ng (breadth-first search) v tìm ki m theo sâu (depth-ế ề ộ à ế độfirst search) Hi u qu c a các ph ng pháp tìm ki m n y c ng s ệ ả ủ ươ ế à ũ ẽ đượ đc ánh giá
1.4 Bi u di n v n trong không gian tr ng thái ể ễ ấ đề ạ
M t khi chúng ta mu n gi i quy t m t v n n o ó b ng tìm ki m, u tiên taộ ố ả ế ộ ấ đề à đ ằ ế đầ
ph i xác nh không gian tìm ki m ả đị ế Không gian tìm ki m bao g m t t c các i t ngế ồ ấ ả đố ượ
m ta c n quan tâm tìm ki m Nó có th l không gian liên t c, ch ng h n không gianà ầ ế ể à ụ ẳ ạcác véct th c n chi u; nó c ng có th l không gian các i t ng r i r c.ơ ự ề ũ ể à đố ượ ờ ạ
Trong m c n y ta s xét vi c bi u di n m t v n trong không gian tr ng tháiụ à ẽ ệ ể ễ ộ ấ đề ạsao cho vi c gi i quy t v n ệ ả ế ấ đề được quy v vi c tìm ki m trong không gian tr ng thái.ề ệ ế ạ
M t ph m vi r ng l n các v n , c bi t các câu , các trò ch i, có th mô tộ ạ ộ ớ ấ đề đặ ệ đố ơ ể ả
b ng cách s d ng khái ni m tr ng thái v toán t (phép bi n i tr ng thái) Ch ngằ ử ụ ệ ạ à ử ế đổ ạ ẳ
h n, m t khách du l ch có trong tay b n m ng l i giao thông n i các th nh ph trongạ ộ ị ả đồ ạ ướ ố à ố
m t vùng lãnh th (hình 1.1), du khách ang th nh ph A v anh ta mu n tìm ộ ổ đ ở à ố à ố đường
i t i th m th nh ph B Trong b i toán n y, các th nh ph có trong các b n l các
tr ng thái, th nh ph A l tr ng thái ban u, B l tr ng thái k t thúc Khi ang m tạ à ố à ạ đầ à ạ ế đ ở ộ
th nh ph , ch ng h n th nh ph D anh ta có th i theo các con à ố ẳ ạ ở à ố ể đ đườ để ố ớng n i t i các
th nh ph C, F v G Các con à ố à đường n i các th nh ph s ố à ố ẽ được bi u di n b i các toán t ể ễ ở ử
M t toán t bi n i m t tr ng thái th nh m t tr ng thái khác Ch ng h n, tr ng tháiộ ử ế đổ ộ ạ à ộ ạ ẳ ạ ở ạ
D s có ba toán t d n tr ng thái D t i các tr ng thái C, F v G V n c a du kháchẽ ử ẫ ạ ớ ạ à ấ đề ủbây gi s l tìm m t dãy toán t a tr ng thái ban u A t i tr ng thái k t thúc B.ờ ẽ à ộ ửđể đư ạ đầ ớ ạ ế
M t ví d khác, trong trò ch i c vua, m i cách b trí các quân trên b n c lộ ụ ơ ờ ỗ ố à ờ à
m t tr ng thái Tr ng thái ban u l s s p x p các quân lúc b t u cu c ch i M iộ ạ ạ đầ à ự ắ ế ắ đầ ộ ơ ỗ
n c i h p l l m t toán t , nó bi n i m t c nh hu ng trên b n c th nh m t c nhướ đ ợ ệ à ộ ử ế đổ ộ ả ố à ờ à ộ ả
T p h p t t c các tr ng thái có th t t i t tr ng thái ban u b ng cách ápậ ợ ấ ả ạ ể đạ ớ ừ ạ đầ ằ
d ng m t dãy toán t , l p th nh không gian tr ng thái c a v n ụ ộ ử ậ à ạ ủ ấ đề
Ta s ký hi u không gian tr ng thái l U, tr ng thái ban u l uẽ ệ ạ à ạ đầ à 0 (u0 ∈ U) M iỗtoán t R có th xem nh m t ánh x R: Uử ể ư ộ ạ →U Nói chung R l m t ánh x không xácà ộ ạ
Trang 5Khi chúng ta bi u di n m t v n thông qua các tr ng thái v các toán t , thìể ễ ộ ấ đề ạ à ử
vi c tìm nghi m c a b i toán ệ ệ ủ à được quy v vi c tìm ề ệ đường i t tr ng thái ban u t iđ ừ ạ đầ ớ
tr ng thái ích (M t ạ đ ộ đườ đng i trong không gian tr ng thái l m t dãy toán t d n m tạ à ộ ử ẫ ộ
tr ng thái t i m t tr ng thái khác).ạ ớ ộ ạ
Chúng ta có th bi u di n không gian tr ng thái b ng th nh h ng, trong óể ể ễ ạ ằ đồ ị đị ướ đ
m i nh c a th t ng ng v i m t tr ng thái N u có toán t R bi n i tr ng thái uỗ đỉ ủ đồ ị ươ ứ ớ ộ ạ ế ử ế đổ ạ
th nh tr ng thái v, thì có cung gán nhãn R i t nh u t i nh v Khi ó m t à ạ đ ừ đỉ ớ đỉ đ ộ đườ đng itrong không gian tr ng thái s l m t ạ ẽ à ộ đườ đng i trong th n y.đồ ị à
Sau ây chúng ta s xét m t s ví d v các không gian tr ng thái đ ẽ ộ ố ụ ề ạ được xây d ngựcho m t s v n ộ ố ấ đề
Ví d 1: ụ B i toán 8 s Chúng ta có b ng 3x3 ô v tám quân mang s hi u t 1à ố ả à ố ệ ừ
n 8 c x p v o tám ô, còn l i m t ô tr ng, ch ng h n nh trong hình 2 bên trái
Trong trò ch i n y, b n có th chuy n d ch các quân c ch ô tr ng t i ô tr ng ó V nơ à ạ ể ể ị ở ạ ố ớ ố đ ấ
c a b n l tìm ra m t dãy các chuy n d ch bi n i c nh hu ng ban u (hình 1.2
bên trái) th nh m t c nh hu ng xác nh n o ó, ch ng h n c nh hu ng trong hình 1.2à ộ ả ố đị à đ ẳ ạ ả ốbên ph i.ả
Trong b i toán n y, tr ng thái ban u l c nh hu ng bên trái hình 1.2, cònà à ạ đầ à ả ố ở
tr ng thái k t thúc bên ph i hình 1.2 T ng ng v i các quy t c chuy n d ch cácạ ế ở ả ươ ứ ớ ắ ể ị
quân, ta có b n toán t : ố ử up ( y quân lên trên), đẩ down ( y quân xu ng d i), đẩ ố ướ left ( yđẩ
quân sang trái), right ( y quân sang ph i) Rõ r ng l , các toán t n y ch l các toánđẩ ả à à ử à ỉ à
t b ph n; ch ng h n, t tr ng thái ban u (hình 1.2 bên trái), ta ch có th áp d ngử ộ ậ ẳ ạ ừ ạ đầ ỉ ể ụcác toán t ử down, left, right.
Trong các ví d trên vi c tìm ra m t bi u di n thích h p mô t các tr ng tháiụ ệ ộ ể ễ ợ để ả ạ
c a v n l khá d d ng v t nhiên Song trong nhi u v n vi c tìm hi u ủ ấ đề à ễ à à ự ề ấ đề ệ ể được bi uể
di n thích h p cho các tr ng thái c a v n l ho n to n không n gi n Vi c tìm raễ ợ ạ ủ ấ đề à à à đơ ả ệ
d ng bi u di n t t cho các tr ng thái óng vai trò h t s c quan tr ng trong quá trìnhạ ể ễ ố ạ đ ế ứ ọ
Trang 6gi i quy t m t v n Có th nói r ng, n u ta tìm ả ế ộ ấ đề ể ằ ế được d ng bi u di n t t cho cácạ ể ễ ố
tr ng thái c a v n , thì v n h u nh ã ạ ủ ấ đề ấ đề ầ ư đ được gi i quy t.ả ế
Ví d 2 ụ : V n tri u phú v k c p Có ba nh tri u phú v ba tên c p bênấ đề ệ à ẻ ướ à ệ à ướ ở
b t ng n m t con sông, cùng m t chi c thuy n ch ờ ả ạ ộ ộ ế ề ở được m t ho c hai ng i Hãy tìmộ ặ ườcách a m i ng i qua sông sao cho không l i bên b sông k c p nhi u h nđư ọ ườ để ạ ở ờ ẻ ướ ề ơtri u phú ệ Đương nhiên trong b i toán n y, các toán t t ng ng v i các h nh ng chà à ử ươ ứ ớ à độ ở
1 ho c 2 ng i qua sông Nh ng ây ta c n l u ý r ng, khi h nh ng x y ra (lúcặ ườ ư ở đ ầ ư ằ à độ ẩthuy n ang b i qua sông) thì bên b sông thuy n v a d i ch , s k c p khôngề đ ơ ở ờ ề ừ ờ ỗ ố ẻ ướ
c nhi u h n s tri u phú Ti p theo ta c n quy t nh cái gì l tr ng thái c a v n
Có th phân các chi n l c tìm ki m th nh hai lo i:ể ế ượ ế à ạ
• Các chi n l c tìm ki m mù Trong các chi n l c tìm ki m n y, không có m tế ượ ế ế ượ ế à ộ
s h ng d n n o cho s tìm ki m, m ta ch phát tri n các tr ng thái ban u cho t iự ướ ẫ à ự ế à ỉ ể ạ đầ ớkhi g p m t tr ng thái ích n o ó Có hai k thu t tìm ki m mù, ó l tìm ki m theoặ ộ ạ đ à đ ỹ ậ ế đ à ế
b r ng v tìm ki m theo sâu.ề ộ à ế độ
Trang 7T t ng c a tìm ki m theo b r ng l các tr ng thái ư ưở ủ ế ề ộ à ạ được phát tri n theo th tể ứ ự
m chúng à được sinh ra, t c l tr ng thái n o ứ à ạ à được sinh ra tr c s ướ ẽ được phát tri n tr c.ể ướTrong nhi u v n , dù chúng ta phát tri n các tr ng thái theo h th ng n o (theoề ấ đề ể ạ ệ ố à
b r ng ho c theo sâu) thì s l ng các tr ng thái ề ộ ặ độ ố ượ ạ được sinh ra tr c khi ta g p tr ngướ ặ ạ
thái ích th ng l c c k l n Do ó các thu t toán tìm ki m mù kém hi u qu , òiđ ườ à ự ỳ ớ đ ậ ế ệ ả đ
h i r t nhi u không gian v th i gian Trong th c t , nhi u v n không th gi i quy tỏ ấ ề à ờ ự ế ề ấ đề ể ả ế
c b ng tìm ki m mù
• Tìm ki m kinh nghi m (tìm ki m heuristic) Trong r t nhi u v n , chúng ta cóế ệ ế ấ ề ấ đề
th d a v o s hi u bi t c a chúng ta v v n , d a v o kinh nghi m, tr c giác, ể ự à ự ể ế ủ ề ấ đề ự à ệ ự đểánh giá các tr ng thái S d ng s ánh giá các tr ng thái h ng d n s tìm ki m:
Trang 8Chúng ta có th ngh n quá trình tìm ki m nh quá trình xây d ng ể ĩ đế ế ư ự cây tìm
ki m ế Cây tìm ki m l cây m các nh ế à à đỉ được g n b i các tr ng thái c a không gianắ ở ạ ủ
tr ng thái G c c a cây tìm ki m t ng ng v i tr ng thái ban u N u m t nh ngạ ố ủ ế ươ ứ ớ ạ đầ ế ộ đỉ ứ
v i tr ng thái u, thì các nh con c a nó ng v i các tr ng thái v k u Hình 1.4a l ớ ạ đỉ ủ ứ ớ ạ ề à đồ
th bi u di n m t không gian tr ng thái v i tr ng thái ban u l A, hình 1.4b l câyị ể ễ ộ ạ ớ ạ đầ à àtìm ki m t ng ng v i không gian tr ng thái ó.ế ươ ứ ớ ạ đ
M i chi n l c tìm ki m trong không gian tr ng thái t ng ng v i m t ph ngỗ ế ượ ế ạ ươ ứ ớ ộ ươpháp xây d ng cây tìm ki m Quá trình xây d ng cây b t u t cây ch có m t nh lự ế ự ắ đầ ừ ỉ ộ đỉ à
tr ng thái ban u Gi s t i m t b c n o ó trong chi n l c tìm ki m, ta ã xâyạ đầ ả ử ớ ộ ướ à đ ế ượ ế đ
d ng ự được m t cây n o ó, các lá c a cây t ng ng v i các tr ng thái ch a ộ à đ ủ ươ ứ ớ ạ ư được pháttri n B c ti p theo ph thu c v o chi n l c tìm ki m m m t nh n o ó trong cácể ướ ế ụ ộ à ế ượ ế à ộ đỉ à đ
lá được ch n phát tri n Khi phát tri n nh ó, cây tìm ki m ọ để ể ể đỉ đ ế được m r ng b ngở ộ ằcách thêm v o các nh con c a nh ó K thu t tìm ki m theo b r ng (theo sâu)à đỉ ủ đỉ đ ỹ ậ ế ề ộ độ
t ng ng v i ph ng pháp xây d ng cây tìm ki m theo b r ng (theo sâu).ươ ứ ớ ươ ự ế ề ộ độ
1.6 Các chi n l c tìm ki m mù ế ượ ế
Trong m c n y chúng ta s trình b y hai chi n l c tìm ki m mù: tìm ki m theoụ à ẽ à ế ượ ế ế
b r ng v tìm ki m theo sâu Trong tìm ki m theo b r ng, t i m i b c ta s ch nề ộ à ế độ ế ề ộ ạ ỗ ướ ẽ ọ
tr ng thái phát tri n l tr ng thái ạ để ể à ạ được sinh ra tr c các tr ng thái ch phát tri nướ ạ ờ ểkhác Còn trong tìm ki m theo sâu, tr ng thái ế độ ạ được ch n phát tri n l tr ng tháiọ để ể à ạ
c sinh ra sau cùng trong s các tr ng thái ch phát tri n
Chúng ta s d ng danh sách L l u các tr ng thái ã ử ụ để ư ạ đ được sinh ra v ch à ờ đượcphát tri n M c tiêu c a tìm ki m trong không gian tr ng thái l tìm ể ụ ủ ế ạ à đườ đ ừ ạng i t tr ngthái ban u t i tr ng thái ích, do ó ta c n l u l i v t c a đầ ớ ạ đ đ ầ ư ạ ế ủ đườ đng i Ta có th s d ngể ử ụ
h m father l u l i cha c a m i nh trên à để ư ạ ủ ỗ đỉ đườ đ father(v) = u n u cha c a nh v lng i, ế ủ đỉ àu
Trang 9Chúng ta có m t s nh n xét sau ây v thu t toán tìm ki m theo b r ng:ộ ố ậ đ ề ậ ế ề ộ
• Trong tìm ki m theo b r ng, tr ng thái n o ế ề ộ ạ à được sinh ra tr c s ướ ẽ được phát tri nể
tr c, do ó danh sách L ướ đ đượ ửc x lý nh h ng i Trong b c 2.3, ta c n ki m tra xemư à đợ ướ ầ ể
u có l tr ng thái k t thúc hay không Nói chung các tr ng thái k t thúc à ạ ế ạ ế được xác nhđị
b i m t s i u ki n n o ó, khi ó ta c n ki m tra xem u có th a mãn các i u ki n óở ộ ố đ ề ệ à đ đ ầ ể ỏ đ ề ệ đhay không
• N u b i toán có nghi m (t n t i ế à ệ ồ ạ đường i t tr ng thái ban u t i tr ng tháiđ ừ ạ đầ ớ ạích), thì thu t toán tìm ki m theo b r ng s tìm ra nghi m, ng th i ng i tìm
Bây gi ta ánh giá th i gian v b nh m tìm ki m theo b r ng òi h i Gi sờ đ ờ à ộ ớ à ế ề ộ đ ỏ ả ử
r ng, m i tr ng thái khi ằ ỗ ạ được phát tri n s sinh ra b tr ng thái k Ta s g i b l ể ẽ ạ ề ẽ ọ à nhân tố
nhánh Gi s r ng, nghi m c a b i toán l ả ử ằ ệ ủ à à đườ đng i có d i d B i nhi u nghi m cóđộ à ở ề ệ
th ể được tìm ra t i m t nh b t k m c d c a cây tìm ki m, do ó s nh c n xemạ ộ đỉ ấ ỳ ở ứ ủ ế đ ố đỉ ầxét tìm ra nghi m l :để ệ à
1 + b + b 2 + + b d-1 + k
Trong ó k có th l 1, 2, , bđ ể à d Do ó s l n nh t các nh c n xem xét l :đ ố ớ ấ đỉ ầ à
1 + b + b 2 + + b d
Nh v y, ph c t p th i gian c a thu t toán tìm ki m theo b r ng l O(bư ậ độ ứ ạ ờ ủ ậ ế ề ộ à d) Độ
ph c t p không gian c ng l O(bứ ạ ũ à d), b i vì ta c n l u v o danh sách L t t c các nhở ầ ư à ấ ả đỉ
c a cây tìm ki m m c d, s các nh n y l bủ ế ở ứ ố đỉ à à d
th y rõ tìm ki m theo b r ng òi h i th i gian v không gian l n t i m c n o,
ta xét tr ng h p nhân t nhánh b = 10 v sâu d thay i Gi s phát hi n vườ ợ ố à độ đổ ả ử để ệ à
ki m tra 1000 tr ng thái c n 1 giây, v l u gi 1 tr ng thái c n 100 bytes Khi ó th iể ạ ầ à ư ữ ạ ầ đ ờgian v không gian m thu t toán òi h i à à ậ đ ỏ được cho trong b ng sau:ả
Trang 101.6.2 Tìm ki m theo sâu ế độ
Nh ta ã bi t, t t ng c a chi n l c tìm ki m theo sâu l , t i m i b cư đ ế ư ưở ủ ế ượ ế độ à ạ ỗ ướ
tr ng thái ạ được ch n phát tri n l tr ng thái ọ để ể à ạ được sinh ra sau cùng trong s các tr ngố ạthái ch phát tri n Do ó thu t toán tìm ki m theo sâu l ho n to n t ng t nhờ ể đ ậ ế độ à à à ươ ự ưthu t toán tìm ki m theo b r ng, ch có m t i u khác l , ta x lý danh sách L cácậ ế ề ộ ỉ ộ đ ề à ử
tr ng thái ch phát tri n không ph i nh h ng i m nh ng n x p C th l trongạ ờ ể ả ư à đợ à ư ă ế ụ ể à
b c 2.4 c a thu t toán tìm ki m theo b r ng, ta c n s a l i l “ướ ủ ậ ế ề ộ ầ ử ạ à Đặt v v o à đầ danh u
sách L”
Sau ây chúng ta s a ra các nh n xét so sánh hai chi n l c tìm ki m mù:đ ẽ đư ậ ế ượ ế
• Thu t toán tìm ki m theo b r ng luôn luôn tìm ra nghi m n u b i toán cóậ ế ề ộ ệ ế ànghi m Song không ph i v i b t k b i toán có nghi m n o thu t toán tìm ki m theoệ ả ớ ấ ỳ à ệ à ậ ế sâu c ng tìm ra nghi m! N u b i toán có nghi m v không gian tr ng thái h u h n,
nhánh ó thì thu t toán s 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 các b i toán có cây tìm ki m ch a các nhánh vô h n.ụ ế ộ à ế ứ ạ
• Độ ứ ạ ủ ph c t p c a thu t toán tìm ki m theo sâu.ậ ế độ
Gi s r ng, nghi m c a b i toán l ả ử ằ ệ ủ à à đường i có d i d, cây tìm ki m có nhânđ độ à ế
t nhánh l b v có chi u cao l d Có th x y ra, nghi m l nh ngo i cùng bên ph iố à à ề à ể ẩ ệ à đỉ à ảtrên m c d c a cây tìm ki m, do ó ph c t p th i gian c a tìm ki m theo sâuứ ủ ế đ độ ứ ạ ờ ủ ế độtrong tr ng h p x u nh t l O(bườ ợ ấ ấ à d), t c l c ng nh tìm ki m theo b r ng Tuy nhiên,ứ à ũ ư ế ề ộtrên th c t i v i nhi u b i toán, tìm ki m theo sâu th c s nhanh h n tìm ki mự ế đố ớ ề à ế độ ự ự ơ ếtheo b r ng Lý do l tìm ki m theo b r ng ph i xem xét to n b cây tìm ki m t iề ộ à ế ề ộ ả à ộ ế ớ
m c d-1, r i m i xem xét các nh m c d Còn trong tìm ki m theo sâu, có th taứ ồ ớ đỉ ở ứ ế độ ể
ch c n xem xét m t b ph n nh c a cây tìm ki m thì ã tìm ra nghi m.ỉ ầ ộ ộ ậ ỏ ủ ế đ ệ
ánh giá ph c t p không gian c a tìm ki m theo sâu ta có nh n xét
r ng, khi ta phát tri n m t nh u trên cây tìm ki m theo sâu, ta ch c n l u các nhằ ể ộ đỉ ế độ ỉ ầ ư đỉ
ch a ư được phát tri n m chúng l các nh con c a các nh n m trên ể à à đỉ ủ đỉ ằ đườ đ ừ ố ớng i t g c t i
nh u Nh v y i v i cây tìm ki m có nhân t nhánh b v sâu l n nh t l d, ta ch
c n l u ít h n db nh Do ó ầ ư ơ đỉ đ độ ph c t p không gian c a tìm ki m theo ứ ạ ủ ế độ sâu làO(db), trong khi ó tìm ki m theo b r ng òi h i không gian nh O(bđ ế ề ộ đ ỏ ớ d)!
1.6.3 Các tr ng thái l p ạ ặ
Nh ta th y trong m c 1.2, cây tìm ki m có th ch a nhi u nh ng v i cùng m tư ấ ụ ế ể ứ ề đỉ ứ ớ ộ
tr ng thái, các tr ng thái n y ạ ạ à đượ ọ à ạc g i l tr ng thái l p Ch ng h n, trong cây tìm ki mặ ẳ ạ ếhình 4b, các tr ng thái C, E, F l các tr ng thái l p Trong th bi u di n không gianạ à ạ ặ đồ ị ể ễ
tr ng thái, các tr ng thái l p ng v i các nh có nhi u ạ ạ ặ ứ ớ đỉ ề đườ đ ẫ ớng i d n t i nó t tr ng tháiừ ạban u N u th có chu trình thì cây tìm ki m s ch a các nhánh v i m t s nhđầ ế đồ ị ế ẽ ứ ớ ộ ố đỉ
l p l i vô h n l n Trong các thu t toán tìm ki m s lãng phí r t nhi u th i gian ậ ạ ạ ầ ậ ế ẽ ấ ề ờ đểphát tri n l i các tr ng thái m ta ã g p v ã phát tri n ể ạ ạ à đ ặ à đ ể Vì v y trong quá trình tìmậ
ki m ta c n tránh phát sinh ra các tr ng thái m ta ã phát tri n Chúng ta có th ápế ầ ạ à đ ể ể
d ng m t trong các gi i pháp sau ây:ụ ộ ả đ
1 Khi phát tri n nh u, không sinh ra các nh trùng v i cha c a u.ể đỉ đỉ ớ ủ
2 Khi phát tri n nh u, không sinh ra các nh trùng v i m t nh n o ó n m trênể đỉ đỉ ớ ộ đỉ à đ ằ
Trang 11th c hi n gi i pháp th 3 ta c n l u các tr ng thái ã phát tri n v o t p Q, l u
các tr ng thái ch phát tri n v o danh sách L ạ ờ ể à Đương nhiên, tr ng thái v l n u ạ ầ đầ đượcsinh ra n u nó không có trong Q v L Vi c l u các tr ng thái ã phát tri n v ki m traế à ệ ư ạ đ ể à ểxem m t tr ng thái có ph i l n u ộ ạ ả ầ đầ được sinh ra không òi h i r t nhi u không gian vđ ỏ ấ ề à
th i gian Chúng ta có th c i t t p Q b i b ng b m (xem [ ]).ờ ể à đặ ậ ở ả ă
1.6.4 Tìm ki m sâu l p ế ặ
Nh chúng ta ã nh n xét, n u cây tìm ki m ch a nhánh vô h n, khi s d ng tìmư đ ậ ế ế ứ ạ ử ụ
ki m theo sâu, ta có th m c k t nhánh ó v không tìm ra nghi m kh c ph cế độ ể ắ ẹ ở đ à ệ Để ắ ụ
ho n c nh ó, ta tìm ki m theo sâu ch t i m c d n o ó; n u không tìm ra nghi m,à ả đ ế độ ỉ ớ ứ à đ ế ệ
ta t ng sâu lên d+1 v l i tìm ki m theo sâu t i m c d+1 Quá trình trên ă độ à ạ ế độ ớ ứ được
l p l i v i d l n l t l 1, 2, d n m t sâu max n o ó Nh v y, thu t toán tìmặ ạ ớ ầ ượ à ế ộ độ à đ ư ậ ậ
ki m sâu l p (iterative deepening search) s s d ng th t c tìm ki m sâu h n chế ặ ẽ ử ụ ủ ụ ế ạ ế(depth_limited search) nh th t c con ó l th t c tìm ki m theo sâu, nh ng chư ủ ụ Đ à ủ ụ ế độ ư ỉ
i t i sâu d n o ó r i quay lên
K thu t tìm ki m sâu l p k t h p ỹ ậ ế ặ ế ợ được các u i m c a tìm ki m theo b r ngư đ ể ủ ế ề ộ
v tìm ki m theo sâu Chúng ta có m t s nh n xét sau:à ế độ ộ ố ậ
• C ng nh tìm ki m theo b r ng, tìm ki m sâu l p luôn luôn tìm ra nghi mũ ư ế ề ộ ế ặ ệ(n u b i toán có nghi m), mi n l ta ch n sâu mã l n.ế à ệ ễ à ọ độ đủ ớ
Trang 12• Tìm ki m sâu l p ch c n không gian nh nh tìm ki m theo sâu.ế ặ ỉ ầ ớ ư ế độ
• Trong tìm ki m sâu l p, ta ph i phát tri n l p l i nhi u l n cùng m t tr ng thái.ế ặ ả ể ặ ạ ề ầ ộ ạ
i u ó l m cho ta có c m giác r ng, tìm ki m sâu l p lãng phí nhi u th i gian Th c
Do ó th i gian tìm ki m sâu l p l O(bđ ờ ế ặ à d)
Tóm l i, tìm ki m sâu l p có ph c t p th i gian l O(bạ ế ặ độ ứ ạ ờ à d) (nh tìm ki m theoư ế
b r ng), v có ph c t p không gian l O(bi u di n) (nh tìm ki m theo sâu) Nóiề ộ à độ ứ ạ à ể ễ ư ế độchung, chúng ta nên áp d ng tìm ki m sâu l p cho các v n có không gian tr ng tháiụ ế ặ ấ đề ạ
l n v sâu c a nghi m không bi t tr c.ớ à độ ủ ệ ế ướ
1.7 Quy v n v các v n con Tìm ki m trên th v /ho c ấ đề ề ấ đề ế đồ ị à ặ
1.7.1 Quy v n v các v n con: ấ đề ề ấ đề
Trong m c 1.1, chúng ta ã nghiên c u vi c bi u di n v n thông qua các tr ngụ đ ứ ệ ể ễ ấ đề ạthái v các toán t Khi ó vi c tìm nghi m c a v n à ử đ ệ ệ ủ ấ đề được quy v vi c tìm ề ệ đườngtrong không gian tr ng thái Trong m c n y chúng ta s nghiên c u m t ph ng phápạ ụ à ẽ ứ ộ ươ
lu n khác gi i quy t v n , d a trên vi c quy v n v các v n con Quy v n ậ để ả ế ấ đề ự ệ ấ đề ề ấ đề ấ đề
v các v n con (còn g i l rút g n v n ) l m t ph ng pháp ề ấ đề ọ à ọ ấ đề à ộ ươ đượ ử ục s d ng r ng rãiộ
nh t gi i quy t các v n Trong i s ng h ng ng y, c ng nh trong khoa h c kấ để ả ế ấ đề đờ ố à à ũ ư ọ ỹthu t, m i khi g p m t v n c n gi i quy t, ta v n th ng c g ng tìm cách a nó vậ ỗ ặ ộ ấ đề ầ ả ế ẫ ườ ố ắ đư ềcác v n n gi n h n Quá trình rút g n v n s ấ đề đơ ả ơ ọ ấ đề ẽ đượ ế ục ti p t c cho t i khi ta d n t iớ ẫ ớcác v n con có th gi i quy t ấ đề ể ả ế đượ ễ àc d d ng Sau ây chúng ta xét m t s v n đ ộ ố ấ đề
V n đ tính tích phân b t đ nh ấ ề ấ ị
Gi s ta c n tính m t tích phân b t nh, ch ng h n ả ử ầ ộ ấ đị ẳ ạ ∫ (xex + x3) dx Quá trìnhchúng ta v n th ng l m tính tích phân b t nh l nh sau S d ng các quy t cẫ ườ à để ấ đị à ư ử ụ ắtính tích phân (quy t c tính tích phân c a m t t ng, quy t c tính tích phân t ngắ ủ ộ ổ ắ ừ
ph n ), s d ng các phép bi n i bi n s , các phép bi n i các h m (ch ng h n, cácầ ử ụ ế đổ ế ố ế đổ à ẳ ạphép bi n i l ng giác), a tích phân c n tính v tích phân c a các h m s sế đổ ượ để đư ầ ề ủ à ố ơ
c p m chúng ta ã bi t cách tính Ch ng h n, i v i tích phân ấ à đ ế ẳ ạ đố ớ ∫ (xex + x3) dx, áp
d ng quy t c tích phân c a t ng ta a v hai tích phân ụ ắ ủ ổ đư ề ∫ xexdx v à ∫ x3dx áp d ngụquy t c tích phân t ng ph n ta a tích phân ắ ừ ầ đư ∫ xexdx v tích phân ề ∫ exdx Quá trìnhtrên có th bi u di n b i th trong hình 1.5 ể ể ễ ở đồ ị
Các tích phân ∫ exdx v à∫ x3dx l các tích phân c b n ã có trong b ng tíchà ơ ả đ ảphân K t h p các k t qu c a các tích phân c b n, ta nh n ế ợ ế ả ủ ơ ả ậ được k t qu c a tíchế ả ủphân ã cho.đ
Trang 13Chúng ta có th bi u di n vi c quy m t v n v các v n con c b i các tr ngể ể ễ ệ ộ ấ đề ề ấ đề ơ ở ạthái v các toán t à ử ở ây, b i toán c n gi i l tr ng thái ban u M i cách quy b iđ à ầ ả à ạ đầ ỗ àtoán v các b i toán con ề à được bi u di n b i m t toán t , toán t Aể ễ ở ộ ử ử →B, C bi u di n vi cể ễ ệquy b i toán A v hai b i toán B v C Ch ng h n, i v i b i toán tính tích phân b tà ề à à ẳ ạ đố ớ à ấ
nh, ta có th xác nh các toán t d ng:
∫ (f1 + f2) dx →∫ f1 dx, ∫ f2 dx và ∫ u dv →∫ v du
Các tr ng thái k t thúc l các b i toán s c p (các b i toán ã bi t cách gi i).ạ ế à à ơ ấ à đ ế ả
Ch ng h n, trong b i toán tính tích phân, các tích phân c b n l các tr ng thái k tẳ ạ à ơ ả à ạ ếthúc M t i u c n l u ý l , trong không gian tr ng thái bi u di n vi c quy v n vộ đ ề ầ ư à ạ ể ễ ệ ấ đề ềcác v n con, các toán t có th l a tr , nó bi n i m t tr ng thái th nh nhi u tr ngấ đề ử ể à đ ị ế đổ ộ ạ à ề ạthái khác
V n đ tìm đ ng đi trên b n đ giao thông ấ ề ườ ả ồ
B i toán n y ã à à đ được phát tri n nh b i toán tìm ể ư à đườ đng i trong không gian tr ngạthái (xem 1.1), trong ó m i tr ng thái ng v i m t th nh ph , m i toán t ng v i m tđ ỗ ạ ứ ớ ộ à ố ỗ ử ứ ớ ộcon đường n i, n i th nh ph n y v i th nh ph khác Bây gi ta a ra m t cách bi uố ố à ố à ớ à ố ờ đư ộ ể
di n khác d a trên vi c quy v n v các v n con Gi s ta có b n giao thôngễ ự ệ ấ đề ề ấ đề ả ử ả đồtrong m t vùng lãnh th (xem hình 1.6) Gi s ta c n tìm ộ ổ ả ử ầ đườ đ ừ àng i t th nh ph A t iố ớ
th nh ph B Có con sông ch y qua hai th nh ph E v G v có c u qua sông m ià ố ả à ố à à ầ ở ỗ
th nh ph ó M i à ố đ ọ đườ đ ừ đếng i t A n B ch có th qua E ho c G Nh v y b i toán tìmỉ ể ặ ư ậ à
ng i t A n B c quy v :
1) B i toán tìm à đườ đ ừ đếng i t A n B qua E (ho c)ặ
2) B i toán tìm à đườ đ ừ đếng i t A n b qua G
M i m t trong hai b i toán trên l i có th phân nh nh sauỗ ộ à ạ ể ỏ ư
1) B i toán tìm à đườ đ ừ đếng i t A n B qua E được quy v :ề
1.1 Tìm đườ đ ừ đếng i t A n E (v )à1.2 Tìm đườ đ ừ đếng i t E n B
2) B i toán tìm à đườ đ ừ đếng i t A n B qua G được quy v :ề
2.1 Tìm đườ đ ừ đếng i t A n G (v )à2.2 Tìm đườ đ ừ đếng i t G n B
Trang 14Quá trình rút g n v n ọ ấ đề nh trên có th bi u di n d i d ng ư ể ể ễ ướ ạ đồ ị đồ ị th ( th
v /ho c) trong hình 1.7 à ặ ởđây m i b i toán tìm ỗ à đường i t m t th nh ph t i m tđ ừ ộ à ố ớ ộ
th nh ph khác ng v i m t tr ng thái Các tr ng thái k t thúc l các tr ng thái ng v ià ố ứ ớ ộ ạ ạ ế à ạ ứ ớcác b i toán tìm à đườ đng i, ch ng h n t A n C, ho c t D n E, b i vì ã có ẳ ạ ừ đế ặ ừ đế ở đ đường
n i A v i C, n i D v i E ố ớ ố ớ
1.7.2 Đồ ị à ặ th v /ho c
Không gian tr ng thái mô t vi c quy v n v các v n con có th bi u di nạ ả ệ ấ đề ề ấ đề ể ể ễ
d i d ng th nh h ng c bi t ướ ạ đồ ị đị ướ đặ ệ đượ ọ à đồ ị à ặc g i l th v /ho c Đồ ị à đượ th n y c xây
d ng nh sau:ự ư
M i b i toán ng v i m t nh c a th N u có m t toán t quy m t b i toán vỗ à ứ ớ ộ đỉ ủ đồ ị ế ộ ử ộ à ề
m t b i toán khác, ch ng h n R : a ộ à ẳ ạ →b, thì trong th s có cung gán nhãn i t nhđồ ị ẽ đ ừ đỉ
a t i nh b i v i m i toán t quy m t b i toán v m t s b i toán con, ch ng h n R :ớ đỉ Đố ớ ỗ ử ộ à ề ộ ố à ẳ ạ
a →b, c, d ta a v o m t nh m i ađư à ộ đỉ ớ 1, nh n y bi u di n t p các b i toán con {b, c, d}đỉ à ể ễ ậ à
v toán t R : a à ử →b, c, d được bi u di n b i th hình 1.8.ể ễ ở đồ ị
Ví dụ: Gi s chúng ta có không gian tr ng thái sau:ả ử ạ
• Tr ng thái ban u (b i toán c n gi i) l a.ạ đầ à ầ ả à
• T p các toán t quy g m:ậ ử ồ
R1 : a →d, e, fR2 : a →d, kR3 : a →g, h
Trang 15R4 : d →b, cR5 : f →iR6 : f →c, jR7 : k →e, lR8 : k →h
Trang 16Khi ã có các toán t rút g n v n , thì b ng cách áp d ng liên ti p các toán t ,đ ử ọ ấ đề ằ ụ ế ử
ta có th a b i toán c n gi i v m t t p các b i toán con Ch ng h n, trong ví d trênể đư à ầ ả ề ộ ậ à ẳ ạ ụ
n u ta áp d ng các toán t Rế ụ ử 1, R4, R6, ta s quy b i toán a v t p các b i toán con {b, c,ẽ à ề ậ à
e, f}, t t c các b i toán con n y u l s c p ấ ả à à đề à ơ ấ T các toán t Rừ ử 1, R4 v Rà 6 ta xây d ngự
c m t cây trong hình 1.11a, cây n y c g i l cây nghi m Cây nghi m c
Các nh đỉ không gi i ả đượ cđược xác nh quy nh sau:đị đệ ư
• Các nh không ph i l nh k t thúc v không có nh k , l các nh đỉ ả à đỉ ế à đỉ ề à đỉ không
gi i ả đượ c
• N u u không ph i l nh k t thúc v v i m i toán t R áp d ng ế ả à đỉ ế à ớ ọ ử ụ đượ ạc t i u uđề
có m t nh v k u theo R không gi i ộ đỉ ề ả được, thì u không gi i ả đượ c
Ta có nh n xét r ng, n u b i toán a ậ ằ ế à gi i ả đượ thì s có m t cây nghi m g c a, v c ẽ ộ ệ ố à
ng c l i n u có m t cây nghi m g c a thì a ượ ạ ế ộ ệ ố gi i ả đượ Hi n nhiên l , m t b i toán c ể à ộ à
gi i ả được có th có nhi u cây nghi m, m i cây nghi m bi u di n m t cách gi i b i toánể ề ệ ỗ ệ ể ễ ộ ả à
ó Ch ng h n trong ví d ã nêu, b i toán a có hai cây nghi m trong hình 1.11
Th t gi i các b i toán con trong m t cây nghi m l nh sau B i toán ng v iứ ự ả à ộ ệ à ư à ứ ớ
nh u ch c gi i sau khi t t c các b i toán ng v i các nh con c a u ã c gi i
Ch ng h n, v i cây nghi m trong hình 1.11a, th t gi i các b i toán có th l b, c, d, j,ẳ ạ ớ ệ ứ ự ả à ể à
f, e, a ta có th s d ng th t c s p x p topo (xem [ ]) s p x p th t các b i toánể ử ụ ủ ụ ắ ế để ắ ế ứ ự àtrong m t cây nghi m ộ ệ Đương nhiên ta c ng có th gi i quy t ng th i các b i toánũ ể ả ế đồ ờ àcon cùng m t m c trong cây nghi m.ở ộ ứ ệ
Trang 17V n c a chúng ta bây gi l , tìm ki m trên th v /ho c xác nh ấ đề ủ ờ à ế đồ ị à ặ để đị được
nh ng v i b i toán ban u l gi i c hay không gi i c, v n u nó gi i c thì
xây d ng m t cây nghi m cho nó.ự ộ ệ
1.7.3 Tìm ki m trên th v /ho c ế đồ ị à ặ
Ta s s d ng k thu t tìm ki m theo sâu trên th v /ho c ánh d u cácẽ ử ụ ỹ ậ ế độ đồ ị à ặ để đ ấ
nh Các nh s c ánh d u gi i c ho c không gi i c theo nh ngh a
quy v nh gi i ề đỉ ả đượ àc v không gi i ả được Xu t phát t nh ng v i b i toán ban u,ấ ừ đỉ ứ ớ à đầ
i xu ng theo sâu, n u g p nh u l nh k t thúc thì nó c ánh d u gi i c
N u g p nh u không ph i l nh k t thúc v t u không i ti p ế ặ đỉ ả à đỉ ế à ừ đ ế được, thì u đượ đc ánh
d u không gi i ấ ả được Khi i t i nh u, thì t u ta l n l t i xu ng các nh v k u theođ ớ đỉ ừ ầ ượ đ ố đỉ ề
m t toán t R n o ó N u ánh d u ộ ử à đ ế đ ấ được m t nh v không gi i ộ đỉ ả được thì không c n iầ đ
ti p xu ng các nh v còn l i Ti p t c i xu ng các nh k u theo m t toán t khác.ế ố đỉ ạ ế ụ đ ố đỉ ề ộ ử
N u t t c các nh k u theo m t toán t n o ó ế ấ ả đỉ ề ộ ử à đ đượ đc ánh d u gi i ấ ả được thì u sẽ
c ánh d u gi i c v quay lên cha c a u Còn n u t u i xu ng các nh k nó
theo m i toán t u g p các nh k ọ ử đề ặ đỉ ề đượ đc ánh d u không gi i ấ ả được, thì u đượ đc ánh
d u không gi i ấ ả đượ àc v quay lên cha c a u.ủ
Ta s bi u di n th t c tìm ki m theo sâu v ánh d u các nh ã trình b yẽ ể ễ ủ ụ ế độ à đ ấ đỉ đ àtrên b i h m quy Solvable(u) H m n y nh n giá tr true n u u gi i ở à đệ à à ậ ị ế ả đượ à ậc v nh n giá
tr ị false n u u không gi i ế ả được Trong h m Solvable(u), ta s s d ng:à ẽ ử ụ
• Bi n Ok V i m i toán t R áp d ng ế ớ ỗ ử ụ đượ ạc t i u, bi n Ok nh n giá tr ế ậ ị true n u t tế ấ
c các nh v k u theo R u gi i ả đỉ ề đề ả được, v Ok nh n giá tr à ậ ị false n u có m t nh v k uế ộ đỉ ềtheo R không gi i ả được
• H m Operator(u) ghi l i toán t áp d ng th nh công t i u, t c l Operator(u) = Rà ạ ử ụ à ạ ứ à
n u m i nh v k u theo R u gi i ế ọ đỉ ề đề ả được
function Solvable(u);
begin
1 if u là nh k t thúcđỉ ế then
{Solvable true ; stop};
2 if u không là nh k t thúc và không có nh kđỉ ế đỉ ề then
{Solvable(u) false; stop};
3 for m i toán t R áp d ng ỗ ử ụ được t i uạ do
b i toán ban u l gi i à đầ à ả được hay không gi i ả được, n u cây tìm ki m không có nhánhế ế
vô h n N u cây tìm ki m có nhánh vô h n thì ch a ch c thu t toán ã d ng, vì có thạ ế ế ạ ư ắ ậ đ ừ ể
Trang 18nó b xa l y khi i xu ng nhánh vô h n Trong tr ng h p n y ta nên s d ng thu t toánị ầ đ ố ạ ườ ợ à ử ụ ậtìm ki m sâu l p (m c 1.3.3).ế ặ ụ
N u b i toán ban u gi i ế à đầ ả được, thì b ng cách s d ng h m Operator ta s xâyằ ử ụ à ẽ
d ng ự được cây nghi m.ệ
Trang 19Ch ươ ng II
-Trong ch ng I, chúng ta ã nghiên c u vi c bi u di n v n trong không gianươ đ ứ ệ ể ễ ấ đề
tr ng thái v các k thu t tìm ki m mù Các k thu t tìm ki m mù r t kém hi u qu vạ à ỹ ậ ế ỹ ậ ế ấ ệ ả àtrong nhi u tr ng h p không th áp d ng ề ườ ợ ể ụ được Trong ch ng n y, chúng ta s nghiênươ à ẽ
c u các ph ng pháp tìm ki m kinh nghi m (tìm ki m heuristic), ó l các ph ngứ ươ ế ệ ế đ à ươpháp s d ng h m ánh giá h ng d n s tìm ki m.ử ụ à đ để ướ ẫ ự ế
H m ánh giá v tìm ki m kinh nghi m: à đ à ế ệ
Trong nhi u v n , ta có th s d ng kinh nghi m, tri th c c a chúng ta v v nề ấ đề ể ử ụ ệ ứ ủ ề ấ ánh giá các tr ng thái c a v n V i m i tr ng thái u, chúng ta s xác nh m t
giá tr s h(u), s n y ánh giá ị ố ố à đ “s g n íchự ầ đ ” c a tr ng thái u H m h(u) ủ ạ à đượ ọ àc g i l
h m ánh giá à đ Chúng ta s s d ng h m ánh giá h ng d n s tìm ki m Trongẽ ử ụ à đ để ướ ẫ ự ếquá trình tìm ki m, t i m i b c ta s ch n tr ng thái phát tri n l tr ng thái có giáế ạ ỗ ướ ẽ ọ ạ để ể à ạ
tr h m ánh giá nh nh t, tr ng thái n y ị à đ ỏ ấ ạ à được xem l tr ng thái có nhi u h a h n nh tà ạ ề ứ ẹ ấ
h ng t i ích.ướ ớ đ
Các k thu t tìm ki m s d ng h m ánh giá h ng d n s tìm ki m ỹ ậ ế ử ụ à đ để ướ ẫ ự ế đượ ọc g ichung l các k thu t tìm ki m kinh nghi m (heuristic search) Các giai o n c b n à ỹ ậ ế ệ đ ạ ơ ả để
gi i quy t v n b ng tìm ki m kinh nghi m nh sau:ả ế ấ đề ằ ế ệ ư
1 Tìm bi u di n thích h p mô t các tr ng thái v các toán t c a v n ể ễ ợ ả ạ à ử ủ ấ đề
2 Xây d ng h m ánh giá.ự à đ
3 Thi t k chi n l c ch n tr ng thái phát tri n m i b c ế ế ế ượ ọ ạ để ể ở ỗ ướ
H m đánh giáàTrong tìm ki m kinh nghi m, h m ánh giá óng vai trò c c k quan tr ng.ế ệ à đ đ ự ỳ ọChúng ta có xây d ng ự được h m ánh giá cho ta s ánh giá úng các tr ng thái thìà đ ự đ đ ạtìm ki m m i hi u qu N u h m ánh giá không chính xác, nó có th d n ta i ch chế ớ ệ ả ế à đ ể ẫ đ ệ
h ng v do ó tìm ki m kém hi u qu ướ à đ ế ệ ả
H m ánh giá à đ được xây d ng tùy thu c v o v n Sau ây l m t s ví d vự ộ à ấ đề đ à ộ ố ụ ề
h m ánh giá:à đ
• Trong b i toán tìm ki m à ế đường i trên b n giao thông, ta có th l y d iđ ả đồ ể ấ độ à
c a ủ đường chim bay t m t th nh ph t i m t th nh ph ích l m giá tr c a h m ánhừ ộ à ố ớ ộ à ố đ à ị ủ à đgiá
• B i toán 8 s Chúng ta có th a ra hai cách xây d ng h m ánh giá.à ố ể đư ự à đ
H m hà 1: V i m i tr ng thái u thì hớ ỗ ạ 1(u) l s quân không n m úng v trí c a nóà ố ằ đ ị ủtrong tr ng thái ích Ch ng h n tr ng thái ích bên ph i hình 2.1, v u l tr ng tháiạ đ ẳ ạ ạ đ ở ả à à ạ bên trái hình 2.1, thì h
ở 1(u) = 4, vì các quân không úng v trí l 3, 8, 6 v 1.đ ị à à
Trang 20H m hà 2: h2(u) l t ng kho ng cách gi a v trí c a các quân trong tr ng thái u v và ổ ả ữ ị ủ ạ à ịtrí c a nó trong tr ng thái ích ây kho ng cách ủ ạ đ ở đ ả được hi u l s ít nh t các d chể à ố ấ ịchuy n theo h ng ho c c t ể à ặ ộ để đư a m t quân t i v trí c a nó trong tr ng thái ích.ộ ớ ị ủ ạ đ
Ch ng h n v i tr ng thái u v tr ng thái ích nh trong hình 2.1, ta có:ẳ ạ ớ ạ à ạ đ ư
h2(u) = 2 + 3 + 1 + 3 = 9
Vì quân 3 c n ít nh t 2 d ch chuy n, quân 8 c n ít nh t 3 d ch chuy n, quân 6ầ ấ ị ể ầ ấ ị ể
c n ít nh t 1 d ch chuy n v quân 1 c n ít nh t 3 d ch chuy n.ầ ấ ị ể à ầ ấ ị ể
Hai chi n l c tìm ki m kinh nghi m quan tr ng nh t l tìm ki m t t nh t - uế ượ ế ệ ọ ấ à ế ố ấ đầtiên (best-first search) v tìm ki m leo i (hill-climbing search) Có th xác nh cácà ế đồ ể địchi n l c n y nh sau:ế ượ à ư
Tìm ki m t t nh t u tiênế ố ấ đầ = Tìm ki m theo b r ngế ề ộ + H m ánh giáà đTìm ki m leo iế đồ = Tìm ki m theo sâuế độ + H m ánh giáà đChúng ta s l n l t nghiên c u các k thu t tìm ki m n y trong các m c sau.ẽ ầ ượ ứ ỹ ậ ế à ụ
Tìm ki m t t nh t - u tiên: ế ố ấ đầ
Tìm ki m t t nh t - u tiên (best-first search) l tìm ki m theo b r ng ế ố ấ đầ à ế ề ộ được
h ng d n b i h m ánh giá Nh ng nó khác v i tìm ki m theo b r ng ch , trongướ ẫ ở à đ ư ớ ế ề ộ ở ỗtìm ki m theo b r ng ta l n l t phát tri n t t c các nh m c hi n t i sinh ra cácế ề ộ ầ ượ ể ấ ả đỉ ở ứ ệ ạ để
nh m c ti p theo, còn trong tìm ki m t t nh t - u tiên ta ch n nh phát tri n
l nh t t nh t à đỉ ố ấ được xác nh b i h m ánh giá (t c l nh có giá tr h m ánh giá lđị ở à đ ứ à đỉ ị à đ à
nh nh t), nh n y có th m c hi n t i ho c các m c trên.ỏ ấ đỉ à ể ở ứ ệ ạ ặ ở ứ
Trang 21Ví dụ: Xét không gian tr ng thái ạ được bi u di n b i th trong hình 2.2, trongể ễ ở đồ ị
ó tr ng thái ban u l A, tr ng thái k t thúc l B Giá tr c a h m ánh giá l các s
ghi c nh m i nh Quá trình tìm ki m t t nh t - u tiên di n ra nh sau: ạ ỗ đỉ ế ố ấ đầ ễ ư Đầu tiênphát tri n nh A sinh ra các nh k l C, D v E Trong ba nh n y, nh D có giá trể đỉ đỉ ề à à đỉ à đỉ ị
h m ánh giá nh nh t, nó à đ ỏ ấ được ch n phát tri n v sinh ra F, I Trong s các nhọ để ể à ố đỉ
ch a ư được phát tri n C, E, F, I thì nh E có giá tr ánh giá nh nh t, nó ể đỉ ị đ ỏ ấ được ch n ọ đểphát tri n v sinh ra các nh G, K Trong s các nh ch a ể à đỉ ố đỉ ư được phát tri n thì G t tể ố
nh t, phát tri n G sinh ra B, H ấ ể Đế đn ây ta ã t t i tr ng thái k t thúc Cây tìm ki mđ đạ ớ ạ ế ế
t t nh t - u tiên ố ấ đầ được bi u di n trong hình 2.3.ể ễ
Sau ây l th t c tìm ki m t t nh t - u tiên Trong th t c n y, chúng ta sđ à ủ ụ ế ố ấ đầ ủ ụ à ử
d ng danh sách L l u các tr ng thái ch phát tri n, danh sách ụ để ư ạ ờ ể đượ ắc s p theo th tứ ự
t ng d n c a h m ánh giá sao cho tr ng thái có giá tr h m ánh giá nh nh t uă ầ ủ à đ ạ ị à đ ỏ ấ ở đầdanh sách
Tìm ki m leo i: ế đồ
Tìm ki m leo i (hill-climbing search) l tìm ki m theo sâu ế đồ à ế độ đượ ước h ng d nẫ
b i h m ánh giá Song khác v i tìm ki m theo sâu, khi ta phát tri n m t nh u thìở à đ ớ ế độ ể ộ đỉ
b c ti p theo, ta ch n trong s các nh con c a u, nh có nhi u h a h n nh t phátướ ế ọ ố đỉ ủ đỉ ề ứ ẹ ấ đểtri n, nh n y ể đỉ à được xác nh b i h m ánh giá.đị ở à đ
Trang 22Ví dụ: Ta l i xét th không gian tr ng thái trong hình 2.2 Quá trình tìm ki mạ đồ ị ạ ếleo i đồ đượ ế àc ti n h nh nh sau ư Đầu tiên phát tri n nh A sinh ra các nh con C, D, E.ể đỉ đỉTrong các nh n y ch n D phát tri n, v nó sinh ra các nh con B, G Quá trìnhđỉ à ọ để ể à đỉtìm ki m k t thúc Cây tìm ki m leo i ế ế ế đồ được cho trong hình 2.4
Trong th t c tìm ki m leo i ủ ụ ế đồ được trình b y d i ây, ngo i danh sách L l uà ướ đ à ưcác tr ng thái ch ạ ờ được phát tri n, chúng ta s d ng danh sách Lể ử ụ 1 l u gi t m th iđể ư ữ ạ ờcác tr ng thái k tr ng thái u, khi ta phát tri n u Danh sách Lạ ề ạ ể 1 đượ ắ ếc s p x p theo th tứ ự
t ng d n c a h m ánh giá, r i ă ầ ủ à đ ồ được chuy n v o danh sách L sao tr ng thái t t nh t kể à ạ ố ấ ề
{thông báo thành công; stop};
2.3 for m i tr ng thái v k u do t v vào Lỗ ạ ề đặ 1;
ch ch phát tri n k nh t t nh t (các nh n y ế ỉ ể đỉ ố ấ đỉ à được xác nh b i h m ánh giá) Do óđị ở à đ đtrong tìm ki m beam, b t k m c n o c ng ch có nhi u nh t k nh ế ở ấ ỳ ứ à ũ ỉ ề ấ đỉ được phát tri n,ểtrong khi tìm ki m theo b r ng, s nh c n phát tri n m c d l bế ề ộ ố đỉ ầ ể ở ứ à d (b l nhân tà ốnhánh)
Trang 23Ví dụ: Chúng ta l i xét th không gian tr ng thái trong hình 2.2 Ch n k = 2.ạ đồ ị ạ ọKhi ó cây tìm ki m beam đ ế được cho nh hình 2.5 Các nh ư đỉ đượ ạc g ch d i l các nhướ à đỉ
c ch n phát tri n m i m c
Trang 24Ch ươ ng III
-V n tìm ki m t i u, m t cách t ng quát, có th phát bi u nh sau M i iấ đề ế ố ư ộ ổ ể ể ư ỗ đố
t ng x trong không gian tìm ki m ượ ế đượ ắ ớc g n v i m t s o giá tr c a i t ng ó f(x),ộ ố đ ị ủ đố ượ đ
m c tiêu c a ta l tìm i t ng có giá tr f(x) l n nh t (ho c nh nh t) trong khôngụ ủ à đố ượ ị ớ ấ ặ ỏ ấgian tìm ki m H m f(x) ế à được g i l h m m c tiêu Trong ch ng n y chúng ta sọ à à ụ ươ à ẽnghiên c u các thu t toán tìm ki m sau:ứ ậ ế
• Các k thu t tìm ỹ ậ đườ đng i ng n nh t trong không gian tr ng thái: Thu t toán A*,ắ ấ ạ ậthu t toán nhánh_v _c n.ậ à ậ
• Các k thu t tìm ki m i t ng t t nh t: Tìm ki m leo i, tìm ki m gradient,ỹ ậ ế đố ượ ố ấ ế đồ ếtìm ki m mô ph ng luy n kim.ế ỏ ệ
• Tìm ki m b t ch c s ti n hóa: thu t toán di truy n.ế ắ ướ ự ế ậ ề
1.8 Tìm đườ đ ng i ng n nh t ắ ấ
Trong các ch ng tr c chúng ta ã nghiên c u v n ươ ướ đ ứ ấ đề tìm ki m ế đường i tđ ừ
tr ng thái ban u t i tr ng thái k t thúc trong không gian tr ng thái Trong m c n y, taạ đầ ớ ạ ế ạ ụ à
gi s r ng, giá ph i tr a tr ng thái a t i tr ng thái b (b i m t toán t n o ó) lả ử ằ ả ả để đư ạ ớ ạ ở ộ ử à đ à
m t s k(a,b) ộ ố ≥ 0, ta s g i s n y l d i cung (a,b) ho c giá tr c a cung (a,b) trongẽ ọ ố à à độ à ặ ị ủ
th không gian tr ng thái d i c a các cung c xác nh tùy thu c v o v n
đườ đ đầ đủ, l à đườ đ ừng i t u0 t i tr ng thái ích).ớ ạ đ
• h(u) l ánh giá d i àđ độ à đườ đng i ng n nh t t u t i tr ng thái ích.ắ ấ ừ ớ ạ đ
H m h(u) à được g i l ọ à ch p nh n ấ ậ đượ (ho c ánh giá th p c ặ đ ấ ) n u v i m i tr ngế ớ ọ ạthái u, h(u) ≤ d i độ à đườ đng i ng n nh t th c t t u t i tr ng thái ích Ch ng h n trongắ ấ ự ế ừ ớ ạ đ ẳ ạ
Trang 25Ta có th s d ng k thu t tìm ki m leo i v i h m ánh giá h(u) T t nhiênể ử ụ ỹ ậ ế đồ ớ à đ ấ
ph ng pháp n y ch cho phép ta tìm ươ à ỉ đượ đườc ng i t ng i t t, ch a ch c ã lđ ươ đố ố ư ắ đ à
ng i t i u
đườ đ ố ư
Ta c ng có th s d ng k thu t tìm ki m t t nh t u tiên v i h m ánh giá g(u).ũ ể ử ụ ỹ ậ ế ố ấ đầ ớ à đ
Ph ng pháp n y s tìm ra ươ à ẽ đườ đng i ng n nh t, tuy nhiên nó có th kém hi u qu ắ ấ ể ệ ả
t ng hi u qu tìm ki m, ta s d ng h m ánh giá m i :
f(u) = g(u) + h(u)
T c l , f(u) l ánh giá d i ứ à à đ độ à đường i ng n nh t qua u t tr ng thái ban u t iđ ắ ấ ừ ạ đầ ớ
Nh v y nh t t nh t l D (vì f(D) = 13 l nh nh t) Phát tri n D, ta nh n ư ậ đỉ ố ấ à à ỏ ấ ể ậ đượccác nh con H v E Ta ánh giá H v E (m i): đỉ à đ à ớ
g(H) = g(D) + Độ à d i cung (D, H) = 7 + 8 = 15, f(H) = 15 + 10 = 25.
ng i t i E qua D có d i:
g(E) = g(D) + Độ à d i cung (D, E) = 7 + 4 = 11.
Trang 26V y nh E m i có ánh giá l f(E) = g(E) + h(E) = 11 + 8 = 19 Trong s các nhậ đỉ ớ đ à ố đỉcho phát tri n, thì nh E v i ánh giá f(E) = 19 l nh t t nh t Phát tri n nh n y, taể đỉ ớ đ à đỉ ố ấ ể đỉ à
nh n ậ được các nh con c a nó l K v I Chúng ta ti p t c quá trình trên cho t i khiđỉ ủ à à ế ụ ớ
Chúng ta a ra m t s nh n xét v thu t toán A*.đư ộ ố ậ ề ậ
• Ng i ta ch ng minh ườ ứ đượ ằc r ng, n u h m ánh giá h(u) l ánh giá th p nh tế à đ à đ ấ ấ(tr ng h p c bi t, h(u) = 0 v i m i tr ng thái u) thì thu t toán A* l thu t toán ườ ợ đặ ệ ớ ọ ạ ậ à ậ t i ố u
ư , t c l nghi m m nó tìm ra l nghi m t i u Ngo i ra, n u d i c a các cungứ à ệ à à ệ ố ư à ế độ à ủkhông nh h n m t s d ng ỏ ơ ộ ố ươ δ n o ó thì thu t toán A* l thu t toán à đ ậ à ậ đầ đủ theo y
ngh a r ng, nó luôn d ng v tìm ra nghi m ĩ ằ ừ à ệ
Chúng ta ch ng minh tính t i u c a thu t toán A*.ứ ố ư ủ ậ
Trang 27Gi s thu t toán d ng l i nh k t thúc G v i d i ả ử ậ ừ ạ ở đỉ ế ớ độ à đườ đ ừ ạng i t tr ng thái ban
u u
đầ 0 t i G l g(G) Vì G l nh k t thúc, ta có h(G) = 0 v f(G) = g(G) + h(G) =ớ à à đỉ ế àg(G) Gi s nghi m t i u l ả ử ệ ố ư à đường i t uđ ừ 0 t i nh k t thúc Gớ đỉ ế 1 v i ớ độ à d i l Gi sả ử
n, nên f(G) ≤ f(n), do ó, g(G) đ ≤ l Nh v y, ta ã ch ng minh ư ậ đ ứ đượ ằc r ng d i c ađộ à ủ
ng i m thu t toán tìm ra g(G) không d i h n d i l c a ng i t i u V y nó
xu ng cho t i khi g p tr ng thái v l ích, ho c g p tr ng thái v không có nh k , ho cố ớ ặ ạ à đ ặ ặ ạ đỉ ề ặ
g p tr ng thái v m f(v) l n h n d i ặ ạ à ớ ơ độ à đườ đ ố ư ạng i t i u t m th i, t c l ờ ứ à đườ đ đầ đủng i y
ng n nh t trong s các ắ ấ ố đường i y m ta ã tìm ra Trong các tr ng h p n y, tađ đầ đủ à đ ườ ợ àkhông phát tri n nh v n a, hay nói cách khác, ta c t i các nhánh cây xu t phát t v,ể đỉ ữ ấ đ ấ ừ
v quay lên cha c a v ti p t c i xu ng tr ng thái t t nh t trong các tr ng thái cònà ủ đề ế ụ đ ố ạ ố ấ ạ
l i ch a ạ ư được phát tri n.ể
Ví dụ: Chúng ta l i xét không gian tr ng thái trong hình 3.1 Phát tri n nh A,ạ ạ ể đỉ
ta nh n ậ được các nh con C, D, E v F, f(C) = 24, f(D) = 13, f(E) = 21, f(F) = 27 Trongđỉ à
s n y D l t t nh t, phát tri n D, sinh ra các nh con H v E, f(H) = 25, f(E) = 19 iố à à ố ấ ể đỉ à Đ
xu ng phát tri n E, sinh ra các nh con l K v I, f(K) = 17, f(I) = 18 i xu ng phátố ể đỉ à à Đ ốtri n K sinh ra nh B v i f(B) = g(B) = 21 i xu ng B, vì B l nh ích, v y ta tìmể đỉ ớ Đ ố à đỉ đ ậ
c ng i t i u t m th i v i d i 21 T B quay lên K, r i t K quay lên cha nó
l E T E i xu ng J, f(J) = 18 nh h n d i à ừ đ ố ỏ ơ độ à đường i t m th i (l 21) Phát tri n Iđ ạ ờ à ểsinh ra các con K v B, f(K) = 25, f(B) = g(B) = 19 i xu ng nh B, vì nh B l íchà Đ ố đỉ đỉ à đ
ta tìm đượ đườc ng i y m i v i d i l 19 nh h n d i đ đầ đủ ớ ớ độ à à ỏ ơ độ à đường i t i u t mđ ố ư ạ
th i c (21) V y d i ờ ũ ậ độ à đườ đ ố ư ạng i t i u t m th i bây gi l 19 Bây gi t B ta l i quayờ ờ à ờ ừ ạlên các nh còn l i ch a đỉ ạ ư được phát tri n Song các nh n y u có giá tr h m ánh giáể đỉ à đề ị à đ
Trang 28l n h n 19, do ó không có nh n o ớ ơ đ đỉ à được phát tri n n a Nh v y, ta tìm ể ữ ư ậ đượ đườ đc ng i
t i u v i d i 19 Cây tìm ki m ố ư ớ độ à ế được bi u di n trong hình 3.4.ể ễ
Thu t toán nhánh_v _c n s ậ à ậ ẽ được bi u di n b i th t c Branch_and_Bound.ể ễ ở ủ ụTrong th t c n y, bi n cost ủ ụ à ế được dùng l u d i để ư độ à đườ đng i ng n nh t Giá tr ban uắ ấ ị đầ
c a cost l s l n, ho c d i c a m t ủ à ố đủ ớ ặ độ à ủ ộ đườ đ đầ đủ à đng i y m ta ã bi tế
procedure Branch_and_Bound;
begin
1 Kh i t o danh sách L ch ch a tr ng thái ban uở ạ ỉ ứ ạ đầ ;
Gán giá tr ban u cho costị đầ ;
2 loop do
2.1 if L r ngỗ then stop;
2.2 Lo i tr ng thái u u danh sách Lạ ạ ở đầ ;
2.3 if u là tr ng thái k t thúcạ ế then
if g(u) ≤ y then {y ← g(y); Quay l i 2.1ạ };
2.4 if f(u) > y then Quay l i 2.1ạ ;
Ng i ta ch ng minh ườ ứ đượ ằc r ng, thu t toán nhánh_v _c n c ng l thu t toán yậ à ậ ũ à ậ đầ
v t i u n u h m ánh giá h(u) l ánh giá th p v có d i các cung không nh
Trang 29tr s cost(x), s n y ị ố ố à đượ ọ àc g i l giá tr c a x Chúng ta c n tìm m t i t ng m t i óị ủ ầ ộ đố ượ à ạ đ
h m giá tr l n nh t, ta g i i t ng ó l à ị ớ ấ ọ đố ượ đ àđố ượ i t ng t t nh t ố ấ Gi s không gian tìmả ử
ki m có c u trúc cho phép ta xác nh ế ấ đị được khái ni m lân c n c a m i i t ng Ch ngệ ậ ủ ỗ đố ượ ẳ
h n, U l không gian tr ng thái thì lân c n c a tr ng thái u g m t t c các tr ng thái vạ à ạ ậ ủ ạ ồ ấ ả ạ
k u; n u U l không gian các vect th c n-chi u thì lân c n c a vect x = (xề ế à ơ ự ề ậ ủ ơ 1, x2, xn)
g m t t c các vect g n x theo kho ng cách c lit thông th ng.ồ ấ ả ơ ở ầ ả Ơ ơ ườ
Trong m c n y, ta s xét k thu t tìm ki m leo i tìm i t ng t t nh t Sauụ à ẽ ỹ ậ ế đồ để đố ượ ố ấ
ó ta s xét k thu t tìm ki m gradient (gradient search) ó l k thu t leo i áp
d ng cho không gian tìm ki m l không gian các vect th c n-chi u v h m giá l lụ ế à ơ ự ề à à à à
h m kh vi liên t c Cu i cùng ta s nghiên c u k thu t tìm ki m mô ph ng luy nà ả ụ ố ẽ ứ ỹ ậ ế ỏ ệkim( simulated annealing)
1.9.1 Tìm ki m leo i ế đồ
K thu t tìm ki m leo i tìm ki m i t ng t t nh t ho n to n gi ng nh kỹ ậ ế đồ để ế đố ượ ố ấ à à ố ư ỹthu t tìm ki m leo i tìm tr ng thái k t thúc ã xét trong m c 2.3 Ch khác lậ ế đồ để ạ ế đ ụ ỉ àtrong thu t toán leo i m c 2.3, t m t tr ng thái ta "leo lên" tr ng thái k t t nh tậ đồ ở ụ ừ ộ ạ ạ ề ố ấ(được xác nh b i h m giá), ti p t c cho t i khi t t i tr ng thái ích; n u ch a tđị ở à ế ụ ớ đạ ớ ạ đ ế ư đạ
t i tr ng thái ích m không leo lên ớ ạ đ à được n a, thì ta ti p t c "t t xu ng" tr ng tháiữ ế ụ ụ ố ạ
tr c nó, r i l i leo lên tr ng thái t t nh t còn l i Còn ây, t m t nh u ta ch leo lênướ ồ ạ ạ ố ấ ạ ở đ ừ ộ đỉ ỉ
nh t t nh t v ( c xác nh b i h m giá cost) trong lân c n u n u nh n y "cao h n"
nh u, t c l cost(v) > cost(u) Quá trình tìm ki m s d ng l i ngay khi ta không leo
lên nh cao h n đỉ ơ đượ ữc n a
Trong th t c leo i d i ây, bi n u l u nh hi n th i, bi n v l u nh t t nh tủ ụ đồ ướ đ ế ư đỉ ệ ờ ế ư đỉ ố ấ(cost(v) nh nh t) trong các nh lân c n u Khi thu t toán d ng, bi n u s l u trongỏ ấ đỉ ở ậ ậ ừ ế ẽ ư
i t ng tìm c
procedure Hill_Climbing;
begin
1 u ← m t i t ng ban u nào óộ đố ượ đầ đ ;
2 if cost(v) > cost(u) then u ← v else stop;
end;
T i u đ a ph ng v t i u to n c c ố ư ị ươ à ố ư à ụ
Rõ r ng l , khi thu t toán leo i d ng l i t i i t ng u*, thì giá c a nó cost(u*)à à ậ đồ ừ ạ ạ đố ươ ủ
l n h n giá c a t t c các i t ng n m trong lân c n c a t t c các i t ng trênớ ơ ủ ấ ả đố ượ ằ ậ ủ ấ ả đố ượ
ng i t i t ng ban u t i tr ng thái u* Do ó nghi m u* m thu t toán leo i
tìm đượ à t i u a ph ngc l ố ư đị ươ C n nh n m nh r ng không có gì m b o nghi m óầ ấ ạ ằ đả ả ệ đ
l à t i u to n c c ố ư à ụ theo ngh a l cost(u*) l l n nh t trên to n b không gian tìm ki m ĩ à à ớ ấ à ộ ế
nh n c nghi m t t h n b ng thu t toán leo i, ta có th áp d ng l p l i
K t qu c a thu t toán leo i ph thu c r t nhi u v o hình dáng c a ế ả ủ ậ đồ ụ ộ ấ ề à ủ “m t congặ ”
c a h m giá N u m t cong ch có m t s ít c c i a ph ng, thì k thu t leo i sủ à ế ặ ỉ ộ ố ự đạ đị ươ ỹ ậ đồ ẽtìm ra r t nhanh c c i to n c c Song có nh ng v n m m t cong c a h m giá t aấ ự đạ à ụ ữ ấ đề à ặ ủ à ự
nh lông nhím v y, khi ó s d ng k thu t leo i òi h i r t nhi u th i gian.ư ậ đ ử ụ ỹ ậ đồ đ ỏ ấ ề ờ
1.9.2 Tìm ki m gradient ế
Tìm ki m gradient l k thu t tìm ki m leo i tìm giá tr l n nh t (ho c nhế à ỹ ậ ế đồ để ị ớ ấ ặ ỏ
nh t) c a h m kh vi liên t c f(x) trong không gian các vect th c n-chi u Nh ta ãấ ủ à ả ụ ơ ự ề ư đ
bi t, trong lân c n nh c a i m x = (xế ậ đủ ỏ ủ đ ể 1, ,xn), thì h m f t ng nhanh nh t theo h ngà ă ấ ướ
Trang 30Do ó t t ng c a tìm ki m gradient l t m t i m ta i t i i m lân c n nóđ ư ưở ủ ế à ừ ộ đ ể đ ớ đ ể ở ậtheo h ng c a vect gradient.ướ ủ ơ
Trong th t c trên, ủ ụ α l h ng s d ng nh nh t xác nh t l c a các b c, còn à ằ ố ươ ỏ ấ đị ỉ ệ ủ ướ ε là
h ng s d ng nh xác nh tiêu chu n d ng B ng cách l y các b c ằ ố ươ ỏ đị ẩ ừ ằ ấ ướ đủ nh theoỏ
h ng c a vect gradient chúng ta s tìm ướ ủ ơ ẽ đượ đ ểc i m c c i a ph ng, ó l i m mự đạ đị ươ đ à đ ể à
t i ó ạ đ ∇f = 0, ho c tìm ặ đượ đ ểc i m r t g n vói c c i a ph ng.ấ ầ ự đạ đị ươ
1.9.3 Tìm ki m mô ph ng luy n kim: ế ỏ ệ
Nh ã nh n m nh trên, tìm ki m leo i không m b o cho ta tìm ư đ ấ ạ ở ế đồ đả ả đượcnghi m t i u to n c c ệ ố ư à ụ Để cho nghi m tìm ệ đượ ầ ớ ố ưc g n v i t i u to n c c, ta áp d ng kà ụ ụ ỹthu t leo i l p xu t phát t các i m ậ đồ ặ ấ ừ đ ể đượ ực l a ch n ng u nhiên Bây gi thay cho vi cọ ẫ ờ ệluôn luôn “leo lên iđồ ” xu t phát t các i m khác nhau, ta th c hi n m t s b c ấ ừ đ ể ự ệ ộ ố ướ “t tụ
xu ngố ” nh m thoát ra kh i các i m c c i a ph ng ó chính l t t ng c a kằ ỏ đ ể ự đạ đị ươ Đ à ư ưở ủ ỹthu t tìm ki m mô ph ng luy n kim.ậ ế ỏ ệ
Trong tìm ki m leo i, khi m t tr ng thái u ta luôn luôn i t i tr ng thái t tế đồ ở ộ ạ đ ớ ạ ố
nh t trong lân c n nó Còn bây gi , trong tìm ki m mô ph ng luy n kim, ta ch n ng uấ ậ ờ ế ỏ ệ ọ ẫnhiên m t tr ng thái v trong lân c n u N u tr ng thái v ộ ạ ậ ế ạ được ch n t t h n u (cost(v) >ọ ố ơcost(u)) thì ta i t i v, còn n u không ta ch i t i v v i m t xác su t n o ó Xác su tđ ớ ế ỉ đ ớ ớ ộ ấ à đ ấ
n y gi m theo h m m c a à ả à ũ ủ “ x uđộ ấ ” c a tr ng thái v Xác su t n y còn ph thu c v oủ ạ ấ à ụ ộ àtham s nhi t T Nhi t T c ng cao thì b c i t i tr ng thái x u c ng có kh n ngố ệ độ ệ độ à ướ đ ớ ạ ấ à ả ă
c th c hi n Trong quá trình tìm ki m, tham s nhi t T gi m d n t i không Khi
T g n không, thu t toán ho t ng g n gi ng nh leo i, h u nh nó không th c hi nầ ậ ạ độ ầ ố ư đồ ầ ư ự ệ
b c t t xu ng C th ta xác nh xác su t i t i tr ng thái x u v t u l eướ ụ ố ụ ể đị ấ đ ớ ạ ấ ừ à ∆/T, ây ở đ ∆ =cost(v) - cost(u)
Sau ây l th t c mô ph ng luy n kim.đ à ủ ụ ỏ ệ
v ← tr ng thái ạ được ch n nh u nhiên trong lân c n uọ ẫ ậ ;
if cost(v) > cost(u) then u ← v
else u ← v v i xác su t eớ ấ ∆/T ;