Ví dụ về quần thể gồm 4 cá thể STT Chuỗi Sức

Một phần của tài liệu kết hợp một số phương pháp heuristic giải bài toán tối ưu đa mục tiêu (Trang 25 - 30)

STT Chuỗi Sức khoẻ Tỷ lệ % Tổng chạy 1 2 3 4 13 24 8 19 169 576 64 361 14.4 49.2 5.5 30.9 169 745 809 1170 Tổng 1170 100.0

Các bước tiến hành thủ tục quay Roulette :

- Đánh số các cá thể trong quần thể. Tính tổng độ phù hợp của toàn quần thể sumfitness, và ứng với mỗi cá thể tính một tổng chạy subtotal bằng tổng độ phù hợp của cá thể đó với độ phù hợp của các cá thể đứng phía trước.

- Sinh một số ngẫu nhiên r trong khoảng từ 0 đến tổng độ phù hợp sumfitness.

- Cá thể đầu tiên trong quần thể có tổng chạy subtotal lớn hơn hoặc bằng r sẽ được chọn.

1.1, với số ngẫu nhiên r = 654 thì chuỗi thứ 2 sẽ được chọn.

Trên thực tế, người ta thường sử dụng tốn tử chọn lọc tỷ lệ được mơ tả như sau:

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 26 r := random[0,1];

i := 1;

WHILE (i<m and m

j jti i j jt b f b f r 1 : , 1 : , ) ( ) ( ) DO i := i+1; Select(bi,t);

Ngồi ra RCGA cịn sử dụng các dạng khác như: chọn lọc xếp hạng hay chọn lọc cạnh tranh.

b. Toán tử lai ghép

GA mã hoá số thực cũng áp dụng các toán tử lai ghép như GA cổ điển bao gồm lai ghép 1 điểm, lai ghép nhiều điểm, lai ghép mặt nạ. Ngồi ra, do cách mã hóa quần thể, người ta còn nghiên cứu và đề xuất nhiều dạng khác nhau của toán tử lai ghép trong RCGA. Dưới đây là một số dạng toán tử lai ghép thường dùng với giả thiết cặp cá thể cha mẹ đã chọn để tiến hành lai ghép là X (x1,x2,...,xm)và Y (y1,y2,...,ym).

+ Lai số học (Arithmetic Crossover)

Phép lai này chọn một số thực a (0<a<1); các con X' và Y' được tính bởi: x'i = a*xi + (1-a)*yi ;

y'i = a*yi + (1-a)*xi

+ Lai ghép Heuristic

Giả sử với cặp bố mẹ (X, Y) đã chọn, trong đó cá thể X có độ thích nghi (giá trị hàm mục tiêu) tốt hơn cá thể Y thì tốn tử này tạo một con duy nhất X' từ cặp X, Y bởi:

x'i = *(xi - yi) + xi với 0 < < 1 + Lai đơn giản

Phép lai này tương tự như lai 1 điểm của GA kinh điển. Với một vị trí k chọn ngẫu nhiên (1 < k < n); các cá thể con được sinh ra như sau :

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 27

+ Lai ghép mặt nạ

Phép lai này khởi tạo một véc tơ ngẫu nhiên r = (r1, r2, ..., rn ) trong đó các ri chỉ là 0 hay 1. Sau đó cá thể con được sinh ra như sau :

c1 = (z1, z2, ... , zn ) trong đó zi = xi nếu ri = 1 và zi = yi nếu ri = 0

Các thể con c2 được tính ngược lại + Lai ghép BLX- (Blend Crossover)

Ký hiệu cặp nhiễm sắc thể đã chọn lai ghép là

X = (x1, ... , xk , xk+1 , ... , xn ) và Y = (y1, ... , yk , yk+1 , ... , yn ) Với các ký hiệu cá thể cha mẹ chọn lai ghép như trên, đặt

I = max(xi , yi ) - min(xi , yi ) với mỗi i,

Khi đó thành phần thứ i của cá thể con tạo ra là một số ngẫu nhiên chọn trong khoảng [min(xi , yi ) – I* , max(xi , yi ) + I* ]

Toán tử BLX- đã được thử nghiệm và chứng minh tính hiệu quả của nó, giá trị tốt nhất là 0.5

+ Lai ghép SBX (Simulated Binary Crossover)

Toán tử SBX là toán tử lai ghép áp dụng cho giải thuật di truyền mã hóa số thực (RCGA), tạo hai cá thể con từ một cặp cá thể cha mẹ đã chọn. SBX được Deb và Agrawal giới thiệu năm 1995 và đã được chọn làm toán tử tạo sinh cơ bản trong nhiều nghiên cứu khác.

Giải thuật được trình bày chi tiết như sau:

