V. CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): PGS.TS Thoại Nam
2.3 Tổng quan về bài toán tối ưu hóa đa mục tiêu
2.3.1 Các hướng nghiên cứu chính
Bài toán tối ưu hóa đa mục tiêu thường được giải quyết theo 2 hướng chính là
scalarization và hướng tiếp cận Pareto.
Các phương pháp scalarization: Cách tiếp cận này đưa bài toán đa mục tiêu
gốc về bài toán đơn mục tiêu để có thể dễ giải hơn. Hàm mục tiêu lúc này sẽ là tổng có trọng số của các hàm mục tiêu từ bài toán gốc [20]. Các phương pháp tiếp cận theo hướng này sẽ đưa ra một lời giải duy nhất cho bài toán. Tuy nhiên, các tiếp cận này thường yêu cầu phải điều chỉnh các trọng số về mức độ quan trọng giữa các hàm mục tiêu. Đã có một số phương pháp heuristic để chọn lựa các trọng số này [21]. Tuy nhiên, các phương pháp này đều không đảm bảo vệ tính tối ưu của các trọng số được chọn. Hơn nữa, việc lựa chọn lời giải một vấn đề đa mục tiêu thường mang tính chủ quan, tùy thuộc vào hoàn cảnh thực tế và thời điểm của bài toán. Với một lời giải duy nhất cho bài toán đa mục tiêu sẽ hạn chế tính linh hoạt trong việc lựa chọn phương án tối ưu. Các phương pháp theo hướng tiếp cận Pareto: Một cách tiếp cận khác là sẽ
tiêu nhưng không làm tệ hơn ở một hay nhiều mục tiêu khác. Một cách tiếp cận cổ điển và thường đc sử dụng là giải thuật di truyền. Giải thuật di truyền mô phỏng, sử dụng các phép di truyền để tối ưu hóa hàm mục tiêu. Một giải thuật nổi tiếng của hướng tiếp cận này là giải thuật NSGA-II [22]. Luận văn này sẽ sử dụng giải thuật NSGA-II như một trong các baseline để so sánh với các giải thuật được đề xuất. Một hướng tiếp cận khác là sử dụng ý tưởng từ giải thuật
Bayesian. Trong trường hợp việc đánh giá hàm mục tiêu rất tốn thời gian, hướng tiếp cận Bayesian thường được biết đến với khả năng hội tụ nhanh sau một số ít lần chạy đánh giá hàm mục tiêu. Giải thuật đề xuất trong luận văn này tập trung vào việc cải tiến cách tiếp cận Bayesian để giải quyết bài toán đa mục tiêu rời rạc.
2.3.2 Giải thuật Bayesian cho bài toán đa mục tiêu
Giải thuật Bayesian là một giải thuật lặp, dựa trên việc xây dựng một mô hình
surrogate model để tìm phân bố hàm mục tiêu và một acquisition function để lựa chọn điểm tối ưu tiềm năng. Có nhiều hướng tiếp cận cho mô hình surrogate model, luận văn này sử dụng một trong những hướng tiếp cận phổ biến nhất là Gaussian Process [23] (GP). Bên cạnh GP, phụ thuộc vào bài toán áp dụng mà nhiều công trình đã đề xuất sử dụng các giải thuật như Random Forest [24], Decision Tree [25], T-Student process [26],... Acquisition function kết hợp với các tiêu chí heuristic được sử dụng để lựa chọn các nghiệm tối ưu tiềm năng. Một số acquistion function thường được sử dụng như Expected Improvement (EI) [28], Upper Confidence Bound (UCB) [28],… Các tiêu chí heuristic để lựa chọn điểm kế tiếp thường được chia thành 2 hướng chính là lựa chọn đơn và lựa chọn bó. Lựa chọn đơn (single selection hay single evaluation) chỉ chọn một nghiệm tiềm năng tại mỗi vòng lặp của giải thuật Bayesian. Đây là hướng tiếp cận truyền thống và đã có nhiều công trình trước đó như [28, 29, 30]. Mặt khác, lựa chọn bó (batch selection hay batch evaluation) sẽ hy sinh độ chính xác nhưng sẽ tận dụng được cơ chế song song hóa nhờ cơ chế đánh giá bó cho mỗi vòng lặp [31, 32, 33, 34, 35]. Hướng tiếp cận bó này sẽ mang lại nhiều lợi ích về tiết kiệm thời gian, và phổ biến hơn trong môi trường ứng dụng. Các giải thuật trong luận văn sẽ sử dụng hướng tiếp cận bó này.
Để áp dụng giải thuật Bayesian cho bài toán đa mục tiêu, một giải pháp tự nhiên nhất là quy về bài toán đơn mục tiêu như hướng tiếp cận scalarization như trong giải thuật ParEGO [36]. Tuy nhiên, giải thuật này cũng gặp một số vấn đề của hướng tiếp cận scalarization như đã đề cập ở trên. Gần đây, một hướng nghiên cứu khác đề xuất giải thuật USeMO [37] sử dụng kết hợp giữa giải thuật NSGA-II và ý tưởng của giải thuật Bayesian để giải quyết bài toán. Đề xuất của luận văn này sẽ được xây dựng và cải tiến dựa trên giải thuật USeMO. USeMO là một trong các giải thuật state-of- the-art (SOTA) giải quyết bài toán đa mục tiêu hiện nay. Một số công trình liên quan đến hướng tiếp cận này như TSEMO[38], DGEMO[39],... Cụ thể hơn về các giải thuật này sẽ được mô tả trong chương 3.
2.3.3 Các cách tiếp cận để giải quyết bài toán tối ưu hóa rời rạc sử dụng
Bayesian
Giải thuật Bayesian gốc được phát triển để giải quyết bài toán trên không gian liên tục. Việc áp dụng giải thuật Bayesian cho không gian rời rạc sẽ ảnh hưởng tới khả năng hội tụ và kết quả cuối cùng của giải thuật. Những khuyết điểm của việc áp dụng hướng tiếp cận Bayesian với không gian liên tục đã được phân tích trong nghiên cứu [40]. Hơn thế nữa, nhóm tác giả của bài báo này đưa ra một cách tiếp cận để cải thiện khả năng hội tụ giải thuật Bayesian cho bài toán đơn mục tiêu rời rạc. Tuy nhiên, giải pháp này cũng có một số mặt hạn chế. Để vượt qua những hạn chế đó, Phuc et al. [41] đã đề xuất một giải thuật tự động điều chỉnh các tham số cân bằng việc exploitation và exploration của giải thuật Bayesian cho bài toán đơn mục tiêu. Một mặt hạn chế của phương pháp này là khi áp dụng cho bài toán đa mục tiêu, số lượng tham số cần phải điều chỉnh có thể là rất lớn, dẫn đến việc khó và tốn thời gian để có thể tìm ra một bộ số tối ưu. Luận văn này sẽ đề xuất một cách tiếp cận lấy cảm hứng từ ý tưởng này cải thiện giải thuật UsEMO để giải quyết cho bài toán đa mục tiêu.
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT
Chương 3 trình bày một số khái niệm, lý thuyết nền tảng liên quan đến bài toán cần giải quyết và đề suất cải tiến được sử dụng trong luận văn. Đầu tiên, chương này đề cập đến một số thông tin chung về thư viện Mininet, mô hình hoạt động của hệ thống CDN. Bên cạnh đó, chương này đề cập một số khái niệm về bài toán tối ưu đa mục tiêu, giải thuật Bayesian tổng quát cũng như trong ngữ cảnh đa mục tiêu.
3.1 Tổng quan về Content Delivery Network 3.1.1 Khái niệm 3.1.1 Khái niệm
Trong mô hình mạng truyền thống, tất cả yêu cầu từ người dùng sẽ được phục vụ bởi một máy chủ hay một data center của nhà cung cấp nội dung. Khi nhu cầu, số lượng người dùng trở nên ngày càng lớn, kiến trúc truyền thống và cơ sở hạ tầng mạng khó có thể đem lại chất lượng dịch vụ tốt và ổn định. Mô hình mạng CDN ra đời nhằm phục vụ cho nhu cầu này. Doanh nghiệp sử dụng dịch vụ CDN để giảm traffic nội mạng, giảm độ trễ của dịch vụ, tăng tính ổn định và cải thiện trải nghiệm của người dùng. Khi người dùng yêu cầu một nội dung, thay vì yêu cầu này sẽ được gửi từ một máy chủ của nhà cung cấp, nó sẽ được gửi từ các replica server của hệ thống CDN. Nội dung sẽ được cache trong một hay nhiều replica servers của CDN.
3.1.2 Các đối tượng chính
Có 4 đối tượng chính trong một mô hình kinh doanh của hệ thống CDN gồm: Người dùng cuối: Người sử dụng dịch vụ từ nhà cung cấp nội dung. Họ
thường sẽ trả tiền theo tháng để truy cập internet hay các dịch vụ OTT, VoD,... Một trong những mục tiêu tiên quyết khi nghiên cứu hệ thống CDN là cải thiện trải nghiệm ở người dùng cuối.
Nhà cung cấp nội dung: cung cấp dịch vụ cho khách hàng mà không cần phải
thông qua các giao dịch, hợp đồng phức tạp với nhà mạng ISP. Hơn thế nữa, họ thường không muốn tốn nhiều chi phí cho cơ sở hạ tầng, gia tăng chất lượng dịch vụ và duy trì tính độc quyền với khách hàng.
Nhà cung cấp dịch vụ CDN: cung cấp cơ sở hạ tầng CDN (máy chủ và có thể
cả hạ tầng mạng) và có những hợp đồng ràng buộc về chất lượng với nhà cung cấp nội dung.
Nhà mạng ISP: chủ yếu nhận tiền từ người dùng cuối và có thể cả từ nhà cung
cấp dịch vụ CDN. Họ muốn duy trì và cân bằng chi phí cơ sở hạ tầng và chất lượng mạng để có thể cạnh tranh với các nhà mạng khác.
3.1.3 Phân loại
Tùy thuộc vào cách triển khai và mô hình kinh doanh, các hệ thống CDN được phân loại thành ba nhóm chính:
Hệ thống CDN truyền thống: Hình 1 minh họa cho mô hình CDN truyền
thống. Trong mô hình mạng CDN này, các replica server của hệ thống CDN sẽ đặt tại một hay nhiều trung tâm dữ liệu. Mỗi trung tâm dữ liệu Point-of-Present (PoP) sẽ kết nối trực tiếp với routers thuộc nhà mạng ISP. Mỗi PoP sẽ phục vụ cho một khu vực “district” nhỏ gồm một cụm nhỏ các người dùng cuối. Các request trong một “district” chỉ được phục vụ bởi 1 PoP riêng thuộc “district” đó. Nhà cung cấp nội dung sẽ thuê và trả tiền cho nhà cung cấp dịch vụ CDN để cải thiện dịch vụ của họ. Hợp đồng giữa 2 bên thường sẽ có những cam kết về chất lượng dịch vụ tối thiểu.
Hình 1: Mô hình CDN truyền thống
Hệ thống cloud CDN: Hiện này, có rất nhiều nền tảng lớn cung cấp dịch vụ
cloud CDN nổi tiếng như Akamai, CloudFront, Google Cloud, Amazon AWS,... Các nhà cung cấp nội dung sẽ thuê dịch vụ cloud từ các nền tảng này để phục vụ cho nhu cầu của họ. Tùy thuộc vào chính sách của các công ty cung cấp nền tảng CDN mà họ sẽ có các cách tính chi phí khác nhau. Những mục chi phí thường được tính khi cung cấp dịch vụ CDN của các nền tảng là số lượng máy, dung lượng lưu trữ của mỗi máy, lưu lượng traffic,... Cách tính chi phí cho những mục này thường sẽ khác nhau cho từng khu vực. Trong mô hình này, mỗi “region” sẽ gồm nhiều “district”. Các “region” sẽ được phục vụ bởi các data center trong khu vực của nhà cung cấp dịch vụ cloud. Hình 2 minh họa mô hình cloud CDN.
Hình 2: Mô hình cloud CDN
Hệ thống Telco CDN: Khi nhà cung cấp dịch vụ CDN sở hữu hoặc có thể chia
sẻ cơ sở hạ tầng mạng của nhà mạng ISP, hệ thống CDN có thể được triển khai ngay trên cơ sở hạ tầng này. Hình 3 mô tả mô hình Telco CDN. Trong mô hình này, các replica server có thể kết nối trực tiếp với các routers của nhà mạng ISP. Việc tận dụng cơ sở hạ tầng của nhà mạng ISP giúp giảm chi phí đầu tư, tăng hiệu quả của hệ thống CDN.
3.1.4 Các bài toán con trong chiến lược caching của hệ thống CDN:
Chiến lược caching của một hệ thống CDN có thể được chia thành ba bài toán con nhỏ hơn như sau:
Bài toán eviction: Là bài toán xác định khi nào và nội dung gì trong cache sẽ
được xóa.
Bài toán admission: Là bài toán xác định nội dung nào sẽ được cache. Thông
thường nhà cung cấp nội dung nếu muốn hệ thống CDN cache một nội dung, họ sẽ thêm vào 1 trường trong phần header của gói tin chứa nội dung để đánh dấu việc cache gói tin đó. Luận văn này không đề cập đến chiến lược admission trong môi trường thí nghiệm nghĩa là các replica servers sẽ cache tất cả nội dung mới.
Chiến lược định tuyến gói tin: Là bài toán xác định khi một nội dung không
có trong một replica servers thì server đó nên chuyển hướng yêu cầu đó đến server nào kế tiếp.
3.2 Thư viện Mininet
Công cụ giả lập trong luận văn này được phát triển dựa trên thự viện Mininet. Mininet là một thư viện giả lập mạng có khả năng giả lập các máy ảo chạy code thực. Mỗi máy ảo có trong mạng giả lập đều có network stack, Linux kernel riêng và chạy trên một namespace độc lập. Các máy ảo giao tiếp với nhau thông qua các đường kết nối ethernet ảo. Hơn thế nữa, trong phiên bản cập nhật Mininet HiFi [42] đã cung cấp cơ chế cô lập tài nguyên, đường kết nối ảo khả thiết lập. Cụ thể hơn, ta có thể cấp phát phần trăm tài nguyên CPU cố định cho mỗi máy ảo, cũng như các tài nguyên mạng như bandwidth, loss và delay cho mỗi đường ethernet ảo. Luận văn này sử dụng Containernet, một phiên bản mở rộng của Mininet. Containernet mở rộng khả năng triển khai các ứng dụng thực thông qua cơ chế sử dụng Docker container trên các máy ảo. Với phiên bản mở rộng này, luận văn có thể giả lập lại hệ thống thực chi tiết hơn. Về sự tương quan giữa tính đúng đắn, ổn định của thư viện Mininet và khả năng phần cứng của máy thực chạy thư viện đã được khảo sát và đánh giá trong [43]. Mininet ban đầu được thiết kế để giả lập các hệ thống Software Defined Network (SDN), nhưng độ tin cậy và tính ổn định của nó vẫn được đảm bảo khi giả lập các hệ thống
mạng truyền thống. Tuy nhiên, việc sử dụng các SDN controller có thể sẽ gia tăng việc tiêu tốn tài nguyên phần cứng chạy bộ giả lập. Công cụ giả lập được phát triển trong luận văn này thay vì sẽ định tuyến packet dựa vào một bộ SDN controller, các gói tin sẽ được định tuyến dựa vào các router giả lập. Chi tiết của phần hiện thực công cụ này sẽ được đề cập ở chương 4.
3.3 Bài toán tối ưu hóa đa mục tiêu 3.3.1 Định nghĩa 3.3.1 Định nghĩa
Một bài toán tối ưu hóa đa mục tiêu thường sẽ bao gồm hai hay nhiều hơn các hàm mục tiêu cần tối ưu. Giả sử ta có bài toán tối ưu k mục tiêu, ta kí hiệu hàm mục tiêu thứ i là ( ) với x là là biến số thực đầu vào d chiều . Mục tiêu của bài toán này là tối thiểu hóa những mục tiêu này với không gian đầu vào X, tuy nhiên các mục tiêu này thường đối nghịch nhau. Trong bài toán đa mục tiêu, khi chỉ tập trung tối ưu một mục tiêu riêng lẻ có thể sẽ ảnh hưởng hay làm tệ đi những mục tiêu khác.
Để tìm nghiệm tối ưu cho bài toán đa mục tiêu, trước tiên ta phải định nghĩa một lời giải như thế nào thì tốt hơn một lời giải khác. Trong trường hợp bài toán đơn mục tiêu, sự “vượt trội” của lời giải được xác định đơn giản bởi sự so sánh giá trị của hàm mục tiêu đơn liên quan. Trong bài toán đa mục tiêu, sự vượt trội này được đánh giá qua khái niệm dominanace. Một lời giải x1được gọi là dominate x2 khi thỏa mãn cả 2 điều kiện sau:
x1 không tệ hơn x2 trong tất cả các mục tiêu. x1tốt hơn x2trong ít nhất một mục tiêu.
Một bài toán đa mục tiêu giải quyết theo cách tiếp cận Pareto sẽ có một tập nghiệm tối ưu được gọi là tập Pareto. Những nghiệm trong tập Pareto P (Pareto set)
sẽ không bị dominate bởi bất kỳ giá trị nào khác trong tập X. Nói cách khác, ta có các phát biểu sau cho bài toán tối thiểu hóa:
Hình 4 là ví dụ minh họa cho khái niệm dominate và Pareto front với bài toán có 2 mục tiêu , . A và B không dominate nhau, trong khi đó A và B đều dominate
C. Đường màu đỏ chứa các điểm là giá trị các hàm mục tiêu của các nghiệm tối ưu còn được gọi là Pareto front. Mỗi bài toán tối ưu hóa đa mục tiêu đều có một true Pareto front. Đây là Pareto front lý tưởng và không tồn tại một Pareto front nào “tốt” hơn. Mục tiêu cao nhất của hướng tiếp cận Pareto này là có thể tìm được true Pareto front của bài toán.
Hình 4: Ví dụ về Dominance và Pareto front cho bài toán 2 mục tiêu.
3.3.2 Độ đo
Để so sánh giữa các giải thuật tối ưu hóa đa mục tiêu theo cách tiếp cận Pareto, ta cần một độ đo để so sánh giữa các tập nghiệm Pareto. Một phép đo phổ biến thường được sử dụng trong mục đích này là Hypervolume Indicator [44]. Giả sử, ta có