Tải bản đầy đủ (.pdf) (53 trang)

cơ sở toán học của giải thuật di truyền

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (327.39 KB, 53 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
VŨ THỊ THU HÀ
CƠ SỞ TOÁN HỌC CỦA GIẢI
THUẬT DI TRUYỀN
LUẬN VĂN THẠC SỸ TOÁN HỌC
THÁI NGUYÊN - NĂM 2010
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
VŨ THỊ THU HÀ
CƠ SỞ TOÁN HỌC CỦA GIẢI
THUẬT DI TRUYỀN
Chuyên ngành: TOÁN ỨNG DỤNG
Mã số: 60.46.36
LUẬN VĂN THẠC SĨ TOÁN HỌC
Người hướng dẫn khoa học:
TS. VŨ MẠNH XUÂN
THÁI NGUYÊN - NĂM 2010
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
i
Mục lục
Mở đầu 1
1 Tổng quan về giải thuật di truyền 3
1.1 Khái quát chung . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Các vấn đề cơ bản của giải thuật di truyền . . . . . . . . 8
1.2.1 Mã hoá - mô tả di t ruyền cho lời giải của bài toán 8
1.2.2 Tạo l ập lời giải ban đầu (khởi tạ o quần thể) . . . 9
1.2.3 Xây dựng hàm phù hợp . . . . . . . . . . . . . . 9
1.2.4 Các toán tử di truyền . . . . . . . . . . . . . . . . 9
1.3 Giải thuật di truyền kinh điển . . . . . . . . . . . . . . . 11


1.3.1 Mã hoá - Biểu diễn các biến bằng véc tơ nhị phân 11
1.3.2 Toán tử chọn lọc . . . . . . . . . . . . . . . . . . 12
1.3.3 Toán tử lai ghép . . . . . . . . . . . . . . . . . . 14
1.3.4 Toán tử đột biến . . . . . . . . . . . . . . . . . . 16
1.3.5 Hàm phù hợp . . . . . . . . . . . . . . . . . . . . 16
1.3.6 Giải thuật di truyền cổ điển . . . . . . . . . . . . 18
1.4 Giải thuật di truyền mã hóa số thực (RCGA) . . . . . . 20
1.4.1 Giới thiệu RCGA . . . . . . . . . . . . . . . . . . 20
1.4.2 Các toán tử của RCGA . . . . . . . . . . . . . . 20
1.4.3 Một số mô hình tiến hóa. . . . . . . . . . . . . . 23
2 Cơ sở toán học của giải thuật di truyền 26
2.1 Định lý sơ đồ của Holland. . . . . . . . . . . . . . . . . . 27
2.1.1 Một số khá i niệm . . . . . . . . . . . . . . . . . . 27
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
ii
2.2 Mô hình Markov của giải thuật di truyền . . . . . . . . . 31
2.2.1 Tính Markov . . . . . . . . . . . . . . . . . . . . 32
2.2.2 Một số kết quả . . . . . . . . . . . . . . . . . . . 35
2.2.3 Xích Markov trong G A . . . . . . . . . . . . . . . 36
2.3 Một số vấn đề khác . . . . . . . . . . . . . . . . . . . . . 40
2.3.1 Dạng biểu diễn ma trận của toán tử lai ghép trong
RCGA . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.2 Điều kiện thà nh công của toán tử lai ghép . . . . 44
2.3.3 Toán tử lai ghép SBX . . . . . . . . . . . . . . . 45
Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . 49
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
1
Mở đầu
Ngày nay sự phát triển mạnh như vũ bão của máy tính điện tử đã

làm thay đổi sâu sắc đến nhiều l ĩnh vực của cuộc sống, với tốc độ tính
toán nhanh và chính xác, nhiều bài toán tính toá n phức tạp trước đây
đã được giải quyết trọn vẹn. Hơn thế nữa, nhiều kỹ thuật tính toán dựa
trên sự mô phỏng hoạt động tự nhiên hay bắt chước suy nghĩ của con
người đã rất phát triển và tạo ra nhiều công cụ tính toán mới có hiệu
năng cao. Gi ải thuật di truyền (GA – Genetic Algorithm) là một tr ong
những công cụ chính trong hệ thống tính toán mềm hay còn gọi là trí
tuệ tính t oán. GA được đề xuất từ khoảng những năm 70 của thế kỷ
trước dựa trên sự mô phỏng quá trình tiến hoá tự nhiên. GA chủ yếu
giải quyết vấn đề tìm nghiệm trong lớp các bài toán tối ưu có độ phức
tạp tính toán lớn. GA tìm kiếm lời giải của bài toán dựa trên một quần
thể được hiểu như một tập những lời giải và tiến hoá quần thể đó dựa
trên các toán tử di truyền như chọn lọc, lai ghép, đột biến. Sau khi được
giới thiệu, GA đã được các nhà toán học và ti n học nghiên cứu và phát
triển rất nhanh, nhiều dạng bi ến thể cũng như vấn đề cải ti ến các toán
tử được đề xuất và kết quả thử nghi ệm cho thấy tính hiệu quả rõ rệt
của giải thuật này.
Tuy vậy, GA là một giải thuật xác suất, hầu hết nó chỉ đưa ra những
lời giải chấp nhận được trong thời g ian ngắn mà chưa chắc đã đạt được
lời giải tối ưu. Kết quả của quá trình tiến hoá để chọn lời giải t ốt nhất
phụ thuộc vào nhiều yếu tố ngẫu nhiên: quần thể khởi tạo ngẫu nhiên,
chọn cá thể để tiến hoá ngẫu nhiên, việc sinh ra cá thể mới cũng là ngẫu
nhiên, . . . Vì vậy việc nghiên cứu cơ sở t oán học của giải thuật để đảm
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
2
bảo chắc chắn sẽ đạt được lời giải tối ưu toàn cục của bài toán l à việc
làm rất khó khăn mặc dù điều này hợp với quy luật tự nhiên và thử
nghiệm đều cho kết quả tốt. Cho tới nay người ta mới chỉ đạt được một
số kết quả sơ bộ về sự hội tụ của giải thuật chủ yếu dựa trên định lý sơ
đồ của Ho llan và dựa trên mô hình Markov.

Đề tài này nhằm tập trung nghiên cứu cơ sở toán học của GA, tìm
hiểu và trình bày một cách có hệ thống một số kết quả nghiên cứu về
mô hình toán học của GA cũng như đánh gi á sự hội tụ của giải thuật.
Do điều kiện nghiên cứu cũng như khả năng lập trình còn hạn chế nên
chưa đặt ra việc thử nghiệm trên những bài to án cụ thể.
Đề tài gồm những nội dung chính sau:
Chương 1 trình bày những vấn đề tổng quan về giải thuật di truyền,
nguyên lý chung, giải t huật di truyền kinh điển dựa trên mã hoá nhị
phân và giải thuật di truyền mã hoá số thực. Mô tả tường minh giải
thuật cũng như một số dạng toán tử di truyền tiêu biểu.
Chương 2 trình bày những vấn đề nghiên cứu về cơ sở toán của giải
thuật bao gồm định lý sơ đồ của Hollan, mô hình Markov của giải thuật
và một số phân tí ch t oán học của các to án t ử.
Như đã nêu trên, do GA là thuật toán xác suất chứ không tiền định
nên việc phân tích mô hình toán học của nó là cực kỳ khó khăn. Luận
văn này chỉ đặt ra mục tiêu là tìm hiểu và tr ình bày lại một cách hệ
thống những nội dung cơ bản như đã nêu.
Dù rất cố gắng song do còn nhiều hạn chế về thờ i gian, kiến thức,. . . nên
luận văn này không tránh khỏi những thiếu sót. Em rất mong được sự
góp ý của các thầy cô cùng các bạn học viên để hoàn thiện hơn nữa hoặc
có thể thác triển tiếp đề tài này.
Trong suốt quá trình làm đề tài em nhận được sự giúp đỡ của rất
nhiều các thầy cô giáo của Đại học Thái Nguyên và các bạn học vi ên
lớp CHTK2, đặc biệt là sự hướng dẫn rấ t tận tình của thầy g iáo TS.Vũ
Mạnh Xuân. Em xin chân thành cảm ơn.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
3
Chương 1
Tổng quan về giải thuật di truyền
1.1 Khái quát chung

Giải thuật di truyền (Gennetic algorithims - GA) là k ỹ thuật chung
giúp giải quyết vấn đề - bài toán bằng cách mô phỏng sự tiến hoá của
con người hay của sinh vật nói chung trong điều kiện quy định sẵn của
môi trường.
Giải thuật di truyền cũng như các thuật toán tiến hoá nói chung hình
thành dựa trên quan niệm cho rằng, quá trình tiến hoá tự nhiên là quá
trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Quan
niệm này có thể được xem như một tiên đề đúng không chứng minh được
nhưng phù hợp với thực tế khách quan. Quá trình tiến hoá thể hiện tính
tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện
hơn) thế hệ trước. Tiến hoá tự nhiên được duy trì nhờ 2 quá trình cơ
bản: sinh sản và chọn lọc tự nhiên. Xuyên suốt quá trình tiến hoá tự
nhiên các thế hệ mới luôn được sinh ra để bổ sung, thay thế t hế hệ cũ.
Cá thể nào không thích ứng được với môi trường sẽ bị đào thải. Sự thay
đổi môi trường cũng là động lực thúc đẩy quá trình tiến ho á. Ngược lại,
tiến hoá cũng tác động trở lại góp phần làm thay đổi môi trường.
Các cá thể mới sinh ra trong quá trình ti ến hoá nhờ sự lai ghép thế
hệ cha mẹ. Một cá thể mới có thể mang những tính t rạng của cha mẹ (di
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
4
truyền), cũng có thể mang những tính trạng hoàn toàn khác (đột biến).
Di truyền và đột biến là 2 cơ chế có vai trò quan trọng như nhau trong
quá trình tiến hoá. Dù rằng đột biến xảy ra xác suấ t nhỏ hơn nhiều so
với hiện tượng di truyền.
Giải thuật di t ruyền sử dụng các thuật ngữ vay mượn của di truyền
học. Ta có thể nói về các cá thể ( hay kiểu gen, cấu trúc) trong mộ t quần
thể, các cá thể này cũng còn được gọi là các chuỗi hay các Nhiễm sắc
thể (NST). Trong GA, ta chỉ nói về những cá thể có 1 NST; các NST
được tạo thành từ các đơn vị - các gen - biểu diễn trong một chuỗi tuyến
tính, mỗi gen kiểm soát một (số) đặc trưng. Gen với những đặc trưng

nhất định có vị trí nhất định trong NST. Bất cứ đặc trưng nào của mỗi
cá thể có t hể tự biểu hiện một cách phân biệt, và gen có thể nhận mộ t
số giá trị khác nhau (các giá trị về tính năng). Một vấn đề - bà i toán đặt
ra sẽ được mã hoá thành các chuỗi bit với chiều dài cố định. Nói một
cách chính xác là các thông số của bài toán sẽ được chuyển đổi và biểu
hiện lại dưới dạng các chuỗi bit. Các thông số này có thể là các biến của
một hàm hoặc hệ số của một biểu thức toán học. Người ta gọi các chuỗi
bit này là mã genome (gen) ứng với mỗi cá thể, các gen đều có cùng
chiều dài. Nói ngắn gọn, m ột lời giải sẽ được biểu diễn bằng một chuỗi
bit cũng giống như mỗi cá thể đều được quy định bằng gen của cá thể
đó vậy. Đối với thuật giải di truyền một cá thể chỉ có 1 gen duy nhất
và 1 gen cũng chỉ phục v ụ cho m ột cá thể duy nhất. Mỗi kiểu (nhóm)
gen (ta gọi là 1N ST) sẽ biểu diễn m ột lời giải của bài toán đang giải (ý
nghĩa của 1 NST cụ thể được người sử dụng xá c định trước), một tiến
trình tiến hoá được thực hiện trên 1 quần thể các NST tương ứng với
một quá trình tì m kiếm lời giải trong không gia n lời giải. Tìm kiếm đó
cần cân đối hai mục tiêu (có vẻ mâu thuẫn nhau). Khai thác những lời
giải tốt nhất và khảo sát không gian tìm kiếm. GA là phương pháp tìm
kiếm (độc lập miền) tạo được sự cân đối đáng kể giữa việc khai thác và
khảo sát không gian tìm kiếm .
Thực ra, GA thuộc lớp các giải thuật xác suất, nhưng l ại rất khác
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
5
những giải thuật ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực
tiếp và ngẫu nhiên. Khác biệt quan trọng giữa tìm kiếm của GA và các
phương pháp tìm kiếm khác là GA duy trì và xử lý một tập các lời giải
(ta gọi là một quần thể) - tất cả những phương pháp khác phần l ớn xử
lý m ột đi ểm tro ng không gian tìm kiếm. Chính v ì vậy, GA mạnh hơn
các phương pháp tìm kiếm hiện có rất nhiều.
GA thực hiện tiến trình tìm kiếm lờ i giải tối ưu theo nhiều hướng