Giả sử x = (x1, x2 , ... xn) và y = (y1, y2 , ..., yn) là hai cá thể cha mẹ đã chọn để tạo sinh. Khi đó hai cá thể con c1

= (c11, ... , c1n) và c2 = (c21, ... , c2n ) được sinh ra theo công thức:

d1 d2 d1 d1 d2 d2 Parent 2 Parent 1 Hình 2.1. BLX- trƣờng hợp 2 chiều

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 28

c1i = 0.5*((1 + ) * xi + (1 - ) * yi) (2.1)

c2i = 0.5*((1 - ) * xi + (1 + ) * yi) (2.2) trong đó được tính bởi cơng thức:

otherwise u u if u 1 1 1 1 ) ) 1 ( * 2 1 ( 5 . 0 ) * 2 ( (2.3)

với u là số ngẫu nhiên trong [0, 1]; là tham số điều khiển. Tốn tử SBX có thể mơ tả vắn tắt là:

Bước 1. Chọn ngẫu nhiên số thực u [0, 1]. Bước 2. Tính theo cơng thức (2.3).

Bước 3. Tính các con c1

và c2 theo công thức (2.1) và (2.2).

Lưu ý là có thể tính các thành phần của cá thể con với cùng một giá trị hoặc với mỗi i, tính ứng với thành phần thứ i một cách độc lập.

Từ các công thức (2.1) và (2.2), ta thấy ngay khoảng cách mỗi thành phần của các cá thể con sinh ra tỷ lệ với khoảng cách tương ứng của cha mẹ chúng. Thật vậy trừ theo từng vế (2.1) và (2.2) ta được:

c1i – c2i = *(xi – yi)

Kết quả này rất quan trọng vì ở đây chúng ta quan tâm đến việc cá thể con sinh ra gần hay xa nhau nhằm đảm bảo tính đa dạng của quần thể. Giá trị ở đây được tính theo tham số điều khiển , ví dụ với = 2 thì khoảng 99% tỷ lệ [0.215,4.64]. Chẳng hạn với cặp cha mẹ là x=2 và y=5, với =5 thì có con là 1.464, cịn với =2 thì có con là 1.911 so với một cha mẹ là x=2 (với cùng một số ngẫu nhiên u).

Như vậy tốn tử SBX có hai tính chất quan trọng:

i) Phạm vi các cá thể con sinh ra tỷ lệ với cha mẹ chúng theo hệ số . ii) Các con gần với cha mẹ có khuynh hướng được chọn nhiều hơn các con ở xa cha mẹ.

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 29

Việc điều chỉnh tham số khoảng cách này làm cho giải thuật mềm dẻo, tăng tính đa dạng của quần thể và tỏ ra hiệu quả hơn các giải thuật kinh điển trong hầu hết các thử nghiệm. Hơn nữa, khi đưa các dạng khác nhau của toán tử về cùng một biểu thức tốn học sẽ làm cho việc phân tích cũng như thiết kế chương trình thuận lợi và dễ dàng.

c. Toán tử đột biến

Toán tử đột biến trong RCGA được giới thiệu đa dạng hơn trong GA cổ điển. Sau đây sẽ giới thiệu một số dạng điển hình:

Đột biến đều: Với một gen i được chọn ngẫu nhiên để đột biến từ cá thể

),..., ,..., ,

(x1 x2 xN

b , thành phần xi được thay thế bởi một số ngẫu nhiên trong khoảng xác định li,ui của xi.

Đột biến biên: Từ cá thể cha đã chọn đột biến x và vị trí chọn đột biến

k, thành phần thứ k (xk) của x được thay bởi lk hay uk trong đó [lk , uk] là khoảng xác định của xk. Trong những bài tốn mà biên của các biến khơng lớn và giải pháp cần tìm nằm gần biên thì phép đột biến này tỏ ra rất hữu ích.

Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 30

Đột biến không đều:

Giả sử tmax là một số cực đại định nghĩa trước, thành phần xi được thay thế bởi một trong 2 giá trị tính theo các cơng thức sau :

x’i = xi + (t, bi – xi) x”i = xi - (t, xi – ai)

Việc chọn giá trị nào được tiến hành tuỳ theo giá trị ngẫu nhiên khởi tạo với xác suất 1/2. Biến ngẫu nhiên (t, x) xác định một bước đột biến trong khoảng [0, x] theo công thức sau :

)1 1 ( max ) 1 .( ) , ( t t x x t

Trong công thức này, thường là số ngẫu nhiên phân bố đều trong khoảng đơn vị. Tham số xác định ảnh hưởng của lần tạo sinh thứ t trên phân bố của đột biến trong miền [0, x].

Một phần của tài liệu kết hợp một số phương pháp heuristic giải bài toán tối ưu đa mục tiêu (Trang 25 - 30)

Tải bản đầy đủ (PDF)

(58 trang)