You are on page 1of 11

Chương I: Tổng Quan Nghiên Cứu Về Thuật Giải Di Truyền

1. Thuật giải di truyền:


ðăt vấn ñề:
Từ trước ñến nay trong các nghiên cứu và ứng dụng tin học ñã xuất hiện nhiều bài toán lý thú
chưa tìm ra ñược phương pháp giải nhanh và hợp lý. Phần lớn ñó là những bài toán tối ưu nảy
sinh trong các ứng dụng. ðể giải loại bài toán này, người ta thường phải tìm ñến một thuật giải
hiệu quả mà kết quả thu ñược chỉ là xấp xỉ tối ưu. Thuật giải di truyền (GA) là một trong những
công cụ ñó.
Nội dung của GA:
Ý tưởng của GA là mô phỏng những gì mà tự nhiên ñã thực hiện.
Ví dụ: Tập thỏ ban ñầu gồm những con thông minh, nhanh nhẹn (ít khả năng bị cáo ăn thịt), còn lại
là những con chậm, kém (nhiều khả năng bị cáo ăn thịt). Tuy nhiên, trong những con chậm cũng
có những con không bị cáo ăn thịt nhờ may mắn. Tập hợp thỏ này bắt ñầu sinh sản và tập thỏ con
sẽ thông minh hơn và nhanh hơn.
Thuật giải di truyền (GA) là thuật giải áp dụng quá trình tiến hoá tự nhiên ñể giải các bài toán tối
ưu trong thực tế (từ tập các lời giải có thể ban ñầu, thông qua nhiều bước tiến hoá, hình thành các
tập hợp mới với những lời giải tốt hơn, cuối cùng sẽ tìm ñược lời giải gần tối ưu nhất).
Cấu trúc Thuật giải di truyền ñược thể hiện qua sơ ñồ sau:
Procedure Gtditruyền;
Begin
t = 0;
Khởi tạo lớp P(t);
ðánh giá lớp P(t);
While not ðk kết thúc do
Begin
t=t+1;
Chọn lọc P(t) từ P(t-1);
Kết hợp các cá thể của P(t);
ðánh giá lớp P(t);
End
End
Sơ ñồ:

Phát sinh Xác ñịnh ñộ Có cá thể nào


quần thể thích nghi của ñạt ñến lời giải Trình bày
ban ñầu các cá thể mong muốn ? lời giải

Bắt ñầu

Chọn lọc, lai ghép, ñột biến

Xây dựng quần thể mới

Xây dựng thế hệ kế tiếp

Kết luận:
Tóm lại, có thể nhận thấy GA là một thuật giải lặp nhằm giải ñáp các bài toán tìm kiếm. Nó khác
với các thủ tục tối ưu thông thường ở những ñiểm cơ bản sau:
 Thứ nhất, Thuật giải di truyền làm việc với các xâu, tìm kiếm tại nhiều ñỉnh (ñiểm
tối ưu) cùng một lúc. Nhờ áp dụng các toán tử di truyền, nó sẽ trao ñổi thông tin
giữa các ñỉnh, như vậy giúp giảm bớt khả năng kết thúc tại một cực tiểu cục bộ mà
không tìm thấy cực tiểu toàn cục.
 Thứ hai, nó làm việc chỉ với bộ mã của các biến, chứ không phải với bản thân
biến.
 Thứ ba, Thuật giải chỉ cần ñánh giá hàm mục tiêu ñể phục vụ quá trình tìm kiếm,
chứ không ñòi hỏi các thông tin bổ trợ khác.
 Cuối cùng, các thao tác cơ bản trong Thuật giải di truyền dựa trên khả năng tích hợp
tính ngẫu nhiên trong quá trình xử lý.
2. Các thao tác cơ bản:
Thuật giải di truyền cho một bài toán cụ thể bao gồm năm vấn ñề:
 Biểu diễn di truyền với những lời giải có thể của bài toán;
 Tạo ra tập hợp ban ñầu các lời giải P(t)={x1t,x2t,....,xnt};
 Hàm ñánh giá: ñánh giá mức ñộ thích nghi của lời giải;
 Các toán tử di truyền ñược sử dụng ñể sản sinh con cháu (Lai ghép và ñột biến).
 Giá trị của những tham số mà GA sử dụng (Kích cỡ tập hợp pop_size, xác
suất áp dụng toán tử di truyền,vv... ).
Minh hoạ các vấn ñề trên bằng hai bài toán
 Bài toán 1: Bài toán tối ưu hoá một hàm ñơn giản.
 Bài toán 2: Bài toán người du lịch (Travelling Saleman Problem).
3. Biểu diễn di truyền ñối với lời giải tiềm tàng của bài toán:
Biểu diễn nhị phân:
Mỗi lời giải ñược hiểu là một véc tơ nhiễm sắc thể, mỗi phần tử (mỗi biến) của vectơ nhiễm sắc
thể ñược mã hoá nhờ một số lượng bit nào ñó (0,1).
 ðộ chính xác của phương pháp này tùy thuộc vào số lượng bit thực sự dùng và
bằng (UB-LB)/(2n-1), UB, LB là cận trên và cận dưới của miền giá trị và n là số
lượng bit một phần tử của nhiễm sắc thể.
 Cách biểu diễn này có nhược ñiểm là:
 ðộ chính xác không cao (các phần tử ñược truy nhập là những số
nguyên).
 Muốn tăng ñộ chính xác phải tăng số lượng bit biểu diễn nhưng ñiều này
sẽ làm chậm thuật toán.
 Biểu diễn nhị phân mất tính chính xác khi tăng kích cỡ miền, vì chiều
dài nhị phân cho trước là cố ñịnh.
ðể khắc phục những nhược ñiểm này, người ta ñưa ra các biểu diễn mới gọi là biểu diễn dấu phẩy
ñộng.
Biểu diễn dấu phẩy ñộng:
Mỗi vectơ nhiễm sắc thể ñược mã hoá là một vector số dấu phẩy ñộng với cùng chiều dài của véc
tơ lời giải. Mỗi phần tử thuộc một miền xác ñịnh và các toán tử ñược thiết kế ñể bảo ñảm yêu cầu
này.
ðộ chính xác của phương pháp tuỳ thuộc vào khả năng của máy (số chữ số thập phân sau dấu
phẩy) do vậy tốt hơn so với biểu diễn nhị phân.
Biểu diễn dấu phẩy ñộng (Floating point representation, FP) có khả năng biểu diễn ñược các miền
rộng lớn. Hơn nữa, với biểu diễn FP, có thể dễ dàng thiết kế các công cụ ñặc biệt ñể biểu thị những
ràng buộc không tầm thường.
4 Hàm ñánh giá:
4.1 Hàm mục tiêu:
ðộ tốt của một cá thể: Là giá trị hàm tương ứng của cá thể ñối với một bài toán cụ thể .
Ví dụ: Trong bài toán tối ưu cực ñại một hàm f, nếu chọn một cá thể là một nghiệm của bài toán thì
một cá thể càng tốt khi làm cho giá trị hàm càng lớn .
ðể xác ñịnh ñược ñộ tốt của các cá thể ta cần một hàm ñể làm việc này .Hàm này gọi là hàm mục
tiêu .
Hàm mục tiêu: g(x), với x là một nhiễm sắc thể.
Dùng ñể ñánh giá ñộ tốt của một lời giải hoặc cá thể .
Hàm mục tiêu nhận vào tham số là một cá thể và trả ra một số thực .
Tùy theo giá trị của số thực này mà ta biết ñược ñộ tốt của cá thể ñó .
4.2 Ánh xạ hàm mục tiêu sang hàm thích nghi:
ðộ thích nghi của cá thể: là khả năng cá thể ñó ñược chọn lọc vào thế hệ sau hoặc là ñược
chọn lọc cho việc lai ghép ñể tạo ra cá thể con.

Hàm mục tiêu g(x) sau khi ñược tính toán (ñộ tốt của cá thể) sẽ là cơ sở ñể ñánh giá tính thích nghi
của cá thể.
Ánh xạ: g(x) -> f(x).
Có nhiều cách ñể ánh xạ g(x) -> f(x), tùy vào từng mục ñích của bài toán mà ta có các phương pháp
ánh xạ khác nhau.
5. Cơ chế chọn lọc, lai ghép và ñột biến:
Chọn lọc:
Chọn lọc là một quá trình mà một quá trình mà các cá thể ñược sao chép lại thế hệ sau dựa
vào ñộ thích nghi của chúng. Toán tử chọn lọc này là một phiên bản nhân tạo của sự chọn lọc tự
nhiên. Một ñộ tốt f(i) thì ñược gắn với một cá thể trong quần thể, với cá thể có ñộ thích nghi
càng cao thì càng tốt.
Một kĩ thuật thông dụng thường ñược sự dụng trong tiến trình chọn lọc là chọn lọc theo bàn
Roulete.
1.Tính tổng giá trị thích nghi (fitness) của tất cả thành viên lực lượng và gọi nó là tổng
thích nghi.
2.Phát sinh một số n là số ngẫu nhiên trong khoảng từ 0 ñến tổng thích nghi.
3.Trả lại thành viên tập hợp ñầu tiên mà ñộ thích nghi của nó cộng với ñộ phù hợp của các
thành viên tập hợp trước ñấy lớn hơn hoặc bằng n.
Ví dụ: Ta có các cá thể (nhiễm sắc thể) sau:
No. String Fitness & of Total Running Total
1 01110 8 16 8
2 11000 15 30 23
3 00100 2 4 25
4 10010 5 10 30
5 01100 12 24 42
6 00011 8 16 50

Rõ ràng với toán tử chọn lọc Roulete thì cá thể có fitness càng lớn thì càng có nhiều khả
năng ñược chọn lựa.
Chọn lọc:
Sốngẫunhiên 26 2 49 15 40 36 9
0< n < 50
NST 4 1 6 2 5 5 2

Với không gian biểu diễn nhị phân, thường người ta hay sử dụng các toán tử di truyền cổ ñiển:
lai ghép và ñột biến ngẫu nhiên (thao tác trên các số 0 và 1).
ðột biến:
Toán tử ñột biến sẽ thay ñổi một hoặc nhiều gen (những vị trí trong nhiễm sắc thể) với xác suất
bằng tỷ lệ ñột biến.
Giả sử rằng gen thứ năm từ nhiễm sắc thể v = (1110000000111111000101) ñược chọn cho ñột
biến, vì gen này bằng 0, dẫn ñến nó sẽ ñược chuyển ñổi thành 1. Vì thế, nhiễm sắc thể v sau khi
ñột biến sẽ là:
v'=(1110100000111111000101)
Lai ghép:
Chúng ta minh hoạ toán tử lai ghép trên nhiễm sắc thể v1 và v2. Giả sử rằng ñiểm lai ghép ñược
chọn ngẫu nhiên sau gen thứ năm:
v1=(00000|01110000000010000)
v2=(11100|00000111111000101)

Kết quả sản sinh ra hai con:


v2'=(00000|00000111111000101).
v3'=(11100|01110000000010000).

Với không gian biểu diễn dấu phẩy ñộng:


Các toán tử mà chúng ta sử dụng khác so với các toán tử cổ ñiển, vì chúng làm việc trong một
không gian giá trị thực. Tuy nhiên, theo trực giác chúng ta có thể chia chúng thành các lớp tiêu
chuẩn: ðột biến và Lai ghép. Hơn nữa, một vài toán tử có tính chất không ñều, hoạt ñộng của
chúng tuỳ thuộc vào tuổi của tập hợp (số lần lặp).
Nhóm toán tử ñột biến:
 ðột biến ñều, ñược ñịnh nghĩa tương tự như các toán tử cổ ñiển:
Nếu xit =(v1,...., vn) là một nhiễm sắc thể , thì mỗi phần tử vk có cơ hội bằng nhau ñể thực hiện xử
lý ñột biến. Kết quả việc ứng dụng của toán tử này là một véc tơ
(v1,......., vk’,......, vn), với 1<=k<=n, và vk’ là một giá trị ngẫu nhiên từ miền tham số tương ứng.
 ðột biến không ñều là một trong những toán tử có nhiệm vụ tinh chỉnh cho hệ
thống. Nó ñược ñịnh nghĩa như sau :
Nếu Svt=(v1,.......,vm) là một nhiễm sắc thể và phần tử vk ñược chọn cho
ñột biến này (miền của vk là [lk , uk]), kết quả là một vec tơ

Svt+1=(v1,. ...vk’,.......,vm), với k∈ [1,...,m], và :


vk’=vk + ∆(t,uk-vk) nếu số ngẫu nhiên bằng 0 hoặc
vk’=vk - ∆(t,vk- lk) nếu số ngẫu nhiên bằng 1

Trong ñó, hàm ∆ (t,y) trả lại một giá trị trong khoảng [0,y], khi t tăng thì xác suất
(∆ (t,y) ->0 ) tăng. Chúng ta có thể dùng hàm sau:

∆(t,y)=y+(1- r(1-t/T))b

ở ñây, r là một số ngẫu nhiên trong khoảng [0,1], T là số vòng lặp tối ña , b là một tham số hệ thống
xác ñịnh mức ñộ không ñồng dạng. Hình sau trình bầy giá trị ∆ trong hai lần lựa chọn. ðồ thị này
chỉ rõ hoạt ñộng của toán tử:
∆(t,y) ∆(t,y)

y t/T=0.50 b=2 y t/T=0.50 b=2

1 r 1 r
Nhóm toán tử lai ghép:
 Lai ghép ñơn giản, ñược ñịnh nghĩa một cách thông thường, nhưng chỉ tại
các vị trí giữa các phần tử của vectơ nhiễm thể x.
 Lai ghép số học: ñược ñịnh nghĩa như một kết hợp tuyến tính giữa hai vectơ: nếu
