Hầu hết các bài toán MOO có nhiều hoặc thậm chí có vô số các điểm Pareto tối ưu. Do đó, để tìm kiếm một biên Pareto hoàn chỉnh là rất khó thậm chí là không thể. Mặt khác, người quyết định (decision maker) có thể chỉ quan tâm đến một vài mục tiêu tối ưu mà không quan tâm đến tất cả các lời giải trên biên. Nhiều thuật toán tiến hóa đa mục tiêu cố gắng tìm kiếm một cách phân bố đều các cá thể dọc biên Pareto, và lấy các cá thể này làm đại diện cho biên Pareto. Một lời giải tối ưu Pareto cho bài toán MOO, trong một điều kiện nhẹ có thể là một lời giải tối ưu cho bài toán tối ưu hóa đơn mục tiêu, trong đó mục tiêu là tổng hợp của các mục tiêu trong bài toán MOO. Do đó, xấp xỉ biên Pareto có thể tìm được bằng cách tìm lời giải của các bài toán đơn mục tiêu. Đây là ý tưởng cơ bản đằng sau nhiều phương pháp toán học để tìm xấp xỉ biên Pareto. Các phương pháp tổng hợp phổ biến nhất gồm phương pháp tổng trọng số và phương pháp Tchebycheff. MOEAD là thuật toán tiến hóa đầu tiên vào năm 2007 bởi Zang và Li dựa trên ý tưởng tổng hợp các hàm mục tiêu [21]. Phần này sẽ trình bày tổng quan về MOEAD.
1.3.2.1 Sự phân rã của tối ưu đa mục tiêu Cách tiếp cận tổng trọng số
Cách tiếp cận này xem xét một tổ hợp lồi của các mục tiêu khác nhau. Đặt λ = (λ1, ..., λm)T là véc tơ trọng số, λi ≤ 0 với i = 1,2, ..., m và Pm
đó, bài toán 1.5 có thể được chuyển về bài toán tối ưu hóa vô hướng như sau [21]: Minimize gws(x|λ) = m X i=1 λifi(x) (1.18) ràng buộc x∈Ω (1.19) Cách tiếp cận Tchebycheff
Trong cách tiếp cận này, bài toán tối ưu mở rộng được cho như sau [21]:
Minimize gte(x|λ,z∗) = max
1≤i≤m{λi|fi(x)−zi∗|} (1.20)
ràng buộc x∈Ω (1.21)
trong đó, z∗ = (z1∗, z2∗, ..., zm∗)T là các điểm tham chiếu, tức là zi∗ = min{fi(x)|x∈ Ω}.
Với mỗi điểm tối ưu Pareto x∗ tồn tại một véc tơ trọng số λ mà x∗ là lời giải tối ưu của bài toán mở rộng 1.20 và mỗi lời giải tối ưu của bài toán mở rộng 1.20 cũng là một lời giải tối ưu Pareto cho bài toán ban đầu. Do đó, với mỗi véc tơ trọng sốλ khác nhau có thể nhận được những lời giải tối ưu Pareto khác nhau cho cùng một bài toán. Một điểm hạn chế của cách tiếp cận này là hàm tổng hợp không trơn cho bài toán tối ưu đa mục tiêu liên tục.
Cách tiếp cận biên
Các thuật toán phân rã đa mục tiêu gần đây như phương pháp giao biên (Normal-Boundary Intersection Method) và phương pháp ràng buộc (Normalized Normal Constraint Method) đều sử dụng cách tiếp cận biên. Họ thường dùng cách tiếp cận này cho các bài toán đa mục tiêu liên tục. Về mặt hình học, cách tiệp cận này tìm kiếm các giao điểm nằm ở biên trên cùng và tập các đường thẳng. Nếu các đường thẳng phân bố đồng đều theo một nghĩa nào đó, người ta hi vọng rằng các điểm giao nhau sẽ tìm ra một xấp xỉ tốt cho biên Pareto.
Hình 1.9: Minh họa cách tiếp cận dựa trên biên
1.3.2.2 Sơ đồ của thuật toán tiến hóa đa mục tiêu dựa trên phân rã Thuật toán tiến hóa đa mục tiêu dựa trên phân rã (MOEAD) sử dụng cách phân rã bài toán của Tchebycheff được trình bày ở trên. Giả sử rằng λ1, ...., λN là tập hợp các véc tơ trọng số,z∗ là điểm tham chiếu. Bài toán đa mục tiêu ban đầu có thể được phân tách thành N bài toán tối ưu con. Hàm mục tiêu cho bài toán thứ j như sau [21]:
gte(x|λj,z∗) = max
1≤k≤m{λjk|fk(x)−zk∗|} (1.22) trong đó λj = (λj1, λ2j, ..., λjm)T. MOEAD cực tiểu hóa N hàm mục tiêu một cách đồng thời trong một lần chạy. Chú ý rằng gte là liên tục của λ, do đó, lời giải tối ưu của gte(x|λi,z∗) gần với lời giải tối ưu của gte(x|λj,z∗) nếu λi và λj là gần nhau. Do đó, với bất cứ thông tin nào về giá trị củagte với véc tơ trọng số gần với λi đều giúp ích cho việc tối ưu gte(x|λi,z∗). Đây chính là ý tưởng chính của MOEAD.
Trong MOEAD, một láng giềng của bài toán con thứ i bao gồm tất cả các bài toán con mà có véc tơ trọng số gần vớiλi. Do đó, chỉ các lời giải của các bài toán con lân cận của bài toán i mới được khám phá để tối ưu bài toán này. Chi tiết các bước được đưa ra trong thuật toán 1.6.
Trong mỗi thế hệ t, MOEAD duy trì các thành phần sau:
Một quần thể gồm N cá thể x1,x2, ...,xN ∈ Ω, trong đó xi là lời giải hiện tại của bài toán con thứ i. (xi là véc tơ).
F V1, F V2, ..., F VN, trong đó F Vi là giá trị của hàm mục tiêu của bài toán con thứ i, tức là F Vi=F(xi).
z∗ = (z∗1, z2∗, ..., zm∗)T, trong đó zk∗ là giá trị tốt nhất được tìm thấy của mục tiêu fk.
Một quần thể ngoài EP được sử dụng để lưu trữ các lời giải không trội được tìm thấy trong quá trình tìm kiếm.
Ở bước khởi tạo, B(i) chứa chỉ số của T véc tơ gần vớiλi nhất. Khoảng cách Euclid được sử dụng để đo khoảng cách giữa hai véc tơ. Véc tơ λi gần nhất với chính nó, và do đó,i∈B(i). Nếu j ∈B(i), bài toán con thứ j được gọi là gần với bài toán con thứ i. Trong bước thứ 2 của thuật toán, các bài toán lân cận với bài toán con thứ i được xem xét. Cụ thể, xk và xl trong bước 2.1 là các lời giải tốt nhất của các bài toán con lân cận với bài toán con thứ i. Do đó, con yđược tạo ra từ 2 bài toán con này được hi vọng sẽ là lời giải tốt cho bài toán con i. Bước 2.2, một thuật toán tham lam được sử dụng để sửa lạiytrong trường hợp y không hợp lệ. Do đó, kết quả là y0 sẽ khả thi và có thể có giá trị hàm mục tiêu tốt hơn. Bước 2.4 xem xét tất cả các láng giềng của bài toán con thứ i, nó thay thế xj bởi y0 nếu y0 tốt hơn xj.
Thuật toán 1.6: Thuật toán MOEAD Đầu vào:
N: số bài toán con;
λ1, λ2, ..., λN: các véc tơ trọng số ;
T: số lượng véc tơ trọng số là láng giềng của mỗi véc tơ; Đầu ra :
EP: quần thể ngoài
1 Bước 1) Khởi tạo quần thể
Bước 1.1) Khởi tạo EP =∅ ;
Bước 1.2) Tính khoảng cách Euclid giữa 2 véc tơ trọng số bất kì. Sau đó tìm raT véc tơ trọng số gần nhất với mỗi véc tơ trọng số. Với mỗi i= 1,2, ..., N, đặt B(i) ={i1, i2, ..., iT},trong đó, λi1, ..., λiT là T véc tơ trọng số gần với véc tơ
λi nhất. ;
Bước 1.3) Khởi tạo quần thể ban đầu gồm các cá thể x1, ...,xN. Tính
F Vi =F(xi);
Bước 1.4) Khởi tạo z∗ = (z1∗, z2∗, ..., zm∗)T (có thể khởi tạo ngẫu nhiên hoặc heuristic);
while Điều kiện dừng chưa thỏa mãndo Bước 2) Cập nhật;
for i = 1,...,N do
Bước 2.1) Tái tạo:
Lựa chọn ngẫu nhiên 2 chỉ sốk và l từ B(i), sau đó tạo ra một cá thể mới y từ
xk và xl bằng các phép toán di truyền ;
Bước 2.2) Cải thiện:
Áp dụng các phép heuristic hoặc một phép sửa đổi nào đó trên yđể tạo ra y0;
Bước 2.3) Cập nhật z∗.
Với mỗi j = 1,2, ..., m. Nếu zj > fj(y0), đặt zj∗ =fj(y0);
Bước 2.4) Cập nhật các lời giải láng giềng:
Với mỗi j ∈B(i), nếu gte(y0|λj,z∗)≤gte(xj|λj,z∗), đặt xj =y0 và F Vj =F(y0).
Bước 2.5) Cập nhật quần thể ngoài EP ; Loại bỏ khỏiEP những cá thể mà bị trội bởi y0;
Thêmy0 vào EP nếu không có véc tơ trong EP trội hơn y0; end