bằng cách duy tr ì một quần thể các lời gi ải và thúc đẩy sự thành hì nh
và trao đổi thông tin giữa các hướng này. Quần thể trải qua tiến trình
tiến hoá, ở mỗi t hế hệ l ại tái sinh các lời giải tương đối "tốt"; trong k hi
các lời giải tương đối "xấu" thì chết đi. Để phân biệt các lời giải khác
nhau; hàm mục tiêu được dùng để đóng vai t rò môi trường.
Các thuật to án, tuy có những điểm khác biệt, nhưng đều mô phỏng
các quá t rình cơ bản: lai ghép, đột bi ến, sinh sản và chọn lọc tự nhiên.
* Quá trình lai ghép (Crossover): Phép lai là quá trình hình thành
nhiễm sắc thể mới trên cơ sở nhiễm sắc thể cha - mẹ, bằng cách ghép
một hay nhiều đoạn gen, hai (hay nhiều) nhiễm sắc thể cha - mẹ với
nhau. Phép lai xảy ra xác suất P
c
có thể mô phỏng như sau:
• Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quầ n thể. Giả
sử các nhiễm sắc thể của cha - mẹ đều có m gen.
• Tạo một số ngẫu nhiên trong khoảng từ 1 đến m − 1 (ta gọi là
điểm lai). Điểm lai chứa các chuỗi cha - mẹ dài m thành hai nhóm chuỗi
con dài m
1
và m
2
. Hai chuỗi nhiễm sắc thể con mới sẽ là m
11
+ m
22

m
21
+ m
12

.
• Đưa hai cá thể mới này vào quần thể để tham gia các quá trình tiến
hoá tiếp theo .
* Quá trình đột biến (Muta tion)
Đột biến là hiện tượng cá thể con mang một (số) tính trạ ng không
có trong mã di t ruyền của cha - mẹ. Phép đột biến xảy ra với xác suấ t
P
m
, nhỏ hơn rất nhiều so với xác suất lai P
c
. Phép đột biến có thể mô
phỏng như sau:
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
6
• Chọn ng ẫu nhiên một cá thể bất kỳ cha - mẹ trong quần thể.
• Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m, 1 ≤ k ≤ m.
• Thay đổi gen t hứ k và trả cá thể này về quần thể để tham gia quá
trình tiến hoá tiếp theo.
* Quá trình sinh sản và chọn lọc (Selection)
Phép tái sinh là quá trình trong đó, các cá thể được sao chép trên cơ
sở độ thí ch nghi của nó. Độ thích nghi là một hàm gán một giá trị thực
cho các cá thể trong quần thể. Quá trình này có thể được mô phỏng như
sau:
• Tính độ thích nghi của từng cá thể trong quần thể hiện hành, lập
bảng cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá
thể). Giả sử quần thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là
F
i
, tổ ng dồn thứ i là F
ti

, tổ ng độ thích nghi của t oàn quần thể là F
m
.
• Tạo một số ngẫu nhiên F trong đoạn từ 0 đến F
m
.
• Chọn cá thể thứ k đầu tiên thoả mãn F ≥ F
tk
đưa vào quần thể
của thế hệ mới.
Phép chọn là quá trình lo ại bỏ các cá thể xấu trong quần thể để chỉ
giữ lại trong quần thể các cá thể tốt. Phép chọn có thể được mô phỏng
như sau:
• Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần.
• Loại bỏ các cá thể cuối dãy để chỉ giữ lại n cá thể tốt nhất. (Ta giả
sử quần thể có kích thước cố định n).
Một g iải thuật di truyền, gi ải một bài t oán được cho phải có 5 thành
phần sau:
+ Một cấu trúc dữ liệu I biểu diễn không gian lời giải của bà i toán.
+ Phương phá p khởi tạo quần thể ban đầu P (0).
+ Hàm đị nh ng hĩa độ t hích nghi eval (.) đóng vai trò môi trường.
+ Các phép toán di truyền như đã mô phỏ ng trên.
+ Và cá c tham số g iải thuật di tr yền sử dụng ( kích thước quần thể,
xác suất lai, đột biến, ).
* Cấu trúc giải thuật di truyền tổng quát.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
7
Bắt đầu
Khởi tạo quần thể
Mã hoá các biến

Đánh giá độ thích nghi
Chọn lọc
Lai ghép
Đột biến
Thoả điều kiện dừng
Kết quả
Kết thúc
Không
Thoả
Hình 1 .1 : Sơ đồ cấu trúc thuật to án di truyền
Bắt đầu:
t = 0
Khởi tạo P (t)
Tính độ thích nghi cho các cá thể thuộc P (t).
Khi (điều kiện dừng chưa thoả) lặp.
t = t + 1;
Tái sinh P

(t) từ P (t − 1);
Lai Q(t) t ừ P (t − 1);
Đột biến R(t) từ P (t − 1);
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
8
Chọn lọc P(t) từ P (t − 1) ∪ Q(t) ∪ R(t) ∪ P(t);
Hết lặp
Kết thúc.
1.2 Các vấn đề cơ bản của giải thuật di truyền
1.2.1 Mã hoá - mô tả di truyền cho lời giải của bài toán
Việc mô tả di truyền cho lời giải cho bài toán gồm hai phần cơ bản:
Xây dựng cấu trúc gen cho mỗi lời g iải của bài toán để từ mỗi

lời giải ta có thể m ã hoá thành một NST (chuỗi các gen).
Giải mã các NST để nhận được lời giả i.
Đây là vấn đề cần giải quyết trước khi giả i bà i toán với GA. Tuỳ
thuộc vào nội dung của mỗi bài toán mà ta có cách m ã hoá khác nhau.
Sau đây là các phương pháp m ã hoá hay được sử dụng:
Mã hoá dạng chuỗi nhị p hân: đây là phương pháp thông dụng và cơ
bản nhất được sử dụng ngay từ bước ban đầu khi nghiên cứu GA . Trong
phương pháp này mỗi NST là một chuỗi các bit 0 và 1.
Mã hoá thứ t ự: được sử dụng trong bài toán có sắp xếp thứ tự. Ở đây
mỗi NST là một chuỗi cá c số ng uyên thể hiện thứ tự phân bố lời giải
của bài toá n.
Mã hoá theo giá trị: được sử dụng tro ng các bài to án m à mỗ i lời giải
là tập các g iá trị (ví dụ tập số thực). Trong phương pháp này, mỗi NST
là một chuỗi các giá trị có mối quan hệ tương ứng với bài toán.
Mã hoá dạng cây: được sử dụng chủ yếu trong các biểu thức toán học,
trong phương pháp m ã hoá này mỗi NST là một cây của một nhóm đối
tượng nào đó.
Mã hoá số thực: Mỗi NST được mã hoá là một véc tơ trong không
gian R
m
chẳng hạn X = (a
1
, a
2
, , a
m
) với các a
i
∈ R. Cách mã hoá này
thường tự nhiên đối với các bài toán tối ưu số và được phát triển rất

mạnh trong thờ i gian gần đây.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
9
1.2.2 Tạo lập lời giải ban đầu (khởi tạo quần thể)
Tập lời giải ban đầu thường được khởi tạo ngẫu nhiên từ miền xác
định của các lời giải. Cách tạo lập tập lời giả i ban đầu phụ thuộc rất
nhiều vào cách mã hoá NST.
Với phương pháp mã hoá nhị phân: xây dựng NST bằng cách tạo
ngẫu nhiên chuỗi các bit 0 hoặc 1.
Với phương pháp mã ho á thứ t ự: xây dựng N ST ban đầ u bằng cách
hoán vị ngẫu nhi ên các thứ t ự.
Với phương pháp mã hoá theo giá trị: tạo ngẫu nhiên từng gi á trị
trong miền xác đị nh của lời giải để tạo ra chuỗi NST ban đầu.
Với mã hoá số thực: tạo ngẫu nhiên N véc tơ thực trong R
m
.
1.2.3 Xây dựng hàm phù hợp
Hàm phù hợp đánh giá khả năng phù hợp của tập lời giải theo yêu
cầu bài to án. Hàm này được xây dựng cho từng bài toán với yêu cầu cụ
thể. Thông thường trong các bài toán tối ưu hàm này chính là hàm mục
tiêu của bài t oán.
1.2.4 Các toán tử di truyền
a. Toán tử chọn lọc
Trong quá trình thực hiện của g iải thuật di t ruyền, sau mỗi lần tiến
hoá ta chỉ giữ lại các cá thể có độ phù hợp cao còn các cá thể phù hợp
thấp bị loại bỏ. Toán tử chọn lọc thường giữ lại 50% các cá thể phù hợp
nhất. Tuy nhiên người ta cũng phá t triển nhiều sơ đồ chọn khác nhau
nhằm là tăng tính đa dạng của quần thể, tránh sự hội tụ sớm.
b. Toán tử lai ghép
Bước 1: Tạo ra tập NST để tạo sinh từ quần thể bằng cách chọn

ngẫu nhiên N NST từ M NST (M là kích cỡ q uần thể).
Có nhiều cách chọn:
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
10
Chọn ngẫu nhiên theo thứ tự: lặp N lần việc tạo ngẫ u nhiên ra một
số nguyên i thuộc kho ảng [1, M] để chọn NST thứ i.
Chọn theo trọng số: tạo trọng số tích luỹ cho M NST theo công thức:
p
i
=
i
M

k−1
k
; (với bài toán tìm min) (1.1)
p
i
=
M − i + 1
M

k−1
k
; (với bà i toán tìm max) (1.2)
Sau khi có trọng số tích luỹ cho NST, ta lần lượt tạo các xác suất
ngẫu nhiên r và duyệt từ NST đầu tiên đến khi gặp NST có t rọng số
tích luỹ lớn hơn r thì chọn nó.
Bước 2: Sau khi chọn được N NST, lần lượt lấy ra từng cặp NST để
lai ghép tạo ra hai NST mới. Một số dạng toán tử lai ghép hay dùng là :

Lai ghép 1 điểm: chọn ngẫu nhiên một vị trí sau đó hoán vị phần
đứng sau vị trí vừa chọn giữa ha i NST cha và mẹ để nhận được hai NST
con.
Lai ghép hai điểm: chọn ngẫu nhiên hai vị trí trong một N ST, sau đó
hoán vị các giá trị đứng giữa hai điểm đã chọn của hai NST cha mẹ để
nhận được hai NST con.
Lai ghép mặt nạ: tạo một mặt nạ ngẫu nhiên có số bit bằng chiều dài
của NST. Ta sẽ hoán vị các giá trị của hai NST cha và mẹ ở những vị
trí tương ứng với vị trí bit 1 của mặt nạ.
c. Toán tử đột biến: Toán tử đột biến được xây dựng để tránh việc
nhận được giá trị tối ưu cục bộ . Đột biến gây ra thay đổi ngẫu nhiên
trên từng bit của NST để tạo ra một NST mới.
d. Tạo sinh: Chọn các cá thể từ quần thể hiện thời làm quần thể mới
cho lần lặp kế tiếp.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
11
1.3 Giải thuật di truyền kinh điển
Giải thuật di truyền kinh điển sử dụng mã hóa nhị phân, mỗi cá thể
được mã hóa là một chuỗi nhị phân có chiều dài cố định.
1.3.1 Mã hoá - Biểu diễn các biến b ằng véc tơ nhị phân
Ta sử dụng véc tơ nhị phân có độ dài L như một NST để biểu diễn
giá trị thực của biến x ∈ [l
x
, u
x
]. Độ dài L của NST phụ thuộc vào yêu
cầu cụ thể của bà i toán. Một bit mã hoá x ứng với một giá trị tro ng
khoảng [0, 2
L
] sẽ được ánh xạ lên giá trị thực thuộc miền [l

x
, u
x
]. Nhờ
đó t a có thể kiểm soát miền giá trị của các biến và tính chính xác của
chúng. Tỷ lệ co giãn của ánh xạ được tính như sau:
g =
u
x
− l
x
2
L
Giá trị x tương ứng với chuỗi NST nhị phân là :
x = l
x
+ decimal(NST ) ∗ g
Trong đó, decimal(NST) là giá trị thập phân của chuỗi NST nhị phân.
Chẳng hạn ta muốn tìm cực tiểu một hàm k biến f(x
1
, . . . , x
k
) : R
k
→ R.
Giả sử thêm là mỗi biến x
i
có thể nhận giá trị trong miền D
i
= [a

i
, b
i
] ⊆
R và f(x
1
, . . . , x
k
) > 0 với mọi x
i
thuộc D
i
. Ta muốn tối ưu ho á hàm f
với độ chính xác cho trước là 6 số lẻ đối với giá trị của các biến.
Rõ ràng là để đạt được độ chính xác như vậy mỗi miền Di được phân
cắt thành (b
i
− a
i
) ∗ 10
6
miền con bằng nhau. Gọi m
i
là số nguyên nhỏ
nhất sao cho: (b
i
− a
i
) ∗ 10
6

≤ 2
mi
− 1
Như vậy, mỗi biến x
i
được biểu diễn bằng một chuỗi nhị phân có chiều
dài m
i
. 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 x
i
X
i
= a
i
+ decimal(1100 01
2
).
b
i
− a
i
2
m
i
− 1
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
12
trong đó decim al(chuỗi

2
) cho biết giá tr ị thập phân của chuỗi nhị phân
đó. Bây giờ, 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 dài L =
k

i=1
m
i
trong đó m
1
bit đầu tiên biểu diễn các giá trị trong khoảng [a
1
, b
1
]; ; m
k
bit cuối cùng biểu diễn giá trị trong khoả ng [a
k
, b
k
].
Để khởi tạo quần thể, chỉ cần đơn giả n tạo pop-size (kích cỡ quần thể)
nhiễm sắc thể ngẫu nhiên theo từng bit. Phần còn lại của thuật giải di
truyền r ất đơn giản: trong mỗi thế hệ, ta lượng giá từng nhiễm sắc thể
(tính giá trị hàm f trên các chuỗi biến nhị phân đã được giải mã), chọn
quần thể mới thoả phân bố xác suất dựa trên độ thích nghi và thực hiện
các phép đột biến và lai để tạo các cá thể thế hệ mới. Sau một số thế
hệ, khi không còn cải thiện thêm được gì nữa, nhiễm sắc thể tốt nhất sẽ
được xem như lời g iải của bài to án tối ưu (thường l à toàn cục). Thô ng

thường, ta cho dừng thuật giải di truyền sau một số bước lặp cố định
tuỳ thuộc vào điều kiện về tốc độ về tài nguyên máy tính.
1.3.2 Toán tử chọn lọc
a) Sử dụng bánh xe Roulette
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. Nhưng có lẽ đơn giản và hiệu quả nhất là sử dụng bánh xe Roulette
(roulette wheel), mỗi cá thể trong quần t hể chiếm một khe có độ rộng
tỷ lệ thuận với giá trị phù hợp. Độ rộng của khe được tính bằng tỷ lệ %
giá trị phù hợp của một cá thể trên tổng giá trị phù hợp toàn quần thể.
Gọi f
i
là độ phù hợp của cá thể thứ i trong quầ n thể gồ m N cá thể
khi đó cá thể i sẽ được chọn với xác suất p
i
=
f
i
N

i=1
f
i
. Trên vòng tròn
Roulette mỗi chuỗi trong quần thể chiếm một khe có độ rộng tỷ lệ với
độ phù hợp của chuỗi. Độ rộng của khe được tính theo tỷ lệ phần trăm
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
13
độ phù hợp của chuỗi với tổng độ phù hợp của toàn quần thể là 100%.
b. Thủ tụ c xếp hạng các cá thể.

Trong thủ tục này các 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ể tốt nhất và cá thể cuối cùng là cá thể
tồi nhất. Trong thủ tục này cá thể thứ (N − j) trong dãy sẽ có xác suất
chọn lựa là p
N−j
=
j
N

k=1
k
Các bước tiến hành của thủ tục là:
- Sắp xếp các chuỗi theo thứ tự giảm dần của hàm mục tiêu (bài toán
cực đại) hoặc theo thứ tự tăng dần của hàm mục tiêu (bài toán cực tiểu).
- Tính độ phù hợp của chuỗi theo hình
Độ phù hợp
của chuỗi f
i
Hình 1.2: Thủ tục xếp hạng tuyến tính
c. Thủ tụ c chọn l ọc cạnh tranh
Trong thủ tục này chúng ta tiến hành như sa u:
- Chọn t cá thể từ quần thể hiện t ại mộ t cách ngẫu nhiên và chọn cá
thể tốt nhất trong t cá thể đó để sa o chép sang quần thể tạm thời.
- Lặp lại bước trên N lần chúng ta sẽ có quần thể tạ m thời.
Giá trị t đượ c gọi là kích cỡ của chọn l ọc cạnh tranh. Khi t = 2 chúng
ta chọn lọc cạnh tranh nhị phân.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
14
1.3.3 Toán tử lai ghép
a. Lai ghép m ột điểm

Lai ghép một điểm được thực hiện rất đơn giản. Với hai cá t hể cha mẹ
đã chọn P
1
, P
2
; toán tử này cần sinh ngẫu nhiên một vị trí k( 1 < k < L),
sau đó hai cá thể con được tạo thành bằng cách tráo đổi các gen của
cặp cha mẹ tính từ điểm cắt. Chẳng hạn
P
1
= (1 1 1 0 0 0 1 0 1 0) P
2
= (0 1 0 1 1 0 0 1 1 1)
là hai chuỗi nhị phân độ dài 10, giả sử điểm cắt đã chọn là k = 7, thế
thì hai con được sinh ra là :
C
1
= (1 1 1 0 0 0 1 1 1 1) C
2
= (0 1 0 1 1 0 0 0 1 0)
Thủ tục l ai ghép đơn giản như sau :
Procedure l ai1diem(k; P1, P2; var C1, C2);
Begin
For i := 1 to k do
Begin
C1[i] := P 1[i];
C2[i] := P 2[i];
End;
For i := k + 1 to L do
Begin

C1[i] := P 2[i];
C2[i] := P 1[i];
End;
End;
b. Lai ghép nhiều điểm
Lai ghép nhiều điểm được thực hiện tương tự như lai ghép một điểm.
Với hai cá thể cha mẹ đã chọn P
1
, P
2
; toán tử này cần sinh ngẫu nhiên k
vị trí i
1
, , i
k
; có t hể giả thiết thêm i
1
< i
2
< < i
k
. Các điểm cắ t này
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
15
chia các cá thể đã chọn thành các đoạn được đánh số chẵn lẻ; sau đó hai
cá thể con được tạo thành bằng cách tráo đổi các gen của cặp cha mẹ
tuỳ theo các đoạn 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.
Chẳng hạn
P

1
= (1 1 1 0 0 0 1 0 1 0) P
2
= (0 1 0 1 1 0 0 1 1 1)
là hai chuỗi nhị phân độ dài 10, giả sử các điểm cắt đã chọn là 2, 5, 8 thế
thì hai con được sinh ra là:
C
1
= (1 1 1 0 0 0 1 1 1 1) C
2
= (0 1 0 1 1 0 0 0 1 0)
Thủ tục l ai ghép được viết tương tự như trên.
c. Lai ghép m ặt nạ
Loại lai ghép này còn gọi là lai ghép đều; với hai cá thể cha mẹ đã
chọn P
1
, P
2
trước hết phát sinh một chuỗi nhị phân ngẫ u nhiên cũng có
độ dài L gọi là chuỗi mặt nạ. Sau đó cá c con được t ạo ra dựa trên chuỗi
mặt nạ này để quyết định lấy thành phần của cá thể cha hay mẹ. Chẳng
hạn gen thứ i của cá thể con C
1
được lấy là gen thứ i của P
1
nếu bit
mặt nạ tương ứng là 1 và lấy gen thứ i của P
2
nếu bit mặt nạ là 0. Cá
thể con C

2
được tạo ngược lại.
Ví dụ: Với
P
1
= (1 1 1 0 0 0 1 0 1 0) P
2
= (0 1 0 1 1 0 0 1 1 1)
là hai chuỗi nhị phân độ dài 10, giả sử chuỗi bít nhị phân (mặt nạ) được
khởi tạo ngẫu nhiên là U = (0 1 1 0 0 1 1 0 0 1) thế thì hai con được sinh
ra là :
C
1
= (0 1 1 1 1 0 1 1 1 0) C
2
= (0 1 0 0 0 0 0 0 1 1)
tục la i ghép như sau :
Procedure l ai_mat_na(U, P1, P2; var C1, C2);
Begin
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
16
For i := 1 to L do
Begin
If U[i] = 1 then
Begin C1[i] := P 1 [i]; C2[i] := P2[i]; End
Else
Begin C1[i] := P 2 [i]; C2[i] := P1[i]; End;
End;
End;
1.3.4 Toán tử đột biến

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 p
m
.
Mỗi bit đều có cơ hội đột biến như nhau. Thuật toán đột biến thường
dùng là:
FOR i := 1 TO m DO
IF random[0, 1] < p
m
THEN invert(P arent[i]);
trong đó invert(u) là hàm đảo ngược bit u.
1.3.5 Hàm phù hợp
Biến đổ i hàm m ục tiêu thà nh hàm phù hợp:
Do giá trị phù hợp trong giải thuật di truyền là không âm, nên để áp
dụng GA cho bài toán tối ưu ta cần phải chuyển giá trị hàm mục tiêu
thành hàm phù hợp.
Nếu bài toán tối ưu là cực tiểu hàm mục tiêu g(x) thì ta chuyển sang
hàm phù hợp như sau:
f(x) =



C
max
− g(x) g(x) < C
max
0 ngược lại
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
17
Trong đó, C

max
là tham số vào do người sử dụng chọn, thường chọn C
max
là giá trị lớn nhất của hàm mục tiêu trong tập hiện t ại.
Nếu bài toán tối ư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
f(x) =



C
min
+ g(x) g(x) + C
min
> 0
0 ngược lại
Trong đó C
min
là tham số đầu vào, C
min
có thể là giá trị tuyệt đối bé
nhất của các hàm mục tiêu trong t ập hiện tạ i hoặc trong k vòng lặp
cuối.
Thang đo giá trị phù hợp:
Việc điều chỉnh số lượng con cháu cho mỗi cá thể trong quần thể là
rất quan trọng. Đi ều này thể hiện ở chỗ: 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ó một số cá thể “siêu khoẻ” có khả
năng chiếm lĩnh phần lớn quần thể và có thể dẫn đến hội tụ sớm không
mong muốn (vì các cá thể “siêu khoẻ” này sẽ có thể có rất nhiều con,
nếu cứ để như vậy mà chọn lọc thì giá trị phù hợp của các cá thể thành

phần sẽ ti ến gần đến giá trị phù hợp của cá thể tốt nhất. Và như vậy
sau nhiều 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ể tốt nhất trong thế hệ tiếp theo. Khi đó giải thuật di truyền
trở thành tìm kiếm ngẫu nhiên giữa các cá thể thành phần). Thang đo
giá trị phù hợp sẽ giải quyết vấn đề này.
Một trong các thủ tục xác định thang đo đơn giản và hiệu quả là
thang đo tuyến tính sau:
Nếu gọi f là giá trị phù hợp ban đầu và f

là giá trị phù hợp sau khi
biến đổi:
Ta có: f

= a ∗ f + b
Trong đó a và b được chọn sao cho:
f

avg
= f
avg
; (1.3)
f

max
= C
mult
∗ f
avg
; (1.4)
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên

18
Với C
mult
là bản sao cần thiết đối với thành viên tốt nhất. Đối với các
quần thể kích cỡ nhỏ (50 − 100 cá thể), C
mult
= 1.2 ÷ 2 là khá hiệu quả.
f
avg
: giá trị phù hợp trung bình ban đầu.
f

avg
: giá trị phù hợp trung bình sau khi biến đổi.
Như vậy, biểu thức (1.3) bảo đảm cho các cá thể có giá t rị phù hợp
trung bình cũng được tham gia sản sinh ra con cháu. Biểu thức (1.4)
kiểm soát số con cháu tham gia vào quần t hể mới của cá thể có độ phù
hợp ban đầu cực đại.
Tuy nhiên vào giai đoạn cuối của GA khi g iá trị phù hợ p trung bình
của quần thể gần với giá trị phù hợp của cá thể tốt nhất thì thang đo
tuyến tính trên có thể làm cho giá trị phù hợp bị âm. Để khắc phục
người ta đưa ra biểu thức f

min
= 0 để thay thế cho biểu thức (1.4).
Tóm lại, giải thuật di truyền cổ điển có thể mô tả một cách khá tường
minh như sau :
1.3.6 Giải thuật di truyền cổ điển
Algorithm CGA;
BEGIN

