Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
99,16 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ NG ĐẠI HỌC CÔNG NGHỆ é l l é l l ĐÀO THỊ DUNG é l TÌM HIỂU MỘT SỐ GIẢI THUẬT TÌ M KIẾM CHUỖI CON VÀ ỨNG DỤNG k k k l l k l LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN l l l l Hà Nội – 2016 l l ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ NG ĐẠI HỌC CÔNG NGHỆ é l l é l l ĐÀO THỊ DUNG é l TÌM HIỂU MỘT SỐ GIẢI THUẬT TÌ M KIẾM CHUỖI CON VÀ ỨNG DỤNG k k k l l k l N gà nh: Cô n g n ghệ thô n g t i n Ch u yê n n gà nh: Hệ thố n g thô n g t i n Mã số: 60480104 l c p h v z p m k p p p c c p c v p v p c p c v v z p p c l LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN l l l l l l l NGƯỜI HƯỚ NG DẪN KHOA HỌC: PGS.TS NGUYỄN TRÍ THÀNH l l l l l k MỤC LỤC LỜI CẢ M ƠN .1 k l LỜI CA M ĐOAN k é l MỤC LỤC k D a nh mụ c cá c ký h iệ u chữ v iế t tắ t x p l 3 o z h i i z v v v D a nh mụ c cá c bả n g x p l 3 @ p c D a nh mụ c hì nh ả nh .7 x p l p p MỞ ĐẦU k é CHƯƠNG TỔ NG QUAN VỀ TÌ M KIẾ M CHUỖI CON .8 l l l k k l 1.1 Lị ch sử tìm k iếm ch uỗ i co n l i v l o z l h z p 1.1.1 Th uậ t toá n t rướ c nhữ n g năm 2000 .8 h v v p v e p p c p l 1.1.2 Th uậ t toá n s a u năm 2000 h v v p l x h p l 1.2 Tì m k iếm ch uỗ i co n .10 l o z l h z p 1.2.1 Khá i n iệm tìm k iếm ch uỗ i co n 10 z p z l i v l o z l h z p 1.2.2 Cá c cá ch t iếp cậ n: 11 3 v z s p 1.2.3 Cá c n g tìm k iếm ch uỗ i 11 g p c v l o z l h z 1.2.4 Ứ n g dụ n g củ a tìm k iếm ch uỗ i E r ro r! Boo km a r k no t d efi n e d p g c e g z p p e c x v l o z l h z e e e o l x e o p v g 1.3 Tó m tắ t chươ n g 18 l v v p c CHƯƠNG CÁC THUẬT TỐ N TÌ M KIẾ M CHUỖI CON 19 l l k k l 2.1 Cá c th uậ t tố n tìm k iếm ch uỗ i co n thô n g dụ n g 19 v h v v p v l o z l h z p v p c g p c 2.1.1 Th uậ t toá n B r u t e Fo r c e 19 h v v p e h v e e e 2.1.2 Th uậ t toá n K a rp-R a b i n .E r ro r! Boo km a r k no t d efi n e d h g v e z p v p e x e s x @ z p e e e o l x e o p v g 2.1.3 Th uậ t toá n K n u th – Mo r r is – P r a t t E r ro r! Boo km a r k no t d efi n e d h g v e z p v p e p h v k e e z l e x v v e e e o l x e o p v g 2.1.4 Th uậ t toá n Bo y e r – Moo r e 29 h v v p m e e k e e 2.2 So sá nh cá c th uậ t tố n tìm k iếm ch uỗ i E r ro r! Boo km a r k no t d ef i n e d l g e p z p e v h v v p v l o z l h z e e e o l x e o p v g 2.3 Tó m tắ t chươ n g .E r ro r! Boo km a r k no t d ef i n e d l g v e z p v e p c e e e o l x e o p v g CHƯƠNG KẾT QUẢ THỰC NGHIỆ M VÀ ỨNG DỤNG 36 l l k l l 3.1 Thự c n gh iệm 36 p c z l 3.1.1 Mô i t rườ n g thự c n gh iệm 36 k z v e p c v p c z l 3.1.2 Đá nh g iá kế t q uả thự c n gh iệm 39 é p c z o v h v p c z l 3.2 Chươ n g t rì nh ứ n g dụ n g 40 p c v e p p c g p c 3.2.1 Tậ p CSDL sử dụ n g: E r ro r! Boo km a r k no t d ef i n e d s g e l z p e g p c e e e o l x e o p v g 3.3 Tó m tắ t chươ n g .E r ro r! Boo km a r k no t d ef i n e d l g v e z v p e p c e e e o l x e o p v g KẾT LUẬN .12 l Đá nh g iá kế t q uả đề tà i E r ro r! Boo km a r k no t d ef i n e d é g p e c z p e z o v h p v z e e e o l x e o p v g Hạ n chế E r ro r! Boo km a r k no t d ef i n e d p g e z p e e e e o l x e o p v g Hướ n g phá t t r iể n t ro n g tươ n g l a i: E r ro r! Boo km a r k no t d ef i n e d p g e z p c e s v v e z p v e p c v p c y x z e e e o l x e o p v g TÀI LIỆU THA M KHẢO 12 k MỞ ĐẦU k é Lý chọ n đề tà i: g p p v z Cù n g vớ i phá t t r iể n củ a cô n g n ghệ thô n g t i n, số lượ n g cá c tà i l iệ u đ iệ n tử p c i z l s v v e z p x p c p c v p c v z p l y p c 3 v z y z h p z p v cũ n g đượ c tă n g lê n đá n g kể T ro n g kh i đó, nh u cầ u kh a i thá c t ro n g kho tà i l iệ u p c p v p c y p p p c o e p c o z p p h h o x z v v e p c o v z y z h khổ n g lồ nà y để tìm k iếm nhữ n g thô n g t i n cầ n th iế t đ a n g nh u cầ u thườ n g n gà y o i p c y p m p v l o z l p p c v p c v z p p v z v p x p c y p h h v p c p c m th iế t thự c củ a n gườ i sử dụ n g T u y nh iê n, mộ t t ro n g nhữ n g khó khă n co n n gườ i v v v 3 x p c z l g p c h m p z p l v v e p c p p c o o p p p c z gặ p phả i t ro n g v iệ c kh a i thá c thô n g t i n khả nă n g tìm chí nh xá c thơ n g t i n họ cầ n c s s z v e p c i z o x z v v p c v z p y o p p c v l p p v p c v z p p Để t rợ g iú p cô n g v iệ c nà y, cá c hệ thố n g tìm k iếm lầ n lượ t đượ c phá t t r iể n nhằm é s z v e c z s p c i z p m 3 v p c v l o z l p y p y v p s v v e z p p l phụ c vụ cho nh u cầ u tìm k iếm củ a n gườ i sử dụ n g Nhữ n g hệ thố n g tìm k iếm bắ t i p h h v l o z l x p c z l g p c l p c v p c v l o z l @ v đầ u phá t t r iể n đư a vào ứ n g dụ n g, phổ b iế n cá c hệ thố n g tìm k iếm th eo từ khó a p l h s v v e z p i p x i p c g p c s @ z p y 3 v p c v l o z l v e v o x Nh iề u hệ thố n g hoạ t độ n g h iệ u q uả t rê n I n t e r n e t Goo g l e, B i n g, Y ahoo!… T u y z h v p c v p p c z h h v e p p v e e p e v p c y e z p c x h m nh iê n, phầ n lớ n cá c cô n g cụ tìm k iếm nà y nhữ n g sả n phẩm thươ n g mạ i mã p z p s p y p 3 p c v l o z l p m y p p c l p s l v p c l z i l n g uồ n đượ c g iữ bí mậ t Hoặ c cá c hệ thố n g tìm k iếm t rê n má y cá nhâ n p c h p p c z @ l v 3 v p c v l o z l v e p l m p p p W i n dows S e a r ch, Goo g l e D es k to p… đá p ứ n g phầ n nh u cầ u củ a n gườ i sử z p g l e x e c y e e l o v s p p s p c s p p p h h x p c z l dụ n g, m iễ n phí cho cá nhâ n, t u y nh iê n cũ n g đá p ứ n g đượ c t rê n phạm v i nhỏ g l p c l z p s 3 p p v h m p z p p c p s p c p v e p s l i z p i mớ i dừ n g lạ i mứ c độ tìm k iếm từ khó a th eo t iê u đề phầ n tóm tắ t z g p c y z l p v l o z l v o x v e v z h p i s p v l v v Bà i tố n tìm k iếm xâ u kí tự ( s t r i n g s e a r ch i n g, h a y đô i kh i gọ i đố i sá nh z v p v l o z l p h o v l v e z p c l e x e z p c x m p z o z c z y p z l p xâ u - s t r i n g m a t ch i n g) mộ t t ro n g nhữ n g bà i toá n bả n q u a n t rọ n g t ro n g cá c p h l v e z p c l x v z p c y l v v e p c p p c @ z v p @ p i h x p v e p c v e p c 3 th uậ t toá n xử lý xâ u ký tự h a y xử lý vă n bả n ( t e x t p ro c ess i n g) Đâ y th uậ t toá n v h v v p p y i p h o v x m p y i p @ p v e p v s e e l l z p c é m y v h v v p xử lý xâ u vă n bả n q u a n t rọ n g có nh iề u ứ n g dụ n g t ro n g thự c tế Có rấ t nh iề u p y p h i p @ p h x p v e p c i p z h p c g p c v e p c v v e v p z h th uậ t tố n tìm k iếm xâ u kí tự ví dụ th uậ t toá n B r u t e Fo r c e, th uậ t toá n K n u th - v h v v p v l o z l p h o v i g p v h v v p e h v e e e v h v v p p h v Mo r r is- P r a t t, th uậ t toá n DFA (D e t e rm i n is t i c F i n i t e A u tom a to n - má y a u tom a t hữ u k e e z l e x v v v h v v p e v e e l z p z l v z z p z v e h v l x v p l m x h v l x v h hạ n), th uậ t toá n K a rp - R a b i n, p v h v v p x e s x @ z p L uậ n vă n nà y n gh iê n u th uậ t toá n tìm k iếm ch uỗ i co n ứ n g dụ n g n g h i p i p p m p c z p h v h v v p v l o z l h z p i p c g p c p c vào hệ thố n g tìm k iếm vă n bả n v p c v l o z l i p @ p Hướ n g n gh iê n u : p - c p l c z p h N gh iê n u cà i đặ t thử n gh iệm th uậ t toá n : th uậ t toá n B r u t e Fo r c e, c z p h i z p v v p c z l v h v v p v h v v p e h v e e e th uậ t toá n K n u th - Mo r r is- P r a t t, th uậ t toá n K a r p – R a b i n, th uậ t toá n v h v v p p h v k e e z l e x v v v h v v p x e s x @ z p v h v v p Bo y e r m e e – Moo r e k e e - Đá nh g iá h iệ u nă n g củ a th uậ t toá n é p c z z h p p c x v h v v p - Xâ y dự n g chươ n g t rì nh ứ n g dụ n g : từ đ iể n v iế t tắ t sm a r tD i c t io n a r y m g p c p c v e p p c g p c v p z p i z v v v Nộ i d u n g chí nh : l z g h p c p L uậ n vă n đượ c ch i a làm chươ n g vớ i nộ i d u n g s a u: h p i p p 3 z x y l p c i z p z g h p c p l x h l l x e v z v z p x e m Chươ n g : Tổ n g q u a n tìm k iếm ch uỗ i co n: N gh iê n u tổ n g q u a n tìm p c p c h x p i v l o z l h z p l c z p h v p c h x p i v l k iếm ch uỗ i co n ứ n g dụ n g củ a tìm k iếm ch uỗ i co n t ro n g thự c tế o z l h z p i p c g p c x v l o z l h z p v e p c v v Chươ n g : Cá c th uậ t tố n tìm k iếm ch uỗ i co n : N gh iê n u cá c th uậ t toá n p c v h v v p v l o z l h z p l c z p h 3 v h v v p tìm k iếm ch uỗ i co n kèm th eo đá nh g iá, so sá nh g iữ a cá c th uậ t tố n tìm k iếm ch uỗ i v l o z l h z p o l v e p p c z l l p c z x 3 v h v v p v l o z l h z co n p Chươ n g : Kế t q uả thự c n gh iệm ứ n g dụ n g tìm k iếm ch uỗ i co n t ro n g xâ u p c v h v p c z l i p c g p c v l o z l h z p v e p c p h gó i t i n cà i đặ t thử n gh iệm: Sử dụ n g cá c th uậ t tố n tìm k iếm ch uỗ i co n Từ cà i c z v z p i z p v v p c z l g p c 3 v h v v p v l o z l h z p p z đặ t thử n gh iệm đá nh g iá kế t q uả th uậ t toá n p v v p c z l i p p c z o v h v h v v p CHƯƠNG TỔNG QUAN VỀ TÌ M KIẾ M CHUỖI CON l l l k k l Bà i toá n tìm k iếm xâ u ký tự (s t r i n g s e a r ch i n g, h a y đô i kh i gọ i đố i sá nh xâ u z l v p v l o z l p h o v l v e z p c l e x e z p c x m p z o z c z y p z l p p h s t r i n g m a t ch i n g) mộ t t ro n g nhữ n g bà i toá n bả n q u a n t rọ n g t ro n g cá c th uậ t v e z p c l x v z p c y l v v e p c p p c @ z v p @ p i h x p v e p c v e p c 3 v h v toá n xử lý xâ u ký tự h a y xử lý vă n bả n ( t e x t p ro c ess i n g) v p p y 1.1 i p h o v x m p y i p @ p v e p v s e e l l z p c Lị ch sử tìm k iếm ch uỗ i co n l i v l o z l h z p 1.1.1 Th uậ t toá n t rướ c nhữ n g nă m 2000 h v v p v e p p c p l Th uậ t toá n dự a t rê n so sá nh : Hầ u hế t cá c th uậ t toá n dự a t rê n so sá nh thể h v v p g x v e p l l p h v 3 v h v v p g x v e p l l p v h iệ n t ro n g thờ i g i a n nà y bằ n g cá ch i th iệ n hoặ c kế t hợ p cá c ý tưở n g củ a th uậ t z p v e p c v z c z x p p m @ p c 3 z v z p o v s 3 v p c x v h v tố n n g bố t rướ c đâ y Mộ t t ro n g nhữ n g th uậ t toá n đầ u t iê n để g iả i q u yế t vấ n đề v p p c @ v e p m k v v e p c p p c v h v v p p h v z p p c z z h m v i p p ch uỗ i kế t hợ p t ro n g thờ i g i a n t u yế n tí nh K n u th, Mo r r is P r a t t [3] Ý tưở n g h z o v s v e p c v z c z x p v h m p v p y g p h v k e e z l i e x v v v p c chí nh củ a phươ n g phá p nà y s a u : t ro n g q uá t rì nh tìm k iếm vị t rí củ a mẫ u P p x s p c s s p m p l x h v e p c h v e p v l o z l i v e x l h t ro n g xâ u gố c T, nế u tìm thấ y mộ t vị t rí s a i t a ch u yể n s a n g vị t rí tìm k iếm t iếp th eo v i e p c p h c p h v l v m l v i v e l x z v x h m p l x p c i v e v l o z l v z s v e q uá t rì nh tìm k iếm s a u nà y đượ c tậ n dụ n g thô n g t i n từ q uá t rì nh tìm k iếm h v e p v l o z l l x h p m l p v p g p c v p c v z p v h v e p v l o z l t rướ c để khô n g phả i xé t cá c t rườ n g hợ p khô n g cầ n th iế t V iệ c tìm k iếm đượ c thự c v e p o p c s z p v 3 v e p c s o p c p v z v z v l o z l p v h iệ n bằ n g cá ch d u yệ t vă n bả n từ t rá i s a n g bê n phả i vớ i mỗ i vị t rí vă n bả n j, z p @ p c 3 g h m v i p @ p v v e z l x p c @ p s z i i z l z i v e i p @ p nhớ lạ i nhữ n g t iề n tố dà i nhấ t củ a mô p y z p p c v z p v g z p v x l hì nh cũ n g mộ t hậ u tố củ a 𝑡[𝑠 ⋯ 𝑗] Th uậ t toá n Bo y e r- Moo r có th a y đổ i bằ n g cá ch d u yệ t mơ hì nh p từ phả i p p p c h l l y v l v v h p m v e e x k e l v x m p z @ p c 3 g h m v l p s v s z s a n g t rá i kh i phá t h iệ n c nh a u đầ u t iê n th uậ t toá n t iế n hà nh dị ch cử a x p c v e z i o z s v z p l o p x h p h v z p v h v v p l v z p p g 3 x sổ : Cá ch thứ 1: Dị ch s ao cho nhữ n g phầ n so sá nh t ro n g lầ n t rướ c khớ p vớ i v l x p p c s p p l l p v e p c y p v e o s i z nhữ n g phầ n g iố n g t ro n g lầ n s a u p p c s p c z p c p v e p c y p l x h Cá ch thứ 2: Co i ký tự đầ u t iê n khô n g khớ p t rê n vă n bả n b=T[j+ i-1] t a v z o v p h v z p o p c o s v e p i p @ p y @ z v x l dị ch s ao cho có mộ t ký tự g iố n g b t rê n xâ u mẫ u khớ p vào vị t rí ( nế u có nh iề u vị g l x 3 l v o v c z p c @ v e p p h l h o s i i v e p p h p z h i t rí x uấ t h iệ n b t rê n xâ u mẫ u chọ n vị t rí phả i nhấ t) v e p h v z p @ v e p p h l h p i v e s z p v Th uậ t toá n dự a t rê n Ơ – tơ – má t tấ t đị nh: T ro n g th uậ t tố n nà y, q t rì nh h v v p g x v e p v l v v v p p e p c v h v v p p m h v e p tìm k iếm đượ c đư a mộ t q uá t rì nh b iế n đổ i t rạ n g thá i a u tom a t Hệ thố n g a u tom a t v l o z l p p x i l v h v e p @ z p p z v e p c v z x h v l x v v p c x h v l x v t ro n g th uậ t toá n DFA đượ c xâ y dự n g dự a t rê n xâ u mẫ u Mỗ i t rạ n g thá i ( nú t) củ a v e p c v h v v p l p p m g p c g x v e p p h l h k z v e p c v z p v x a u tom a t đạ i d iệ n cho số ký tự đ a n g khớ p củ a mẫ u vớ i vă n bả n Cá c ký tự củ a x i h v l x v l p z g z p l o v p x p c o s x l h i z i p @ p o v x vă n bả n làm th a y đổ i cá c t rạ n g thá i Và kh i đạ t đượ c t rạ n g c uố i cù n g có n ghĩ a p @ p l y l v x m p z 3 v e p c v z tìm đượ c mộ t vị t rí x uấ t h iệ n mẫ u p v l p l v i v e p h v z p l h o z p v p v e p c h z p c p c x y Th uậ t tố n nà y có phầ n g iố n g th uậ t toá n K n u th- Mo r r is-Pr a t t t ro n g v iệ c h v v p p m s p c z p c v h v v p p h v k e e z l e x v v v e p c i z nhả y t rạ n g thá i t rướ c kh i gặ p mộ t ký tự khô n g khớ p, n g th uậ t tố n DFA có p l m i v e p c v z v e o z c s l v o v o p c o s p p c v h v v p đá nh g iá chí nh xá c hơ n v iệ c xá c đị nh vị t rí nhả y dự a t rê n ký tự khô n g khớ p củ a p i p c z p p p i i z p p p i v e p m g x v e p o v o p c o s x vă n bả n ( t ro n g kh i th uậ t toá n K MP lù i dự a t rê n vị t rí khơ n g khớ p) p @ p v e p c o z v h v v p k y z i g x v e p i v e o p c o s V iệ c xâ y dự n g hệ a u tom a t n g iả n kh i đượ c cà i đặ t t rê n m a t rậ n kề z p m g p c x h v l x v o p p c z p o z p 3 z p v v e p l x v e p o Kh i th uậ t tố n có thờ i g i a n xử lý O( n) thờ i g i a n để tạo r a hệ a u tom a t z p v h v v p v z c z x p p y y p i v z c z x p p v e x x h v l x v y O(m* n) ( tù y cá ch cà i đặ t) Như n g t a nhậ n thấ y rằ n g t ro n g DFA có nh iề u nhấ t M l p v m 3 z p v l p c v x p p v m e p c v e p c 3 p z h p v k c u n g th uậ n M c u n g n ghị ch, vậ y v iệ c lư u t rữ cá c c u n g khô n g cầ n th iế t phả i h p c v h p i k h p c p c i i m i z y h v e 3 h p c o p c p v z v s z lư u t rê n m a t rậ n kề mà dù n g cấ u t rú c d a nh sá ch kề Fo rw a r d S t a r để lư u t rữ y l h v e p l x v e p o l v g p c h v e g x p l o e x e g v x e p y h v e Như vậ y thờ i g i a n ch uẩ n bị lượ n g nhớ O(m) T u y nh iê n thờ i g i a n tìm i m v z k iếm có o z l c z x p h p @ i y p c @ p y l h m p z p v z c z x p v l thể tă n g lê n mộ t t so vớ i cá ch lư u m a t rậ n kề v v p c y p l v v l i z 3 y h l x v e p o Th uậ t toá n so n g so n g th eo b i t: B i t-so n g so n g mộ t kỹ th uậ t đượ c g iớ i h v v p l p c l p c v e @ z v z v l p c l p c y l v o v h v p c z z th iệ u t ro n g Domo l k i 1968 [2], s a u x em xé t lạ i t ro n g B a ez a-Y a t es Go n n e t v z h v e p c l y o z i l x h p p e l p v y z v e p c x e x x v e l i p p e v năm 1992; W u M a n b e r 1992 B i t-so n g so n g mộ t kỹ th uậ t sử dụ n g tí nh chấ t p l h i k x p @ e e z v l p c l p c y l v o v h v l g p c v p v hoạ t độ n g so n g so n g bê n t ro n g má y tí nh, cho phé p cắ t g iảm số lượ n g cá c hoạ t độ n g v l p p c l p c l p c @ p v e p c l m v p s s v c z l l y p c 3 v p p c mà mộ t th uậ t toá n thự c h iệ n bở i mộ t yế u tố lê n đế n W, nơ i ω số b i t t ro n g từ má y l v v h v v p v z p @ z l v m h v y p p p p z y l @ z v v e p c v l m tí nh B i t-so n g so n g đặ c b iệ t thí ch hợ p cho cá c mơ phỏ n g h iệ u q uả củ a má y tự v p z v l p c l p c y p @ z v v s 3 l s p c z h h x l m v độ n g khô n g n đị nh p p c o p c p p p p Cá c th uậ t toá n đượ c x em xé t t ro n g phầ n nà y làm cho v iệ c sử dụ n g cá c hoạ t v h v v p p p e l p v v e p c s p p m y l i z l g p c 3 v độ n g t rê n b i t, tứ c hoạ t độ n g dự a t rê n mộ t hoặ c nh iề u v e c tơ b i t cấ p độ b i t r iê n g p p c v e p @ z v v y v p p c g x v e p l v p z h i e v @ z v s p @ z v e z p c lẻ củ a họ T rê n cá c k iế n t rú c h iệ n đạ i, hoạ t độ n g t rê n b i t có tố c độ g iố n g n goà i y x e p 3 o z p v e z p p z v p p c v e p @ z v v p c z p c p p c z n g nh a nh hơ n đá n g kể so vớ i phé p nhâ n phé p ch i a p p c p x p p p p c o l i z s s p p i s s z x 1.1.2 Th uậ t toá n s a u nă m 2000 h v v p l x h p l Th uậ t toá n dự a t rê n so h l v v p g x v e p l sá nh: p + Cá c b iế n thể củ a th uậ t toá n Bo y e r – Moo r e: @ z p v x v h v v p m e e k e e - Cá c th uậ t toá n AKC, mộ t b iế n thể củ a th uậ t toá n A pos to l i co-G i a n c a r lo [8] v h v v p l v @ z p v x v h v v p s l v y z z x p x e y nhớ lạ i tấ t cá c hậ u tố củ a mơ hì nh đượ c tìm thấ y t ro n g cá c vă n bả n tí nh nhữ n g p y z v v 3 h v x l p p v l v m v e p c 3 i p @ p i v p p p c th a y đổ i cho phù hợ p phầ n c uố i củ a mỗ i lầ n so sá nh v x m p z s s s p h z x l z y p l l p - Th uậ t toá n F as t- S e a r ch F am i l y dự a t rê n thự c tế rằ n g c uố i mỗ i lầ n so h l v v p x l v e x e x l z y m g x v e p v v e p c h z l z y p l sá nh đượ c tí nh toá n vớ i cá c q u y tắ c b a d- ch a r a c t e r kh i so sá nh kí tự đầ u t iê n p p v p v p i z 3 h m v @ x g x e x v e e o z l l p o v p h v z p y khô n g phù hợ p th a y đổ i đượ c tí nh bằ n g cá ch sử dụ n g q u y tắ c hậ u tố tố t o p c s s i l v x m p z p v p @ p c 3 l g p c h m v h v v v - Th uậ t toá n SSABS TVSBS, q ué t cá c kí tự đầ u t iê n n goà i cù n g bê n phả i h v v p i h v 3 o v p h v z p p c z p c @ p s củ a mơ hì nh, s a u tậ n cù n g bê n t rá i c uố i cù n g cá c kí tự cị n lạ i củ a mơ hì nh; x l p l x h p v p p c @ p v e z i h z p c 3 o v p y z x l p z - Cá c th uậ t toá n Bo y e r- Moo r e Ho rspoo l [9] sử dụ n g xá c s uấ t, q ué t cá c ký o v h v v p m e e k e e e l s y l g p c p l h v v h v 3 tự v củ a mơ hì nh th eo tầ n số x l p v e v p l - Cá c th uậ t toá n FJS [10], th uậ t toá n kế t hợ p g iữ a th uậ t toá n K MP QS; v h v v p v h v v p o v s c z x v h v v p k i - Cá c th uậ t toá n 2B lo c k, th eo dõ i tấ t cá c ký tự tươ n g ứ n g t rướ c t ro n g v h v v p y o v e g z v v 3 o v v p c p c v e p v e p c cử a sổ h iệ n tạ i khô n g để d i ch u yể n vị t rí đọ c vơ đ iề u k iệ n đế n c uố i củ a mô hì nh x l z p v z i o p c p g z h m p i v e p i p z h o z p p p h z x l p kh i khô n g phù hợ p xả y r a o z o p c s s p m e x +Two W i n dows: T ro n g phầ n nà y n g tơ i t rì nh bà y mộ t th uậ t toá n ch uỗ i z p g l e p c s p p m p c v z v e p @ m l v v h v v p h z kế t hợ p gầ n đâ y, tê n Two-S l i d i n g-W i n dows, dự a t rê n so sá nh kí tự t ro n g o l l l v s c p p m v p y y z g z p c z p g l g x v e p l l p o v i v e p c p sử dụ n g h a i cử a sổ vă n bả n t ro n g kh i tìm k iếm cho tấ t cá c lầ n x uấ t h iệ n củ a cá c g p c x z x l i p @ p v e p c o z v l o z l v v 3 y p p h v z p x 3 mẫ u Nó q ué t so n g so n g cá c phầ n bê n t rá i phầ n bê n phả i củ a vă n bả n sử dụ n g h l h v l p c l p c 3 s p @ p v e z i s p @ p s z x i p @ p i l g p c mộ t q u y l uậ t th a y đổ i củ a th uậ t toá n B e r r y-R av i n d r a n [1] v h m y h v v x m p z x v h v v p e e e m x i z p g e x p + Hàm băm g- g r am: l @ l i c c e x l Th uậ t toá n dự a t rê n Ơ – tơ – má t tấ t đị nh: h v v p g x v e p v l v v v p p + B iế n thể củ a th uậ t toá n BO M: z p v x v h v v p k Th uậ t toá n so n g so n g th eo b i t: h 1.2 v v p l p c l p c v e @ z v Tìm k iếm ch uỗ i co n l o z l h z p Mặ c dù l iệ u đượ c gh i nhớ t ro n g nh iề u cá ch c nh a u n g vă n bả n vẫ n k g g y z h p c z p v e p c p z h 3 o p x h p p c i p @ p i p hì nh thứ c chí nh để lư u t rữ thô n g t i n Đ iề u nà y đặ c b iệ t rõ rà n g t ro n g n gô n n gữ y i p v 3 p p y h v e v p c v z p é z h p m p @ z v e e p c v e p c p c p p c vă n họ c, nơ i l iệ u đượ c cấ u tạo từ cá c vă n thể rấ t lớ n từ đ iể n Đ iề u nà y đượ c p p z g y z h p 3 h v v 3 i p v e v y p i v p z p é z h p m p p dụ n g phâ n tử s i nh họ c nơ i mà mộ t số lượ n g lớ n cá c l iệ u đượ c lư u t rữ t ro n g s g p c s p v l z p p z l l v l y p c y p 3 g y z h p y h v e v e p c cá c tậ p t i n t u yế n tí nh 3 v s v z p v h m p v p Ví dụ cá c phâ n tử s i nh họ c b iể u d iễ n cá c t rì nh tự n u c l eo t i d e hoặ c cá c a x i t g 3 s p v l z p @ z h g z p 3 v e p v p h y e v z g e 3 x p z v am i n x l z p 1.2.1 Khá i n iệm tìm k iếm ch uỗ i co n z p z l i v l o z l h z p Tìm k iếm ch uỗ i v iệ c so sá nh mộ t hoặ c mộ t i ch uỗ i ( thườ n g đượ c gọ i l l o z l h z y i z l l p l v l v i z h z v p c p c z y mẫ u h a y p a t t e r n) vớ i vă n bả n để tìm nơ i số lầ n x uấ t h iệ n củ a ch uỗ i t ro n g vă n h x m s x v v e e p i z i p @ p p v l p z i l y p p h v z p x h z p v e p c i p bả n @ p Tìm mộ t (hoặ c nh iề u) vị t rí x uấ t h iệ n c uả mộ t xâ u ký tự 𝑃[1[1 ⋯ 𝑚]] (mẫ u tìm kiếm - p a t t e r n) t ro n g mộ t xâ u ký tự lớ n hơ n h a y t ro n g mộ t đoạ n vă n bả n l o z l l s v x v v e e p p v z e h p i c v l v e p p h h v o z v p y h l p v p p x h m o v e v p l c l v p p i p h @ p v l p p 𝑇[1[1 ⋯ 𝑛]], m