Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)

68 309 0
Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)

Đ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

Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ)

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ ĐỨC ANH LỰA CHỌN TAG SNP DỰA VÀO PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN LUẬN VĂN THẠC SĨ KHOA HỌC Thái Nguyên - Năm 2016 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ ĐỨC ANH LỰA CHỌN TAG SNP DỰA VÀO PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN Chuyên ngành: Khoa học máy tính Mã số: 60.48.0101 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC TS ĐỖ ĐỨC ĐÔNG Thái Nguyên - Năm 2016 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu riêng tôi, dẫn TS Đỗ Đức Đông Các số liệu, kết nêu luận văn trung thực, bảo đảm tính khách quan, luận văn chưa bảo vệ hội đồng chưa công bố phương tiện khác Các tài liệu tham khảo có nguồn gốc xuất xứ rõ ràng Tác giả xin chịu trách nhiệm lời cam đoan Thái Nguyên, ngày 20 tháng năm 2016 Tác giả luận văn Vũ Đức Anh Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn i LỜI CẢM ƠN Em xin chân thành cảm ơn thầy giáo TS Đỗ Đức Đông trực tiếp giao cho em đề tài, tận tình hướng dẫn tạo điều kiện cho em hoàn thành luận văn Em xin chân thành cảm ơn thầy cô giáo, cán nhân viên phòng đào tạo, ban lãnh đạo Trường Đại học Công nghệ thông tin Truyền thông giúp đỡ tạo điều kiện cho em hoàn thành luận văn Cuối cùng, em xin chân thành cảm ơn quan tâm giúp đỡ gia đình, bạn bè tập thể lớp Cao học K13H cổ vũ động viên em hoàn thành tốt luận văn Thái Nguyên, ngày tháng năm 2016 Học viên Vũ Đức Anh Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ii MỤC LỤC .1 LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vii DANH MỤC CÁC HÌNH viii MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ TỐI ƯU ĐÀN KIẾN VÀ BÀI TOÁN LỰA CHỌN TAG SNP .3 1.1 Tìm hiểu SNP .3 1.1.1 SNP (Single Nucleotide Polymorphisms) 1.1.2 Phương pháp xác định SNP .5 1.1.3 Tính chất SNP .7 1.1.4 Ứng dụng triển vọng nghiên cứu SNP .7 1.2 Bài toán lựa chọn Tag SNPs cách tiếp cận 11 1.3 Tổng quan tối ưu đàn kiến 15 1.4 Mục tiêu nghiên cứu luận văn 21 1.5 Bố cục luận văn .21 CHƯƠNG 23 MỘT SỐ VẤN ĐỀ TRONG LỰA CHỌN TAG SNP BẰNG PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN 23 2.1 Tìm hiểu toán tối ưu tổ hợp tổng quát 23 2.2 Tối ưu đàn kiến 25 2.2.1 Từ kiến tự nhiên đến kiến nhân tạo 25 a/ Kiến tự nhiên 26 b/ Kiến nhân tạo .28 2.2.2 Phương pháp ACO cho toán TƯTH tổng quát 30 a/ Đồ thị cấu trúc 30 b/ Mô tả thuật toán ACO tổng quát 32 2.2.3 Đánh giá ảnh hưởng tham số thuật toán ACO 35 a/ Thông tin heuristic .35 b/ Số lượng kiến .36 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iii c/ Tham số bay 36 2.3 Bài toán lựa chọn tag SNPs 37 2.4 Phương pháp giải toán lựa chọn SNPs thuật toán tối ưu hóa đàn kiến- Thuật toán MACA 38 2.4.1 Thuật toán đàn kiến 38 2.4.2 Kiến định cập nhật mùi 39 2.4.3 Hiệu chỉnh quy tắc cập nhật mùi – áp dụng quy tắc SMMAS 40 2.4.4 Heuristic 41 2.4.5 Thuật giải MACA 42 CHƯƠNG 45 CHƯƠNG TRÌNH THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 45 3.1 Mô tả thực nghiệm 45 3.2 Kết thực nghiệm đánh giá 46 KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO .50 TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 55 A Mã lệnh cho thuật toán ACA 55 B Mã lệnh sử dụng quy tắc SMASS để cập nhật mùi: .57 C Mã lệnh cho thuật toán MACA .57 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iv DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Kí hiệu chữ viết tắt Ý nghĩa 𝜏𝑚𝑎𝑥 Cận vết mùi 𝜏𝑚𝑖𝑛 Cận vết mùi 𝜏𝑚𝑖𝑑 Cận vết mùi 𝜏0 Vết mùi khởi tạo ban đầu 𝜏𝑖𝑗 Vết mùi cạnh 𝜏𝑖 Vết mùi đỉnh   𝑖𝑗 Thông tin heuristic cạnh 𝑗 Thông tin heuristic đỉnh 𝑁𝐶 Số vòng lặp thuật toán ACO 𝑁𝑎 Số kiến sử dụng thuật toán ACO 𝜌 Tham số bay 3-LAS Three-Level Ant System (Hệ kiến ba mức) ACO Ant Colony Optimization (Tối ưu đàn kiến) ACS Ant Colony System (Hệ đàn kiến) AS Ant System (Hệ kiến) G-best Global-best (Lời giải tốt tính đến thời điểm tại) I-best Iteration-best (Lời giải tốt bước lặp tại) Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn v MLAS Multi-level Ant System (Hệ kiến đa mức) MMAS Max-Min Ant System (Hệ kiến Max Min) SMMAS Smoothed Max-Min Ant System (Hệ kiến Max Min trơn) TSP Bài toán người du lịch Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vi DANH MỤC CÁC BẢNG Bảng Trang Bảng 2.1 Biểu diễn nhị phân haplotype SNP…………… 44 Bảng 3.1 Bảng kết thực nghiệm số lượng haplotype cố định số lượng SNP thay đổi…………………………………… 46 Bảng 3.2 Thời gian chạy thực nghiệm số lượng haplotype cố định số lượng SNP thay đổi…………………………………… 47 Bảng 3.3 Bảng kết số lượng SNP cố định số lượng haplotype thay đổi………………………………………………… 48 Bảng 3.4 Thời gian chạy thực nghiệm số lượng haplotype cố định số lượng SNP thay đổi…………………………………… 48 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vii DANH MỤC CÁC HÌNH Hình Trang Hình 1.1 Một SNP (Single Nucleotide Polymorphisms) Hình 1.2 Ba bước xây dựng HapMap …………………………… 12 Hình 1.3 Hoạt động bầy kiến thực tế………………… 15 Hình 1.4 Ví dụ đàn kiến nhân tạo… ……………………… 16 Hình 2.1 Thực nghiệm cầu đôi…………………………… 27 Hình 2.2 Thí nghiệm bổ sung…………………………………… 28 Hình 2.3 Đồ thị cấu trúc tổng quát cho toán cực trị hàm 32 Hình 2.4 Thuật toán ACO……………………………………… 34 Hình 2.5 Tổng quan thuật toán MACA……………………… 44 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn viii Bảng 2.1 (a) haplotype SNP (b) Biểu diễn nhị phân được tạo từ (a) Hình 2.5 Tổng quan thuật toán MACA[16] 44 CHƯƠNG CHƯƠNG TRÌNH THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 3.1 Mô tả thực nghiệm Thuật giải miêu tả mục 2.4.4 triển khai thực ngôn ngữ C++ Sau đó, nhằm kiểm tra hiệu quy tắc cập nhật mùi SMMAS so sánh với quy tắc cập nhật mùi cũ thuật toán MACA, thực nghiệm tiến hành với liệu mô sinh cách sử dụng thuật toán MS Hudson [13] (tạo liệu dạng chuỗi nhị phân), thuật toán tạo haplotype tiếng dựa mô hình hợp chuỗi SNP tiến hóa Hai yếu tố gây ảnh hưởng lớn tới kết toán là: số lượng haplotype số lượng SNP Do thực nghiệm tiến hành máy tính với cấu hình CPU: Intel Core i7-4790-3.60 GHz, Ram: GB, Hệ điều hành: Windows 10 64bit, hai trường hợp: (1) Khi số lượng haplotype cố định số lượng SNP thay đổi: Tiến hành thực nghiệm với liệu gồm 13 mẫu haplotype số SNP thay đổi từ 20 đến 200 (2) Khi số lượng SNP cố định số lượng haplotype thay đổi : Tiến hành thực nghiệm với liệu gồm 200 SNP số mẫu haplotype từ 10 đến 80 45 Số lượng thẻ SNP lựa chọn thời gian chạy dùng để kiểm tra hiệu quy tắc cập nhật mùi Mỗi thay đổi số SNP (trường hợp thứ nhất) hay thay đổi số haplotype (trong trường hợp thứ hai), thuật toán chạy 10 lần, qua thông số: kết tốt nhất, kết trung bình, độ lệch chuẩn 10 lần chạy thời gian thực trung bình đem so sánh 3.2 Kết thực nghiệm đánh giá Trường hợp thứ nhất: Số lượng haplotype cố định số lượng SNP thay đổi Kết tốt Số SNP MACA MACA với SMMAS 20 40 Kết trung bình Độ lệch chuẩn MACA MACA với SMMAS MACA MACA với SMMAS 8.9 8.5 2.21359 1.58114 10.1 9.6 3.30151 2.09762 60 7 8.1 2.21359 80 7 7 0 100 6 6.2 3.74166 1.26491 120 7 8.5 8.2 2.12132 2.75681 140 8 8.2 8.3 1.26491 1.44914 160 8 9.2 8.7 1.89737 1.44914 180 8.9 0.948683 200 9 2.44949 46 Bảng 3.1.Kết những test có 13 mẫu số lượng SNP từ 20 đến 200 (mỗi test chạy 10 lần) Số SNP MACA MACA với SMMAS 20 2.3688 2.3087 40 5.5574 3.8213 60 4.5384 3.7713 80 5.6906 6.431 100 10.0347 8.928 120 20.5355 15.5077 140 21.2011 14.403 160 69.3126 42.7998 180 35.8554 22.5386 200 37.4718 44.9568 Bảng 3.2.Thời gian chạy những test có 13 mẫu số lượng SNP từ 20 đến 200 (mỗi test chạy 10 lần) 47 Trường hợp thứ hai: Số lượng SNP cố định số lượng haplotype thay đổi Kết tốt Số Kết trung bình Độ lệch chuẩn Haplotype MACA MACA với SMMAS MACA MACA với SMMAS MACA MACA với SMMAS 10 7 7.2 7.1 1.26491 0.948683 20 13 12 14 13.5 2.82843 2.12132 30 20 18 21.6 19.7 4.28952 3.47851 40 36 29 39.1 30.5 8.88257 4.94975 50 40 38 49.8 42.2 17.4241 7.97496 60 73 48 83.5 59.4 22.0114 17.3897 70 75 62 82.8 68.2 16.8997 13.0231 80 76 71 86.8 76.8 22.6627 15.6716 Bảng 3.3.Kết những test có những test có số SNP 200 số mẫu từ 10 đến 80 (mỗi test chạy 10 lần) Số Haplotype MACA MACA với SMMAS 10 23.8381 17.9167 20 99.315 55.1795 30 272.419 142.618 40 804.813 364.14 50 797.046 431.899 60 2347.86 1012.48 70 2728.73 1430.83 80 2815.63 1604.82 Bảng 3.4.Thời gian chạy những test có những test có số SNP 200 số mẫu từ 10 đến 80 (mỗi test chạy 10 lần) 48 Từ bảng 3.1 bảng 3.3, nhận thấy việc áp dụng phương pháp cập nhật mùi SMMAS vào thuật toán MACA mang lại hiệu tốt Căn vào tiêu chí so sánh: kết tốt kết trung bình, bảng 3.1, hầu hết thực nghiệm, nhận thấy MACA với SMMAS cho kết lần chạy tốt Thực nghiệm trường hợp SNP=180, MACA với SMMAS cho kết hơn, chênh lệch không đáng kể không đủ đưa quy luận MACA với SMMAS thực hiệu Còn bảng 3.3, tất thực nghiệm, MACA với SMMAS cho kết tốt Hơn nữa, việc áp dụng SMMAS vào thuật toán MACA khiến thuật toán ổn đỉnh hơn: hầu hết thực nghiệm độ lệch chuẩn thuật toán MACA với SMACA nhỏ So sánh thời gian chạy thuật toán cập nhật mùi, từ bảng 3.2 bảng 3.4 nhận thấy thời gian chạy thuật toán MACA với SMMAS ngắn hơn, nhiên chênh lệch lớn Điều hiểu sau, độ phức tạp thuật toán nhau, cho công thức: log(m) * Số vòng lặp * Số kiến * 𝑛2 ∗ 𝑚 đó: m số haplotype n số SNP Số vòng lặp chọn 50 Số kiến chọn 49 nhiên thời gian chạy hai thuật toán phụ thuộc vào số đỉnh mà kiến lựa chọn vòng lặp, mà thuật toán MACA với SMMAS tìm đỉnh nên thời gian chạy ngắn KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO Việc áp dụng phương pháp cập nhật mùi SMMAS vào thuật toán MACA mang lại hiệu rõ rệt, so với cách cập nhật mùi cũ SMMAS giúp thuật toán MACA ổn đỉnh mang lại kết tốt Trong thuật toán MACA, giá trị heuristic chưa thể tốt giá trị lời giải thành phần Chúng đề xuất hướng nghiên cứu tìm cách tính giá trị heuristic tốt cho thuật toán 50 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đỗ Đức Đông Hoàng Xuân Huấn (2011) “Về biến thiên vết mùi phương pháp ACO và các thuật toán mới”, Tạp chí Tin học điều khiển học, Tập 27, tr 263-275 [2] Đỗ Đức Đông “Phương pháp tối ưu đàn kiến và ứng dụng”, luận án tiến sỹ tin học Đại học Công nghệ - Đại học quốc gia Hà Nội, 2012 Tiếng Anh [3] Dong Do Duc, Le Sy Vinh, and Huan Hoang Xuan “ACOHAP: an efficient ant colony optimization for the haplotype inference by pure parsimony problem”, Journal of Swarm Intelligence, pp.63-67, 2013 [4] M Dorigo, V Maniezzo and A Colorni (1991) “The Ant System: An autocatalytic optimizing process”, Technical Report 91-016 Revised, Dipartimento di Elettronica, Politecnico di Milano, Milano, Italy [5] M Dorigo (1992) “Optimization, learning and natural algorithms”, PhD dissertation, Milan Polytechnique, Italy [6] M Dorigo, and T Stützle (2004) “Ant Colony Optimization”, The MIT Press, Cambridge, Masachusetts [7] “What Is the HapMap?” The International HapMap Project Url: http://hapmap.ncbi.nlm.nih.gov/whatishapmap.html Web 28 Mar 2014 Last viewed: 23 Agust 2016 51 [8] Gusfield, Dan "Haplotyping as perfect phylogeny: conceptual framework and efficient solutions." Proceedings of the sixth annual international conference on Computational biology ACM, 2002 [9] Kelemen, Arpad, Athanasios V Vasilakos, and Yulan Liang "Computational intelligence in bioinformatics: SNP/haplotype data in genetic association study for common diseases." Information Technology in Biomedicine, IEEE Transactions on 13.5 (2009): 841-847 [10] Gabriel, Stacey B., et al "The structure of haplotype blocks in the human genome." Science 296.5576 (2002): 2225-2229 [11] Zhang, Kui et al "A dynamic programming algorithm for haplotype block partitioning." Proceedings of the National Academy of Sciences 99.11 (2002): 7335-7339 [12] Chang, Chia-Jung, Yao-Ting Huang, and Kun-Mao Chao "A greedier approach for finding tag SNPs." Bioinformatics 22.6 (2006): 685-691 [13] Mahdevar, Ghasem, et al "Tag SNP selection via a genetic algorithm." Journal of biomedical informatics 43.5 (2010): 800-804 [14] He, Jingwu, and Alexander Zelikovsky "Informative SNP selection methods based on SNP prediction." NanoBioscience, IEEE Transactions on 6.1 (2007): 60-67 [15] Chuang, Li‐Yeh, et al "Tag SNP selection using particle swarm optimization." Biotechnology progress 26.2 (2010): 580-588 [16] Liao, Bo, et al "Multiple ant colony algorithm method for selecting tag SNPs."Journal of biomedical informatics 45.5 (2012): 931-937 52 [17] Ting, Chuan-Kang, Wei-Ting Lin, and Yao-Ting Huang "Multi-objective tag SNPs selection using evolutionary algorithms." Bioinformatics 26.11 (2010): 1446-1452 [18] Do Duc, Dong, Huy Q Dinh, and Huan Hoang Xuan "On the pheromone update rules of ant colony optimization approaches for the job shop scheduling problem." Intelligent Agents and Multi-Agent Systems Springer Berlin Heidelberg, 2008 153-160 [19] Hudson RR “Generating samples under a Wright–Fisher neutral model of genetic variation”, Bioinformatics 2002; 18:337–8 [20] V Bafna, D Gusfield, G Lancia, S Yooseph “Haplotyping as perfect phylogeny: a direct approach” [21] Tran Ngoc Ha, Do Duc Dong, Huan Hoang Xuan “An Efficient Ant Colony Optimization Algorithm for Multiple Graph Alignment”, January 2013 [22] O.Dror, H.Benyamini, R.Nussinov, and H.Wolfson(2003) “MASS: Multiple Structural Alignment bySecondary Structures” Bioinformatics, Vol 19 No.1, 95-104 [23] J F.Gibrat, T.Madej and S.H.Bryant (1996) “Surprising similarities in structurecomparison, CurrentOpinion in Structural Biology”, Vol 6, No 3, 377-385 [24] W.Gutjahr, “ACO algorithm with guaranteed convergence to the optimal solution”, Information Processing Letters, 82(3): 145-153, 2002 [25] W.J.Gutjahr, “A generalized convergence result for the graph-based And System metaheuristic”, Technical Report 99-09, Department of Statistics and Decision Support Systems, University of Vienna, Austria, 1999 53 [26] T.Stutzle and M.Dorigo, “A Short convergence proof for a class of ant colony Optimization Algorithms”, IEEE Transactions on Evolutionary Computation, 2002 [27] Marco Dorigo, “The Ant System: Optimization by acolony of cooperating agents” [28] Manglam Arya: “Single Nucleotide Polymorphism Genotyping Using Kompetitive Allele Specific PCR (KASP)” CPBMB, COH 54 PHỤ LỤC A Mã lệnh cho thuật toán ACA //Source code for ACA algorithm : void ACA(int t) { bool s1[MAX_SNP] , s2[MAX_SNP] , IBest[MAX_SNP] ; bool lastS[MAX_SNP]; bool ok; int ht = (GBest.size()-1) / t + 1; double h[ht] , sumH; T_node = vector (ht,Tmax); int nc = nc_max , re = re_max; trie pTrie; while (nc > 0) { memset(IBest,true,sizeof(IBest)); for (int i = 0; i < ant_pr; ++i) { memset(s1,false,sizeof(s1)); pTrie.New(); for (int jj = 0; jj < ht; ++jj) { for (int j = 0; j < ht; ++j) if (s1[GBest[j*t]] == false) { memset(s2,false,sizeof(s2)); for (int ii = j*t; (ii < (j+1) * t) && (ii < GBest.size()); ++ii) s2[GBest[ii]] = true; h[j] = heuristic(pTrie,s2); h[j] *= T_node[j]; } else h[j] = 0; int p = pick(ht,h); 55 memset(s2,false,sizeof(s2)); for (int ii = p*t; (ii < (p+1) * t) && (ii < GBest.size()); ++ii) { s1[GBest[ii]] = true; s2[GBest[ii]] = true; } pTrie.add_SNP(s1); if (pTrie.coverage == M) { break; } } if (number_of_SNPs(s1) < number_of_SNPs(IBest)) { for (int ii = 0; ii < N; ++ii) IBest[ii] = s1[ii]; } } update_pheromone(IBest,t); if (number_of_SNPs(IBest) number_of_SNPs(GBest_grid)) for (int i = 0; i < N; ++i) GBest_grid[i] = IBest[i]; ok = true; for (int i = 0; i < N; ++i) if (lastS[i] != IBest[i]) { ok = false; cout

Ngày đăng: 26/07/2017, 16:07

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan