Thuật toán NSGA, NSGA2

Một phần của tài liệu Giải thuật di truyền cho bài toán đa mục tiêu (Trang 30 - 35)

2.2.4.1. Thuật toán NSGA

Thuật toán NSGA được đề nghị bởi Srinivas và Deb [10]. Hướng tiếp cận của thuật toán này là phân quần thể lớn thành nhiều quần thể con bằng cách sắp xếp các lời giải không bị trội. Tức là, lấy trong quần thể lớn N/p phần tử không bị trội với tất cả các cá thể còn lại, xếp vào nhóm 1. Sau đó tiếp tục lấy như trên và xếp vào các nhóm tiếp theo cho đến khi lấy hết cá thể trong quần thể. Vì vậy ta sẽ có p quần thể con và quần thể con đầu tiên (nhóm 1) sẽ là quần thể không bị trội(tốt nhất) hiện tại [2,10].

a. Biên chứa các nghiệm không trội và thứ hạng.

Để gán độ thích nghi của các cá thể trong quần thể ta thường gán cho các cá thể các thứ hạng tương ứng bằng cách đưa các xếp cá thể phù hợp vào các biên chứa các nghiệm không trội[2,10].

Hình 2.4:Minh họa biên chứa các nghiệm không trội và thứ hạng tƣơng ứng

Tính chất:

i. Nghiệm hay cá thể nào nằm trên biên thứ nhất R1 thì có độ thích nghi cao nhất và tất cả các nghiệm này được gán là hạng thứ 1.

ii. Tất cả các nghiệm nằm trên cùng một biên chứa các nghiệm không trội thì có cùng độ thích nghi và chúng có cùng thứ hạng.

b. Kí hiệu và thuật toán NSGA:

Các kí hiệu :

nu : Số nghiệm trội hơn nghiệm u Su : Tập nghiệm trội bởi nghiệm u P : Quần thể ban đầu.

Fj : Biên chứa các nghiệm không trội thứ j, j =1,…,R

Thuật toán NSGA Begin

Khởi tạo quần thể

Tính toán các giá trị mục tiêu

Gán hạng cho các biên chứa nghiệm không trội Gán giá trị fitness

Foreach u in P

If (u trội hơn v) then

Su =Su U { v }

Elseif (v trội hơn u) then

nu = nu + 1

Foreach u in P

If (nu= 0) then

Giữ u trong biên chứa các nghiệm không trội thứ nhất

Else Begin j = 1 While (Fj ≠ ∅) do Begin Q = ∅ Foreach u inFj Foreach v in Su If (nv = 0) then Q = Q U { v } j = j + 1 Fj = Q End End End

2.2.4.2. Thuật toán NSGA2

Thuật giải này là một phiên bản cải tiến t NSGA. Trong phiên bản này, mỗi lời giải phải xác định xem có bao nhiêu lời giải trội hơn và tập các lời giải trội hơn đó. NSGA2 sẽ ước tính mật độ của các lời giải xung quanh một lời giải cụ thể trong quần thể bằng cách tính khoảng cách trung bình giữa hai điểm theo mỗi mục tiêu của bài toán. Khoảng cách này gọi là khoảng cách quy tụ (crowding distance) [1,3].

Các bước thuật toán được mô tả chi tiết trong bài báo A fast and elitist multi-objective genetic algorithm: NSGA-II của Aravind Seshadri [3].

Các kí hiệu và thuật toán trong thuật toán NSGA2 cải tiến t thuật toán NSGA

Các kí hiệu:

Pt Quần thể cha.

Qt Quần thể con tạo thành t các cá thể trong Pt

Fj Biên chứa các nghiện không trội thứ j, {j=1,…,R}

N Số lượng cá thể trong quần thể Pt Thuật toán NSGA2

Begin

Tạo ngẫu nhiên quần thể cha P0

t = 0

Foreach x in P

Áp dụng phép lai ghép và đột biến tạo quần thể con Q0 Repeat

Rt = Pt U Qt

Nhận diện các biên chứa các nghiệm không trội F1,F2,…,Fktrong Rt For i:=1 to k do

Begin

Tính khoảng cách quy tụ của các nghiệm trong Fi

If (| Pt+1|+| Fi | ≤ N) then

Pt+1 = PtU Fi

Else

bổ sung N - | Pt+1| nghiệm vào Pt+1 End

Lựa chọn các cá thể cha t quần thể Pt+1

Áp dụng phép lai ghép và đột biến Qt+1

t:=t+1

Until (điều kiện d ng thỏa mãn)

End

2.2.4.3. Khoảng cách quy tụ - Crowding Distance

Định nghĩa : Khoảng cách quy tụ của cá thể hay nghiệm x nằm trên một biên là chiều dài trung bình các cạnh của một hình hộp [1,3].

Hình 2.5: Minh họa khoảng cách quy tụ quanh nghiệm i

Tính chất [1,3]:

a. Cho 2 nghiệm x và y, nghiệm x được thích hơn nghiệm y nếu Rs < Ry hoặc (Rs = Ry và ds > dy )

Trong đó: Rs , Ry là các biên thứ x và thứ y và ds và dy là khoảng cách quy tụ của nghiệm x và y tương ứng.

b. Giữa 2 nghiệm không trội nếu nghiệm có thứ hạn thấp hơn thì nghiệm đó được ưu tiên lựa chọn hơn nghiệm còn lại.

Hình 2.6: Minh họa các biên và thứ hạng

Khi 2 nghiệm không trội có cùng thứ hạng nghĩa là 2 nghiệm này nằm trên cùng một biên, nghiệm nào nằm trong vùng có sự quy tụ thấp nhất thì sẽ được ưu tiên lựa chọn hơn nghiệm còn lại.

Hình 2.7: Minh họa sự quy tụ của các nghiệm quanh một nghiệm

Một phần của tài liệu Giải thuật di truyền cho bài toán đa mục tiêu (Trang 30 - 35)