Xuất phát ban đầu của thuật toán biến đổi Gen lựa chọn các cá thể không bị nổi trội (NSGA) được Srinivas đưa ra trong [2.17]. Thuật toán này bao gồm 2 thủ tục chính:
• Thứ nhất: Thủ tục lựa chọn xếp loại Pareto, được sử dụng để làm nổi bật các cá thể không bị nổi trội.
• Thứ hai: Thủ tục phân chia giá trị phù hợp được xử dụng để duy trì tính đa dạng của quần thể dân cư.
Quá trình xử lý để chọn lọc một tập hợp dân số có kích thước K để phân biệt các mức độ không bị nổi trội là cần thực hiện O(mK3) phép tính, trong đó m sẽ mất rất nhiều thời gian cần thiết để tìm ra kết quả. Thuật toán 2.5.2 sẽ đưa ra nghiên cứu phương pháp lựa chọn các cá thể không nổi trội O(mK2) phép tính. Có hai giá trị sử dụng để đánh giá tình trạng nổi trội của một giải pháp a là:
ni là số lượng giải pháp nổi trội hơn a
Di là tập hợp các giải pháp a nổi trội hơn.
Việc tính toán hai giá trị này yêu cầu O(mK2) phép so sánh. Tất cả các giải pháp tìm được với ni = 0 là được đưa vào danh sách F1, được gọi là đường cong hiện tại. Với mỗi giải pháp a trong đường cong hiện tại, mỗi một a'j của Di (tức là giải pháp nổi trội của a ) được sửa đổi bằng cách giảm nj của chúng một giá trị bằng 1 cho mỗi lần giảm. Nếu với bất kỳ aj mà nj = 0 thì ta đưa aj này vào danh sách riêng biệt H. Khi tất cả các thành phần của đường cong hiện tại đã được kiểm tra theo điều kiện của nj, thì F1 được coi như đường cong không bị nổi trội đầu tiên, tiếp theo quá trình xử lý sử dụng một đường cong H mới tìm thấy làm đường cong hiện tại. Một chu trình này cần qua O(K) phép tính. Giả sử khi số lượng đường cong lớn nhất là K thì số lượng phép tính của chu trình lặp lại là O(K2). Tổng thể của thuật toán m mục tiêu là cần thực hiện O(mK2) + O(mK2) hay O(mK2) phép tính.
Thuật toán 2.5.2 (Lựa chọn các cá thể không bị nổi trội). Đầu vào: P-Dân cư
Đầu ra: Các đường cong không nổi trội: Fr với r = 1, 2, …., N.
Bước 1: Đặt F1 = O/ với mỗi ai∈P thực hiện. 1) Đặt ni = 0 và Di = O/
2) Với mỗi aj ∈P thực hiện
Nếu ai nổi trội hơn aj thì Di = D1 ∪{aj} Nếu aj nổi trội hơn ai thì ni = ni + 1 3) nếu ni = 0 thì F1 = F1 ∪{ai}
Bước 2:Đặt r = 1;
Khi Fr ≠O/ thực hiện 1) Đặt H ≠O/ ;
2) Với mỗi aj ∈Fr thực hiện a) Nếu nj = nj - 1.
b) Nếu nj = 0 thì H = H ∪{aj}. Đặt r = r +1 và Fr = H;
Hình 2-16: Sơ đồ thuật toán GA kết hợp lựa chọn các cá thể không bị nổi trội
Đột biến (Mutation)
Tái tổ hợp tương ứng với giá trị phù hợp Giao hoán (Crossover)
Bắt đầu
Tập hợp dân số ban đầu gen = 0 Front = 1 Dân số đã được sắp ? Kết thúc gen<max gen gen = gen + 1 Xác định các cá thể không bị nổi trội
Gán các giá trị phù hợp
Phân phối trong đường cong hiện tại (Current
front) Front = front + 1 No Yes No yes
2.5.3.2.2 Toán tử so sánh mật độ các cá thể
Các nghiên cứu cổ điển về việc duy trì tính đa dạng của dân số thường dựa trên khái niệm phân phối giá trị phù hợp, mà yêu cầu phải xác định trước giá trị tham số σphanchia .
Quá trình thực hiện thuật toán biến đổi gen giải bài toán tối ưu đa mục tiêu (MOGA) là rất nhạy cảm với giá trị σphanchia. Để giải quyết khó khăn này, người ta đã đưa ra phương pháp
so sánh mật độ của các giải pháp. Mật độ của một giải pháp được đánh giá bằng khoảng cách giữa giải pháp đó với các giải pháp lân cận theo mỗi hàm mục tiêu. Khoảng cách này được định nghĩa như một khoảng cách đông đúc.
Như đã chỉ ra trong Hình 2.10, khoảng cách đánh giá sự đông đúc của giải pháp thứ i (đặc trưng bởi điểm i) trong đường cong của nó (được đánh dấu bằng các đường cong đứt đoạn) là độ dài cạnh của hình khối bao quanh giải pháp đó.
Hình 2-17: khoảng cách của các thể trong đường cong không bị nổi trôi
Toán tử so sánh sự đông đúc sử dụng 2 tiêu chuẩn để so sánh giữa các giải pháp khác nhau: Phân loại không nổi trội (ri) và khoảng cách đông đúc (di)
Giải pháp ai là được xem tốt hơn aj nếu ri < rj hoặc trong trường hợp ri = rj, di > dj. Phương pháp này nhấn mạnh các giải pháp có loại thấp hơn tức là giải pháp gần với đường cong tối ưu Pareto hơn. Với hai giải pháp nằm trên cùng một đường cong tối ưu Pareto, giải pháp nào có khoảng cách đông đúc dj lớn hơn thì được chọn. Theo cách như
i-1
i+1
Đường cong không bị nổi trội
Hình khốibao quanh f1
vậy, các giải pháp ở khu vực ít dày hơn trong không gian tìm kiếm sẽ có nhiều khả năng được chọn hơn trong quá trình lựa chọn. 2.5.3.2.3 Phương pháp phát triển các cá thể ưu tú
Áp dụng thuyết phát triển các cá thể ưu tú đã được chứng minh là có thể nâng cao việc thực hiện thuật toán biến đổi Gen. Tuy nhiên việc thực hiện phương pháp này trong thuật toán biến đổi Gen giải bài toán tối ưu đa mục tiêu MOGA là tương đối phức tạp. Trong bài toán tối ưu đa mục tiêu, ta sẽ có một tập hợp các cá thể ưu tú thay vì một cá thể tốt nhất trong như đối với bài toán tối ưu một mục tiêu. Tất cả các giải pháp nằm trên đường cong không nổi trội hiện tại là các giải pháp tốt nhất trong tập hợp dân cư bởi vì không có giải pháp nào là có thể nói là tốt hơn giải pháp khác nếu không đưa ra trước các thông tin hướng dẫn cho việc ra quyết định. Như vậy tất cả các giải pháp trên đường cong Pareto là các giải pháp tốt hay gọi là các giải pháp ưu tú. Kích thước tập hợp các giải pháp ưu tú có thể xem xét để so sánh với tập hợp dân số. Trong nhiều trường hợp, tập hợp dân số có thể phần lớn là các giải pháp không bị nổi trội. Điều này sẽ là nguyên nhân dẫn đến hiện tượng hội tụ sớm.
Trong phần này, chúng tôi đề xuất một cơ chế phát triển các cá thể ưu tú và có điều khiển về số lượng và kết hợp sử dụng với thuật toán NSGA-II để tạo thành thuật toán giải bài toán tối ưu qui hoạch mạng. Trong mỗi một đường cong Pareto, ta duy trì một số lượng xác định các cá thể tốt. Theo phân bố hình học các đường cong giải pháp có dạng:
nr = ρ.nr-1 (2.56)
Ở đây, nr là số lượng lớn nhất cho phép các cá thể trong đường cong thứ r và ρ là tỷ lệ rút gọn có giá trị 0 < ρ < 1. Giả sử rằng kích thước giải pháp ưu tú là K và được phân loại và sắp sếp theo lý thuyết nổi trội của Pareto, kết quả là có R đường cong không bị nổi trội. Số lượng giải pháp ưu tú của đường cong thứ r được điều khiển là:
1 . 1 1 − − − = r R r k n ρ ρ ρ (2.57)
Khi ρ < 1, mỗi một đương cong bị giới hạn bởi một hàm mũ ρR, làm giảm số lượng lớn nhất các giải pháp. Sự điều khiển số lượng phát triển các giải pháp ưu tú cho phép các giải pháp thuộc nhiều đương cong khác nhau cùng tồn tại trong tập hợp dân cư làm cho toán tử của GA có khả năng tạo ra sự đa dạng của các giải pháp. Đây là một đặc điểm rất quan trọng để ngăn chặn quá trình hội tụ sớm.
Thuật toán 2.5.3 mô tả thuật toán biến đổi Gen lựa chọn các cá thể ưu tú không bị nổi trội có điều khiển. Thuật toán này dựa trên cấu trúc của thuật toán biến đổi Gen cơ bản
2.5.1. Một số bước như khởi tạo, sinh sản là giống với thuật toán 2.5.1. Tuy nhiên như đã trình bày ở trên, trong thuật toán 2.5.3 có kết hợp sử dụng các kỹ thuật khác nhau như: Lựa chọn cá thể không bị nổi trội, so sánh mật độ (sự đông đúc) và phát triển cá thể ưu tú có điều khiển.
Thuật toán 2.5.3: Lựa chọn, duy trì và phát triển các cá thể ưu tú có điều khiển. Đầu vào:
T: Số lượng thế hệ cho trước, K: Kích thước dân số Pr: Xác suất tái tổ hợp, Pm : Xác suất đột biến.
ρ: Tỷ lệ rút gọn của quá trình phát triển các cá thể ưu tú.
Đầu ra: Các giải pháp không bị nổi trội trong P.
Bước 1: Khởi tạo
Đặt t = 0 và p' =O/ ;
Tạo ra một tập hợp dân số ban đầu p tương tự như Bước 1 của thuật toán 2.5.1.
Tính toán hàm mục tiêu cho từng cá thể.
Bước 2: Lựa chọn các cá thể không bị nổi trội
p = p ∪ p';
Thực hiện bước lựa chọn các cá thể không bị nổi trội tương tự với thuật toán 2.5.2 kết quả là đường cong không bị nổi trội (F1, F2, …,FR).
Bước 3: Phát triển các giải pháp ưu tú có điều khiển
Đặt r = 1 và p = O/ ; trong khi p < k thực hiện: Tính nr theo công thức (2.54)
Lọc, xếp loại Fr theo thứ tự giảm dần sử dụng toán tử so sánh sự đông đúc của các giải pháp.
Đưa nrcá thể đầu tiên của Fr vào p tức là p = p∪Fr [1:nr]; Đặt r= r +1;
Bước 4: Gán giá trị phù hợp
Gán giá trị phù hợp cho mỗi cá thể tương ứng với vị trí của nó ở trong p.
Bước 5: Sinh sản
Tạo ra một kết quả p'từ p tương ứng với Bước 3 trong thuật toán 2.5.1 (với kích thước kết quả là k)
Tính toán mục tiêu cho từng cá thể trong p';
Bước 6: cho t = t + 1;
Nếu t ≥ T hoặc gặp một điều kiện kết thúc khác thì kết thúc thuật toán. Nếu không thực hiện bước 2.