Tìm hiểu một số giải thuật tìm kiếm chuỗi con và ứng dụng

53 352 0
Tìm hiểu một số giải thuật tìm kiếm chuỗi con và ứng dụng

Đ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 HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐÀO THỊ DUNG TÌM HIỂU MỘT SỐ GIẢI THUẬT TÌM KIẾM CHUỖI CON VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐÀO THỊ DUNG TÌM HIỂU MỘT SỐ GIẢI THUẬT TÌM KIẾM CHUỖI CON VÀ ỨNG DỤNG Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60480104 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN TRÍ THÀNH Hà Nội – 2016 LỜI CẢM ƠN Sau thời gian nghiên cứu, làm việc khẩn trƣơng đƣợc hƣớng dẫn tận tình giúp đỡ thầy giáo PGS.TS Nguyễn Trí Thành, luận văn với đề tài “ Tìm hiểu số giải thuật tìm kiếm chuỗi ứng dụng” đƣợc hoàn thành Tác giả xin bày tỏ lòng biết ơn sâu sắc tới: Thầy giáo hƣớng dẫn PGS.TS Nguyễn Trí Thành tận tình dẫn, giúp đỡ tác giả hoàn thành luận văn Các thầy cô giáo Trƣờng Đại học công nghệ số đồng nghiệp, quan tâm động viên, giúp đỡ tác giả suốt trình học tập để hoàn thành luận văn Mặc dù cố gắng hết sức, song điều kiện thời gian kinh nghiệm thực tế thân ít, đề tài tránh khỏi thiếu sót Vì vậy, tác giả mong nhận đƣợc đóng góp ý kiến thầy giáo, cô giáo bạn bè đồng nghiệp Tôi xin chân thành cảm ơn! Hà Nội, ngày 10 tháng 03 năm 2016 Tác giả Đào Thị Dung LỜI CAM ĐOAN Tên là: Đào Thị Dung Sinh ngày 30 tháng 12 năm 1989 Học viên lớp cao học khoá 20 HTTT - Trƣờng đại học công nghệ - ĐHQGHN Hiện công tác : Trƣờng THPT DTNT Tỉnh Vĩnh Phúc Xin cam đoan luận văn “ Tìm hiểu số giải thuật tìm kiếm chuỗi ứng dụng” thầy giáo PGS.TS Nguyễn Trí Thành hƣớng dẫn công trình nghiên cứu riêng Tất tài liệu tham khảo có nguồn gốc, xuất xứ rõ ràng Tác giả xin cam đoan tất nội dung luận văn nhƣ nội dung đề cƣơng yêu cầu thầy giáo hƣớng dẫn Nếu có vấn đề nội dung luận văn tác giả xin hoàn toàn chịu trách nhiệm với lời cam đoan Hà Nội, ngày 10 tháng 03 năm 2016 Học viên Đào Thị Dung MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC .3 Danh mục ký hiệu chữ viết tắt Danh mục bảng Danh mục hình ảnh MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ TÌM KIẾM CHUỖI CON 13 1.1 Lịch sử tìm kiếm chuỗi 13 1.1.1 Thuật toán trƣớc năm 2000 .13 1.1.2 Thuật toán sau năm 2000 14 1.2 Tìm kiếm chuỗi 15 1.2.1 Khái niệm tìm kiếm chuỗi 15 1.2.2 Các cách tiếp cận: 16 1.2.3 Các dạng tìm kiếm chuỗi 16 1.2.4 Ứng dụng tìm kiếm chuỗi 20 1.3 Tóm tắt chƣơng 18 CHƢƠNG CÁC THUẬT TOÁN TÌM KIẾM CHUỖI CON 19 2.1 Các thuật toán tìm kiếm chuỗi thông dụng 19 2.1.1 Thuật toán Brute Force .19 2.1.2 Thuật toán Karp-Rabin 27 2.1.3 Thuật toán Knuth – Morris – Pratt .32 2.1.4 Thuật toán Boyer – Moore 29 2.2 So sánh thuật toán tìm kiếm chuỗi 42 2.3 Tóm tắt chƣơng 43 CHƢƠNG KẾT QUẢ THỰC NGHIỆM VÀ ỨNG DỤNG .36 3.1 Thực nghiệm 36 3.1.1 Môi trƣờng thực nghiệm 36 3.1.2 Đánh giá kết thực nghiệm .39 3.2 Chƣơng trình ứng dụng : 40 3.2.1 Tập CSDL sử dụng: 48 3.3 Tóm tắt chƣơng 50 KẾT LUẬN 52 Đánh giá kết đề tài : 51 Hạn chế : 51 Hƣớng phát triển tƣơng lai: 51 TÀI LIỆU THAM KHẢO .52 Danh mục ký hiệu chữ viết tắt Từ viết tắt AC Từ đầy đủ Aho-Corasick BDH Backward-Dawg-Matching BOM Backward-OracleMatching DFA Deterministic Finite Automaton FJS Franek-Jennings-Smyth MDH QS KMP BM RAM Multi – phase Dynamic Hash Quick Search Knuth – Morris – Pratt Boyer-Moore Random Access Memory Danh mục bảng Bảng 1.1: Phân loại dạng tìm kiếm chuỗi 18 Bảng 2.1: Bảng kmpNext 27 Bảng 2.2 : Bảng bmBc[c] 33 Bảng 2.3 : Bảng bmGs[i] 33 Bảng 2.4: Bảng so sánh thuật toán tìm kiếm 42 Bảng 3.1: Cấu hình phần cứng Windows 36 Bảng 3.2 : Cấu hình phần cứng Linux 36 Bảng 3.3: Cấu hình phần mềm 36 Bảng 3.4: Bảng thống kê kết số 37 Bảng 3.5: Bảng thống kê kết số 38 Bảng 3.6: Bảng thống kê kết số 38 Bảng 3.7: Bảng thống kê kết số 39 Bảng 3.8 : Bảng thống kê kết số 39 Danh mục hình ảnh Hình 2.1: mis-match so sánh vị trí j 29 Hình 2.2 : good-suffix shift, trƣờng hợp u lại xuất x 37 Hình 2.3: good-suffix shift, trƣờng hợp suffix u xuất x 37 Hình 2.4 : bad-character shift 37 Hình 3.1 : Giao diện chƣơng trình 41 Hình 3.2: Giao diện chƣơng trình tìm kiếm theo từ viết tắt 41 Hình 3.3 : Giao diện chƣơng trình tìm kiếm theo từ đầy đủ 42 MỞ ĐẦU Lý chọn đề tài: Cùng với phát triển công nghệ thông tin, số lƣợng tài liệu điện tử đƣợc tăng lên đáng kể Trong đó, nhu cầu khai thác kho tài liệu khổng lồ để tìm kiếm thông tin cần thiết nhu cầu thƣờng ngày thiết thực ngƣời sử dụng Tuy nhiên, khó khăn ngƣời gặp phải việc khai thác thông tin khả tìm xác thông tin họ cần Để trợ giúp công việc này, hệ thống tìm kiếm lần lƣợt đƣợc phát triển nhằm phục vụ cho nhu cầu tìm kiếm ngƣời sử dụng Những hệ thống tìm kiếm bắt đầu phát triển đƣa vào ứng dụng, phổ biến hệ thống tìm kiếm theo từ khóa Nhiều hệ thống hoạt động hiệu Internet nhƣ Google, Bing, Yahoo!… Tuy nhiên, phần lớn công cụ tìm kiếm sản phẩm thƣơng mại mã nguồn đƣợc giữ bí mật Hoặc hệ thống tìm kiếm máy cá nhân nhƣ Windows Search, Google Desktop… đáp ứng phần nhu cầu ngƣời sử dụng, miễn phí cho cá nhân, nhiên đáp ứng đƣợc phạm vi nhỏ dừng lại mức độ tìm kiếm từ khóa theo tiêu đề phần tóm tắt Bài toán tìm kiếm xâu kí tự (string searching, hay gọi đối sánh xâu string matching) toán quan trọng thuật toán xử lý xâu ký tự hay xử lý văn (text processing) Đây thuật toán xử lý xâu văn quan trọng có nhiều ứng dụng thực tế Có nhiều thuật toán tìm kiếm xâu kí tự ví dụ nhƣ thuật toán Brute Force, thuật toán Knuth - Morris- Pratt, thuật toán DFA (Deterministic Finite Automaton - máy automat hữu hạn), thuật toán Karp Rabin, Luận văn nghiên cứu thuật toán tìm kiếm chuỗi ứng dụng chúng vào hệ thống tìm kiếm văn Hƣớng nghiên cứu : - Nghiên cứu cài đặt thử nghiệm thuật toán : thuật toán Brute Force, thuật toán Knuth - Morris- Pratt, thuật toán Karp – Rabin, thuật toán Boyer – Moore - Đánh giá hiệu thuật toán - Xây dựng chƣơng trình ứng dụng : từ điển viết tắt smartDictionary Nội dung : good-suffix shift đƣợc lƣu bảng bmGs có kích thƣớc m+1 Ta định nghĩa điều kiện sau: Cs(i, s): với k mà i < k < m, s ≥ k 𝑥 𝑘 − 𝑠 = 𝑥[𝑘] Co(i, s): s = 0; i) { if (i > g && suff[i + m - - f] < i - g) suff[i] = suff[i + m - - f]; else { if (i < g) g = i; f = i; while (g >= && x[g] == x[g + m - - f]) g; suff[i] = f - g; } } } 31 void preBmGs(char *x, int m, int bmGs[]) { int i, j, suff[XSIZE]; suffixes(x, m, suff); for (i = 0; i < m; ++i) bmGs[i] = m; j = 0; for (i = m - 1; i >= 0; i) if (suff[i] == i + 1) for (; j < m - - i; ++j) if (bmGs[j] == m) bmGs[j] = m - - i; for (i = 0; i [...]... tìm kiếm chuỗi con: Nghiên cứu tổng quan về tìm kiếm chuỗi con và ứng dụng của tìm kiếm chuỗi con trong thực tế Chƣơng 2 : Các thuật toán tìm kiếm chuỗi con : Nghiên cứu các thuật toán tìm kiếm chuỗi con kèm theo đánh giá, so sánh giữa các thuật toán tìm kiếm chuỗi con Chƣơng 3 : Kết quả thực nghiệm và ứng dụng tìm kiếm chuỗi con trong xâu gói tin và cài đặt thử nghiệm: Sử dụng các thuật toán tìm kiếm. .. lƣu trữ và trao đổi thông tin Chƣơng 1 trình bày tổng quan về tìm kiếm chuỗi con và các ứng dụng của tìm kiếm chuỗi Ứng dụng của tìm kiếm chuỗi đƣợc sử dụng trong nhiều lĩnh vực nhƣ trong máy tìm kiếm, trình soạn thảo văn bản, trình duyệt Web, sinh học phân tử và trong phát hiện đột nhập mạng Chƣơng 2 của luận văn chúng ta đi sâu nghiên cứu về các thuật toán tìm kiếm chuỗi thông qua đó so sánh và đánh... 1.2.1 Khái niệm về tìm kiếm chuỗi con Tìm kiếm chuỗi là việc so sánh một hoặc một vài chuỗi (thƣờng đƣợc gọi là mẫu hay pattern) với văn bản để tìm nơi và số lần xuất hiện của chuỗi đó trong văn bản Tìm một (hoặc nhiều) vị trí xuất hiện cuả một xâu ký tự 𝑃[1 ⋯ 𝑚] (mẫu tìm kiếm - pattern) ở trong một xâu ký tự lớn hơn hay trong một đoạn văn bản nào đó 𝑇[1 ⋯ 𝑛], m

Ngày đăng: 19/11/2016, 16:25

Từ khóa liên quan

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

Tài liệu liên quan