Bài toán luồng cực đại trong mạng với khả năng thông qua các cung các đỉnh

70 419 0
Bài toán luồng cực đại trong mạng với khả năng thông qua các cung các đỉnh

Đ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

http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Chương OBO OK S CO M MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ I MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh này, loại đồ thị khác phân biệt kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử V tập hữu hạn, khơng rỗng phần tử Bộ G = (V,E) gọi đồ thị hữu hạn Mỗi phần tử V gọi đỉnh phần tử u = (x,y) E gọi cạnh đồ thị G = (V,E) Xét cạnh u E tồn hai đỉnh x, y V cho u = (x,y), ta nói x nối với y x y phụ thuộc u - Nếu cạnh u = (x,y) mà x y hai đỉnh phân biệt ta nói x, y hai đỉnh kề - Nếu u = (x,x) u cạnh có hai đỉnh trùng ta gọi khun - Nếu u = (x,y) mà x, y cặp đỉnh có phân biệt thứ tự hay có hướng từ x đến y u cung, x gốc y x đỉnh ra, y đỉnh vào - Khi cặp đỉnh (x,y) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội b y a) x y b) y x c) Hình 1.1 KIL Thí dụ hình 1.1 (a) đỉnh y có khun b (b) cung (x,y) có hướng (c) cặp đỉnh (x,y) tạo thành cạnh bội Trong thực tế ta gặp nhiều vấn đề mà dùng mơ hình đồ thị để biểu diễn, sơ đồ mạng máy tính, sơ đồ mạng lưới giao thơng, sơ đồ thi cơng cơng trình Thí dụ Xét mạng máy tính, biểu diễn mạng mơ hình đồ thị, máy tính đỉnh, máy nối với dây truyền, chúng tương ứng cạnh đồ thị Một mơ hình mạng máy tính hình 1.2 máy tính a, b , c, d tương ứng đỉnh, hai máy nối trực tiếp với tương ứng với cặp đỉnh kề http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN a KIL OBO OKS CO M b c d Hình 1.2 Định nghĩa Đơn đồ thị vơ hướng G = (V,E) bao gồm V tập đỉnh E tập cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Thí dụ b a e d c l k g h i Hình Sơ đồ máy tính đơn đồ thị vơ hướng Trong trường hợp hai máy tính thường xun phải tải nhiều thơng tin người ta phải nối hai máy nhiều kênh thoại Mạng với đa kênh thoại máy cho hình b a e d c l k g h i Hình Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa Đa đồ thị vơ hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN a e b g d h KIL OBO OKS CO M c l k i Hình Sơ đồ mạng máy tính với đa kênh thơng báo Rõ ràng đơn đồ thị đa đồ thị, khơng phải đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc có nhiều hơn) cạnh nối cặp đỉnh Trong mạng máy tính có kênh thoại nối máy với (chẳng hạn với mục đích thơng báo) Mạng cho hình Khi đa đồ thị khơng thể mơ tả mạng vậy, có khun(cạnh nối đỉnh với nó) Trong trường hợp cần sử dụng đến khái niệm giả đồ thị vơ hướng, định nghĩa sau Định nghĩa Giả đồ thị vơ hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự (khơng thiết phải khác nhau) V gọi cạnh Cạnh e gọi khun có dạng e = (u,u) Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Chẳng hạn hình máy chủ a nhận tin từ máy máy khác, có số máy gửi tin đi, kênh thoại cho phép truyền tin theo hai chiều thay hai cạnh có hướng ngược chiều b a e d c l k g h i Hình Mạng máy với kênh thoại chiều Ta đến định nghĩa sau Định nghĩa Đơn đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E cặp có thứ tự gồm hai phần tử khác V gọi cung http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng: KIL OBO OKS CO M Định nghĩa Đa đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1, e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần tử chủ yếu làm việc với đơn đồ thị vơ hướng đơn đồ thị có hướng Vì vậy, để ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng Các thuật ngữ Trong phần trình bày số thuật ngữ lý thuyết đồ thị Trước tiên, ta xét thuật ngữ mơ tả đỉnh cạnh đồ thị vơ hướng Định nghĩa Hai đỉnh u v đồ thị vơ hướng G gọi kề (u,v) cạnh đồ thị G Nếu e = (u,v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Để biết có cạnh liên thuộc với cạnh, ta đưa vào định nghĩa sau Định nghĩa Ta gọi bậc đỉnh v đồ thị vơ hướng số cạnh liên thuộc với ký hiệu deg(v) a b c d f e g Hình Đồ thị vơ hướng G Thí dụ Xét đồ thị hình ta có deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3, deg(d) = 1, deg(e) = 3, deg(g) = Đỉnh bậc gọi đỉnh lập Đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh lập, a d đỉnh treo Bậc đỉnh có tính chất sau: Định lý Giả sử G = (V,E) đồ thị vơ hướng với m cạnh Khi 2m = ∑ deg(v) v∈V http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Chứng minh Rõ ràng cạnh e = (u,v) tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh hai lần số cạnh KIL OBO OKS CO M Hệ Trong đồ thị vơ hướng, số đỉnh bậc lẻ (nghĩa đỉnh có bậc số lẻ) số chẵn Chứng minh Thực gọi V1 V2 tương ứng tập chứa đỉnh bậc lẻ tập chứa đỉnh bậc chẵn đồ thị Ta có 2m = ∑ deg(v) = ∑ deg(v) + ∑ deg(v) v∈V v∈V1 v∈V2 Do deg(v) chẵn với v đỉnh U nên tổng thứ hai vế phải số chẵn Từ suy tổng thứ (chính tổng bậc đỉnh lẻ) phải số chẵn, tất số hạng số lẻ nên tổng phải gồm số chẵn số hạng Vì số đỉnh bậc lẻ phải số chẵn Ta xét thuật ngữ tương tự cho đồ thị có hướng Định nghĩa Nếu e = (u,v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung (u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đỉnh u(v) gọi đỉnh đầu(cuối) cung (u,v) Định nghĩa Ta gọi bán bậc (bán bậc vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg+(v)(deg-(v)) a b e d c Hình Đồ Thị có hướng G Thí dụ Xét đồ thị cho hình Ta có deg-(a) = 1, deg-(b) = 2, deg-(c) = 2, deg-(d) = 2, deg-(e) = deg+(a) = 3, deg+(b) = 1, deg+(c) = 1, deg+(d) = 2, deg+(e) = Do cung (u,v) tính lần bán bậc vào đỉnh v lần bán bậc đỉnh u nên ta có: Định lý Giả sử G = (V,E) đồ thị có hướng Khi ∑ deg + (v) = ∑ deg − (v) =| E | v∈V v∈V http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Rất nhiều tính chất đồ thị có hướng khơng phụ thuộc vào hướng cung Vì vậy, nhiều trường hợp thuận tiện ta bỏ qua hướng cung đồ thị Đồ thị vơ hướng thu cách bỏ qua hướng cung gọi đồ thị vơ hướng tương ứng với đồ thị có hướng cho KIL OBO OKS CO M Đường đi, chu trình Đồ thị liên thơng Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số ngun dương, đồ thị vơ hướng G = (V,E) dãy x0, x1,…, xn-1, xn Trong u = x0, v = xn, v = (xi, xi+1) ∈ E, i = 0,1,2,…, n-1 Đường nói biểu diễn dạng dãy cạnh: (x0,x1), (x1,x2),…, (xn-1,xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn khơng có cạnh bị lặp lại Thí dụ Trên đồ thị vơ hướng cho hình 1: a, d, c, f, e đường đơn độ dài Còn d, e, c, a khơng đường đi, (e,c) khơng phải cạnh đồ thị Dãy b, c, f, e, b chu trình độ dài Đường a, b, e, d, a, b có độ dài khơng phải đường đơn, cạnh (a,b) có mặt hai lần a d b c a b c e f d e f Hình Đường đồ thị Khái niệm đường chu trình đồ thị có hướng định nghĩa hồn tồn tương tự trường hợp đồ thị vơ hướng, khác ta có ý đến hướng cung Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số ngun dương, đồ thị có hướng G = (V,A) dãy x0, x1,…, xn-1, xn u = x0, v = xn, (xi, xi+1) ∈ A, i = 0, 1, 2,…, n-1 Đường nói biểu diễn dạng dãy cung: (x0, x1), (x1, x2), (xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn khơng có cạnh bị lặp lại http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN KIL OBO OKS CO M Thí dụ Trên đồ thị có hướng cho hình 3: a → d → c → f → e đường đơn độ dài Còn d → e → c → a khơng đường đi, (e,c) khơng phải cạnh đồ thị Dãy b, c, f, e, b chu trình độ dài Đường a → b→ e→ d→ a→ b có độ dài khơng phải đường đơn, cạnh (a,b) có mặt hai lần Xét mạng máy tính Một câu hỏi đặt hai máy tính mạng trao đổi thơng tin với trực tiếp qua kênh nối chúng thơng qua vài máy trung gian mạng? Nếu sử dụng đồ thị để biểu diễn mạng máy tính (trong đỉnh đồ thị tương ứng với máy tính, cạnh tương ứng kênh nối) câu hỏi phát biểu ngơn ngữ đồ thị sau: Tồn hay đường cặp đỉnh đồ thị? Định nghĩa Đồ thị vơ hướng G = (V,E) gọi liên thơng ln tìm đường hai đỉnh Như hai máy tính mạng trao đổi thơng tin với đồ thị tương ứng với mạng đồ thị liên thơng Thí dụ Trong hình 2: Đồ thị G liên thơng, đồ thị H khơng liên thơng a b H1 c d e g H2 e H3 H G Hình Đồ thị liên thơng G đồ thị H gồm thành phần liên thơng H1, H2, H3 II MỘT SỐ THUẬT TỐN TRÊN ĐỒ THỊ Thuật tốn tìm kiếm đồ thị 1.1 Tìm kiếm theo chiều sâu đồ thị Ý tưởng thuật tốn trình bày sau Ta bắt đầu tìm kiếm từ đỉnh v0 đồ thị Sau chọn u đỉnh tuỳ ý kề với v0 lặp lại q trình u Ở bước tổng qt, giả sử ta xét đỉnh v, Nếu nhử tổng số đỉnh kề với v tìm đỉnh w chưa xét ta xét đỉnh này( trở thành xét) ta tiếp tục q trình tìm kiếm Còn khơng đỉnh kề với v chưa xét ta nói đỉnh duyệt xong quay trở http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN KIL OBO OKS CO M lại tiếp tục tìm kiếm từ đỉnh mà trước ta đến đỉnh v (nếu v = v0, kết thúc tìm kiếm) Có thể nói nơm na tìm kiếm theo chiều sâu đỉnh v thực sở tìm kiếm theo chiều sâu từ tất đỉnh chưa xét kề với v Q trình mơ tả thủ tục đệ qui sau Procedure DFS(v); (* Tìm kiếm theo chiều sâu đỉnh v; Các biến Chuaxet, Ke, tồn cục *) Begin Thăm_đỉnh(v); Chuaxet[v] := false; for u ∈ Ke(v) if Chuaxet[u] then DFS(u); end; (* đỉnh v duyệt xong *) Khi đó, tìm kiếm theo chiều sâu đồ thị thực nhờ thuật tốn sau: BEGIN (* Initialiation *) for v ∈ V Chuaxet[u] := true; for v ∈ V if Chuaxet[v] then DFS(v); END Rõ ràng lệnh gọi DFS(v) cho phép đến thăm tất đỉnh thuộc thành phần liên thơng với đỉnh v, sau thăm đỉnh lệnh gọi đến thủ tục DFS tất đỉnh kề với Mặt khác, thăm đỉnh v xong, biến Chuaxet[v] đặt lại giá trị false nên đỉnh thăm lần Thuật tốn tiến hành tìm kiếm từ đỉnh chưa thăm, vậy, xét qua tất đỉnh đồ thị (khơng thiết phải liên thơng) Để đánh giá độ phức tạp tính tốn thủ tục, trước hết nhận thấy số phép tốn cần thực hai chu trình thuật tốn( hai vòng for chương trình chính) cỡ n Thủ tục DFS phải thực khơng q n lần Tổng số phép tốn cần phải thực thủ tục O(n+m), thủ tục ta phải xét qua tất cạnh đỉnh đồ thị Vậy độ phức tạp tính tốn thuật tốn O(n+m) Thí dụ Xét đồ thị cho Hình Các đỉnh đánh số lại theo thứ tự chúng thăm theo thủ tục tìm kiếm theo chiều sâu mơ tả Giả thiết đỉnh danh sách kề đỉnh v (Ke(v)) xếp theo thứ tự tăng dần số http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN 3(9) 2(2) 5(5) KIL OBO OKS CO M 7(8) 6(4) 1(1) 8(6) 4(3) 9(7) 12(11) 10(12) 13(10) 11(13) Hình Chỉ số (trong ngoặc) đỉnh đánh lại theo thứ tự chúng thăm thuật tốn tìm kiếm theo chiều sâu Thuật tốn tìm kiếm theo chiều sâu đồ thị vơ hướng trình bày dễ dàng mơ tả lại cho đồ thị có hướng Trong trường hợp đồ thị có hướng, thủ tục DFS(v) cho phép thăm tất đỉnh u mà từ v có đường đến u Độ phức tạp tính tốn O(n+m) 1.2 Tìm kiếm theo chiều rộng đồ thị Để ý thuật tốn tìm kiếm theo chiều sâu đỉnh thăm muộn sớm trở thành duyệt xong Điều hệ tất yếu việc đỉnh thăm kết nạp vào ngăn xếp (STACK) Tìm kiếm theo chiều rộng đồ thị, nói cách ngắn gọn, xây dựng dựa sở thay ngăn xếp (STACK) hang đợi (QUEUE) Với cải biên vậy, đỉnh thăm sớm trở thành duyệt song (tức sớm dời khỏi hang đợi) Một đỉnh trở thành duyệt xong sau ta xét xong tất đỉnh kề (chưa thăm) với Thủ tục mơ tả sau: Procedure BFS(v); (* Tìm kiếm theo chiều rộng đỉnh v; Các biến Chuaxet, Ke biến tồn cục *) begin QUEUE:= ∅; QUEUE:[...]... tăng luồng và cho ta luồng cực đại trong mạng Đồng thời, rõ ràng f*(u,v) sẽ là số ngun đối với mỗi cung (u,v)∈ E Từ đó ta có kết quả sau: Định lý 2 (Định lý về luồng cực đại trong mạng và lát cắt hẹp nhất) Luồng cực đại trong mạng bằng khả năng thơng qua của lát cắt hẹp nhất Định lý 3 (Định lý về tính ngun) Nếu tất cả các khả năng thơng qua là các số ngun thì ln tìm được luồng cực đại với luồng trên các. .. bổ đề 1, val(f) ≤ c(X,X ) với mọi luồng f và với mọi lát cắt (X,X ) Vì vậy, từ đẳng thức val(f) = c(X,X*) suy ra luồng f là luồng cực đại trong mạng * 4 Thuật tốn Ford – Fulkerson tìm luồng cực đại trong mạng Định lý 1 là cơ sở xây dựng thuật tốn lặp sau đây để tìm luồng cực đại trong mạng: Bắt đầu từ luồng với luồng trên tất cả các cung bằng 0 ( ta sẽ gọi luồng như vậy là luồng khơng ), và lặp lại... Giá trị luồng cực đại trong mạng khơng vượt q khả năng thơng qua của lát cắt hẹp nhất trong mạng Ford và Fulkerson đã chứng minh rằng giá trị luồng cực đại trong mạng đúng bằng khả năng thơng qua của lát cắt hẹp nhất Để có thể phát biểu và chứng minh kết quả này chúng ta sẽ cần thêm một số khái niệm Giả sử f là một luồng trong mạng G = (V,E) Từ mạng G = (V,E) ta xây dựng đồ thị có trọng số trên cung Gf... nguồng cung cấp tại một số nút khác Các bài tốn như vậy được gọi là các bài tốn luồng trên mạng (network flow problem) hoặc bài tốn chuyển vận (transshipment problem) Đây là lớp bài tốn quan trọng nhất và hay gặp nhất trong quy hoạch tuyến tính Lớp này bao gồm các bài tốn quen thuộc trong thực tế như: bài tốn vận tải, các bài tốn mạng điện và mạng giao thơng, các bài tốn quản lý và phân bổ vật tư, bài. .. luồng cực đại với luồng trên các cung là các số ngun Tuy nhiên, nếu các khả năng thơng qua là các số rất lớn thì giá trị luồng cực đại cũng có thể là rất lớn và khi đó thuật tốn mơ tả ở trên sẽ đòi hỏi rất nhiều bước tăng luồng Thí dụ trong hình 2 sẽ minh hoạ cho điều này Hình 2(a) mơ tả mạng cần xét với khả năng thơng qua trên các cung Hình 2(b) mơ tả luồng trên các cung (số 35 http://kilobooks.com... O(nm2) Nhờ cách tổ chức tìm đường tăng khéo léo hơn, người ta đã xây dựng được thuật tốn với độ phức tạp tính tốn tốt hơn như: O(n2m) (Dinic, 1970), O(n3) (Karzanov, 1974), O(n2m1/2) ( Cherkasky, 1977), O(nm log n) (Sleator- Tarjan,1980) II BÀI TỐN LUỒNG CỰC ĐẠI VỚI KHẢ NĂNG THƠNG QUA CÁC CUNG – CÁC ĐỈNH 1 .Bài tốn Giả xử trong đồ thị G = (V,E), ngồi khả năng thơng qua của các cung c(u,v), ở mỗi đỉnh v... Γ + ( v ) = {w ∈ V : ( v , w ) ∈ E } 3.Giá trị của luồng f là số val ( f ) = ∑ ∑ f ( s, w) = f ( w, t ) w∈Γ − ( t ) KIL OBO OKS CO M w∈Γ + ( s ) 2 Bài tốn luồng cực đại trong mạng Cho mạng G=(V,E) Hãy tìm luồng f* trong mạng với giá trị luồng val(f*) là lớn nhất Luồng như vậy ta sẽ gọi là luồng cực đại trong mạng Bài tốn như vậy có thể xuất hiện trong rất nhiều ứng dụng thực tế chẳng hạn khi cần... gán nhãn Do đó một đỉnh chỉ được vào VT nhiều nhất là một lần Mà mỗi bước lặp bỏ một đỉnh ra khỏi VT Do đó, vì số đỉnh của mạng là hữu hạn, thuật tốn phải kết thúc hữu hạn Thí dụ 1 Áp dụng thuật tốn Ford-Fullkerson tìm luồng cực đại bằng cách gán nhãn cho đỉnh của mạng G với luồng f được cho như Hình 1, hai số viết bên cạnh mỗi cung là khả năng thơng qua và luồng của các cung Kết quả các bước của thuật... Fulkerson để giải bài tốn đặt ra và nêu một số ứng dụng của bài tốn I PHÁT BIỂU BÀI TỐN 1 .Mạng Luồng trong mạng Định nghĩa 1 Ta gọi mạng là đồ thị có hướng G = (V,E), trong đó có duy nhất một đỉnh s khơng có cung đi vào gọi là điểm phát, duy nhất một đỉnh t khơng có cung đi ra gọi là điểm thu và mỗi cung e = (v,w) ∈ E được gán với một số khơng âm c(e) = c(v,w) gọi là khả năng thơng qua của cung e Để thuận... có cung (v,w) thì khả năng thơng qua c(v,w) được gán bằng 0 Định nghĩa 2 Giả sử cho mạng G = (V,E) Ta gọi luồng f trong mạng G = (V,E) là ánh xạ f: E R+ gán cho mỗi cung e =(v,w) ∈ E một số thực khơng âm f(e) = f(v,w), gọi là lng trên cung e, thoả mãn các điều kiện sau: 1 Luồng trên mỗi cung e ∈ E khơng vượt q khả năng thơng qua của nó: 0 ≤ f (e) ≤ c(e), 2 Điều kiện cân bằng luồng trên mỗi đỉnh của mạng ... đổi bước tiếp theo, ta đánh dấu - Bước lặp Đỉnh Khởi tạo 0,1 - Đỉnh 1,1* - Đỉnh ∞,1 6,2 4,4* - Đỉnh ∞,1 3,2* - Đỉnh ∞,1 ∞,1 7,4 7,4 6,6* - Đỉnh ∞,1 8,2 8,2 5,3* - Bảng kết tính tốn theo thuật... Tương tự từ mạng G’: u- u- s+ s- t- t+ v+ v- Ta có ma trận biểu diễn mạng G’ sau: A’ = s+ 0 0 0 0 s7 0 0 0 u+ 0 0 0 u0 0 0 48 v+ 0 0 v0 0 0 t+ 0 0 t0 0 0 s+ su+ uv+ vt+ t- http:/ /kilobooks. com THƯ... khỏi (đi vào nó) ký hiệu deg+(v)(deg-(v)) a b e d c Hình Đồ Thị có hướng G Thí dụ Xét đồ thị cho hình Ta có deg-(a) = 1, deg-(b) = 2, deg-(c) = 2, deg-(d) = 2, deg-(e) = deg+(a) = 3, deg+(b) = 1,

Ngày đăng: 02/12/2015, 12:25

Từ khóa liên quan

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

Tài liệu liên quan