GA tìm kiếm lời giải của bài toán dựa trên một quầnthể được hiểu như một tập những lời giải và tiến hoá quần thể đó dựatrên các toán tử di truyền như chọn lọc, lai ghép, đột biến.. bảo c
Trang 1VŨ 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
Trang 2LUẬ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
Trang 3Mục lục
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 truyề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
Trang 42.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 GA 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
Trang 5Mở đầ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ínhtoá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ựatrên sự mô phỏng hoạt động tự nhiên hay bắt chước suy nghĩ của conngười đã rất phát triển và tạo ra nhiều công cụ tính toán mới có hiệunăng cao Giải thuật di truyền (GA – Genetic Algorithm) là một trongnhữ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 toá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ếugiải quyết vấn đề tìm nghiệm trong lớp các bài toán tối ưu có độ phứctạ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ầnthể được hiểu như một tập những lời giải và tiến hoá quần thể đó dựatrên các toán tử di truyền như chọn lọc, lai ghép, đột biến Sau khi đượcgiới thiệu, GA đã được các nhà toán học và tin học nghiên cứu và pháttriể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ệtcủ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ữnglời giải chấp nhận được trong thời gian ngắn mà chưa chắc đã đạt đượclờ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ấtphụ 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ẫunhiên, Vì vậy việc nghiên cứu cơ sở toán học của giải thuật để đảm
Trang 6bả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ệclà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 Hollan 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ìmhiể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ênchư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 thuậ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ảithuậ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ảithuậ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 toá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 địnhnê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ậnvă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ênluậ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ấtnhiề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ênlớp CHTK2, đặc biệt là sự hướng dẫn rất tận tình của thầy giáo TS.VũMạnh Xuân Em xin chân thành cảm ơn
Trang 7Chươ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 chunggiúp giải quyết vấn đề - bài toán bằng cách mô phỏng sự tiến hoá củacon người hay của sinh vật nói chung trong điều kiện quy định sẵn củamô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ìnhthà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 Quanniệm này có thể được xem như một tiên đề đúng không chứng minh đượcnhưng phù hợp với thực tế khách quan Quá trình tiến hoá thể hiện tínhtối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiệnhơ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ế thế 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 trạng của cha mẹ (di
Trang 8truyề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 trongquá trình tiến hoá Dù rằng đột biến xảy ra xác suất nhỏ hơn nhiều sovới hiện tượng di truyền
Giải thuật di truyền sử dụng các thuật ngữ vay mượn của di truyềnhọc Ta có thể nói về các cá thể (hay kiểu gen, cấu trúc) trong một quầnthể, các cá thể này cũng còn được gọi là các chuỗi hay các Nhiễm sắcthể (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ếntính, mỗi gen kiểm soát một (số) đặc trưng Gen với những đặc trưngnhấ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ó thể 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ộtcách chính xác là các thông số của bài toán sẽ được chuyển đổi và biểuhiệ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ủamộ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ỗibit này là mã genome (gen) ứng với mỗi cá thể, các gen đều có cùngchiề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ỗibit 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à 1NST) 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ếntrình tiến hoá được thực hiện trên 1 quần thể các NST tương ứng vớimột quá trình tìm kiếm lời giải trong không gian 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ờigiải tốt nhất và khảo sát không gian tìm kiếm GA là phương pháp tìmkiế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
Trang 9nhữ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ựctiếp và ngẫu nhiên Khác biệt quan trọng giữa tìm kiếm của GA và cácphươ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 trong không gian tìm kiếm Chính vì vậy, GA mạnh hơncá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ướngbằ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ìnhtiến hoá, ở mỗi thế hệ lại tái sinh các lời giải tương đối "tốt"; trong khicá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ácnhau; hàm mục tiêu được dùng để đóng vai trò 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ỏngcác quá trì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ànhnhiễm sắc thể mới trên cơ sở nhiễm sắc thể cha - mẹ, bằng cách ghépmột hay nhiều đoạn gen, hai (hay nhiều) nhiễm sắc thể cha - mẹ với
sử các nhiễm sắc thể của cha - mẹ đều có m gen
điểm lai) Điểm lai chứa các chuỗi cha - mẹ dài m thành hai nhóm chuỗi
m21 + m12
hoá tiếp theo
* Quá trình đột biến (Mutation)
Độ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 truyền của cha - mẹ Phép đột biến xảy ra với xác suất
phỏng như sau:
Trang 10• Chọn ngẫu nhiên một cá thể bất kỳ cha - mẹ trong quần thể.
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ựccho các cá thể trong quần thể Quá trình này có thể được mô phỏng nhưsau:
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à
Fi, tổng dồn thứ i là Fti, tổng độ thích nghi của toàn quần thể là Fm
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ỏngnhư sau:
Trang 11Hì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 P0(t) từ P (t − 1);
Lai Q(t) từ P (t − 1);
Đột biến R(t) từ P (t − 1);
Trang 12Chọn lọc P (t) từ P (t − 1) ∪ Q(t) ∪ R(t) ∪ P (t);
Hết lặpKết thúc
1.2 Các vấn đề cơ bản của giải thuật di truyền1.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 giải của bài toán để từ mỗilờ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ị phâ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 Trongphươ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ự Ở đâymỗi NST là một chuỗi các số nguyên thể hiện thứ tự phân bố lời giảicủa bài toán
Mã hoá theo giá trị: được sử dụng trong các bài toán mà mỗi lời giải
là tập các giá 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 đốitượng nào đó
Mã hoá số thực: Mỗi NST được mã hoá là một véc tơ trong khônggian Rm chẳng hạn X = (a1, a2, , am) với các ai ∈ R Cách mã hoá nàythường tự nhiên đối với các bài toán tối ưu số và được phát triển rấtmạnh trong thời gian gần đây
Trang 131.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ấtnhiề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ạongẫ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 NST ban đầu bằng cáchhoá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
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êucầ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ụctiêu của bài toán
1.2.4 Các toán tử di truyền
Trong quá trình thực hiện của giải thuật di truyền, sau mỗi lần tiếnhoá ta chỉ giữ lại các cá thể có độ phù hợp cao còn các cá thể phù hợpthấp bị loại bỏ Toán tử chọn lọc thường giữ lại 50% các cá thể phù hợpnhất Tuy nhiên người ta cũng phát triển nhiều sơ đồ chọn khác nhaunhằ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ọnngẫu nhiên N NST từ M NST (M là kích cỡ quần thể)
Có nhiều cách chọn:
Trang 14Chọ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:
pi = MiP
Sau khi có trọng số tích luỹ cho NST, ta lần lượt tạo các xác suấtngẫu nhiên r và duyệt từ NST đầu tiên đến khi gặp NST có trọ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 hai NST cha và mẹ để nhận được hai NSTcon
Lai ghép hai điểm: chọn ngẫu nhiên hai vị trí trong một NST, 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àicủ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ạ
nhận được giá trị tối ưu cục bộ Đột biến gây ra thay đổi ngẫu nhiêntrên từng bit của NST để tạo ra một NST mới
cho lần lặp kế tiếp
Trang 151.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
cầu cụ thể của bài toán Một bit mã hoá x ứng với một giá trị trongkhoảng [0, 2L] sẽ được ánh xạ lên giá trị thực thuộc miền [lx, ux] Nhờ
đó ta có thể kiểm soát miền giá trị của các biến và tính chính xác củachúng Tỷ lệ co giãn của ánh xạ được tính như sau:
g = ux− lx
2L
Giá trị x tương ứng với chuỗi NST nhị phân là:
x = lx+ decimal(N ST ) ∗ gTrong đó, 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(x1, , xk) : Rk → R.Giả sử thêm là mỗi biến xi có thể nhận giá trị trong miền Di = [ai, bi] ⊆
R và f(x1, , xk) > 0 với mọi xi thuộc Di Ta muốn tối ưu hoá hàm fvớ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
nhất sao cho: (bi− ai) ∗ 106 ≤ 2mi− 1
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ânbiểu diễn biến xi
Xi = ai+ decimal(1100 012) bi− ai
2m i − 1
Trang 16trong đó decimal(chuỗi2) 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
i=1
mi
trong đó m1 bit đầu tiên biểu diễn các giá trị trong khoảng [a1, b1]; ; mk
bit cuối cùng biểu diễn giá trị trong khoảng [ak, bk]
Để 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 ditruyề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ọnquần thể mới thoả phân bố xác suất dựa trên độ thích nghi và thực hiệncá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 giải của bài toán tối ưu (thường là toàn cục) Thôngthường, ta cho dừng thuật giải di truyền sau một số bước lặp cố địnhtuỳ 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ềuhơ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 thể 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ể
P
i=1
fi
Trên vòng trònRoulette 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
Trang 17độ 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ụctiê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ấtchọn lựa là pN −j = Nj
P
k=1
kCá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áncự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ư sau:
- 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ể đó để sao 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
Trang 181.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á thể cha mẹ
đã chọn P1, P2; 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ủacặp cha mẹ tính từ điểm cắt Chẳng hạn
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 độ dài 10, giả sử điểm cắt đã chọn là k = 7, thếthì hai con được sinh ra là :
C1 = (1 1 1 0 0 0 1 1 1 1) C2 = (0 1 0 1 1 0 0 0 1 0)
Thủ tục lai ghép đơn giản như sau :
Procedure lai1diem(k; P1, P2; var C1, C2);
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 P1, P2; toán tử này cần sinh ngẫu nhiên k
vị trí i1, , ik; có thể giả thiết thêm i1 < i2 < < ik Các điểm cắt này
Trang 19chia 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ì laighép hai điểm cắt được quan tâm nhiều nhất
Loại lai ghép này còn gọi là lai ghép đều; với hai cá thể cha mẹ đã
độ dài L gọi là chuỗi mặt nạ Sau đó các con được tạo ra dựa trên chuỗimặt nạ này để quyết định lấy thành phần của cá thể cha hay mẹ Chẳng
tục lai ghép như sau :
Procedure lai_mat_na(U, P1, P2; var C1, C2);
Begin
Trang 20For i := 1 to L do
Begin
If U[i] = 1 thenBegin C1[i] := P 1[i]; C2[i] := P 2[i]; EndElse
Begin C1[i] := P 2[i]; C2[i] := P 1[i]; End;
FOR i := 1 TO m DO
trong đó invert(u) là hàm đảo ngược bit u
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 để ápdụng GA cho bài toán tối ưu ta cần phải chuyển giá trị hàm mục tiêuthà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 sanghàm phù hợp như sau:
Trang 21Trong đó, Cmaxlà tham số vào do người sử dụng chọn, thường chọn Cmax
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ểnsang hàm phù hợp như sau
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ặpcuố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ònglặ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ôngmong 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ànhphần sẽ tiến gần đến giá trị phù hợp của cá thể tốt nhất Và như vậysau nhiều lần lặp các cá thể trung bình cũng có con số tương đương vớicác cá thể tốt nhất trong thế hệ tiếp theo Khi đó giải thuật di truyềntrở thành tìm kiếm ngẫu nhiên giữa các cá thể thành phần) Thang đogiá 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:
Trang 22Với Cmult là bản sao cần thiết đối với thành viên tốt nhất Đối với các
favg: giá trị phù hợp trung bình ban đầu
f0
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á trị phù hợptrung 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 thể 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 giá trị phù hợp trung bìnhcủa quần thể gần với giá trị phù hợp của cá thể tốt nhất thì thang đotuyến tính trên có thể làm cho giá trị phù hợp bị âm Để khắc phục
Tóm lại, giải thuật di truyền cổ điển có thể mô tả một cách khá tườngminh 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 B0 = (b10, b20, , bm0);
WHILE (stopping condition not fulfilled) DO
BEGIN
{chọn lọc tỷ lệ}
FOR i := 1 TO m DOBEGIN
r := random[0, 1];
k := 1;
Trang 23FOR k := pos + 1 TO n DOBEGIN
Trang 241.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 thuật di truyền mã hóa số thực(RCGA- Real-Coded Genetic Algorithm) để giải các bài toán tối ưu giá
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
ra là tìm véc tơ x = (x1, x2, , xn) ∈ S sao cho f (x) đạt giá trị cực tiểutrê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 = (x1, x2, , xn), xi ∈ 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
cấp (m × n), đây là cách mã hoá tự nhiên và thuận tiện trong việc thựchiệ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
Trang 251.4.2.2 Toán tử lai ghép
đ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ấtnhiề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 = (x1, , xm) và Y = (y1, , ym)
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ẹ
một vị trí k(1 ≤ k ≤ m) rồi sinh ra hai cá thể con theo công thức:
X0 = (x1, , xk, yk+1, , ym)
Y0 = (y1, , yk, xk+1, , xm)
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 j1, , jk(1 <= j1 < j2 < < jk < m),
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 < i1 < i2 < <
ik < m Các cá thể con X0, Y0 được lập như sau :
Trang 26lai ghép khác trong RCGA.
d Lai số học (Arithmetic Crossover)
Phép lai này chọn một số thực a (0 < a < 1); các con X0 và Y0 đượctính bởi:
f Lai ghép BLX-α (Blend Crossover)
Ký hiệu cặp nhiễm sắc thể đã chọn lai ghép là
Toán tử BLX-α được thử nghiệm và chứng minh tính hiệu quả của
nó, giá trị α tốt nhất là 0.5 Ngoài ra còn có một số toán tử lai ghépnhiều cha mẹ cũng đã được nghiên cứu và giới thiệu