Svt và Swt lai ghép, thì sản sinh ra con cháu là :
Svt+1 = a*Swt + (1- a)*Svt và Swt+1 = a*Svt + (1 - a)*Swt.
Toán tử này có thể dùng một tham số a, nó là một hằng số ñối với lai ghép số học ñồng dạng,
hoặc là một biến mà giá trị của nó tuỳ thuộc vào tuổi của tập hợp (với lai ghép số học không ñồng
dạng).
Ở ñây, chúng ta có một vài kỹ thuật mới ñể áp dụng những toán tử này, lai ghép số học có thể
ñược áp dụng ñể chọn những phần tử giữa hai véc tơ hoặc trên toàn bộ các véc tơ.
6. Phạm vi ứng dụng:
GA ñã từng ñược áp dụng thành công ñối với nhiều bài toán tối ưu như lập kế hoạch, ñiều khiển
tương thích, chương trình trò trơi, các bài toán vận tải, bài toán người du lịch, tối ưu hoá cơ sở dữ
liệu, học tham số trong mạng Nơron vv....
7. Nghiên cứu sâu hơn về thuật giải di truyền:
7.1 Sơ ñồ nhiễm sắc thể :
Xét ví dụ : Cực ñại hóa hàm f(x) = x2, với 0<=x<=31. ðể sử dụng GA, chúng ta mã hóa biến x
thành một chuỗi nhị phân có chiều dài là 5 bit, ví dụ chuỗi « 11000« tượng trưng cho x = 24, hàm
ñánh giá ñơn giản là hàm f(x). Chúng ta sẽ sử dụng mô hình ñơn giản của GA với các toán tử chọn
lọc, lai ghép, và ñột biến.
Quá trình chọn lọc ñược thực hiện như ñã trình bày trong phần toán tử chọn lọc ở trên, trước hết
khởi tạo ngẫu nhiên quần thể gồm 4 cá thể, sau ñó sử dụng toán tử chọn lọc roulete ñể chọn lọc,
quá trình chọn lọc roulete ñược thực hiện 4 lần, kết quả thực nghiệm ñã cho ra như sau :

Quá trình chọn lọc :

Stt Khởi tạo quần x ðộ thích nghi Xác suất chọn lọc Số lần ñược chọn
thể f(x)=x2 fi / ∑ f lọc
i

1 01001 9 81 0.08 1
2 11000 24 576 0.55 2
3 00100 4 16 0.02 0
4 10011 19 361 0.35 1
Tổng :1034
Trung bình : 259

Quá trình lai ghép: Chọn xác suất lai là pc = 1. Chọn ngẫu nhiên các cặp nhiễm sắc thể ñể lai ghép
với nhau và chọn ngẫu nhiên vị trí lai ghép. Kết quả là nhiễm sắc thể thứ hai ñược ghép với nhiễm
sắc thể thứ nhất tại vị trí bit 4, và hai nhiễm sắc thể còn lại lai ghép với nhau tại vị trí bit 2.
Quá trình lai ghép :
NST sau khi Kết hợp với Vị trí bit lai Quần thể mới x x2
chọn lọc
0100|1 2 4 01000 8 64
1100|0 1 4 11001 25 625
11|000 4 2 11011 27 729
10|011 2 2 10000 16 256
Tổng cộng :1674
Trung bình : 419

