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

13 186 0
DSpace at VNU: 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 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 1.1 Lịch sử tìm kiếm chuỗi 1.1.1 Thuật toán trƣớc năm 2000 1.1.2 Thuật toán sau năm 2000 1.2 Tìm kiếm chuỗi 10 1.2.1 Khái niệm tìm kiếm chuỗi 10 1.2.2 Các cách tiếp cận: 11 1.2.3 Các dạng tìm kiếm chuỗi 11 1.2.4 Ứng dụng tìm kiếm chuỗi Error! Bookmark not defined 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 tố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 Error! Bookmark not defined 2.1.3 Thuật toán Knuth – Morris – Pratt Error! Bookmark not defined 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 Error! Bookmark not defined 2.3 Tóm tắt chƣơng Error! Bookmark not defined 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: Error! Bookmark not defined 3.3 Tóm tắt chƣơng Error! Bookmark not defined KẾT LUẬN 12 Đánh giá kết đề tài : Error! Bookmark not defined Hạn chế : Error! Bookmark not defined Hƣớng phát triển tƣơng lai: Error! Bookmark not defined TÀI LIỆU THAM KHẢO 12 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 tốn tìm kiếm xâu kí tự (string searching, hay đơi 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 tốn tìm kiếm xâu kí tự ví dụ nhƣ thuật tố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 tố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 : Luận văn đƣợc chia làm chƣơng với nội dung nhƣ sau: Chƣơng : Tổng quan tìm kiếm chuỗi con: Nghiên cứu tổng quan tìm kiếm chuỗi ứng dụng tìm kiếm chuỗi thực tế Chƣơng : Các thuật tốn tìm kiếm chuỗi : Nghiên cứu thuật tốn tìm kiếm chuỗi kèm theo đánh giá, so sánh thuật tốn tìm kiếm chuỗi Chƣơng : Kết thực nghiệm ứng dụng tìm kiếm chuỗi xâu gói tin cài đặt thử nghiệm: Sử dụng thuật tốn tìm kiếm chuỗi Từ cài đặt thử nghiệm đánh giá kết thuật tốn CHƯƠNG TỔNG QUAN VỀ TÌM KIẾM CHUỖI CON Bài tố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) 1.1 Lịch sử tìm kiếm chuỗi 1.1.1 Thuật tốn trước năm 2000 Thuật toán dựa so sánh : Hầu hết thuật toán dựa so sánh thể thời gian cách cải thiện kết hợp ý tƣởng thuật tốn cơng bố trƣớc Một thuật toán để giải vấn đề chuỗi kết hợp thời gian tuyến tính Knuth, Morris Pratt [3] Ý tƣởng phƣơng pháp nhƣ sau : q trình tìm kiếm vị trí mẫu P xâu gốc T, tìm thấy vị trí sai ta chuyển sang vị trí tìm kiếm trình tìm kiếm sau đƣợc tận dụng thơng tin từ q trình tìm kiếm trƣớc để khơng phải xét trƣờng hợp khơng cần thiết Việc tìm kiếm đƣợc thực cách duyệt văn từ trái sang bên phải với vị trí văn j, nhớ lại tiền tố dài mơ hình hậu tố 𝑡[𝑠 ⋯ 𝑗] Thuật tốn Boyer-Moor có thay đổi cách duyệt mơ hình p từ phải sang trái phát khác thuật toán tiến hành dịch cửa sổ : Cách thứ 1: Dịch cho phần so sánh lần trƣớc khớp với phần giống lần sau Cách thứ 2: Coi ký tự không khớp văn b=T[j+i-1] ta dịch cho có ký tự giống b xâu mẫu khớp vào vị trí (nếu có nhiều vị trí xuất b xâu mẫu chọn vị trí phải nhất) Thuật tốn dựa Ơ – tơ – mát tất định: Trong thuật tốn này, q trình tìm kiếm đƣợc đƣa trình biến đổi trạng thái automat Hệ thống automat thuật toán DFA đƣợc xây dựng dựa xâu mẫu Mỗi trạng thái (nút) automat đại diện cho số ký tự khớp mẫu với văn Các ký tự văn làm thay đổi trạng thái Và đạt đƣợc trạng cuối có nghĩa tìm đƣợc vị trí xuất mẫu Thuật tốn có phần giống thuật tốn Knuth-Morris-Pratt việc nhảy trạng thái trƣớc gặp ký tự khơng khớp, nhƣng thuật tốn DFA có 10 đánh giá xác việc xác định vị trí nhảy dựa ký tự không khớp văn (trong thuật toán KMP lùi dựa vị trí khơng khớp) Việc xây dựng hệ automat đơn giản đƣợc cài đặt ma trận kề Khi thuật tốn có thời gian xử lý O(n) thời gian để tạo hệ automat O(m*n) (tùy cách cài đặt) Nhƣng ta nhận thấy DFA có nhiều M cung thuận M cung nghịch, việc lƣu trữ cung không cần thiết phải lƣu ma trận kề mà dùng cấu trúc danh sách kề Forward Star để lƣu trữ Nhƣ thời gian chuẩn bị lƣợng nhớ O(m) Tuy nhiên thời gian tìm kiếm tăng lên chút so với cách lƣu ma trận kề Thuật toán song song theo bit: Bit-song song kỹ thuật đƣợc giới thiệu Domolki 1968 [2], sau xem xét lại Baeza-Yates Gonnet năm 1992; Wu Manber 1992 Bit-song song kỹ thuật sử dụng tính chất hoạt động song song bên máy tính, cho phép cắt giảm số lƣợng hoạt động mà thuật toán thực yếu tố lên đến W, nơi ω số bit từ máy tính Bit-song song đặc biệt thích hợp cho mơ hiệu máy tự động không đơn định Các thuật toán đƣợc xem xét phần làm cho việc sử dụng hoạt động bit, tức hoạt động dựa nhiều vectơ bit cấp độ bit riêng lẻ họ Trên kiến trúc đại, hoạt động bit có tốc độ giống nhƣ nhƣng nhanh đáng kể so với phép nhân phép chia 1.1.2 Thuật toán sau năm 2000 Thuật toán dựa so sánh: + Các biến thể thuật toán Boyer – Moore: - Các thuật toán AKC, biến thể thuật toán Apostolico-Giancarlo [8] nhớ lại tất hậu tố mơ hình đƣợc tìm thấy văn tính thay đổi cho phù hợp phần cuối lần so sánh - Thuật toán Fast- Search Family dựa thực tế cuối lần so sánh đƣợc tính tốn với quy tắc bad-character so sánh kí tự khơng phù hợp thay đổi đƣợc tính cách sử dụng quy tắc hậu tố tốt - Thuật toán SSABS TVSBS, qt kí tự ngồi bên phải mơ hình, sau tận bên trái cuối kí tự lại mơ hình; - Các thuật toán Boyer-Moore Horspool [9] sử dụng xác suất, qt ký 11 tự mơ hình theo tần số - Các thuật tốn FJS [10], thuật toán kết hợp thuật toán KMP QS; - Các thuật toán 2Block, theo dõi tất ký tự tƣơng ứng trƣớc cửa sổ khơng để di chuyển vị trí đọc vơ điều kiện đến cuối mơ hình khơng phù hợp xảy +Two Windows: Trong phần chúng tơi trình bày thuật tốn chuỗi kết hợp gần đây, tên Two-Sliding-Windows, dựa so sánh kí tự sử dụng hai cửa sổ văn tìm kiếm cho tất lần xuất mẫu Nó quét song song phần bên trái phần bên phải văn sử dụng quy luật thay đổi thuật toán Berry-Ravindran [1] + Hàm băm g-gram: Thuật toán dựa Ơ – tơ – mát tất định: + Biến thể thuật toán BOM: Thuật toán song song theo bit: 1.2 Tìm kiếm chuỗi Mặc dù liệu đƣợc ghi nhớ nhiều cách khác nhƣng văn hình thức để lƣu trữ thơng tin Điều đặc biệt rõ ràng ngôn ngữ văn học, nơi liệu đƣợc cấu tạo từ văn thể lớn từ điển Điều đƣợc áp dụng phân tử sinh học nơi mà số lƣợng lớn liệu đƣợc lƣu trữ tập tin tuyến tính Ví dụ phân tử sinh học biểu diễn trình tự nucleotide axit amin 1.2.1 Khái niệm tìm kiếm chuỗi Tìm kiếm chuỗi việc so sánh một vài chuỗi (thƣờng đƣợc gọi mẫu hay pattern) với văn để tìm nơi số lần xuất chuỗi văn Tìm (hoặc nhiều) vị trí xuất cuả xâu ký tự 𝑃[1 ⋯ 𝑚] (mẫu tìm kiếm - pattern) xâu ký tự lớn hay đoạn văn 𝑇[1 ⋯ 𝑛], m

Ngày đăng: 15/12/2017, 11:24

Từ khóa liên quan

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

Tài liệu liên quan