{Khởi tạo quần thể m cá thể}
t := 0;
Create initial population B
0
= (b
10
, b
20
, , b
m0
);
WHILE (stopping condition not fulfilled) DO
BEGIN
{chọn lọc tỷ lệ}
FOR i := 1 TO m DO
BEGIN
r := random[0, 1];
k := 1;
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
19
WHILE (k < m and r <
i

j:=1
f(b
j,t
)
m

j:=1

f(b
j,t
)
) DO k := k + 1;
b
i,t+1
:= b
k
;
END;
{lai ghép 1 điểm}
FOR i := 1 TO m − 1 STEP 2 DO
BEGIN
IF random[0, 1] < p
c
THEN
BEGIN
pos := random{1, , n − 1};
FOR k := pos + 1 TO n DO
BEGIN
aux := b
it+1
[k];
b
it+1
[k] := b
i+1t+1
[k];
b
i+1t+1

[k] := aux;
END;
END;
END;
{mutat ion}
FOR i := 1 TO m DO
FOR k := 1 TO n DO
IF random[0, 1] < p
m
THEN
invert(b
it+1
[k]);
t := t + 1;
END;
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
20
1.4 Giải thuật di truyền mã hóa số thực ( RCGA)
1.4.1 Giới thiệu RCGA
Trong phần này ta quan tâm tới giải t huật di truyền mã hóa số thực
(RCGA- Real-Coded Genetic Algorit hm) để giả i các bài toán tối ưu giá
trị thực trong không gian R
n
và không có các ràng buộc đặc biệt.
Một cách tổng quát, bài to án tối ưu số thực có thể xem l à một cặp
(S, f), trong đó S ⊆ R
n
và f : S → R là mộ t hàm n biến. Bài to án đặt
ra là tìm véc tơ x = (x
1

, x
2
, , x
n
) ∈ S sao cho f(x) đạt giá trị cực tiểu
trên S. Nghĩa là với mọi y ∈ S phả i có f(x) ≤ f(y) . Hàm f ở đây có thể
không liên tục nhưng cần bị chặn trên S (đố i với các bài toán tì m cực
đại có thể chuyển về cực tiểu một cách đơn giản).
Trong GA mã hoá số thực, mỗi cá thể được biểu diễn như một véc tơ
thực n chiều: b = (x
1
, x
2
, , x
n
), x
i
∈ R.
Như vậy một quần thể kích cỡ m là một tập hợp có m véc tơ trong
R
n
. Ta cũng có thể xem một qưần thể kích cỡ m như một ma trận thực
cấp (m × n), đây là cách m ã hoá tự nhiên và thuận tiện trong việc thực
hiện các toán tử tiến hóa. Sau đây ta sẽ xem xét cụ thể hơn các toán tử
này trong giải thuật di truyền mã hoá số thực.
1.4.2 Các toán tử c ủa RCGA
1.4.2.1. Toán tử chọn lọc
Ta thấy toán tử chọn lọc đã trình bày trong GA kinh điển không cần
một đòi hỏi đặc biệt nào về việc mã hoá cá thể, vì vậy trong GA mã hoá
số thực, toán tử chọn l ọc vẫn được áp dụng như đối với GA kinh điển.

Cụ thể gồm có cá c dạng: chọn lọc tỷ lệ, chọn lọc xếp hạng hay chọn lọc
cạnh tranh.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên
21
1.4.2.2. Toán tử lai ghép
GA mã hoá số thực cũng áp dụng các toán tử lai ghép như GA kinh
điển bao gồm lai ghép 1 điểm, lai ghép nhi ều điểm, lai ghép mặt nạ.
Ngoài ra, do cách mã hóa quần thể, người ta còn nghiên cứu và đề xuấ t
nhiều dạng khác nhau của toán tử lai ghép trong RCGA. Dưới đây là
một số dạng toán tử lai ghép thường dùng với giả thiết cặp cá thể cha
mẹ đã chọn để tiến hành lai ghép là X = (x
1
, , x
m
) và Y = (y
1
, , y
m
).
a. Lai ghép m ột điểm (One-point Crossover)
Lai ghép một điểm là loại lai ghép đơn giả n nhất, được sử dụng cả
trong GA mã hoá nhị phân lẫ n GA mã hoá số thực. Với cặp cha mẹ
X, Y l à các véc tơ m chiều, toán tử lai ghép một điểm chọn ngẫu nhiên
một vị t rí k(1 ≤ k ≤ m) rồi sinh ra hai cá thể con theo công thức:
X

= (x
1
, , x
k

, y
k+1
, , y
m
)
Y

= (y
1
, , y
k
, x
k+1
, , x
m
)
b. Lai ghép đa điểm (Multi-point Crossover)
Toán tử lai ghép đa điểm được mô tả như sau:
Chọn ngẫu nhiên k điểm j
1
, , j
k
(1 <= j
1
< j
2
< < j
k
< m),
lai ghép đa điểm tạo ra cặ p con (X


, Y

) bằng cách đánh số các đoạn
[j
t
, j
t+1
] từ 0 trở đi, sau đó:
x

i
lấy bằng x
i
tại những đoạn có số hiệu chẵn và bằng y
i
tại những
đoạn có số hiệu lẻ.
y

i
lấy bằng x
i
tại những đoạn có số hiệu lẻ và bằng y
i
tại những đoạn
có số hiệu chẵn.
c. Lai ghép đều hoặc lai ghép mặ t nạ (Uniform Crossover)
Trong lai ghép mặt nạ, ta chọn ngẫu nhiên kvị trí 1 < i
1

< i
2
< <
i
k
< m. Các cá thể co n X

, Y

được lập như sau :
X

i
=



x
i
i ∈ {i
1
, , i
k
}
y
i
i ∈ {i
1
, , i
k

}
Y

i
=



y
i
i ∈ {i
1
, , i
k
}
x
i
i ∈ {i
1
, , i
k
}
Ngoài các dạng lai ghép kinh điển trên, sau đây sẽ trình bày một số dạng
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên

×