Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
258,69 KB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THƠNG Nguyễn Thị Phương Thảo MỘT HỌ THUẬT TỐN ĐỐI SÁNH MẪU CHÍNH XÁC NHANH SSABS - TVSBS - FQS VÀ THỰC NGHIỆM Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Hà Quang Thụy Thái Nguyên - 2015 i LỜI CAM ĐOAN Tôi xin cam đoan: Những nội dung luận văn thực hướng dẫn trực tiếp thầy giáo hướng dẫn PGS TS Hà Quang Thụy Mọi tham khảo luận văn trích dẫn rõ ràng tác giả, tên cơng trình, thời gian, địa điểm công bố Tôi xin cam đoan luận văn sản phẩm chép tài liệu khoa học Học viên Nguyễn Thị Phương Thảo ii LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn sâu sắc tới PGS TS Hà Quang Thụy người hướng dẫn khoa học, tận tình bảo, giúp đỡ tơi thực luận văn Tôi xin lời lời cám ơn trân thành tới PGS TS Nguyễn Trí Thành anh chị em Phịng Thí nghiệm Khoa học liệu Cơng nghệ Tri thức, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội giúp đỡ tạo điều kiện hỗ trợ Tôi xin cảm ơn thầy cô trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên giảng dạy truyền đạt kiến thức cho Tôi xin trân thành cảm ơn Ban giám hiệu trường Cao đẳng nghề Phú Thọ đồng nghiệp khoa Công nghệ thông tin tạo điều kiện giúp đỡ tơi hồn thành nhiệm vụ học tập Cuối cùng, xin cảm ơn người thân bạn bè chia sẻ, giúp đỡ tơi hồn thành luận văn Mặc dù cố gắng hoàn thành luận văn với tất nỗ lực thân, luận văn cịn thiếu sót Kính mong nhận ý kiến đóng góp q Thầy, Cơ bạn bè đồng nghiệp Tôi xin chân thành cảm ơn! Việt Trì, ngày 10 tháng 09 năm 2015 Nguyễn Thị Phương Thảo iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH VẼ vii MỞ ĐẦU CHƯƠNG GIỚI THIỆU CHUNG VỀ THUẬT TOÁN SÁNH MẪU 1.1 Bài toán sánh mẫu phân loại 1.1.1 Bài toán sánh mẫu 1.1.2 Phân loại toán sánh mẫu 1.2 Một số ứng dụng toán sánh mẫu 1.3 Một số thuật toán sánh mẫu truyền thống 1.3.1 Thuật toán Boyer–Moore 1.3.2 Thuật toán Quick Search 1.4 Khái quát thuật toán sánh mẫu xác 10 1.5 Kết luận chương 11 CHƯƠNG 2: HỌ THUẬT TỐN SÁNH MẪU CHÍNH XÁC NHANH SSABS TVSBS – FQS 13 2.1 Giới thiệu biến thể thuật toán Quick Search 13 2.2 Thuật toán đối sánh mẫu nhanh SSABS 13 2.2.1 Giới thiệu 13 2.2.2 Thuật toán 14 2.3 Thuật toán TVSBS 19 2.3.1 Giới thiệu 19 2.3.2 Thuật toán 19 2.3.3 Ví dụ 21 2.4 Thuật toán Faster Quick Search 24 2.4.1 Giới thiệu 24 2.4.2 Thuật toán 24 2.4.3 Ví dụ 29 2.5 Kết luận chương 32 iv CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM HỌ THUẬT TỐN ĐỐI SÁNH MẪU CHÍNH XÁC NHANH VỚI BỘ CÔNG CỤ SMART 33 3.1 Giới thiệu 33 3.2 Bộ công cụ Smart 33 3.2.1 Các thành phần công cụ SMART 33 3.2.2 Sử dụng công cụ Smart 43 3.3 Bộ trung gian PUTTY 44 3.4 Kết thực nghiệm nhận xét 45 3.4.1 Thực nghiệm đánh giá hiệu hai thuật toán SSABS TVSBS 45 3.4.2 Thực nghiệm kết sánh mẫu hai thuật toán SSABS TVSBS 49 3.5 Kết luận chương 51 KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT MP70 BM CLRS01 BDM ACR99 BDM QS KMP brBc vi DANH MỤC CÁC BẢNG Bảng 2.1 Các giá trị dịch chuyển cho = đưa hàm brBc 22 Bảng 2.2 Các hàng ES, next shift cho mẫu ví dụ 30 Bảng 3.1 Danh sách tất thuật toán sánh xâu từ năm 1970 SMART 34 Bảng 3.2 Bộ kho ngữ liệu thử nghiệm 38 Bảng 3.3 Bảng kết thử nghiệm 46 vii DANH MỤC CÁC HÌNH VẼ Hình 3.1 Đăng nhập trung gian PUTTY 45 Hình 3.2 Kết thực nghiệm 46 Hình 3.3 Kết thực nghiệm tìm mẫu chuỗi 50 Hình 3.4 Kết thực nghiệm tìm mẫu file 51 MỞ ĐẦU Đối sánh xâu xác (exac string matching, sau gọi tắt “sánh xâu xác”), cịn gọi sánh mẫu xác (exac pattern matching) tốn tìm tất xuất xâu p cho trước văn t, p, t xâu văn theo bảng chữ cái; p gọi “mẫu” (pattern) cịn t gọi “văn đích” (target text) [3, 8] Một ví dụ gần gũi cho truy vấn p trang web t, kiểm tra xem p có xuất nội dung t hay không Theo Simone Faro Thierry Lecroq [8], 40 năm gần đây, đối sánh xâu toán nghiên cứu rộng rãi khoa học máy tính, chủ yếu ứng dụng trực tiếp cho nhiều lĩnh vực khác xử lý văn - hình ảnh - tín hiệu (text, image and signal processing), phân tích nhận dạng giọng nói (speech analysis and recognition), truy hồi thông tin (information retrieval), nén liệu (data compression), sinh học hóa học tính tốn (computational biology and chemistry) Bài tốn sánh xâu xác trực tuyến (onlineexac string matching) nhận quan tâm lớn cộng đồng nghiên cứu Trong thập kỷ 2001-2010, 50 thuật toán đưa ra, mở rộng thêm số lượng khoảng 40 thuật tốn có từ trước năm 2000 [2] Hệ thống thuật toán phân tích, đánh giá cơng phu [5, 6, 7] Theo Simone Faro Thierry Lecroq, nhóm thuật tốn sánh mẫu nhanh có nguồn gốc từ thuật tốn QS [9] chứng tỏ lợi thế, đặc biệt mẫu đối sánh có độ dài ngắn Chính lý đó, luận văn định hướng nghiên cứu số thuật tốn sánh mẫu xác nhanh có nguồn gốc từ thuật toán QS, tập trung vào họ thuật toán SSABS [8] – TVSBS [4] - FQS [3] thuật toán tỏ ưu việt toán sánh mẫu ngắn Họ thuật toán nhánh thuật toán khác với thuật toán [1], nữa, thuật tốn FQS cơng bố vào năm 2014 Nội dung chủ yếu luận văn nghiên cứu, phân tích chi tiết thuật toán sánh mẫu SSABS – TVSBS - FQS, khai thác công cụ [11] để tiến hành thực nghiệm Nội dung luận văn gồm phần mở đầu, bốn chương nội dung, phần kết luận Nội dung bốn chương nội dung giới thiệu sơ sau: Chương Giới thiệu chung thuật tốn sánh mẫu trình bày khái niệm đặc trưng toán sánh mẫu, ứng dụng sánh mẫu, khái quát thuật tốn sánh mẫu xác nhanh Chương Họ thuật tốn sánh mẫu xác nhanh SSABS -TVSBS- FQS giới thiệu lớp thuật tốn sánh mẫu xác nhanh, trình bày phân tích họ thuật tốn SSABS-TVSBS- FQS Đồng thời, bước tiến hóa hiệu suất ba thuật tốn giới thiệu Chương Chương trình thực nghiệm họ thuật tốn đối sánh mẫu xác nhanh với công cụ Smart Phần kết luận tổng kết kết hạn chế luận văn, đồng thời, ý tưởng nghiên cứu giới thiệu Phụ lục 1.2 Thuật toán TVSBS /*TVSBS * SMART: string matching algorithms research tool * Copyright 2012Simone Faro and Thierry Lecroq * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version of the License, or *(at your option) any later version * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU General Public License for more details * You should have received a copy of the GNU General Public License * along with this program.If not, see * contact the authors at: faro@dmi.unict.it, thierry.lecroq@univ-rouen.fr * download the tool at: http://www.dmi.unict.it/~faro/smart/ * This is an implementation of the TVSBS algorithm in R * Thathoo and A Virmani and S S Lakshmi and N Balakrishnan and K Sekar * TVSBS: A Fast Exact Pattern Matching Algorithm for Biological Sequences * J Indian Acad Sci., Current Sci., vol.91, n.1, pp.47 53,(2006) */ #include "include/define.h" #include "include/main.h" void TVSBSpreBrBc (unsigned char *x, int m, brBc[SIGMA][SIGMA]) { int a, b, i; for (a = 0; a < SIGMA; ++a) for (b = 0; b < SIGMA; ++b) brBc[a][b] = m + 2; for (a = 0; a < SIGMA; ++a) brBc[a][x[0]] = m + 1; for (i = 0; i < m - 1; ++i) brBc[x[i]][x[i + 1]] = m - i; for (a = 0; a < SIGMA; ++a) brBc[x[m - 1]][a] = 1; } int search (unsigned char *x, int m, unsigned char *y, int n) { int count,i,j =0; int BrBc[SIGMA][SIGMA]; unsigned char firstCh, lastCh; count = 0; TVSBSpreBrBc (x, m, BrBc); firstCh = x[0]; lastCh = x[m -1]; for (i=0; i=argc) {printf("Error in input parameters Use -h for help.\n\n"); return 0;} strcpy(parameter, argv[par++]); strcpy(simpleText, parameter); if(strlen(simpleText)>1000) {printf("Error in input parameters Max 1000 chars for T parameter.\n\n"); return 0;} SIMPLE=1; } if (par