28
Chương 2 Giải quyết vấn đề bằng tìm kiếm 2.1. Giải quyết vấn đề bằng tìm kiếm Bài toán tìm kiếm là tìm một hoặc nhiều đối tượng thỏa mãn một số yêu cầu nào đó, trong một tập hợp các đối tượng. Rất nhiều vấn đề mà việc giải quyết được đưa về bài toán tìm kiếm. Ví dụ trò chơi cờ carô có thể đưa về việc tìm kiếm các nước đi dẫn tới kết cuộc thắng. Chứng minh định lý cũng có thể đưa về bài toán tìm kiếm một cách chứng minh định lý (một dãy các luật suy diễn được áp dụng) từ một tập các tiên đề và các luật suy diễn đã biết. 2.2. Biểu diễn vấn đề trong không gian trạng thái, tìm kiếm trên đồ thị có hướng. Phép biến đổi trạng thái (còn gọi là toán tử) là phép biến đổi một trạng thái sang trạng thái khác. Không gian trạng thái (còn gọi là không gian tìm kiếm) là tập hợp tất cả các trạng thái có thể đi đến từ trạng thái ban đầu bởi một dãy các phép biến đổi trạng thái. Muốn biểu diễn bài toán tìm kiếm trong không gian trạng thái, ta cần xác định các yếu tố sau: o trạng thái o không gian trạng thái o trạng thái ban đầu. o trạng thái kết thúc hoặc tính chất của trạng thái kết thúc. o các phép biến đổi trạng thái. Bài toán tìm kiếm trở thành tìm một dãy các phép biến đổi trạng thái để biến đổi trạng thái ban đầu thành các trạng thái kết thúc. Không gian trạng thái có thể biểu diễn bằng đồ thị có hướng o đỉnh là trạng thái o cung (a,b) tương ứng với phép biến đổi trạng thái a sang trạng thái b. Bài toán tìm kiếm trở thành tìm đường đi từ trạng thái ban đầu đến trạng thái kết thúc trên đồ thị. Ví dụ 1: Tìm đường đi Tìm đường đi từ thành phố A đến thành phố B trên bản đồ như hình 1.

Chương 2 - Giải Quyết Vấn Đề Bằng Tìm Kiếm

Embed Size (px)

DESCRIPTION

search, tree bit, etc...

Citation preview

Chng 2 Gii quyt vn bng tm kim

2.1. Gii quyt vn bng tm kim Bi ton tm kim l tm mt hoc nhiu i tng tha mn mt s yu cu no , trong mt tp hp cc i tng. Rt nhiu vn m vic gii quyt c a v bi ton tm kim. V d tr chi c car c th a v vic tm kim cc nc i dn ti kt cuc thng. Chng minh nh l cng c th a v bi ton tm kim mt cch chng minh nh l (mt dy cc lut suy din c p dng) t mt tp cc tin v cc lut suy din bit.

2.2. Biu din vn trong khng gian trng thi, tm kim trn th c hng. Php bin i trng thi (cn gi l ton t) l php bin i mt trng thi sang trng thi khc. Khng gian trng thi (cn gi l khng gian tm kim) l tp hp tt c cc trng thi c th i n t trng thi ban u bi mt dy cc php bin i trng thi. Mun biu din bi ton tm kim trong khng gian trng thi, ta cn xc nh cc yu t sau: trng thi khng gian trng thi trng thi ban u. trng thi kt thc hoc tnh cht ca trng thi kt thc. cc php bin i trng thi. Bi ton tm kim tr thnh tm mt dy cc php bin i trng thi bin i trng thi ban u thnh cc trng thi kt thc. Khng gian trng thi c th biu din bng th c hng nh l trng thi cung (a,b) tng ng vi php bin i trng thi a sang trng thi b. Bi ton tm kim tr thnh tm ng i t trng thi ban u n trng thi kt thc trn th.

V d 1: Tm ng i Tm ng i t thnh ph A n thnh ph B trn bn nh hnh 1.

C th a bi ton tm ng i thnh bi ton tm kim trong khng gian trng thi nh sau:. Trng thi: mi thnh ph l mt trng thi.. Khng gian trng thi: l tp hp tt c cc trng thi.. Trng thi ban u: thnh ph A. Trng thi kt thc: thnh ph B. Php bin i trng thi: chuyn t mt thnh ph n thnh ph k vi n.

Bi ton tm ng i tr thnh bi ton tm kim mt dy cc php bin i trng thi a trng thi ban u A v trng thi kt thc B. V d 2: Tr chi 8 s. Cho bng kch thc 3x3 v tm s t 1 n 8 c xp vo 8 mt cch ngu nhin, cn li mt trng. Bn c th di chuyn cc s cnh trng ti trng theo mt trong bn hng (ln/xung/tri/phi). Hy tm ra mt dy cc bc di chuyn bin i trng thi ban u thnh trng thi kt thc nh hnh 2.kt thc

ban u

Hnh 2: trng thi ban u v trng thi kt thc ca tr chi 8 s

C th a Tr chi 8 s thnh bi ton tm kim trong khng gian trng thi nh sau:. Trng thi: mt cch xp 8 s l mt trng thi.. Khng gian trng thi: tp hp tt c cc cch xp 8 s. Trng thi ban u: trng thi ban u ca bng. Trng thi kt thc: trng thi kt thc ca bng. Php bin i trng thi: chuyn mt cch xp sang cch xp khc. C bn php bin i l dch tri/phi/ ln/xung. Bi ton Tr chi 8 s tr thnh bi ton tm kim mt dy cc php bin i trng thi a trng thi ban u v trng thi kt thc. Hy xem bc pht trin trng thi ban u thnh cc trng thi khc nh hnh 3.Hnh 3: p dng cc php bin i trng thi

V d 3: Bi ton triu ph v k cp. C ba nh triu ph v ba tn cp b sng bn tri , v c mt chic thuyn ch mi ln c mt hoc hai ngi. Hy tm cch a mi ngi sang b sng bn phi sao cho khng li mt bn b sng k cp nhiu hn triu ph. C th a Bi ton triu ph v k cp thnh bi ton tm kim trong khng gian trng thi nh sau:. Trng thi: (T,C) vi T v C ln lt l s triu ph v s tn cp b sng bn tri. . Khng gian trng thi: tp hp tt c cc cp (T,C) vi T>=C c hai b. . Trng thi ban u: (3,3). Trng thi kt thc: (0,0). Php bin i trng thi: c 5 php bin i tng ng vi vic ch qua sng 1 triu ph, hoc 1 k cp, hoc 2 triu ph, hoc 2 k cp, hoc 1 triu ph v 1 k cp.

V d 4: Tr chi thay ch bng s trong mt php ton cng dng ch. Hy thay mi ch trong php ton cng (hnh 4a) bng mt s khc nhau sao cho tha php ton cng (hnh 4b).FORTY+ TEN+ TEN---------- SIXTY 29786+ 850+ 850--------- 31486

p s:F=2, O=9R=7, T=8Y=6, X=4I=1, S=3

(a) (b) Kim traHnh 4: Mt php ton cng dng ch (hnh a) v mt cch thay bng s (hnh b)

C th a Tr chi thay ch bng s thnh bi ton tm kim trong khng gian trng thi nh sau:. Trng thi: mt php ton cng vi mt s ch c thay bng s.. Khng gian trng thi: tt c trng thi dn xut t trng thi ban u.. Trng thi ban u: php ton cng tt c l ch. Trng thi kt thc: php ton cng tt c l s. Php bin i trng thi: thay mt ch bng mt s khng trng vi nhng s c.

2.3 Cy tm kim Cy tm kim l cy m cc nh l cc trng thi ca khng gian trng thi. Gc ca cy tm kim tng ng vi trng thi ban u. Nu mt nh ng vi trng thi u, th nh con v ca u l trng thi c bin i t u qua mt php bin i trng thi.

Hnh 5: Hnh (5a) l th biu din mt khng gian trng thi vi trng thi ban u l A, hnh (5b) l cy tm kim tng ng vi khng gian trng thi .

Mi thut ton tm kim trong khng gian trng thi tng ng vi mt thut ton xy dng cy tm kim. Qu trnh xy dng cy bt u t cy ch c mt nh l trng thi ban u v nh ny cha c pht trin, sau pht trin nh ny c cc nh con cha c pht trin. Bc tip theo chn mt nh con pht trin , vic chn nh con no pht trin th ph thuc vo thut ton tm kim. Khi pht trin nh u, cy tm kim c m rng bng cch thm vo cc nh con ca nh u. Lp li vic pht trin cho ti khi tm c trng thi kt thc th ngng. Cy tm kim c th cha nhiu nh ng vi cng mt trng thi, cc trng thi ny c gi l trng thi lp. Trong th biu din khng gian trng thi, cc trng thi lp ng vi cc nh c nhiu ng i dn ti n t trng thi ban u. Nu th c chu trnh th cy tm kim c th s cha cc nhnh vi mt s nh lp li v hn ln. Trong qu trnh tm kim cn trnh pht sinh ra cc trng thi m pht trin bng cch lu cc trng thi pht trin vo tp close (c th ci t tp close bi bng bm), lu cc trng thi ch pht trin vo danh sch open. Nh vy trng thi v ln u c sinh ra nu n khng c trong close v open. Ch vic lu cc trng thi pht trin v kim tra xem mt trng thi c phi ln u c sinh ra thng i hi rt nhiu khng gian v thi gian.

Cu trc mt nh u trong cy tm kim: trng thi m u biu din. nt cha ca nt u. php bin i cn p dng bin i nt cha u thnh nt u. chi ph i t nt ban u ti nt u, k hiu g(u).Lu hai nh khc nhau c th c biu din cng trng thi.

2.4 Cc phng php tm kim v cc tiu chun nh gi Cc phng php tm kim Tm kim khng c thng tin (tm kim m): trong chng ta khng c hiu bit g v cc i tng hng dn tm kim m ch n thun l xem xt theo mt h thng no tt c cc i tng pht hin ra i tng cn tm. Tm kim c thng tin (tm kim heuristic): trong chng ta da vo kinh nghim v s hiu bit ca chng ta v vn cn gii quyt xy dng nn hm nh gi hng dn s tm kim. Tm kim ti u: tm ng i ngn nht t trng thi ban u n trng thi kt thc. Tm kim c i th: tm kim nc i trong cc tr chi hai ngi, v d c vua, c tng, c car. Cc tiu chun nh gi mt phng php tm kim Tnh y (Completeness): lun tm ra gii php nu c. Tnh ti u (Optimality): tm ra gii php tt nht Tnh tit kim thi gian/khng gian: tm ra gii php nhanh, s dng b nh t.

2.5. Phng php tm kim khng c thng tin (tm kim m) Phng php tm kim khng c thng tin (uninformed search/blind search) c ba thut ton: Thut ton tm kim theo b rng. Thut ton tm kim theo su. Thut ton tm kim theo su lp.

2.5.1 Thut ton tm kim theo b rng (Breadth First Search) nh gc c pht trin u tin, k n l cc nh con v ca nh gc c pht trin, k tip l cc nh con ca cc nh v c pht trin,... Khi tt c cc nh mt mc c pht trin xong ri mi pht trin nhng nh mc tip theo. Ti mi mc s chn nh pht trin l nh c sinh ra trc nht so vi cc nh ch pht trin khc. Thut ton S dng danh sch open lu cc nh c sinh ra v ch c pht trin, danh sch close lu cc nh pht trin. Bin father lu li cha ca mi nh trn ng i, father(v) = u nu cha ca nh v l u; da vo father ta s tm ra ng i t nh u n nh kt thc.int Breadth_First_Search {khi to danh sch open ch cha trng thi ban u;khi to danh sch close rng;loop{if (open rng) return 0; //tm kim tht bichn v loi trng thi u u danh sch open;thm u vo danh sch close;for (mi trng thi v k u) {if (v khng c trong close v open) {father(v) =u;if (v l trng thi kt thc) return 1; //tm kim thnh cngthm v vo cui danh sch open;}}}} Nhn xt Trng thi sinh ra trc s c pht trin trc, do danh sch open c x l nh hng i. Nu trng thi kt thc c xc nh bi mt s iu kin no , th nu v tha cc iu kin ny th v l trng thi kt thc . Nu bi ton c nghim (tn ti ng i t trng thi ban u ti trng thi ch), th thut ton tm kim theo b rng s lun tm ra nghim. Nu bi ton v nghim v khng gian trng thi hu hn, th thut ton s dng v thng bo v nghim. Thut ton s tm c ng i vi chi ph nh nht nu hm tnh chi ph chuyn t trng thi ny n trng thi khc l hng s dng. Nu hm tnh chi ph c gi tr dng thay i ta c th dng danh sch open nh hng i vi u tin theo hm tnh chi ph.

nh gi Gi s mi nh khi c pht trin s sinh ra b nh k (b gi l h s nhnh) v nghim l ng i c di d. Bi v nghim c th c tm ra ti mt nh bt k mc d ca cy tm kim, do s nh cn xem xt tm ra nghim l: 1 + b + b2 +... + bd-1 + kTrong k c th l 1, 2,..., bd , do s ln nht cc nh cn xem xt l:1 + b + b2 +... + bdNh vy, phc tp thi gian ca thut ton tm kim theo b rng l O(bd ). phc tp khng gian cng l O(bd ), bi v ta cng luu vo danh sch open tt c cc nh ca cy tm kim mc d, s cc nh ny l bd. thy r tm kim theo b rng i hi thi gian v khng gian ln ti mc no, ta xt trng hp nhn t nhnh b = 10 v gi s kim tra 1000 trng thi cn 1 giy, v lu gi 1 trng thi cn 100 bytes. Khi thi gian v khng gian m thut ton i hi c cho trong bng sau: su d Thi gianKhng gian

411 giy1 megabyte

618 giy111 megabytes

831 gi11 gigabytes

10128 ngy1 terabyte

1235 nm111 terabytes

143500 nm 11.111 terabytes

2.5.2 Thut ton tm kim theo su (Depth First Search) Ti mi bc, trng thi c chn pht trin l trng thi c sinh ra sau cng trong s cc trng thi ch pht trin. Thut ton tm kim theo su tng t nh thut ton tm kim theo b rng, ch c mt iu khc l trong thut ton tm kim theo b rng, ta cn sa li l thm v vo u danh sch open. Thut tonint Depth_First_Search {khi to danh sch open ch cha trng thi ban u;khi to danh sch close rng;loop{if (open rng) return 0; //tm kim tht bichn v loi trng thi u u danh sch open;thm u vo danh sch close;for (mi trng thi v k u) {if (v khng c trong close v open) {father(v) =u;if (v l trng thi kt thc) return 1; //tm kim thnh cngthm v vo u danh sch open;}}}} Nhn xt Trng thi sinh ra sau s c pht trin trc, do danh sch open c x l nh ngn xp. Nu bi ton c nghim v khng gian trng thi hu hn, th thut ton tm kim theo sus tm ra nghim. Nu khng gian trng thi v hn th c th khng tm ra nghim, v nu i theo mt nhnh v hn m nghim khng nm trn nhnh th thut ton s khng dng. Do khng nn p dng tm kim theo su cho bi ton c cy tm kim cha nhnh v hn. nh gi Gi s nghim ca bi ton l ng i c di d, cy tm kim c nhn t nhnh l b. Trng hp xu nht l nghim nh ngoi cng bn phi ca mc d, do phc tp thi gian ca tm kim theo su trong trng hp xu nht l O(bd), tc l cng nh tm kim theo b rng. Khi pht trin mt nh u trn cy tm kim theo su, ta ch cn lu cc nh cha c pht trin m chng l cc nh con ca cc nh nm trn ng i t gc ti nh u. Nh vy ta ch cn lu t hn db nh. Do phc tp khng gian ca tm kim theo su l O(db), trong khi tm kim theo b rng i hi khng gian nh O(bd)! Tm kim theo su thng nhanh hn tm kim theo b rng, v tm kim theo b rng phi xem xt ton b cy tm kim ti mc d-1, ri mi xem xt cc nh mc d. Cn trong tm kim theo su, c th ta ch cn xem xt mt b phn nh ca cy tm kim th tm ra nghim.

2.5.3. Thut ton tm kim su lp (Depth Deepening Search) Nu cy tm kim cha nhnh v hn, tm kim theo su c th mc kt nhnh v hn v khng tm ra nghim. khc phc ta ln lt tm kim theo su mc d (d ban u bng 0), nu khng tm ra nghim, ta tng su ln d+1 v li tm kim theo su mc d+1. Qu trnh trn c lp li dn mt su Max no do ta chn, nu vn khng tm thy c th thng bo tm kim tht bi hoc tng Max v tm li. Thut ton Thut ton tm kim vi su dint Depth_Limited_Search(d) {khi to danh sch open ch cha trng thi ban u u0;khi to danh sch close rng;depth(u0)=0;loop{if (open rng) return 0;chn v loi trng thi u u danh sch open;thm u vo danh sch close;if (depth(u) < d) {for (mi trng thi v k u) {if (v khng c trong close v open) {father(v) =u;depth(v)=depth(u) + 1;if (v l trng thi kt thc) return 1;thm v vo u danh sch open;}}}}} Thut ton tm kim su lpint Depth_Deepening_Search (max){for (d =0 to max){result= Depth_Limited_Search (d);if (result==1) return 1;}return 0;} Nhn xt K thut tm kim su lp kt hp c cc u im ca tm kim theo b rng v tm kim theo su. Cng nh tm kim theo b rng, nu bi ton c nghim, tm kim su lp lun lun tm ra nghim min l ta chn su max ln.

nh gi Tm kim su lp ch cn khng gian nh nh tm kim theo su tc l O(db). Trong tm kim su lp, ta phi pht trin lp li nhiu ln cng mt trng thi, lm ta c cm gic rng lng ph nhiu thi gian. Thc ra thi gian tiu tn cho pht trin lp li cc trng thi l khng ng k so vi thi gian tm kim theo b rng. Tht vy, mi ln gi th tc tm kim su hn ch ti mc d, nu cy tm kim c nhn t nhnh l b, th s nh cn pht trin l:1 + b + b2+... + bdNu nghim su d, th trong tm kim su lp, ta phi gi th tc tm kim su hn ch vi su ln lt l 0, 1, 2,..., d. Do cc nh mc 1 phi pht trin lp d ln, cc nh mc 2 lp d-1 ln,..., cc nh mc d lp 1 ln. Nh vy tng s nh cn pht trin trong tm kim su lp l:(d+1)1 + db + (d-1)b2+... + 2bd-1+ 1bdDo thi gian tm kim su lp l O(bd).

Tm li, tm kim su lp c phc tp thi gian l O(bd) nh tm kim theo b rng, v c phc tp khng gian l O(bd) (nh tm kim theo su). Ni chung, nn p dng tm kim su lp cho cc vn c khng gian trng thi ln v su ca nghim khng bit trc.

2.6. Cc phng php tm kim c thng tin/tm kim heuristic (informed search or heuristic search)

Nu khng gian trng thi rt ln, cc thut ton tm kim khng c thng tin rt km hiu qu v khng th p dng v tn rt nhiu b nh v thi gian. Cc thut ton tm kim c thng tin ging vi cc thut ton tm kim khng c thng tin nhng khi chn mt nh pht trin, ta khng chn ngu nhin m chn da vo hm nh gi. Vi mi trng thi u, ta xc nh mt gi tr gi l gi tr nh gi u. Thng c ba hm nh gi: g(u) l hm nh gi u da vo di ng i ngn nht t nh gc ti u. Ta gi g(u) l hm nh gi da vo thng tin hin ti. h(u) l hm nh gi u da vo di ng i ngn nht t u ti trng thi ch. Ta gi h(u) l hm nh gi da vo thng tin tng lai. Cn xy dng h(u) sao cho h(u) di ng i ngn nht thc t t u ti trng thi ch. f(u) l hm nh gi u da vo di ng i ngn nht qua u t trng thi ban u ti trng thi kt thc . Ta gi f(u) l hm nh gi da vo thng tin hin ti v thng tin tng lai. Thng thng f(u) = g(u) + h(u). Ta cn xy dng hm nh gi sao cho nh gi ng cc trng thi th tm kim mi hiu qu. Nu hm nh gi khng chnh xc, vic tm kim s rt km hiu qu. Trong qu trnh tm kim, ti mi bc ta s chn trng thi pht trin l trng thi c gi tr hm nh gi nh nht, trng thi ny c xem l trng thi c nhiu ha hn nht dn ti ch. Mt s v d v hm nh gi: Bi ton tm kim ng i trn bn giao thng: g(u)=chiu di ng i t tp xut pht n tp hin ti u v h(u)= di ca ng chim bay t thnh ph u ti mt thnh ph ch. Bi ton 8 s: g(u)=s ln dch chuyn bin i trng thi ban u n trng thi u v h(u) c th l mt trong hai hm sau: Hm h1: Vi mi trng thi u, h1(u) l s cc s khng nm ng v tr trong trng thi ch. V d nh hnh v 6, h1(u) = 4, v cc cc s khng ng v tr l 3, 8, 6 v 1. Hm h2: Gi khong cch ca mt s trong mt trng thi l s bc dch chuyn t nht theo hng hoc ct a mt s ti v tr ca n trong trng thi ch. Vi mi trng thi u, h2(u) l tng cc khong cch ca cc s trong trng thi u. V d hnh v 6, h2(u) = 2 + 3 + 1 + 3 = 9, v khong cch ca s 3 l 2, s 8 l 3, s 6 l 1 v s 1 l 3.

Hnh 6: trng thi ban u u (hnh bn tri) v trng thi kt thc (hnh bn phi) ca bi ton 8 s.

c trng ca thut gii heuristic l nhanh chng tm li gii, nhng khng phi lun tm ra v li gii ny cha chc lun ng hay ti u m thng gn ng hay gn ti u. Phng php tm kim c thng tin (heuristic) c ba thut ton: Tm kim tt nht u tin: Tm kim theo b rng v s dng hm nh gi. Tm kim leo i: Tm kim theo su v s dng hm nh gi. Tm kim beam: Tm kim theo b rng v ch pht trin k nh tt nht mt mc v s dng hm nh gi.

2.6.1 Thut ton tm kim tt nht u tin (best-first search) Tm kim tt nht - u tin l tm kim theo b rng c hng dn bi hm nh gi. Trong tm kim theo b rng ta ln lt pht trin tt c cc nh mc hin ti sinh ra cc nh mc tip theo, cn trong tm kim tt nht - u tin ta chn nh pht trin l nh c nh gi tt nht trong s cc nh ang ch pht trin, nh ny c th mc hin ti hoc cc mc trn. V d xt th khng gian trng thi nh hnh 7a, ta c cy tm kim tt nht - u tin nh trong hnh 7b.

(b)

Hnh 7: th khng gian trng thi (7a), cy tm kim tt nht u tin (7b), cy tm kim leo i (7c), cy tm kim Beam (7d).

Thut tonint Best_First_Search {khi to danh sch open ch cha trng thi ban u;khi to danh sch close rng;loop{if (open rng) return 0;chn v loi trng thi u u danh sch open;thm u vo danh sch close;for (mi trng thi v k u) {if (v khng c trong close v open) {father(v) =u;if (v l trng thi kt thc) return 1;chn v vo open sao cho open c sp tng theo gi tr hm nh gi;}}}}

2.6.2 Thut ton tm kim leo i (hill-climbing search) Tm kim leo i l tm kim theo su c hng dn bi hm nh gi. Khi chn mt nh pht trin, ta chn nh c nh gi tt nht mc hin ti. V d xt th khng gian trng thi nh hnh 7a, ta c cy tm kim leo i nh trong hnh 7c.

Thut tonint Hill_Climbing_Search {khi to danh sch open ch cha trng thi ban u;khi to danh sch close rng;loop{if (open rng) return 0;chn v loi trng thi u u danh sch open;if (u l trng thi kt thc) return 1;thm u vo danh sch close;khi to danh sch L rng;for (mi trng thi v k u) {if (v khng c trong close v open) {father(v) =u;chn v vo L sao cho L c sp tng theo gi tr hm nh gi;}}chuyn danh sch L vo u danh sch open;}}

2.6.3 Thut ton tm kim beam (beam search) Tm kim beam ging nh tm kim theo b rng, n pht trin cc nh mt mc ri pht trin cc nh mc tip theo. Tuy nhin, trong tm kim theo b rng, ta pht trin tt c cc nh mt mc, cn trong tm kim beam, ta hn ch ch pht trin k nh c gi tr nh gi nh nht (k do ta chn). Do trong tm kim beam, bt k mc no cng ch c nhiu nht k nh c pht trin, trong khi tm kim theo b rng, s nh cn pht trin mc d l bd (b l nhn t nhnh). V d xt th khng gian trng thi trong hnh 7a. Chn k = 2, cy tm kim beam nh hnh 7d. Cc nh c gch di l cc nh c chn pht trin mi mc.

2.7. Cc thut ton tm kim ti u Bi ton tm kim ti u l tm ng i t trng thi ban u ti trng thi ch c tng di ca cc cung trn ng i l ngn nht. C th gii quyt bi ton tm tm kim ti u bng cch tm tt c cc ng i t trng thi ban u ti trng thi ch (c th s dng k thut tm kim m), sau so snh di ca chng, tm ra ng i ngn nht. Nu cy tm kim rt ln, vic tm ra tt c cc ng i i hi rt nhiu thi gian/khng gian nn thng khng kh thi. Cc thut ton tm kim ti u: Thut ton A* Thut ton nhnh_v_cn.

2.7.1 Thut ton A* Thut ton A* s dng thut ton tm kim tt nht u tin vi hm nh gi f(u)=g(u)+h(u). V d xt th khng gian trng thi trong hnh 8a c cy tm kim nh hnh 8b.

Thut tonint A_Star_Search {khi to danh sch open ch cha trng thi ban u u0 c g(u0)=0;khi to danh sch close rng;loop{if (open rng) return 0;chn v loi trng thi u u danh sch open;if (u l trng thi kt thc) return 1;thm u vo danh sch close;for (mi trng thi v k u) {g=g(u) + k(u,v); f =g(v) + h(v);if (v khng c trong close v open) {father(v) =u; g(v)=g; f(v)=f;chn v vo open sao cho open c sp tng theo f(v);}else{if (v c trong open v f= cost) {quay li u vng lp;}khi to danh sch L rng;for (mi trng thi v k u) {g(v)=g(u) + k(u,v);f(v) =g(v) + h(v);father(v) =u;chn v vo L sao cho L c sp tng theo hm nh gi f;}chuyn danh sch L vo u danh sch open;}}2.8. Tm kim c i th Xt tr chi hai ngi vi cc c im sau: Hai ngi chi thay phin nhau a ra cc nc i tun theo cc lut i no , cc lut ny l nh nhau cho c hai ngi v Hai ngi chi u c bit thng tin y v cc tnh th trong tr chi (khng nh trong chi bi, ngi chi khng th bit cc ngi chi khc cn nhng con bi g). Vn chi c xem nh vn tm kim nc i tt nht trong lt i ca my sao cho sau mt s nc i my ginh phn thng. Vic tm kim y s phc tp hn tm kim xt trong cc mc trc v my khng bit c ngi chi s i nc no trong tng lai.

Khng gian trng thi Vn chi c c th xem nh vn tm kim trong khng gian trng thi vi mi trng thi l mt tnh th (s b tr cc qun ca hai bn trn bn c). Trng thi ban u l s sp xp cc qun c ca hai bn lc bt u cuc chi. Cc trng thi kt thc l cc tnh th m cuc chi dng, thng c xc nh bi mt s iu kin dng no . Cc ton t l cc nc i hp l. Mt hm kt cuc (payoff function): ng mi trng thi kt thc gn mt gi tr no . Chng hn nh c vua, mi trng thi kt thc ch c th l thng, hoc thua (i vi Trng) hoc ha. Do , ta c th xc nh hm kt cuc l hm nhn gi tr 1 ti cc trng thi kt thc l thng (i vi Trng), -1 ti cc trng thi kt thc l thua (i vi Trng) v 0 ti cc trng thi kt thc ha. Trong mt s tr chi khc, chng hn tr chi c tnh im, hm kt cuc c th nhn gi tr nguyn trong khong [-k, k] vi k l mt s nguyn dng no . My tnh (Trng) cn tm mt dy nc i xen k vi cc nc i ca ngi chi (en) sao cho to thnh mt ng i t trng thi ban u ti trng thi kt thc l thng cho Trng. Khng gian trng thi trn c th biu din di dng cy tr chi.

Cy tr chi Gi nh ng vi trng thi m Trng (en) a ra nc i l nh Trng (en). Nu mt nh l Trng (en) th cc nh con ca n l cc nc i hp l ca Trng (en). Do trn cng mt mc ca cy th cc nh u l Trng hoc u l en. Gc ca cy ng vi trng thi ban u, cc l ca cy ng vi cc trng thi kt thc. V d tr chi Dodgen. C hai qun Trng v hai qun en, ban u c xp vo bn c 3*3 (hnh 9a). Qun en c th i ti trng bn phi, trn hoc di. Qun Trng c th i ti trng bn tri, bn phi, trn. Qun en nu ct ngoi cng bn phi c th i ra khi bn c, qun Trng nu hng trn cng c th i ra khi bn c. Ai a hai qun ca mnh ra khi bn c trc s thng, hoc to ra tnh th m i phng khng i c cng s thng. Gi s en i trc, ta c cy tr chi c biu din nh trong hnh 9b.

Cc thut ton tm kim c i th Thut ton MINIMAX Thut ton ALPHA - BETA

2.8.1. Thut ton MINIMAX Qu trnh chi c l qu trnh Trng v en thay phin nhau a ra quyt nh, thc hin mt trong s cc nc i hp l. Trn cy tr chi, qu trnh s to ra ng i t gc ti l. Gi s ti mt thi im no , ng i dn ti nh u. Nu u l nh Trng (en) th Trng (en) cn chn i ti mt trong cc nh en (Trng) v l con ca u. Ti nh en (Trng) v m Trng (en) va chn, en (Trng) s phi chn i ti mt trong cc nh Trng (en) w l con ca v. Qu trnh trn s dng li khi t ti mt nh l l ca cy. Gi s Trng cn tm nc i ti nh u. Nc i ti u cho Trng l nc i dn ti nh con ca v l nh tt nht (cho Trng) trong s cc nh con ca u. Ta cn gi thit rng, n lt i th chn nc i t v, en cng s chn nc w i tt nht cho anh ta. Nh vy, chn nc i ti u cho Trng ti nh u, ta cn phi xc nh gi tr cc nh ca cy tr chi gc u. Gi tr ca cc nh l (ng vi cc trng thi kt thc) l gi tr ca hm kt cuc. nh c gi tr cng ln cng tt cho Trng, nh c gi tr cng nh cng tt cho en. xc nh gi tr cc nh ca cy tr chi gc u, ta i t mc thp nht ln gc u. Gi s v l nh trong ca cy v gi tr cc nh con ca n c xc nh. Khi nu v l nh Trng th gi tr ca n c xc nh l gi tr ln nht trong cc gi tr ca cc nh con. Cn nu v l nh en th gi tr ca n l gi tr nh nht trong cc gi tr ca cc nh con. V d xt cy tr chi trong hnh 10, gc a l nh Trng. Gi tr ca cc nh l s ghi cnh mi nh. nh i l Trng, nn gi tr ca n l max(3,-2) = 3, nh d l nh en, nn gi tr ca n l min(2, 3, 4) = 2.

Thut ton MiniMax Tnh gi tr cho nh Trng uint MaxVal(u){if (u l nh kt thc) return f(u);// f(u) l gi tr ca hm kt cuc ti nh kt thc uelse return max{MinVal(v)| v l nh con ca u};} Tnh gi tr cho nh en uint MinVal(u){ if (u l nh kt thc) return f(u);else return min{MaxVal(v)| v l nh con ca u};} Tm nc i v cho nh Trng uvoid Minimax(u, v){val = -;for (mi w l nh con ca u){if (MinVal(w)>val) {val = MinVal(w); v = w;}}}

Nhn xt Thut ton chn nc i nh trn gi l Minimax v Trng chn nc i dn ti nh con c gi tr l max ca cc gi tr cc nh con, v en p li bng nc i ti nh c gi tr l min ca cc gi tr cc nh con. Thut ton Minimax l thut ton tm kim theo su. Thut ton Minimax i hi ta phi xem xt ton b cc nh ca cy tr chi. Trong cc tr chi hay, cy tr chi l cc k ln. Chng hn, i vi c vua, ch tnh n su 40, th cy tr chi c khong 10120 nh! Nu cy c cao m, v ti mi nh c b nc i th phc tp v thi gian ca thut ton Minimax l O(bm). c th tm ra nhanh nc i tt (khng phi l ti u) thay cho vic s dng hm kt cuc v xem xt tt c cc kh nng dn ti cc trng thi kt thc, chng ta s s dng hm nh gi v ch xem xt mt b phn ca cy tr chi.

Hm nh gi Hm nh gi eval ng vi mi trng thi u ca tr chi vi mt gi tr s eval(u), gi tr ny l s nh gi li thca trng thi u. eval(u) l s dng cng ln th trng thi u cng thun li cho Trng; eval(u) l s m cng nh th u cng thun li cho en; eval(u) 0 th khng li th cho ai c. Cht lng ca chng trnh chi c ph thuc rt nhiu vo hm nh gi. Nu hm nh gi cho nh gi khng chnh xc v cc trng thi, n c th hng dn ta i ti trng thi c xem l tt, nhng thc t li rt bt li cho ta. Thit k mt hm nh gi tt l mt vic kh, i hi ta phi quan tm n nhiu yu t: cc qun cn li ca hai bn, s b tr ca cc qun ,... C s mu thun gia chnh xc ca hm nh gi v thi gian tnh ca n. Hm nh gi chnh xc s i hi rt nhiu thi gian tnh ton, m ngi chi li b gii hn bi thi gian phi a ra nc i. V d 1: xy dng hm nh gi cho c vua. Mi loi qun c gn mt gi tr s ph hp vi sc mnhca n. Chng hn, mi tt Trng (en) c cho 1 (-1), m hoc tng Trng (en) c cho 3 (-3), xe Trng (en) c cho 5 (-5) v hong hu Trng (en) c cho 9 (-9). Ly tng gi tr ca tt c cc qun trong mt trng thi, ta s c gi tr nh gi ca trng thi . Hm nh gi nh th c gi l hm tuyn tnh c trng s, v n c th biu din di dng: s1w1+s2w2+... +snwn . Trong , wi l gi tr mi loi qun loi i, cn si l s qun loi i. Trong cch nh gi ny, ta khng tnh n s b tr ca cc qun, cc mi tng quan gia chng. V d 2: xy dng hm nh gi cho tr chi Dodgem. Mi qun Trng mt v tr trn bn c c cho mt gi tr tng ng trong bng hnh 11a. Cn mi qun en mt v tr s c cho mt gi tr tng ng trong bng hnh 11b. Nu qun Trng cn trc tip mt qun en, n c thm 40 im, nu cn gin tip n c thm 30 im (Xem hnh 11c, 11d). Tng t, nu qun en cn trc tip qun Trng n c thm -40 im, cn cn gin tip n c thm -30 im. Trong nh gi ny, ta xt n v tr ca cc qun v mi tng quan gia cc qun. p dng cc qui tc trn, ta tnh c gi tr ca trng thi hnh 12(a) l 75, gi tr ca trng thi hnh 12(b) l -5.

hn ch khng gian tm kim, khi cn xc nh nc i cho Trng ti u, ta ch xem xt cy tr chi gc u ti cao h no . p dng th tc Minimax cho cy tr chi gc u, cao h v s dng gi tr ca hm nh gi cho cc l ca cy , chng ta s tm c nc i tt cho Trng ti u.

2.8.2. Thut ton ct ta Alphabeta (Alphabeta pruning) Trong chin lc tm kim MiniMax, tm kim nc i tt cho Trng ti trng thi u, cho d ta hn ch khng gian tm kim trong phm vi cy tr chi gc u vi cao h, th s nh ca cy tr chi ny cng cn rt ln vi h 3. Chng hn trong c vua, nhn t nhnh trung bnh khong 35, thi gian phi a ra nc i l = th loi b tt c cc nh con cn li ca nh en ny. Tng t ti mt nh Trng, nu c >= th loi b tt c cc nh con cn li ca nh Trng ny.

Thut ton ct ta Alpha-beta Tnh gi tr cho nh Trng uint MaxVal(u, , ){// , truyn theo kiu tham trif (u l l ca cy hn ch hoc u l nh kt thc) return eval(u);else for (mi nh v l con ca u){ =max[, MinVal(v, , )];if ( >= ) break; // Ct b cc cy con t cc nh v cn li}return ;}

Tnh gi tr cho nh en uint MinVal(u, , ){ // , truyn theo kiu tham trif (u l l ca cy hn ch hoc u l nh kt thc) return eval(u);else for (mi nh v l con ca u){ =min[, MaxVal(v, , )];if ( >= ) break; // Ct b cc cy con t cc nh v cn li}return ;}

Tm nc i v cho nh Trng uvoid Alpha_beta(u, v){ = -; = ;for (mi w l nh con ca u){if (MinVal(w, , )> ) { = MinVal(w, , ); v = w;}}}

V d xt cy tr chi gc 1 l nh Trng (hnh 14), s ghi cnh cc nh l l gi tr ca hm nh gi. p dng thut ton ct ta Anpha_beta ta xc nh c nc i tt nht cho Trng ti 1, l nc i dn ti nh 3 c gi tr 10. -712364951413781012111517161819205-31015810-512188172

Hnh 14: cy tr chi vi 1 l nh trng, tm nc i tt nht cho 1. Ci t khc ca thut ton ct ta Alpha-beta int alpha_beta(u, depth, , , player){if (depth== 0 hoc u l nh kt thc) return val(u);if (player){//tnh gi tr nh trngfor (mi nh v l con ca u){ = max(, alpha_beta(v, depth - 1, , , FALSE)); if ( ) break;//ct b cc nhnh con v cn li} return ; }else{// tnh gi tr nh en for (mi nh v l con ca u){ = min(, alpha_beta(v, depth - 1, , , TRUE)); if ( ) break; //ct b cc nhnh con v cn li} return ;}}Di y li gi anpha_beta vi trng thi ban u l origin (nh trng) v su l depth, v l nc i k tip c chn cho u int v=alpha_beta(origin, depth, -, +, TRUE);

2.9 Biu din vn bng cc vn nh hn, tm kim trn th V/Hoc2.9.1. Bin i vn v cc vn nh hn gii quyt mt vn ta c th bin i vn v cc vn n gin hn. Qu trnh bin i s c tip tc cho ti khi dn ti cc vn con c th gii quyt c d dng. Bi ton cn gii l trng thi ban u, cc trng thi kt thc l cc bi ton con bit cch gii. Mi cch quy bi ton v cc bi ton con l mt ton t, ton t c dng AB, C,... Chng hn, i vi bi ton tnh tch phn bt nh, ta c th xc nh cc ton t dng: (f+ g) dx fdx, gdx. Cc ton t c th l a tr, ngha l c th bin i mt trng thi thnh nhiu trng thi khc. V d 1: tnh tch phn bt nh S dng cc quy tc tnh tch phn (quy tc tnh tch phn ca mt tng, quy tc tnh tch phn tng phn...) v s dng cc php bin i bin s, cc php bin i cc hm (chng hn, cc php bin i lng gic),... a tch phn cn tnh v tch phn ca cc hm s s cp m chng ta bit cch tnh. Chng hn, i vi tch phn (xex+ x3)dx , p dng quy tc tch phn ca tng ta a v hai tch phn xexdx v x3dx. p dng quy tc tch phn tng phn ta a tch phn xexdx v tch phn exdx. Qu trnh trn c th biu din bi th trong hnh 15.

V d 2: tm ng i trn bn giao thngGi s ta c bn giao thng hnh 16a. Gi s ta cn tm ng i t thnh ph A ti thnh ph B. C con sng chy qua hai thnh ph E v G v c cu qua sng mi thnh ph . Mi ng i t A n B ch c th qua E hoc G. Qu trnh bin i c th biu din di dng th v/hoc trong hnh 16 b. y mi bi ton tm ng i t mt thnh ph ti mt thnh ph khc ng vi mt trng thi. Cc trng thi kt thc l cc trng thi ng vi cc bi ton tm ng i hin nhin c, chng hn t t D n E, bi v c ng ni D vi E.

2.9.2. th v/hoc Khng gian trng thi m t vic quy vn v cc vn con c th biu din di dng th c hng c bit c gi l th v/hoc. th ny c xy dng nh sau: Mi bi ton ng vi mt nh ca th. Nu c mt ton t quy mt bi ton v mt bi ton khc, chng hn R: a b, th trong th s c cung gn nhn R i t nh a ti nh b. i vi mi ton t quy mt bi ton v mt s bi ton con, chng hn R: a b, c, d ta a vo mt nh mi a1, nh ny biu din tp cc bi ton con {b, c, d} nh hnh 17.

Cc nh ca th v/hoc s c gn nhn gii c hoc khng gii c. Cc nh gii c, c xc nh quy nh sau: Cc nh kt thc l cc nh gii c. Nu u khng phi l nh kt thc, nhng c mt ton t R sao cho tt c cc nh k u theo R u gii c th u gii c. Cc nh khng gii c, c xc nh quy nh sau: Cc nh khng phi l nh kt thc v khng c nh k, l cc nh khng gii c. Nu u khng phi l nh kt thc v vi mi ton t R p dng c ti u u c mt nh v k u theo R khng gii c, th u khng gii c. V d xt khng gian trng thi sau: Trng thi ban u (bi ton cn gii) l 1 Tp cc ton t bin i:R1: 1 4, 5, 6R2: 1 4, 10R3: 1 7, 8R4: 4 2, 3R5: 6 9R6: 6 3, 7R7: 10 5, 11R8: 10 8 Tp cc trng thi kt thc (cc bi ton s cp gii c) l T = {2, 3, 5, 7, 11}.

Khng gian trng thi trn c th biu din bi th v/hoc trong hnh 18. th v/hoc trong hnh 18a c th rt gn thnh th trong hnh 18b.

p dng lin tip cc ton t, ta c th a bi ton cn gii v mt tp cc bi ton con s cp gii c. Trong v d trn nu ta ln lt p dng cc ton t R1, R4, R6, ta s quy bi ton 1 v tp cc bi ton con {2, 3,5, 7} l cc bi ton s cp gii c. Hoc nu ln lt p dng R2, R4, R7 ta s quy bi ton a v tp cc bi ton con {2, 3, 5, 11} cng l s cp gii c v tng ng xy dng c hai cy trong hnh 19 gi l cy nghim.

Cy nghim l mt cy, trong : Gc ca cy ng vi bi ton cn gii. Tt c cc l ca cy l cc nh kt thc (nh ng vi cc bi ton s cp). Nu u l nh trong ca cy, th cc nh con ca u l tt c cc nh k u theo mt ton t no . Nu bi ton a gii c th s c mt cy nghim gc a, v ngc li nu c mt cy nghim gc a th a gii c. Mt bi ton gii c c th c nhiu cy nghim, mi cy nghim biu din mt cch gii bi ton . Th t gii cc bi ton con trong mt cy nghim l nh sau. Bi ton ng vi nh u ch c gii sau khi tt c cc bi ton ng vi cc nh con ca u c gii. Chng hn, vi cy nghim trong hnh 19a th t gii cc bi ton c th l 2, 3, 4, 5, 7, 6, 1. Vn by gi l tm kim trn th v/hoc xc nh c nh ng vi bi ton ban u l gii c hay khng gii c, v nu gii c th xy dng mt cy nghim.

2.9.3. Tm kim trn th v/hoc S dng k thut tm kim theo su trn th v/hoc nh du cc nh l gii c hoc khng gii c. Xut pht t nh ng vi bi ton ban u, i xung theo su. Nu gp nh u l nh kt thc th u c nh du gii c. Nu gp nh u khng phi l nh kt thc v t u khng i tip c, th u c nh du khng gii c. Nu gp nh u khng phi l nh kt thc v t u i tip c th ta ln lt xt cc nh v k u theo mt ton t R no , nu nh du c mt nh v khng gii c th khng cn xt cc nh v cn li m tr v u, xt cc nh v k u theo mt ton t khc. Nu tt c cc nh k u theo mt ton t no c nh du gii c th u s c nh du gii c v quay ln cha ca u. Nu tt c cc nh k u theo mi ton t u gp cc nh k c nh du khng gii c, th u c nh du khng gii c v quay ln cha ca u.

Thut ton Hm Solvable(u) tr v gi tr 1 nu u gii c v tr v gi tr 0 nu u khng gii c. Vi mi ton t R p dng c ti u, bin Ok=1 nu tt c cc nh v k u theo R u gii c, v Ok=0 nu c mt nh v k u theo R khng gii c. Bin Operator(u) ghi li ton t p dng thnh cng ti u, tc l Operator(u) = R nu mi nh v k u theo R u gii c. Bin Operator dng hng dn cch gii nu bi ton gii c.

int Solvable(u){if (u l nh kt thc) return 1; if (u khng l nh kt thc v khng c nh k) return 0;for (mi ton t R p dng c ti u){Ok=1;for (mi v k u theo R){if (Solvable(v)==0) {Ok =0; break;}}if (Ok==1){//u giai duoc theo Roperator(u)=R; return 1;}}return 0;}

Nhn xt Nu cy tm kim khng c nhnh v hn, thut ton tm kim theo su trn th v/hoc s xc nh c bi ton ban u l gii c hay khng gii c. Nu cy tm kim c nhnh v hn th cha chc thut ton dng, v c th n b sa ly khi i xung nhnh v hn. Trong trng hp ny ta nn s dng thut ton tm kim su lp. Nu bi ton ban u gii c, th bng cch s dng bin mng Operator ta s xy dng c cy nghim.

2.10. Bi tp Bi 1:Mt ngi nng dn c vi mt con tru, mt con h v mt b c bn b sng. ng ta mun tt c cng sang b bn kia. Ngi nng dn ch c mt chic thuyn v thuyn ngoi ngi nng dn ch ch c thm 1 trong 3 vt trn. Khng c ch c con tru v con h cng mt bn b sng v h c th n tht tru, tng t i vi con tru v b c. Lm th no tt c cng qua sng?