Quá trình ñột biến : Xác suất ñột biến ñược chọn là pm = 0.001, như vậy sự ñột biến mong ñợi là
5x4x0.001 = 0.02 bits. Theo một cách khác, chúng ta mong ñợi có 0.02 bit trải qua sự ñột biến
trong một lần tiến hóa. Kết quả thực nghiệm chỉ ra rằng không có bit nào bị ñột biến với giá trị xác
suất ñột biến 0.001 trong một lần tiến hóa. Từ hai bảng trên ta thấy ñộ thích nghi trung bình của
quần thể ñược cải tiến từ 259 lên 419 và cá thể tốt nhất tăng từ 576 lên 729.
Trong ví dụ trên chúng ta quan sát thấy rằng, sự kết hợp của hai mẫu bít có ñộ thích nghi lớn hơn
ñộ thích nghi trung bình, cụ thể là chuỗi 11--- và ---11 sẽ sinh ra các cá thể có ñộ thích nghi tốt,
ñiều này minh họa cho khái niệm sơ ñồ trong GAs. Sơ ñồ là một chuỗi có chiều dài bằng chiều dài
nhiễm sắc thể, mô tả một tập con của các nhiễm sắc thể, các thành phần của sơ ñồ có thể nhận một
trong các giá trị trong tập kí tự biểu diễn nhiễm sắc thể hoặc kí tự ñại diện ‘*’. Nếu vị trí nào trong
sơ ñồ có giá trị khác ‘*’ thì các nhiễm sắc thể mà sơ ñồ này tượng trưng cũng phải có giá trị tương
tự tại vị trí ñó. Ví dụ sơ ñồ *111* mô tả một tập con (khớp) với bốn nhiễm sắc thể {01110, 01111,
11110, 11111}, với ‘*’ có ý nghĩa là không quan tâm, có thể nhận bất kỳ giá trị nào trong tập kí tự
dùng ñể biểu diễn nhiễm sắc thể. Hai ñặc tính quan trọng của sơ ñồ là bậc và chiều dài của sơ ñồ.
Bậc của sơ ñồ H kí hiệu là o(H), là số kí tự khác ‘*’ trong sơ ñồ, nói cách khác bậc của sơ
ñồ là số vị trí cố ñịnh trong sơ ñồ, ví dụ o(*111*) = 3, o(*1***) = 1.
Chiều dài của sơ ñồ H kí hiệu là δ(H): là khoảng cách giữa hai vị trí cố ñịnh ñầu và cuối, ví
dụ δ(011*1**) = 5-1 = 4, δ(0******) = 1- 1= 0 .
Hai lý thuyết quan trọng về sơ ñồ là :
ðịnh lý sơ ñồ (nền tảng lý thuyết của thuật giải di truyền): Các sơ ñồ ngắn, bậc thấp, trên
trung bình nhận số chuỗi tăng theo lũy thừa trong các thế hệ tiếp theo của thuật giải di
truyền.
Giả thuyết khối kiến trúc : Các sơ ñồ ngắn, bậc thấp, hiệu quả cao gọi là các khối kiến trúc.
Các khối kiến trúc ñược kết hợp ñể tạo nên các cá thể tốt hơn.
7.2 Ánh xạ giá trị hàm mục tiêu g(x) sang hàm thích nghi f(x) :
a.Ánh xạ giá trị hàm mục tiêu sang giá trị thích nghi:
Vì hàm thích nghi phải nhận giá trị không âm, do ñó cần phải xây dựng ánh xạ hàm mục
tiêu ñang xét trong bài toán sang hàm thích nghi thông qua một hoặc nhiều lần ánh xạ. Nếu bài
toán tối ưu là cực tiểu một hàm ñánh giá g(x), việc chuyển từ hàm ñánh giá sang hàm thích
nghi ñể sử dụng với GA như sau:
 C − g ( x) khi g ( x) < C max
f ( x) =  max
 0 Truong hop khac
ở ñây, Cmax là một tham số ñầu vào. Ví dụ, có thể lấy Cmax là giá trị g lớn nhất trong tập hợp hiện
tại, hoặc lớn nhất sau k vòng lặp. Nói chung Cmax khác nhau tuỳ thuộc vào giá trị các biến của tập
hợp.
Khi hàm mục tiêu gốc tăng hoặc hoặc ñang xét bài toán cực ñại hoá một hàm hữu dụng u(x),
chúng ta có thể chuyển sang hàm thích nghi như sau:
 u ( x) + C min khi u ( x) + C min > 0
f ( x) = 
 0 Truong hop khac
Ở ñây Cmin là tham số ñầu vào, có thể là trị tuyệt ñối của u bé nhất trong tập hợp hiện tại
hoặc trong k vòng lặp cuối cùng hoặc là một hàm của biến tập hợp.
b. Thang ño ñộ thích nghi: Một vấn ñề quan trọng là ñiều chỉnh số con cháu. ðiều này ñặc
biệt quan trọng cho một vài vòng lặp ñầu tiên, khi một vài cá thể "siêu" có tiềm năng chiếm lĩnh
phần lớn quần thể và làm cho hội tụ sớm. Thang ño ñộ thích nghi có thể giúp giải quyết vấn ñề
này.
Một kiểu thang ño hay gặp là thang ño tuyến tính. Chúng ta ñịnh nghĩa ñộ thích nghi gốc là f và
ñộ thích nghi ñã biến ñổi là f'. Thang ño tuyến tính xác ñịnh quan hệ giữa f và f' như sau:
f'=a*f+b (1)
ở ñây, các hệ số a và b ñược chọn sao cho:
f'avg=favg (2)

f'max=Cmult*favg (3)
ở ñây Cmult là số các bản sao cần thiết ñối với một thành viên tốt nhất. Với lượng biến tương ñối
nhỏ (n=50 ñến 100), Cmult thường ñược chọn từ 1.2 ñến 2 và tỏ ra khá hiệu quả. Biểu thức (2) bảo
ñảm rằng mỗi thành viên với ñộ phù hợp trung bình sẽ cho một con cháu ñối với lần phát sinh
tiếp theo. Biểu thức (3) kiểm soát số con cháu ñược nạp vào làm thành viên với ñộ thích nghi gốc
cực ñại. Lưu ý rằng thang ño tuyến tính trong biểu thức từ (1)-(3) có thể làm cho giá trị thích nghi
trở thành âm. ðiều này không cho phép vì phải luôn ñảm bảo tính không âm của nó. Một giải pháp
thay thế ñiều kiện trong biểu thức (3) là sử dụng ñiều kiện f'min=0.

