Ứng dụng giải thuật tiến hóa đa mục tiêu trong thiết kế tối ưu kiến trúc mạng viễn thông



tải về 0.98 Mb.
trang13/13
Chuyển đổi dữ liệu03.11.2017
Kích0.98 Mb.
#34035
1   ...   5   6   7   8   9   10   11   12   13

Khởi tạo quần thể


Quần thể ban đầu được khởi tạo ngẫu nhiên theo nhiều phương pháp khác nhau, các cá thể chỉ được chọn khi chúng là biểu diễn của một mạng liên thông và thỏa ràng buộc về bậc của nút. Phần lớn các cá thể được tạo theo giải thuật:
begin algorithm

{di là thứ bậc của nút i, dimax là cận trên của di}



L = {}

Chọn một nút giữa ngẫu nhiên i trong N

Gọi thủ tục start_from_node(i)

end algorithm

procedure start_from_node(j)

while (dj<djmax)

Chọn một nút ngẫu nhiên mN, mj, (j,m)L



If (dm<dmmax)

Thêm cạnh (m,j) vào L

Gọi thủ tục start_from_node(m)

endif

end while

end procedure
Một số cá thể khác có thể được tạo theo cách tạo cây phủ tối thiểu (minimum spanning tree) ngẫu nhiên:
begin algorithm

L = {}

Chọn 1 nút bắt đầu ngẫu nhiên iN



C = {i}

repeat

Chọn một nút ngẫu nhiên dC

Chọn một nút ngẫu nhiên cC thỏa dc<dcmax

L = L  {(c,d)}

C = C  {d}

until C = N

end algorithm

    1. Tính toán giá trị của các hàm mục tiêu


Việc tính toán giá trị của các hàm mục tiếu thực hiện gồm các bước:

B1: Xây dựng mô hình mạng từ nhiễm sắc thể đã cho;

B2: Dùng giải thuật Monte Carlo (xem [6]) tính toán độ tin cậy của nhiễm sắc thể: các nhiễm sắc thể có độ tin cậy được đánh giá dựa vào xác suất nhiễm sắc thể vẫn duy trì được tính liên thông khi loại bỏ một hoặc nhiều các liên kết được lựa chọn một cách ngẫu nhiên. Các liên kết có độ tin cậy cao hơn sẽ có xác suất được lựa chọn để loại bỏ thấp hơn;

B3: Tính toán chi phí truyền tải lưu lượng (r1), gồm 2 bước con:

B3a: Dùng giải thuật ở [3] tìm r đường đi ngắn nhất giữa từng cặp nút thỏa (r7);

B3b: Dùng qui hoạch tuyến tính phân bổ lưu lượng theo các đường đi đã tìm ở bước B3a, thỏa các ràng buộc về lưu lượng của bài toán, đồng thời tối thiểu hóa tổng chi phí truyền tải lưu lượng (r1);

B4: Dùng thủ tục sửa chữa, sau đó lặp lại các bước B2B3 nếu mô hình mạng không thỏa ràng buộc về độ trễ gói cực đại cho phép (r11).
    1. Cơ chế chọn lọc (selection mechanism)


Giải thuật MOEA chọn lọc các nhiễm sắc thể cho việc sinh sản ngẫu nhiên, cơ hội được chọn tùy thuộc vào giá trị hàm mục tiêu của chúng. Mỗi giải thuật MOEA có cách chọn lọc khác nhau:

 Chọn lọc dựa vào tỷ lệ: từ tập các nhiễm sắc thể và các giá trị hàm mục tiêu, ta có thể tạo ra một bộ chọn lọc ngẫu nhiên tương tự như một bánh xe rulét (roulette wheel), các nhiễm sắc thể có giá trị thích nghi tốt hơn ánh xạ tương ứng với phần lớn hơn.

 Chọn lọc dựa vào thứ hạng Pareto (Pareto-ranking): các nhiễm sắc thể có thứ hạng Pareto thấp sẽ có cơ hội được chọn lọc cao hơn (xem mục 3.B).

 Chọn lọc dựa vào đấu loại trực tiếp: hai nhiễm sắc thể được chọn lựa ngẫu nhiên để đấu loại, nhiễm sắc thể có giá trị hàm thích nghi tốt hơn sẽ là người chiến thắng.


    1. Phép toán lai tạo (crossover operator)


Giải thuật ở đây dùng phép lai đồng dạng (uniform crossover) để lai tạo quần thể, hai mạng cha mẹ được chọn để tạo ra một mạng con mới theo cách: nếu cả cha và mẹ cùng sở hữu một liên kết, mạng con cũng sẽ có liên kết đó; nếu cả cha và mẹ cùng không có, mạng con cũng sẽ không có; nếu chỉ một trong cha hoặc mẹ có liên kết thì mạng con cũng sẽ có với xác suất 50%. Phép lai tạo này đảm bảo mạng con sẽ thừa hưởng các đặc tính chung của cả cha và mẹ. Các mô hình mạng sau khi lai tạo được kiểm tra tính hợp lệ và sửa chữa để đảm bảo chỉ những mô hình liên thông và thỏa ràng buộc về bậc của nút được đưa sang thế hệ kế tiếp.
    1. Phép toán đột biến (mutation operator)


Trong biểu diễn nhiễm sắc thể, các gen tượng trưng cho loại liên kết, gen có giá trị 0 nếu không có liên kết. Trong quá trình đột biến, việc bỏ đi một liên kết sẽ không bao giờ cải thiện được giá trị hàm mục tiêu của nhiễm sắc thể, vì phép toán tuyến tính phát sinh sẽ trở nên ràng buộc chặt chẽ hơn. Vì vậy, chúng ta chọn giải pháp: chọn ngẫu nhiên một gen trong nhiễm sắc thể; nếu gen có giá trị 0 ta sẽ thiết lập gen là một số ngẫu nhiên có giá trị trong đoạn (1,…, t). Một lần nữa việc kiểm tra tính hợp lệ và sửa chữa các nhiễm sắc thể lại được thực hiện.
    1. Sửa chữa (repair)


Không phải tất cả các nhiễm sắc thể được khởi tạo ngẫu nhiên, lai tạo hay đột biến là biểu diễn của một mạng liên thông hoặc thỏa các ràng buộc về độ trễ và bậc của nút, vì vậy quá trình sửa chữa (repair) là cần thiết. Khi sửa chữa, mục đích của ta là tạo ra một lời giải khả thi bằng một vài thay đổi. Tính liên thông dễ dàng được kiểm tra với chi phí không quá lớn bằng cách dùng giải thuật tìm kiếm theo chiều sâu trước (Depth First Search) (xem [1]). Nếu một đồ thị không liên thông, các liên kết ngẫu nhiên được bổ sung giữa các thành phần liên thông cho đến khi đồ thị liên thông hoàn toàn. Nếu bậc của một nút nhỏ hơn cận dưới của ràng buộc, một hoặc nhiều hơn các liên kết sẽ được bổ sung. Nếu bậc của một nút lớn hơn cận trên của ràng buộc, một hoặc nhiều hơn các liên kết sẽ được bỏ đi, nhưng vẫn phải đảm bảo tính liên thông của đồ thị.

Với một mạng đã liên thông và thỏa ràng buộc về bậc của nút (r7), tất cả các đường đi thỏa ràng buộc về giới hạn số trạm trung gian (r6) được tạo ra, thủ tục Qui hoạch tuyến tính được sử dụng để tìm phân bổ lưu lượng trên các đường đi thỏa các ràng buộc về dung lượng của nút (r4) và liên kết (r5), cũng như đảm bảo sao cho tổng lưu lượng phân bổ cho từng cặp nút phải bằng với ma trận lưu lượng yêu cầu (r2), đồng thời tối thiểu hóa tổng chi phí truyền tải lưu lượng (r1). Nếu Qui hoạch tuyến tính không tìm ra giải pháp, chúng cũng được sửa chữa. Để sửa chữa, một thủ tục nhỏ được gắn liền với thủ tục Qui hoạch tuyến tính nhằm tìm ra các liên kết hoặc nút quá tải. Nếu liên kết (i, j) bị quá tải, một liên kết thứ hai giữa nút i và nút j được tạo ra. Điều này được thực hiện bằng cách chọn ngẫu nhiên một nút thứ ba k và bổ sung vào các liên kết (i, k) và (k, j). Nếu nút i bị quá tải, một liên kết vòng qua i được tạo ra bằng cách chọn hai nút jk nằm liền kề i, tức đồ thị đã tồn tại các liên kết (i, j) và (i, k), sau đó bổ sung vào liên kết (j, k).



Với một mạng có độ trễ gói trung bình cao hơn mức mong muốn (Tmax), điều này đồng nghĩa với việc có một vài liên kết nào đó có lưu lượng trung bình xấp xỉ với lưu lượng cho phép. Trong trường hợp như vậy, độ trễ gói trung bình của mạng có thể được cải thiện bằng cách thêm vào một liên kết nhằm chia tải với các liên kết bị quá tải. Để tìm ra liên kết ứng thí tốt nhất, lần lượt các liên kết bị quá tải được loại bỏ khỏi mạng cho đến khi mạng được tách thành hai mạng con riêng biệt G1G2 (tức là V1V2 = ). Các liên kết bị loại bỏ thiết lập thành tập S. Liên kết ứng thí là liên kết có chi phí nhỏ nhất {i, j} thỏa iV1, jV2 và {i, j}S. Tuy nhiên, thủ tục này đôi khi thất bại trong việc tìm ra một liên kết như vậy, đặc biệt khi mạng có kết nối dày đặc. Trong trường hợp này, giải thuật sẽ tìm kiếm đường dẫn với chi phí truyền tải cao nhất trong mạng, liên kết ứng thí là liên kết trực tiếp giữa hai nút ở cuối đường dẫn vừa tìm.
    1. Phát triển các tầng lớp ưu tú (elitism)


Do phép chọn lọc và lai tạo được thực hiện một cách ngẫu nhiên, không đảm bảo các nhiễm sắc thể không bị vượt trội sẽ hiện hữu trong thế hệ kế tiếp. Cách giải quyết phổ biến là chọn duy trì những nhiễm sắc thể không bị vượt trội được sản sinh của mỗi thế hệ.
    1. Đảm bảo quần thể đa dạng và nhỏ


Ta chọn cách thức: sau khi lai tạo, tất cả các nhiễm sắc thể được so sánh với nhau. Vì các nhiễm sắc thể giống nhau không thêm bất kỳ thông tin nào. Nên ta có thể loại bỏ chúng mà không ảnh hưởng đến sự tiến triển của quần thể.
    1. So sánh trước - kiểm tra sau


Nhược điểm của Qui hoạch tuyến tính là tốn nhiều thời gian tính toán. Lợi dụng đặc điểm các quần thể thường có độ hội tụ cao, nên trước khi tính toán giá trị hàm mục tiêu của một nhiễm sắc thể, ta so sánh nó với tất cả các thành viên đã được tính ở các thế hệ trước (số thế hệ tiền sử được lưu trữ tùy thuộc vào dung lượng bộ nhớ). Các nhiễm sắc thể giống nhau sẽ có cùng giá trị hàm mục tiêu, nên việc tính lại là không cần thiết.
    1. Lược bỏ


Quá trình sửa chữa và phép đột biến thường thêm vào các liên kết. Quần thể sẽ hướng tới một đồ thị liên thông hoàn toàn (với ràng buộc bậc của nút cho phép). Vì vậy chất liệu di truyền dư thừa sẽ được sản sinh qua các thế hệ tương lai. Giải pháp được chọn là tìm các liên kết không cần thiết và lược bỏ chúng.
    1. Khả năng tương tác


Việc cho phép tinh chỉnh các thông số trong thời gian thực có thể cải tiến hiệu năng của hệ thống. Bằng cách thay đổi các thông số và sử dụng các toán tử lai tạo, đột biến và sinh sản ngẫu nhiên trong quần thể, ta có thể nghiên cứu giá trị của các chiến lược mới mà không cần thay đổi mã chương trình. Việc tương tác cũng cho phép thu thập các thông tin cần quan tâm ở bất kỳ giai đoạn nào.
  1. KẾT QUẢ THỰC NGHIỆM


Chúng tôi đã xây dựng phần mềm trên cơ sở dùng ngôn ngữ C++ để thể hiện các giải thuật và hình ảnh đồ họa ba chiều của tập các lời giải tối ưu trong không gian mục tiêu. Phần mềm chạy thử nghiệm trên máy có cấu hình Intel Core2 Duo CPU T5870 2GHz, RAM 1GB, OS Ubuntu 9.10.

Theo hướng tiếp cận Pareto, bốn giải thuật MOEA được hiện thực và thử nghiệm bao gồm: NSGA, NSGAII, NSGAIIC và SPEA. Chương trình gồm các mô đun chính: (i) mô đun nạp dữ liệu và mô hình mạng cần thiết kế từ tập tin; (ii) mô đun thiết lập các tham số tính toán; (iii) các mô đun hiện thực các giải thuật SPEA, NSGA, NSGAII và NSGAIIC; (iv) mô đun hiện thực giải thuật tìm k đường đi ngắn nhất Dijkstra mở rộng; (v) mô đun giải bài toán qui hoạch tuyến tính dùng giải thuật đơn hình; và (vi) mô đun thực thi, hiển thị và kết xuất dữ liệu kết quả ra tập tin.

Ở đây, giải thuật NSGAIIC là phiên bản cải tiến của NSGAII trong trường hợp tập Pareto-được-biết-tốt-nhất có kích thước quá lớn (lớn hơn mức M0 cho trước), khi đó tập Pareto-được-biết-tốt-nhất sẽ được phân thành M1 cụm (cluster) dựa vào khoảng cách giữa các lời giải trong không gian hàm mục tiêu hoặc không gian biến quyết định, dĩ nhiên M0 > M1. Trong mỗi cụm, lời giải có khoảng cách trung bình đến các lời giải trong cùng cụm thấp nhất sẽ được chọn vào tập Pareto-được-biết-tốt-nhất cho thế hệ kế tiếp. Khi đó kích thước của tập Pareto-được-biết tốt-nhất sẽ được thiết lập lại ở kích thước M1 (xem [23]). Cải tiến này giúp hạn chế kích thước của tập Pareto-được-biết-tốt-nhất nhưng làm tăng chi phí tính toán của giải thuật NSGAIIC.

Các kết quả được trình bày ở đây có được từ việc chạy các giải thuật MOEA khác nhau để thiết kế tối ưu một mạng viễn thông có: 24 nút, 55 liên kết, 396 lưu lượng yêu cầu giữa từng cặp nút nguồn - đích (đây là dữ liệu và mô hình mẫu có mã hiệu ta1--U-U-L-N-C-A-Y-N do Telekom Austria đề xuất, được lấy từ thư viện chứa các mẫu kiểm thử dành cho các cộng đồng nghiên cứu trên thế giới nhằm chuẩn hóa việc kiểm tra benchmark, đánh giá và so sánh giữa các mô hình và giải thuật thiết kế tối ưu mạng viễn thông cố định được đặt tại trang web http://sndlib.zib.de.

Tóm tắt kết quả thử nghiệm của chúng tôi với các giải thuật MOEA khác nhau được thể hiện ở Bảng 1 và Bảng 2. Trong Bảng 1, cột NE thể hiện số thứ tự của các cá thể trong tập Pareto-được-biết-tốt-nhất, cột Cost thể hiện chi phí truyền tải lưu lượng, cột Reliable thể hiện độ tin cậy và cuối cùng cột Time thể hiện thời gian thực thi của từng giải thuật (tính theo phút và giây).

BẢNG 1. KÊT QUẢ THỰC NGHIỆM VỚI CÁC GIẢI THUẬT MOEA


MOEA

NE

Cost

Reliable

Time

NSGA

1

3295

0.7910

75p15g

2

3190

0.7777

3

2965

0.7595

4

2960

0.7413

5

2870

0.7294

NSGAII

1

3095

0.7819

18p29g

2

2965

0.7735

3

2945

0.7357

4

2910

0.7350

NSGAIIC

1

3105

0.7749

20p46g

2

3075

0.7651

3

2915

0.7490

SPEA

1

3220

0.7854

35p37g

2

3095

0.7840

3

3000

0.7721

4

2990

0.7378

5

2870

0.7364

Trong Bảng 2, cột N thể hiện số lời giải trong tập Pareto-tốt-nhất-được-biết tổng có được bằng cách: hợp các tập Pareto-được-biết-tốt-nhất của mỗi giải thuật MOEA và chọn ra các lời giải không bị vượt trội (là các lời giải được tô đậm trong Bảng 1); ứng với từng giải thuật, cột N1 thể hiện số lời giải trong tập Pareto-được-biết-tốt-nhất, cột N2 thể hiện số lời giải trong tập Pareto-được-biết-tốt-nhất trong tập Pareto-tốt-nhất-được-biết tổng, cột N3 thể hiện số lời giải trong tập Pareto-được-biết-tốt-nhất bị vượt trội so với các lời giải trong tập Pareto-được-biết-tốt-nhất tổng và cuối cùng cột N4 thể hiện khoảng cách Euclid trung bình giữa các lời giải trong tập Pareto-được-biết-tốt-nhất.

BẢNG 2. SO SÁNG KẾT QUẢ GIỮA CÁC GIẢI THUẬT MOEA

MOEA

N1

N2

N3

N

N4

Time

NSGA

5

1

4

7

0.74142

75p15g

NSGAII

4

2

2

0.88188

18p29g

NSGAIIC

3

2

1

0.95697

20p46g

SPEA

5

2

3

0.80313

37p37g

Qua so sánh kết quả giữa các giải thuật MOEA ta nhận thấy: NSGA có thời gian tính toán chậm nhất, chất lượng lời giải thấp và phân bố không rộng trong không gian mục tiêu; SPEA cho kết quả tốt hơn; NSGAII và NSGAIIC thì tốt nhất cả về tiêu chí thời gian tính toán lẫn chất lượng lời giải.


  1. KẾT LUẬN


Phương pháp tối ưu đa mục tiêu dùng giải thuật tiến hóa là cách tiếp cận mới trong phân tích và thiết kế mạng viễn thông với nhiều ràng buộc phức tạp và nhiều mục tiêu khác nhau. Trong nghiên cứu này, chúng tôi thử áp dụng một số giải thuật tiến hóa đa mục tiêu MOEA vào việc thiết kế tối ưu mạng viễn thông. Kết quả thực nghiệm với bốn giải thuật tiến hóa đa mục tiêu NSGA, NSGAII, NSGAIIC và SPEA khi thiết kế mạng viễn thông mà chúng tôi đạt được đã chứng tỏ khá rõ nét tính hiệu quả và đúng đắn của phương pháp tối ưu đa mục tiêu này. Kết quả này là kết quả bước đầu của một đề tài nghiên cứu đang tiến hành, do đó, vẫn còn một số vấn đề cần được tiếp tục nghiên cứu sâu hơn trong thời gian sắp tới, có thể kể như sau:

Bài toán chưa đặt vấn đề thiết kế mạng với khả năng dự phòng và cấu hình lại khi có sự cố làm mất một hoặc nhiều liên kết.

Bài toán chưa tiếp cận theo hướng dùng một số các giải thuật tối ưu hóa đa mục tiêu dựa vào meta-heuristic khác như: giải thuật mô phỏng luyện kim đa mục tiêu (MOSA), giải thuật tìm kiếm Tabu đa mục tiêu, giải thuật di truyền lai đa mục tiêu,...

Đối với từng bài toán, hoặc mỗi giai đoạn nhất định trong quá trình giải quyết bài toán, việc chọn giải thuật meta-heuristic hoặc thay đổi các tham số phù hợp để có được kết quả tối ưu là rất quan trọng, bài báo này cũng chưa cho điều kiện xem xét.



Ngoài ra, chúng ta cũng cần xem xét thêm trường hợp có sự kết hợp với việc định tuyến và điều khiển tối ưu,... để giải bài toán thiết kế mạng viễn thông một cách tổng thể hơn.


THƯ MỤC THAM KHẢO

  1. T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, MIT Press, 1997

  2. Lương Hồng Khanh, “Ứng dụng thuật toán tiến hóa trong việc tối ưu hóa các tham số chất lượng mạng,” Tạp chí Bưu chính Viễn thông, số 197, 2002, trang 42-45.

  3. E. Q. V. Martins, M. M. B. Pascoal, J.L.E. Santos, “The k shortest paths problem”, Technical Report, Universidade de Coimbra, Portugal, 1998.

  4. K.T. Ko, K.S. Tang et al., “Using Genetic Algorithms to Design Mesh Networks”, Computer Journal, No. 30, 1997.

  5. L. Berry, B. Murtagh, S. Sugden và G. McMahon, “Application of a Genetic-based Algorithm for Optimal Design of Tree-structured Communications Networks”, Proceedings of the Regional Teletraffic Engineering Conference of the International Teletraffic Congress, South Africa, September 1995, pp. 361-370.

  6. G. Kochanski, “Monte Carlo Simulation”, 2005. http://kochanski.org/gpk.

  7. S. Duarte, B. Barán and D. Benítez, “Telecommunication network design with parallel multi-objective evolutionary algorithms,” Proccedings of XXVII Conferencia Latinoamericana de Informatica CLEI'2001, Merida, Venezuela, 2001.

  8. A. Konak and A. Smith , “A Hybrid Genetic Algorithm Approach for Backbone Design of Communication Networks”, Proceedings of the 1999 Congress on Evolutionary Computation, Washington D. C., 1999.

  9. J. D. Schaffer, “Multiple objective optimization with vector evaluated genetic algorithms,” Proceedings of the International Conference on Genetic Algorithm and their Applications, 1985.

  10. C. M. Fonseca and P.J. Fleming, “Multiobjective genetic algorithms,” IEE Colloquium on Genetic Algorithms for Control Systems Engineering (Digest No. 1993/130), 28 May 1993. London, UK: IEE; 1993.

  11. J. Horn, N. Nafpliotis, D. E. Goldberg, “A niched Pareto genetic algorithm for multiobjective optimization”, Proceedings of the first IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence, 27–29 June, Orlando, FL, USA, 1994.

  12. P. Hajela P, C. Y. Lin, “Genetic search strategies in multicriterion optimal design”, Struct Optimization , 4(2), 1992, pp. 99–107.

  13. T. Murata, H. Ishibuchi, “MOGA: multi-objective genetic algorithms,” Proceedings of the 1995 IEEE International Conference on Evolutionary Computation, 29 November –1 December, Perth, WA, Australia, 1995.

  14. N. Srinivas, K. Deb, “Multiobjective optimization using nondominated sorting in genetic algorithms”, J. Evol Comput 2(3), 1994, pp. 221–48.

  15. E. Zitzler, L. Thiele, “Multiobjective evolutionary algorithms: a comparative case study and the strength Pareto approach”, IEEE Trans Evol Comput, 3(4), 1999, pp. 257–71.

  16. E. Zitzler, M. Laumanns, L. Thiele, “SPEA2: improving the strength Pareto evolutionary algorithm”, Swiss Federal Institute Techonology: Zurich, Switzerland, 2001.

  17. J. D. Knowles, D. W. Corne, “Approximating the nondominated front using the Pareto archived evolution strategy”, Evol Comput, 8(2), 2000, pp.149–72.

  18. D. W. Corne, J. D. Knowles, M. J. Oates, “The Pareto envelope-based selection algorithm for multiobjective optimization”, Proceedings of sixth International Conference on Parallel Problem Solving from Nature, 18–20 September, Paris, France, 2000.

  19. D. W. Corne, N. R. Jerram, J. D. Knowles, M. J. Oates, “PESA-II: region-based selection in evolutionary multiobjective optimization”, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), San Francisco, CA, 2001.

  20. K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, “A fast and elitist multiobjective genetic algorithm: NSGA-II,” IEEE Trans Evol Comput, 6(2), 2002, pp.182–97.

  21. H. Lu, G. G. Yen, “Rank-density-based multiobjective genetic algorithm and benchmark test function study,” IEEE Trans Evol Comput, 7(4), 2003, pp.325–43.

  22. G. G. Yen, H. Lu, “Dynamic multiobjective evolutionary algorithm: adaptive cell-based rank and density estimation”, IEEE Trans Evol Comput, 7(3), 2003, pp.253–74.

  23. A. Konak, D. W. Coit, A. E. Smith, “Multi-objective optimization using genetic algorithms: A tutorial,” J. Reliability Engineering and System Safety, No. 91, 2006, pp. 992-1007.



tải về 0.98 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   5   6   7   8   9   10   11   12   13




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương