of 131/131
TTNT CHƯƠNG 1 : THUẬT TOÁN – THUẬT GIẢI I. KHÁI NIỆM THUẬT TOÁN – THUẬT GIẢI II. THUẬT GIẢI HEURISTIC III. CÁC PHƯƠNG PHÁP TÌM KIẾM HEURISTIC III.1. Cấu trúc chung của bài toán tìm kiếm III.2. Tìm kiếm chiều sâu và tìm kiếm chiều rộng III.3. Tìm kiếm leo đồi III.4. Tìm kiếm ưu tiên tối ưu (best-first search) III.5. Thuật giải AT III.6. Thuật giải AKT III.7. Thuật giải A* III.8. Ví dụ minh họa hoạt động của thuật giải A* III.9. Bàn luận về A* III.10. Ứng dụng A* để giải bài toán Ta-canh III.11. Các chiến lược tìm kiếm lai I. TỔNG QUAN THUẬT TOÁN – THUẬT GIẢI Trong quá trình nghiên cứu giải quyết các vấn đề – bài toán, người ta đã đưa ra những nhận xét như sau: Có nhiều bài toán cho đến nay vẫn chưa tìm ra một cách giải theo kiểu thuật toán và cũng không biết là có tồn tại thuật toán hay không. 1

Thuat Toan va Giai Thuat

  • View
    10.933

  • Download
    1

Embed Size (px)

Text of Thuat Toan va Giai Thuat

TTNT

CHNG 1 : THUT TON THUT GII

I. KHI NIM THUT TON THUT GII II. THUT GII HEURISTIC III. CC PHNG PHP TM KIM HEURISTIC III.1. Cu trc chung ca bi ton tm kim III.2. Tm kim chiu su v tm kim chiu rng III.3. Tm kim leo i III.4. Tm kim u tin ti u (best-first search) III.5. Thut gii AT III.6. Thut gii AKT III.7. Thut gii A* III.8. V d minh ha hot ng ca thut gii A* III.9. Bn lun v A* III.10. ng dng A* gii bi ton Ta-canh III.11. Cc chin lc tm kim lai

I. TNG QUAN THUT TON THUT GIITrong qu trnh nghin cu gii quyt cc vn bi ton, ngi ta a ra nhng nhn xt nh sau: C nhiu bi ton cho n nay vn cha tm ra mt cch gii theo kiu thut ton v cng khng bit l c tn ti thut ton hay khng. C nhiu bi ton c thut ton gii nhng khng chp nhn c v thi gian gii theo thut ton qu ln hoc cc iu kin cho thut ton kh p ng. C nhng bi ton c gii theo nhng cch gii vi phm thut ton nhng vn chp nhn c.

1

TTNT

T nhng nhn nh trn, ngi ta thy rng cn phi c nhng i mi cho khi nim thut ton. Ngi ta m rng hai tiu chun ca thut ton: tnh xc nh v tnh ng n. Vic m rng tnh xc nh i vi thut ton c th hin qua cc gii thut quy v ngu nhin. Tnh ng ca thut ton by gi khng cn bt buc i vi mt s cch gii bi ton, nht l cc cch gii gn ng. Trong thc tin c nhiu trng hp ngi ta chp nhn cc cch gii thng cho kt qu tt (nhng khng phi lc no cng tt) nhng t phc tp v hiu qu. Chng hn nu gii mt bi ton bng thut ton ti u i hi my tnh thc hin nhiu nm th chng ta c th sn lng chp nhn mt gii php gn ti u m ch cn my tnh chy trong vi ngy hoc vi gi. Cc cch gii chp nhn c nhng khng hon ton p ng y cc tiu chun ca thut ton thng c gi l cc thut gii. Khi nim m rng ny ca thut ton m ca cho chng ta trong vic tm kim phng php gii quyt cc bi ton c t ra. Mt trong nhng thut gii thng c cp n v s dng trong khoa hc tr tu nhn to l cc cch gii theo kiu Heuristic

II. THUT GII HEURISTICThut gii Heuristic l mt s m rng khi nim thut ton. N th hin cch gii bi ton vi cc c tnh sau: Thng tm c li gii tt (nhng khng chc l li gii tt nht) Gii bi ton theo thut gii Heuristic thng d dng v nhanh chng a ra kt qu hn so vi gii thut ti u, v vy chi ph thp hn. Thut gii Heuristic thng th hin kh t nhin, gn gi vi cch suy ngh v hnh ng ca con ngi. C nhiu phng php xy dng mt thut gii Heuristic, trong ngi ta thng da vo mt s nguyn l c bn nh sau: Nguyn l vt cn thng minh: Trong mt bi ton tm kim no , khi khng gian tm kim ln, ta thng tm cch gii hn li khng gian tm kim hoc thc hin mt kiu d tm c bit da vo c th ca bi ton nhanh chng tm ra mc tiu. Nguyn l tham lam (Greedy): Ly tiu chun ti u (trn phm vi ton cc) ca bi ton lm tiu chun chn la hnh ng cho phm vi cc b ca tng bc (hay tng giai on) trong qu trnh tm kim li gii. Nguyn l th t: Thc hin hnh ng da trn mt cu trc th t hp l ca khng gian kho st nhm nhanh chng t c mt li gii tt.

2

TTNT

Hm Heuristic: Trong vic xy dng cc thut gii Heuristic, ngi ta thng dng cc hm Heuristic. l cc hm nh gi th, gi tr ca hm ph thuc vo trng thi hin ti ca bi ton ti mi bc gii. Nh gi tr ny, ta c th chn c cch hnh ng tng i hp l trong tng bc ca thut gii. Bi ton hnh trnh ngn nht ng dng nguyn l Greedy Bi ton: Hy tm mt hnh trnh cho mt ngi giao hng i qua n im khc nhau, mi im i qua mt ln v tr v im xut pht sao cho tng chiu di on ng cn i l ngn nht. Gi s rng c con ng ni trc tip t gia hai im bt k. Tt nhin ta c th gii bi ton ny bng cch lit k tt c con ng c th i, tnh chiu di ca mi con ng ri tm con ng c chiu di ngn nht. Tuy nhin, cch gii ny li c phc tp 0(n!) (mt hnh trnh l mt hon v ca n im, do , tng s hnh trnh l s lng hon v ca mt tp n phn t l n!). Do , khi s i l tng th s con ng phi xt s tng ln rt nhanh. Mt cch gii n gin hn nhiu v thng cho kt qu tng i tt l dng mt thut gii Heuristic ng dng nguyn l Greedy. T tng ca thut gii nh sau: T im khi u, ta lit k tt c qung ng t im xut pht cho n n i l ri chn i theo con ng ngn nht. Khi i n mt i l, chn i n i l k tip cng theo nguyn tc trn. Ngha l lit k tt c con ng t i l ta ang ng n nhng i l cha i n. Chn con ng ngn nht. Lp li qu trnh ny cho n lc khng cn i l no i. Bn c th quan st hnh sau thy c qu trnh chn la. Theo nguyn l Greedy, ta ly tiu chun hnh trnh ngn nht ca bi ton lm tiu chun cho chn la cc b. Ta hy vng rng, khi i trn n on ng ngn nht th cui cng ta s c mt hnh trnh ngn nht. iu ny khng phi lc no cng ng. Vi iu kin trong hnh tip theo th thut gii cho chng ta mt hnh trnh c chiu di l 14 trong khi hnh trnh ti u l 13. Kt qu ca thut gii Heuristic trong trng hp ny ch lch 1 n v so vi kt qu ti u. Trong khi , phc tp ca thut gii Heuristic ny ch l 0(n2).

3

TTNT

Hnh : Gii bi ton s dng nguyn l Greedy

Tt nhin, thut gii theo kiu Heuristic i lc li a ra kt qu khng tt, thm ch rt t nh trng hp hnh sau.

Bi ton phn vic ng dng ca nguyn l th t Mt cng ty nhn c hp ng gia cng m chi tit my J1, J2, Jm. Cng ty c n my gia cng ln lt l P1, P2, Pn. Mi chi tit u c th c gia cng trn bt k my no. Mt khi gia cng mt chi tit trn mt my, cng vi s tip tc cho n lc hon thnh, khng th b ct ngang. gia cng mt vic J1 trn mt my bt k ta cn dng mt thi gian tng ng l t1. Nhim v ca cng ty l phi lm sao gia cng xong ton b n chi tit trong thi gian sm nht.

4

TTNT

Chng ta xt bi ton trong trng hp c 3 my P1, P2, P3 v 6 cng vic vi thi gian l t1=2, t2=5, t3=8, t4=1, t5=5, t6=1. ta c mt phng n phn cng (L) nh hnh sau:

Theo hnh ny, ti thi im t=0, ta tin hnh gia cng chi tit J2 trn my P1, J5 trn P2 v J1 ti P3. Ti thi im t=2, cng vic J1 c hon thnh, trn my P3 ta gia cng tip chi tit J4. Trong lc , hai my P1 v P2 vn ang thc hin cng vic u tin mnh S phn vic theo hnh trn c gi l lc GANTT. Theo lc ny, ta thy thi gian hon thnh ton b 6 cng vic l 12. Nhn xt mt cch cm tnh ta thy rng phng n (L) va thc hin l mt phng n khng tt. Cc my P1 v P2 c qu nhiu thi gian rnh. Thut ton tm phng n ti u L0 cho bi ton ny theo kiu vt cn c phc tp c O(mn) (vi m l s my v n l s cng vic). By gi ta xt n mt thut gii Heuristic rt n gin ( phc tp O(n)) gii bi ton ny. Sp xp cc cng vic theo th t gim dn v thi gian gia cng. Ln lt sp xp cc vic theo th t vo my cn d nhiu thi gian nht. Vi t tng nh vy, ta s c mt phng n L* nh sau:

5

TTNT

R rng phng n L* va thc hin cng chnh l phng n ti u ca trng hp ny v thi gian hon thnh l 8, ng bng thi gian ca cng vic J3. Ta hy vng rng mt gii Heuristic n gin nh vy s l mt thut gii ti u. Nhng tic thay, ta d dng a ra c mt trng hp m thut gii Heuristic khng a ra c kt qu ti u.

Nu gi T* l thi gian gia cng xong n chi tit my do thut gii Heuristic a ra v T0 l thi gian ti u th ngi ta chng minh c rng

, M l s my Vi kt qu ny, ta c th xc lp c sai s m chng ta phi gnh chu nu dng Heuristic thay v tm mt li gii ti u. Chng hn vi s my l 2 (M=2) ta c , v chnh l sai s cc i m trng hp trn gnh chu. Theo cng thc ny, s my cng ln th sai s cng ln.6

TTNT

Trong trng hp M ln th t s 1/M xem nh bng 0 . Nh vy, sai s ti a m ta phi chu l T* 4/3 T0, ngha l sai s ti a l 33%. Tuy nhin, kh tm ra c nhng trng hp m sai s ng bng gi tr cc i, d trong trng hp xu nht. Thut gii Heuristic trong trng hp ny r rng cho chng ta nhng li gii tng i tt.

III. CC PHNG PHP TM KIM HEURISTICQua cc phn trc chng ta tm hiu tng quan v tng ca thut gii Heuristic (nguyn l Greedy v sp th t). Trong mc ny, chng ta s i su vo tm hiu mt s k thut tm kim Heuristic mt lp bi ton rt quan trng v c nhiu ng dng trong thc t. III.1. Cu trc chung ca bi ton tm kim tin li cho vic trnh by, ta hy dnh cht thi gian lm r hn "i tng" quan tm ca chng ta trong mc ny. Mt cch chung nht, nhiu vn -bi ton phc tp u c dng "tm ng i trong th" hay ni mt cch hnh thc hn l "xut pht t mt nh ca mt th, tm ng i hiu qu nht n mt nh no ". Mt pht biu khc thng gp ca dng bi ton ny l : Cho trc hai trng thi T0 v TG hy xy dng chui trng thi T0, T1, T2, ..., Tn-1, Tn = TG sao cho : tha mn mt iu kin cho trc (thng l nh nht). Trong , Ti thuc tp hp S (gi l khng gian trng thi state space) bao gm tt c cc trng thi c th c ca bi ton v cost(Ti-1, Ti) l chi ph bin i t trng thi Ti1 sang trng thi Ti. D nhin, t mt trng thi Ti ta c nhiu cch bin i sang trng thi Ti+1. Khi ni n mt bin i c th t Ti-1 sang Ti ta s dng thut ng hng i (vi ng ni v s la chn).

Hnh : M hnh chung ca cc vn -bi ton phi gii quyt bng phng php tm kim li gii. Khng gian tm kim l mt tp hp trng thi - tp cc nt ca th. Chi ph cn thit chuyn t trng thi T

7

TTNT ny sang trng thi Tk c biu din di dng cc con s nm trn cung ni gia hai nt tng trng cho hai trng thi.

a s cc bi ton thuc dng m chng ta ang m t u c th c biu din di dng th. Trong , mt trng thi l mt nh ca th. Tp hp S bao gm tt c cc trng thi chnh l tp hp bao gm tt c nh ca th. Vic bin i t trng thi Ti-1 sang trng thi Ti l vic i t nh i din cho Ti-1 sang nh i din cho Ti theo cung ni gia hai nh ny. III.2. Tm kim chiu su v tm kim chiu rng bn c c th hnh dung mt cch c th bn cht ca thut gii Heuristic, chng ta nht thit phi nm vng hai chin lc tm kim c bn l tm kim theo chiu su (Depth First Search) v tm kim theo chiu rng (Breath First Search). S d chng ta dng t chin lc m khng phi l phng php l bi v trong thc t, ngi ta hu nh chng bao gi vn dng mt trong hai kim tm kim ny mt cch trc tip m khng phi sa i g. III.2.1. Tm kim chiu su (Depth-First Search) Trong tm kim theo chiu su, ti trng thi (nh) hin hnh, ta chn mt trng thi k tip (trong tp cc trng thi c th bin i thnh t trng thi hin ti) lm trng thi hin hnh cho n lc trng thi hin hnh l trng thi ch. Trong trng hp ti trng thi hin hnh, ta khng th bin i thnh trng thi k tip th ta s quay lui (backtracking) li trng thi trc trng thi hin hnh (trng thi bin i thnh trng thi hin hnh) chn ng khc. Nu trng thi trc ny m cng khng th bin i c na th ta quay lui li trng thi trc na v c th. Nu quay lui n trng thi khi u m vn tht bi th kt lun l khng c li gii. Hnh nh sau minh ha hot ng ca tm kim theo chiu su.

8

TTNT

Hnh : Hnh nh ca tm kim chiu su. N ch lu "m rng" trng thi c chn m khng "m rng" cc trng thi khc (nt mu trng trong hnh v).

III.2.2. Tm kim chiu rng (Breath-First Search) Ngc li vi tm kim theo kiu chiu su, tm kim chiu rng mang hnh nh ca vt du loang. T trng thi ban u, ta xy dng tp hp S bao gm cc trng thi k tip (m t trng thi ban u c th bin i thnh). Sau , ng vi mi trng thi Tk trong tp S, ta xy dng tp Sk bao gm cc trng thi k tip ca Tk ri ln lt b sung cc Sk vo S. Qu trnh ny c lp li cho n lc S c cha trng thi kt thc hoc S khng thay i sau khi b sung tt c Sk.

9

TTNT

Hnh : Hnh nh ca tm kim chiu rng. Ti mt bc, mi trng thi u c m rng, khng b st trng thi no.

Chiu suTnh hiu qu Hiu qu khi li gii nm su trong cy tm kim v c mt phng n chn hng i chnh xc. Hiu qu ca chin lc ph thuc vo phng n chn hng i. Phng n cng km hiu qu th hiu qu ca chin lc cng gim. Thun li khi mun tm ch mt li gii. Ch lu li cc trng thi cha xt n. Vt cn ton b Phng n chn hng i tuyt i chnh xc. Li gii c xc nh mt cch trc tip.

Chiu rngHiu qu khi li gii nm gn gc ca cy tm kim. Hiu qu ca chin lc ph thuc vo su ca li gii. Li gii cng xa gc th hiu qu ca chin lc cng gim. Thun li khi mun tm nhiu li gii. Phi lu ton b cc trng thi. Vt cn ton b. Vt cn ton b.

Lng b nh s dng lu tr cc trng thi Trng hp xu nht Trng hp tt nht

Tm kim chiu su v tm kim chiu rng u l cc phng php tm kim c h thng v chc chn tm ra li gii. Tuy nhin, do bn cht l vt cn nn vi nhng bi ton c khng gian ln th ta khng th dng hai chin lc ny c. Hn na, hai chin lc ny u c tnh cht "m qung" v chng khng ch n nhng thng tin (tri thc) trng thi hin thi v thng tin v ch cn t ti cng mi quan h gia chng. Cc tri thc ny v cng quan trng v rt c ngha thit k cc thut gii hiu qu hn m ta sp sa bn n. III.3. Tm kim leo i III.3.1. Leo i n gin Tm kim leo i theo ng ngha, ni chung, thc cht ch l mt trng hp c bit ca tm kim theo chiu su nhng khng th quay lui. Trong tm kim leo i, vic la chn trng thi tip theo c quyt nh da trn mt hm Heuristic. Hm Heuristic l g ? Thut ng "hm Heuristic" mun ni ln iu g? Chng c g gh gm. Bn quen vi n ri! n gin ch l mt c lng v kh nng dn n li gii tnh t trng thi (khong cch gia trng thi hin ti v trng thi ch). Ta s quy c gi hm ny l h trong sut gio trnh ny. i lc ta cng cp n chi ph ti u thc s t mt trng thi dn n li gii. Thng thng, gi tr ny l khng th tnh ton c (v tnh10

TTNT

c ng ngha l bit con ng n li gii !) m ta ch dng n nh mt c s suy lun v mt l thuyt m thi ! Hm h, ta quy c rng, lun tr ra kt qu l mt s khng m. bn c thc s nm c ngha ca hai hm ny, hy quan st hnh sau trong minh ha chi ph ti u thc s v chi ph c lng.

Hnh Chi ph c lng h = 6 v chi ph ti u thc s h = 4+5 = 9 (i theo ng 1-3-7) Bn ang trong mt thnh ph xa l m khng c bn trong tay v ta mun i vo khu trung tm? Mt cch suy ngh n gin, chng ta s nhm vo hng nhng ta cao c ca khu trung tm!

T tng 1) Nu trng thi bt u cng l trng thi ch th thot v bo l tm c li gii. Ngc li, t trng thi hin hnh (Ti) l trng thi khi u (T0) 2) Lp li cho n khi t n trng thi kt thc hoc cho n khi khng tn ti mt trng thi tip theo hp l (Tk) ca trng thi hin hnh : a. t Tk l mt trng thi tip theo hp l ca trng thi hin hnh Ti. b. nh gi trng thi Tk mi : b.1. Nu l trng thi kt thc th tr v tr ny v thot. b.2. Nu khng phi l trng thi kt thc nhng tt hn trng thi hin hnh th cp nht n thnh trng thi hin hnh. b.3. Nu n khng tt hn trng thi hin hnh th tip tc vng lp.

11

TTNT

M gi Ti := T0; Stop :=FALSE; WHILE Stop=FALSE DO BEGIN IF Ti TG THEN BEGIN; Stop:=TRUE;

END; ELSE BEGIN Better:=FALSE; WHILE (Better=FALSE) AND (STOP=FALSE) DO BEGIN IF THEN BEGIN

; Stop:=TRUE; END;ELSE BEGIN Tk := ; IF THEN BEGIN Ti :=Tk; Better:=TRUE; END; END; END; {WHILE} END; {ELSE} END;{WHILE} Mnh "h(Tk) tt hn h(Ti)" ngha l g? y l mt khi nim chung chung. Khi ci t thut gii, ta phi cung cp mt nh ngha tng minh v tt hn. Trong mt s trng hp, tt hn l nh hn : h(Tk) < h(Ti); mt s trng hp khc tt hn l ln hn h(Tk) > h(Ti)...Chng hn, i vi bi ton tm ng i ngn nht gia hai im. Nu dng hm h l hm cho ra khong cch theo ng chim bay gia v tr hin ti (trng thi hin ti) v ch n (trng thi ch) th tt hn ngha l nh hn.

12

TTNT

Vn cn lm r k tip l th no l ? Mt trng thi k tip hp l l trng thi cha c xt n. Gi s h ca trng thi hin ti Ti c gi tr l h(Ti) = 1.23 v t Ti ta c th bin i sang mt trong 3 trng thi k tip ln lt l Tk1, Tk2, Tk3 vi gi tr cc hm h tng ng l h(Tk1) = 1.67, h(Tk2) = 2.52, h(Tk3) = 1.04. u tin, Tk s c gn bng Tk1, nhng v h(Tk) = h(Tk1) > h(Ti) nn Tk khng c chn. K tip l Tk s c gn bng Tk2 v cng khng c chn. Cui cng th Tk3 c chn. Nhng gi s h(Tk3) = 1.3 th c Tk3 cng khng c chn v mnh s c gi tr TRUE. Gii thch ny c v hin nhin nhng c l cn thit trnh nhm ln cho bn c. thy r hot ng ca thut gii leo i. Ta hy xt mt bi ton minh ha sau. Cho 4 khi lp phng ging nhau A, B, C, D. Trong cc mt (M1), (M2), (M3), (M4), (M5), (M6) c th c t bng 1 trong 6 mu (1), (2), (3), (4), (5), (6). Ban u cc khi lp phng c xp vo mt hng. Mi mt bc, ta ch c xoay mt khi lp phng quanh mt trc (X,Y,Z) 900 theo chiu bt k (ngha l ngc chiu hay thun chiu kim ng h cng c). Hy xc nh s bc quay t nht sao cho tt c cc mt ca khi lp phng trn 4 mt ca hng l c cng mu nh hnh v.

Hnh : Bi ton 4 khi lp phng

gii quyt vn , trc ht ta cn nh ngha mt hm G dng nh gi mt tnh trng c th c phi l li gii hay khng? Bn c c th d dng a ra mt ci t ca hm G nh sau :IF (Gtri + Gphi + Gtrn + Gdi + Gtrc + Gsau) = 16 THEN G:=TRUE ELSE G:=FALSE;

Trong , Gphi l s lng cc mt c cng mu ca mt bn phi ca hng. Tng t cho Gtri, Gtrn, Ggia, Gtrc, Gsau. Tuy nhin, do cc khi lp phng A,B,C,D l hon ton tng t nhau nn tng quan gia cc mt ca mi khi l ging nhau. Do ,

13

TTNT

nu c 2 mt khng i nhau trn hng ng mu th 4 mt cn li ca hng cng ng mu. T ta ch cn hm G c nh ngha nh sau l :IF Gphi + Gdi = 8 THEN G:=TRUE ELSE G:=FALSE;

Hm h (c lng kh nng dn n li gii ca mt trng thi) s c nh ngha nh sau : h = Gtri + Gphi + Gtrn + Gdi Bi ton ny n gin thut gii leo i c th hot ng tt. Tuy nhin, khng phi lc no ta cng may mn nh th! n y, c th chng ta s ny sinh mt tng. Nu chn trng thi tt hn lm trng thi hin ti th ti sao khng chn trng thi tt nht ? Nh vy, c l ta s nhanh chng dn n li gii hn! Ta s bn lun v vn : "liu ci tin ny c thc s gip chng ta dn n li gii nhanh hn hay khng?" ngay sau khi trnh by xong thut gii leo i dc ng. III.3.2. Leo i dc ng V c bn, leo i dc ng cng ging nh leo i, ch khc im l leo i dc ng s duyt tt c cc hng i c th v chn i theo trng thi tt nht trong s cc trng thi k tip c th c (trong khi leo i ch chn i theo trng thi k tip u tin tt hn trng thi hin hnh m n tm thy).

T tng1) Nu trng thi bt u cng l trng thi ch th thot v bo l tm c li gii. Ngc li, t trng thi hin hnh (Ti) l trng thi khi u (T0) 2) Lp li cho n khi t n trng thi kt thc hoc cho n khi (Ti) khng tn ti mt trng thi k tip (Tk) no tt hn trng thi hin ti (Ti) a) t S bng tp tt c trng thi k tip c th c ca Ti v tt hn Ti. b) Xc nh Tkmax l trng thi tt nht trong tp S t Ti = Tkmax

14

TTNT

M giTi := T0; Stop :=FALSE; WHILE Stop=FALSE DO BEGIN IF Ti TG THEN BEGIN; STOP :=TRUE; END; ELSE BEGIN

Best:=h(Ti); Tmax := Ti; WHILE DO BEGIN Tk := ; IF THEN BEGIN Best :=h(Tk); Tmax := Tk; END; END; IF (Best>Ti) THEN Ti := Tmax; ELSE BEGIN; STOP:=TRUE;

END;15

TTNT

END; {ELSE IF} END;{WHILE STOP} III.3.3. nh gi So vi leo i n gin, leo i dc ng c u im l lun lun chn hng c trin vng nht i. Liu iu ny c m bo leo i dc ng lun tt hn leo i n gin khng? Cu tr li l khng. Leo i dc ng ch tt hn leo i n gin trong mt s trng hp m thi. chn ra c hng i tt nht, leo i dc ng phi duyt qua tt c cc hng i c th c ti trng thi hin hnh. Trong khi , leo i n gin ch chn i theo trng thi u tin tt hn (so vi trng thi hin hnh) m n tm ra c. Do , thi gian cn thit leo i dc ng chn c mt hng i s ln hn so vi leo i n gin. Tuy vy, do lc no cng chn hng i tt nht nn leo i dc ng thng s tm n li gii sau mt s bc t hn so vi leo i n gin. Ni mt cch ngn gn, leo i dc ng s tn nhiu thi gian hn cho mt bc nhng li i t bc hn; cn leo i n gin tn t thi gian hn cho mt bc i nhng li phi i nhiu bc hn. y chnh l yu t c v mt gia hai thut gii nn ta phi cn nhc k lng khi la chn thut gii. C hai phng php leo ni n gin v leo ni dc ng u c kh nng tht bi trong vic tm li gii ca bi ton mc d li gii thc s hin hu. C hai gii thut u c th kt thc khi t c mt trng thi m khng cn trng thi no tt hn na c th pht sinh nhng trng thi ny khng phi l trng thi ch. iu ny s xy ra nu chng trnh t n mt im cc i a phng, mt on n iu ngang. im cc i a phng (a local maximum) : l mt trng thi tt hn tt c ln cn ca n nhng khng tt hn mt s trng thi khc xa hn. Ngha l ti mt im cc i a phng, mi trng thi trong mt ln cn ca trng thi hin ti u xu hn trng thi hin ti. Tuy c dng v ca li gii nhng cc cc i a phng khng phi l li gii thc s. Trong trng hp ny, chng c gi l nhng ngn i thp. on n iu ngang (a plateau) : l mt vng bng phng ca khng gian tm kim, trong , ton b cc trng thi ln cn u c cng gi tr.

16

TTNT Hnh : Cc tnh hung kh khn cho tm kim leo o.

i ph vi cc cc im ny, ngi ta a ra mt s gii php. Ta s tm hiu 2 trong s cc gii php ny. Nhng gii ny, khng thc s gii quyt trn vn vn m ch l mt phng n cu nguy tm thi m thi. Phng n u tin l kt hp leo i v quay lui. Ta s quay lui li cc trng thi trc v th i theo hng khc. Thao tc ny hp l nu ti cc trng thi trc c mt hng i tt m ta b qua trc . y l mt cch kh hay i ph vi cc im cc i a phng. Tuy nhin, do c im ca leo i l "bc sau cao hn bc trc" nn phng n ny s tht bi khi ta xut pht t mt im qu cao hoc xut pht t mt nh i m n c li gii cn phi i qua mt "thung lng" tht su nh trong hnh sau.

Hnh : Mt trng hp tht bi ca leo o kt hp quay lui.

Cch th hai l thc hin mt bc nhy vt theo hng no th n mt vng mi ca khng gian tm kim. Nm na l "bc" lin tc nhiu "bc" (chng hn 5,7,10, ) m tm thi "qun" i vic kim tra "bc sau cao hn bc trc". Tip cn c v hiu qu khi ta gp phi mt on n iu ngang. Tuy nhin, nhy vt cng c ngha l ta b qua c hi tin n li gii thc s. Trong trng hp chng ta ang ng kh gn li gii, vic nhy vt s a chng ta sang mt v tr hon ton xa l, m t , c th s dn chng ta n mt rc ri kiu khc. Hn na, s bc nhy l bao nhiu v nhy theo hng no l mt vn ph thuc rt nhiu vo c im khng gian tm kim ca bi ton.

17

TTNT

Hnh Mt trng hp kh khn cho phng n "nhy vt".

Leo ni l mt phng php cc b bi v n quyt nh s lm g tip theo da vo mt nh gi v trng thi hin ti v cc trng thi k tip c th c (tt hn trng thi hin ti, trng thi tt nht tt hn trng thi hin ti) thay v phi xem xt mt cch ton din trn tt c cc trng thi i qua. Thun li ca leo ni l t gp s bng n t hp hn so vi cc phng php ton cc. Nhng n cng ging nh cc phng php cc b khc ch l khng chc chn tm ra li gii trong trng hp xu nht. Mt ln na, ta khng nh li vai tr quyt nh ca hm Heuristic trong qu trnh tm kim li gii. Vi cng mt thut gii (nh leo i chng hn), nu ta c mt hm Heuristic tt hn th kt qu s c tm thy nhanh hn. Ta hy xt bi ton v cc khi c trnh by hnh sau. Ta c hai thao tc bin i l: + Ly mt khi nh mt ct bt k v t n ln mt ch trng to thnh mt ct mi. Lu l ch c th to ra ti a 2 ct mi. + Ly mt khi nh mt ct v t n ln nh mt ct khc Hy xc nh s thao tc t nht bin i ct cho thnh ct kt qu.

18

TTNT

Hnh : Trng thi khi u v trng thi kt thc

Gi s ban u ta dng mt hm Heuristic n gin nh sau : H1 : Cng 1 im cho mi khi v tr ng so vi trng thi ch. Tr 1 im cho mi khi t v tr sai so vi trng thi ch. Dng hm ny, trng thi kt thc s c gi tr l 8 v c 8 khi u c t v tr ng. Trng thi khi u c gi tr l 4 (v n c 1 im cng cho cc khi C, D, E, F, G, H v 1 im tr cho cc khi A v B). Ch c th c mt di chuyn t trng thi khi u, l dch chuyn khi A xung to thnh mt ct mi (T1). iu sinh ra mt trng thi vi s im l 6 (v v tr ca khi A by gi sinh ra 1 im cng hn l mt im tr). Th tc leo ni s chp nhn s dch chuyn . T trng thi mi T1, c ba di chuyn c th thc hin dn n ba trng thi Ta, Tb, Tc c minh ha trong hnh di. Nhng trng thi ny c s im l : h(Ta)= 4; h(Tb) = 4 v h(Tc) = 4

T1

TA

TB

TC

19

TTNT

Hnh Cc trng thi c th t c t T1 Th tc leo ni s tm dng bi v tt c cc trng thi ny c s im thp hn trng thi hin hnh. Qu trnh tm kim ch dng li mt trng thi cc i a phng m khng phi l cc i ton cc.

Chng ta c th li cho chnh gii thut leo i v tht bi do khng tm nhn tng qut tm ra li gii. Nhng chng ta cng c th li cho hm Heuristic v c gng sa i n. Gi s ta thay hm ban u bng hm Heuristic sau y : H2 : i vi mi khi ph tr ng (khi ph tr l khi nm bn di khi hin ti), cng 1 im, ngc li tr 1 im. Dng hm ny, trng thi kt thc c s im l 28 v B nm ng v tr v khng c khi ph tr no, C ng v tr c 1 im cng vi 1 im do khi ph tr B nm ng v tr nn C c 2 im, D c 3 im, ....Trng thi khi u c s im l 28. Vic di chuyn A xung to thnh mt ct mi lm sinh ra mt trng thi vi s im l h(T1) = 21 v A khng cn 7 khi sai pha di n na. Ba trng thi c th pht sinh tip theo by gi c cc im s l : h(Ta)=28; h(Tb)=16 v h(Tc) = 15. Lc ny th tc leo ni dc ng s chn di chuyn n trng thi Tc, c mt khi ng. Qua hm H2 ny ta rt ra mt nguyn tc : tt hn khng ch c ngha l c nhiu u im hn m cn phi t khuyt im hn. Hn na, khuyt im khng c ngha ch l s sai bit ngay ti mt v tr m cn l s khc bit trong tng quan gia cc v tr. R rng l ng v mt kt qu, cng mt th tc leo i nhng hm H1 b tht bi (do ch bit nh gi u im) cn hm H2 mi ny li hot ng mt cch hon ho (do bit nh gi c u im v khuyt im). ng tic, khng phi lc no chng ta cng thit k c mt hm Heuristic hon ho nh th. V vic nh gi u im kh, vic nh gi khuyt im cng kh v tinh t hn. Chng hn, xt li vn mun i vo khu trung tm ca mt thnh ph xa l. hm Heuristic hiu qu, ta cn phi a cc thng tin v cc ng mt chiu v cc ng ct, m trong trng hp mt thnh ph hon ton xa l th ta kh hoc khng th bit c nhng thng tin ny. n y, chng ta hiu r bn cht ca hai thut gii tip cn theo chin lc tm kim chiu su. Hiu qu ca c hai thut gii leo i n gin v leo i dc ng ph thuc vo : + Cht lng ca hm Heuristic. + c im ca khng gian trng thi. + Trng thi khi u.

20

TTNT

Sau y, chng ta s tm hiu mt tip cn theo mi, kt hp c sc mnh ca c tm kim chiu su v tm kim chiu rng. Mt thut gii rt linh ng v c th ni l mt thut gii kinh in ca Heuristic. III.4. Tm kim u tin ti u (best-first search) u im ca tm kim theo chiu su l khng phi quan tm n s m rng ca tt c cc nhnh. u im ca tm kim chiu rng l khng b sa vo cc ng dn b tc (cc nhnh ct). Tm kim u tin ti u s kt hp 2 phng php trn cho php ta i theo mt con ng duy nht ti mt thi im, nhng ng thi vn "quan st" c nhng hng khc. Nu con ng ang i "c v" khng trin vng bng nhng con ng ta ang "quan st" ta s chuyn sang i theo mt trong s cc con ng ny. tin li ta s dng ch vit tt BFS thay cho tn gi tm kim u tin ti u. Mt cch c th, ti mi bc ca tm kim BFS, ta chn i theo trng thi c kh nng cao nht trong s cc trng thi c xt cho n thi im . (khc vi leo i dc ng l ch chn trng thi c kh nng cao nht trong s cc trng thi k tip c th n c t trng thi hin ti). Nh vy, vi tip cn ny, ta s u tin i vo nhng nhnh tm kim c kh nng nht (ging tm kim leo i dc ng), nhng ta s khng b ln qun trong cc nhnh ny v nu cng i su vo mt hng m ta pht hin ra rng hng ny cng i th cng t, n mc n xu hn c nhng hng m ta cha i, th ta s khng i tip hng hin ti na m chn i theo mt hng tt nht trong s nhng hng cha i. l t tng ch o ca tm kim BFS. hiu c t tng ny. Bn hy xem v d sau :

Hnh Minh ha thut gii Best-First Search

21

TTNT

Khi u, ch c mt nt (trng thi) A nn n s c m rng to ra 3 nt mi B,C v D. Cc con s di nt l gi tr cho bit tt ca nt. Con s cng nh, nt cng tt. Do D l nt c kh nng nht nn n s c m rng tip sau nt A v sinh ra 2 nt k tip l E v F. n y, ta li thy nt B c v c kh nng nht (trong cc nt B,C,E,F) nn ta s chn m rng nt B v to ra 2 nt G v H. Nhng li mt ln na, hai nt G, H ny c nh gi t kh nng hn E, v th s ch li tr v E. E c m rng v cc nt c sinh ra t E l I v J. bc k tip, J s c m rng v n c kh nng nht. Qu trnh ny tip tc cho n khi tm thy mt li gii. Lu rng tm kim ny rt ging vi tm kim leo i dc ng, vi 2 ngoi l. Trong leo ni, mt trng thi c chn v tt c cc trng thi khc b loi b, khng bao gi chng c xem xt li. Cch x l dt khot ny l mt c trng ca leo i. Trong BFS, ti mt bc, cng c mt di chuyn c chn nhng nhng ci khc vn c gi li, ta c th tr li xt sau khi trng thi hin ti tr nn km kh nng hn nhng trng thi c lu tr. Hn na, ta chn trng thi tt nht m khng quan tm n n c tt hn hay khng cc trng thi trc . iu ny tng phn vi leo i v leo i s dng nu khng c trng thi tip theo no tt hn trng thi hin hnh. ci t cc thut gii theo kiu tm kim BFS, ngi ta thng cn dng 2 tp hp sau : OPEN : tp cha cc trng thi c sinh ra nhng cha c xt n (v ta chn mt trng thi khc). Thc ra, OPEN l mt loi hng i u tin (priority queue) m trong , phn t c u tin cao nht l phn t tt nht. Ngi ta thng ci t hng i u tin bng Heap. Cc bn c th tham kho thm trong cc ti liu v Cu trc d liu v loi d liu ny. CLOSE : tp cha cc trng thi c xt n. Chng ta cn lu tr nhng trng thi ny trong b nh phng trng hp khi mt trng thi mi c to ra li trng vi mt trng thi m ta xt n trc . Trong trng hp khng gian tm kim c dng cy th khng cn dng tp ny.

Thut gii BEST-FIRST SEARCH1. t OPEN cha trng thi khi u. 2. Cho n khi tm c trng thi ch hoc khng cn nt no trong OPEN, thc hin : 2.a. Chn trng thi tt nht (Tmax) trong OPEN (v xa Tmax khi OPEN) 2.b. Nu Tmax l trng thi kt thc th thot. 2.c. Ngc li, to ra cc trng thi k tip Tk c th c t trng thi Tmax. i vi mi trng thi k tip Tk thc hin :

22

TTNT Tnh f(Tk); Thm Tk vo OPEN

BFS kh n gin. Tuy vy, trn thc t, cng nh tm kim chiu su v chiu rng, him khi ta dng BFS mt cch trc tip. Thng thng, ngi ta thng dng cc phin bn ca BFS l AT, AKT v A* Thng tin v qu kh v tng lai Thng thng, trong cc phng n tm kim theo kiu BFS, tt f ca mt trng thi c tnh da theo 2 hai gi tr m ta gi l l g v h. h chng ta bit, l mt c lng v chi ph t trng thi hin hnh cho n trng thi ch (thng tin tng lai). Cn g l "chiu di qung ng" i t trng thi ban u cho n trng thi hin ti (thng tin qu kh). Lu rng g l chi ph thc s (khng phi chi ph c lng). d hiu, bn hy quan st hnh sau :

Hnh 6.14 Phn bit khi nim g v h Kt hp g v h thnh f (f = g + h) s th hin mt c lng v "tng chi ph" cho con ng t trng thi bt u n trng thi kt thc dc theo con ng i qua trng thi hin hnh. thun tin cho thut gii, ta quy c l g v h u khng m v cng nh ngha l cng tt. III.5. Thut gii AT Thut gii AT l mt phng php tm kim theo kiu BFS vi tt ca nt l gi tr hm g tng chiu di con ng i t trng thi bt u n trng thi hin ti. Thut gii AT1. t OPEN cha trng thi khi u. 2. Cho n khi tm c trng thi ch hoc khng cn nt no trong OPEN, thc hin :

23

TTNT 2.a. Chn trng thi (Tmax) c gi tr g nh nht trong OPEN (v xa Tmax khi OPEN) 2.b. Nu Tmax l trng thi kt thc th thot. 2.c. Ngc li, to ra cc trng thi k tip Tk c th c t trng thi Tmax. i vi mi trng thi k tip Tk thc hin : g(Tk) = g(Tmax) + cost(Tmax, Tk); Thm Tk vo OPEN. * V ch s dng hm g (m khng dng hm c lng h) fs nh gi tt ca mt trng thi nn ta cng c th xem AT ch l mt thut ton.

III.6. Thut gii AKT(Algorithm for Knowlegeable Tree Search)

Thut gii AKT m rng AT bng cch s dng thm thng tin c lng h. tt ca mt trng thi f l tng ca hai hm g v h. Thut gii AKT1. t OPEN cha trng thi khi u. 2. Cho n khi tm c trng thi ch hoc khng cn nt no trong OPEN, thc hin : 2.a. Chn trng thi (Tmax) c gi tr f nh nht trong OPEN (v xa Tmax khi OPEN) 2.b. Nu Tmax l trng thi kt thc th thot. 2.c. Ngc li, to ra cc trng thi k tip Tk c th c t trng thi Tmax. i vi mi trng thi k tip Tk thc hin : g(Tk) = g(Tmax) + cost(Tmax, Tk); Tnh h(Tk) f(Tk) = g(Tk) + h(Tk); Thm Tk vo OPEN.

III.7. Thut gii A* A* l mt phin bn c bit ca AKT p dng cho trng hp th. Thut gii A* c s dng thm tp hp CLOSE lu tr nhng trng hp c xt n. A* m rng AKT bng cch b sung cch gii quyt trng hp khi "m" mt nt m nt ny c sn trong OPEN hoc CLOSE. Khi xt n mt trng thi Ti bn cnh vic lu tr 3 gi24

TTNT

