EVOLUTION ALGORITHM (EA)
Lê Phi Trường Nguyễn Đức Tú Nguyễn Tôn Thất Tú
Nguyễn Quốc Tuấn Nguyễn Ngọc Tuyên Đặng Minh Úc
Dương Hoàng Việt Mai Quốc Việt
1
NỘI DUNG TRÌNH BÀY
Đặt bài toán
Lược đồ tổng quát của EA
Các nguyên lý cơ bản trong EA
Biểu diễn gen (Cấu trúc dữ liệu)
Lựa chọn độ fitness (Độ đo sự thích nghi)
Các quy tắc chọn lọc
Các quy tắc lai ghép
Các quy tắc đột biến
2
GIẢI THUẬT TIẾN HÓA
Thuật toán tiến hóa dựa trên lý thuyết tiến hóa của Darwin bằng cách mô
phỏng các quá trình tiến hóa và cơ chế sinh học để giải quyết vấn đề.
Thuật toán thông qua sinh sản, đột biến, lựa chọn để giải quyết vấn đề tối
ưu hóa.
3
ĐẶT BÀI TOÁN
4
ĐẶT BÀI TOÁN
Xét bài toán tối ưu không ràng buộc sau:
,
›
Bài toán có nghĩa là tìm một giá trị sao
cho f có giá trị lớn nhất
Đồ thị hàm số
5
ĐẶT BÀI TOÁN
Khi đạo hàm bậc nhất bằng 0, nghĩa là:
Phương trình trên có vô số lời giải
Trong đó các số hạng là các dãy số thực giảm dần về 0 ( và )
6
ĐẶT BÀI TOÁN
Biểu diễn:
Ta sử dụng một vectơ nhị phân làm nhiễm sắc thể để biểu diễn các giá trị thực của
biến x. Chiều dài vectơ phụ thuộc vào độ chính xác cần có. Trong ví dụ này, ta cần
chính xác đến 6 số lẻ tức có nghĩa, ta cần có 3 x 106 khoảng có kích thước bằng
nhau.
Ta cần 22 bit để biểu diễn cho một nhiễm sắc thể
2097152 = 221 < 3 x 106 < 222 = 4194304
Chuyển đổi từ chuỗi nhị phân <<b21b20…b0>> thành số thực:
với
Đây cũng chính là hàm định giá
7
ĐẶT BÀI TOÁN
Khởi tạo quần thể:
Ta tạo một quần thể các nhiễm sắc thể, trong đó mỗi
nhiễm sắc thể là một vectơ nhị phân 22 bit, tất cả 22 bit
của mỗi nhiểm sắc thể đều được khởi tạo ngẫu nhiên.
Hàm lượng giá: là hàm f(x)
Đột biến và lai:
Đột biến:
Lai ghép:
8
ĐẶT BÀI TOÁN
Các tham số
Pop_size = 50
Xác suất pc = 0.25
Xác suất pm = 0.01
Kết quả
Vmax = (111001101000100000101)
ứng với xmax = 1.850773
Thế hệ thứ Hàm lượng giá
1 1.441942
6 2.250003
8 2.250283
9 2.250284
10 2.250363
12 2.328077
39 2.344251
40 2.345087
51 2.738930
99 2.849246
137 2.850217
145 2.850227
9
LƯỢC ĐỒ THUẬT TOÁN
10
LƯỢC ĐỒ THUẬT TOÁN
BẮT ĐẦU
PHÁT SINH QUẦN
THỂ BAN ĐẦU
XÁC ĐỊNH ĐỘ THÍCH
NGHI CỦA CÁ THỂ
TRONG QUẦN THỂ
CÓ CÁ THỂ NÀO ĐẠT ĐẾN
LỜI GIẢI TỐI ƯU CHƯA?
TRÌNH BÀY
LỜI GIẢI
CHỌN LỌC
LAI GHÉP
XÂY DỰNG
QUẦN THỂ MỚI
ĐỘT BIẾN
Yes
No
11
LƯỢC ĐỒ THUẬT TOÁN
Bước 1: Khởi tạo một quẩn thể ban đầu (các đáp án ban đầu của bài toán).
Bước 2: Xác định giá trị hàm mục tiêu (fitness) cho mỗi cá thể trong quần thể.
Bước 3: Tạo ra quần thể mới bằng cách lai ghép chéo (crossover) từ các cá thể hiện tại có chọn lọc
(selection), đồng thời tạo ra các đột biến (mutation) trong quần thể mới theo một xác xuất nhất định.
Bước 4. Các cá thể trong quần thể mới sinh ra được thay thế cho các cá thể trong quần thể cũ
Bước 5. Nếu điều kiện dừng thỏa mãn thì giải thuật dừng lại và trả về cá thể tốt nhất cùng với giá trị
hàm mục tiêu của nó, nếu không thì quay lại bước 2
12
BIỄU DIỄN GEN
Để thực hiện được các bước của giải thuật di truyền như đã nêu trên, thao
tác quan trọng nhất là lựa chọn cấu trúc dữ liệu (CTDL) phù hợp. Để giải
quyết bài toán dùng giải thuật di truyền, ta thường sử dụng 3 cấu trúc dữ
liệu sau:
Chuỗi nhị phân,
Chuỗi số thực
Cấu trúc cây.
13
CHỌN LỌC
SELECTION
14
CHỌN LỌC
Là quá trình chọn ra một hoặc một vài cá thể để:
Giữ lại trong quần thể mới (tái sinh quần thể)
Lai ghép
Đột biến
Khó khăn trong chọn lọc:
Vấn đề hội tụ sớm
Nguyên nhân:
Áp lực chọn lọc
Tính đa dạng của quần thể
Giải pháp:
Nghiên cứu về cơ chế tạo mẫu
Nghiên cứu về bản chất hàm mục tiêu
15
PHƯƠNG PHÁP TẠO MẪU
16
TRUNCATION SELECTION
Đặc tính:
Là phương pháp đơn giản nhất
Dùng đối với quần thể cá thể lớn
Mã Giả:
TRS_code{
1. Sếp theo thứ tự giảm dần theo độ thích nghi các phần tử trong P(t)
2. Chọn p phần trăm các phần tử được giữ lại (trong khoảng 10% -50%)
3. sp=[n*p] (n là số cá thể của quần thể)
4. Chọn sp cá thể đầu.
}
17
ROULETTE WHEEL SELECTION
Gọi p(i) là xác xuất cá thể i được chọn, f(i) là độ thích nghi của i, n là số cá thể của quần thể (pop_size)
Có: p(i) =
RWS_code{
Tính tổng S=
Với mỗi cá thể 1≤ i ≤ n do {
-
Sinh số random x ϵ [0,S];
-
iSum=0; j=0
Do{
- iSum← iSum+ f(j);
- j ← j+1;
} while (iSum < x and j<n)
}
}
18
ROULETTE WHEEL SELECTION
Number of individual 1 2 3 4 5 6 7 8 9 10 11
fitness value 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0
selection probability 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02 0.0
19
LINEAR RANK SELECTION
Với P(i) =
Rank(i) được sắp xếp theo thứ tự giảm dần của độ thích nghi của cá thể, thích nghi tốt nhất rank(x) = n, thích nghi tồi nhất
rank(k)=1
LRS_code{
Xếp hạng các cá thể trong quần thể theo sự giảm của giá trị thích nghi, giá trị rank(worst) =n, rank(best) =1 (n = pop_size)
S(0) =0; p(i) = ; với a chọn thỏa dk: 1≤ a ≤ 2 và b = 2-a
For i =0 to n do {
S(i) = S(i-1)p(i) ;
}
-
For j = 0 to k do { // k là số cá thể cần chọn sau mỗi phép chọn
r = random(0, S(n))
chọn cái thể i sao cho S(i-1) <= r <= S(i);
j++;
}
}
20
EXPONENTIAL RANK SELECTION
21
TOURAMENT SELECTION
Là phương pháp thuộc kiểu rank-base
Nội dung:
-
Chọn một nhóm gồm t cá thể
-
Trong t cá thể này chọn cá thể tốt nhất
-
Lắp lại quá trình k lần để lấy k cá thể tốt nhất
22
LAI GHÉP
CROSSOVER
23
LAI GHÉP
Là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể
cha–mẹ , bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều)
nhiễm sắc thể cha mẹ với nhau.
Có 3 loại phép lai:
Lai ghép điểm đơn
Lai ghép điểm kép
Lai ghép đồng nhất
Toán tử lai ghép tạo ra hai con từ hai chuỗi cha bằng cách sao chép các bit
được chọn lựa từ mỗi cha. Bit ở vị trí i trong mỗi con được sao chép từ bit ở
vị trí i của một trong hai cha. Chọn lựa cha nào phân phối bit cho vị trí i
được quyết định bởi thêm vào một chuỗi mặt nạ lai ghép.
24
LAI GHÉP
25