Chúng ta đã biết phương pháp NSGA (Non-Dominated Sorting Genetic Algorithm) được phát triển dựa trên phương pháp GA. Phương pháp này chỉ khác phương pháp GA ở bước lựa chọn nên NSGA kế thừa được những ưu điểm của phương pháp GA. Tuy nhiên, phương pháp NSGA vẫn tồn tại những hạn chế như: thời gian tính toán chậm, phụ thuộc tham số điều khiển... Để khắc phục những hạn chế của NSGA, Deb và cộng sự đã đề xuất giải thuật sắp xếp không vượt trội 2 (NSGA-II) vào năm 2002 [55]. Phương pháp này không những khắc phục được những hạn chế của NSGA mà còn đảm bảo sự đa dạng và duy trì được các cá thể tốt qua các thế hệ.
Giải thuật NSGA-II là một giải thuật tốt được dùng rất phổ biến là một phương pháp tối ưu hóa cơ bản. Tập tất cả các phương án chấp nhận được không bị vượt trội trong miền khảo sát được gọi là tập tối ưu Pareto. Mục tiêu của các giải thuật tối ưu đa mục tiêu là xác định các lời giải trong tập tối ưu Pareto. Thực tế, việc chứng minh một lời giải là tối ưu thường không khả thi về mặt tính toán. Vì vậy, một tiếp cận thực tế với bài toán tối ưu đa mục tiêu là tìm kiếm tập các lời giải là thể hiện tốt nhất có
39
thể của tập tối ưu Pareto, một tập các lời giải như vậy được gọi là tập Pareto (tập có giá trị tốt nhất) [62].
Khó khăn chính trong tối ưu hoá đa mục tiêu là không tồn tại một phương án tối ưu duy nhất và rất khó so sánh phương án này với phương án khác. Các bài toán thường chấp nhận nhiều phương án mà mỗi phương án là chấp nhận được đối với mỗi hàm mục tiêu đồng thời đạt được sự cân đối giữa các mục tiêu.
Thuật toán NSGA-II gồm các bước chính: 1. Begin
2. t = 0;
3. Khởi tạo P(t);
4. Sắp xếp không vượt trội và tính mật độ cho P(t); 5. While (t > gen) do 6. Begin 7. t = t+1; 8. chọn Q(t) từ P(t-1); 9. Q(t)= lai ghép từ Q(t); 10. Q(t) = đột biến từ Q(t); 11. Biến thể = P(t-1) + Q(t);
12. Sắp xếp không vượt trội và tính mật độ cho biến thể; 13. P(t) = chọn N cá thể tốt nhất;
14. End; 15. Lời giải; 16.End.