Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
5,19 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Nguyễn Thị Hà Thu TÌMHIỂUỨNGDỤNGCỦAÔTÔMÁTNÂNGCAOTRONGBÀITOÁNSÁNHMẪU Chuyên ngành : Toán - tin LUẬN VĂN THẠC SĨ KỸ THUẬT TOÁN – TIN ỨNGDỤNG NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHAN TRUNG HUY Hà Nội - 2012 MỤC LỤC LỜI CAM ĐOAN Trước vào nội dung luận văn thạc sĩ mình, em xin cam đoan luận văn em viết, dựa kiến thức, kinh nghiệm thân, hướng dẫn thầy hướng dẫn, thông tin mà em tìm hiểu, tham khảo qua tài liệu liên quan Em xin gửi lời cảm ơn chân thành đến thầy cô Viện Toánứngdụng Tin học, trường Đại học Bách Khoa Hà Nội tạo điều kiện truyền đạt cho em kiến thức vô hữu ích Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến PGS.TS Phan Trung Huy Ngoài việc truyền đạt cho em kiến thức giúp em tìm kiếm tài liệu tham khảo, Thầy hướng dẫn em tận tình Trong trình viết luận văn, em gặp số khó khăn, Thầy động viên, giúp đỡ em nhiều Do trình độ có hạn, luận văn em nhiều nhược điểm sơ suất, kính mong thầy cô góp ý Em xin chân thành cảm ơn! Hà Nội, ngày 15 tháng 09 năm 2012 Học viên Nguyễn Thị Hà Thu DANH MỤC CÁC HÌNH VẼ Hình 1.1 Tìm kiếm thông dụng theo box cứng…………………………….……… Hình 1.2 Tìm kiếm nângcao Yahoo!Việt Nam………………………….……… Hình 1.3 Tìm kiếm nângcao Ask…………………………………… …………… Hình 1.4 Tìm kiếm nângcao Google…………………………………………… 10 Hình 2.1 Sánhmẫu thuật toán cài đặt thô………………………………………12 Hình 2.2 Độ mờ thuật toánsánhmẫu theo tiếp cận ôtômát mờ……………… 15 Hình 2.3 Giá trị next[i] thuật toánsánhmẫu theo tiếp cận ôtômát mờ 17 Hình 2.4 Mô hình cấu trúc ô tô mát nângcao thuật toán AhoCorasick…………………………………………………………………… 23 Hình 2.5 Trạng thái hàm goto thuật toán Aho-Corasick………………… 28 Hình 2.6 Goto function thuật toánsánh đa mẫu Aho-Corasick………………31 Hình 3.1 Cây biểu thức logic…………………………………………………………… 34 Hình 4.1 Kết minh họa cho modun sánhmẫu theo thuật toán cài đặt thô… 47 Hình 4.2 Kết minh họa cho modun sánhmẫu theo tiếp cận ôtômát mờ…… 50 Hình 4.3 Kết minh hoạ cho modun tìm kiếm đa mẫu theo thuật toán Aho-Corasick…………………………………………………………………… 52 Hình 4.4 Kết minh họa cho modun chuyển đổi biểu thức logic dạng trung tố dạng hậu tố………………………………………………………… 54 Hình 4.5 Kết minh họa cho modun tính giá trị biểu thức logic dạng hậu tố…56 Hình 4.6 Kết minh họa cho modun tìm kiếm theo biểu thức logic áp dụng thuật toánsánhmẫu cài đặt thô…………………………………………… 58 Hình 4.7 Kết minh họa cho mudun tìm kiếm theo biểu thức logic áp dụngôtômát mờ……………………………………………………………………… 59 Hình 4.8 Kết minh họa cho mudun tìm kiếm theo biểu thức logic áp dụng thuật toán Aho-Corasick………………………………………………………61 MỞ ĐẦU Lý chọn đề tài Trong xu phát triển khoa học công nghệ, máy tính Internet sử dụng hầu hết lĩnh vực góp phần vào việc thúc đẩy phát triển nhiều lĩnh vực sống Hiện nay, máy tính, có nhiều sản phẩm công nghệ khác Ipad, Iphone, hay điện thoại thay cho máy tính nhằm phục vụ cho mục đích định người, học tập, công việc, giải trí tìm kiếm thông tin Trong thời kì có phát triển Internet mạnh mẽ ngày nay, toántìm kiếm có vai trò quan trọng Một vấn đề cốt lõi để hệ thống tìm kiếm thông tin hoạt động nhanh xác hệ thống phải áp dụng thuật toánhiệu để tìm kiếm liệu Dữ liệu máy tính lưu trữ nhiều dạng khác hình ảnh, âm thanh,… phổ biến lưu trữ sử dụng chuỗi Ta thấy dạng khác chuỗi file liệu, biểu diễn gen, hay văn đọc Ba vấn đề toántìm kiếm: tính hiệu kết tìm kiếm, hai tốc độ tìm kiếm nhanh, thứ ba giao diện hướng người dùng Hiện nay, thị trường ứngdụng phổ biến modun tìm kiếm cứng nhắc Ví dụ box tìm kiếm cứng thư viện, trang tìm kiếm internet Người sử dụng phải nhập nội dung cần tìm kiếm vào box với số lượng hạn chế nội dung phù hợp với tính box Bởi với modun tìm kiếm cứng vậy, việc tìm kiếm thông tin theo nhiều yêu cầu khác với liên kết logic cứng nhắc cần nhiều box Điều gây phức tạp tính không mềm dẻo có phát sinh số yêu cầu tìm kiếm v cách xây dựng phát triển chương trình đòi hỏi phải viết lại chương trình Vì vậy, cần phải xây dựng phương thức tìm kiếm nâng cao, đáp ứng ba vấn đề toántìm kiếm Một vấn đề cốt lõi để hệ thống tìm kiếm thông tin hoạt động nhanh xác hệ thống phải áp dụng thuật toánhiệu để tìm kiếm liệu, cụ thể thuật toánsánhmẫu có tính mềm dẻo để kết hợp với tổ chức cấu trúc liệu để xây dựng phương thức tìm kiếm mềm dẻo Từ đó, cho phép người sử dụng chương trình tìm kiếm thông tin theo tổ hợp logic tùy ý xâu mẫu, nângcao tính mềm dẻo dạng thức nhập liệu đầu vào, không cứng nhắc nhiều ứngdụng sẵn có thị trường sử dụng Phương pháp khắc phục hai vấn đề: giao diện thân thiện, mềm dẻo với người sử dụng; xây dựng lại chương trình có yêu cầu phát sinh, tiết kiệm chi phí xây dựng chương trình Trên giới, có phần mềm tìm kiếm theo biểu thức logic, nhiên tính bảo mật đề quyền nên phần mềm xây dựng Nhu cầu tìmhiểu phương thức tìm kiếm để chủ động nắm bắt công nghệ, phát triển nâng cấp thuật toán, sử dụng để tìm kiếm vùng liệu có tính chất bảo mật nhạy cảm, nảy sinh cách tự nhiên Giải pháp cho vấn đề nhờ sử dụng phương pháp ôtômátnângcao hợp lý Vì lý đó, đề tài lựa chọn cho luận văn tốt nghiệp vào tìmhiểuứngdụngôtômátnângcaotoánsánhmẫu Mục đích nghiên cứu Luận văn vào nghiên cứu thuật toánsánhmẫuứngdụngôtômátnâng cao, cách thức liên kết thuật toán với biểu thức logic để giải toántìm kiếm sở áp dụng kỹ thuật ôtômátnângcao tình tìm kiếm xác đơn, đa mẫutìm kiếm mềm dẻo theo biểu thức logic Nội dung nghiên cứu - Tìmhiểu thuật toánsánh đơn mẫu đa mẫu sử dụngôtômátnâng cao, so sánh thuật toán để thấy sức mạnh ôtômátnângcaotoánsánhmẫu - Tìmhiểu biểu thức logic, cách tổ chức cấu trúc liệu để tính “giá trị” câu lệnh tìm kiếm biểu diễn dạng biểu thức logic - Tìm cách liên kết thuật toánsánhmẫu biểu thức logic để xây dựng phương thức tìm kiếm mềm dẻo Các kết làm - Trình bày thuật toántìm kiếm đơn mẫu đa mẫu, so sánh thuật toán để thấy sức mạnh ôtômátnângcaotoánsánhmẫu - Trình bày cách tổ chức cấu trúc liệu, biểu thức logic, tính toán giá trị biểu thức logic - Đóng góp tác giả: Xây dựng phương thức tìm kiếm mềm dẻo theo biểu thức logic dựa kết hợp thuật toánsánhmẫuứngdụngôtômátnângcao biểu thức logic cho đơn mẫu đa mẫu Bố cục luận văn Luận văn bao gồm chương sau : • Chương 1: Tổng quan Chương giới thiệu toántìm kiếm mềm dẻo theo biểu thức logic, trọng tâm toánsánhmẫu có ứngdụngôtômátnângcao • Chương 2: Các thuật toánsánhmẫu Chương phân tích trình tiền xử lý thông tin đầu vào, trình bày thuật toántìm kiếm đơn mẫu theo phương thức cài đặt thô, theo tiếp cận ôtômát mờ, tìm kiếm đa mẫu theo thuật toán Aho-Corasick • Chương 3: Tổ chức cấu trúc liệu Chương đưa cách xây dựng biểu thức logic, trình bày cách thức tính giá trị biểu thức logic theo phương pháp hậu tố • Chương 4: Xây dựng phương thức tìm kiếm mềm dẻo theo biểu thức logic Nội dung chương kết hợp thuật toánsánhmẫu trình bày chương biểu thức logic chương để xây dựng phương thức tìm kiếm mềm dẻo Chương giới thiệu công cụ môi trường lập trình để xây dựng chương trình tìm kiếm mềm dẻo thử nghiệm dựa modun cài đặt thuật toánsánhmẫu • Kết luận • Tài liệu tham khảo CHƯƠNG TỔNG QUAN 1.1 Khảo sát thực trạng tìm kiếm thông tin Trong thời kì có phát triển Internet mạnh mẽ ngày nay, toántìm kiếm có vai trò quan trọng Dữ liệu máy tính lưu trữ nhiều dạng khác hình ảnh, âm thanh,… phổ biến lưu trữ sử dụng chuỗi Ta thấy dạng khác chuỗi file liệu, biểu diễn gen, hay văn đọc Ba vấn đề toántìm kiếm: tính hiệu kết tìm kiếm, hai tốc độ tìm kiếm nhanh, thứ ba giao diện hướng người dùng Hiện nay, thị trường ứngdụng phổ biến modun tìm kiếm cứng nhắc dựa box tìm kiếm Người sử dụng phải nhập nội dung cần tìm kiếm vào box với số lượng hạn chế nội dung phù hợp với tính box Bởi với modun tìm kiếm cứng vậy, việc tìm kiếm thông tin theo nhiều yêu cầu khác với liên kết logic cứng nhắc cần nhiều box Điều gây phức tạp người sử dụng cách xây dựng phát triển chương trình ảnh hưởng đến tốc độc tìm kiếm Hình 1.1 Tìm kiếm thông dụng theo box cứng Hình 1.2 Tìm kiếm nângcao Yahoo! Việt Nam http://vn.search.yahoo.com/web/advanced Hình 1.3 Tìm kiếm nângcao Ask http://www.ask.com/advancedsearch?o=0&l=dir Hình 1.4 Tìm kiếm nângcao Google http://www.google.com.vn/advanced_search Trên giới, có chương trình tìm kiếm xây dựng dựa modun tìm kiếm mềm dẻo, ví dụ điển hình Tìm kiếm nângcao Google Tuy nhiên, phạm trù quốc tế, vấn đề công nghệ, cạnh tranh, tính bảo mật nên modun tìm kiếm mềm dẻo xây dựng Vì vậy, cần phải xây dựng phương thức tìm kiếm nâng cao, đáp ứng ba vấn đề toántìm kiếm Từ đó, cho phép người sử dụng chương trình tìm kiếm thông tin theo tổ hợp logic tùy ý xâu mẫu, nângcao tính mềm dẻo dạng thức nhập liệu đầu vào, không cứng nhắc nhiều ứngdụng sẵn có thị trường sử dụng Phương pháp khắc phục hai vấn đề: giao diện thân thiện, mềm dẻo hơn; tốc độ tìm kiếm cải thiện nhiều so với modun tìm kiếm cứng nhắc, xây dựng lại chương trình có nhiều yêu cầu phát sinh Một vấn đề cốt lõi để hệ thống tìm kiếm thông tin hoạt động nhanh xác hệ thống phải áp dụng thuật toánhiệu để tìm kiếm liệu, cụ thể thuật toánsánhmẫu có tính mềm dẻo để kết hợp với tổ chức cấu trúc liệu để xây dựng phương thức tìm kiếm thông minh Các thuật toánsánhmẫuứngdụngôtômátnângcao thuật toán đáp ứng tính chất mềm dẻo 10 (xâu mẫu xuất xâu đích, kết trả xâu mẫu không xuất xâu đích, kết trả 0) Modun tìm kiếm đa mẫu theo thuật toán Aho-Corasick • Chức modun: kiểm tra xuất nhiều xâu mẫu xâu đích • Input : k xâu kí tự (xâu mẫu), xâu đích S độ dài n • Ouput: trả xâu mẫu có xuất S Modun gồm bước: - Bước 1: Phase tiền xử lý Funtion PREAC(X, k) Tạo node gốc //Tạo vòng lặp, xây dựng hàm goto cho node gốc For a ∈ ∑ Do g(root, a) = root //Đưa từ khóa vào For i=0 to k-1 Do ENTER(X[i], root) // Xây dựng hàm failure link để hoàn tất việc xây dựng COMPLETE(root) Return root ENTER(x, root) Gán node r = root i=0 //Duyệt theo cạnh xây dựng While i < |x| and g(r, x[i]) ≠ FAIL and g(r, x[i]) ≠ root Do r = g(r, x[i]) 54 i=i+1 //Tạo cạnh While i < |x| Do : Tạo node s g(r, x[i]) = s r=s i=i+1 out(r) = {x} COMPLETE(root) Queue = empty For: với kí tự a mà g(0, a) = s ≠ Queue = Queue {s} F(s) = While queue ≠ empty Lấy node r từ queue For: với kí tự a mà g(r, a) = s ≠ Queue = Queue {s} State = f(r) While g(state, a) = fail state = f(state) F(s) = g(state, a) Output(s) = output(s) output(f(s)) - Bước 2: Phase tìm kiếm Bắt đầu từ trạng thái state = Duyệt kí tự a chuỗi text tìm kiếm While g(state, ai) = fail state = f(state) State = g(state, ai) Nếu output(state) != empty return True Return False 55 Hình 4.3 Kết minh hoạ cho modun tìm kiếm đa mẫu theo thuật toán Aho-Corasick Modun chuyển biểu thức logic dạng trung tố hậu tố Chức modun: Chuyển biểu thức logic dạng trung tố biểu thức logic dạng hậu tố - Input: Biểu thức logic P dạng trung tố với toán hạng 1, toán tử and, or, not ký hiệu &, | , ! - Output: Biếu thức logic Q dạng hậu tố Sau giả code: đầu Q rỗng Procedure POLISH (P,Q); Thêm dấu “)” vào cuối P; { để làm dấu kết thúc } 56 call PUSH ( S, T, “(“ ); Repeat Đọc ký tự X P duyệt từ trái qua phải; Case X toán hạng : Bổ sung thêm X vào Q; X dấu ngoặc mở : call PUSH(S,T, “(“ ); X toán tử : While thứ tự ưu tiên S[T] lớn thứ tự ưu tiên X begin call POP( S,T,Y); {loại phần tử khỏi stack S, đưa Y} Bổ sung Y vào Q end; call PUSH( S,T,X) { Bổ sung X vào stack }; X dấu ngoặc đóng : repeat call POP( S,T,Y); Bổ sung thêm Y vào Q; until gặp dấu ‘(‘ loại dấu ‘(‘ khỏi stack S end case until stack rỗng; return 57 Hình 4.4 Kết minh họa cho modun chuyển đổi biểu thức logic dạng trung tố dạng hậu tố Modun tính giá trị biểu thức hậu tố Chức modun: tính giá trị biểu thức logic dạng hậu tố Q 58 - Input: Biểu thức logic dạng hậu tố Q với toán hạng 1, toán tử and, or, not ký hiệu &, | , ! - Output: giá trị biểu thức Q Sau giả code: Procedure EVAL (Q,VAL); {Thủ tục thực tính giá trị biểu thức hậu tố Q, tương ứng với giá trị toán hạng; kết gán cho VAL Ở có sử dụng stack S với T trỏ tới đỉnh; đầu T = 0, stack rỗng } Ghi thêm dấu “)” vào cuối biểu thức Q để làm dấu kết thúc; repeat Đọc ký tự X Q, duyệt từ trái sang phải; if X toán hạng then call PUSH(S,T,X) else if X toán tử (!) then begin call POP(S,T,Y); W : = (!) Y ; call PUSH(S,T,W); end else begin call POP(S,T,Y); call POP(S,T,Z); W : = Z (X) Y ; {(X) toán tử X ∧ hay ∨ } call PUSH(S,T,W) end; until gặp dấu kết thúc “)” ; call POP (S,T,VAL); return 59 Hình 4.5 Kết minh họa cho modun tính giá trị biểu thức logic dạng hậu tố Modun tìm kiếm theo biểu thức logic sử dụng thuật toán cài đặt thô Chức modun: kiểm tra xâu đích S có thỏa mãn biểu thức logic P hay không ? - Input: xâu đích S xâu ký tự bảng chữ cái, biểu thức logic P với toán hạng xâu mẫu nằm dấu ngoặc kép để phân biệt với toán tử and, or, not 60 - Output: Nếu xâu đích S thỏa mãn biểu thức P, trả kết Có Nếu xâu đích S không thỏa mãn biểu thức P, trả kết Không Modun xây dựng dựa tổng hợp modun mục trước, thông qua bước sau: Bước 1: Tách xâu Biểu thức P nhập vào tách thành xâu toán hạng riêng lẻ Bước 2: Định giá trị xâu toán hạng P xâu đích S Bước sử dụng đến modun sánhmẫu theo thuật toán cài đặt thô mục Nếu xâu xuất S, giá trị Nếu xâu không xuất S, giá trị Bước 3: Chuyển biểu thức dạng trung tố P dạng hậu tố Q (modun trình bày mục 4) Bước 4: Tính giá trị biểu thức hậu tố Q (modun trình bày mục 5) Nếu Q có giá trị kết luận S có thỏa mãn P Nếu Q có giá trị kết luận S không thỏa mãn P 61 Hình 4.6 Kết minh họa cho modun tìm kiếm theo biểu thức logic áp dụng thuật toánsánhmẫu cài đặt thô Modun tìm kiếm theo biểu thức logic sử dụng cách tiếp cận ôtômát mờ Chức modun: kiểm tra xâu đích S có thỏa mãn biểu thức logic P hay không ? - Input: xâu đích S xâu ký tự bảng chữ cái, biểu thức logic P với toán hạng xâu mẫu nằm dấu ngoặc kép để phân biệt với toán tử and, or, not - Output: Nếu xâu đích S thỏa mãn biểu thức P, trả kết Có Nếu xâu đích S không thỏa mãn biểu thức P, trả kết Không Modun xây dựng dựa tổng hợp modun mục trước, thông qua bước sau: Bước 1: Tách xâu Biểu thức P nhập vào tách thành xâu toán hạng riêng lẻ Bước 2: Định giá trị xâu toán hạng P xâu đích S Bước sử dụng đến modun sánhmẫu theo tiếp cận ôtômát mờ trình bày mục Nếu xâu xuất S, giá trị Nếu xâu không xuất S, giá trị 62 Bước 3: Chuyển biểu thức dạng trung tố P dạng hậu tố Q (modun trình bày mục 4) Bước 4: Tính giá trị biểu thức hậu tố Q (modun trình bày mục 5) Nếu Q có giá trị kết luận S có thỏa mãn P Nếu Q có giá trị kết luận S không thỏa mãn P Hình 4.7 Kết minh họa cho mudun tìm kiếm theo biểu thức logic áp dụngôtômát mờ Modun tìm kiếm theo biểu thức logic sử dụng thuật toán Aho-Corasick 63 Chức modun: kiểm tra xâu đích S có thỏa mãn biểu thức logic P hay không ? - Input: xâu đích S xâu ký tự bảng chữ cái, biểu thức logic P với toán hạng xâu mẫu nằm dấu ngoặc kép để phân biệt với toán tử and, or, not - Output: Nếu xâu đích S thỏa mãn biểu thức P, trả kết Có Nếu xâu đích S không thỏa mãn biểu thức P, trả kết Không Modun xây dựng dựa tổng hợp modun mục trước, thông qua bước sau: Bước 1: Tách xâu Biểu thức P nhập vào tách thành xâu toán hạng riêng lẻ Bước 2: Định giá trị xâu toán hạng P xâu đích S Bước sử dụng đến modun sánh đa mẫu theo thuật toán Aho-Corasick trình bày mục Nếu xâu xuất S, giá trị Nếu xâu không xuất S, giá trị Bước 3: Chuyển biểu thức dạng trung tố P dạng hậu tố Q (modun trình bày mục 4) Bước 4: Tính giá trị biểu thức hậu tố Q (modun trình bày mục 5) Nếu Q có giá trị kết luận S có thỏa mãn P Nếu Q có giá trị kết luận S không thỏa mãn P 64 Hình 4.8 Kết minh họa cho mudun tìm kiếm theo biểu thức logic sử dụng thuật toán Aho-Corasick 65 KẾT LUẬN Luận văn đề cập đến việc nghiên cứu toán thực tiễn toántìm kiếm, cho thấy giải pháp xây dựng modun hỗ trợ tìm kiếm mềm dẻo nhờ tiếp cận ôtômátnângcaotoánsánhmẫu với liên kết logic Và vận dụng kiến thức học cấu trúc liệu nângcao Đóng góp tác giả luận văn xây dựng phương thức tìm kiếm mềm dẻo theo biểu thức logic dựa kết hợp thuật toánsánhmẫuứngdụngôtômátnângcao biểu thức logic Hướng phát triển đề tài: Chương trình phát triển thành mudun tìm kiếm độc lập, tìm kiếm xấp xỉ xây dựng hàm, thư viện tìm kiếm cho cộng đồng tin học sử dụng 66 TÀI LIỆU THAM KHẢO Đỗ Xuân Lôi (2008), Cấu trúc liệu giải thuật; Nhà xuất Đại học Quốc gia Hà Nội Maxime Crochemore, Thierry Lecroq (1990), Handbook of Theoretical Computer Science, Elsevier, Amsterdam J.V Leeuwen Ed., chapter 13, pp 326373 Phan Trung Huy, Nguyễn Thị Thanh Huyền (2002), “Tiếp cận mờ số thuật toán so mẫu”, Tạp chí tin học điều khiển tập 18(3) Trung tâm đào tạo mạng máy tính Nhất Nghệ, Lập trình C# 2008 Một số tài liệu, thông tin khác tìm kiếm Internet 67 ... tốt nghiệp vào tìm hiểu ứng dụng ôtômát nâng cao toán sánh mẫu Mục đích nghiên cứu Luận văn vào nghiên cứu thuật toán sánh mẫu ứng dụng ôtômát nâng cao, cách thức liên kết thuật toán với biểu... thức tìm kiếm thông minh Các thuật toán sánh mẫu ứng dụng ôtômát nâng cao thuật toán đáp ứng tính chất mềm dẻo 10 1.2 Giới thiệu toán sánh mẫu Sánh mẫu hay gọi so mẫu (pattern – matching), toán. .. giải toán tìm kiếm sở áp dụng kỹ thuật ôtômát nâng cao tình tìm kiếm xác đơn, đa mẫu tìm kiếm mềm dẻo theo biểu thức logic Nội dung nghiên cứu - Tìm hiểu thuật toán sánh đơn mẫu đa mẫu sử dụng ôtômát