7.3 Các toán tử nâng cao:


Mô hình GA ñơn giản ñược thực thi bởi ba toán tử: Chọn lọc, lai ghép và ñột biến, có nhiều hiện
tượng và toán tử tự nhiên thú vị khác. Hai loại toán tử di truyền ñược quan tâm mà có thể cải tiến
sự tin cậy của GA là các toán tử micro và các toán tử macro. Các toán tử micro là các toán tử di
truyền hoạt ñông trên cấp ñộ nhiễm sắc thể và các toán tử macro là các toán tử di truyền hoạt ñộng
trên cấp ñộ quần thể, ở ñây chúng tôi trình bày ví dụ về các toán tử micro: lai ña ñiểm và tái thiết
lập trật tự.
7.3.1 Toán tử lai ña ñiểm: là một hình thức tổng quát của lai ñơn ñiểm, ở ñây ñịnh nghĩa số ñiểm lai
Nc, nếu Nc = 1 thì ta có lai ñơn ñiểm, toán tử lai ña ñiểm có thể giải quyết sự kết hợp ñặc trưng mã
hóa trên các nhiễm sắc thể mà lai ñơn ñiểm không giải quyết ñược. Giả sử có hai nhiễm sắc thể sau:
10110001100
00101101001
Với các bit gạch dưới tượng trưng cho hai giản ñồ hiệu suất cao, thừa nhận rằng nếu cả giản ñồ bị
biến ñổi thì hiệu suất cao sẽ bị mất. Hiển nhiên rằng toán tử lai ñơn ñiểm không thể tránh khỏi ñiều
này, bởi vì với bất kỳ ñiểm lai nào, giản ñồ thứ nhất cũng bị phá vỡ. Vấn ñề này có thể giải quyết
bởi hai ñiểm lai như sau:
Parent1: 1 0 1 1 | 0 0 0 1 | 1 0 0
Parent2 :0 0 1 0 | 1 1 0 1 | 0 0 1

Child1: 1 0 1 1 1 1 0 1 1 0 0
Child2: 0 0 1 0 0 0 0 1 0 0 1
Vậy với thao tác lai hai ñiểm, hai giản ñồ ñược kết hợp trên một cá thể con.
Một cách thực thi khác của lai ña ñiểm là phép lai ñồng nhất, theo cách lai này, hai cá thể cha mẹ
ñược lựa chọn và hai cá thể con ñưoo75c sinh ra. Cho mỗi bit trên hai cái thể con, chúng ta quyết
ñịnh ngẫu nhiên cha mẹ nào ñóng góp giá trị bit của nó ñến cá thể con thông qua thông qua việc
phát sinh một mặt nạ. Ví dụ như sau:
Parent1: 0 1 1 0 0 1 1 1
Parent2: 1 1 0 1 0 0 0 1
Mask: 01101001

Child1: 1 1 1 1 0 0 0 1
Child2: 0 1 0 0 0 1 1 1
Mặc dù phép lai ña ñiểm có những thuận lợi như ñã ñề cập trên, nhưng nó nên ñược sử dụng cận
thận, kinh nghiệm cho thấy rằng phép lai ña ñiểm làm giảm hiệu quả của GA khi tăng ñiểm lai Nc,
lý do là khi tăng Nc, lai ña ñiểm sẽ làm trộn nhiều hơn và giảm cấu trúc ñã tích lũy, vì vậy lúc ñó lai
ña ñiểm giống như ngẫu nhiên và giản ñồ ít quan trọng có thể bị duy trì.
7.3.2 Toán tử tái thiết lập trật tự:
Toán tử này thích hợp cho bài toán mà ñộ thích nghi phụ thuộc vào sự sắp xếp của chuỗi nhiễm sắc
thể, chẳng hạn như hàm thích nghi f phụ thuộc vào sự kết hợp của giá trị gen v và trật tự o tương
ứng f = f(v,o). Một cá thể bao gồm giá trị gen và thông tin trật tự tương ứng có thể ñược diễn giải
qua ví dụ sau:
12345678
10 0 1 0 0 0 1
Với 1, 2, …, 8 tượng trưng cho vị trí, toán tử tái thiết lập trật tự thường sử dụng trong GA là toán
tử ñảo. Trong toán tử này, trên nhiễm sắc thể có hai ñiểm ñược lựa chọn, nhiễm sắc thể ñược cắt ra
tại vị trí các ñiểm lựa chọn, các vị trí nằm giữa hai ñiểm cắt thì ñược ñảo trật tự.
Ví dụ:
1 2| 3 4 5 6| 7 8
0 1| 1 1 1 0| 1 0
Sau khi ñảo trở thành:
1 2| 6 5 4 3| 7 8
0 1| 0 1 1 1| 10
7.4 Cải tiến phương pháp chọn lọc:
Toán tử chọn lọc thường ñược sử dụng trong GA tiêu chuẩn là toán tử chọn lọc Roulete, toán tử
này có những vấn ñề tiềm ẩn là cá thể tốt nhất của quần thể có thể không ñược chọn lọc ñể sinh ra
cá thể con trong lần tạo sinh kế tiếp, và có thể gọi nguyên nhận là lỗi phỏng ñoán. Một vài các
phương pháp chọn lọc biến ñổi có thể làm giảm lỗi phỏng ñoán kết hợp với toán tử chọn lọc
Roulete sẽ ñược giới thiệu tiếp theo sau ñây.
7.4.1 Elitism: Thuật toán sao chép các cá thể tốt nhất của mỗi lần tiến hóa ñến lần tiến hóa kế tiếp,
thuật toán này có thể tăng tốc sự hội tụ của quần thể bởi các siêu cá thể và dể ñạt tối ưu cục bộ,
nhưng trên một phương diện thì nó cũng cải tiến sự thi hành của GA.
7.4.2 Phương pháp mẫu tiền ñịnh: Trong phương pháp này, xác suất của sự chọn lọc ñược tính
toán: pselect I = fi / nfi. sau ñó số lượng cá thể con ei tạo bởi chuỗi Ai ñược tính
ei= n*pselect I, số cá thể con tạo bởi mỗi chuỗi i thì tương ứng với phần nguyên của ei, số cá thể còn
lại cần thiết ñể lấp ñầy quần thể kế tiếp ñược lấy từ các cá tốt nhất trong quần thể hiện tại.
7.4.3 Phương pháp mẫu phỏng ñoán còn lại với sự thay thế: Phương pháp này bắt ñầu tương tự như
phương pháp mẫu tiền ñịnh ở trên, số lượng cá thể con mong ñợi của từng nhiễm sắc thể ñược tính
toán trước và phần nguyên của giá trị tính ñược chọn, phần lẻ còn lại của giá trị này ñược sử dụng
ñể tính toán các trọng trong phương pháp chọn lọc roulete ñể lấp ñầy phần còn lại của quần thể.
7.4.4 Phương pháp phỏng ñoán mẫu còn lại với sự không thay thế: phương pháp này cũng bắt ñầu
tương tự như phương pháp mẫu tiền ñịnh, và phần , và phần lẻ còn lại của giá trị nhiễm sắc thể con
thì ñược xem như là các xác suất. Hay nói một cách khác, các nhiễm sắc thể sẽ tiếp nhận số lượng
con cháu ít nhất là bằng với giá trị nguyên của số lượng mong ñợi, sau ñó quần thể ñược lấp ñầy
bởi sự lựa chọn các cá thể con khác của các chuỗi với xác suất bằng với phần lẻ của giá trị mong
ñợi cho ñến khi số lượng cá thể con bằng kích thước quần thể n. Ví dụ, một nhiễm sắc thể có số
lượng bản sao mong ñợi bằng 1.5 thì chắc chắn sẽ có một bản sao ñược tiếp nhận và các bản sao
khác nếu có với xác suất 0.5. Các kết quả thực nghiệm ñã cho thấy khả năng tốt của phương pháp
này, như một kết quả, phương pháp phỏng ñoán mẫu còn lại với sự không thay thế ñước sử dụng
rộng rãi trong nhiều ứng dụng.
8. Các thuật toán di truyền lai:
Thuật toán GA truyền thống mặc dù tốt nhưng về mặt tổng quát nó không là một thuật toán tối ưu
thành công nhất cho một vài miền ñặc biệt. Sự kết hợp GA với các thuật toán hiện tại sử dụng có
thể tạo ra một thuật toán tốt hơn cả GA lẫn các thuật toán hiện tại. ðối với một bài toán tối ưu có
các thuật toán như tối ưu heuristic, hoặc tri thức miền có thể giúp ñỡ sự tối ưu, nó có thể là một sự
thuận lợi ñể tính toán ñến một thuật giải di truyền lai. Một thuật giải di truyền có thể kết hợp với
các kĩ thuật tìm kiếm ñặc biệt khác nhau ñể hình thành một thuật toán lai mà nó khai thác triển
vọng toàn cục của GA (tìm kiếm toàn cục) và sự hội tụ của các kĩ thuật ñặc biệt (tìm kiếm cục bộ).
Có nhiều kĩ thuật gradient (ví dụ phương pháp giảm gradient, phương pháp kết hợp gradient ) và
các kĩ thuật không gradient khác có giá trị cho việc tìm kiếm tối ưu cục bộ cho một hàm tích phân
thông thường (như hàm liên tục), thậm chí với các hàm tích phân không thông thường, có nhiều
phương pháp heuristic ñã ñược phát triển cho nhiều bài toán phổ biến. Ví dụ các thuật giải tham
lam trong việc tối ưu hóa tổ hợp là một hình thức của tối ưu cục bộ. Kết quả của việc lai GA với
các kĩ thuật tìm kiếm cục bộ khác là GA tìm kiếm các dốc và các kĩ thuật tìm kiếm toàn cục thực
thi trên các dốc này. Vì vậy trong cách tiếp cận này chúng ta dùng GA ñể chạy ñến các hội tụ trọng
yếu và sau ñó cho phép các thuật toán tối ưu cục bộ thực thi tại các ñiểm này, có thể tìm kiếm từ 5
ñến 10% các ñiểm cao nhất trong lần tiến hóa cuối cùng. Với cách tiếp cận này sự khai thác các
ñiểm thích hợp và các vùng trước ñó của các kĩ thuật ñặc biệt có thể hữu dụng trong sự duy trì tính
ña dạng trong quần thể GA, bằng cách ñó cho phép sự ổn ñịnh các quần thể con hình thành tại các
ñỉnh khác nhau trong miền hàm.
Bài Tập:
Bài 1. Hình thức học nào thích hợp nhất ñể nói về GA:
a. Học có giám sát b. Học không giám sát. c. Học tăng cường
Bài 2. Trong ví dụ trong bài giảng về chọn lọc Roulete, nếu bảy số phát sinh ngẫu nhiên là 27, 40,
8, 35, 11, 22, và 4 thì các cá thể tương ứng nào sẽ ñược chọn lựa.
Bài 3: Giả sử rằng cần cực ñại hóa một hàm ba biến f(x1, x2, x3), miền giá trị của mỗi biến là x1 ∈
[-30, 150], x2 ∈ [-0.5, 0.5], x3 ∈ [0, 105]. ðộ chính xác mong ước cho các biến x1, x2, x3 là 0.1,
0.001, và 1000.
a. Thiết kể chuỗi nhiễm nhiễm sắc ñể giải quyết bài toán trên.
b. Số bit tối thiểu cần thiết ñể thỏa ñộ chính xác mong ước là bao nhiêu?
c. Với cách thiết kể chuỗi nhiễm sắc thể như câu a, viết các chuỗi nhiễm sắc thể biểu diễn cho các
ñiểm (x1, x2, x3): (-30, -0.5, 0), (10.5, 0.008, 52000), (72.8, 0.359, 72000),
(150, 0.5, 100000).
Bài 4: Xét các sơ ñồ sau: (i) * 1 * * * * * * * 1, (ii) * * * * * * * * 1 1,
(iii) * 1 * * 1 * * * * *, (iv) * * * * 1 * 0 0 * *, (v) * 1 0 0 0 1 0 * 1 1.
a. Xác ñịnh bậc và ñộ dài của mỗi sơ ñồ.
b. Xác ñịnh xác suất sự tồn tại sự ñột biến cho mỗi sơ ñồ, nếu xác suất ñột biến
pm = 0.1 cho mỗi bit ñơn.
Bài 5. Một phương pháp ánh xạ ñộ tốt của các nhiễm sắc thể (giá trị hàm ñánh giá): u sang ñộ phù
hợp (fitness) của các nhiễm sắc thể: f(u) là phương pháp tỉ lệ cố ñịnh. Ý tưởng của phương pháp là
duy trì một hằng số tỉ lệ r giữa fitness của cá thể có ñộ tốt lớn nhất và fitness của các thể có ñộ tốt
nhỏ nhất. (r cho trước).
Cụ thể hơn, người ta thường ánh xạ ñể thỏa các ñiều kiện sau ñây:
f(umax) = r*f(umin).
u − u min
f(ui) = f(umin) + [f(umax) – f(umin)] i
u max − u min
∑ f (u ) = 1
i
i

Xác ñịnh công thức tổng quát của f(ui).


Bài 6 : Cài ñặt chương trình dùng thuật giải di truyền cực tiểu hóa một hàm nhiều biến liên tục.
Bài 7: Cài ñặt chương trình dùng thuật giải di truyền cài ñặt bài toán người du lịch.

You might also like