You are on page 1of 29

Bo co bi tp ln Tr tu nhn to

Bi ton ngi i du lch

TRNG I HC BCH KHOA H NI VIN CNG NGH THNG TIN V TRUYN THNG ---------------------*---------------------

BI TP LN

TR TU NHN TO
TN TI XY DNG CHNG TRNH S DNG THUT TON TKCT* GII BI TON NGI DU LCH

Hc vin thc hin: 1. Trn Th Thy Dng 2. Nguyn Th Thu Hng 3. Nguyn Th Hng 4. Nguyn Vn Ninh 5. Hong Th Minh Tm Lp: Cao hc 12ACNTT- HY Ths. Nguyn Th Ngc Bch Ging vin hng dn:

NM 2012

Bo co bi tp ln Tr tu nhn to MC LC

Bi ton ngi i du lch

I.TNG QUAN V TR TU NHN TO...........................................................................3 II.BI TON NGI DU LCH............................................................................................4


II.1 Pht biu bi ton.........................................................................................4

2.1.1 Lch s bi ton TSP....................................................................................5 2.1.2 M t bi ton TSP.......................................................................................7 2.1.3 Phn loi bi ton.........................................................................................7
2.2 Cc gii thut gii bi ton ngi du lch.....................................................8

2.2.1 Cc gii thut tm li gii chnh xc.........................................................8 2.2.2 Heuristic v cc gii thut xp x..................................................................9 2.2.3 Gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT*.................................................................................................................11
2.3 Phn tch thit k gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT*...........................................................................................11

2.3.1 Chu trnh Hammilton..................................................................................11 .............................................................................................................................12 2.3.2 Gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT*.................................................................................................................12
2.4 M ngun..................................................................................................13 2.5 Kt qu thc hin.......................................................................................27 2.6 nh gi phc tp ca thut ton.........................................................27 2.7 ngha......................................................................................................28

III.KT LUN........................................................................................................................29

Bo co bi tp ln Tr tu nhn to

Bi ton ngi i du lch

I. TNG QUAN V TR TU NHN TO Tr Tu Nhn To (Artificial Intelligence) l mt ngnh mi, nhng pht trin rt mnh m v em li nhiu kt qu to ln. Con ngi thng t cho mnh l sinh vt thng minh v kh nng tr tu ng vai tr quan trong trong cuc sng. Trong vn hc cng tng c nhng cu chuyn cao v tr thng minh ca con ngi. Tr Tu Nhn To ch mi hnh thnh t nm 1956. Tuy nhin, vic nghin cu tr tu c t lu. Trn 2000 nm trc, cc nh trit hc tm hiu v cch thc nhn nhn, hc tp, nh v suy l. Vic ra i ca my tnh in t vo nhng nm 50 ca th k 20 sinh ra khuynh hng a cc lnh vc nghin cu tr tu v cc vn l thuyt v thc nghim trn my. Tr tu nhn to nghin cu v cch hnh x (hay c ch ca cc hnh vi) thng minh (intelligent behaviour) ngi v my. Tr tu nhn to c xy dng l thuyt y v thng minh c th gii thch c hot ng thng minh ca sinh vt v p dng c cc hiu bit vo cc my mc ni chung, nhm phc v cho con ngi. (Hay ni cch khc to chic my tnh c kh nng nhn thc, suy lun v phn ng). Vai tr ca tr tu nhn to: Tr tu nhn to bao qut rt nhiu lnh vc nghin cu hp. N nghin cu t cc lnh vc tng qut nh my nhn bit, suy lun logic, n cc bi ton nh chi c, chng minh nh l. Thng th cc nh khoa hc cc lnh vc khc tm n vi tr tu nhn to cc k thut h thng ho v t ng ho cc x l tri thc cng nh cc phng php thuc lnh vc mang tnh ngi. Tr tu nhn to nghin cu k thut lm cho my tnh c th suy ngh mt cch thng minh v m phng qu trnh suy ngh ca con ngi khi a ra nhng quyt nh, li gii. Trn c s , thit k cc chng trnh cho my tnh gii quyt bi ton. S ra i v pht trin ca Tr tu nhn to to ra mt bc nhy vt v cht trong k thut v k ngh x l thng tin. Tr tu nhn to chnh l c s ca cng ngh x l thng tin mi, c lp vi cng ngh x l thng tin truyn thng da trn vn bn giy t. iu ny c th hin qua cc mt sau: - Nh nhng cng c hnh thc ho (cc m hinh logic ngn ng, logic m,...), cc tri thc th tc v tri thc m t c th biu din c trong my. Do vy qu trnh gii bi ton c tin hnh hu hiu hn.

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch - M hnh logic ngn ng m rng kh nng ng dng ca my tnh trong lnh vc i hi tri thc chuyn gia trnh cao, rt kh nh: y hc, sinh hc, a l, t ng ha. - Mt s phn mm tr tu nhn to th hin tnh thch nghi v tnh mm do i vi cc lp bi ton thuc nhiu lnh vc khc nhau. - Khi my tnh c trang b cc phn mm tr tu nhn to ghp mng s cho php gii quyt nhng bi ton c ln v phn tn. So snh k thut lp trnh truyn thng v k thut x l tri thc trong TTNT Truyn thng X l d liu X l theo cc thut ton X l tun t theo l TTNT X l tri thc X l theo cc thut gii Heuristics X l theo ch tng tc cao (ngn ng t nhin, c giao tip vi bn ngoi)

Khng gii thch trong qu trnh C th gii thch hnh vi h thng trong qu trnh thc hin thc hin Mt s chuyn ngnh (lnh vc ng dng) ca tr tu nhn to: - Cc phng php tm kim li gii - H chuyn gia - X l ngn ng t nhin - L thuyt nhn dng - Lp k hoch v Ngi my (Robot) - My hc - Cc m hnh thn kinh (Mng Neuron v gii thut di truyn) .. Trong cc lnh vc nghin cu ca Tr Tu Nhn To, chng ta thng xuyn phi i u vi cc bi ton s dng tri thc, v vy ta phi c nhng k thut gii quyt cc vn (bi ton) bng tri thc v bi ton ngi i du lch l mt v d. II. BI TON NGI DU LCH

II.1

Pht biu bi ton

Bi ton ngi du lch (Travelling Salesman problem (TSP)) l mt bi ton kh ni ting trong lnh vc ti u t hp c nghin cu trong l thuyt khoa hc my tnh. Ni dung ca n kh n gin, n c pht biu nh sau: Cho mt danh sch cc thnh ph v khong cch gia chng, nhim v l phi tm ng i ngn nht c th m ch thm mi thnh ph ng mt ln.

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch Bi ton c ln u tin a ra nh mt vn ton hc vo nm 1930 v l mt trong s nhng bi ton c nghin cu chuyn su trong lnh vc t hp thi . N c s dng nh mt s nh gi cho nhiu phng thc ti u khc nhau. Thm ch bi ton l thuc lp NP kh, mt lng rt ln cc heuristic v phng thc tm kim c th c bit n v vy mt vi trng hp ca bi ton vi khong chc nghn thnh ph c gii quyt. TSP c mt vi ng dng thm ch trong dng thc nguyn thu ca n nh lp k hoch, logistic, v sn xut cc microchip. Thay i i cht t n xut hin nh mt bi ton con trong rt nhiu lnh vc nh vic phn tch gen trong sinh hc. Trong nhng ng dng ny, khi nim thnh ph c th thay i thnh khch hng, cc im hn trn bng mch, cc mnh DNA trong gen, v khi nim khong cch c th biu din bi thi gian du lch hay gi thnh , hay ging nh s so snh gia cc mnh DNA vi nhau. Trong nhiu ng dng, cc hn ch truyn thng nh gii hn ti nguyn hay gii hn thi gian thm ch cn lm cho bi ton tr nn kh hn. Trong l thuyt ca phc tp tnh ton, phin bn quyt nh ca bi ton TSP thuc lp NP-complete. V vy khng c gii thut hiu qu no cho vic gii bi ton TSP. Hay ni cch khc, ging nh thi gian chy ti nht cho bt k gii thut no cho bi ton TSP tng theo hm m vi s lng thnh ph, v vy thm ch nhiu trng hp vi vi trm thnh ph cng mt vi nm CPU gii mt cch chnh xc. 2.1.1 Lch s bi ton TSP Ngun gc ca bi ton ngi du lch n nay vn cha r rng. Mt cun sch cho ngi du lch t nm 1832 cp ti vn v bao gm vi v d v cc ng i t c qua Thy s nhng khng cha ng ngha ton hc no Vn ton hc lin quan ti bi ton ngi du lch c nhc n trong nhng nm 1800 bi nh ton hc ireland W. R. Hamilton v nh ton hc ngi Anh Thomas Kirkman. Tr chi Icosian Game ca Hamilton l mt tr vui da trn c s tm chu trnh Hamilton. Dng tng qut ca bi ton TSP c nghin c bi cc nh ton hc sut nhng nm 1930 i hc Harvard, ng ch l Karl Menger ngi nh ngha bi ton, xem xt gii thut brute-force v quan st thy tnh khng ti u ca heuristic da trn lng ging gn nht. Bi ton ngi du lch, tm ng i ngn nht cho ngi thng nhn (salesman), hay cn gi l ngi cho hng xut pht t mt thnh ph, i qua ln lt tt c cc thnh ph duy nht mt ln v quay v thnh ph ban u vi chi ph r nht. N nhanh chng tr thnh bi ton kh thch thc ton th gii bi phc tp thut ton tng theo hm s m (trong chuyn ngnh thut ton ngi ta cn gi chng l nhng bi ton NP-kh). Ngi ta bt u th v cng b cc kt qu 5

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch gii bi ton ny trn my tnh t nm 1954 (49 nh), cho n nm 2004 bi ton gii c vi s nh ln ti 24.978, v d bo s cn tip tc tng cao na. Bi ton c th pht biu di ngn ng th nh sau : Cho th n nh y v c trng s G = (V-tp nh, E-tp cnh) c hoc v hng. Tm chu trnh Halmilton:

c tng trng s

l nh nht. Hassler Whitney i hc Princeton University l ngi u tin t tn ngi du lch cho bi ton khng lu sau . Trong nhng nm 1950 v 1960 , bi ton tr nn ngy cng ph bin trong khoa hc chu u v M. Nhng ng gp ng ch c k n nh George Dantzig, Delbert Ray Fulkerson v Selmer M. Johnson ti RAND Corporation Santa Monica, nhng ngi trnh by bi ton nh bi ton s nguyn tuyn tnh v pht trin phng thc ct cho li gii ca n. Vi nhng phng thc mi ny h gii c mt th d ca bi ton vi 49 thnh ph xy dng mt cch ti u v chng minh rng khng cn ng i no ngn hn na. Trong nhng thp k tip theo, bi ton c nghin cu bi rt nhiu nh nghin c t ton hc , khoa hc my tnh , ha hc ,vt l v nhng khoa hc khc. Richard M. Karp nm 1972 ch ra rng bi ton chu trnh Hamiltonian thuc lp NP-complete, v qua ch ra tnh NP kh (NP-hardness ) ca bi ton TSP. iu ny gii thch mt cch khoa hc cho phc tp tnh ton ca vic tm li gii ti u cho bi ton . Nhiu thnh tu t c trong sut nhng nm cui thp k 1970 v 1980, khi Grtschel, Padberg, Rinaldi v nhng ngi khc c gng gii mt cch chnh xc mt th hin ca bi ton vi 2392 thnh ph, s dng phng thc ct v branch-andbound. Trong nhng nm 1990 Applegate, Bixby, Chvtal, v Cook pht trin chng trnh Concorde m c s dng nhiu trong vic gii cc bi ton TSP cho n nay. Gerhard Reinelt cng b th vin TSPLIB vo nm 1991, l mt tp cc th hin ca bi ton TSP vi nhiu kh khc nhau, v c s dng bi nhiu nhm nghin cu khc nhau so snh kt qu. Nm 2005, Cook v nhng ngi 6

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch khc tnh c di ti u cho chu trnh vi th hin ca bi ton TSP ln ti 33,810 thnh ph , c ly ra t bi ton xy dng layout cho microchip, cho ti nay vn l th hin ln nht trong cc th hin TSPLIB. Nhiu th hin khc vi hng triu thnh ph, li gii tm c c th chng minh nm sai khc 1% so vi li gii ti u. 2.1.2 M t bi ton TSP TSP c th c m hnh nh mt th , cc nh ca th tng ng vi cc thnh ph v cc cnh th tng ng vi ng ni gia cc thnh ph, chiu di ca mt cnh tng ng vi khong cch gia 2 thnh ph. Mt ng i trong bi ton TSP l mt chu trnh Hamilton trn th v mt li gii ti u ca bi ton l chu trnh Hamilton ngn nht.

Thng th th l th y , v vy mi cp cnh u c ni bi cc cnh. y l bc n gin ha bi ton v vic tm chu trnh Hamilton trong mt th y l d. Cc bi ton m khng phi 2 thnh ph no cng c ni vi nhau c th c chuyn i thnh th y bng cch thm nhng cnh c di ln gia cch thnh ph ny, nhng cnh s khng xut hin trong chu trnh ti u. 2.1.3 Phn loi bi ton i xng v bt i xng Trong bi ton i xng khong cch gia cc thnh ph l nh nhau theo hai hng, v vy th biu din l th v hng. S i xng ny lm gim mt na s li gii c th. Trong bi ton bt i xng, khong cch t thnh ph ny n thnh ph khc khng nht thit phi bng khong cch theo hng ngc li, thm ch co th khng c kt ni theo chiu ngc li. V vy graph biu din bi ton bt i xng l th c hng. Ly v d m hnh ng mt chiu trong giao thng chng hn. Vi khong cch l metric Trong bi ton metric TSP khong cch gia cc thnh ph phi tha mn iu kin ca bt ng thc tam gic. iu ny c th pht biu rng ng ni trc tip t A n B khng bao gi di hn ng i t A ti B m qua C trung gian Nhng chiu di cnh ny nh ngha mt metric trong tp cc nh . Khi cc thnh ph c xem nh nhng im trn tm hnh, nhiu hm khong cch t nhin l cc metric v d nh : 7

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch Trong bi ton Euclidian TSP khong cch gia 2 thnh ph l khong cch Euclide gia hai im tng ng.

Trong bi ton Rectilinear TSP khong cch gia 2 thnh ph l tng hai ta x v y ca chng. Metric ny thng c gi l khong cch Manhattan hay city-block metric. Trong maximum metric, khong cch gia 2 thnh ph l max ca chnh lch ta x v y ca chng.

Hai metric cui xut hin trong vic nh hng mt my m o tp cc h trong mch in. Manhattan metric tng ng ti my cn chnh ta th nht ri ti ta kia, v vy thi gian di chuyn ti mt im mi l tng c 2 hng di chuyn. Maximum metric tng ng vi my m chnh c 2 ta cng 1 lc v vy thi gian di chuyn ti mt im mi quyt nh bi di chuyn di hn. Vi khong cch khng l metric Khong cch khng tha mn bt ng thc tam gic pht sinh trong nhiu bi ton nh tuyn. V d trong mt kiu vn ti , nh du lch bng my bay c th nhanh hn mc d khong cch di chuyn l xa hn. 2.2 Cc gii thut gii bi ton ngi du lch 2.2.1 Cc gii thut tm li gii chnh xc Li gii trc tip nht c th l th tt c cc hon v v xem hon v no l tt nht ( dng brute-force). Thi gian chy cho cch tip cn ny l O(n!), v vy cch tip cn ny thm ch khng th thc hin vi ch 20 thnh ph. Mt trong s nhng ng dng mi y nht ca quy hoch ng l gii thut c phc tp O(n22n) v yu cu khng gian b nh l hm m. Ci thin tc cho cch gii thut trn l hu nh khng th. V d, thm ch l rt kh tm mt gii thut chnh xc cho bi ton TSP chy trong phc tp O(1.9999n). Nhng cch tip cn khc bao gm:

Rt nhiu gii thut branch-and-bound, c th s dng gii cc bi ton TSP vi khong 40-60 thnh ph. Cc gii thut ci thin dn dn s dng k thut ghi nh li ca linear programming. C th lm vic tt cho khong 200 thnh ph. Thc hin branch-and-bound v cut cho cc bi ton c th , y l phng thc s dng gii quyt cc bi ton vi s lng ln thnh ph. Cch tip cn ny ang gi k lc hin ti gii quyt c bi ton TSP vi 85,900 thnh ph. 8

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch Li gii chnh xc cho bi ton vi 15,112 thnh ph c t TSPLIB c tm ra nm 2001 s dng phng thc lt ct xut bi George Dantzig, Ray Fulkerson, v Selmer Johnson vo nm 1954, da trn linear programming. Qu trnh tnh ton c thc hin trong mng my tnh gm 110 b vi x l ti i hc Rice University v Princeton University. Tng thi gian tnh ton tng ng vi 22.6 nm trong mt my n vi x l tc 500 MHz. Vo thng 5-2004, bi ton ngi du lch thm tt c 24,978 thnh ph thy in c gii quyt : on ng ngn nht vo khong 72,500 kilomet c tm thy v c chng minh rng khng c ng i no ngn hn. Vo thng 3 nm 2005, bi ton ngi du lch vi 33,810 im trong 1 mch in c gii quyt s dung cng c Concorde TSP Solver: on ng ti u di 66,048,945 n v c tm thy v c chng minh khng c ng i no ngn hn tng khi lng tnh ton mt khong 15.7 nm CPU (Cook et al. 2006). Vo thng 4 nm 2006 mt bi ton vi 85,900 im cng c gii quyt bi Concorde TSP Solver, v mt khong 136 nm CPU . 2.2.2 Heuristic v cc gii thut xp x Rt nhiu heuristics v gii thut xp x, c th a ra nhanh chng li gii tt c xut. Cc phng thc hin i c th tm li gii cho bi ton cc ln (hng triu thnh ph) trong khong thi gian chp nhn c vi li gii xp x ch khc 23% so vi li gii ti u. Mt vi kiu heuristic c tm ra. Heuristics xy dng Gii thut lng ging gn nht nearest neighbour (NN) (hay cn gi l gii thut tham lam greedy algorithm) cho ngi du lch chn thnh ph gn nht cha thm trong ln di chuyn tip theo. Gii thut ny nhanh chng a ra mt ng i ngn v hiu qu . Cho khong N thnh ph phn b ngu nhiu trn mt phng trung bnh gii thut ny a ra li gii c chiu di xp x 1.25 * ln chiu di ca ng i ti u. Tuy nhin, c nhiu cch sp xp c bit cc thnh ph lm cho gii thut NN a ra ng i ti t nht (Gutin, Yeo, and Zverovich, 2002). iu ny ng cho c bi ton TSP i xng v bt i xng (Gutin and Yeo, 2007). Gn y mt heuristic mi c a ra ,Match Twice and Stitch (MTS) (Kahng, Reda 2004. MTS cho thy tnh hiu qu hn hn so vi nhng heuristic xy dng hin ti . MTS thc hin hai ln khp tun t , m ln khp th 2 c thc hin sau khi xa tt c cc cnh ca ln khp th nht, a ra tp tt c cc chu trnh. Sau chu trnh c ng li a ra ng i cui cng.. Ci tin tng bc

Chuyn cp, hay heuristic Lin-Kernighan. 9

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch K thut chuyn cp hay '2-opt' bao gm vic lp li vic xa 2 cnh v thay chng bng hai cnh khc ni on to bi cnh b xa to thnh ng di ngn hn. y l trng hp c bit ca phng thc k-opt.

k-opt heuristic

Ly mt ng i v xa k cnh i mt khng c im chung. Xy ng li ng i t nhng mnh cn li khng c hai mnh ng i no li vi nhau (khng ni hai im u cui ca 2 mnh vi nhau s to thnh ng i khp kn). iu ny lm n gin habi ton TSP thnh bi ton n gin hn rt nhiu. Mi im u cui c th c ni ti 2k 2 im khc c th: trong s 2k tng s im u cui c th, tr ra hai im u cui ca mnh ang xem xt . Bi ton n gin ha 2k thnh ph TSP c th gii s dng brute force tm t hp tt nht ca cc mnh ban u. K thut k-opt l trng hp ring ca k thut V-opt hay variable-opt . K thut ph bin ca k-opt l 3-opt, c gii thiu bi Shen Lin ca Bell Labs vo nm 1965. C mt trng hp c bit ca 3-opt khi m cch cnh l c th khng nht thit khng c im chung (hai trong s cc cnh k vi nhau). Trong thc t, c th t c nhng pht trin ng k ca k thut 2-opt khng nht thit phi s dng 3-opt bgn cch gii hn 3-changes thnh trn hp ring vi hai cnh xa i ni vi nhau. K thut ny c gi l 2.5-opt nm gia 2-opt v 3-opt, hiu theo c 2 ngha ca cht lng li gii t c v thi gian tm c li gii.

V'-opt heuristic

K thut variable-opt method ging nh , nhng l s tng qut ha ca k-opt k thut. Trong khi k thut k-opt xa i mt s long c nh (k) cnh t ng i ban u k thut variable-opt khng xa i mt s lng cnh c nh. Thay v vy n pht trin tp ny khi qu trnh tm kim tip tc. Phng thc ni ting trong gia nh ny l phng thc Lin-Kernighan . Shen Lin v Brian Kernighan ln u tin a ra phng thc ca h nm 1972 v n l heuris tic ng tin cy nht cho vic gii bi ton ngi du lch trong sut hai thp k . Nhng k thut tin tin hn c pht trin ti Bell Labs cui nhng nm 1980 bi David Johnson v i nghin cu ca ng. Nhng phng thc ny , i khi c gi l Lin-Kernighan-Johnson xy dng trn phng thc Lin-Kernighan , thm tng t tabu search v evolutionary computing. K thut c s Lin-Kernighan technique mang li kt qu c m bo t nht l bn so vi 3-opt. Phng thc Lin-Kernighan-Johnson tnh mt ng i LinKernighan , v sau xo trn ng i bng cch t bin (xa t nht 4 cnh v ni li ng i bng cch khc , sau thc v-opt trn ng i mi). Qu trnh t bin thng di chuyn ng i ra khi cc b a phng (local minimum). K thut V-opt c xem nh mt trong s nhng heuristic mnh cho bi ton v c th gii quyt cc trng hp c bit, nh bi ton chu trnh Hamilton v nhng bi ton TSP khng phi metric m nhng heuristic khc khng gii quyt c.

10

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch 2.2.3 Gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT* Th tc TKCT l gii thut tm kim ng i ti u khi ch xt ti cc thng tin v nh (ton t B), cc cung v gi thnh ca chng (c: AR+). Tuy vy, gii thut ny khng th p dng c khi bi ton tr nn phc tp do i hi phi tho mt s lng ln cc nt. i vi nhiu bi ton vic tm kim ng i ti u s c nh hng tp trung hn xung quanh ng i tt nht nu s dng cc hng tp trung hn xung quanh ng i tt nht nu s dng cc thng tin c t v bi ton. Theo nh ngha cc thng tin ny gi l cc heuristics. Cc k thut s dng heuristtics gi l cc mo gii. Thut ton ny tm mt ng i t mt nh khi u ti mt nh ch cho trc hoc ti mt nh tha mn mt iu kin ch m theo bi ton ny th nh ch l nh khi u sau khi i qua tt cc nh trong th. Thut ton s dng mt "nh gi heuristic" xp loi tng nh theo c lng v tuyn ng tt nht i qua nh . Thut ton ny duyt cc nh theo th t ca nh gi heuristic ny. bit nhng tuyn ng no c kh nng s dn ti ch, TKCT* s dng "nh gi heuristic" v khong cch t im bt k cho trc ti ch. Trong trng hp tm ng i, nh gi ny c th l khong cch ng chim bay - mt nh gi xp x, thng dng cho khong cch ca ng giao thng. im khc bit ca TKCT* i vi tm kim theo la chn tt nht l n cn tnh n khong cch i qua. iu lm cho TKCT* "y " v "ti u", ngha l, TKCT* s lun lun tm thy ng i ngn nht nu tn ti mt ng i nh th. TKCT* khng m bo s chy nhanh hn cc thut ton tm kim n gin hn. Trong mt mi trng dng m cung, cch duy nht n ch c th l trc ht phi i v pha xa ch v cui cng mi quay li. Trong trng hp , vic th cc nt theo th t "gn ch hn th c th trc" c th gy tn thi gian. 2.3 Phn tch thit k gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT* 2.3.1 Chu trnh Hammilton Trong ton hc, ngnh l thuyt th, mt ng i Hamilton l mt ng i trong th v hng i qua tt c cc nh ca th, mi nh ng mt ln. Mt Chu trnh Hamilton l mt ng i Hamilton sau i qua tt c cc nh ca th th tr v nh xut pht. Mt th c chu trnh Hamilton c gi l th Hamilton, th c ng i Hamilton c gi l th na Hamilton. Bi ton tm ng i v chu trnh nh vy c gi l bi ton Hamilton. Bi ton Hamilton l NP y . 11

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch Tn gi ng i v chu trnh Hamilton l gi theo tn ca William Rowan Hamilton . Bi ton ngi di lch c th c biu din khi qut bng mt th c trng s G(N,A) vi N l tp hp cc nt m t cho cc thnh ph, A l tp hp cc cung m t on ng gia hai thnh ph. Mi cung (i,j) thuc A c gn mt gi tr dij m t chiu di ca ng i gia hai nh i, j vi i, j thuc N. Mc ch cui cng ca bi ton ngi du lch chnh l tm ra chu trnh Hamilton ngn nht ca th G c n nh vi n l s thnh ph m ngi du lch phi i qua. Nh vy, kt qu tt nht ca bi ton chnh l mt hon v ca cc nh {1, 2,, n}, sao cho chiu di f() l nh nht. f() c tnh theo cng thc sau:

2.3.2 Gii thut Heuristics tm ng i c gi nh nht vi tri thc b sung TKCT* TKCT* lu gi mt tp cc li gii cha hon chnh, ngha l cc ng i qua th, bt u t nt xut pht. Th t u tin gn cho mt ng i c quyt nh bi hm Trong , c gi l hm c lng heuristics. l chi ph ca ng i cho n thi im hin ti, ngha l tng

trng s ca cc cnh i qua. l hm nh gi heuristic v chi ph nh nht n ch t . V d, nu "chi ph" c tnh l khong cch i qua, khong cch ng chim bay gia hai im trn mt bn l mt nh gi heuristic cho khong cch cn phi i tip. Hm c gi tr cng thp th u tin ca cng cao.

Vo: th G = (N, A) vi nh l cc thnh ph cn i qua, nh gc S0. Tp nh ch: DICH f0 : N R+ Ra: Tm ng i t S0 n ch. Phng php: { MO= {S0}; f0(S0) = g(0) + h(0); While (M0 <> ) { S= getmoi(MO); DONG = DONG U {S}; if S DICH exit(Thnh cng); 12

Bo co bi tp ln Tr tu nhn to if child (S) <> for each s child(S) if s MO U DONG MO= MO U {s}; f(s) = g(s) + h(s);

Bi ton ngi i du lch

if f(s)c > f(s) mi MO= MO U {s}; } Printf (Khng thnh cng); } 2.4 M ngun 2.4.1 Cu trc file A_Star\A_Star // Khai bo int n, s, t; int[,] a; int[] h, g, f; List<int> path = new List<int>(); public void ReadFile(string pathFile) --- Hm c d liu t file ra public void ReadFile(string pathFile) { string[] tmp = new string[0]; string st; int i, j; StreamReader sr = new StreamReader(pathFile); st = sr.ReadLine(); tmp = st.Split(' '); n = int.Parse(tmp[0]); 13

Bo co bi tp ln Tr tu nhn to s = int.Parse(tmp[1]); t = int.Parse(tmp[2]); a = new int[n, n]; h = new int[n]; g = new int[n]; f = new int[n]; st = sr.ReadLine(); tmp = st.Split(' '); for (i = 0; i < n; ++i) h[i] = int.Parse(tmp[i]); st = sr.ReadLine(); i = 0; while (st != null && st != "") { tmp = st.Split(' '); for (j = 0; j < n; ++j) a[i, j] = int.Parse(tmp[j]); i++; st = sr.ReadLine(); } sr.Close(); } public void PrintGraph() --- Hm in th public void PrintGraph()

Bi ton ngi i du lch

14

Bo co bi tp ln Tr tu nhn to { int i, j; Console.WriteLine("Matrix of Graph:"); for (i = 0; i < n; i++) { for (j = 0; j < n; ++j) Console.Write("{0,3}", a[i, j]); Console.WriteLine(); }

Bi ton ngi i du lch

Console.WriteLine("Estimated h(u) from u to goal:"); for (int u = 0; u < n; ++u) Console.Write("{0,3}", h[u]); Console.WriteLine(); Console.WriteLine("Start Point:" + s); Console.WriteLine("Terminal Point:" + t); } public void A_Star_Search() --- Hm duyt ng i public void A_Star_Search() { List<int> open = new List<int>(); List<int> closed = new List<int>(); bool ok = false; int u, tmp; open.Add(s); while (true) 15

Bo co bi tp ln Tr tu nhn to { if (open.Count == 0) { ok = false; break; } u = open[0]; path.Add(u); closed.Add(u); Console.Write("open: "); for (int k = 0; k < open.Count; ++k) Console.Write("{0,3}", open[k]); Console.WriteLine();

Bi ton ngi i du lch

Console.Write("closed: "); for (int k = 0; k < closed.Count; ++k) Console.Write("{0,3}", closed[k]); Console.WriteLine(); open.Remove(u); if (u == t) { ok = true; break; } for (int v = 0; v < n; ++v) if (a[u, v] > 0 && !closed.Contains(v)) { 16

Bo co bi tp ln Tr tu nhn to int tmp_gv = g[u] + a[u, v]; int tmp_fv = tmp_gv + h[v]; if (open.Contains(v)) if (f[v] <= tmp_fv) continue; else open.Remove(v); g[v] = tmp_gv; f[v] = tmp_fv; open.Add(v); } for (int i = 0; i < open.Count - 1; ++i) for (int j = open.Count - 1; j > i; --j) if (f[open[j]] < f[open[j - 1]]) { tmp = open[j]; open[j] = open[j - 1]; open[j - 1] = tmp; } } if (ok) {

Bi ton ngi i du lch

Console.WriteLine("Contours of A star search:"); for (int k = 0; k < path.Count; ++k) Console.Write("{0,3}", path[k]); } else 17

Bo co bi tp ln Tr tu nhn to Console.WriteLine("unsuccessful!"); } 2.4.2 Cu trc file A sao_di du lich Khai bo const int size = 100; int maxE = 100; int maxC = size * maxE; int C[size][size]; int X[size+1]; int T[size]; int BestWay[size+1]; int FREE[size]; int minSpending; int M,N; void Enter () --- Hm nhp thnh ph, chi ph v trng s h void Enter () { int i,j,k; cout << " CITY: " ; cin >> N;

Bi ton ngi i du lch

cout << " TRAFFIC ROAD: "; cin >> M; for ( i = 1; i <= N; i++ ) { for ( j = 1; j <= N; j++ ) { 18

Bo co bi tp ln Tr tu nhn to if ( i == j ) C[i][j] = 0; else } } for ( k = 1; k <= M; k++ ) { cout << "Enter i: "; cin >> i; cout << "Enter j: "; cin >> j; cout << "Cost : "; cin >> C[i][j]; C[j][i] = C[i][j]; } } void InI() --- Hm gn gi tr ng i ban u void InI() { for ( int i = 1; i <= N; i++ ) { FREE[i] = 1; } FREE[1] = 0; X[1] = 1; T[1] = 0; minSpending = maxC; } void BACKTRACK ( int i ) C[i][j] = maxC;

Bi ton ngi i du lch

---- Hm tm ng i vi gi tr nh nht. Nhp nh bt u 19

Bo co bi tp ln Tr tu nhn to void BACKTRACK ( int i ) { for ( int j = 2; j <= N; j++ ) { if ( FREE[j] ) { X[i] = j; T[i] = T[i-1] + C[X[i-1]][j]; if (( T[i] + C[i][1]) < minSpending ) { if ( i < N ) { FREE[j] = 0; BACKTRACK ( i + 1 ); FREE[j] = 1; } else { for ( int var = 1; var <= N; var++ ) { BestWay[var] = X[var]; } minSpending = T[N] + C[X[N]][1]; } else goto finish;

Bi ton ngi i du lch

20

Bo co bi tp ln Tr tu nhn to } } finish: } void PRINT() --- Hm in Kt qu void PRINT() { if ( minSpending == maxC ) { cout << "NO SOLUTION "; } else { for ( int i = 1; i <= N; i++ ) { cout << BestWay[i] << "->"; }

Bi ton ngi i du lch

cout << " Minimum Spending is : " << minSpending; } } 2.4.3 Cu trc file A_sao_Bai 2.15\ThuatToanA_sao TTA.Nhap(); --- Hm c thng tin t file lu tr danh sch cch v ma trn trng s. public void Nhap() { int hang = -1, cot = 0; StreamReader h = new StreamReader(path); string str = h.ReadLine(); 21

Bo co bi tp ln Tr tu nhn to n = int.Parse(str); MaTranKe = new int[n, n]; str = h.ReadLine(); while (str != null) { hang++; cot = 0; foreach (string tmp in str.Split(' ')) { int x = int.Parse(tmp); MaTranKe[hang, cot] = x; cot++; } str = h.ReadLine(); } h.Close(); // khoi tao ma tran trong so using (StreamReader dr = File.OpenText(path1)) { string str1 = dr.ReadLine(); // so phan tu nay cung bang so dinh cua ma tran int sophantu = int.Parse(str1); Hn = new int[sophantu]; string[] tmp = new string[sophantu]; str1 = dr.ReadLine();

Bi ton ngi i du lch

22

Bo co bi tp ln Tr tu nhn to tmp = str1.Split(' '); for (i = 0; i < tmp.Length; i++) { Hn[i] = int.Parse(tmp[i]); } } } TTA.Hien(); ---- Hin th ma trn cnh v hm nh gi public void Hien() { Console.WriteLine("Hien ma tran canh"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) Console.Write("{0} ", MaTranKe[i, j]); Console.WriteLine(); } Console.WriteLine("Hien ham danh gia"); for (i = 0; i < n; i++) { Console.Write("{0} ", Hn[i]); } Console.WriteLine(); // nhp nh xut pht v kt thc Console.Write("Nhap dinh xuat phat xp="); xp = int.Parse(Console.ReadLine()); Console.Write("Nhap dinh ket thuc KT="); kt = int.Parse(Console.ReadLine());

Bi ton ngi i du lch

23

Bo co bi tp ln Tr tu nhn to } TTA.Duyet(); --- Duyt A* v a ra kt qu public void Duyet() { if (Duyet_Asao()) { Console.WriteLine(); Console.WriteLine("da tim thay ket qua");

Bi ton ngi i du lch

Console.WriteLine("Hien duong di ngan nhat theo A*"); for (j = 0; j < KetQua.Length; j++) { if (j < KetQua.Length - 1) Console.Write("Dinh:{0},{1},{2}\t", KetQua[j].Dinh, KetQua[j].Giatri_Gn, KetQua[j].Giatri_Fn + "==>"); else Console.WriteLine("Dinh:{0},{1},{2}", KetQua[j].Dinh, KetQua[j].Giatri_Gn, KetQua[j].Giatri_Fn); } } else Console.WriteLine("Khong tim thay ket qua"); } private bool Duyet_Asao() { bool TimThay = false; // khoi tao doi tuong Stack Stack A = new Stack(); //Khoi tao node Sau Node Sau = new Node(); 24

Bo co bi tp ln Tr tu nhn to Sau = null; //khoi to Node Tmp Node Tmp = new Node(); Tmp = null; //Cho nh xut pht vo Stack A.Put(ref Sau, xp,0, Hn[xp]+0);

Bi ton ngi i du lch

// ng i t nh xp ti xp =0;nn ng i thc t =ng chim bay + 0; // thc hin vng lp do { // kim tra Stack c rng hay khng if (A.Empty(Sau))// kt qu ng th thot khi chng trnh { Console.WriteLine("\n danh sach rong"); break;// thot khi chng trnh } // nu khng rng th loi nh cui danh sch ra Tmp = A.Pop(ref Sau); Console.WriteLine(); Console.Write("lay ra dinh {0},{1},{2}", Tmp.TnDinh, Tmp.DuongDi_Gn,Tmp.DuongDithucTe_Fn + " co dinh con: "); //Cho nh vo mng kt qu ng i Array.Resize(ref KetQua, ++d); KetQua[d - 1].Dinh = Tmp.TnDinh; KetQua[d - 1].Giatri_Gn = Tmp.DuongDi_Gn; KetQua[d - 1].Giatri_Fn = Tmp.DuongDithucTe_Fn; 25

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch // nu nh ly ra trng vi nh cn tm th kt thc thut ton if (Tmp.TnDinh == kt) { TimThay = true; break; } // nu khng tm thy th xt cc nh con ca nh va ly ra for (i = 0; i < n; i++) {// e[Tmp.TnDinh, i]l khong cch giua //: inh ly trong danh sch ra v nh con i k vi nh ly ra if (MaTranKe[Tmp.TnDinh, i] > 0) { Gn = Tmp.DuongDi_Gn + MaTranKe[Tmp.TnDinh, i]; Fn = Gn + Hn[i]; A.Put(ref Sau, i, Gn, Fn); Console.Write("{0},{1},{2}", i, Gn, Fn+"---"); } } //Thut ton A* s chn ng i thc t nh nht // vy ta phi sp xp Stack theo th t tng dn gi tr nh nht u danh sch // khi vic ly ra s c nh c ng i thc t nh nht A.sord(Sau); } while(true); return TimThay; } 26

Bo co bi tp ln Tr tu nhn to 2.5 Kt qu thc hin

Bi ton ngi i du lch

2.6 nh gi phc tp ca thut ton phc tp thi gian ca TKCT* ph thuc vo nh gi heuristic. Trong trng hp xu nht, s nt c m rng theo hm m ca di li gii, nhng n s l hm a thc khi hm heuristich tha mn iu kin sau: trong l heuristic ti u, ngha l hm cho kt qu l chi ph chnh xc i t nh xut pht ti ch. Ni cch khc, sai s ca h khng nn tng nhanh hn lgarit ca "heuristic hon ho" - hm tr v khong cch thc t nh xut pht ti ch. Trong trng hp xu nht, TKCT* phi ghi nh s lng nt tng theo hm m. Mt s bin th ca TKCT* c pht trin i ph vi hin tng ny, mt 27

Bo co bi tp ln Tr tu nhn to Bi ton ngi i du lch trong s l TKCT* lp su dn (iterative deepening TKCT*), TKCT* b nh gii hn v TKCT* b nh gii hn n gin. nh gi thut gii Heuristic ca bi ton: u im: Thut gii Heuristic cho bi ton ngi du lch c phc tp O(n2 ) tt hn rt nhiu so vi thut ton ti u ( c phc tp O( n!) ). Nhc im: thut gii c nhng hn ch, cha cho ra li gii chnh xc.

2.7 ngha Nhng bi ton, c bit l khi chng c kch thc ln v c cu trc phc tp, c thut ton kh thi vi phc tp khng qu a thc, thng rt t. Hn ch ca thut ton: Trn thc t, ta thng gp nhiu bi ton: + Hoc cho n nay cha c thut ton no gii; + Hoc c thut ton gii nhng khng kh thi v khng gian nh v thi gian do phc tp ca n c cp vt qu a thc; + Hoc c cc phng php gii mc d c thc t chp nhn nhng li vi phm mt s tnh cht ca thut ton nh tnh xc nh hay tnh ng. gii quyt kh khn ny ngi ta m rng tnh xc nh, tnh ng ca thut ton v b sung thm cc tri thc kinh nghim c th hay mo gii c c cc thut gii heuristics. Thut gii Heuristic 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. Tng t thut gii tm ng i c gi thnh nh nht, thut gii Heuristic thay hm g0(n) bi f 0(n) = g0(n) + h0(n). ngha: . g0(n): gi chi ph tht s t n0 n n, cch tnh g0(n) theo cng thc qui: g0(n0) = 0 & g0(con) = g0(cha) + c(cha, con) (cha, con) A. . h0(n): c lng chi ph t n n tp DICH, hay l hm c lng kh nng dn n li gii. . Vic dng hm f 0(n) = g0(n) + h0(n) khi chn la phng n k tip, khng ch quan tm n chi ph tr t im xut pht n0 n trng thi hin ti n, m cn tham kho thm c thng tin heuristic c trng cho kh nng nhanh dn n ch cui cng t trng thi hin ti. C th xem cc phng php ny l cc thut gii vt cn thng minh. y l cch gii thng minh v c o m con ngi thng s dng khi gp cc bi ton kh trong thc t nh chng minh nh l, gii cc bi ton suy lun lgic, chi c, Kt lun: Thut gii Heuristic cho bi ton ngi i du lch tuy cha a ra c li gii chnh xc cho bi ton, nhng n cho ra mt li gii c th chp nhn c vi phc tp thp hn nhiu so vi thut ton ti u.

28

Bo co bi tp ln Tr tu nhn to III. KT LUN

Bi ton ngi i du lch

Xt bi ton tm ng v d nh bi ton Ngi du lch, TKCT* xy dng tng dn tt c cc tuyn ng t im xut pht cho ti khi n tm thy mt ng i chm ti ch. Tuy nhin, cng nh tt c cc thut ton tm kim c thng tin, n ch xy dng cc tuyn ng "c v" dn v pha ch. bit nhng tuyn ng no c kh nng s dn ti ch, TKCT* s dng mt "nh gi heuristic" v khong cch t im bt k cho trc ti ch. Trong trng hp tm ng i, nh gi ny c th l khong cch ng chim bay - mt nh gi xp x thng dng cho khong cch ca ng giao thng. im khc bit ca TKCT* i vi tm kim theo la chn tt nht l n cn tnh n khong cch i qua. iu lm cho TKCT* "y " v "ti u", ngha l, TKCT* s lun lun tm thy ng i ngn nht nu tn ti mt ng i nh th. TKCT* khng m bo s chy nhanh hn cc thut ton tm kim n gin hn. Trong mt mi trng dng m cung, cch duy nht n ch c th l trc ht phi i v pha xa ch v cui cng mi quay li. Trong trng hp , vic th cc nt theo th t "gn ch hn th c th trc" c th gy tn thi gian. TKCT* l thut ton y (complete) theo ngha rng n s lun lun tm thy mt li gii nu bi ton c li gii. TKCT* cn c tnh cht hiu qu mt cch ti u (optimally efficient) vi mi hm heuristic, c ngha l khng c thut ton no cng s dng hm heuristic m ch phi m rng t nt hn TKCT*, tr khi c mt s li gii cha y m ti c thd on chnh xc chi ph ca ng i ti u. Nh vy TKCT* gip gii quyt cc bi ton tm kim ng i ni chung v bi ton Ngi du lch ni ring mt cch rt tt v hiu qu.

29

You might also like