1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu

65 479 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 65
Dung lượng 496,41 KB

Nội dung

1 Trờng đại học hùng vơng Khoa khoa học tự nhiên o0o Thuật toán đơn hình với việc Thay đổi một số dữ liệu ban đầu Khoá luận tốt nghiệp: Đại học S phạm Toán 2 Mục lục Nội dung Trang Lời nói đầu 3 Chơng 1: Các kiến thức bổ trợ 5 1.1. Bài toán QHTT tổng quát 5 1.2. Một số kí hiệu và quy ớc 5 1.3. Thuật toán đơn hình tổng quát 6 1.4. Phần bài tập về thuật toán đơn hình 14 1.4.1. Phần đề bài 14 1.4.2. Phần lời giải 16 Chơng 2: Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu 22 2.1. Trờng hợp thay đổi một số thành phần vế phải 22 2.2. Trờng hợp thay đổi hệ số hàm mục tiêu 24 2.3. Trờng hợp bổ sung thêm các ràng buộc mới 25 2.4. Phần bài tập về sự thay đổ một số dữ liệu ban đầu 28 2.4.1. Phần đề bài 28 2.4.2. Phần lời giải 31 Chơng 3: Một số bài toán thực tế ứng dụng sự thay đổi một số dữ liệu ban đầu để ra quyết định tối u 50 3.1. Một số bài toán về lập kế hoạch sản xuất 50 3.2. Một số bài toán về cực tiểu hoá cớc phí Kết luận 55 64 Tài liệu tham khảo 65 3 Lời nói đầu Là một thuật toán lớn của quy hoạch tuyến tính (QHTT), thuật toán đơn hình đợc ra đời từ những năm 40 của thế kỷ XX, xuất phát từ yêu cầu tìm lời giải cho các bài toán kinh tế của nhà toán học ngời Mỹ (Dantzig). Với hệ thống lý thuyết chặt chẽ, thuật toán giúp giải quyết chính xác và đầy đủ các bài toán QHTT cỡ lớn với những số liệu tính toán phức tạp. Việc khai thác bài toán theo hớng phục vụ cho các bài toán thực tế đặc biệt có ý nghĩa. Trong cuộc sống thực tiễn (đặc biệt là thực tiễn sản xuất của các doanh nghiệp) khi sử dụng thuật toán đơn hình để tìm phơng án sản xuất tối u thì doanh nghiệp phải thực hiện những tính toán phức tạp trên các yếu tố có liên quan mật thiết với nhau và liên quan trực tiếp đến sản xuất nh: Lợng nhân công, nguyên liệu đầu vào và các chi phí sản xuất Nhng trong trờng hợp các yếu tố kể trên không còn bền vững mà nó thay đổi do những điều kiện khách quan hay chủ quan mang lại thì doanh nghiệp phải điều chỉnh lại phơng án sản xuất. Trong tình huống ấy, việc giải lại các bài toán từ đầu bằng thuật toán đơn hình là khó khăn và phức tạp. Vì vậy việc tìm ra cách thức xử lý các vấn đề hậu tối u khi thay đổi một số dữ liệu ban đầu bằng thuật toán đơn hình là việc làm cần thiết cho những ngời học và làm QHTT. Với mong muốn nâng cao chất lợng học tập môn QHTT và tăng cờng việc vận dụng kết quả học tập của bộ môn vào đời sống thực tiễn, tôi đã tìm hiểu và xây dựng đề tài : Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu. Ngoài lời nói đầu, tài liệu tham khảo khoá luận gồm có 60 trang chia làm 3 chơng: Chơng 1. Các kiến thức bổ trợ. Chơng 2. Thuật toán đơn hình việc thay đổi một số dữ liệu ban đầu. Chơng 3. Một số bài toán thực tế ứng dụng sự thay đổi một số dữ liệu ban đầu để ra quyết định tối u . 4 Trong mỗi chơng cơ bản gồm 3 phần chính: Phần trình bày các kết quả lý thuyết, phần đề bài các bài tập và phần lời giải các bài tập. Phần trình bày các kết qủa lý thuyết: Trình bày các định nghĩa, định lý đặc biệt là các kết quả nghiên cứu lý thuyết về sự thay đổi một số dữ liệu ban đầu.Tài liệu quan tâm đa ra các nhận xét, chú ý cần thiết giúp ngời đọc hiểu sâu hơn lý thuyết để vận dụng làm bài tập. Phần đề bài các bài tập: Bao gồm các dạng bài tập áp dụng lý thuyết của thuật toán, các bài tập có tính ứng dụng thực tiễn. Phần lời giải các bài tập: Trình bày chi tiết lời giải các bài toán, theo thứ tự đã trình bày ở phần lý thuyết đặt ra. Có lu tâm phân tích các kết quả ứng dụng thực tiễn của các bài toán thực tế. Do lần đầu tiên đợc nghiên cứu đề tài cùng với những hạn chế về thời gian cũng nh vốn kiến thức của mình, tài liệu không tránh khỏi có thiếu sót. Em kính mong các thầy cô giáo đã dành thời gian đọc và cho em những chỉ bảo giúp em hoàn chỉnh khoá luận này. Phú Thọ, tháng 5 năm 2008 Sinh viên Vũ Thị Thu Trang 5 Chơng 1. các kiến thức bổ trợ 1.1. Bài toán QHTT tổng quát Tìm vectơ x= ( x 1 , x 2 , , x n ) R n sao cho hàm f(x) = = n j 1 c j x j đạt giá trị nhỏ nhất (hay lớn nhất) với các điều kiện: = n j 1 a ij x j b i i I 1 (1) = n j 1 a ij x j b i i I 2 (2) = n j 1 a ij x j = b i i I (3) x j 0 j J 1 (4) x j 0 j J 2 (5) x j R j J (6) Trong đó: I 1 I 2 I = M = { 1, 2, , m } J 1 J 2 J = N = { 1, 2, , n } Mỗi bộ ba (I 1 , I 2 , I) và (J 1 ,J 2 ,J) đều có tính chất đôi một không giao nhau. * f(x) đợc gọi là hàm mục tiêu. * Mỗi ràng buộc (1), (2), (3) đợc gọi là ràng buộc cỡng bức (ràng buộc cơ bản). * Mỗi ràng buộc (4), (5), (6) đợc gọi là ràng buộc tự nhiên (ràng buộc dấu). * Mỗi vectơ x thỏa mãn mọi ràng buộc đợc gọi là một phơng án. * Mỗi vectơ mà tại đó hàm mục tiêu đạt giá trị nhỏ nhất (hay lớn nhất) đợc gọi là phơng án tối u. 1.2. Một số kí hiệu và quy ớc Gọi A = (a ij ) là ma trận cấp m x n A i = (a i1 , a i2 , , a in ); i = m,1 là vectơ dòng (hay ma trận dòng) thứ i của A. 6 A j = (a 1j , a 2j , , a mj ) ; j = 1,n là vectơ cột (hay ma trận cột) thứ j của A. Ta luôn kí hiệu một vectơ là vectơ cột (hay ma trận cột) Ta kí hiệu A t là ma trận chuyển vị của A. Ta kí hiệu c = ( c 1 , c 2 , ,c n ); x= ( x 1 , x 2 , , x n ). Tích vô hớng của 2 vectơ c và x là: (c, x) = c.x Thì bài toán QHTT tổng quát có thể viết dới dạng: f(x) = c t x min ( max) A i x b i i I 1 (1) A i x b i i I 2 (2) A i x = b i i I (3) x j 0 j J 1 (4) x j 0 j J 2 (5) x j R j J (6) Chú ý. 1) Về mặt lý thuyết ta chỉ cần xét các bài toán dạng min (Tìm giá trị nhỏ nhất) bởi vì: f(x) = max f(x); x X - f(x) = min [-f(x)] ; y Y. 2) Nếu I 1 = ; I 2 = ; J 1 = N thì ta có bài toán QHTT chính tắc. Nếu I 2 = ; I= ; J 1 = N thì ta có bài toán QHTT chuẩn tắc. 3) Bằng phép biến đổi đơn giản trên hệ phơng trình tuyến tính ta có thể đa bài toán QHTT bất kì về dạng chính tắc. 1.3. Thuật toán đơn hình tổng quát Xét bài toán QHTT dạng chính tắc f(x) = c t x min. Ax = b. (P) x 0. A là ma trận cấp m x n, (m < n) và hạng A=m . 1.3.1. Định nghĩa phơng án cực biên. Phơng án x 0 =( j0 x ) ; j = n,1 của bài toán QHTT chính tắc (P) đợc gọi là phơng án cực biên nếu hệ véctơ cột của ma trận A ứng với các thành phần dơng của phơng án x 0 là độc lập tuyến tính (nếu số thành phần dơng của x 0 ít hơn m thì 7 x 0 đợc gọi là phơng án cực biên suy biến, nếu số thành phần dơng của x 0 bằng m thì x 0 đợc gọi là phơng án cực biên không suy biến). 1.3.2. Định nghĩa cơ sở của phơng án cực biên Giả sử x 0 = ( j0 x ) ; j = 1,n (khác 0) là một phơng án cực biên của bài toán QHTT dạng chính tắc (P). Kí hiệu J là 1 bộ phận gồm đủ m chỉ số: J J + ( x 0 ) ( J + ( x 0 )= { } > j0 j; x 0 ). Ta gọi một bộ gồm m véctơ cột độc lập tuyến tính { } j a ;j J của ma trận A là một cơ sở của phơng án cực biên x 0 1.3.3. Cơ sở lý thuyết của thuật toán đơn hình Giả sử đã biết một phơng án cực biên của bài toán (P) là x = (x 10 , x 20 , , x n0 ) ứng với cơ sở {A i ; i J 0 }. Số phần tử của J 0 là |J 0 | = m. Để cho gọn ta cũng nói x ứng với cơ sở J 0 . Nh vậy giá trị các ẩn cơ sở trong x là x i0 (i J 0 ) giá trị của ẩn phi cơ sở là x j0 = 0 (j = N \ J 0 ) ; N = {1, 2, , n} để cho gọn ta viết: x j0 = 0 với j J 0 . Gọi B = ( A 1 A 2 A m ) là ma trận có các cột là m vectơ trong cơ sở và đặt: x 0 = (x i0 ) R m ; c = ( c i ) R m với i J 0 . Khi đó ta có: Bx 0 = b hay 0 i i 0 i J x A = b ; f( x ) = c t x = c t x 0 . Biểu thị tuyến tính vectơ A j (j N) qua cơ sở { A i ; i J 0 } A j = 0 i ij i J x A (j N) (1.1) Đặt x j = (x ij ) R m ; (i J 0 , j N ). Nh vậy x i (i J 0 ) là các vectơ đơn vị và ta có Bx j = A j hay x j = B -1 A j ; (j = n,0 ; b 0 A 0 ). Biểu thức j = c t x j - c j hay j = 0 i ij i J c x - c j (j N) đợc gọi là ớc lợng của biến x j (hay của vectơ A j ) tơng ứng với x . Chú ý . i = 0 nếu i J 0 . Định lý 1.1 . Nếu x = x 0 = ( x 10 , x 20 , , x n0 ) là phơng án cực biên ứng với cơ sở J 0 . Đặt x j0 = x j (j = 1,n ) tức là x = ( x 1 , x 2 , , x n ) bất kì ta có hệ thức: 8 x i = x i - 0 Ji x ij x j (i J 0 ) (1.2) f(x) = f( x )- 0 j j j J x (1.3) Định lý 1.2 . ( Tiêu chuẩn tối u ) Nếu ứng với phơng án cực biên x 0 của cơ sở J 0 mà j < 0 ( j J ) thì x 0 là phơng án tối u của bài toán QHTT dạng chính tắc. Hệ quả. Nếu ứng với phơng án cực biên x 0 của cơ sở A i mà j = 0 ( j J 0 ) thì x 0 là phơng án tối u không duy nhất của bài toán (P) . Định lí 1.3. ( Dấu hiệu hàm mục tiêu không bị chặn trên tập phơng án ) Nếu ứng với phơng án x 0 của cơ sở A i tồn tại một chỉ số j ( j J 0 ) để j > 0 và x j 0 thì hàm mục tiêu của bài toán (P) không bị chặn dới trên tập phơng án. Định lí 1.4 . ( Dấu hiệu xây dựng phơng án cực biên tốt hơn ) Nếu ứng với phơng án cực biên x 0 của cơ sở A i và với mỗi j mà j > 0 vectơ x j có ít nhất 1 thành phần dơng thì có thể xây dựng đợc một phơng án cực biên mới tốt hơn phơng án cực biên của cơ sở A i . Tìm phơng án cực biên mới tốt hơn, công thức đổi cơ sở. Giả sử phơng án x 0 của cơ sở {A i ; i J 0 } không thỏa mãn dấu hiệu tối u và dấu hiệu hàm mục tiêu không bị chặn trên tập phơng án. Khi đó ta chuyển sang phơng án cực biên x = ( ' ik x ) với i = n,1 của cơ sở mới là hệ { A i ; i ( J 0 \ {s}) {k}}. Các thành phần của phơng án x đợc xác định nh sau: x i0 - k x ik nếu i J 0 \ {s} ' ik x = k nếu i = k (1.4) 0 nếu i ( J 0 \ {s}) {k}. Với k = i 0 ik x x ; i J 0 với x ik > 0 ở đó f( x ) < f( x ) và { A i ; i ( J 0 \ {s}) {k}} là cơ sở đợc xây dựng từ A i theo thủ tục sau: 9 * Chọn vectơ A k vào cơ sở: k = max { j ; j > 0} (1.5) * Chọn vectơ A s đa ra khỏi cơ sở: min { i 0 ik x x ; x ik > 0 ; i J 0 } = s0 sk x x (1.6) Định lý 1.5 . Phơng án x = ( ' ik x ) đợc xác định nh công thức (1.4) là phơng án cực biên ứng với cơ sở { A i ; i ( J 0 \{s}) {k}}. Công thức đổi cơ sở khi A s bị loại khỏi cơ sở thì các thành phần (x i ) = ( ' ij x ) ; i ( J 0 \{s}) {k}; i = n,0 , đợc tính theo công thức sau gọi là công thức đổi cơ sở : x kj = sj sk x x ; (j = n,0 ) (1.7) x ij = x ij - sj sk x x .x ik ; (i J 0 \{s}) và ' j = j - sj sk x x . k 1.3.4. Thuật toán đơn hình gốc Bớc 1 : Tìm một phơng án cực biên x 0 và cơ sở { A i } tơng ứng. Tính các hệ số khai triển x ij và các ớc lợng j . Bớc 2 : Kiểm tra dấu hiệu tối u. Nếu j 0 ; mọi j thì x 0 là phơng án tối u. Thuật toán kết thúc. Nếu j > 0 , j J 0 thì chuyển sang bớc 3. Bớc 3 : Kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn, cải tiến phơng án. Với mỗi j J 0 mà j > 0 ta kiểm tra hệ số khai triển x ij của cột A i tơng ứng. Nếu j > 0 , j J 0 mà tất cả các x ij 0, i J 0 thì kết luận hàm mục tiêu giảm vô hạn trên miền ràng buộc. Bài toán không có lời giải hữu hạn trên miền ràng buộc. Thuật toán kết thúc. Nếu i J 0 mà j > 0 đều tồn tại ít nhất một hệ số x ij > 0 thì chuyển sang cơ sở mới {A i ; i ( J 0 \{s}) {k}}. với phơng án cực biên x đợc xác định theo quy tắc ba bớc (1), (2), (3). Bớc 4 : Tính các ' ik x ; f( x ) ; ' j ; x ij . Theo công thức (1.7) rồi quay lại bớc 2. 10 Chú ý. Trong thực hành ta thờng lập bảng giải bài toán QHTT bằng thuật toán đơn hình gốc nh sau: Ta giả thiết đã biết một cơ sở xuất phát: A i = { A 1 , A 2 , , A m } và B = [A 1 A 2 A m ] = E ( E là ma trận đơn vị ) ở đây x j = B -1 A j = A j (i = n,0 ; A 0 = b) ; J 0 = [1, 2, , m] . Các dữ kiện về phơng án, các ớc lợng j của vectơ A j véctơ hệ số khai triển A j theo cơ sở J 0 đợc sắp xếp vào bảng dới đây: c 1 c 2 c s c m c m + 1 c j c k c n c cơ sở x 0 x 1 x 2 x s c m c m+1 x j x k x n c 1 A 1 x 10 1 0 0 0 x 1,m+1 x 1j x 1k x 1n c 2 A 2 x 20 0 1 0 0 x 2,m+2 x 2j x 2k x 2n c s A s x s0 0 0 1 0 x s,m+1 x si x sk x sn c m A m x m0 0 0 0 1 x m,m+2 x mj x mk x mn f( x ) 0 0 0 0 m+1 j k n Thực hiện phép biến đổi bảng chuyển từ cơ sở A i {A i ; i J 0 } sang cơ sở: { A i ; i ( J 0 \{s}) {k}}. Trong bảng đơn hình : Cột ứng với vectơ đa vào A k đợc gọi là cột xoay, hàng ứng với vectơ đa vào A s đợc gọi là hàng xoay, phân tử x sk đợc gọi là phần tử xoay. Bảng đơn hình mới có đợc từ bảng đơn hình cũ theo các công thức đổi cơ sở sau khi chọn ẩn vào, ẩn ra cụ thể bằng lời nh sau: + Trong cột cơ sở thay A s bằng A k . + Trong cột c thay c s bằng c k . + Chia các phần tử của hàng xoay cho phần tử xoay x sk ta đợc hàng k của bảng mới. [...]... Trình bày khái quát về bài toán QHTT, các định lí, định nghĩa cơ bản của bài toán QHTT Thuật toán đơn hình gốc; thuật toán bài toán M; thuật toán đơn hình đối ngẫu và một số bài toán áp dụng thuật toán đơn hình để từ đó làm cơ sở, nền tảng cho phần lý thuyết trình bày ở chơng 2 21 Chơng 2 Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu 2.1 Trờng hợp thay đổi một số th nh phần vế phải 2.1.1... thuật toán tại bớc cuối (đối với bài toán (P)) Đó chính là cột 23 0 x (nhánh b ) có ít nhất một thành phần âm thì ta phải dùng thuật toán đơn hình đối ngẫu đối với bài toán gốc mở rộng (bổ sung một ràng buộc giả tạo với ẩn giả tạo x0 0) 2.2 Trờng hợp thay đổi hệ số h m mục tiêu 2.2.1 Cơ sở lý thuyết Giả sử x0 = ( x 0 ) ; ( j N) là phơng án tối u của bài toán (P) vì một lý do nào j đó, hệ số các... bài toán chính có hàm mục tiêu không bị chặn Chú ý: 1) Nếu bài toán chính đã có sẵn một vài vectơ đơn vị thì ta chỉ cần đa vào một số ẩn giả vừa đủ để có đúng một cơ sở đơn vị 2) Nếu ở một bớc nào đó vectơ có dạng An+i (ứng với ẩn giả) bị loại khỏi cơ sở thì các bớc sau cột x n+i không cần tính nữa 1.3.6 Thuật toán đơn hình đối ngẫu 1.3.6.1 B i toán đối ngẫu của b i toán QHTT dạng chính tắc Bài toán. .. Trong đó x0 là một ẩn mới, M là một tham số dơng đợc coi là rất lớn, (xj) là vectơ các biến phi cơ sở ^ ^ ^ ^ Đối với bài toán này ta có ngay 1 cơ sở B = { A 0 ; A 1; ; A m } Xây dựng bảng đơn ^ hình ứng với cơ sở B giống nh trờng hợp có sẵn cơ sở đơn vị Kết thúc thuật toán ta có thể gặp một trong các tình huống sau: Bài toán mở rộng vô nghiệm khi đó bài toán ban đầu cũng vô nghiệm ^ Bài toán mở rộng... hệ số của (2.8) vào dòng m + 1 rồi tiến hành thuật toán ngay 2.4 Phần b i tập về sự thay đổi một số dữ liệu ban đầu 2.4.1 Phần đề b i B i tập về sự thay đổi một số th nh phần vế phải B i 1 Giải bài tập 2 chơng 1 khi thay b = (5, 19, 15) bởi b = (3, 14, 6) f (x) = - x1 + 3x2 + x3 + 2x4 + x5 min x1 + 3x3 + 2x4 - 9x5 = 5 3x2 - 2x3 + 2x4 - 7x5 = 19 3x2 - 3x3 + x5 = 15 xj 0; j = 1,5 B i 2 Cho bài toán. .. bằng thuật toán đơn hình ta thu đợc phơng án tối u của bài toán (P) _ là x ứng với cơ sở tối u J0 và j 0 (j = 1, n ) Nhng trong trờng hợp, do sơ xuất khi lập mô hình, ngời ta đã bỏ sót một số điều kiện nào đó hoặc khi giải xong bài toán QHTT một số điều kiện nào đó thay đổi làm cho lời giải tối u vừa tìm thấy không sử dụng đợc nữa Ta sử dụng kết quả hiện có để giải bài toán sau khi bổ sung một ràng... đặt vào vị trí thứ m + 1 của bảng Nh vậy, ta đợc bảng đơn hình xuất phát giải bài toán (2.7) bằng thuật toán đơn hình đối ngẫu (chú ý rằng, dòng ghi các ớc lợng j không thay đổi vì hệ số của ẩn xk trong hàm mục tiêu là ck = 0, và rõ ràng k = 0 ) Việc khử dần các ẩn cơ sở trong (2.8) đợc tiến hành nh sau: Từ mỗi dòng số liệu của bảng đơn hình ứng với x ta có xi0 = xi + x x ij j ( i J0) (2.9) jJ 0 Trong... một dòng các hệ số của (x) vào phía trên cùng của bảng đơn hình đã có (khi giải bài toán với hàm mục tiêu f(x) ) Căn cứ vào bớc cuối cùng sau khi chỉnh lại cột đầu tiên c cho phù hợp, ta tính các ớc lợng j( ) đối với bài toán mới rồi viết ngay vào bảng (ngay dới dòng ghi các ớc lợng j(f) ở bớc cuối cùng) Tiếp tục tính toán theo các số liệu mới bằng một trong các thuật toán đơn hình đã cải biên... gọi là các ẩn giả, còn M là một tham số dơng đợc coi là rất lớn, lớn hơn bất cứ số cụ thể nào cần so sánh với nó Rõ ràng bài toán M đã ở dạng chuẩn với phơng án cực biên (0, b) = ( 0, , 0, b1, b2, , bm) ứng với cơ sở đơn vị { An+i = Ei ; i = 1, m }; An+i là vectơ đơn vị thứ i - vectơ cột các hệ số của ẩn wi = xn+i (i = 1, m ) Ta có thể bằng thuật toán đơn hình gốc giải bài toán M Các ớc lợng j = j... biến cơ sở nào đó trong bài toán mở rộng 1.4 Phần b i tập về thuật toán đơn hình 1.4.1 Phần đề b i B i 1 Cho bài toán với tham số : f(x) = x1 + x3 - x4 min 14 - x1 + x2 + 12x3 - 2 x4 + 4x5 = 9 2x1 + 8x3 + (1- )x4 + 2x5 = 14 + ( - 1) x4 x1 =4 xj 0 ; j = 1,5 a) Biết rằng x là một phơng án cực biên ứng với cơ sở A1, A2, A5 Hãy lập bảng đơn hình ứng với x b) Từ bảng đơn hình đã lập đợc, hãy tìm tất . kiến thức bổ trợ. Chơng 2. Thuật toán đơn hình việc thay đổi một số dữ liệu ban đầu. Chơng 3. Một số bài toán thực tế ứng dụng sự thay đổi một số dữ liệu ban đầu để ra quyết định tối u . 4 . lời giải 16 Chơng 2: Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu 22 2.1. Trờng hợp thay đổi một số thành phần vế phải 22 2.2. Trờng hợp thay đổi hệ số hàm mục tiêu 24 2.3 ấy, việc giải lại các bài toán từ đầu bằng thuật toán đơn hình là khó khăn và phức tạp. Vì vậy việc tìm ra cách thức xử lý các vấn đề hậu tối u khi thay đổi một số dữ liệu ban đầu bằng thuật toán

Ngày đăng: 01/11/2014, 20:44

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w