1. Trang chủ
  2. » Khoa Học Tự Nhiên

TÌM HIỂU ỨNG DỤNG của ôtômát NÂNG CAO TRONG bài TOÁN SÁNH mẫu

69 400 0

Đ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

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ÌM HIỂU ỨNG DỤNG CỦA ÔTÔMÁT NÂNG CAO TRONG BÀI TOÁN SÁNH MẪU Chuyên ngành : Toán - tin LUẬN VĂN THẠC SĨ KỸ THUẬT TOÁN – TIN ỨNG DỤ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 ứng dụ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âng cao Yahoo!Việt Nam………………………….……… Hình 1.3 Tìm kiếm nâng cao Ask…………………………………… …………… Hình 1.4 Tìm kiếm nâng cao Google…………………………………………… 10 Hình 2.1 Sánh mẫu thuật toán cài đặt thô………………………………………12 Hình 2.2 Độ mờ thuật toán sánh mẫu theo tiếp cận ôtômát mờ……………… 15 Hình 2.3 Giá trị next[i] thuật toán sánh mẫ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âng cao 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án sá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ánh mẫu theo thuật toán cài đặt thô… 47 Hình 4.2 Kết minh họa cho modun sánh mẫ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án sánh mẫ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án tì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án hiệ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án tì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 ứng dụ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án tì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án hiệu để tìm kiếm liệu, cụ thể thuật toán sánh mẫ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âng cao 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 ứng dụ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ìm hiể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át nâng cao hợp lý Vì lý đó, đề tài lựa chọn cho luận văn 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 logic để 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 nâng cao, so sánh thuật toán để thấy sức mạnh ôtômát nâng cao toán sánh mẫu - Tìm hiể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án sánh mẫ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án tìm kiếm đơn mẫu đa mẫu, so sánh thuật toán để thấy sức mạnh ôtômát nâng cao toán sánh mẫ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án sánh mẫu ứng dụng ôtômát nâng cao 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án tìm kiếm mềm dẻo theo biểu thức logic, trọng tâm toán sánh mẫuứng dụng ôtômát nâng cao • Chương 2: Các thuật toán sánh mẫ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án tì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án sánh mẫ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án sánh mẫ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án tì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án tì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 ứng dụ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âng cao Yahoo! Việt Nam http://vn.search.yahoo.com/web/advanced Hình 1.3 Tìm kiếm nâng cao Ask http://www.ask.com/advancedsearch?o=0&l=dir Hình 1.4 Tìm kiếm nâng cao 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âng cao 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án tì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âng cao 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 ứng dụ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án hiệu để tìm kiếm liệu, cụ thể thuật toán sánh mẫ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á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 (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ánh mẫ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án sánh mẫ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ánh mẫ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án tì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át nâng cao toán sánh mẫ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âng cao Đó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án sánh mẫu ứng dụng ôtômát nâng cao 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

Ngày đăng: 21/04/2017, 23:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w