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ể ễ ấ ề ạ
1.2 Các chi n l c tìm ki mế ượ ế
1.3 Các chi n l c tìm ki m mùế ượ ế
1.3.1 Tìm ki m theo b r ngế ề ộ
1.3.2 Tìm ki m theo sâuế độ
1.3.3 Các tr ng thái l pạ ặ
1.3.4 Tìm ki m sâu l pế ặ
1.4 Quy v n v các v n con. Tìm ki m trên th v /ho cấ đề ề ấ đề ế đồ ị à ặ
1.4.1 Quy v n v các v n conấ đề ề ấ đề
1.4.2 th v /ho cĐồ ị à ặ
1.4.3 Tìm ki m trên th v /ho cế đồ ị à ặ
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à đ à ế ệ
2.2 Tìm ki m t t nh t - u tiênế ố ấ đầ
2.3 Tìm ki m leo iế đồ
2.4 Tìm ki m beamế
1.2 Ch ng III - Các chi n l c tìm ki m t i uươ ế ượ ế ố ư
3.1 Tìm ng i ng n nh tđườ đ ắ ấ
3.1.1 Thu t toán A*ậ
3.1.2 Thu t toán tìm ki m Nhánh-v -C nậ ế à ậ
1.2.1 3.2 Tìm i t ng t t nh tđố ượ ố ấ
1.2.1.1 3.2.1 Tìm ki m leo iế đồ
3.2.2 Tìm ki m gradientế
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ầ ứ à ậ ậ
Đinh Mạnh Tường Trang 1
Đinh Mạnh Tường Trang 2
inh M nh T ngĐ ạ ườ
Giáo trình
Trí tu Nhân t oệ ạ
Khoa CNTT - i H c Qu c Gia H N iĐạ ọ ố à ộ
Ph 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đề à ậ ễ ườ ợ à ụ ủ à ộ ứ
(m t dãy các lu t suy di n c áp d ng) c a n công th c m ta c n ch ngộ ậ ễ đượ ụ đểđượ đư đế ứ à ầ ứ
minh.
Trong các l nh v c nghiên c u c a ĩ ự ứ ủ Trí Tu Nhân T oệ ạ , chúng ta th ng xuyênườ
ph i i u v i v n tìm ki m. c bi t trong l p k ho ch v h c máy, tìm ki mả đố đầ ớ ấ đề ế Đặ ệ ậ ế ạ à ọ ế
óng vai trò quan tr ng.đ ọ
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ô.ơ ườ ẳ ạ ờ ờ ướ ờ
Đinh Mạnh Tường Trang 3
Ch 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ướ đ ợ ệ à ộ ử ế đổ ộ ả ố à ờ à ộ ả
hu ng khác.ố
Nh v y mu n bi u di n m t v n trong không gian tr ng thái, ta c n xác như ậ ố ể ễ ộ ấ đề ạ ầ đị
các y u t sau:ế ố
• Tr ng thái ban u.ạ đầ
• M t t p h p các toán t . Trong ó m i toán t mô t m t h nh ng ho c m tộ ậ ợ ử đ ỗ ử ả ộ à độ ặ ộ
phép bi n i có th a m t tr ng thái t i m t tr ng thái khác.ế đổ ểđư ộ ạ ớ ộ ạ
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
(u
0
∈ 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à ộ ạ
nh kh p n i trên U.đị ắ ơ
• M t t p h p T các tr ng thái k t thúc (tr ng thái ích). T l t p con c a khôngộ ậ ợ ạ ế ạ đ à ậ ủ
gian U. Trong v n c a du khách trên, ch có m t tr ng thái ích, ó l th nh ph B.ấ đề ủ ỉ ộ ạ đ đ à à ố
Nh ng trong nhi u v n (ch ng h n các lo i c ) có th có nhi u tr ng thái ích v taư ề ấ đề ẳ ạ ạ ờ ể ề ạ đ à
không th xác nh tr c c các tr ng thái ích. Nói chung trong ph n l n các v nể đị ướ đượ ạ đ ầ ớ ấ
hay, ta ch có th mô t các tr ng thái ích l các tr ng thái th a mãn m t s i uđề ỉ ể ả ạ đ à ạ ỏ ộ ố đề
ki n n o ó.ệ à đ
Đinh Mạnh Tường Trang 4
Khi 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 ià ạ đ ừ đỉ ớ đỉ đ ộ đườ đ
trong 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ạ ể ễ ố ạ đ ế ứ ọ
Đinh Mạnh Tường Trang 5
gi 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 .đượ ề ơ ố ệ ế ầ ế đị à ạ ủ ấ đề
ở ây ta không c n phân bi t các nh tri u phú v các tên c p, m ch s l ng c a hđ ầ ệ à ệ à ướ à ỉ ố ượ ủ ọ
bên b sông l quan tr ng. bi u di n các tr ng thái, ta s d ng b ba (a, b, k),ở ờ à ọ Để ể ễ ạ ử ụ ộ
trong ó a l s tri u phú, b l s k c p bên b t ng n v o các th i i m mđ à ố ệ à ố ẻ ướ ở ờ ả ạ à ờ để à
thuy n b n y ho c b kia, k = 1 n u thuy n b t ng n v k = 0 n u thuy n bề ở ờ à ặ ờ ế ề ở ờ ả ạ à ế ề ở ờ
h u ng n. Nh v y, không gian tr ng thái cho b i toán tri u phú v k c p c xácữ ạ ư ậ ạ à ệ à ẻ ướ đượ
nh nh sau:đị ư
• Tr ng thái ban u l (3, 3, 1).ạ đầ à
• Các toán t . Có n m toán t t ng ng v i h nh ng thuy n ch qua sông 1ử ă ử ươ ứ ớ à độ ề ở
tri u phú, ho c 1 k c p, ho c 2 tri u phú, ho c 2 k c p, ho c 1 tri u phú v 1 kệ ặ ẻ ướ ặ ệ ặ ẻ ướ ặ ệ à ẻ
c p.ướ
• Tr ng thái k t thúc l (0, 0, 0).ạ ế à
1.5 Các chi n l c tìm ki mế ượ ế
Nh ta ã th y trong m c 1.1, gi i quy t m t v n b ng tìm ki m trongư đ ấ ụ để ả ế ộ ấ đề ằ ế
không gian tr ng thái, u tiên ta c n tìm d ng thích h p mô t các tr ng thái c u v nạ đầ ầ ạ ợ ả ạ ả ấ
. Sau ó c n xác nh:đề đ ầ đị
• Tr ng thái ban u.ạ đầ
• T p các toán t .ậ ử
• T p T các tr ng thái k t thúc. (T có th không c xác nh c th g m cácậ ạ ế ể đượ đị ụ ể ồ
tr ng thái n o m ch c ch nh b i m t s i u ki n n o ó).ạ à à ỉ đượ ỉ đị ở ộ ốđ ề ệ à đ
Gi s u l m t tr ng thái n o ó v R l m t toán t bi n i u th nh v. Ta s g iả ử à ộ ạ à đ à à ộ ử ế đổ à ẽ ọ
v l tr ng thái k u, ho c v c sinh ra t tr ng thái u b i toán t R. Quá trình áp d ngà ạ ề ặ đượ ừ ạ ở ử ụ
các toán t sinh ra các tr ng thái k u c g i l phát tri n tr ng thái u. Ch ng h n,ửđể ạ ề đượ ọ à ể ạ ẳ ạ
trong b i toán toán s , phát tri n tr ng thái ban u (hình 2 bên trái), ta nh n c baà ố ể ạ đầ ậ đượ
tr ng thái k (hình 1.3).ạ ề
Khi chúng ta bi u di n m t v n c n gi i quy t thông qua các tr ng thái v cácể ễ ộ ấ đề ầ ả ế ạ à
toán t thì vi c tìm l i gi i c a v n c quy v vi c tìm ng i t tr ng thái banử ệ ờ ả ủ ấ đềđượ ề ệ đườ đ ừ ạ
u t i m t tr ng thái k t thúc n o ó.đầ ớ ộ ạ ế à đ
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.ề ộ à ế độ
Đinh Mạnh Tường Trang 6
T 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:đ ạ ử ụ ựđ ạ để ướ ẫ ự ế
trong quá trình phát tri n các tr ng thái, ta s ch n trong s các tr ng thái ch phátể ạ ẽ ọ ố ạ ờ
tri n, tr ng thái c ánh giá l t t nh t phát tri n. Do ó t c tìm ki m s nhanhể ạ đượ đ à ố ấ để ể đ ố độ ế ẽ
h n. Các ph ng pháp tìm ki m d a v o s ánh giá các tr ng thái h ng d n sơ ươ ế ự à ự đ ạ để ướ ẫ ự
tìm ki m g i chung l các ph ng pháp tìm ki m kinh nghi m.ế ọ à ươ ế ệ
Nh v y chi n l c tìm ki m c xác nh b i chi n l c ch n tr ng thái ư ậ ế ượ ế đượ đị ở ế ượ ọ ạ để
phát tri n m i b c. Trong tìm ki m mù, ta ch n tr ng thái phát tri n theo th tể ở ỗ ướ ế ọ ạ để ể ứ ự
m úng c sinh ra; còn trong tìm ki m kinh nghi m ta ch n tr ng thái d a v o sà đ đượ ế ệ ọ ạ ự à ự
ánh giá các tr ng thái.đ ạ
Cây tìm ki mế
Đinh Mạnh Tường Trang 7
Chú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átự đượ ộ à đ ủ ươ ứ ớ ạ ư đượ
tri 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 cử ụ để ư ạ đ đượ à ờ đượ
phá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 ngể ụ ủ ế ạ à đườ đ ừ ạ
thá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 ng i, à để ư ạ ủ ỗ đỉ đườ đ father(v) = u n u cha c a nh v lế ủ đỉ à
u.
1.6.1 Tìm ki m theo b r ngế ề ộ
Thu t toán tìm ki m theo b r ng c mô t b i th t c sau:ậ ế ề ộ đượ ả ở ủ ụ
procedure
Breadth_First_Search
;
begin
1. Kh i t o danh sách L ch ch a tr ng thái ban u;ở ạ ỉ ứ ạ đầ
2.
loop do
2.1
if
L r ngỗ
then
{
thông báo tìm ki m th t b iế ấ ạ
;
stop};
Đinh Mạnh Tường Trang 8
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
{
thông báo tìm ki m thành côngế
; stop};
2.4
for
m i tr ng thái v k uỗ ạ ề
do {
t v vào cu i danh sách LĐặ ố
;
father(v) <- u
}
end;
Chú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đ ậ ế ề ộ ẽ ệ đồ ờ đườ đ
c s l ng n nh t. Trong tr ng h p b i toán vô nghi m v không gian tr ng tháiđượ ẽ à ắ ấ ườ ợ à ệ à ạ
h u h n, thu t toán s d ng v cho thông báo vô nghi m.ữ ạ ậ ẽ ừ à ệ
ánh giá tìm ki m theo b r ngĐ ế ề ộ
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:à à ậ đ ỏ đượ ả
sâu dĐộ Th i gianờ Không gian
4 11 giây 1 megabyte
6 18 giây 111 megabytes
8 31 giờ 11 gigabytes
10 128 ng yà 1 terabyte
12 35 n mă 111 terabytes
14 3500 n mă 11.111 terabytes
Đinh Mạnh Tường Trang 9
1.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 ướ ủ ậ ế ề ộ ầ ử ạ à Đặ à uđầ danh
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,độ ũ ệ ế à ệ à ạ ữ ạ
thì thu t toán tìm ki m theo sâu s tìm ra nghi m. Tuy nhiên, trong tr ng h pậ ế độ ẽ ệ ườ ợ
không gian tr ng thái vô h n, thì có th nó không tìm ra nghi m, lý do l ta luôn luônạ ạ ể ệ à
i xu ng theo sâu, n u ta i theo m t nhánh vô h n m nghi m không n m trê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ể đỉ đỉ ớ ộ đỉ à đ ằ
ng i d n t i u.đườ đ ẫ ớ
3. Không sinh ra các nh m nó ã c sinh ra, t c l ch sinh ra các nh m i.đỉ à đ đượ ứ à ỉ đỉ ớ
Hai gi i pháp u d c i t v không t n nhi u không gian nh , tuy nhiên cácả đầ ễ à đặ à ố ề ớ
gi i pháp n y không tránh c h t các tr ng thái l p.ả à đượ ế ạ ặ
Đinh Mạnh Tường Trang 10
th 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 cạ ờ ể à Đươ ạ ầ đầ đượ
sinh 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.đ ớ độ à đ ồ
Trong th t c tìm ki m sâu h n ch , d l tham s sâu, h m depth ghi l i ủ ụ ế ạ ế à ố độ à ạ độ
sâu c a m i nhủ ỗ đỉ
procedure
Depth_Limited_Search(d)
;
begin
1. Kh i t o danh sách L ch ch a tr ng thái ban u uở ạ ỉ ứ ạ đầ
0
;
depth(u
0
) 0
;
2.
loop do
2.1
if
L r ngỗ
then
{
thông báo th t b iấ ạ
; 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
{
thông báo thành công
; stop};
2.4
if
depth(u) <= d
then
for
m i tr ng thái v k uỗ ạ ề
do
{
t v vào u danh sách LĐặ đầ
;
depth(v) depth(u) + 1
};
end;
procedure
Depth_Deepening_Search
;
begin
for
d 0
to
max
do
{
Depth_Limited_Search(d)
;
if
thành công
then exit}
end;
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.ế à ệ ễ à ọ độ đủ ớ
Đinh Mạnh Tường Trang 11
• 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Đề đ à ả ằ ế ặ ề ờ ự
ra th i gian tiêu t n cho phát tri n l p l i các tr ng thái l không áng k so v i th iờ ố ể ặ ạ ạ à đ ể ớ ờ
gian tìm ki m theo b r ng. Th t v y, m i l n g i th t c tìm ki m sâu h n ch t i m cế ề ộ ậ ậ ỗ ầ ọ ủ ụ ế ạ ế ớ ứ
d, n u cây tìm ki m có nhân t nhánh l b, thì s nh c n phát tri n l :ế ế ố à ốđỉ ầ ể à
1 + b + b
2
+ + b
d
N u nghi m sâu d, thì trong tìm ki m sâu l p, ta ph i g i th t c tìm ki mế ệ ởđộ ế ặ ả ọ ủ ụ ế
sâu h n ch v i sâu l n l t l 0, 1, 2, , d. Do ó các nh m c 1 ph i phát tri nạ ế ớ độ ầ ượ à đ đỉ ở ứ ả ể
l p d l n, các nh m c 2 l p d-1 l n, , các nh m c d l p 1 l n. Nh v y t ng sặ ầ đỉ ở ứ ặ ầ đỉ ở ứ ặ ầ ư ậ ổ ố
nh c n phát tri n trong tìm ki m sâu l p l :đỉ ầ ể ế ặ à
(d+1)1 + db + (d-1)b
2
+ + 2b
d-1
+ 1b
d
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 ngà ử đ ệ ệ ủ ấ đề đượ ề ệ đườ
trong 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 ả ử ầ ộ ấ đị ẳ ạ ∫ (xe
x
+ x
3
) dx. Quá trình
chú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 ấ à đ ế ẳ ạ đố ớ ∫ (xe
x
+ x
3
) dx, áp
d ng quy t c tích phân c a t ng ta a v hai tích phân ụ ắ ủ ổ đư ề ∫ xe
x
dx v à ∫ x
3
dx. áp d ngụ
quy t c tích phân t ng ph n ta a tích phân ắ ừ ầ đư ∫ xe
x
dx v tích phân ề ∫ e
x
dx. Quá trình
trên có th bi u di n b i th trong hình 1.5. ể ể ễ ở đồ ị
Các tích phân ∫ e
x
dx v à ∫ x
3
dx 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.đ
Đinh Mạnh Tường Trang 12
Chú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:đị ể đị ử ạ
∫ (f
1
+ f
2
) dx → ∫ f
1
dx, ∫ f
2
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.đườ đ ừ đế
Đinh Mạnh Tường Trang 13
Quá 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:ậ ử ồ
R
1
: a →d, e, f
R
2
: a →d, k
R
3
: a →g, h
Đinh Mạnh Tường Trang 14
R
4
: d →b, c
R
5
: f →i
R
6
: f →c, j
R
7
: k →e, l
R
8
: k →h
• T p các tr ng thái k t thúc (các b i toán s c p) l T = {b, c, e, j, l}.ậ ạ ế à ơ ấ à
Không gian tr ng thái trên có th bi u di n b i th v /ho c trong hình 1.9.ạ ể ể ễ ở đồ ị à ặ
Trong th ó, các nh, ch ng h n ađồ ị đ đỉ ẳ ạ
1
, a
2
, a
3
c g i l nh đượ ọ à đỉ và, các nh ch ng h n a,đỉ ẳ ạ
f, k c g i l nh đượ ọ à đỉ ho cặ . Lý do l , nh aà đỉ
1
bi u di n t p các b i toán {d, e, f} v aể ễ ậ à à
1
c gi i quy t n u d v e v f c gi i quy t. Còn t i nh a, ta có các toán t Rđượ ả ế ế à à đượ ả ế ạ đỉ ử
1
, R
2
,
R
3
quy b i toán a v các b i toán con khác nhau, do ó a c gi i quy t n u ho c aà ề à đ đượ ả ế ế ặ
1
=
{d, e, f}, ho c aặ
2
= {d, k}, ho c aặ
3
= {g, h} c gi i quy t.đượ ả ế
Ng i ta th ng s d ng th v /ho c d ng rút g n. Ch ng h n, th v /ho cườ ườ ử ụ đồ ị à ặ ở ạ ọ ẳ ạ đồ ị à ặ
trong hình 1.9 có th rút g n th nh th trong hình 1.10. Trong th rút g n n y, taể ọ à đồ ị đồ ị ọ à
s nói ch ng h n d, e, f l các nh k nh a theo toán t Rẽ ẳ ạ à đỉ ềđỉ ử
1
, còn d, k l các nh k aà đỉ ề
theo toán t Rử
2
.
Đinh Mạnh Tường Trang 15
Khi ã có các toán t rút g n v n , thì b ng cách áp d ng liên ti p các toán t ,đ ử ọ ấ đề ằ ụ ế ử
ta có th a b i toán c n gi i v m t t p các b i toán con. Ch ng h n, trong ví d trênểđư à ầ ả ề ộ ậ à ẳ ạ ụ
n u ta áp d ng các toán t Rế ụ ử
1
, R
4
, R
6
, 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
, R
4
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đượ ộ à đượ ọ à ệ ệ đượ
nh ngh a nh sau:đị ĩ ư
Cây nghi mệ l m t cây, trong ó:à ộ đ
• G c c a cây ng v i b i toán c n gi i.ố ủ ứ ớ à ầ ả
• T t c các lá c a cây l các nh k t thúc ( nh ng v i các b i toán s c p).ấ ả ủ à đỉ ế đỉ ứ ớ à ơ ấ
• N u u l nh trong c a cây, thì các nh con c a u l các nh k u theo m tế à đỉ ủ đỉ ủ à đỉ ề ộ
toán t n o ó.ử à đ
Các nh c a th v /ho c s c g n nhãn gi i c ho c không gi i c.đỉ ủ đồ ị à ặ ẽđượ ắ ả đượ ặ ả đượ
Các nh đỉ gi i cả đượ c xác nh quy nh sau:đượ đị đệ ư
• Các nh k t thúc l các nh đỉ ế à đỉ gi i cả đượ .
• N u u không ph i l nh k t thúc, nh ng có m t toán t R sao cho t t c cácế ả à đỉ ế ư ộ ử ấ ả
nh k u theo R u gi i c thì u đỉ ề đề ả đượ gi i cả đượ .
Các nh đỉ không gi i cả đượ c xác nh quy nh sau:đượ đị đệ ư
• Các nh không ph i l nh k t thúc v không có nh k , l các nh đỉ ả à đỉ ế à đỉ ề à đỉ không
gi i cả đượ .
• N u u không ph i l nh k t thúc v v i m i toán t R áp d ng c t i u uế ả à đỉ ế à ớ ọ ử ụ đượ ạ đề
có m t nh v k u theo R không gi i c, thì u ộ đỉ ề ả đượ không gi i cả đượ .
Ta có nh n xét r ng, n u b i toán a ậ ằ ế à gi i cả đượ thì s có m t cây nghi m g c a, vẽ ộ ệ ố à
ng c l i n u có m t cây nghi m g c a thì a ượ ạ ế ộ ệ ố gi i cả đượ . Hi n nhiên l , m t b i toánể à ộ à
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.ở ộ ứ ệ
Đinh Mạnh Tường Trang 16
V 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
{
Ok true
;
for
m i v k u theo Rỗ ề
do
if
Solvable(v) =
false then {
Ok
false; exit};
if
Ok
then
{
Solvable(u)
true;
Operator(u) R
; stop}}
4. Solvable(u)
false;
end;
Nh n xétậ
• Ho n to n t ng t nh thu t toán tìm ki m theo sâu trong không gian tr ngà à ươ ự ư ậ ế độ ạ
thái (m c 1.3.2), thu t toán tìm ki m theo sâu trên th v /ho c s xác nh cụ ậ ế độ đồ ị à ặ ẽ đị đượ
b i toán ban u l gi i c hay không gi i c, n u cây tìm ki m không có nhánhà đầ à ả đượ ả đượ ế ế
vô h n. N u cây tìm ki m có nhánh vô h n thì ch a ch c thu t toán ã d ng, vì có thạ ế ế ạ ư ắ ậ đ ừ ể
Đinh Mạnh Tường Trang 17
nó 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.ự đượ ệ
Đinh Mạnh Tường Trang 18
Ch ng IIươ
Các chi n l c tìm ki m kinh nghi mế ượ ế ệ
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 iỹ ậ ế ử ụ à đ để ướ ẫ ự ế đượ ọ
chung 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.đ ị à à
Đinh Mạnh Tường Trang 19
H m hà
2
: h
2
(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ó:ẳ ạ ớ ạ à ạ đ ư
h
2
(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.ỏ ấ đỉ à ểở ứ ệ ạ ặ ở ứ
Đinh Mạnh Tường Trang 20
Ví 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ênạ ỗ đỉ ế ố ấ đầ ễ ư Đầ
phá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.
procedure
Best_First_Search
;
begin
1. Kh i t o danh sách L ch ch a tr ng thái ban uở ạ ỉ ứ ạ đầ
;
2.
loop do
2.1
if
L r ngỗ
then
{
thông báo th t b iấ ạ
; 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
{
thông báo thành công
; stop}
2.4
for
m i tr ng thái v k uỗ ạ ề
do
Xen v vào danh sách L sao cho L c s p theo th tđượ ắ ứ ự
t ng d n c a hàm ánh giáă ầ ủ đ
;
end;
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á.ể đỉ à đượ đị ở à đ
Đinh Mạnh Tường Trang 21
Ví 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ă ầ ủ à đ ồ đượ ể à ạ ố ấ ề
u ng danh sách L.đứ ở
procedure
Hill_Climbing_Search
;
begin
1. Kh i t o danh sách L ch ch a tr ng thái ban uở ạ ỉ ứ ạ đầ
;
2.
loop do
2.1
if
L r ngỗ
then
{
thông báo th t b iấ ạ
; 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
{
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
;
2.5 S p x p Lắ ế
1
theo th t t ng d n c a hàm ánh giáứ ự ă ầ ủ đ
;
2.6 Chuy n danh sách Lể
1
vào u danh sách Lđầ
;
end;
Tìm ki m beamế
Tìm ki m beam (beam search) gi ng nh tìm ki m theo b r ng, nó phát tri nế ố ư ế ề ộ ể
các nh m t m c r i phát tri n các nh m c ti p theo. Tuy nhiên, trong tìm ki mđỉ ở ộ ứ ồ ể đỉ ở ứ ế ế
theo b r ng, ta phát tri n t t c các nh m t m c, còn trong tìm ki m beam, ta h nề ộ ể ấ ả đỉ ở ộ ứ ế ạ
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).
Đinh Mạnh Tường Trang 22
Ví 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.đượ ọ để ể ở ỗ ứ
Đinh Mạnh Tường Trang 23
Ch ng IIIươ
Các chi n l c tìm ki m t i uế ượ ế ố ư
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 .đồ ị ạ Độ à ủ đượ đị ộ à ấ đề
Ch ng h n, trong b i toán tìm ng i trong b n giao thông, giá c a cung (a,b)ẳ ạ à đườ đ ả đồ ủ
chính l d i c a ng n i th nh ph a v i th nh ph b. d i ng í c xácà độ à ủ đườ ố à ố ớ à ố Độ à đườ đ đượ
nh l t ng d i c a các cung trên ng i. V n c a chúng ta trong m c n y, tìmđị à ổ độ à ủ đườ đ ấ đề ủ ụ à
ng i ng n nh t t tr ng thái ban u t i tr ng thái ích. Không gian tìm ki m đườ đ ắ ấ ừ ạ đầ ớ ạ đ ế ở
ây bao g m t t c các ng i t tr ng thái ban u t i tr ng thái k t thúc, h m m cđ ồ ấ ả đườ đ ừ ạ đầ ớ ạ ế à ụ
tiêu c xác nh ây l d i c a ng i.đượ đị ở đ à độ à ủ đườ đ
Chúng ta có th gi i quy t v n t ra b ng cách tìm t t c các ng i có thể ả ế ấ đềđặ ằ ấ ả đườ đ ể
có t tr ng thái ban u t i tr ng thái ích (ch ng h n, s s ng các ký thu t tìm ki mừ ạ đầ ớ ạ đ ẳ ạ ử ụ ậ ế
mù), sau ó so sánh d i c a chúng, ta s tìm ra ng i ng n nh t. Th t c tìmđ độ à ủ ẽ đườ đ ắ ấ ủ ụ
ki m n y th ng c g i l th t c b o t ng Anh Qu c (British Museum Procedure).ế à ườ đượ ọ à ủ ụ ả à ố
Trong th c t , k thu t n y không th áp d ng c, vì cây tìm ki m th ng r t l n,ự ế ỹ ậ à ể ụ đượ ế ườ ấ ớ
vi c tìm ra t t c các ng i có th có òi h i r t nhi u th i gian. Do ó ch có m tệ ấ ả đườ đ ể đ ỏ ấ ề ờ đ ỉ ộ
cách t ng hi u qu tìm ki m l s d ng các h m ánh giá h ng d n s tìm ki m.ă ệ ả ế à ử ụ à đ đề ướ ẫ ử ế
Các ph ng pháp tìm ki m ng i ng n nh t m chúng ta s trình b y u l cácươ ế đườ đ ắ ấ à ẽ à đề à
ph ng pháp tìm ki m heuristic.ươ ế
Gi s u l m t ả ử à ộ tr ng thái t t iạ đạ ớ (có d ng i t tr ng thái ban u uườ đ ừ ạ đầ
0
t i u). Taớ
xác nh hai h m ánh giá sau:đị à đ
• g(u) l ánh giá d i ng i ng n nh t t uàđ độ à đườ đ ắ ấ ừ
0
t i u ( ng i t uớ Đườ đ ừ
0
t i tr ngớ ạ
thái u không ph i l tr ng thái ích c g i l ả à ạ đ đượ ọ à ng i m t ph nđườ đ ộ ầ , phân bi t v iđể ệ ớ
ng i y đườ đ đầ đủ, l ng i t uà đườ đ ừ
0
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 c ấ ậ đượ (ho c ánh giá th pặ đ ấ ) 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độ à đườ đ ắ ấ ự ế ừ ớ ạ đ ẳ ạ
b i toán tìm ng i ng n nh t trên b n giao thông, ta có th xác nh h(u) l à đườ đ ắ ấ ả đồ ể đị à độ
d i ng chim bay t u t i ích.à đườ ừ ớ đ
Đinh Mạnh Tường Trang 24
Ta 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ứ à àđ độ à đườ đ ắ ấ ừ ạ đầ ớ
tr ng thái k t thúc.ạ ế
1.8.1 Thu t toán A*ậ
Thu t toán A* l thu t toán s d ng k thu t tìm ki m t t nh t u tiên v i h mậ à ậ ử ụ ỹ ậ ế ố ấ đầ ớ à
ánh giá f(u).đ
th y c thu t toán A* l m vi c nh th n o, ta xét th không gian tr ngĐể ấ đượ ậ à ệ ư ế à đồ ị ạ
thái trong hình 3.1. Trong ó, tr ng thái ban u l tr ng thái A, tr ng thái ích l B,đ ạ đầ à ạ ạ đ à
các s ghi c nh các cung l d i ng i, các s c nh các nh l giá tr c a h mố ạ à độ à đườ đ ố ạ đỉ à ị ủ à
h. u tiên, phát tri n nh A sinh ra các nh con C, D, E v F. Tính giá tr c a h m f t iĐầ ể đỉ đỉ à ị ủ à ạ
các nh n y ta có:đỉ à
g(C) = 9, f(C) = 9 + 15 = 24, g(D) = 7, f(D) = 7 + 6 = 13,
g(E) = 13, f(E) = 13 + 8 = 21, g(F) = 20, f(F) = 20 +7 = 27
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 cư ậ đỉ ố ấ à à ỏ ấ ể ậ đượ
cá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.Độ à
Đinh Mạnh Tường Trang 25