BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNGHỌC VIỆN KỸ THUẬT QUÂN SỰ Vũ Chí Cường MỘT LỚP THUẬT TOÁN PHỎNG TIẾN HÓA SINH HỌC DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG GIẢI BÀI TOÁN ĐA CỰC TRỊ LUẬN ÁN TIẾN
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
HỌC VIỆN KỸ THUẬT QUÂN SỰ
Vũ Chí Cường
MỘT LỚP THUẬT TOÁN PHỎNG TIẾN HÓA SINH HỌC
DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG
GIẢI BÀI TOÁN ĐA CỰC TRỊ
LUẬN ÁN TIẾN SỸ TOÁN HỌCChuyên ngành: Cơ sở toán học trong tin học
Mã số: 62.46.01.10
Hà Nội - Năm 2016
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG
HỌC VIỆN KỸ THUẬT QUÂN SỰ
Vũ Chí Cường
MỘT LỚP THUẬT TOÁN PHỎNG TIẾN HÓA SINH HỌC
DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG
GIẢI BÀI TOÁN ĐA CỰC TRỊ
Chuyên ngành: Cơ sở toán học trong tin học
Mã số: 62.46.01.10
LUẬN ÁN TIẾN SỸ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS BÙI THU LÂM
Hà Nội - Năm 2016
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tác giả dưới
sự hướng dẫn khoa học của PGS.TS Bùi Thu Lâm Các kết quả được công
bố với các tác giả khác đều được sự đồng ý của đồng tác giả trước khi đưavào luận án Các kết quả nêu trong luận án là trung thực và chưa từngđược công bố trong bất cứ công trình nào khác
Hà Nội, tháng 7 năm 2016Nghiên cứu sinh
Vũ Chí Cường
Trang 4LỜI CẢM ƠN
Luận án được thực hiện tại Bộ môn Công nghệ phần mềm, Khoa Côngnghệ thông tin, Học viện Kỹ thuật Quân sự dưới sự hướng dẫn khoa họccủa PGS.TS Bùi Thu Lâm
Lời đầu tiên, tác giả xin được bày tỏ sự kính trọng và cảm ơn chânthành nhất đến thầy giáo hướng dẫn: PGS.TS Bùi Thu Lâm, người đãđịnh hướng để tác giả có thể tiếp cận lĩnh vực nghiên cứu mới mẻ, khókhăn nhưng đầy tiềm năng này Thầy đã cung cấp đầy đủ các kiến thứccũng như kinh nghiệm nghiên cứu khoa học vô cùng quý báu, thầy cũng
là người động viên, khích lệ tác giả trong suốt quá trình nghiên cứu để tácgiả có thể hoàn thành cuốn luận án này
Tác giả cũng xin chân thành cảm ơn tập thể cán bộ, giảng viên Bộ mônCông nghệ phần mềm, Khoa Công nghệ thông tin và Phòng Đào tạo Sauđại học, Học viện Kỹ thuật Quân sự đã tạo mọi điều kiện thuận lợi, giúp
đỡ tác giả trong quá trình học tập và nghiên cứu tại Học viện
Tác giả cũng xin cảm ơn tập thể cán bộ, giảng viên Khoa Công nghệthông tin và Trung tâm Công nghệ thông tin, Trường Đại học Vinh đã tạođiều kiện về thời gian để tác giả có thể thực hiện kế hoạch nghiên cứu vàhoàn thành luận án đúng tiến độ
Cuối cùng, tác giả xin bày tỏ lòng biết ơn sâu sắc đến các bậc sinhthành kính mến và những người thân trong gia đình, đặc biệt là người vợhết mực thủy chung và hai con thân thương đã luôn dành những tình cảmnồng ấm, sẻ chia và ủng hộ tác giả trong suốt thời gian học tập và nghiêncứu ở xa nhà Luận án này như là món quà quý giá nhất của tác giả xinđáp lại những ân tình của bạn bè, đồng nghiệp và niềm tin tưởng, yêuthương của tất cả mọi người
Một lần nữa xin chân thành cảm ơn
Hà Nội, tháng 7 năm 2016Nghiên cứu sinh
Vũ Chí Cường
Trang 5Mục lục
Trang
1.1 Mở đầu 15
1.2 Tối ưu hóa 15
1.3 Thuật toán tiến hóa 19
1.3.1 Cách biểu diễn di truyền lời giải của bài toán 20
1.3.2 Cách khởi tạo quần thể ban đầu 21
1.3.3 Cách đánh giá cá thể 22
1.3.4 Các phép toán tiến hóa 22
1.3.5 Điều kiện dừng của thuật toán 23
1.4 Kết luận 25
2 NHỮNG NỘI DUNG NGHIÊN CỨU LIÊN QUAN 27 2.1 Mở đầu 27
2.2 Các thuật toán tìm kiếm dựa trên thông tin định hướng 28 2.2.1 Thuật toán tìm kiếm đơn hình (Simplex Search) 28
2.2.2 Thuật toán tìm kiếm phân tán (Scatter Search) 30
2.2.3 Tối ưu bầy đàn (Particle Swarm Optimization) 32
2.2.4 Tiến hóa vi phân (Differential Evolution) 34
2.3 Phương pháp niching 38
2.3.1 Phương pháp chia sẻ giá trị đánh giá (Fitness sharing) 38
Trang 62.3.2 Phương pháp đám đông (Crowding) 40
2.3.3 Phương pháp dựa vào loài (Species-based) 42
2.3.4 Phương pháp phân cụm (Clustering-based) 44
2.4 Kỹ thuật song song hóa thuật toán tiến hóa 47
2.4.1 Mô hình master/slave 47
2.4.2 Mô hình island 48
2.4.3 Mô hình tế bào (cellular) 49
2.4.4 Mô hình lai (hybrid) 50
2.4.5 Kỹ thuật đồng tiến hóa hợp tác (cooperation co-evolution) 51
2.5 Kết luận 52
3 THUẬT TOÁN TIẾN HÓA DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG 54 3.1 Mở đầu 54
3.2 Thuật toán DEAL 56
3.2.1 Độ phức tạp tính toán 59
3.2.2 Các tùy chọn về bước nhảy định hướng 60
3.2.3 Các chiến lược lai ghép .60
3.3 Song song DEAL với kỹ thuật đồng tiến hóa hợp tác 61
3.3.1 Mô hình song song 61
3.3.2 Thuật toán song song 63
3.3.3 Thời gian thực thi và hệ số tăng tốc 65
3.4 Đánh giá thực nghiệm 69
3.4.1 Thực nghiệm DEAL và MDEAL 69
3.4.2 Thực nghiệm DEAL song song .76
3.5 Kết luận 81
4 THUẬT TOÁN TIẾN HÓA DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG VỚI BÀI TOÁN TỐI ƯU ĐA CỰC TRỊ 83 4.1 Mở đầu 83
4.2 DEAL với phương pháp Fitness Sharing 84
4.3 DEAL với phương pháp Crowding 85
Trang 74.4 DEAL với phương pháp Species-based 86
4.5 DEAL với phương pháp Clustering-based 88
4.6 Thực nghiệm 91
4.6.1 Môi trường thực nghiệm 91
4.6.2 Thực nghiệm 1: Hiệu quả của SharingDEAL 93
4.6.3 Thực nghiệm 2: Hiệu quả của CrowdingDEAL 96
4.6.4 Thực nghiệm 3: Hiệu quả của SpeciesDEAL 101
4.6.5 Thực nghiệm 4: Hiệu quả của NBCDEAL 106
4.6.6 So sánh các thuật toán đã đề xuât 111
4.7 Kết luận 116
Kết luận 117 Danh sách công trình của tác giả 119 Tài liệu tham khảo 120 Phụ lục 131 A CÁC SƠ ĐỒ THUẬT TOÁN 131 A.1Thuật toán Simplex Search 132
A.2Thuật toán Scatter Search 133
A.3Thuật toán Particle Swarm Optimization 134
B CÁC BÀI TOÁN THỰC NGHIỆM MẪU 135 B.1Các bài toán tối ưu cơ bản 135
B.2Các bài toán tối ưu đa cực trị 139
Trang 8Danh sách ký hiệu, chữ viết tắt
Ký hiệu Diễn giải
ACO Thuật toán tối ưu hóa đàn kiến
AIS Hệ miễn nhiễm nhân tạo
CC Kỹ thuật đồng tiến hóa hợp tác (Cooperative Coevolution)
CF Tham số Crowding Factor của phương pháp CrowdingCrowdingDEAL Thuật toán DEAL với phương pháp Crowding
D Số chiều của hàm mục tiêu (hàm đánh giá)
DE Thuật toán tiến hóa vi phân
DEAL Thuật toán tiến hóa dựa trên thông tin định hướng
EA Thuật toán tiến hóa (Evolutionary Algorithm)
EDA Thuật toán ước lượng các thuật toán phân phối
EP Quy hoạch tiến hóa (Evolutionary Programming)
ES Chiến lược tiến hóa (Evolution Strategies)
ETS Tập các cá thể ưu tú (Elite Set)
GA Giải thuật di truyền (Genetic Algorithm)
GP Lập trình di truyền (Genetic Programming)
(Maximum Fitness Evaluations)MDEAL Thuật toán DEAL theo chiến lược lai ghép cải tiến
NBC Kỹ thuật phân cụm Nearest-better Clustering
NBCDEAL Thuật toán DEAL với phương pháp Clustering-basedPCCDEAL Thuật toán song song hóa DEAL theo kỹ thuật CC
PSO Thuật toán tối ưu bầy đàn
SharingDEAL Thuật toán DEAL với phương pháp Fitness Sharing
SpeciesDEAL Thuật toán DEAL với phương pháp Species-based
SSS Tập các cá thể hạt giống (Species Seed Set)
Trang 9Danh sách bảng
3.1 Danh sách các bài toán thực nghiệm cho DEAL 70
3.2 Thời gian thực thi thuật toán DEAL (Đơn vị tính: giây) 70
3.3 So sánh giá trị tối ưu trung bình theo các tùy chọn bước nhảy định hướng 74
3.4 So sánh hai chiến lược lai ghép 74
3.5 So sánh DEAL với các thuật toán khác 76
3.6 Danh sách các bài toán thực nghiệm cho DEAL song song 77
3.7 Thời gian thực thi với Evolution_Cycle = 1 (ĐVT: giây) 78
3.8 Thời gian thực thi với Evolution_Cycle = 5 (ĐVT: giây) 79
3.9 Thời gian thực thi với Evolution_Cycle = 10 (ĐVT: giây) 79
3.10 Giá trị tối ưu trung bình của PCCDEAL 81
4.1 Danh sách các bài toán thực nghiệm 92
4.2 Kết quả thực nghiệm của SharingDEAL 94
4.3 So sánh SharingDEAL với các thuật toán khác 95
4.4 Kết quả thực nghiệm của CrowdingDE 98
4.5 Kết quả thực nghiệm của CDE 98
4.6 Kết quả thực nghiệm của CrowdingDEAL 99
4.7 Thống kê số trường hợp xếp hạng nhất theo các độ đo PR và SR 99 4.8 Kết quả thực nghiệm của SpeciesDEAL_Op1 102
4.9 Kết quả thực nghiệm của SpeciesDEAL_Op2 102
4.10 Kết quả thực nghiệm của SpeciesDEAL_Op3 103
4.11 Kết quả thực nghiệm của SpeciesDEAL_Op4 103
4.12 So sánh độ đo PR của SpeciesDEAL và các thuật toán khác 105
4.13 Kết quả thực nghiệm của NBCDEAL_Op1 106
4.14 Kết quả thực nghiệm của NBCDEAL_Op2 107
4.15 Kết quả thực nghiệm của NBCDEAL_Op3 107
4.16 Kết quả thực nghiệm của NBCDEAL_Op4 108
Trang 104.17 Tổng hợp xếp hạng theo các tùy chọn của NBCDEAL 1084.18 So sánh độ đo PR của NBCDEAL khi điều chỉnh φ 1104.19 So sánh độ đo PR của NBCDEAL và các thuật toán khác 1114.20 Giá trị độ đo PR ở độ chính xác = 1.0E − 01 của các thuật toán1124.21 Giá trị độ đo PR ở độ chính xác = 1.0E − 02 của các thuật toán1134.22 Giá trị độ đo PR ở độ chính xác = 1.0E − 03 của các thuật toán1134.23 Giá trị độ đo PR ở độ chính xác = 1.0E − 04 của các thuật toán1144.24 Giá trị độ đo PR ở độ chính xác = 1.0E − 05 của các thuật toán1144.25 Kiểm định Friedman của các thuật toán 1154.26 Thứ hạng của các thuật toán theo kiểm định Friedman 1154.27 Kiểm định Wilcoxon của các thuật toán 116
Trang 11Danh sách hình vẽ
1.1 Phương án tối ưu địa phương và phương án tối ưu toàn cục 17
1.2 Bài toán tối ưu đơn cực trị Sphere 17
1.3 Bài toán tối ưu đa cực trị (Ackley và Shubert) 18
2.1 Biễu diễn cộng trừ hai véc tơ 29
2.2 Thuật toán Simplex Search 30
2.3 Các thủ tục của Scatter Search 32
2.4 Cập nhật vị trí tìm kiếm trong PSO 32
2.5 Thông tin định hướng trong DE 34
2.6 Xác định tập hạt giống 43
2.7 Kỹ thuật NBC 46
2.8 Mô hình Master/Slave 47
2.9 Mô hình Island 48
2.10 Mô hình Cellular 50
3.1 Hai dạng thông tin định hướng của DEAL 59
3.2 Các chiến lược lai ghép của DEAL 60
3.3 Mô hình song song PCCDEAL 62
3.4 Mô hình cập nhật cá thể tối ưu toàn cục 62
3.5 Mô hình thời gian thực thi PCCDEAL 66
3.6 Đồ thị biểu diễn hệ số tăng tốc theo mô hình song song 3.3 69
3.7 Giá trị đánh giá tốt nhất của Sphere’ problem trong 100 lần chạy 71 3.8 Giá trị đánh giá tốt nhất của Ackley’ problem trong 100 lần chạy 72 3.9 Độ đa dạng quần thể của bài toán đơn cực trị Sphere’s Problem 73 3.10 Độ đa dạng quần thể của các bài toán đa cực trị 73
3.11 Giá trị tối ưu trung bình đạt được khi D = 30 của các bài toán 77 4.1 Thuật toán SpeciesDEAL với bài toán Himmelblau 89
4.2 Thuật toán NBCDEAL với bài toán Himmelblau 90
Trang 124.3 Thuật toán NBCDEAL với bài toán Shubert 91
4.4 Ảnh hưởng của thủ tục loại bỏ một nửa số cá thể 96
4.5 Ảnh hưởng của kích thước quần thể 97
4.6 Giá trị tối ưu trung bình của hàm F6(2D) 100
4.7 Giá trị tối ưu trung bình của hàm F7(3D) 101
4.8 Giá trị tối ưu trung bình của SpeciesDEAL khi điều chỉnh rs 104
4.9 Giá trị tối ưu trung bình của NBCDEAL khi điều chỉnh φ 110
Trang 13Lời mở đầu
1 Giới thiệu chung
Thuật toán phỏng tiến hóa sinh học hay gọi ngắn gọi là thuật toán tiếnhóa (Evolutionary Algorithms - EAs) là một lớp các thuật toán heuristictrong tối ưu hóa và học máy EAs đã được áp dụng rộng rãi và thu đượcnhiều thành công trong việc giải quyết các bài toán tối ưu số và tối ưu
tổ hợp Về nguyên tắc, EA là một thuật toán lấy ý tưởng từ quá trìnhchọn lọc tự nhiên trong thuyết tiến hóa của Darwin EAs hoạt động trêntập các phương án (còn gọi là quần thể - population) để tìm kiếm phương
án tối ưu Nguyên tắc tính toán dựa vào quần thể đã được khẳng định làmột mô hình tiềm năng cho việc giải quyết các bài toán tối ưu toàn cục[4, 31, 32, 63, 65, 85]
Trong quá trình nghiên cứu và phát triển, đã có 4 dạng EAs truyềnthống được đề xuất, bao gồm Quy hoạch tiến hóa (Evolutionary Program-ming - EP), Chiến lược tiến hóa (Evolutionary Strategies - ES), Giải thuật
di truyền (Genetic Algorithm - GA) và Lập trình di truyền (Genetic gramming - GP) Các đặc điểm quan trọng nhất đối với các EAs là:
Pro-• EAs điều khiển quá trình tiến hóa của một quần thể gồm nhiều cáthể, mỗi cá thể đại diện (hay mã hóa) cho một phương án (hay mộtlời giải) chấp nhận được của bài toán tối ưu
• Các cá thể con (offsprings) được sinh ra một cách ngẫu nhiên thôngqua các quá trình đột biến và lai ghép Quá trình đột biến là một sựthay đổi (rất nhỏ) của một cá thể trong khi đó quá trình lai ghép là
sự hoán đổi thông tin giữa 2 hay nhiều cá thể hiện tại
• Một hàm đánh giá được sử dụng để đo chất lượng hay tính toán mức
độ phù hợp của các cá thể Cá thể có giá trị đánh giá cao hơn đượcxem là tốt hơn cá thể khác Quá trình lựa chọn thực hiện việc lựa chọn
và ưu tiên cho các cá thể tốt hơn với mục đích là tạo ra một thế hệmới với các cá thể tốt hơn
Bên cạnh các lớp EAs, trong khoảng thời gian 15 năm gần đây, đã có
Trang 14một số mô hình thuật toán phỏng tự nhiên mới được đề xuất, chẳng hạnnhư Tối ưu bầy đàn (PSO) [43], Tối ưu đàn kiến (ACO) [19], Ước lượng cácthuật toán phân phối (EDA) [49], Hệ miễn nhiễm nhân tạo (AIS) [12], Trong các mô hình này, các thủ tục tính toán được lấy ý tưởng từ nhữnghiện tượng khác nhau của thế giới tự nhiên như bầy chim, đàn cá hay đànkiến,
Trong thiết kế các thuật toán heuristic, cả truyền thống cũng như hiệnđại, vấn đề sử dụng thông tin định hướng luôn nhận được sự quan tâmcủa các nhà nghiên cứu Nếu có thông tin định hướng tốt thì quá trìnhtìm kiếm phương án tối ưu sẽ diễn ra nhanh chóng và đạt kết quả tốt.Phương pháp tụt Gradient (Gradient Descent), thuật toán tìm kiếm đơnhình (Simplex Search) [66], thuật toán tìm kiếm phân tán (Scatter Search)[30, 47] là những ví dụ điển hình trong việc sử dụng thông tin định hướng
để giải quyết các bài toán tối ưu Trong các mô hình thuật toán tiến hóamới, lớp các thuật toán tiến hóa vi phân (Differential Evolution) [75] làmột ví dụ khác về những lợi ích đạt được khi sử dụng thông tin địnhhướng để chỉ dẫn quá trình tìm kiếm lời giải Tuy nhiên, trong các thuậttoán này, thông tin định hướng chỉ được xác định một cách cục bộ trongtừng thế hệ của quá trình tiến hóa mà chưa có tính toàn cục, cách tổ chứcquản lý thông tin hướng còn thiếu tính hệ thống Bởi thế sẽ tồn tại nhữngtrường hợp mà thông tin định hướng có thể làm suy giảm chất lượng (giátrị đánh giá) của các phương án đã tìm được Vấn đề xác định các thôngtin định hướng tốt và cách thức quản lý, sử dụng thông tin đó một cách
có hệ thống để hỗ trợ quá trình tiến hóa sẽ là chủ đề nghiên cứu chính củaluận án
Ngoài ra, trong cách thức tổ chức quản lý các cá thể, có thể thấy rằngmột quần thể các cá thể có thể bao hàm các thông tin định hướng, cácthông tin định hướng này hoàn toàn có thể được xác định một cách có hệthống và hỗ trợ quá trình tìm kiếm tiến hóa
2 Đóng góp của luận án
Đóng góp của luận án là phương pháp xác định và sử dụng thông tinđịnh hướng hỗ trợ các thuật toán tiến hóa Chi tiết các đóng góp cụ thểbao gồm:
1 Đề xuất thuật toán tiến hóa dựa trên thông tin định hướngDEAL (Direction-guided Evolutionary ALgorithm) với một sốđặc trưng:
• Sử dụng cân đối 2 dạng thông tin định hướng: (1) hướng hội tụ(Convergence Direction) là hướng từ một cá thể kém hơn (hạng 2)
Trang 15đến một cá thể ưu tú và (2) hướng tản mát (Spread Direction) làhướng giữa 2 cá thể ưu tú.
• Các thông tin định hướng được quản lý một cách toàn cục Các
cá thể ưu tú được lưu trữ trong tập ETS (Elite Set), liên tục đượccập nhật trong suốt quá trình tiến hóa Tập ETS chứa đựng thôngtin định hướng
• Có 4 tùy chọn khác nhau về bước nhảy định hướng và 2 chiến lượclai ghép
• Có thể mở rộng, nâng cao hiệu năng tính toán thông qua kỹ thuậtsong song hóa Thuật toán song song PCCDEAL được đề xuất sửdụng mô hình song song kết hợp giữa mô hình master/slave truyềnthống với kỹ thuật đồng tiến hóa hợp tác Các kết quả thực nghiệmcho thấy tính hiệu quả của thuật toán và mô hình
2 Đề xuất thuật toán tiến hóa dựa trên thông tin định hướngnhằm giải quyết các bài toán đa cực trị: Gồm 4 thuật toánSharingDEAL, CrowdingDEAL, SpeciedDEAL và NBCDEAL là giảipháp kết hợp giữa DEAL và các phương pháp niching phổ biến Kếtquả thực nghiệm của các thuật toán này đều cho thấy sự khả quancủa hướng nghiên cứu khi so sánh được với các thuật toán nổi tiếngđược xếp hạng trong thời gian gần đây
3 Bố cục của luận án
Các nội dung nghiên cứu của luận án được bố trí trong 4 chương và 2phụ lục, bao gồm:
Chương 1: Cơ sở lý thuyết Chương này trình bày những khái niệm
lý thuyết cơ bản của tối ưu hóa, làm quen với các dạng bài toán tối ưuđơn cực trị (uni-modal optimization problems) và đa cực trị (multi-modaloptimization problems) Phần lý thuyết về thuật toán tiến hóa, các thànhphần của một thuật toán cũng được trình bày một cách chi tiết
Chương 2: Những nội dung nghiên cứu liên quan Chương nàytập trung khảo sát những nội dung nghiên cứu liên quan đến luận án.Trong phần đầu, luận án mô tả một cách chi tiết nội dung các thuật toántìm kiếm tiêu biểu dựa trên thông tin định hướng Các thuật toán đượctrình bày theo trình tự từ cổ điển đến hiện đại để thấy được sự quan tâmcủa các nhà nghiên cứu đối với nội dung này Trong các phần tiếp theo,luận án lần lượt trình bày các phương pháp nhằm nâng cao hiệu năng củacác EAs đối với các lớp bài toán khác nhau như các phương pháp niching,song song hóa, đồng tiến hóa hợp tác Đối với mỗi phương pháp, luận án
Trang 16trình bày rõ ý tưởng, các bước thực hiện của phiên bản đề xuất, sau đókhảo sát một số các nghiên cứu gần đây có liên quan.
Chương 3: Thuật toán tiến hóa dựa trên thông tin định hướng.Chương này tập trung trình bày một cách chi tiết nội dung thuật toán tiếnhóa dựa trên thông tin định hướng (gọi tắt là DEAL) do tác giả đề xuất.Bao gồm ý tưởng, bố cục thuật toán, các tùy chọn và chiến lược tiến hóa,
độ phức tạp tính toán Các thực nghiệm được tổ chức cho thấy thuật toánDEAL làm việc hiệu quả đối với lớp các bài toán tối ưu đơn cực trị và lớpbài toán tối ưu đa cực trị nhưng chỉ có một phương án tối ưu toàn cục.Trong phần thứ hai của chương, tác giả đã trình bày phương án mở rộngnhằm nâng cao hiệu năng tính toán của thuật toán DEAL bằng phươngpháp song song hóa Mô hình song song được sử dụng là một mô hình mới,không hoàn toàn giống với mô hình master/slave truyền thống Mô hình
và thuật toán song song được phân tích lý thuyết về thời gian thực thi, hệ
số tăng tốc và tổ chức kiểm chứng thông qua các thực nghiệm ở phần cuốicủa chương
Chương 4: Thuật toán tiến hóa dựa trên thông tin định hướngvới bài toán đa cực trị Chương này trình bày các mở rộng của thuậttoán DEAL nhằm giải quyết các bài toán tối ưu đa cực trị (multi-modaloptimization problems) Đây là lớp bài toán thường gặp trong thực tế và
để giải quyết nó, thuật toán DEAL cần có những biến đổi phù hợp về mặthành vi bằng các phương pháp niching Trong nội dung của chương, tácgiả lần lượt trình bày 4 thuật toán mới SharingDEAL, CrowdingDEAL,SpeciesDEAL và NBCDEAL là sự kết hợp giữa các phương pháp nichingtương ứng với thuật toán DEAL Các thực nghiệm với 20 bài toán tối ưu
đa cực trị phổ biến để kiểm tra, đánh giá và so sánh các thuật toán thuộcluận án với các thuật toán nổi tiếng khác, đặc biệt có những thuật toánđược đánh giá cao trong các cuộc thi thiết kế thuật toán gần đây
Phần cuối của luận án là kết luận với các đánh giá về những đóng gópchính của luận án và một số ý tưởng về hướng nghiên cứu trong tương laicủa tác giả
Trang 17mô tả các nội dung cơ bản của thuật toán tiến hóa như khái niệm, bảnchất, các dạng phân loại truyền thống Trong phần này, tác giả cũng dànhthời gian để mô tả một cách cụ thể các thành phần chính của một thuậttoán tiến hóa và cuối cùng là sơ đồ tổng quát của thuật toán.
Tối ưu hóa là một trong những lĩnh vực nghiên cứu kinh điển của toánhọc có ảnh hưởng đến nhiều lĩnh vực Khoa học – Công nghệ và Kinh tế– Xã hội Trong thực tế, việc tìm kiếm phương án tối ưu cho một vấn đềnào đó chiếm một vai trò hết sức quan trọng Phương án tối ưu là phương
án hợp lý, tiết kiệm chi phí, tài nguyên, nguồn lực,
Định nghĩa 1.1 Cho hàm số thực f, bài toán tìm cực trị
f (x) −→ max(min)
với điều kiện x ∈ Ω ⊆ Rn (1.1)
được gọi là bài toán tối ưu hóa
Hàm số thực f :Rn −→ R được gọi là hàm mục tiêu hay hàm đánh giá,
n gọi là chiều của bài toán Véc tơ x = (x1, , xn)T ∈ Ω ⊆ Rn gọi là véc
tơ quyết định, chính là lời giải chấp nhận được hay phương án chấp nhậnđược của bài toán, các biến thành phần x1, , xn là các biến quyết định
Trang 18Định nghĩa 1.2 Cho bài toán tối ưu hóa dạng (1.1).
Nếu Ω = Rn thì bài toán (1.1) gọi là bài toán tối ưu không ràng buộc.Ngược lại Ω ⊂ Rn thì bài toán (1.1) là bài toán tối ưu có ràng buộc Tập
Ω được gọi là tập ràng buộc hay tập khả thi của bài toán
Định nghĩa 1.3 Cho bài toán tối ưu hóa dạng (1.1)
Một phương án chấp nhận được x∗ được gọi là phương án tối ưu hay lờigiải của bài toán nếu thỏa mãn:
f (x) ≤ f (x∗), ∀x ∈ Ω đối với bài toán maxhoặc f (x) ≥ f (x∗), ∀x ∈ Ω đối với bài toán min
Khi đó f∗ = f (x∗) được gọi là giá trị tối ưu của bài toán
Có 2 loại phương án tối ưu là phương án tối ưu địa phương và phương
án tối ưu toàn cục
Định nghĩa 1.4 Phương án x∗ ∈ Ω được gọi là phương án tối ưu địaphương trên Ω nếu tồn tại > 0 sao cho f (x) ≤ f (x∗) đối với bài toánmax (hoặc f (x) ≥ f (x∗) đối với bài toán min), trong đó x ∈ Ω \ {x∗} và
|x − x∗| <
Phương án x∗ ∈ Ω được gọi là phương án tối ưu toàn cục trên Ω nếu
f (x) ≤ f (x∗) đối với bài toán max (hoặc f (x) ≥ f (x∗) đối với bài toánmin), trong đó x ∈ Ω \ {x∗}
Ta dễ nhận thấy rằng mọi phương án tối ưu toàn cục sẽ là phương ántối ưu địa phương Trong khi đó, một phương án tối ưu địa phương khôngnhất thiết là phương án tối ưu toàn cục
Trong định nghĩa trên, nếu ta thay phép so sánh ” ≥ ” bằng phép so
so sánh ” < ” trong bài toán min) thì ta có các khái niệm phương án tối
ưu địa phương chặt và phương án tối ưu toàn cục chặt
Xem xét ví dụ về bài toán tìm cực đại trong Hình 1.1, ta cóx3 là phương
án tối ưu toàn cục chặt, x2 là phương án tối ưu địa phương chặt trong khi
đó x1 là phương án tối ưu địa phương không chặt
Trang 19Hình 1.1: Phương án tối ưu địa phương và phương án tối ưu toàn cục
Định nghĩa 1.5 Cho bài toán tối ưu hóa dạng (1.1), x∗ là phương án tối
ưu của bài toán
Với một số > 0 đủ nhỏ, một phương án chấp nhận được x được gọi làphương án - tối ưu của bài toán nếu |f (x) − f (x∗)| ≤
Định nghĩa 1.6 Bài toán tối ưu đơn cực trị (uni-modal optimizationproblem) là bài toán tối ưu hóa chỉ có một phương án tối ưu địa phương.Ngược lại, bài toán tối ưu hóa có nhiều phương án tối ưu địa phương đượcgọi là bài toán tối ưu đa cực trị (multi-modal optimization problem)
Hình 1.2: Bài toán tối ưu đơn cực trị Sphere
Xét Hình 1.2 là dạng biểu diễn 3D của hàm Sphere có công thức
Bài toán tìm cực tiểu với hàm mục tiêu Sphere có duy nhất một phương
án tối ưu địa phương là x∗ = (0, 0) Như vậy đây là bài toán tối ưu đơn
Trang 20(a) Ackley (b) Shubert
Hình 1.3: Bài toán tối ưu đa cực trị (Ackley và Shubert)
cực trị Chú ý rằng, ở đây phương án tối ưu địa phương x∗ = (0, 0) cũng
là phương án tối ưu toàn cục
Hình 1.3a là dạng biểu diễn 3D của hàm Ackley có công thức
f (x) = −20 exp
−0.2
vuut
12
!
+ 20 + e
Bài toán tìm cực tiểu với hàm mục tiêu Ackley có 1 phương án tối ưu toàncục và nhiều phương án tối ưu địa phương Như vậy bài toán này là bàitoán tối ưu đa cực trị và thuộc dạng bài toán tối ưu đa cực trị có mộtphương án tối ưu toàn cục
Hình 1.3b là dạng biểu diễn 3D của hàm Shubert có công thức
Bài toán tìm cực đại với hàm mục tiêu Shubert có nhiều phương án tối
ưu toàn cục, tất nhiên đó cũng chính là các phương án tối ưu địa phương.Bởi vậy bài toán tìm cực đại với hàm mục tiêu Shubert là bài toán tối ưu
đa cực trị và thuộc dạng bài toán tối ưu đa cực trị có nhiều phương án tối
ưu toàn cục
Một trong những phương pháp hiển nhiên nhất để giải bài toán tối ưulà: Tìm giá trị hàm mục tiêu f (x) trên tất cả các phương án chấp nhậnđược, sau đó so sánh các giá trị tính được để tìm ra giá trị tối ưu và phương
án tối ưu của bài toán Tuy nhiên cách giải quyết này là khó có thể thực
Trang 21hiện được, ngay cả khi kích thước của bài toán (các giá trị tham số p, q, n)
là không lớn Vì vậy, cần phải có những nghiên cứu cả về lý thuyết cũngnhư thực nghiệm để tách từ bài toán tối ưu tổng quát thành những lớpbài toán dễ giải
Trong lịch sử nghiên cứu và phát triển, nhiều lớp bài toán tối ưu đãđược phân tách và nghiên cứu như bài toán quy hoạch tuyến tính, bàitoán quy hoạch lồi, bài toán quy hoạch toàn phương, bài toán quy hoạchnguyên, bài toán quy hoạch phi tuyến, Nhiều phương pháp giải đã được
đề xuất, gắn liền với tên tuổi của những nhà toán học nổi tiếng như thuậttoán đơn hình của Dantzig, thuật toán nhát cắt của Gomory, thuật toánnhánh và cận của Darkin, [1, 100]
Một lớp các bài toán tối ưu quan trọng là lớp các bài toán tối ưu rời rạcthu được từ bài toán tối ưu tổng quát khi tập ràng buộc Ω là tập rời rạc
Từ những năm 1960, bên cạnh những nghiên cứu mang tính lý thuyết nhưđánh giá độ phức tạp tính toán, tính hữu hiệu của các phương pháp giảiđúng, đã xuất hiện những nghiên cứu, đề xuất các thuật toán gần đúng,hiệu quả trong giải quyết các bài toán cả về lý thuyết lẫn ứng dụng Đóchính là những nghiên cứu của I Rechenberg và H.P Schwefel [80, 81], củaD.B Fogel [27], của J.H Holland [39] về tính toán tiến hóa (EvolutionaryComputing - EC) với các thuật toán tiến hóa (Evolutionary Algorithms -EAs)
EAs là một lĩnh vực nghiên cứu chuyên sâu của khoa học máy tính, liênquan đến sinh học, tối ưu hóa và trí tuệ nhân tạo Về bản chất EAs là cácthuật toán tìm kiếm lời giải cho các bài toán tối ưu được lấy ý tưởng từquá trình chọn lọc tự nhiên trong thuyết tiến hóa của Darwin Các EAsđều dựa trên quan niệm rằng quá trình chọn lọc tự nhiên là một quá trìnhhoàn hảo, hợp lý nhất và tự nó đã mang tính tối ưu Đây là một giả định,không thể chứng minh được nhưng phù hợp với thực tế khách quan Tínhtối ưu trong tự nhiên thể hiện ở chỗ: về lâu dài, các thế hệ sau có xu hướngkhông kém hơn thế hệ trước nhờ hai quá trình cơ bản là sinh sản và chọnlọc tự nhiên Những cá thể nào phát triển thích nghi với môi trường sẽtồn tại và ngược lại, những cá thể nào không thích nghi với môi trường
sẽ bị đào thải Sự thay đổi của môi trường sẽ tác động đến quá trình tiếnhóa và bản thân quá trình tiến hóa cũng có tác động và làm thay đổi môitrường
Có 4 dạng EAs truyền thống bao gồm: Lập trình tiến hóa, Chiến lược
Trang 22tiến hóa, Giải thuật di truyền và Lập trình di truyền.
• Lập trình tiến hóa (Evolutionary Programming - EP) do D.B Fogel
đề xuất trong khoảng những năm 1960 [27] Có thể diễn tả EP đơngiản như sau: Cho một lớp các phương án chấp nhận được có thể giảiquyết được một (số) phần của vấn đề Dựa vào quy luật tiến hóa, tìmmột phương án liên hợp đủ khả năng giải quyết trọn vẹn vấn đề đó
• Chiến lược tiến hóa (Evolution Strategies - ES) do T Bienert, I.Rechenberg và H.P Schwefel đề xuất trong những năm 1960 đến năm
1970 [80, 81] ES dựa trên một số chiến lược ban đầu, tiến hóa để tạo
ra những chiến lược mới phù hợp với môi trường thực tế
• Giải thuật di truyền (Genetic Algorithm - GA) được giới thiệu lần đầutiên bởi J.H Holland trong những năm 1975 [39] GA (đặc biệt là GAkinh điển) là một dạng thuật toán tiến hóa được mô tả một cách cụthể và đơn giản Xuất phát từ một quần thể được khởi tạo một cáchngẫu nhiên, các cặp cá thể được lựa chọn để tham gia một quá trìnhtiến hóa gồm lai ghép và đột biến Quần thể thu được phải trải quamột quá trình chọn lọc để xây dựng quần thể mới gồm các cá thể tốthơn và bắt đầu cho một thế hệ kế tiếp
• Lập trình di truyền (Genetic Programming - GP) là một dạng thuậttoán tiến hóa mới do J.R Koza đề xuất trong những năm 1990 [46]
GP là một dạng của EAs nhằm tìm kiếm các lời giải tối ưu cho mộtbài toán dưới hình thức một chương trình máy tính Trong GP, các lờigiải được biểu diễn bằng các cây phân tích có kích thước và hình dạngthay đổi Cả cấu trúc và nội dung của lời giải đều được tiến hóa, điềunày cho phép các chương trình máy tính được mã hóa và cải tiến.Mỗi dạng của thuật toán tiến hóa đều có những nét đặc trưng riêng, vớinhiều sự khác biệt Tuy nhiên, chúng đều mô tả các thành phần sau đây:
Mỗi lời giải hay phương án chấp nhận được của bài toán tối ưu đềuphải được biểu diễn bằng một mô hình phù hợp Chẳng hạn với GA kinhđiển, J.H Holland sử dụng cách biểu diễn bằng chuỗi nhị phân Đây làcách biểu diễn trực quan, tuy nhiên không thể biểu diễn một cách chínhxác giá trị thực của lời giải mà phải có một sai số nhất định
Nhằm nâng cao tính chính xác của lời giải, đã có nhiều nghiên cứu sửdụng cách biểu diễn số thực trong GA [14, 15, 95] và hình thành nên một
Trang 23lớp các giải thuật di truyền tham số thực (real parameter GA) Trong cácthuật toán này, mỗi cá thể được biểu diễn bằng một chuỗi số thực (gọi
là một nhiễm sắc thể), mỗi số thực là một gen của nhiễm sắc thể đó, cáctoán tử lai ghép SBX được mô phỏng tương tự như lai ghép trong biểudiễn nhị phân
Một trường hợp biểu diễn khác là trong Lập trình tiến hóa (EP) củaD.B Fogel [27] Trong EP, mỗi phương pháp chấp nhận được (cá thể) làmột máy hữu hạn trạng thái (Finite State Machine) với một chuỗi mô tả
có độ dài cố định
Lập trình di truyền (GP) của J.R Koza sử dụng cây phân tích với kíchthước và hình dạng thay đổi để biểu diễn các cá thể [46] Cách biểu diễnnày là phù hợp cho việc mô tả và cải tiến các chương trình máy tính
Các EAs đều hoạt động trên một quần thể gồm nhiều cá thể Số lượng
cá thể của quần thể thường ổn định qua các thế hệ và được ký hiệu bởibiến P opSize (trong các chương sau, luận án sử dụng biến ký hiệu là N)
Để bắt đầu quá trình tiến hóa, một quần thể gồm P opSize cá thể đượckhởi tạo
Trong một số trường hợp, chúng ta có thể biết trước một số vùng trongtập khả thi có chứa nhiều lời giải tốt hơn Tuy nhiên, để đảm bảo tínhkhách quan và công bằng nên hầu hết trường hợp chúng ta đều thực hiệntìm kiếm trong toàn bộ không gian của tập khả thi Nghĩa là, chúng ta sửdụng cách khởi tạo ngẫu nhiên
Có nhiều cách để khởi tạo quần thể một cách ngẫu nhiên Cách đơngiản nhất là tạo ra các cá thể với phân phối đều Trong cách biểu diễn nhịphân, mỗi gen của nhiễm sắc thể đều có thể có giá trị bằng 1 với xác suất
là 0.5 và ngược lại bằng 0 cũng với xác suất 0.5 Trong cách biểu diễn sốthực, các gen là các số thực được xác định một cách ngẫu nhiên theo phânphối đều trong miền xác định tương ứng của tập khả thi
Trong GP, với cách biểu diễn là cây phân tích nên việc khởi tạo quầnthể ban đầu có nhiều sự khác biệt Có 3 phương pháp chính thường dùng
là thuật toán GROW, thuật toán FULL và thuật toán AND-HALF [46]
Trang 24RAMPED-HALF-1.3.3 Cách đánh giá cá thể
Mỗi một cá thể trong quần thể được gắn với một giá trị số gọi là giátrị đánh giá của cá thể hay còn gọi là giá trị thích nghi (fitness) Giá trịnày biểu diễn mức độ phù hợp của cá thể trong việc giải quyết bài toán.Đối với bài toán tìm cực đại (max) thì cá thể có giá trị đánh giá cao hơnđược xem là tốt hơn cá thể khác và ngược lại, đối với bài toán tìm cực tiểu(min) thì cá thể có giá trị đánh giá thấp hơn được xem là tốt hơn Các cáthể tốt hơn sẽ có nhiều cơ hội được tham gia quá trình sản sinh ra các cáthể trong thế hệ kế tiếp
Giá trị đánh giá của cá thể được tính toán dựa trên hàm đánh giá đượcxây dựng từ một hoặc một số thủ tục xác định trước Tùy thuộc vào từngbài toán cụ thể và từng dạng thuật toán tiến hóa mà cách thức xây dựngcủa hàm đánh giá là khác nhau Tuy nhiên, đối với các thuật toán tiếnhóa tham số thực, hàm đánh giá thường dựa trên hàm mục tiêu của bàitoán tối ưu với tham số là giá trị biểu diễn của cá thể
Trong quá trình tiến hóa, các cá thể con cái được sinh ra một cách ngẫunhiên thông qua các phép toán tiến hóa cơ bản là đột biến và lai ghép
Phép toán lai ghép
Lai ghép là quá trình trao đổi thông tin (trao đổi gen) của 2 hay nhiều
cá thể và được điều khiển bởi một tham số pc gọi là xác suất lai ghép.Trong cách biểu diễn nhị phân, quá trình lai ghép được thực hiện thôngqua 2 cơ chế lai ghép đơn điểm (uni-point crossover) và lai ghép đa điểm(multiple-point crossover)
Trong các thuật toán tiến hóa tham số thực, quá trình lai ghép cóthể thực hiện theo nhiều cơ chế khác nhau, chẳng hạn: lai ghép số học(arithmetic crossover), lai ghép BLX (blend crossover [22]), lai ghép đơnhình (simplex crossover [101]), lai ghép SBX (simulated binary crossover[17]), lai ghép phân phối chuẩn unimodal (unimodal normal distributioncrossover [44, 68])
Trong GP, quá trình lai ghép giữa 2 cây phân tích được lựa chọn làmcha mẹ là quá trình hoán đổi 2 cây con đã được lựa chọn ngẫu nhiên thuộc
2 cây cha mẹ
Trang 25Phép toán đột biến
Đột biến là quá trình thay đổi một số lượng nhỏ gen của một cá thể.Mọi gen của một nhiễm sắc thể đều được đột biến với xác suất pm, gọi làxác suất đột biến Xác suất đột biến pm thường rất nhỏ và quá trình nàychỉ gây ra một thay đổi nhỏ trong cá thể Quá trình đột biến trong EAscho phép thực hiện tìm kiếm địa phương, khám phá trong phạm vi nhỏ.Với cách biểu diễn nhị phân, gen được đột biến sẽ thay giá trị từ 0 thành
1 và ngược lại Chúng ta gọi đây là đột biến lật bít (bit-flip mutation).Trong GP, quá trình đột biến là sự thay đổi ngẫu nhiên một cây controng cây phân tích Đối với các dạng EAs đặc biệt như ES và EP thì cáctoán tử đột biến đặc biệt được sử dụng, như đột biến phân phối chuẩn(normal mutation), đột biến phân phối cauchy (Cauchy mutation [107])hay đột biến đa thức (polynomial mutation [18])
Phép toán chọn lọc
Chọn lọc trong EAs được bắt chước từ quá trình chọn lọc trong tựnhiên Các cá thể tốt hơn có nhiều cơ hội được tham gia vào quá trình sảnsinh ra các cá thể trong thế hệ kế tiếp Quy tắc lựa chọn kinh điển được sửdụng là lựa chọn theo tỷ lệ (proportional selection) như vòng quay bánh
xe Roulete
Trong một số trường hợp, lựa chọn theo tỷ lệ không thể áp dụng (chẳnghạn như giá trị đánh giá không thể xác định chính xác) thì một số thủ tụcxếp hạng cá thể có thể được sử dụng để thực hiện quá trình chọn lọc [109].Trong một số trường hợp khác, khi các thông tin để lựa chọn chỉ mangtính địa phương (chẳng hạn như lựa chọn cá thể tốt nhất trong một nhómnhỏ các cá thể) thì quy tắc lựa chọn giao đấu (tournament selection) cóthể được sử dụng [90, 109]
Các phép toán lai ghép, đột biến, chọn lọc được thực hiện bên trongmỗi thế hệ của EAs Quá trình đó được lặp đi lặp lại tạo nên các thể hệkhác nhau và quần thể của thế hệ sau có xu hướng tốt hơn quần thể củathế hệ trước Vấn đề đặt ra ở đây là khi nào thì dừng lại?
Quá trình tiến hóa trong tự nhiên là mãi mãi Tuy nhiên, khi giải quyếtcác bài toán bằng EAs các điều kiện để dừng thuật toán phải được xemxét Thông thường có 3 dạng điều kiện dừng được sử dụng:
Trang 26• Dừng theo giá trị đánh giá: Nếu biết trước giá trị đánh giá của phương
án tối ưu (giá trị tối ưu) thì có thể định nghĩa một giá trị ngưỡng đểdừng thuật toán khi giá trị đánh giá của cá thể tốt nhất hiện thờinằm trong ngưỡng so với giá trị tối ưu Ngoài ra, có thể sử dụng tìnhhuống khi mà hầu hết các cá thể của quần thể hiện tại là tương tựnhau, tình huống này được gọi là hội tụ Trong trường hợp này, mộtgiá trị ngưỡng được sử dụng để phát hiện tình huống hội tụ và đó làđiều kiện để dừng thuật toán
• Dừng theo sự thay đổi của giá trị đánh giá: Quá trình thay đổi giá trịđánh giá của cá thể tốt nhất qua các thế hệ có thể được ghi lại Nếu
sự thay đổi này nằm trong một giá trị ngưỡng đã được quy định trướcthì EA có thể được dừng Tương tự, sự thay đổi của giá trị đánh giátrung bình hoặc tốc độ của sự thay đổi đó cũng có thể được sử dụnglàm điều kiện dừng của thuật toán
• Dừng theo thời gian: Số lượng thế hệ đã tiến hóa có thể dùng làm điềukiện dừng của thuật toán Nếu số lượng đó vượt qua một giá trị đãđịnh nghĩa trước (gọi là số thế hệ tiến hóa tối đa cho phép, thường
ký hiệu là MaxGens) thì thuật toán có thể dừng Một điều kiện dừngtương tự là số lần tính giá trị hàm đánh giá tối đa cho phép (thường
ký hiệu là MaxFEs)
Khi thuật toán dừng, cá thể tốt nhất tìm được hiện thời là phương ántối ưu, là lời giải của bài toán Nếu giá trị ngưỡng () được sử dụng thì cáthể đó chính là phương án - tối ưu của bài toán
Tổng hợp lại, nếu ký hiệu:
• I là không gian các cá thể,
• Hàm số thực f : I −→ R là hàm đánh giá được xác định trên tập I,
• µ, κ và λ tương ứng là số lượng các cá thể tham gia trong các phéplai ghép, đột biến và chọn lọc,
• P (t) = {a1(t), a2(t), , aµ(t)} ∈ Iµ là quần thể tại thế hệ t,
• Phép chọn lọc, đột biến và lai ghép là các toán tử s : Iλ −→ Iµ,
thường ở toán tử đột biến, tuy nhiên nó sẽ phù hợp cho tất cả cácdạng khác nhau của EAs Với đột biến, có thể thay thế toán tử m trênbởi nhiều toán tử phù hợp hơn m0 : I −→ I Các toán tử có thể sửdụng thêm các tham số khác như θs, θm, θc đặc trưng cho dạng toán
tử và cách biểu diễn cá thể,
Trang 27• ι : I −→ {true, f alse} là hàm logic dùng để xác định điều kiện dừngcủa thuật toán, θι là tham số bổ sung (nếu cần) của điều kiện dừng.Khi đó, sơ đồ tổng quát của một EA có thể được mô tả như sau:
Algorithm 1.1 Sơ đồ tổng quát của Thuật toán tiến hóa
Input: µ, λ, κ, θι, θc, θm, θs
Output: a∗ là cá thể tốt nhất hoặc P∗ là quần thể tốt nhất tìm được
1: t ←− 0;
và cũng thu hút được nhiều các nhà khoa học từ truyền thống đến hiệnđại Tuy nhiên, để có những kiến thức sâu hơn, chi tiết hơn về tối ưu hóa,
về thuật toán tiến hóa có thể tham khảo [1, 2, 4, 42, 63, 85, 100, 109]
Về bản chất, EAs là các thuật toán tìm kiếm ngẫu nhiên trong khônggian quần thể gồm nhiều cá thể thông qua một quá trình tiến hóa Quátrình tiến hóa được chọn lọc, tuy nhiên cũng diễn ra một cách ngẫu nhiên.Bởi vậy, việc đưa các thông tin định hướng vào quá trình tiến hóa có thểgiúp cho quá trình tìm kiếm được diễn ra một cách đúng hướng hơn, nhanhchóng hơn Nói cách khác bài toán tối ưu hóa sẽ được giải quyết hiệu quảhơn
Do một bài toán tìm cực tiểu (min) có hàm mục tiêu f (x) là tương
Trang 28đương với một bài toán tìm cực đại (max) có hàm mục tiêu −f (x) Bởivậy trong các chương tiếp sau, luận án chỉ xem xét giải quyết bài toán tối
ưu hóa là các bài toán tìm cực đại (max) mà không làm mất đi tính tổngquát của bài toán
Trang 29Chương 2
NHỮNG NỘI DUNG NGHIÊN
CỨU LIÊN QUAN
Như đã đặt vấn đề trong lời mở đầu của luận án, việc sử dụng thôngtin định hướng luôn nhận được sự quan tâm của các nhà nghiên cứu trongviệc thiết kế các thuật toán heuristic, truyền thống cũng như hiện đại.Trong phần tiếp theo của chương này, tác giả sẽ dành nhiều thời lượng
để trình bày các thuật toán tìm kiếm nói chung và thuật toán tiến hóanói riêng dựa trên thông tin định hướng Các thuật toán được trình bày
ở đây bao gồm Thuật toán tìm kiếm đơn hình (Simplex Search) của J.A.Nelder và R Mead [66], Thuật toán tìm kiếm phân tán (Scatter Search)của F Glover, M Laguna và R Martin [30, 47], Thuật toán tối ưu bầy đàn(Particle Swarm Optimization - PSO) của R.C Eberhard và J Kennedy[43], cuối cùng là Thuật toán tiến hóa vi phân (Differential Evolution -DE) của R Storn và K Price [75]
Thông thường, các thuật toán tiến hóa được thiết kế để tìm kiếm mộtphương án tối ưu toàn cục Bởi vậy, đối với lớp các bài toán tối ưu đa cựctrị thường gặp trong thực tế, các thuật toán tiến hóa sẽ phải sử dụng các
kỹ thuật đặc biệt nhằm điều chỉnh hành vi, thúc đẩy và duy trì quá trìnhhình thành các tiểu quần thể ổn định trong một quần thể để cuối cùngxác định được nhiều phương án tối ưu (toàn cục hoặc địa phương) mộtcách đồng thời Các kỹ thuật đó được gọi chung là phương pháp niching(niching method) Trong phần thứ ba của chương này, tác giả sẽ trình bàynội dung chi tiết và các vấn đề liên quan của 4 phương pháp niching cơ bảnthường dùng là Fitness Sharing của D E Goldberg và J J Richardson[33], Crowding của K A De Jong [13], Species-based của Jian-Ping Li [50],Clustering-based của X Yin và N Germay [108]
Trang 30Khi giải quyết các bài toán yêu cầu khối lượng tính toán lớn thì songsong hóa là một trong những phương án thành công nhằm tăng cường hiệuquả làm việc của các thuật toán nói chung và thuật toán tiến hóa nói riêng.Vấn đề tìm hiểu các kỹ thuật song song hóa thuật toán tiến hóa trong phầnthứ tư của chương này có thể giúp tác giả đề xuất các thử nghiệm minhhọa phương án tăng cường hiệu năng tính toán của thuật toán tiến hóamới Trong phần này, ngoài 4 dạng mô hình song song truyền thống làmaster/slave, island, cellular và hybrid [8, 9, 42], luận án sẽ trình bày kỹthuật đồng tiến hóa hợp tác (Cooperative Co-evolution - CC) do M A.Potter đề xuất năm 1994 [70, 71] Với cách tiếp cận chia bài toán cỡ lớnthành các bài toán thành phần cỡ nhỏ hơn, CC đang được xem là khuônmẫu cho việc giải quyết các bài toán tối ưu cỡ lớn bằng thuật toán tiếnhóa Hy vọng rằng việc kết hợp CC với mô hình song song truyền thốngmaster/slave là một tiếp cận trong luận án nhằm nâng cao hiệu năng tínhtoán của thuật toán tiến hóa mới sẽ được đề xuất.
Là phương pháp tìm kiếm dựa vào thông tin định hướng nổi tiếng doJ.A Nelder và R Mead đề xuất năm 1965 [66], phương pháp này còn đượcgọi là phương pháp Nelder-Mead Phương pháp tìm kiếm này có tên gọiphương pháp đơn hình bởi nó bắt đầu từ khái niệm khối đơn hình Khốiđơn hình là một khối đa diệnn+1đỉnh trong không giannchiều Như vậy,trong không gian 1 chiều khối đơn hình là một đoạn thẳng, trong khônggian 2 chiều khối đơn hình là một tam giác và trong không gian 3 chiều,khối đơn hình là một tứ diện,
Trong toán học, chúng ta biết rằng hiệu của 2 véc tơ( ~x2− ~x1)là một véc
tơ mà điểm đầu là điểm cuối véc tơ này còn điểm cuối là điểm cuối của véc
tơ kia (xem Hình 2.1) Khi các véc tơ di chuyển mà vẫn giữ nguyên độ dài
và hướng thì hiệu của 2 véc tơ cũng sẽ ổn định về độ dài và hướng Do vậychúng ta có thể xem hiệu của hai véc tơ như là một hướng Ngoài ra nếu
ta di chuyển điểm đầu của một véc tơ tới điểm cuối một véc tơ khác thìtổng hai véc tơ đó sẽ là một véc tơ có điểm đầu là điểm đầu của véc tơ thứnhất, điểm cuối là điểm cuối của véc tơ thứ hai (xem véc tơ x~3+ ( ~x2− ~x1)
trong Hình 2.1) Khi đó điểm cuối của véc tơ x~3+ ( ~x2 − ~x1) có thể xem làđiểm đích khi di chuyển điểm x3 theo hướng của véc tơ ( ~x2 − ~x1)
Xét bài toán tối ưu tìm phương án cực đại Giả sử chúng ta có một khối
Trang 31Hình 2.1: Biễu diễn cộng trừ hai véc tơ
đơn hình gồm 3 điểm B, G và W (xem Hình 2.2) với giá trị đánh giá đượcxếp hạng như sau:
Như vậy, theo mục tiêu tìm kiếm phương án cực đại thì B là điểm tốt nhất,
G là điểm trung bình và W là điểm xấu nhất Chúng ta có thể tin rằnghướng từ W đến B và hướng từ W đến G là các hướng tốt và có thể sửdụng các thông tin này để tìm kiếm các điểm tốt tiếp theo thông qua cácthủ tục Reflection, Expansion, Contraction và Shrink như sau:
Giả sử M là trung điểm của G và B, ta có:
Bây giờ 3 điểm B, G và R trở thành một khối đơn hình mới
Nếu f (~xR) > f (~xB) thì thủ tục Reflection đã tìm ra một điểm tốt hơn
và khẳng định dự đoán về hướng tốt ở trên là đúng Thủ tục Expansionđược thực hiện để phát triển khối đơn hình B-G-R thành khối đơn hìnhB-G-E, trong đó:
~
xE = ~xM + 2(~xM − ~xW)
Nếu f (~xE) > f (~xB) thì yêu cầu đặt ra đã đạt được và chúng ta sử dụngB-G-E là khối đơn hình mới Ngược lại, chúng ta sử dụng lại khối đơn hìnhB-G-R
Nếu f (~xB) > f (~xR) > f (~xG) thì thủ tục Reflection là chấp nhận được
và khối đơn hình B-G-R được sử dụng
Trang 32Hình 2.2: Thuật toán Simplex Search
Nếu f (~xG) > f (~xR) thì thủ tục Reflection đã không tìm được điểm tốt.Tuy nhiên, chúng ta vẫn tin rằng hướng từ W đến M là hướng tốt, cóthể bước nhảy quá lớn đã làm việc tìm kiếm bị thất bại Khi đó, thủ tụcContraction được dùng để thu hẹp khối đơn hình B-G-R thành khối đơnhình B-G-C với C được xác định theo công thức:
và chúng ta sử dụng thủ tục Shrink để thu hẹp đơn hình dựa vào điểm B
Ta có khối đơn hình mới B-M-S, trong đó S được xác định theo công thức:
Sơ đồ chi tiết của thuật toán đơn hình Simplex Search có thể được trìnhbày như trong mục A.1 trong phụ lục A
Mặc dù tìm kiếm đơn hình (Simplex Search) làm việc một cách có hiệuquả Tuy nhiên nó là giống như một kỹ thuật hơn là một thuật toán khiphải giải quyết các vấn đề phức tạp trong thế giới thực Bởi vậy, trong
Trang 33năm 1977 F Glover, M Laguna và R Marti đã sử dụng những ý tưởngtốt trong tìm kiếm đơn hình để đề xuất thuật toán tìm kiếm mới gọi làthuật toán tìm kiếm phân tán (Scatter Search) [30, 47].
Các hoạt động của thuật toán Scatter Search xoay quanh một tập cácphương án tham chiếu được ký hiệu là Ref Set Ref Set là một tập chứa
b = b1+ b2 phương án tốt nhất, trong đó b1 là số phương án tốt nhất theotiêu chí tính hội tụ (có giá trị đánh giá tốt nhất), b2 là số phương án tốtnhất theo tiêu chí tính đa dạng (có tổng khoảng cách tới các phương án
đã lựa chọn trong Ref Set là lớn nhất)
Thuật toán Scatter Search có 5 thủ tục chính bao gồm:
• Thủ tục khởi tạo đa dạng (Diversification Generation Method): Sinh
ra một tập P gồm các phương án thử nghiệm đảm bảo tính đa dạng
Số lượng các phương án thử nghiệm (PSize) thường rất lớn, ít nhấtgấp 10 lần kích thước của tâp tham chiếu Ref Set
• Thủ tục cải thiện (Improvement Method): Nhằm cải thiện các phương
án thử nghiệm thành các phương án tốt hơn để đưa vào tập thamchiếu Ban đầu Improvement Method sử dụng kỹ thuật tìm kiếm đơnhình (Simplex Search), tuy nhiên về sau sử dụng nhiều kỹ thuật khác.Chẳng hạn như Multi-directional Search [103], Coordinate Search [45,86], hoặc cũng có thể lồng một Scatter Search khác
• Thủ tục cập nhật tập tham chiếu (Reference Set Update Method):Dùng để xây dựng và duy trì một tập tham chiếu Ref Set bao gồm b
phương án tốt nhất đã tìm thấy Thủ tục này giúp lựa chọn b1 phương
án tốt nhất về giá trị đánh giá (tiêu chí tính hội tụ) và b2 phương ántốt tiếp theo có tổng khoảng cách tới các phương án đã được lựa chọnlớn lớn nhất (tiêu chí tính đa dạng)
• Thủ tục khởi tạo tập con (Subset Generation Method): Được thựchiện trên tập tham chiếu Ref Set để sinh ra một tập con bao gồm cácphương án làm cơ sở để tạo ra các phương án kết hợp
• Thủ tục kết hợp (Solution Combination Method): Chuyển các tập con
đã được tạo ra bởi Thủ tục khởi tạo tập con ở trên thành một hoặcnhiều các phương án kết hợp
Sơ đồ hoạt động của các thủ tục trong thuật toán Scatter Search đượcbiểu diễn trong Hình 2.3
Nội dung của thuật toán Scatter Search được mô tả chi tiết trong mụcA.2 của Phụ lục A
Trang 34Hình 2.3: Các thủ tục của Scatter Search
Tối ưu bầy đàn (Particle Swarm Optimization - PSO) là một kỹ thuậttối ưu hóa ngẫu nhiên được phát triển bởi R.C Eberhart và J Kennedyphỏng theo hành vi của các bầy chim hay các đàn cá [43] PSO dựa trênquần thể các cá thể được sinh ra một cách ngẫu nhiên Tuy nhiên, PSOkhông phải là thuật toán tiến hóa bởi PSO không có các phép toán tiếnhóa như chọn lọc, lai ghép hay đột biến để sinh các cá thể
Để hiểu tư tưởng của thuật toán PSO, chúng ta xem xét một ví dụ nhưsau: Giả sử có một bầy chim đang tìm kiếm thức ăn trong một vùng nào
đó Tất cả các con chim không biết thức ăn ở đâu Tuy nhiên, chúng biếtthức ăn cách xa bao nhiêu sau mỗi lần bay đi bay lại Câu hỏi đặt ra là:cách tốt nhất để tìm được thức ăn là gì? Câu trả lời đơn giản là: hãy theosau những con chim gần chỗ thức ăn nhất Thuật toán PSO phỏng theokịch bản này và sử dụng nó để giải các bài toán tối ưu
Hình 2.4: Cập nhật vị trí tìm kiếm trong PSO
Trong PSO, mỗi cá thể (trong ví dụ trên là mỗi con chim) được gọi làparticle Mỗi particle có một giá trị đánh giá (fitness value) được xác định
Trang 35bằng hàm đo độ thích nghi (fitness function) và một vận tốc (velocity) đểđịnh hướng việc bay tìm kiếm thức ăn của nó Các particle sẽ duyệt khônggian bài toán bằng cách theo sau các particle có vị trí tốt nhất hiện thời(current optimum particles) PSO được khởi tạo bởi một nhóm ngẫu nhiêncác particle, sau đó tìm kiếm giải pháp tối ưu bằng việc cập nhật vị trícủa particle qua các thế hệ (lần lặp) Trong mỗi thế hệ, mỗi particle đượccập nhật bởi hai giá trị:
• P besti là vị trí tốt nhất (có giá trị đánh giá tốt nhất) của particle thứ
i cho tới thời điểm hiện tại, và
• Gbest là vị trí tốt nhất của tất cả particle cho đến thời điểm hiện tại.Nói cách khác, mỗi cá thể trong quần thể cập nhật vị trí của nó theo vị trítốt nhất của nó và của mọi cá thể trong quần thể tính tới thời điểm hiệntại
Hình ảnh về các vị trí cập nhật của một particle đươc minh họa trongHình 2.4, trong đó Xik là vị trí của cá thể thứ i tại thế hệ thứ k, Vik là vậntốc của cá thể thứ i tại thế hệ thứ k, P besti là vị trí tốt nhất của cá thểthứ i, Gbest là vị trí tốt nhất của quần thể, ViP best là vận tốc theo P besti,
ViGbest là vận tốc theo Gbest
Quá trình cập nhật các particle dựa trên hai công thức sau:
vi,jk+1 = w ∗ vi,jk + c1 ∗ rand() ∗ P besti,j − xki,j
+ c2 ∗ rand() ∗ Gbestj − xki,j
xk+1i,j = xki,j + vi,jk+1
(i =1, 2, , N, j = 1, 2, , D)
trong đó:
• N là kích thước quần thể, là số lượng particle
• D là số chiều của không gian biểu diễn particle
Trang 36• P besti,j là thành phần thứ j của vị trí tốt nhất của cá thể thứ i
Sơ đồ chi tiết của thuật toán Tối ưu bầy đàn PSO được biểu diễn trongmục A.3 của Phụ lục A
Tiến hóa vi phân (Differential Evolution - DE) là một dạng EAs dựatrên thông tin định hướng, được đề xuất bởi R Storn và K Price vào năm
1997 [75] DE thực hiện tiến hóa trên một quần thể gồm N cá thể với cácphép toán đột biến, lai ghép và chọn lọc Có thể nói rằng DE là một phiênbản của GA với cách biểu diễn cá thể là số thực Sự khác nhau căn bảngiữa DE với GA và ES là ở phép toán đột biến Trong đó thông tin vềhướng (Hình 2.5) được sử dụng để làm biến đổi các cá thể của quần thểhiện tại
Hình 2.5: Thông tin định hướng trong DE
Hoạt động của DE được mô tả như sau:
Giả sử không gian tìm kiếm là một không gianD chiều, N là kích thướcquần thể Một cá thể thứ i có thể được biểu diễn:
xi = (xi,1, xi,2, , xi,D)
trong đó xi,j ∈ R, i = 1, 2, , N, j = 1, 2, , D
Trang 37Để đột biến một cá thể xi, DE lựa chọn 3 cá thể ngẫu nhiên từ quầnthể hiện tại (r1 6= r2 6= r3 6= xi) Khi đó, cá thể vi được tính theo côngthức:
trong đóF là một số thực dương (thường bé hơn 1) được gọi là cá thể độtbiến của xi Có thể nói, cá thể đột biến vi là một cá thể được dịch chuyển
từ cá thể r1 theo hướng và độ lớn của F (r2 − r3) Tham số F được dùng
để điều khiển độ lớn của véc tơ định hướng và được gọi là bước nhảy địnhhướng
Sau đột biến, DE sử dụng cơ chế lai ghép đơn điểm (uni-point crossover)
để kết hợp thông tin giữa cá thể cha xi và cá thể đột biến vi Chúng ta cần
ít nhất một biến thành phần của cá thể vi Bởi vậy, với một số thực ngẫunhiên jrand (jrand ∈ [0, D]) và tham số θc ∈ [0, 1]là tham số điều khiển laighép (ta quen gọi là xác suất lai ghép) thì cá thể con ui được tính toántheo công thức:
ui,j =
vi,j nếu rand() ≤ θc hoặc j = jrand
Công thức này có nghĩa là cá thể con ui có θc thành phần được lựa chọn
từ cá thể đột biến vi và đảm bảo ít nhất jrand thành phần được lấy từ vi
Cá thể ui được gọi là cá thể thử nghiệm
Cuối cùng phép chọn lọc được thực hiện sẽ quyết định sự cạnh tranhcủa cá thể cha xi và cá thể thử nghiệm ui trong thế hệ kế tiếp:
Quá trình khởi tạo và các điều kiện kết thúc của thuật toán DE có thểtương tự như của GA Thuật toán DE có thể được mô tả như Algorithm 2.1sau đây
Trang 38Algorithm 2.1 Thuật toán Tiến hóa vi phân (Differential Evolution) [75]Input: N - kích thước quần thể, F - bước nhảy định hướng, θc - xác suấtlai ghép
Output: x∗ là phương án tối ưu
Trang 39trong đó F và K là các bước nhảy định hướng (0 ≤ F, K ≤ 1), r1, r2, r3,
r4,r5 là các cá thể được lựa chọn ngẫu nhiên trong quần thể hiện tại, xbest
là cá thể tốt nhất trong quần thể hiện tại
Theo kết quả khảo sát của S Das và P N Suganthan năm 2011 [11], cónhiều hướng nghiên cứu phát triển thuật toán DE, bao gồm: Nghiên cứuđiều khiển các tham số của DE, Nghiên cứu phát triển DE cho các lớp bàitoán khác nhau (đơn mục tiêu, đa mục tiêu, tối ưu cỡ lớn, ) Trong đó,hướng nghiên cứu phát triển DE cho các bài toán đơn mục tiêu tập trungcải tiến hoặc đề xuất các chiến lược đột biến mới Tiêu biểu cho hướngnghiên cứu này là các đề xuất của H Fan và J Lampinen với kỹ thuậtđột biến lượng giác (Trigonometric mutation) [23], Mở rộng của K Pricecho các chiến lược đột biến mới DE/current-to-rand/1, DE/rand/1/Either-
Or [75] Thuật toán ODE (Opposition-based Differential Evolution) do S.Rahnamayan và các cộng sự đề xuất [79] Thuật toán DEGL do S Das
và các cộng sự đề xuất với chiến lược đột biến mới được cải thiện từDE/target-to-best/1 [10] Cũng năm 2009, A.K Qin đề xuất thuật toánSaDE [78] cho phép lựa chọn thích nghi các chiến lược đột biến khác nhau.Bên cạnh các nghiên cứu độc lập về DE cũng có những nghiên cứu kếthợp giữa DE với các mô hình thuật toán tiến hóa mới Chẳng hạn nghiêncứu kết hợp giữa DE và PSO của W Zhang và X Xie [110] hay kết hợpgiữa DE với BFOA (Bacterial Foraging Optimization Algorithm) của A.Biswas và các cộng sự [5]
Gần đây, bên cạnh các nghiên cứu về ứng dụng DE trong việc giải quyếtcác bài toán thực tế vẫn còn những nghiên cứu nhằm đề xuất các chiếnlược cải tiến hiệu suất và chất lượng của DE Năm 2013, nhóm nghiên cứucủa M.G Epitropakis đã đề xuất thuật toán dADE/nrand/1 bằng cách bổsung cơ chế tự thích nghi các tham số điều khiển và dùng tệp lưu trữ ngoài(dynamic archive) nhằm giải quyết các bài toán tối ưu đã cực trị [20] Năm
2014, A.K Qin và các đồng sự tiếp tục nâng cấp thuật toán SaDE [78]bằng cách tích hợp chuỗi tìm kiếm địa phương theo hai dạng Lamarckian
và Baldwinian để tăng cường tính hội tụ của SaDE [77] Cũng năm 2014,nhóm nghiên cứu của R A Sarker đề xuất thuật toán DE-DPS sử dụng
Trang 40một cơ chế tự động lựa chọn kết hợp các tham số điều khiển DE như xácsuất đột biến, xác suất lai ghép, kích thước quần thể trong mỗi lần chạythuật toán [84] Năm 2015, nhóm nghiên cứu của C Brown đã giới thiệuµ-JaDE với cơ chế đột biến mới "current-by-rand-to-pbest" và các quần thể
có kích thước nhỏ hơn 10 (micro population) [6] M F Tasgetiren và cácđồng sự giới thiệu DE-VNS dựa trên kỹ thuật VNS (variable neighborhoodsearch), sử dụng nhiều cơ chế đột biến và lai ghép khác nhau trong cácvòng lặp VNS nhằm nâng cấp chất lượng lời giải [98],
Một số nghiên cứu phát triển DE cho các bài toán tối ưu đa cực trịbằng kết hợp DE với các phương pháp niching, tiêu biểu như CrowdingDE,SharingDE của R Thomsen [99], SDE (Species-based DE) của X Li [51,53] Những thuật toán này sẽ được tác giả trình bày chi tiết hơn trong cácphần sau
Fitness Sharing là một phương pháp niching được D E Goldberg và J
J Richardson đề xuất năm 1987 [33] Ý tưởng chính của phương pháp này
là chia quần thể hiện tại thành các nhóm (niche) nhỏ hơn dựa vào mức độtương tự của các cá thể và các cá thể trong mỗi niche sẽ chia sẻ với nhaugiá trị đánh giá của chúng Phép toán chọn lọc sẽ dựa vào giá trị đánh giámới để quyết định các cá thể nào được tham gia vào quần thể trong thế
hệ tiếp theo
Cụ thể, với một giá trị ngưỡng rs > 0 được gọi là bán kính của niche,một thuật toán tiến hóa có sử dụng phương pháp Fitness Sharing sẽ bổsung các tính toán sau đây trước khi thực hiện phép toán chọn lọc: