Bài toán tìm kiếm văn bản sử dụng giải thuật di truyền

20 317 0
Bài toán tìm kiếm văn bản sử dụng giải thuật di truyền

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

I HC THI NGUYấN KHOA CễNG NGH THễNG TIN NGUYN VN QUYT BI TON TèM KIM VN BN S DNG GII THUT DI TRUYN LUN VN THC S CễNG NGH THễNG TIN CHUYấN NGNH KHOA HC MY TNH Thỏi Nguyờn - 2009 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn đại học Thái Nguyên Khoa Công nghệ thông tin Nguyễn văn Bài toán tìm kiếm văn sử dụng giảI thuật di truyền Chuyên nghành: Khoa học máy tính Mã số: 60.48.01 TểM TT LUN VN THC S Thái Nguyên - 2009 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Cụng trỡnh c hon thnh ti: Khoa CNTT - H Thỏi Nguyờn Ngi hng dn khoa hc: TS V Mnh Xuõn, Ch nhim Khoa Toỏn Trng phũng Cụng ngh thụng tin Th vin, Trng i hc S phm i hc Thỏi Nguyờn Phn bin 1: Phn bin 2: Lun s c bo v trc hi ng chm lun hp ti: Vo hi gi ngy thỏng 12 nm 2009 Cú th tỡm hiu lun ti Trung tõm Hc liu H Thỏi Nguyờn v Th vin Khoa CNTT H Thỏi Nguyờn S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn LI CM N Trc ht em xin gi li cm n chõn thnh n ton th cỏc thy cụ giỏo Vin Cụng ngh Thụng tin ó tn tỡnh dy d chỳng em sut quỏ trỡnh hc ti khoa Cụng ngh thụng tin - i hc Thỏi Nguyờn c bit em xin by t lũng bit n sõu sc ti thy giỏo TS V Mnh Xuõn - Trng Khoa Toỏn, Trng Phũng Cụng ngh Thụng tin - Th vin trng i hc S phm - i hc Thỏi Nguyờn ó quan tõm hng dn v a nhng gi ý, gúp ý, chnh sa vụ cựng quý bỏu cho em quỏ trỡnh lm lun tt nghip Cui cựng xin chõn thnh cm n nhng ngi bn ó giỳp , chia s vi em sut quỏ trỡnh lm lun Thỏi Nguyờn, Ngy 01 thỏng 10 nm 2009 Hc viờn Nguyn Vn Quyt S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn LI CAM OAN Tụi xin cam oan õy l cụng trỡnh nghiờn cu ca cỏ nhõn tụi Cỏc s liu, kt qu cú lun l trung thc v cha c cụng b bt k mt cụng trỡnh no khỏc Thỏi Nguyờn, ngy 10 thỏng11 nm 2009 Tỏc gi lun Nguyn Vn Quyt S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn i MC LC Trang Trang ph bỡa Li cam oan Mc lc i Danh mc cỏc thut ng iv Danh mc cỏc hỡnh v, bng biu v M U: 1 T VN MC CH CA LUN VN NI DUNG CA LUN VN PHNG PHP NGHIấN CU NI DUNG CHNG MT S K THUT TèM KIM VN BN 1.1 Bi toỏn tỡm kim bn 1.2 Cỏc thut toỏn 1.2.1 Thut toỏn Brute Force 1.2.2 Thut toỏn Knuth-Morris-Pratt 1.2.3 Thut toỏn Deterministic Finite Automaton (mỏy automat hu hn) 1.2.4 Thut toỏn Boyer-Moore 10 1.2.5 Thut toỏn Karp-Rabin 15 1.2.6 Cỏc thut toỏn khỏc 17 CHNG GII THIU V GII THUT DI TRUYN 20 2.1 Tng quan v gii thut di truyn 20 2.1.1 Gii thiu 20 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn ii 2.1.2 S khỏc bit ca gii thut di truyn so vi cỏc gii thut khỏc 21 2.1.3 Tớnh cht quan trng ca gii thut di truyn 21 2.2 Gii thut di truyn c in 22 2.2.1 Gii thiu 22 2.2.2 Cỏc toỏn t di truyn 24 2.2.2.1 Toỏn t chn lc 24 2.2.2.2 Toỏn t lai ghộp 25 2.2.2.3 Toỏn t t bin 26 2.2.3 Cỏc bc quan trng vic ỏp dng gii thut di truyn c in 26 2.2.4 Vớ d 27 CHNG S DNG GII THUT DI TRUYN TèM KIM VN BN 33 3.1 Yờu cu t cho bi toỏn tỡm kim bn 33 3.2 Xõy dng hm tỡm kim bn 34 3.3 Phỏt biu bi toỏn tỡm kim bn theo hng tip cn di truyn 35 3.4 Tỡm di xõu chung ln nht bng quy hoch ng 38 3.5 p dng gii thut di truyn 39 3.5.1 Biu din nhim sc th 39 3.5.2 Khi to qun th 40 3.5.3 Hm mc tiờu 40 3.5.4 Cỏc toỏn t di truyn 41 3.5.5 Cỏc tham s 42 3.5.6 Chi phớ thi gian 42 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn iii CHNG KT QU THC NGHIM V PHT TRIN PHN MM NG DNG 44 4.1 Cỏc kt qu th nghim 44 4.1.1 Kt qu th nghim tỡm kim tuyn tớnh 44 4.1.1.1 Tỡm kim tuyn tớnh bng so khp chui 44 4.1.1.2 Tỡm kim tuyn tớnh s dng hm quy hoch ng 45 4.1.2 Kt qu th nghim tỡm kim bng gii thut di truyn 46 4.2 Phỏt trin phn mm ng dng 50 KT LUN V NGH 51 TI LIU THAM KHO 52 PH LC 54 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn iv CC THUT NG S DNG TRONG LUN VN Heredity, Genetic : Di truyn Genetic Algorithm (GA) : Thut gii di truyn Individual : Cỏ th Genome : B gen Mode : Ch Multi Mode : a ch Mutation : t bin Renewable Resource : Ti nguyờn tỏi s dng Nonrenewable Resource : Ti nguyờn khụng tỏi s dng Offstring : Cỏ th trai Offstring : Cỏ th gỏi One point crossover : Lai ghộp mt im Parent : Cỏ th cha Parent : Cỏ th m Popuplation : Qun th Reproduction : Sinh sn Response surface : B mt ỏp ng Two point crossover : Lai ghộp hai im Uniform Crossover : Lai ghộp ng nht combinatorial optimization : Ti u t hp Crossover : Lai ghộp Fitness : thớch nghi, hm thớch nghi S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn I HC THI NGUYấN KHOA CễNG NGH THễNG TIN NGUYN VN QUYT BI TON TèM KIM VN BN S DNG GII THUT DI TRUYN Chuyờn ngnh: Khoa hc mỏy tớnh Mó s: 60.48.01 LUN VN THC S KHOA HC MY TNH NGI HNG DN KHOA HC: TS V MNH XUN Thỏi Nguyờn - 2009 S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn M U t Ngy mỏy tớnh ó c s dng mi lnh vc ca i sng, vỡ vy kho thụng tin mỏy tớnh tng trng khụng ngng v tht khú khn cho cụng tỏc tỡm kim (nht l tỡm kim trờn cỏc file bn) Hóng Microsoft ó h tr tỡm kim t ng bng cụng c Search c tớch hp sn h iu hnh Windows, ú cho ta hai cỏch thc tỡm kim file l: tỡm theo t khoỏ tờn file (All or part of the file name) a cỏc file cú tờn cha khoỏ tỡm kim; v tỡm theo t khoỏ ni dung file (A word or phrase in the file) a cỏc file bn cú cha mt t hoc cm t ging vi t khoỏ Mc dự Search Windows h tr mnh chc nng tỡm kim theo tờn file, nhng tỡm theo ni dung file cũn cú nhng hn ch nht nh, chng hn: Search ch a cỏc file bn cú cha chớnh xỏc t khoỏ tỡm kim, nh vy s rt khú khn nu ngi dựng khụng nh chớnh xỏc t khoỏ cú ni dung bn m ch nh gn ỳng vi t khoỏ, hn na cụng c Search khụng ch c cm t khoỏ tỡm c nm õu bn v tn sut xut hin ca chỳng, nờn nu cn ngi dựng li mt ln na phi i dũ tỡm bng cỏc cụng c tỡm kim khỏc Vỡ l ú bi toỏn tỡm kim bn l bi toỏn rt thit thc ang c nhiu ngi quan tõm, cp thit t l gii quyt bi toỏn tỡm kim bn cho hiu qu, ỏp ng c nhu cu ca ngi s dng Lun ny nh hng nghiờn cu s dng gii thut di truyn tỡm file bn cỏc on bn ging hoc gn ging vi mu (t khoỏ) cn tỡm kim Vi mc tiờu ú, tụi la chn ti nghiờn cu ca lun l Bi toỏn tỡm kim bn s dng gii thut di truyn õy l hng tip cn khỏ mi i vi bi toỏn ny, hy vng rng kt qu t c s cú hiu qu ỏng k so vi cỏc phng phỏp tỡm kim khỏc S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn 2 Mc ớch ca lun Mc ớch ca lun l: nghiờn cu cỏc phng phỏp tỡm kim bn v tỡm cỏch ng dng gii thut di truyn gii quyt bi toỏn ny, trờn c s ú xõy dng phn mm ng dng tỡm kim bn mt cỏch hiu qu v thit thc Ni dung ca lun ti trung vo bi toỏn tỡm kim bn theo hng tip cn sau: Tỡm cỏc v trớ bn cú xut hin chui bn ging hoc gn ging vi chui bn mu (xut hin gn ging trng hp bn tỡm kim khụng cha chui bn mu) Trờn c s ú, ni dung ca lun gm bn chng sau phn M u: - Chng 1: Nghiờn cu khỏi quỏt v cỏc k thut tỡm kim bn - Chng 2: Tỡm hiu gii thut di truyn, chỳ trng n cỏc k thut cú liờn quan n bi toỏn tỡm kim - Chng 3: Xõy dng v phỏt biu bi toỏn, xut phng phỏp s dng gii thut di truyn tỡm kim bn Chng 4: Kt qu th nghim v phỏt trin phn mm ng dng Phng phỏp nghiờn cu Nghiờn cu ti liu, xut gii phỏp v lp trỡnh th nghim Lun ó bc u xut phng phỏp ng dng gii thut di truyn vo gii quyt bi toỏn tỡm kim bn, cỏc chng trỡnh th nghim ó minh chng hng tip cn l ỳng n v cú hiu qu c bit chng trỡnh ó ch c cỏc v trớ xut hin on bn ging bn mu hoc gn ging vi bn mu (trong trng hp bn khụng cha bn mu) cn tỡm thi gian cho phộp Hin chỳng tụi ang quỏ trỡnh phỏt trin phn mm ng dng da vo cỏc kt qu nghiờn cu ny S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn CHNG MT S K THUT TèM KIM VN BN Trong phn ny chỳng ta s quan tõm n bi toỏn tỡm kim bn thụng dng v cỏc thut toỏn ó cú tỡm kim tt c cỏc v trớ xut hin ca mu trờn mt bn Cỏc thut toỏn ny c chy trờn chng trỡnh th nghim, ci t s dựng mt hm : Output thụng bỏo cỏc v trớ tỡm thy mu 1.1 Bi toỏn tỡm kim bn D liu mỏy tớnh c lu tr di rt nhiu dng khỏc nhau, nhng s dng chui l mt nhng cỏch rt ph bin Trờn chui cỏc n v d liu khụng cú ý ngha quan trng bng cỏch sp xp ca chỳng Ta cú th thy cỏc dng khỏc ca chui nh cỏc file d liu, trờn biu din ca cỏc gen, hay chớnh bn chỳng ta ang c Mt phộp toỏn c bn trờn chui l i sỏnh mu (pattern matching), bi toỏn yờu cu ta tỡm mt hoc nhiu v trớ xut hin ca mu trờn mt bn Trong ú mu v bn l cỏc chui cú di M v N (M N), cỏc ký t c dựng gi l bng ch cỏi , cú s lng l Vic i sỏnh mu din vi nhiu ln th trờn cỏc on khỏc ca bn Trong ú ca s l mt chui M ký t liờn tip trờn bn Mi ln th chng trỡnh s kim tra s ging gia mu vi ca s hin thi Tựy theo kt qu kim tra ca s s c dch i sang phi trờn bn cho ln th tip theo S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn 1.2 Cỏc thut toỏn 1.21 Thut toỏn Brute Force Thut toỏn Brute Force th kim tra tt c cỏc v trớ trờn bn t cho n n-m+1 Sau mi ln th thut toỏn Brute Force dch mu sang phi mt ký t cho n kim tra ht bn Thut toỏn Brute Force khụng cn cụng vic chun b cng nh cỏc mng ph cho quỏ trỡnh tỡm kim phc tớnh toỏn ca thut toỏn ny l O(n*m) Th tc ci t: function IsMatch(const X: string; m: integer; const Y: string; p: integer): boolean; var i: integer; begin IsMatch := false; Dec(p); for i := to m if X[i] Y[p + i] then Exit; IsMatch := true; end; procedure BF(const X: string; m: integer; const Y: string; n: integer); var i: integer; begin for i := to n - m + if IsMatch(X, m, Y, i) then Output(i); { Thụng bỏo tỡm thy mu ti v trớ i ca bn } end; S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn 1.2.2 Thut toỏn Knuth-Morris-Pratt Thut toỏn Knuth-Morris-Pratt l thut toỏn cú phc tuyn tớnh u tiờn c phỏt hin ra, nú da trờn thut toỏn brute force vi ý tng li dng li nhng thụng tin ca ln th trc cho ln sau Trong thut toỏn brute force vỡ ch dch ca s i mt ký t nờn cú n m-1 ký t ca ca s mi l nhng ký t ca ca s va xột Trong ú cú th cú rt nhiu ký t ó c so sỏnh ging vi mu v bõy gi li nm trờn ca s mi nhng c dch i v v trớ so sỏnh vi mu Vic x lý nhng ký t ny cú th c tớnh toỏn trc ri lu li kt qu Nh ú ln th sau cú th dch i c nhiu hn mt ký t, v gim s ký t phi so sỏnh li Xột ln th ti v trớ j, ú ca s ang xột bao gm cỏc ký t y[jj+m-1] gi s s khỏc bit u tiờn xy gia hai ký t x[i] v y[j+i-1] Khi ú x[1i]=y[ji+j-1]=u v a=x[i]y[i+j]=b Vi trng hp ny, dch ca s phi tha v l phn u ca xõu x khp vi phn uụi ca xõu u trờn bn Hn na ký t c sau v trờn mu phi khỏc vi ký t a Trong nhng on nh v tho cỏc tớnh cht trờn ta ch quan tõm n on cú di ln nht U u v b c a x Y x j i+j-1 Dch ca s cho v phi khp vi u v c a S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Thut toỏn Knuth-Morris-Pratt s dng mng Next[i] lu tr di ln nht ca xõu v trng hp xõu u=x[1i-1] Mng ny cú th tớnh trc vi chi phớ v thi gian l O(m) (vic tớnh mng Next thc cht l mt bi toỏn qui hoch ng mt chiu) Thut toỏn Knuth-Morris-Pratt cú chi phớ v thi gian l O(m+n) vi nhiu nht l 2n-1 ln s ln so sỏnh ký t quỏ trỡnh tỡm kim Th tc ci t: procedure preKMP(const X: string; m: integer; var Next: array of integer); var i, j: integer; begin i := 1; j := 0; Next[1] := 0; while (i 0)and(X[i] X[j]) j := Next[j]; Inc(i); Inc(j); if X[i] = X[j] then Next[i] := Next[j] else Next[i] := j; end; end; procedure KMP(const X: string; m: integer; const Y: string; n: integer); var i, j: integer; Next: ^TIntArr; { TIntArr = array[0 maxM] of integer } begin GetMem(Next, (m + 1)*SizeOf(Integer)); preKMP(X, m, Next^); i := 1; j := 1; while (j 0)and(X[i] Y[j]) i := Next^[i]; S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Inc(i); Inc(j); if i > m then begin Output(j - i + 1); i := Next^[i]; end; end; FreeMem(Next, (m + 1)*SizeOf(Integer)); End; 1.2.3 Thut toỏn Deterministic Finite Automaton (mỏy automat hu hn) Trong thut toỏn ny, quỏ trỡnh tỡm kim c a v mt quỏ trỡnh bin i trng thỏi automat H thng automat thut toỏn DFA s c xõy dng da trờn xõu mu Mi trng thỏi (nỳt) ca automat lỳc s i din cho s ký t ang khp ca mu vi bn Cỏc ký t ca bn s lm thay i cỏc trng thỏi V t c trng cui cựng cú ngha l ó tỡm c mt v trớ xut hin mu Thut toỏn ny cú phn ging thut toỏn Knuth-Morris-Pratt vic nhy v trng thỏi trc gp mt ký t khụng khp, nhng thut toỏn DFA cú s ỏnh giỏ chớnh xỏc hn vỡ vic xỏc nh v trớ nhy v da trờn ký t khụng khp ca bn (trong thut toỏn KMP lựi v ch da trờn v trớ khụng khp) Vi xõu mu l GCAGAGAG ta cú h automat sau S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn 8 G G G G G C C C G C A G A G A G Vi vớ d hỡnh trờn ta cú: * Nu ang trng thỏi gp ký t A trờn bn s chuyn sang trng thỏi * Nu ang trng thỏi gp ký t C trờn bn s chuyn sang trng thỏi * Trng thỏi l trng thỏi cui cựng, nu t c trng thỏi ny cú ngha l ó tỡm tht mt xut hin ca mu trờn bn S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn * Trng thỏi l trng thỏi mc nh (cỏc liờn kt khụng c biu th u ch v trng thỏi ny), vớ d nỳt nu gp bt k ký t no khỏc G thỡ u chuyn v trng thỏi Vic xõy dng h automat khỏ n gin c ci t trờn ma trn k Khi ú thut toỏn cú thi gian x lý l O(n) v thi gian v b nh to h automat l O(m*) (tựy cỏch ci t) Nhng ta nhn thy rng DFA ch cú nhiu nht m cung thun v m cung nghch, vỡ vy vic lu tr cỏc cung khụng cn thit phi lu trờn ma trn k m cú th dựng cu trỳc danh sỏch k Forward Star lu tr Nh vy thi gian chun b v lng b nh ch l O(m) Tuy nhiờn thi gian tỡm kim cú th tng lờn mt chỳt so vi cỏch lu ma trn k Ci t di õy xin c dựng cỏch n gin (ma trn k) Type TAut = array[0 maxM, maxd] of integer; procedure preAUT(const X: string; m: integer; var G: TAut); var i, j, prefix, cur, c, newState: integer; begin FillChar(G, SizeOf(G), 0); cur := 0; for i := to m begin prefix := G[cur, Ord(X[i])]; {x[1 prefix]=x[i-prefix+1 i]} newState := i; G[cur, Ord(X[i])] := newState; for c := to maxd {copy prefix -> newState } G[newState, c] := G[prefix, c]; cur := newState; end; end; procedure AUT(const X: string; m: integer; const Y: string; n: integer); var S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn 10 G: ^TAut; state, i: integer; begin New(G); preAUT(X, m, G^); state := 0; for i := to n begin state := G^[state, Ord(Y[i])]; {chuyn trng thỏi} if state = m then Output(i - m + 1); end; Dispose(G); end; 1.2.4 Thut toỏn Boyer-Moore Thut toỏn Boyer Moore l thut toỏn cú tỡm kim chui rt cú hiu qu thc tin, cỏc dng khỏc ca thut toỏn ny thng c ci t cỏc chng trỡnh son tho bn Khỏc vi thut toỏn Knuth-Morris-Pratt (KMP), thut toỏn BoyerMoore kim tra cỏc ký t ca mu t phi sang trỏi v phỏt hin s khỏc u tiờn thut toỏn s tin hnh dch ca s i Trong thut toỏn ny cú hai cỏch dch ca s: Cỏch th 1: gn ging nh cỏch dch thut toỏn KMP, dch cho nhng phn ó so sỏnh ln trc khp vi nhng phn ging nú ln sau Trong ln th ti v trớ j, so sỏnh n ký t i trờn mu thỡ phỏt hin s khỏc nhau, lỳc ú x[i+1m]=y[i+j j+m-1]=u v -1]=b ú thut toỏn s dch ca s cho on u=y[i+jj+m-1] ging vi mt on mi trờn mu (trong cỏc phộp dch ta chn phộp dch nh nht) S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn

Ngày đăng: 31/08/2016, 15:24

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan