Professional Documents
Culture Documents
GIẢI THUẬT DI
TRUYỀN(GA)
Con người đã phát triển trí thông minh độc đáo như thế
nào? Tại sao con người đã tiến hóa theo cách mà các loài
linh trưởng khác không thể?
1.2.1. Định nghĩa: là giải thuật tìm kiếm lời giải tối ưu
phỏng sinh học quá trình tiến hóa tự nhiên
1.2.2. Phỏng sinh học quá trình tiến hóa (Nhắc lại):
Chọn lọc tự nhiên (Natural Selection)
Lai ghép (sinh sản) (Crossover)
Đột biến (Mutation)
Cá thể n (số chẵn)
Quần thể
Cá thể n-1
Cá thể 1
Khởi động
quần thể 4 Hội tụ 5
Kết thúc 9
Lai ghép 7 Đột biến 3
Mã hóa 2 Giải mã 8
1.2.3. Sơ đồ thuật toán 1
Begin Chọn lọc 2
Khởi động
Lai ghép Đánh giá
quần thể
3 Sai
Đánh giá Đột biến
Hội tụ
3
Mã hóa Giải mã Đúng
Kết thúc
1 2
1.2.3. Sơ đồ ngữ cảnh
Lời giải
Function =Chon_loc_ti_le ( , )
{ sum = 0;
for = 1:
sum ← sum + ;
← 0;
for = 1:
← + /sum;
for = 0:
{ ← [0, );
= 0;
repeat
← + 1;
until (( ≤ < ) or ( = ))
← ;
}
← ( , , … , );
}
Chọn lọc tỉ lệ: Ví dụ
Cho quần thể có 4 cá thể có độ thích nghi = 1,2,3,4. Vậy
sum = 10
←0
= +( / sum) = 0 + = 0.1
Function =Chon_loc_dau_vong ( , , )
{ for = 1:
{ Chọn ngẫu nhiên nhiễm sắc thể ( < )
← ∗ ; // ∗ là NST có độ thích nghi tốt nhất trong NST
}
← ( , , … , );
}
Chọn lọc cắt:
Chọn mức ngưỡng cắt , ∈ [0,1], chỉ có ∗ cá thể tốt nhất
mới có cơ hội được lựa chọn và xác xuất chọn lựa của các NST
như nhau
.
Input:
- Quần thể gồm các cá thể , = 1, … , , = ( , , … , )
- Hàm thích nghi của từng cá thể , = 1, … ,
- Mức ngưỡng cắt
Output:
- Quần thể mới = ( , , … , )
Function =Chon_loc_cat ( , , )
{ ← Sắp độ thích nghi các NST trong theo thứ tự tăng dần
for = 1:
{ ← [ 1 − ∗ , ];
← ;
}
}
Chọn lọc cắt:
Chọn mức ngưỡng cắt , ∈ [0,1], chỉ có ∗ cá thể tốt nhất
mới có cơ hội được lựa chọn và xác xuất chọn lựa của các NST
như nhau
.
Input:
- Quần thể gồm các cá thể , = 1, … , , = ( , , … , )
- Hàm thích nghi của từng cá thể , = 1, … ,
- Mức ngưỡng cắt
Output:
- Quần thể mới = ( , , … , )
Function =Chon_loc_cat ( , , )
{ ← Sắp độ thích nghi các NST trong theo thứ tự tăng dần
for = 1:
{ ← [ 1 − ∗ , ];
← ;
}
}
Chọn lọc xếp hạng tuyến tính:
Sắp xếp độ thích nghi của NST tăng dần.
Gán hạng cho NST tốt nhất, hạng 1 cho NST xấu nhất.
Xác suất lựa chọn của NST hạng được tính:
1 −1
= +2 1−
−1
Trong đó 0 < < 1. NST xấu nhất có xác xuất chọn =
và tốt nhất có = .
Chọn lọc xếp hạng tuyến tính
Chọn lọc xếp hạng tuyến tính
Chọn lọc xếp hạng lũy thừa:
Sắp xếp độ thích nghi của NST tăng dần. Gán hạng cho
NST tốt nhất, hạng 1 cho NST xấu nhất. Xác suất lựa chọn
của NST có hạng được tính:
= , = 1, … ,
∑
Hoặc
−1
= , = 1, … ,
−1
Trong đó 0 < < 1. NST có hạng cao hơn sẽ có xác xuất
chọn cao hơn. càng lớn (→ 1) xác xuất lựa chọn NST gần
bằng nhau.
Chọn lọc xếp hạng lũy thừa:
Input:
- Quần thể gồm các cá thể , = 1, … , , = ( , , … , )
- Hàm thích nghi của từng cá thể , = 1, … ,
- 0< <1
Output:
- Quần thể mới = ( , , … , )
Function =Chon_loc_xep_hang_tuyen_tinh ( , , )
{ ← Sắp các NST trong theo thứ tự tăng dần của hàm thích
nghi, gán hạng cho mỗi NST
← 0;
for = 1:
{ ←∑ ;
← + ;
}
for = 0:
{ ← [0, );
= 0;
repeat
← + 1;
until (( ≤ < ) or ( = ))
← ;
}
= ( , ,…, );
}
Chọn lọc xếp hạng lũy thừa:
= , = 1, … , 10
∑
1.2.7 Lai ghép
Lai ghép nhằm tạo ra thế hệ sau tốt hơn thế hệ trước bằng
cách kết hợp đặc điểm của hai NST cha mẹ để tạo ra hai
NST con.
Không phải toàn bộ NST được lai ghép, chỉ chọn lai ghép
giữa hai NST cha mẹ với xác suất ngẫu nhiên = 0.8 −
0.9 (thông thường)
Sau khi đã qua bước chọn lọc tự nhiên, phép lai ghép được
thực hiện bằng cách bắt cặp ngẫu nhiên hai NST trong quần
thể để tạo ra hai NST con, mỗi NST con thừa hưởng một
phần của gien bố và gien mẹ.
Các phương pháp lai ghép: Lai ghép một điểm, lai ghép
nhiều điểm và lai ghép đều
Lai ghép một điểm
NST1 0 1 1 0 1 NST1’ 0 1 0 1 0
NST2 1 1 0 1 0 NST2’ 1 1 1 0 1
Lai ghép một điểm
Điểm lai ghép
Cha mẹ 1(A) 4 7 8 4 2 9 5 2 7 2 1
Cha mẹ 2(B) 5 4 2 2 1 8 4 1 9 1 2
Con 1(A’) 4 7 8 4 1 8 4 1 9 1 2
Con 2(B’) 5 4 2 2 2 9 5 2 7 2 1
Lai ghép đa điểm
Cha mẹ 1(A) 4 7 8 4 2 9 5 2 7 2 1
Cha mẹ 2(B) 5 4 2 2 1 8 4 1 9 1 2
Con 1(A’) 4 7 2 2 1 8 5 2 9 1 1
Con 2(B’) 5 4 8 4 2 9 4 1 7 2 2
Lai ghép đều
Cha mẹ 1(A) 4 7 8 4 2 9 5 2 7 2 1
Cha mẹ 2(B) 5 4 2 2 1 8 4 1 9 1 2
Mặt nạ 1(mA) 1 1 1 1 0 0 1 1 0 0 1
Mặt nạ 2(mB) 0 0 0 1 0 1 1 0 0 0 0
Con 1(A’) 4 7 8 4 1 8 5 2 9 1 1
Con 2(B’) 5 4 2 4 1 9 5 1 9 1 2
1.2.8 Đột biến
Quần thể mới có NST thay đổi đa dạng bằng phép
toán đột biến
Thay đổi ngẫu nhiên một hoặc nhiều gien của một
NST
Đột biến xảy ra với xác xuất = 0.01 − 0.1 (tốc
độ đột biến thấp cho trước)
Đột biến nhằm tránh thoát bẩy tối ưu cục bộ
Các phương pháp đột biến: Đột biến một điểm, đột
biến nhiều điểm
Đột biến 1 điểm