8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
1/41
1/23
Chương 3. Gii bi ton ti ưu theophương php di truyn
Ngưi son: TS. Đ Văn Tuân
H Ni, 2016
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
2/41
3.2. Biu din vec tơ nh phân
2/23
Sử dụng véctơ nhị phân có đ dài như mt NST đểbiểu diễn giá trị thực của biến [lx, ux].
Đ dài của NST phụ thuc vào yêu cầu cụ thể của bàitoán.
Mi gi trị nguyên trong khong [0, 2n -1] sẽ được ánh x
lên giá trị thực thuc min [lx,ux].
Tỷ lệ co giãn của ánh x được tính như sau:
x = lx+ decimal(NST) * g
−Trong đ, decimal(NST) l gi trị thp phân của dy bt
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
3/41
3/23
Tìm cực tiểu mt hàm k biến f(x 1,…,x
k ): Rk R. Gi sử:
Gi trị biến x i thuc min Di =[ai , bi ] R
Hm f(x 1,…,x k ) > 0
Cần ti ưu hoá hàm f với đ chính xác 6 ch s dâu phyđi với gi trị của k biến.
Để đt được đ chính xác như vy, mi min Di được phân
cắt thành (bi – ai )* 106 min con bằng nhau. Gọi mi là snguyên nhỏ nhât thỏa:
()10 ≤ 2 1
V d
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
4/41
4/23
Như vậy, mỗi biến xi được biểu diễn bằng một chuỗi nhị phân có
chiều dài mi. Biểu diễn như trên, rõ ràng thoả mãn điều kiện về độ
chính xác yêu cầu. Công thức sau tính giá trị thập phân của mỗi
chuỗi nhị phân biểu diễn biến xi
+ 1100,… , 01 2 Ơ v d ny, mỗi nhiễm sắc thể (l một lời giải) được biểu diễn bằng chuỗi nhị phân có chiều di n= k i=1 mi .
m1 bit đầu tiên biểu diễn các giá trị trong khoảng [a1 ,b1], … , mk bitcuối cùng biểu diễn giá trị trong khoảng [ak , bk ].
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
5/41
3.3. Khi to quân th
5/23
- Xc định kch c quần thể (s NST), gi sử l M
- Thực hiện M lần sinh dy bt ngu nhiên c đ di N (s
bt đi diện cho mi c thể)
Th tc sinh quân th:function [ P] = khoi_tao_quan_the( k,bits,M )
% k so bien cua ham
% bits so bit bieu dien gia tri cua bien
% M kich thuoc quan then
N = k*bits; % so bit cho moi nhiem sac the
P =randi([0,1],[M,N]);
end
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
6/41
6/23
Phân còn li ca thuật giải di truyền:
Mi thế hệ, ta lượng giá từng NST (tính giá trị hàm f trên
các chui biến nhị phân đ được gii mã)
Chọn quần thể mới tho phân b xác suât dựa trên đ
thích nghi
Thực hiện các phép đt biến và lai để to các cá thể thế
hệ mới.
Sau mt s thế hệ, khi không còn ci thiện thêm được gì
na, nhiễm sắc thể tt nhât sẽ được xem như li gii của
bài toán ti ưu (thưng là toàn cục). Thông thưng, ta
dừng thut gii di truyn sau mt s bước lặp c định.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
7/41
3.4. Ton t chn lc
7/23
Có nhiều cách để thực hiện toán tử chọn lọc, nói chung đều theo
tư tưởng cá thể có độ thích nghi cao hơn thì khả năng được chọn
nhiều hơn.
Mt sô phương phap chon loc thông dung:
Bánh xe Roulette
Sắ p xế p hng cá thể
Chọn lọc có cnh tranh
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
8/41
3.4.1. Chn lc bng bnh xe Roulette
8/23
Mi cá thể trong quần thể chiếm mt khe có đ rng tỷ lệthun với giá trị phù hợp. Đ rng của khe được tính
bằng tỷ lệ % giá trị thch nghi của mt cá thể trên tổng
giá trị thch nghi toàn quần thể. Gọi là đ thch nghi của cá thể thứ trong quần thể
gồm M cá thể, khi đ cá thể sẽ được chọn với xác suât:
=
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
9/41
V d
9/23
STT NST Đ thch nghi Tỷ lệ % Tổng chy
1
23
4
01101
1100001000
10011
169
57664
361
14.4
49.25.5
30.9
169
745809
1170
Tổng 1170 100.0
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
10/41
Cc bưc tiên hnh
10/23
Bư c 1: Đánh số thứ tự cho các cá thể v Tnh tng giá trị thch
nghi như bảng trên.
Bư c 2: Sinh ngu nhiên số r,
0 ≤ ≤ (S l tng giá trị thch
nghi của ton bộ quần thể)
Bư c 3: Chọn cá thể đầu tiên có tng chy bằng hoc l n hơn r
Xét v dụ trên, nếu r = 654 thì chọn NST thứ 2 (11000)
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
11/41
3.4.2. Xêp hng cc c th
11/23
Phương php ny hon ton ging như sử dụng Roulettengoi trừ dy c thể được sắp xếp theo giá trị của hàm
mục tiêu. Cá thể đầu tiên là cá thể tt nhât và cá thể cui
cùng là cá thể tồi nhât. Vy c thể thứ (N-j) sẽ c xc suâtđược chọn l:
− =
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
12/41
3.4.3. Chn lc c cnh tranh
12/23
Nội dung chnh của phương phá p:
Chọn cá thể từ quần thể hiện ti một cách ngu nhiên vàchọn cá thể tốt nhất trong cá thể đó để sao chép sang quầnthể tm thời.
Lp li bưc trên N lần chúng ta sẽ có quần thể tm thời.
Giá trị được gọi là kích cỡ của chọn lọc cnh tranh. Khi 2chúng ta chọn lọc cnh tranh nhị phân
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
13/41
3.4. Ton t lai ghep (Crossover)
13/23
Có 3 dng lai ghe p cơ bản:
Lai ghe p 1 điểm
Lai ghe p nhiều điểm Lai ghe p theo mt n
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
14/41
3.4.1. Lai ghep 1 đim
14/23
Từ hai cá thể cha mẹ đã chọn P1, P2; toán tử này cần sinh ngunhiên một vị trí k (1
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
15/41
Th tc lai ghep mt đim bng Matlab
15/23
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
16/41
3.4.2. Lai ghep nhiều đim
16/23
Lai ghép nhiều điểm được thực hiện tương tự như lai ghép một
điểm
Vi hai cá thể cha mẹ đã chọn P1 v P2, thuật toán cần sinh ngu
nhiên vị trí:i1, ... , ik vi giả thiết i1 < i2 < ... < ik .
Các điểm cắt này chia các cá thể đã chọn thành các đon được
đánh số chẵn lẻ;
sau đó hai cá thể con được to thành bằng cách tráo đi các gencủa cp cha mẹ tuỳ theo các đon chẵn hay lẻ đã nêu.
Trong lai ghép nhiều điểm thì lai ghép hai điểm cắt được quan tâm
nhiều nhất.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
17/41
V d lai ghep 2 đim
17/23
Chẳng hn
P1 = (1 1 1 0 0 0 1 0 1 0) P2 = (0 1 0 1 1 0 0 1 1 1)
l hai chuỗi nhị phân độ di 10, giả sử các điểm cắt đã chọn l 2,
5, 8 thế thì hai con được sinh ra l :
C1 = (1 1 0 1 1 0 1 0 1 1) C2 = (0 1 1 0 0 0 0 1 1 0)
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
18/41
Th tc lai ghep nhiều đim
18/23
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
19/41
3.4.3. Lai ghep kiu mt n
19/23
Loi lai ghép này còn gọi là lai ghép đều;
Sinh một chuỗi nhị phân ngu nhiên cũng có độ dài n gọi là
chuỗi mt n.
Hai con được to ra dựa trên chuỗi mt n này, chẳng hn gen
thứ i của cá thể con C1 được lấy là gen thứ i của P1 nếu bit mt
n tương ứng là 1 và lấy gen thứ i của P2 nếu bit mt n là 0.
Cá thể con C2 được to ngược li.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
20/41
V d
20/23
Ví dụ: Với P1 = (1 1 1 0 0 0 1 0 1 0)
P2 = (0 1 0 1 1 0 0 1 1 1)
Gi sử mặt n U được khởi to ngu nhiên:U = (0 1 1 0 0 1 1 0 0 1)
Khi đ, hai con được ra là :
C1 = (0 1 1 1 1 0 1 1 1 0) C2 = (0 1 0 0 0 0 0 0 1 1)
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
21/41
Th tc lai ghep theo kiu mt n
21/23
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
22/41
3.5. Ton t đt biên (Mutation)
22/23
Toán tử đột biến làm thay đi các thông tin của quần thể ở mức
bit (gen).
Đột biến làm thay đi giá trị của một bit bất kỳ theo xác suất pm.
Mỗi bit đều có cơ hội đột biến như nhau.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
23/41
Th tc đt biên
23/23
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
24/41
3.6. Hm thch nghi
24/23
Do giá trị thch nghi trong gii thut di truyn là không âm, nên
để áp dụng GA cho bài toán ti ưu ta cần phi chuyển giá trị
chi ph của hm mục tiêu v gi trị thch nghi cho ph hợp.
Nếu bài toán ti ưu là cực tiểu hàm mục tiêu g(x) thì ta
chuyển sang hàm thch nghi như sau:
Cmax là tham s vào do ngưi sử dụng chọn, thưng chọn là
giá trị lớn nhât của hàm mục tiêu trong tp hiện ti
lainguoc
C x g x g C x f
0
)()()(
maxmax
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
25/41
25/23
Nếu bài toán ti ưu là cực đi hàm mục tiêu g(x), ta có thể
chuyển sang hàm phù hợp như sau:
Trong đ Cmin là tham s đầu vào, Cmin có thể là giá trị tuyệt
đi bé nhât của các hàm mục tiêu trong tp hiện ti hoặc
trong vòng lặp cui
lainguoc
C x g x g C x f
0
0)()()(
minmin
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
26/41
3.7. Thang đo gi tr thch nghi
26/23
Việc điu chỉnh s lượng con cháu cho mi cá thể trong
quần thể là rât quan trọng:
Lúc bắt đầu hoặc sau vài vòng lặp đầu tiên, các quần thể
thưng có mt s cá thể “siêu khoẻ” có kh năng chiếm
lĩnh phần lớn quần thể và có thể dn đến hi tụ sớm không
mong mun (vì các cá thể “siêu khoẻ” này sẽ có thể có rât
nhiu con)
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
27/41
27/23
Nếu cứ để như vy mà chọn lọc thì giá trị thch nghi của
các cá thể thành phần sẽ tiến gần đến giá trị thch nghi củacá thể tt nhât.
Vy ta mun, sau nhiu lần lặp, các cá thể trung bình cũng
có con s tương đương với các cá thể tt nhât trong thế hệtiếp theo. Khi đ gii thut di truyn trở thành tìm kiếm
ngu nhiên gia các cá thể thành phần). Thang đo giá trị
thch nghi sẽ gii quyết vân đ này.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
28/41
Thang đo tuyên tnh
28/23
Nếu gọi là giá trị thch nghi ban đầu và ’ là giá trị thch
nghi sau khi biến đổi:Ta có: ’ × + (1)
Trong đ a và b được chọn sao cho:
’ (2) ’max × (3)Cmult là bn sao cần thiết đi với thành viên tt nhât.
Đi với các quần thể kích c nhỏ (50-100 cá thể),Cmult =1.2 2 là khá hiệu qu.
: giá trị phù hợp trung bình ban đầu
’: giá trị phù hợp trung bình sau khi biến đổi.
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
29/41
3.8. S dng GA đ tm cc tiu hm f(x) mt biên
29/23
Giả sử ta phải tìm cực trị của hàm f(x):
f(x)= x*sin(10**x)+1 vi x [-1, 2]
Input: tập các giá trị x [-1, 2]
Output: giá trị x làm cho f(x) cực tiểu
Việc tìm x trong khoảng [-1,2] để có giá trị nhỏ nhất, nghĩa làtìm x0 sao cho: f(x0)
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
30/41
30/23
Rõ rng l phương trình trên c vô s li gii, xem đồ thị:
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
31/41
S dng giải thuật di truyền
31/23
Giá trị thực của x được biểu diễn bởi một véc tơ nhị phân gọi là NST. Chiều dài véc tơ tuỳ thuộc vào độ chính xác được yêu cầu,
trong bài này là 6 chữ số sau dấu phẩy.
Miền biến thiên của x có độ dài 3, vi yêu cầu độ chính xác là 6chữ số sau dấu phẩy, nên cần chia miền [-1, 2] thành 3.106 khoảng
bằng nhau (mỗi điểm biểu diễn một giá trị của x)
Do đó, ta có thể dùng véc tơ nhị phân dài 22 bit để biểu diễn một NST vì
2097152 = 221 < 3000000 222 = 4194304
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
32/41
32/23
Để giải mã chuỗi nhị phân (21, 20, … , 0) thành giá trị thực
trong khoảng [-1, 2] ta thực hiện các bưc sau:Bư c 1: Chuyển chuỗi nhị phân sang cơ số thập phân:
=
× 2
Bư c 2: Tnh giá trị thực của x ứng v i y:
12
30.1
22
y x
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
33/41
Khi to quân th
33/23
To M các thể ngu nhiên có NST l biểu diễn bở i 22 bt nhị phân
Hm thch nghi
Hàm thch nghi của véc tơ chính là hàm mục tiêu
:
() ()Trong đ, v là chui nhị phân biểu diễn giá trị thực của x.
V dụ:v1= (1000101110110101000111) x1= 0.637197v2= (0000001110000000010000) x2= 0.958973
v3= (1110000000111111000101) x3= 1.627888
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
34/41
34/23
Khi đó hm đánh giá được tnh :
eval(v1) = f(x1) = x1*sind(10*180*x1)+1=1.586345
eval(v2) = f(x2) = 0.078878
eval(v3) = f(x3) = 2.250650
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
35/41
Ton t đt biên
35/23
Toán tử đt biến thay đổi mt hoặc nhiu gen với xác suât
đt biến pm
Ví dụ: Nếu NST v3 được chọn đt biến ở vị trí gen thứ 5, ta
được ′:′ (1110100000111111000101)
Tương ứng v i
′
1.721638 v
(
′ ) = -0.082257
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
36/41
Ton t lai ghep
36/23
Giả sử ta chọn hai NST v1 và v
2 làm cp cha mẹ để lai ghép, và
điểm lai ghép được chọn ngu nhiên là điểm thứ 5.
Khi đó hai NST con cháu được sinh ra là:
v1’
=(00000000000111111000101)v2
’=(1110001110000000010000)
Hàm thch nghi của 2‘ và 3’ là:
eval(v2’
) = 0.940865eval(v3
’) = 2.459245
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
37/41
Yêu câu:
Xây dựng chương trình bằng Matlab để với cc tham s
37/23
Kích thước quần thể: 30
Xc suât lai ghép : 1
Xc suât đt biến: 0.1
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
38/41
3.9. S dng GA đ tm cc tiu hm Rastrigin
38/23
Hm Rastrigin đượ c định nghĩ a:
10 + =
10cos(2)
Hm Rastrigin l hm không lôi (non-convex function) thườ ng
đượ c dùng để kiểm tra các phương phá p tối ưu.
V i n=2, ta có:
, 20 + 10 cos 2 + 10 cos 2Vi -5.12 x 5.12 v -1.28 y 5.12
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
39/41
M ha cc nhim săc th
39/23
Giả sử độ chnh xác của bi toán l 4 chữ số sau dấu phẩy, vậy
suy ra số bt để mã hóa v lần lượ t l:(10.24 ∗ 10) 17 (bit)
(6.4 ∗ 10) 15 () Như vậy, mỗi NST đượ c mã hóa bở i 32 bt
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
40/41
Gi tr ca hm mc tiêu ca mt sô c th khi to
40/23
Nhiễm sắc thể x y f(x,y)1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 5.014 0.458 45.034
0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 -0.587 0.334 34.059
0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 -1.939 -0.611 22.524
0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 -1.880 1.302 21.137
0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 -2.153 -0.043 9.278
0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 -1.679 1.622 36.983
1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 3.686 1.196 35.643
0 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 -3.611 0.477 50.830
0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 -2.296 0.579 37.278
8/17/2019 Chapter 3. Giai Bai Toan Toi Uu Theo Giai Thuat Di Truyen
41/41