Các chiến lược tiến hoá được phát triển từ 1960 bởi I Rechenberg một cách độc lập với các cơng trình của Holland về GA, Giống như RCGA, ES tìm kiếm giải pháp cho các bài tốn tối ưu thực. Mỗi cá thể trong ES là một cặp véctơ thực (xi, i); i=1,..., . Véc tơ x = (xi) chỉ một lời giải của bài tốn; cịn mỗi i tính phân bố của từng thành phần xi tương ứng.
Giải thuật ES có thể được mơ tả như sau:
B1) Khởi tạo quần thể ban đầu gồm cá thể (xi, i); i=1,..., Thiết lập biến đếm k=1.
B2) Tính độ thích nghi mỗ cá thể (xi, i) dựa trên hàm mục tiêu f(x). B3) Với mỗi cá thể cha mẹ (xi, i), tạo các cá thể con (x’i, ’i) như sau ’i(j) = i(j)exp( ’N(0,1) + Nj(0,1))
x’i(j)=xi(j) + ’i(j)Nj(0,1)
Ở đây xi(j), x’i(j), i(j) và ’i(j) là thành phần thứ j của các véctơ xi, x’i, i và ’i tương ứng. N(0,1) là số ngẫu nhiên trong [0,1], Nj(0,1) là số ngẫu nhiên trong [0,1] ứng với mỗi j. Các tham số ’ và thường được chọn là
1 ) 2
( n và ( 2n) 1. Số các cá thể con được tạo ra là . B4) Tính độ thích nghi mỗ cá thể vừa tạo.
B5) Chọn trong cá thể trong quần thể gồm cả cha mẹ và các con vừa tạo để làm cha mẹ cho lần tạo sinh kế tiếp.
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 33 lại bước 3.
Toán tử chọn lọc tạo sinh của ES thường có các dạng sau:
( + ) ES : cá thế cha mẹ sinh ra cá thể con, sau đó từ quần thể là hợp của cha mẹ với các con vừa sinh ( + cá thể) chọn cá thể tổt nhất cho lần tạo sinh tiếp theo.
( , ) ES : cá thể cha mẹ sinh ra cá thể con ( >= ), sau đó từ các con vừa sinh ( cá thể) chọn cả thể tốt nhất cho lần tạo sinh tiếp theo.
Giải thuật sử dụng trong luận văn này là (1 + l)ES được mô tả như sau: Trong ES, mỗi cá thể biểu diễn bởi một véc tơ 2n chiều như là sự kết hợp của hai véc tơ.
b = (x1, x2, ... , xn, t1, ..., tn )
trong đó (x1, x2, ... , xn) tương ứng một lời giải còn (t1, t2,..., tn) là độ lệch của véc tơ trong toán từ đột biến. Các toán tử tái tổ họp của ES cũng tương tự như RCGA, song ờ đây tốn tử đột biến đóng vai trị trung tâm.
Sinh ngẫu nhiên P = {x1,..., xm } R2n; //Khởi tạo quần thể ban đầu FOR dem = l TO so_lan_lap DO
Begin
y = Select(xi) //Chọn ngẫu nhiên cà thể cha mẹ
v = random(0, n); //Chọn ngẫu nhiên gen đột biến
y[n+v] = y[n+v] + exp(t1*r + t2*r1);
y[v] = y[v] + r1*y[n+v]; //Sinh cả thể con IF Fitness(y) < Fitness(xi) THEN
xi = y; // thay xi bởì y nếu y tốt hơn End;
ở đây ( 2 ) 1
1 n
t và ( 2 ) 1
2 n
t ; r và r1 là các số ngẫu nhiên trên [0,1]. Q trình tiến hố thực hiện lặp 500 lần cho mỗi lần chạy. Hàm Fitness được lấy là hàm mục tiêu của bài tốn.
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/ 34