You are on page 1of 51

CHƯƠNG 2.

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

Quần thể mới


Cá thể 2
Mã hóa nhị phân
Cá thể
0 0…1 0 vvvvvvvvvv
vvvvvvvvvv 1 1…0 0…1 1…1 0
vvvvvvvvvv (Nhiễm sắc
  thể)
đoạn đoạn … đoạn
gien 1 gien 2 gien m
Nhiễm sắc thể
Ký tự biễu diễn gien
Quần thể
* 0…1 0 1 1…0 0…1 1…1 0
Ký tự đại diện biễu diễn gien 0 hoặc 1
Chú ý chiều dài chuỗi và các ký tự trong chuỗi
Chuỗi con trong không gian tìm kiếm chứa các chuỗi có
chiều dài 10
* 1 1 1100 1 00
Khớp với hai chuỗi con sau
0 1 1 1 1 0 0 1 0 0 hoặc 1 1 1 1 1 0 0 1 0 0
Chuỗi con sau khớp với bao nhiêu chuỗi khác
* 1 * 1100 1 00
Còn chuỗi này? * * * * * * * * * *
1.2.3. Sơ đồ thuật toán
Sắp xếp hợp lý theo thứ tự:1 ... 9

Begin 1 Chọn lọc 6

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

Mã hóa Tính độ thích


nghi
Hàm thích nghi Tìm
Bài toán Đột Chọn
nghiệm
Phép toán di biến lọc
truyền tối ưu

Tri thức Lai ghép


1.2.3. Sơ đồ ngữ cảnh
→ Lời giải
∀ = …

Mã hóa Tính độ thích


nghi
Hàm thích
nghi Tìm
Bài toán Đột Chọn
nghiệm
Phép toán di biến lọc
truyền tối ưu

Tri thức Lai ghép


1.2.4. Mã hóa (Biểu diễn các cá thể):
Ánh xạ tham số của bài toán lên một chuỗi có chiều
dài xác định, dùng:
• Nhị phân:
• Thâp phân
• Số thực
- Mã hóa nhị phân (đơn giản và thường dùng):
 Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0
và 1, ý nghĩa của các bit này phụ thuộc vào bài toán cụ
thể.
 Ví dụ trong bài toán đi du lịch: có n thành phố với
khoảng cách và chi phí cho trước và một người tìm
lịch trình du lịch. Hãy chọn ra các thành phố phải đi
để đưa vào lịch trình sao cho tổng chi phí trong lịch
trình là bé nhất? (các thành phố chỉ đi qua 1 lần)
 Quần thể thành phố có n cá thể, mỗi cá thể được biểu
diễn bằng một chuỗi nhị phân độ dài n. Trong đó, bit
thứ i bằng 1 có nghĩa là thành phố thứ i được cho vào
lịch trình, bằng 0 thì không chọn
- Mã hóa nhị phân:
 Ký hiệu các thành phố là các biến:
, ,…, =01 .
 Mỗi cá thể (chuỗi gien) được mã hóa thành
danh sách hoán vị của , … , biểu diễn lộ
trình mà người đó sẽ đi qua. Ví dụ , , , …
sẽ là biểu diễn hành trình từ → → →...
 Không gian tìm kiếm chứa các tổ hợp của các
chuỗi con
 Cần giải mã để trả về thông số ban đầu của bài
toán
- Mã hóa và giải mã chuỗi gien:
 Biến ∈ [ , ], = 1, … , cần mã hóa
thành đoạn gien có độ dài ,

= log

độ chính xác mong muốn


 Đoạn gien = , ,…, , , , , ,
được giải mã thành:

= + 2 ,
2 −1
- Mã hóa và giải mã chuỗi gien:
 Ví dụ:
Miền tìm kiếm giá trị của biến ∈
[ , ], = −2.5, = 3.0, tìm độ dài chuỗi
nhị phân biểu diễn với độ chính xác là =
0.1.
Giải:
3.0 − (−2.5)
= log = 5.78
0.1
Chọn = 6.
- Mã hóa và giải mã chuỗi gien:
 Hãy biểu diễn giá trị:
) = −2.5, b) = 3.0
 Trả lời:
a) = 000000 , b) = (111111)
 Mã hóa chuỗi gien sau = (001011)
. .
 Trả lời:= −2.5 + ×
(2 × 0 + 2 × 0 + 2 × 1 + 2 × 0 + 2 × 1
+ 2 × 1)
=−1.5397
1.2.4. Mã hóa
Mã hóa thập phân (ký tự 0-9)
Cá thể
2 1…9 0 vvvvvvvvvv
vvvvvvvvvv 6 7…7 0…1 5…8 0
vvvvvvvvvv (Nhiễm sắc
  thể)
đoạn đoạn … đoạn
gien 1 gien 2 gien m
Nhiễm sắc thể
0-4: dấu –
Gien biễu diễn dấu
5-9: dấu + Quần thể
Lưu vị trí dấu chấm thập phân
Ví dụ: Cho biến:
= −231.0978
• Mã hóa biến dùng 6 ký tự thập phân:
= (0231097)
Vị trí dấu chấm thập phân: 3 Ký tự dấu
Ví dụ: Giải mã chuỗi gien có 5 ký tự thập phân, vị
trí dấu thập phân là 2:
= (553109)
Ta có:
= 53.109 Ký tự dấu
1.2.5 Hàm thích nghi
 Hàm thích nghi dùng để đánh giá các cá thể. Cá thể
nào có độ thích nghi tốt hơn sẽ có xác suất được chọn
lọc cao hơn và có nhiều cơ hội để lai ghép hơn.
 Hàm thích nghi (fitness ) nhận được từ các hàm mục
tiêu (hàm chi phí) cần cực tiểu hoặc cực đại
 Hàm thích nghi tổng quát trong bài toán cực đại hàm
chi phí ( ): fitness = +
 Hàm thích nghi tổng quát trong bài toán cực tiểu hàm
chi phí ( ): fitness =
 Ví dụ: Trong điều khiển, hàm thích nghi là tích phân
tổng sai toàn phương trong khoảng thời gian nào đó.
1.2.6 Chọn lọc
Cá thể có độ thích nghi càng cao thì xác suất lựa
chọn càng lớn
Ví dụ: Một quần thể có 4 cá thể với NST:
01101; 11000; 01000; 10011 .
Hàm thích
nghi của các cá
thể cho xác suất
lựa chọn như
hình vẽ.

Quần thể mới sẽ chứa cá thể 1, 2, 4 và một nhân


bản của cá thể 2 (sản sinh). Cá thể 3 bị chết.
Các phương pháp chọn lọc
 Chọn lọc tỉ lệ
 Chọn lọc đấu vòng
 Chọn lọc cắt
 Chọn lọc sắp hạng tuyến tính
 Chọn lọc sắp hạng lũy thừa
Chọn lọc tỉ lệ
Input:
- Quần thể gồm các cá thể , = 1, … , , = ( , , … , )
- Hàm thích nghi của từng cá thể , = 1, … ,
Output:
- Quần thể mớ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

 = +( / sum) = 0.1 + = 0.3

 = +( / sum) = 0.3 + = 0.6

 = +( / sum) = 0.6 + = 1.0


 Cho ngẫu nhiên ∈ [0,1]
if < 0.1 chọn 1
else if < 0.3 chọn 2 // 0.3 − 0.1 = 0.2
else if < 0.6 chọn 3// 0.6 − 0.3 = 0.3
else if <1.0 chọn 4 // 1.0 − 0.6 = 0.4
Chọn lọc đấu vòng:
Chọn M cá thể ngẫu nhiên. NST nào có độ thích nghi tốt nhất
trong M cá thể sẽ được chọn. Lặp lại N lần bước này để chọn đủ
cá thể.
Input:
- Quần thể gồm các cá thể , = 1, … , , = ( , , … , )
- Hàm thích nghi của từng cá thể , = 1, … ,
- Số cá thể được chọn trọng một đợt M
Output:
- Quần thể mới = ( , , … , )

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

Điểm lai ghép

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

Đ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 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

Điểm đột biến

Trước đột biến 1 0 0 0 1 1 0 1 1 0 1

Sau đột biến 1 0 0 0 0 1 0 1 1 0 1


Đột biến 1 điểm

Điểm đột biến

Trước đột biến 4 7 8 4 2 9 5 2 7 2 1

Sau đột biến 4 7 8 4 9 9 5 2 7 2 1


Đột biến nhiều điểm

Điểm đột biến

Trước đột biến 4 7 8 4 2 9 5 2 7 2 1

Sau đột biến 4 4 8 4 9 9 5 2 7 5 1


2
Ví dụ: Tìm cực trị của hàm mục tiêu y  f ( x)  x
trong khoảng x  [0 31]

Giải mã: α = + 2 ,
2 −1

You might also like