tr c bn g,h, f phn nh tt ca trng thi , A* cn lu tr thm hai thng s sau : 1. Trng thi cha ca trng thi Ti (k hiu l Cha(Ti) : cho bit trng thi dn n trng thi Ti. Trong trng hp c nhiu trng thi dn n Ti th chn Cha(Ti) sao cho chi ph i t trng thi khi u n Ti l thp nht, ngha l : g(Ti) = g(Tcha) + cost(Tcha, Ti) l thp nht. 2. Danh sch cc trng thi k tip ca Ti : danh sch ny lu tr cc trng thi k tip Tk ca Ti sao cho chi ph n Tk thng qua Ti t trng thi ban u l thp nht. Thc cht th danh sch ny c th c tnh ra t thuc tnh Cha ca cc trng thi c lu tr. Tuy nhin, vic tnh ton ny c th mt nhiu thi gian (khi tp OPEN, CLOSE c m rng) nn ngi ta thng lu tr ra mt danh sch ring. Trong thut ton sau y, chng ta s khng cp n vic lu tr danh sch ny. Sau khi hiu r thut ton, bn c c th d dng iu chnh li thut ton lu tr thm thuc tnh ny.

1. t OPEN ch cha T0. t g(T0) = 0, h(T0) = 0 v f(T0) = 0. t CLOSE l tp hp rng. 2. Lp li cc bc sau cho n khi gp iu kin dng. 2.a. Nu OPEN rng : bi ton v nghim, thot. 2.b. Ngc li, chn Tmax trong OPEN sao cho f(Tmax) l nh nht 2.b.1. Ly Tmax ra khi OPEN v a Tmax vo CLOSE. 2.b.2. Nu Tmax chnh l TG th thot v thng bo li gii l Tmax. 2.b.3. Nu Tmax khng phi l TG. To ra danh sch tt c cc trng thi k tip ca Tmax. Gi mt trng thi ny l Tk. Vi mi Tk, lm cc bc sau : 2.b.3.1. Tnh g(Tk) = g(Tmax) + cost(Tmax, Tk). 2.b.3.2. Nu tn ti Tk trong OPEN trng vi Tk. Nu g(Tk) < g(Tk) th t g(Tk) = g(Tk) Tnh li f(Tk) t Cha(Tk) = Tmax 2.b.3.3. Nu tn ti Tk trong CLOSE trng vi Tk.

25

TTNT Nu g(Tk) < g(Tk) th t g(Tk) = g(Tk) Tnh li f(Tk) t Cha(Tk) = Tmax Lan truyn s thay i gi tr g, f cho tt c cc trng thi k tip ca Ti ( tt c cc cp) c lu tr trong CLOSE v OPEN. 2.b.3.4. Nu Tk cha xut hin trong c OPEN ln CLOSE th : Thm Tk vo OPEN Tnh : f' (Tk) = g(Tk)+h(Tk).

C mt s im cn gii thch trong thut gii ny. u tin l vic sau khi tm thy trng thi ch TG, lm sao xy dng li c "con ng" t T0 n TG. Rt n gin, bn ch cn ln ngc theo thuc tnh Cha ca cc trng thi c lu tr trong CLOSE cho n khi t n T0. chnh l "con ng" ti u i t TG n T0 (hay ni cch khc l t T0 n TG). im th hai l thao tc cp nht li g(Tk) , f(Tk) v Cha(Tk) trong bc 2.b.3.2 v 2.b.3.3. Cc thao tc ny th hin t tng : "lun chn con ng ti u nht". Nh chng ta bit, gi tr g(Tk) nhm lu tr chi ph ti u thc s tnh t T0 n Tk. Do , nu chng ta pht hin thy mt "con ng" khc tt hn thng qua Tk (c chi ph nh hn) con ng hin ti c lu tr th ta phi chn "con ng" mi tt hn ny. Trng hp 2.b.3.3 phc tp hn. V t Tk nm trong tp CLOSE nn t Tk ta lu tr cc trng thi con k tip xut pht t Tk. Nhng g(Tk) thay i dn n gi tr g ca cc trng thi con ny cng phi thay i theo. V n lt cc trng thi con ny li c th c cc cc trng thi con tip theo ca chng v c th cho n khi mi nhnh kt thc vi mt trng thi trong OPEN (ngha l khng c trng thi con no na). thc hin qu trnh cp nht ny, ta hy thc hin qu trnh duyt theo chiu su vi im khi u l Tk. Duyt n u, ta cp nht li g ca cc trng thi n ( dng cng thc g(T) = g(Cha(T)) +cost(Cha(T), T) ) v v th gi tr f ca cc trng thi ny cng thay i theo. Mt ln na, xin nhc li rng, bn c th cho rng tp OPEN lu tr cc trng thi "s c xem xt n sau" cn tp CLOSE lu tr cc trng thi " c xt n ri". C th bn s cm thy kh lng tng trc mt thut gii di nh th. Vn c l s tr nn sng sa hn khi bn quan st cc bc gii bi ton tm ng i ngn nht trn th bng thut gii A* sau y. III.8. V d minh ha hot ng ca thut gii A*

26

TTNT

Chng ta s minh ha hot ng ca thut gii A* trong vic tm kim ng i ngn nht t thnh ph Arad n thnh ph Bucharest ca Romania. Bn cc thnh ph ca Romania c cho trong th sau. Trong mi nh ca th ca l mt thnh ph, gia hai nh c cung ni ngha l c ng i gia hai thnh ph tng ng. Trng s ca cung chnh l chiu di (tnh bng km) ca ng i ni hai thnh ph tng ng, chiu di theo ng chim bay mt thnh ph n Bucharest c cho trong bng km theo.

Hnh : Bng ca Romania vi khong cch ng tnh theo km

Bng : Khong cch ng chim bay t mt thnh ph n Bucharest. Chng ta s chn hm h chnh l khong cch ng chim bay cho trong bng trn v hm chi ph cost(Ti, Ti+1) chnh l chiu di con ng ni t thnh ph Ti v Ti+1.

27

TTNT

Sau y l tng bc hot ng ca thut ton A* trong vic tm ng i ngn nht t Arad n Bucharest.

Ban u : OPEN = {(Arad,g= 0,h= 0,f= 0)} CLOSE = {}Do trong OPEN ch cha mt thnh ph duy nht nn thnh ph ny s l thnh ph tt nht. Ngha l Tmax = Arad.Ta ly Arad ra khi OPEN v a vo CLOSE.

OPEN = {} CLOSE = {(Arad,g= 0,h= 0,f= 0)}T Arad c th i n c 3 thnh ph l Sibiu, Timisoara v Zerind. Ta ln lt tnh gi tr f, g v h ca 3 thnh ph ny. Do c 3 nt mi to ra ny cha c nt cha nn ban u nt cha ca chng u l Arad.

h(Sibiu) = 253 g(Sibiu) = g(Arad)+cost(Arad,Sibiu) = 0+140= 140 f(Sibiu) = g(Sibiu)+h(Sibiu) = 140+253 = 393 Cha(Sibiu) = Arad h(Timisoara) = 329 g(Timisoara) = g(Arad)+cost(Arad, Timisoara) = 0+118= 118 f(Timisoara) = g(Timisoara)+ h(Timisoara) = 118+329 = 447

28

TTNT

Cha(Timisoara) = Arad h(Zerind) = 374 g(Zerind) = g(Arad)+cost(Arad, Zerind) = 0+75= 75 f(Zerind) = g(Zerind)+h(Zerind) = 75+374 = 449 Cha(Zerind) = AradDo c 3 nt Sibiu, Timisoara, Zerind u khng c trong c OPEN v CLOSE nn ta b sung 3 nt ny vo OPEN.

OPEN = {(Sibiu,g= 140,h= 253,f= 393,Cha= Arad) (Timisoara,g= 118,h= 329,f= 447,Cha= Arad) (Zerind,g= 75,h= 374,f= 449,Cha= Arad)} CLOSE = {(Arad,g= 0,h= 0,f= 0)}

Hnh : Bc 1, nt c ng ngoc vung (nh [Arad]) l nt trong tp CLOSE, ngc li l trong tp OPEN. Trong tp OPEN, nt Sibiu l nt c gi tr f nh nht nn ta s chn Tmax = Sibiu. Ta ly Sibiu ra khi OPEN v a vo CLOSE.

OPEN = {(Timisoara,g= 118,h= 329,f= 447,Cha= Arad) (Zerind,g= 75,h= 374,f= 449,Cha= Arad)}

29

TTNT

CLOSE = {(Arad,g= 0,h= 0,f= 0) (Sibiu,g= 140,h= 253,f= 393,Cha= Arad)}T Sibiu c th i n c 4 thnh ph l : Arad, Fagaras, Oradea, Rimnicu. Ta ln lt tnh cc gi tr g, h, f cho cc nt ny.

h(Arad) = 366 g(Arad) = g(Sibiu)+cost(Sibiu,Arad) = 140+140= 280 f(Arad) = g(Arad)+h(Arad) = 280+366 = 646 h(Fagaras) = 178 g(Fagaras) = g(Sibiu)+cost(Sibiu, Fagaras) = 140+99= 239 f(Fagaras) = g(Fagaras)+ h(Fagaras) = 239+178= 417 h(Oradea) = 380 g(Oradea) = g(Sibiu)+cost(Sibiu, Oradea) = 140+151 = 291 f(Oradea) = g(Oradea)+ h(Oradea) = 291+380 = 671 h(R.Vilcea) = 193 g(R.Vilcea) = g(Sibiu)+cost(Sibiu, R.Vilcea) = 140+80 = 220

30

TTNT

f(R.Vilcea) = g(R.Vilcea)+ h(R.Vilcea) = 220+193 = 413Nt Arad c trong CLOSE. Tuy nhin, do g(Arad) mi c to ra (c gi tr 280) ln hn g(Arad) lu trong CLOSE (c gi tr 0) nn ta s khng cp nht li gi tr g v f ca Arad lu trong CLOSE. 3 nt cn li : Fagaras, Oradea, Rimnicu u khng c trong c OPEN v CLOSE nn ta s a 3 nt ny vo OPEN, t cha ca chng l Sibiu. Nh vy, n bc ny OPEN cha tng cng 5 thnh ph.

OPEN = {(Timisoara,g= 118,h= 329,f= 447,Cha= Arad) (Zerind,g= 75,h= 374,f= 449,Cha= Arad) (Fagaras,g= 239,h= 178,f= 417,Cha= Sibiu) (Oradea,g= 291,h= 380,f= 617,Cha= Sibiu) (R.Vilcea,g= 220,h= 193,f= 413,Cha= Sibiu)} CLOSE = {(Arad,g= 0,h= 0,f= 0) (Sibiu,g= 140,h= 253,f= 393,Cha= Arad)}Trong tp OPEN, nt R.Vilcea l nt c gi tr f nh nht. Ta chn Tmax = R.Vilcea. Chuyn R.Vilcea t OPEN sang CLOSE. T R.Vilcea c th i n c 3 thnh ph l Craiova, Pitesti v Sibiu. Ta ln lt tnh gi tr f, g v h ca 3 thnh ph ny.

h(Sibiu) = 253 g(Sibiu) = g(R.Vilcea)+ cost(R.Vilcea,Sibiu)31

TTNT

= 220+80= 300 f(Sibiu) = g(Sibiu)+h(Sibiu) = 300+253 = 553 h(Craiova) = 160 g(Craiova) = g(R.Vilcea)+ cost(R.Vilcea, Craiova) = 220+146= 366 f(Craiova) = g(Fagaras)+h(Fagaras) = 366+160= 526 h(Pitesti) = 98 g(Pitesti) = g(R.Vilcea)+ cost(R.Vilcea, Pitesti) = 220+97 = 317 f(Pitesti) = g(Oradea)+h(Oradea) = 317+98 = 415Sibiu c trong tp CLOSE. Tuy nhin, do g(Sibiu) mi (c gi tr l 553) ln hn g(Sibiu) (c gi tr l 393) nn ta s khng cp nht li cc gi tr ca Sibiu c lu trong CLOSE. Cn li 2 thnh ph l Pitesti v Craiova u khng c trong c OPEN v CLOSE nn ta s a n vo OPEN v t cha ca chng l R.Vilcea.

32

TTNT

OPEN = {(Timisoara,g= 118,h= 329,f= 447,Cha= Arad) (Zerind,g= 75,h= 374,f= 449,Cha= Arad) (Fagaras,g= 239,h= 178,f= 417,Cha= Sibiu) (Oradea,g= 291,h= 380,f= 617,Cha= Sibiu) (Craiova,g= 366,h= 160,f= 526,Cha= R.Vilcea) (Pitesti,g= 317,h= 98,f= 415,Cha= R.Vilcea) } CLOSE = {(Arad,g= 0,h= 0,f= 0) (Sibiu,g= 140,h= 253,f= 393,Cha= Arad) (R.Vilcea,g= 220,h= 193,f= 413,Cha= Sibiu) }n y, trong tp OPEN, nt tt nht l Pitesti, t Pitesti ta c th i n c R.Vilcea, Bucharest v Craiova. Ly Pitesti ra khi OPEN v t n vo CLOSE. Thc hin tip theo tng t nh trn, ta s khng cp nht gi tr f, g ca R.Vilcea v Craiova lu trong CLOSE. Sau khi tnh ton f, g ca Bucharest, ta s a Bucharest vo tp OPEN, t Cha(Bucharest) = Pitesti.

h(Bucharest) = 0 g(Bucharest) = g(Pitesti)+cost(Pitesti, Bucharest)

33

TTNT

= 317+100= 418 f(Bucharest) = g(Fagaras)+h(Fagaras) = 417+0= 417 bc k tip, ta s chn c Tmax = Bucharest. V nh vy thut ton kt thc (thc ra th ti bc ny, c hai ng c vin l Bucharest v Fagaras v u cng c f= 417 , nhng v Bucharest l ch nn ta s u tin chn hn). xy dng li con ng i t Arad n Bucharest ta ln theo gi tr Cha c lu tr km vi f, g v h cho n lc n Arad.

Cha(Bucharest) = Pitesti Cha(R.Vilcea) = Sibiu Cha(Sibiu) = AradVy con ng i ngn nht t Arad n Bucharest l Arad, Sibiu, R.Vilcea, Pitesti, Bucharest. Trong v d minh ha ny, hm h c cht lng kh tt v cu trc th kh n gin nn ta gn nh i thng n ch m t phi kho st cc con ng khc. y l mt trng hp n gin, trong trng hp ny, thut gii c dng dp ca tm kim chiu su. n y, minh ha mt trng hp phc tp hn ca thut gii. Ta th sa i li cu trc th v quan st hot ng ca thut gii. Gi s ta c thm mt thnh ph tm gi l TP v con ng gia Sibiu v TP c chiu di 100, con ng gia TP v Pitesti c chiu di 60. V khong cch ng chim bay t TP n Bucharest l 174. Nh vy r rng, con ng ti u n Bucharest khng cn l Arad, Sibiu, R.Vilcea, Pitesti, Bucharest na m l Arad, Sibiu, TP, Pitesti, Bucharest.

34

TTNT

Trong trng hp ny, chng ta vn tin hnh bc 1 nh trn. Sau khi thc hin hin bc 2 (m rng Sibiu), chng ta c cy tm kim nh hnh sau. Lu l c thm nhnh TP.

R.Vilcea vn c gi tr f thp nht. Nn ta m rng R.Vilcea nh trng hp u tin.

35

TTNT

Bc k tip ca trng hp n gin l m rng Pitesti c c kt qu. Tuy nhin, trong trng hp ny, TP c gi tr f thp hn. Do , ta chn m rng TP. T TP ta ch c 2 hng i, mt quay li Sibiu v mt n Pitesti. nhanh chng, ta s khng tnh ton gi tr ca Sibiu v bit chc n s ln hn gi tr c lu tr trong CLOSE (v i ngc li).

h(Pitesti) = 98 g(Pitesti) = g(TP)+cost(TP, Pitesti) = 240+75= 315 f(Pitesti) = g(TP)+h(Pitesti) = 315+98= 413Pistestti xut hin trong tp OPEN v g(Pitesti) mi (c gi tr l 315) thp hn g(Pitesti) c (c gi tr 317) nn ta phi cp nht li gi tr ca f,g, Cha ca Pitesti lu trong OPEN. Sau khi cp nht xong, tp OPEN v CLOSE s nh sau :

OPEN = {(Timisoara,g= 118,h= 329,f= 447,Cha= Arad) (Zerind,g= 75,h= 374,f= 449,Cha= Arad) (Fagaras,g= 239,h= 178,f= 417,Cha= Sibiu) (Oradea,g= 291,h= 380,f= 617,Cha= Sibiu) (Craiova,g= 366,h= 160,f= 526,Cha= R.Vilcea) (Pitesti,g= 315,h= 98,f= 413,Cha= TP) }36

TTNT

CLOSE = {(Arad,g= 0,h= 0,f= 0) (Sibiu,g= 140,h= 253,f= 393,Cha= Arad) (R.Vilcea,g= 220,h= 193,f= 413,Cha= Sibiu) }n y ta thy rng, ban u thut gii chn ng i n Pitesti qua R.Vilcea. Tuy nhin, sau , thut gii pht hin ra con ng n Pitesti qua TP l tt hn nn n s s dng con ng ny. y chnh l trng hp 2.b.iii.2 trong thut gii. Bc sau, chng ta s chn m rng Pitesti nh bnh thng. Khi ln ngc theo thuc tnh Cha, ta s c con ng ti u l Arad, Sibiu, TP, Pitesti, Bucharest. III.9. Bn lun v A* n y, c l bn hiu c thut gii ny. Ta c mt vi nhn xt kh th v v A*. u tin l vai tr ca g trong vic gip chng ta la chn ng i. N cho chng ta kh nng la chn trng thi no m rng tip theo, khng ch da trn vic trng thi tt nh th no (th hin bi gi tr h) m cn trn c s con ng t trng thi khi u n trng thi hin ti tt ra sao. iu ny s rt hu ch nu ta khng ch quan tm vic tm ra li gii hay khng m cn quan tm n hiu qu ca con ng dn n li gii. Chng hn nh trong bi ton tm ng i ngn nht gia hai im. Bn cnh vic tm ra ng i gia hai im, ta cn phi tm ra mt con ng ngn nht. Tuy nhin, nu ta ch quan tm n vic tm c li gii (m khng quan tm n hiu qu ca con ng n li gii), chng ta c th t g=0 mi trng thi. iu ny s gip ta lun chn i theo trng thi c v gn nht vi trng thi kt thc (v lc ny f ch ph thuc vo h l hm c lng "khong cch" gn nht ti ch). Lc ny thut gii c dng dp ca tm kim chiu su theo nguyn l hng ch kt hp vi ln ngc. Ngc li, nu ta mun tm ra kt qu vi s bc t nht (t c trng thi ch vi s trng thi trung gian t nht), th ta t gi tr i t mt trng thi n cc trng thi con k tip ca n lun l hng s, thng l 1 Ngha t cost(Ti-1, Ti) = 1 (v vn dng mt hm c lng h nh bnh thng). Cn ngc li, nu mun tm chi ph r nht th ta phi t gi tr hm cost chnh xc (phn nh ng ghi ph thc s). n y, chc bn c c th bt u cm nhn c rng thut gii A* khng hon ton l mt thut gii ti u tuyt i. Ni ng hn, A* ch l mt thut gii linh ng v cho chng ta kh nhiu ty chn. Ty theo bi ton m ta s c mt b thng s thch hp cho A* thut gii hot ng hiu qu nht. im quan tm th hai l v gi tr h s c lng khong cch (chi ph) t mt trng thi n trng thi ch. Nu h chnh l h (nh gi tuyt i chnh xc) th A* s i mt mch t trng thi u n trng thi kt thc m khng cn phi thc hin bt k mt

37

TTNT

thao tc i hng no!. D nhin, trn thc t, hu nh chng bao gi ta tm thy mt nh gi tuyt i chnh xc. Tuy nhin, iu ng quan tm y l h c c lng cng gn vi h, qu trnh tm kim cng t b sai st, t b r vo nhng nhnh ct hn. Hay ni ngn gn l cng nhanh chng tm thy li gii hn. Nu h lun bng 0 mi trng thi (tr v thut gii AT) th qu trnh tm kim s c iu khin hon ton bi gi tr g. Ngha l thut gii s chn i theo nhng hng m s tn t chi ph/bc i nht (chi ph tnh t trng thi u tin n trng thi hin ang xt) bt chp vic i theo hng c kh nng dn n li gii hay khng. y chnh l hnh nh ca nguyn l tham lam (Greedy). Nu chi ph t trng thi sang trng thi khc lun l hng s (d nhin lc ny h lun bng 0) th thut gii A* tr thnh thut gii tm kim theo chiu rng! L do l v tt c nhng trng thi cch trng thi khi u n bc u c cng gi tr g v v th u c cng f v gi tr ny s nh hn tt c cc trng thi cch trng thi khi u n+1 bc. V nu g lun bng 0 v h cng lun bng 0, mi trng thi ang xt u tng ng nhau. Ta ch c th chn bng trng thi k tip bng ngu nhin ! Cn nu nh h khng th tuyt i chnh xc (ngha l khng bng ng h) v cng khng lun bng 0 th sao? C iu g th v v cch x l ca qu trnh tm kim hay khng? Cu tr li l c. Nu nh bng mt cch no , ta c th chc chn rng, c lng h lun nh hn h (i vi mi trng thi) th thut gii A* s thng tm ra con ng ti u (xc nh bi g) i n ch, nu ng dn tn ti v qu trnh tm kim s t khi b sa ly vo nhng con ng qu d. Cn nu v mt l do no , c lng h li ln hn h th thut gii s d dng b vng vo nhng hng tm kim v ch. Thm ch n li c khuynh hng tm kim nhng hng i v ch trc! iu ny c th thy mt cch d dng t vi v d. Xt trng hp c trnh by trong hnh sau. Gi s rng tt c cc cung u c gi tr 1. G l trng thi ch. Khi u, OPEN ch cha A, sau A c m rng nn B, C, D s c a vo OPEN (hnh v m t trng thi 2 bc sau , khi B v E c m rng). i vi mi nt, con s u tin l gi tr h, con s k tip l g. Trong v d ny, nt B c f thp nht l 4 = h+g = 3 + 1 , v th n c m rng trc tin. Gi s n ch c mt nt con tip theo l E v h(E) = 3, do E cc A hai cung nn g(E) = 2 suy ra f(E) = 5, ging nh f(C). Ta chn m rng E k tip. Gi s n cng ch c duy nht mt con k tip l F v h(F) cng bng 3. R rng l chng ta ang di chuyn xung v khng pht trin rng. Nhng f(F) = 6 ln hn f(D). Do , chng ta s m rng C tip theo v t n trng thi ch. Nh vy, ta thy rng do nh gi thp h(B) nn ta lng ph mt s bc (E,F), nhng cui cng ta cng pht hin ra B khc xa vi iu ta mong i v quay li th mt ng dn khc.

38

TTNT

Hnh : h nh gi thp h By gi hy xt trng hp hnh tip theo. Chng ta cng m rng B bc u tin v E bc th hai. K tip l F v cui cng G, cho ng dn kt thc c di l 4. Nhng gi s c ng dn trc tip t D n mt li gii c di h thc s l 2 th chng ta s khng bao gi tm c ng dn ny (tuy rng ta c th tm thy li gii). Bi v vic nh gi qu cao h(D), chng ta s lm cho D trng d n ni m ta phi tm mt ng i khc n mt li gii t hn - m khng bao gi ngh n vic m rng D. Ni chung, nu h nh gi cao h th A* s c th khng th tm ra ng dn ti u n li gii (nu nh c nhiu ng dn n li gii). Mt cu hi th v l "Liu c mt nguyn tc chung no gip chng ta a ra mt cch c lng h khng bao gi nh gi cao h hay khng?". Cu tr li l "hu nh khng", bi v i vi hu ht cc vn thc ta u khng bit h. Tuy nhin, cch duy nht bo m h khng bao gi nh gi cao h l t h bng 0 !

Hnh : h nh gi cao h n y chng ta kt thc vic bn lun v thut gii A*, mt thut gii linh ng, tng qut, trong hm cha c tm kim chiu su, tm kim chiu rng v nhng

39

TTNT

nguyn l Heuristic khc. Chnh v th m ngi ta thng ni, A* chnh l thut gii tiu biu cho Heuristic. A* rt linh ng nhng vn gp mt khuyt im c bn ging nh chin lc tm kim chiu rng l tn kh nhiu b nh lu li nhng trng thi i qua nu chng ta mun n chc chn tm thy li gii ti u. Vi nhng khng gian tm kim ln nh th y khng phi l mt im ng quan tm. Tuy nhin, vi nhng khng gian tm kim khng l (chng hn tm ng i trn mt ma trn kch thc c 106 x 106) th khng gian lu tr l c mt vn hc ba. Cc nh nghin cu a ra kh nhiu cc hng tip cn lai gii quyt vn ny. Chng ta s tm hiu mt s phng n nhng quan trng nht, ta cn phi nm r v tr ca A* so vi nhng thut gii khc. III.10. ng dng A* gii bi ton Ta-canh Bi ton Ta-canh tng l mt tr chi kh ph bin, i lc ngi ta cn gi y l bi ton 9-puzzle. Tr chi bao gm mt hnh vung kch thc 3x3 . C 8 c s, mi c mt s t 1 n 8. Mt cn trng. Mi ln di chuyn ch c di chuyn mt nm cnh trng v pha trng. Vn l t mt trng thi ban u bt k, lm sao a c v trng thi cui l trng thi m cc c sp ln lt t 1 n 8 theo th t t tri sang phi, t trn xung di, cui dng l trng.

Cho n nay, ngoi tr 2 gii php vt cn v tm kim Heuristic, ngi ta vn cha tm c mt thut ton chnh xc, ti u gii bi ton ny. Tuy nhin, cch gii theo thut gii A* li kh n gin v thng tm c li gii (nhng khng phi lc no cng tm c li gii). Nhn xt rng: Ti mi thi im ta ch c ti a 4 c th di chuyn. Vn l ti thi im , ta s chn la di chuyn no? Chng hn hnh trn, ta nn di chuyn (1), (2), (6), hay (7) ? Bi ton ny hon ton c cu trc thch hp c th gii bng A* (tng s trng thi c th c ca bn c l n2! vi n l kch thc bn c v mi trng thi l mt hon v ca tp n2 con s). Ti mt trng thi ang xt Tk, t d(i,j)l s cn di chuyn a con s (i,j) v ng v tr ca n trng thi ch. Hm c lng h ti trng thi Tk bt k bng tng ca cc d(i,j) sao cho v tr (i,j) khng phi l trng. Nh vy i vi trng thi hnh ban u, hm f(Tk) s c gi tr l Fk=2+1+3+1+0+1+2+2=12

40

TTNT

III.11. Cc chin lc tm kim lai Chng ta bit qua 4 kiu tm kim : leo o (L), tm theo chiu su (MC), tm theo chiu rng (BR) v tm kim BFS. Bn kiu tm kim ny c th c xem nh 4 thi cc ca khng gian lin tc bao gm cc chin lc tm kim khc nhau. gii thch iu ny r hn, s tin hn cho chng ta nu nhn mt chin lc tm kim li gii di hai chiu sau : Chiu kh nng quay lui (R): l kh nng cho php quay li xem xt nhng trng thi xt n trc nu gp mt trng thi khng th i tip. Chiu phm vi ca s nh gi (S): s cc trng thi xt n trong mi quyt nh.

Hnh : Tng quan gia cc chin lc leo o, quay lui v tt nht Theo hng R, chng ta thy leo o nm mt thi cc (n khng cho php quay li nhng trng thi cha c xt n), trong khi tm kim quay lui v BFS mt thi cc khc (cho php quay li tt c cc hng i cha xt n). Theo hng S chng ta thy leo o v ln ngc nm mt thi cc (ch tp trung vo mt phm vi hp trn tp cc trng thi mi to ra t trng thi hin ti) v BFS nm mt thi cc khc (trong khi BF xem xt ton b tp cc con ng c, bao gm c nhng con ng mi c to ra cng nh tt c nhng con ng khng c xt ti trc y trc mi mt quyt nh). Nhng thi cc ny c trc quan ha bng hnh trn. Vng in m biu din mt mt phng lin tc cc chin lc tm kim m n kt hp mt s c im ca mt trong ba thi cc (leo o, chiu su, BFS) c c mt ha hp cc c tnh tnh ton ca chng. Nu chng ta khng b nh cn thit p dng thut ton BFS thun ty. Ta c th kt hp BFS vi tm theo chiu su gim bt yu cu b nh. D nhin, ci gi m ta phi tr l s lng cc trng thi c th xt n ti mt bc s nh i. Mt loi kt hp nh th c ch ra trong hnh di. Trong hnh ny, thut gii BFS c p dng ti41

TTNT

nh ca th tm kim (biu din bng vng t tm) v tm kim theo chiu su c p dng ti y (biu din bi tam gic t nht). u tin ta p dng BFS vo trng thi ban u T0 mt cch bnh thng. BFS s thi hnh cho n mt lc no , s lng trng thi c lu tr chim dng mt khng gian b nh vt qu mt mc cho php no . n lc ny, ta s p dng tm kim chiu su xut pht t trng thi tt nht Tmax trong OPEN cho ti khi ton b khng gian con pha "di" trng thi c duyt ht. Nu khng tm thy kt qu, trng thi Tmax ny c ghi nhn l khng dn n kt qu v ta li chn ra trng thi tt th hai trong OPEN v li p dng tm kim chiu su cho cho phn khng gian pha "di" trng thi ny....

Hnh : Chin lc lai BFS-MC trong , BFS p dng ti nh v MC ti y. Mt cch kt hp khc l dng tm kim chiu su ti nh khng gian tm kim v BFS c dng ti y. Chng ta p dng tm kim chiu su cho ti khi gp mt trng thi Tk m su (s trng thi trung gian) ca n vt qu mt ngng d0 no . Ti im ny, thay v ln ngc tr li, ta p dng kiu tm kim BFS cho phn khng gian pha "di" bt u t Tk cho ti khi n tr v mt gii php hoc khng tm thy. Nu n khng tm thy kt qu, chng ta ln ngc tr li v li dng BFS khi t su d0. Tham s d0 s c chn sao cho b nh dng cho tm kim BFS trn khng gian "di" mc d0 s khng vt qu mt hng s cho trc. R rng ta ta khng d g xc nh c d0 (v ni chung, ta kh nh gi c khng gian bi ton rng n mc no). Tuy nhin, kiu kt hp ny li c mt thun li. Phn y khng gian tm kim thng cha nhiu thng tin "b ch" hn l phn nh. (Chng hn, tm ng i n khu trung tm ca thnh ph, khi cng n gn khu trung tm y th bn cng d dng tin n trung tm hn v c nhiu "du hiu" ca trung tm xut hin xung quanh bn!). Ngha l, cng tin v pha y ca khng gian tm kim, c lng h thng cng tr nn chnh xc hn v do , cng d dn ta n kt qu hn.

42

TTNT

Hnh : Chin lc lai BFS-MC trong , MC p dng ti nh v BFS ti y.

Cn mt kiu kt hp phc tp hn na. Trong , BFS c thc hin cc b v chiu su c thc hin ton cc. Ta bt u tm kim theo BFS cho ti khi mt s lng b nh xc nh M0 c dng ht. Ti im ny, chng ta xem tt c nhng trng thi trong OPEN nh nhng trng thi con trc tip ca trng thi ban u v chuyn giao chng cho tm kim chiu su. Tm kim chiu su s chn trng thi tt nht trong nhng trng thi con ny v "bnh trng" n dng BFS, ngha l n chuyn trng thi chn cho tm kim BFS cc b cho n khi mt lng b nh M0 li c dng ht v trng thi con mi trong OPEN li tip tc c xem nh nt con ca nt "bnh trng"...Nu vic "bnh trng" bng BFS tht bi th ta quay lui li v chn nt con tt th hai ca tp OPEN trc , ri li tip tc bnh trng bng BFS...

Hnh : Chin lc lai BFS-MC trong , BFS c p dng cc b v chiu su c p dng ton cc. C mt cch phi hp ni ting khc c gi l tm kim theo giai on c thc hin nh sau. Thay v lu tr trong b nh ton b cy tm kim c sinh ra bi BFS, ta ch gi li cy con c trin vng nht. Khi mt lng b nh M0 c dng ht, ta s nh du mt tp con cc trng thi trong OPEN (nhng trng thi c gi tr hm f thp nht) gi li; nhng ng i tt nht qua nhng trng thi ny cng s c ghi nh v tt c phn cn li ca cy b loi b. Qu trnh tm kim sau s tip tc theo BFS cho ti43

TTNT

khi mt lng b nh M0 li c dng ht v c th. Chin lc ny c th c xem nh l mt s lai ghp gia BF v leo o. Trong , leo o thun ty loi b tt c nhng ch gi li phng n tt nht cn tm kim theo giai on loi b tt c nhng ch gi li tp cc phng n tt nht.

44

TTNT

A. TNG QUAN TR TU NHN TO

I. M UCh to c nhng c my thng minh nh con ngi (thm ch thng minh hn con ngi) l mt c m chy bng ca loi ngi t hng ngn nm nay. Hn bn c cn nh n nh khoa hc Alan Turing cng nhng ng gp to ln ca ng trong lnh vc tr tu nhn to. Nng lc my tnh ngy cng mnh m l mt iu kin ht sc thun li cho tr tu nhn to. iu ny cho php nhng chng trnh my tnh p dng cc thut gii tr tu nhn to c kh nng phn ng nhanh v hiu qu hn trc. S kin my tnh Deep Blue nh bi kin tng c vua th gii Casparov l mt minh chng hng hn cho mt bc tin di trong cng cuc nghin cu v tr tu nhn to. Tuyc th nh bi c Casparov nhng Deep Blue l mt c my ch bit nh c ! N thm ch khng c c tr thng minh s ng ca mt a b bit ln ba nh nhn din c nhng ngi thn, kh nng quan st nhn bit th gii, tnh cm thng, ght, ... Ngnh tr tu nhn to c nhng bc tin ng k, nhng mt tr tu nhn to thc s vn ch c trong nhng b phim khoa hc gi tng ca Hollywood. Vy th ti sao chng ta vn nghin cu v tr tu nhn to? iu ny cng tng t nh c m ch to vng ca cc nh gi kim thut thi Trung C, tuy cha thnh cng nhng chnh qu trnh nghin cu lm sng t nhiu vn . Mc d mc tiu ti thng ca ngnh TTNT l xy dng mt chic my c nng lc t duy tng t nh con ngi nhng kh nng hin ti ca tt c cc sn phm TTNT vn cn rt khim tn so vi mc tiu ra. Tuy vy, ngnh khoa hc mi m ny vn ang tin b mi ngy v ang t ra ngy cng hu dng trong mt s cng vic i hi tr thng minh ca con ngi. Hnh nh sau s gip bn hnh dung c tnh hnh ca ngnh tr tu nhn to.

Trc khi bc vo tm hiu v tr tu nhn to, chng ta hy nhc li mt nh ngha c nhiu nh khoa hc chp nhn.

Mc tiu ca ngnh khoa hc tr tu nhn to ?

45

TTNT

To ra nhng chic my tnh c kh nng nhn thc, suy lun v phn ng. Nhn thc c hiu l kh nng quan st, hc hi, hiu bit cng nh nhng kinh nghim v th gii xung quanh. Qu trnh nhn thc gip con ngi c tri thc. Suy lun l kh nng vn dng nhng tri thc sn c phn ng vi nhng tnh hung hay nhng vn - bi ton gp phi trong cuc sng. Nhn thc v suy lun t a ra nhng phn ng thch hp l ba hnh vi c th ni l c trng cho tr tu ca con ngi. (D nhin cn mt yu t na l tnh cm. Nhng chng ta s khng cp n y!). Do , cng khng c g ngc nhin khi mun to ra mt chic my tnh thng minh, ta cn phi trang b cho n nhng kh nng ny. C ba kh nng ny u cn n mt yu t c bn l tri thc. Di gc nhn ca tp sch ny, xy dng tr tu nhn to l tm cch biu din tri thc, tm cch vn dng tri thc gii quyt vn v tm cch b sung tri thc bng cch "pht hin" tri thc t cc thng tin sn c (my hc).

46

TTNT

II. THNG TIN, D LIU V TRI THCTri thc l mt khi nim rt tru tng. Do , chng ta s khng c gng a ra mt nh ngha hnh thc chnh xc y. Thay vo , chng ta hy cng nhau cm nhn khi nim "tri thc" bng cch so snh n vi hai khi nim khc l thng tin v d liu. Nh bc hc ni ting Karan Sing tng ni rng "Chng ta ang ngp chm trong bin thng tin nhng li ang kht tri thc". Cu ni ny lm ni bt s khc bit v lng ln v cht gia hai khi nim thng tin v tri thc. Trong ng cnh ca ngnh khoa hc my tnh, ngi ta quan nim rng d liu l cc con s, ch ci, hnh nh, m thanh... m my tnh c th tip nhn v x l. Bn thn d liu thng khng c ngha i vi con ngi. Cn thng tin l tt c nhng g m con ngi c th cm nhn c mt cch trc tip thng qua cc gic quan ca mnh (khu gic, v gic, thnh gic, xc gic, th gic v gic quan th 6) hoc gin tip thng qua cc phng tin k thut nh tivi, radio, cassette,... Thng tin i vi con ngi lun c mt ngha nht nh no . Vi phng tin my tnh (m c th l cc thit b u ra), con ngi s tip thu c mt phn d liu c ngha i vi mnh. Nu so v lng, d liu thng nhiu hn thng tin. Cng c th quan nim thng tin l quan h gia cc d liu. Cc d liu c sp xp theo mt th t hoc c tp hp li theo mt quan h no s cha ng thng tin. Nu nhng quan h ny c ch ra mt cch r rng th l cc tri thc. Chng hn : Trong ton hc : Bn thn tng con s ring l nh 1, 1, 3, 5, 2, 7, 11, ... l cc d liu. Tuy nhin, khi t chng li vi nhau theo trt t nh di y th gia chng bt u c mt mi lin h D liu : 1, 1, 2, 3, 5, 8, 13, 21, 34, .... Mi lin h ny c th c biu din bng cng thc sau : Un = Un-1 + Un-2. Cng thc nu trn chnh l tri thc.

Trong vt l : Bn sau y cho chng ta bit s o v in tr (R), in th (U) v cng dng in (I) trong mt mch in.

I

U

R

47

TTNT

5 2.5 4 7.3

10 20 12 14.6

2 8 3 2

Bn thn nhng con s trong cc ct ca bn trn khng c my ngha nu ta tch ri chng ta. Nhng khi t k nhau, chng cho thy c mt s lin h no . V mi lin h ny c th c din t bng cng thc n gin sau :

Cng thc ny l tri thc.

Trong cuc sng hng ngy : Hng ngy, ngi nng dn vn quan st thy cc hin tng nng, ma, rm v chun chun bay. Rt nhiu ln quan st, h c nhn xt nh sau : Chun chun bay thp th ma, bay cao th nng, bay va th rm. Li nhn xt trn l tri thc.C quan im trn cho rng ch nhng mi lin h tng minh (c th chng minh c) gia cc d liu mi c xem l tri thc. Cn nhng mi quan h khng tng minh th khng c cng nhn. y, ta cng c th quan nim rng, mi mi lin h gia cc d liu u c th c xem l tri thc, bi v, nhng mi lin h ny thc s tn ti. im khc bit l chng ta cha pht hin ra n m thi. R rng rng "d sao th tri t cng vn xoay quanh mt tri" d tri thc ny c c Galil pht hin ra hay khng!

Nh vy, so vi d liu th tri thc c s lng t hn rt nhiu. Thut ng t y khng ch n gin l mt du nh hn bnh thng m l s kt tinh hoc c ng li. Bn hy hnh dung d liu nh l nhng im trn mt phng cn tri thc chnh l phng trnh ca ng cong ni tt c nhng im ny li. Ch cn mt phng trnh ng cong ta c th biu din c v s im!. Cng vy, chng ta cn c nhng kinh nghim, nhn xt t hng ng s liu thng k, nu khng, chng ta s ngp chm trong bin thng tin nh nh bc hc Karan Sing cnh bo!. Ngi ta thng phn loi tri thc ra lm cc dng nh sau :

48

TTNT

Tri thc s kin : l cc khng nh v mt s kin, khi nim no (trong mt phm vi xc nh). Cc nh lut vt l, ton hc, ... thng c xp vo loi ny. (Chng hn : mt tri mc ng ng, tam gic u c 3 gc 600, ...) Tri thc th tc : thng dng din t phng php, cc bc cn tin hnh, trnh t hay ngn gn l cch gii quyt mt vn . Thut ton, thut gii l mt dng ca tri thc th tc. Tri thc m t : cho bit mt i tng, s kin, vn , khi nim, ... c thy, cm nhn, cu to nh th no (mt ci bn thng c 4 chn, con ngi c 2 tay, 2 mt,...) Tri thc Heuristic : l mt dng tri thc cm tnh. Cc tri thc thuc loi ny thng c dng c lng, phng on, v thng c hnh thnh thng qua kinh nghim. Trn thc t, rt him c mt tr tu m khng cn n tri thc (liu c th c mt i kin tng c vua m khng bit nh c hoc khng bit cc th c quan trng khng?). Tuy tri thc khng quyt nh s thng minh (ngi bit nhiu nh l ton hn cha chc gii ton gii hn!) nhng n l mt yu t c bn cu thnh tr thng minh. Chnh v vy, mun xy dng mt tr thng minh nhn to, ta cn phi c yu t c bn ny. T y t ra vn u tin l Cc phng php a tri thc vo my tnh c gi l biu din tri thc.

III. THUT TON MT PHNG PHP BIU DIN TRI THC?Trc khi tr li cu hi trn, bn hy th ngh xem, liu mt chng trnh gii phng trnh bc 2 c th c xem l mt chng trnh c tri thc hay khng? ... C ch ! Vy th tri thc nm u? Tri thc v gii phng trnh bc hai thc cht c m ha di dng cc cu lnh if..then..else trong chng trnh. Mt cch tng qut, c th khng nh l tt c cc chng trnh my tnh t nhiu u c tri thc. chnh l tri thc ca lp trnh vin c chuyn thnh cc cu lnh ca chng trnh. Bn s thc mc "nh vy ti sao a tri thc vo my tnh li l mt vn ? (v t trc ti gi chng ta , ang v s tip tc lm nh th m?)". ng nh th tht, nhng vn nm ch, cc tri thc trong nhng chng trnh truyn thng l nhng tri thc "cng", ngha l n khng th c thm vo hay iu chnh mt khi chng trnh c bin dch. Mun iu chnh th chng ta phi tin hnh sa li m ngun ca chng trnh (ri sau bin dch li). M thao tc sa chng trnh th ch c nhng lp trnh vin mi c th lm c. iu ny s lm gim kh nng ng dng chng trnh (v a s ngi dng bnh thng u khng bit lp trnh). Bn th ngh xem, vi mt chng trnh h tr ra quyt nh (nh u t c phiu, u t bt ng sn chng hn), liu ngi dng c cm thy thoi mi khng khi mun a vo chng trnh nhng kin thc ca mnh th anh ta phi chn mt trong hai cch l (1) t sa li m chng trnh!? (2) tm tc gi ca chng trnh nh ngi ny sa li!?. C hai thao tc trn u khng th chp nhn c i vi bt k ngi dng bnh thng no. H cn c mt cch no chnh h c th a tri thc vo my tnh mt cch d dng, thun tin ging nh h ang i thoi vi mt con ngi.

49

TTNT

lm c iu ny, chng ta cn phi "mm" ha cc tri thc c biu din trong my tnh. Xt cho cng, mi chng trnh my tnh u gm hai thnh phn l cc m lnh v d liu. M lnh c v nh l phn cng ca chng trnh cn d liu c xem l phn mm (v n c th c thay i bi ngi dng). Do , "mm" ha tri thc cng ng ngha vi vic tm cc phng php c th biu din cc loi tri thc ca con ngi bng cc cu trc d liu m my tnh c th x l c. y cng chnh l ngha ca thut ng "biu din tri thc". Bn cn phi bit rng, t ra l cho n thi im bn ang c cun sch ny, con ngi vn cha th tm ra mt kiu biu din tng qut cho mi loi tri thc! lm vn m chng ta ang bn lun tr nn sng t hn. Chng ta hy xem xt mt s bi ton trong phn tip theo.

IV. LM QUEN VI CCH GII QUYT VN BNG CCH CHUYN GIAO TRI THC CHO MY TNHBi ton 1 : Cho hai bnh rng X v Y c th tch ln lt l VX v VY, hy dng hai bnh ny ong ra z lt nc (z x = 1, y = 4 Lut (L3) -> x = 3, y = 2

3 lut m chng ta ci t trong chng trnh trn c gi l c s tri thc. Cn cch thc tm kim li gii bng cch duyt tun t tng lut v p dng n c gi l ng c suy din. Chng ta s nh ngha chnh xc hai thut ng ny cui mc.Ngi ta chng minh c rng, bi ton ong nc ch c li gii khi s nc cn ong l mt bi s ca c s chung ln nht ca th tch hai bnh. z = n USCLN(VX, VY) (vi n nguyn dng)

Cch gii quyt vn theo kiu ny khc so vi cch gii bng thut ton thng thng l chng ta khng a ra mt trnh t gii quyt vn c th m ch a ra cc quy tc chung chung (di dng cc lut), my tnh s da vo (p dng cc lut) t xy dng mt quy trnh gii quyt vn . iu ny cng ging nh vic chng ta gii ton bng cch a ra cc nh l, quy tc lin quan n bi ton m khng cn phi ch ra cch gii c th. Vy th im th v nm im no? Bn s c th cm thy rng chng ta vn ang dng tri thc "cng" ! (v cc tri thc vn l cc cu lnh IF c ci sn trong chng trnh). Thc ra th chng trnh ca chng ta "mm" hn mt t ri y. Nu khng tin, cc bn hy quan st phin bn k tip ca chng trnh ny.FUNCTION DK(L INTEGER):BOOLEAN; BEGIN CASE L OF 1 : DK := (x = Vx); 2 : DK := (y = 0); 3 : DK := (y>0); END; END; PROCEDURE ThiHanh(L INTEGER):BOOLEAN;

53

TTNT BEGIN CASE L OF 1 : x := 0; 2: y := Vy; 3 : BEGIN k := min(Vx-x,y); x := x+k; y := y-k; END; END; END; CONST SO_LUAT = 3; BEGIN WHILE (xz) AND (yz) DO BEGIN FOR i:=1 TO SO_LUAT DO IF DK(L) THEN ThiHanh(L); END; END.

on chng trnh chnh cng thi hnh bng cch ln lt xt qua 3 lnh IF nh chng trnh u tin. Tuy nhin, y, biu thc iu kin c thay th bng hm DK v cc hnh ng ng vi iu kin c thay th bng th tc ThiHanh. Tnh cht "mm" hn ca chng trnh ny th hin ch, nu mun b sung "tri thc", ta ch phi iu chnh li cc hm DK v ThiHanh m khng cn phi sa li chng trnh chnh. By gi hy gi s rng ta c hm v th tc c bit sau : FUNCTION GiaTriBool(DK : String) : BOOLEAN; PROCEDURE ThucHien(ThaoTac : String) ;

54

TTNT

hm GiaTriBool nhn vo mt chui iu kin, n s phn tch chui, tnh ton ri tr ra gi tr BOOLEAN ca biu thc ny. V d : GiaTriBoolean(60; 9; CacLuat[1].ThaoTac := x:=0; CacLuat[2].ThaoTac:= y:=Vy; CacLuat[3].ThaoTac:= k:=min(Vx-x,y), x:=x+k, y:=y-k; END; BEGIN WHILE (xz) AND (yz) DO BEGIN

55

TTNT FOR i:=1 TO SO_LUAT DO IF GiaTriBoolean(CacLuat[i].DK) THEN ThucHien(CacLuat[i].ThaoTac); END; END.

Chng ta tm cho rng trong qu trnh chng trnh thi hnh, ta c th d dng thay i s phn t mng CacLuat (cc ngn ng lp trnh sau ny nh Visual C++, Delphi u cho php iu ny). Vi chng trnh ny, khi mun sa i "tri thc", bn ch cn thay i gi tr mng Luat l xong. Tuy nhin, ngi dng vn gp kh khn khi mun b sung hoc hiu chnh tri thc. H cn phi nhp cc chui i loi nh x=0 hoc k:=min(Vx-x,y) ...Cc chui ny, tuy c ngha i vi chng trnh nhng vn cn kh xa l i vi ngi dng bnh thng. Chng ta cn gim bt "khong cch" ny li bng cch a ra nhng chui iu kin hoc thao tc c ngha trc tip i vi ngi dng. Chng trnh s c chuyn i li cc iu kin v thao tc ny sang dng ph hp vi chng trnh. lm c iu trn. Chng ta cn phi lit k c cc trng thi v thao tc c bn ca bi ton ny. Sau y l mt s trng thi v thao tc c bn. Trng thi c bn : Bnh X y, Bnh X rng, Bnh X khng rng, Bnh X c n lt nc. Thao tc ht nc trong bnh, y nc trong bnh, nc t bnh A sang bnh B cho n khi B y hoc A rng.Lu rng ta khng th c thao tc " n lt nc t A sang B" v bi ton gi nh rng cc bnh u khng c vch chia, hn na nu ta bit cch n lt nc t A sang B th li gii bi ton tr thnh qu n gin. "Mc y X" " z lt nc t X sang Y" V y l mt bi ton n gin nn bn c th d nhn thy rng, cc trng thi c bn v thao tc chng c g khc so vi cc iu kin m chng ta a ra.

K tip, ta s vit cc on chng trnh cho php ngi dng nhp vo cc lut (dng nu ... th ...) c hnh thnh t cc trng thi v iu kin c bn ny, ng thi tin

56

TTNT

hnh chuyn sang dng my tnh c th x l c nh v d trn. Chng ta s khng bn n vic ci t cc on chng trnh giao tip vi ngi dng y. Nh vy, so vi chng trnh truyn thng (c cu to t hai "cht liu" c bn l d liu v thut ton), chng trnh tr tu nhn to c cu to t hai thnh phn l c s tri thc (knowledge base) v ng c suy din (inference engine). C s tri thc : l tp hp cc tri thc lin quan n vn m chng trnh quan tm gii quyt. ng c suy din : l phng php vn dng tri thc trong c s tri thc gii quyt vn .

Nu xt theo quan nim biu din tri thc m ta va bn lun trn th c s tri thc ch l mt dng d liu c bit v ng c suy din cng ch l mt dng ca thut ton c bit m thi. Tuy vy, c th ni rng, c s tri thc v ng c suy din l mt bc tin ha mi ca d liu v thut ton ca chng trnh! Bn c th hnh dung ng c suy din ging nh mt loi ng c tng qut, c chun ha c th dng vn hnh nhiu loi xe my khc nhau v c s tri thc chnh l loi nhin liu c bit vn hnh loi ng c ny !

57

TTNT

C s tri thc cng gp phi nhng vn tng t nh nhng c s d liu khc nh s trng lp, tha, mu thun. Khi xy dng c s tri thc, ta cng phi ch n nhng yu t ny. Nh vy, bn cnh vn biu din tri thc, ta cn phi ra cc phng php loi b nhng tri thc trng lp, tha hoc mu thun. Nhng thao tc ny s c thc hin trong qu trnh ghi nhn tri thc vo h thng. Chng ta s cp n nhng phng php ny trong phn tm hiu v cc lut dn. Hnh nh trn tm tt cho chng ta thy cu trc chung nht ca mt chng trnh tr tu nhn to.

B. CC PHNG PHP BIU DIN TRI THC TRN MY TNH

V. LOGIC MNH y c l l kiu biu din tri thc n gin nht v gn gi nht i vi chng ta. Mnh l mt khng nh, mt pht biu m gi tr ca n ch c th hoc l ng hoc l sai. V d : pht biu "1+1=2" c gi tr ng. pht biu "Mi loi c c th sng trn b" c gi tr sai. Gi tr ca mnh khng ch ph thuc vo bn thn mnh . C nhng mnh m gi tr ca n lun ng hoc sai bt chp thi gian nhng cng c nhng mnh m gi tr ca n li ph thuc vo thi gian, khng gian v nhiu yu t khc quan khc. Chng hn nh mnh : "Con ngi khng th nhy cao hn 5m vi chn trn" l ng khi tri t , cn nhng hnh tinh c lc hp dn yu th c th sai. Ta k hiu mnh bng nhng ch ci la tinh nh a, b, c, ... C 3 php ni c bn to ra nhng mnh mi t nhng mnh c s l php hi ( ), giao( ) v ph nh ( )Bn c chn hn tng s dng logic mnh trong chng trnh rt nhiu ln (nh trong cu trc lnh IF ... THEN ... ELSE) biu din cc tri thc "cng" trong my tnh !

Bn cnh cc thao tc tnh ra gi tr cc mnh phc t gi tr nhng mnh con, chng ta c c mt c ch suy din nh sau : Modus Ponens : Nu mnh A l ng v mnh A B l ng th gi tr ca B s l ng. Modus Tollens : Nu mnh A B l ng v mnh B l sai th gi tr ca A s l sai.

58

TTNT

Cc php ton v suy lun trn mnh c cp nhiu n trong cc ti liu v ton nn chng ta s khng i vo chi tit y.

VI. LOGIC V TBiu din tri thc bng mnh gp phi mt tr ngi c bn l ta khng th can thip vo cu trc ca mt mnh . Hay ni mt cch khc l mnh khng c cu trc . iu ny lm hn ch rt nhiu thao tc suy lun . Do , ngi ta a vo khi nim v t v lng t ( - vi mi, - tn ti) tng cng tnh cu trc ca mt mnh . Trong logic v t, mt mnh c cu to bi hai thnh phn l cc i tng tri thc v mi lin h gia chng (gi l v t). Cc mnh s c biu din di dng : V t (, , , ) Nh vy biu din v ca cc tri cy, cc mnh s c vit li thnh : Cam c v Ngt V (Cam, Ngt) Cam c mu Xanh Mu (Cam, Xanh)

...Kiu biu din ny c hnh thc tng t nh hm trong cc ngn ng lp trnh, cc i tng tri thc chnh l cc tham s ca hm, gi tr mnh chnh l kt qu ca hm (thuc kiu BOOLEAN).

Vi v t, ta c th biu din cc tri thc di dng cc mnh tng qut, l nhng mnh m gi tr ca n c xc nh thng qua cc i tng tri thc cu to nn n. Chng hn tri thc : "A l b ca B nu B l anh hoc em ca mt ngi con ca A" c th c biu din di dng v t nh sau :B (A, B) = Tn ti Z sao cho : B (A, Z) v (Anh(Z, B) hoc Anh(B,Z))

Trong trng hp ny, mnh B(A,B) l mt mnh tng qut Nh vy nu ta c cc mnh c s l :a) B ("An", "Bnh") c gi tr ng (Anh l b ca Bnh) b) Anh("T", "Bnh") c gi tr ng (T l anh ca Bnh) th mnh c) B ("An", "T") s c gi tr l ng. (An l b ca T).

59

TTNT

R rng l nu ch s dng logic mnh thng thng th ta s khng th tm c mt mi lin h no gia c v a,b bng cc php ni mnh , , . T , ta cng khng th tnh ra c gi tr ca mnh c. S d nh vy v ta khng th th hin tng minh tri thc "(A l b ca B) nu c Z sao cho (A l b ca Z) v (Z anh hoc em C)" di dng cc mnh thng thng. Chnh c trng ca v t cho php chng ta th hin c cc tri thc dng tng qut nh trn. Thm mt s v d na cc bn thy r hn kh nng ca v t : Cu cch ngn "Khng c vt g l ln nht v khng c vt g l b nht!" c th c biu din di dng v t nh sau : LnHn(x,y) = x>y NhHn(x,y) = x