BỘ 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ỌC Chuyê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

BỘ 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

LỜ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 đưa và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 2016

Nghiên cứu sinh

1

Vũ Chí Cường

LỜ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ông nghệ thông tin, Học viện Kỹ thuật Quân sự dưới sự hướng dẫn khoa học củ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ân thà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ức cũ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ác giả 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ôn Cô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 sinh thà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ảm nồng ấm, sẻ chia và ủng hộ tác giả trong suốt thời gian học tập và nghiên cứ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êu thươ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 2016

Nghiên cứu sinh

2

Vũ Chí Cường

Mục lục

Trang

Danh sách ký hiệu, chữ viết tắt 6

Danh sách bảng 8

Danh sách hình vẽ 10

Lời mở đầu 11

1 CƠ SỞ LÝ THUYẾT 15

1.1 Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

1.3.3 Cách đánh giá cá thể

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 . . . . . . . . . . . . . . . . . . . . . . . . . .22 . . . . . . . . . . . . . . . . . . . . . . . . .22 1.3.4 Các phép toán tiến hóa 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.2.3 Tối ưu bầy đàn (Particle Swarm Optimization)

2.2.4 Tiến hóa vi phân (Differential Evolution)

2.1 Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

2.3.1 Phương pháp chia sẻ giá trị đánh giá (Fitness sharing)

2.2 Các thuật toán tìm kiếm dựa trên thông tin định hướng .28 . . . . . . . . . . . . . . .28 2.2.1 Thuật toán tìm kiếm đơn hình (Simplex Search) 2.2.2 Thuật toán tìm kiếm phân tán (Scatter Search) . . . . . . . . . . . . . . . .30 . . . . . . . . . . . . . . . .32 . . . . . . . . . . . . . . . . . .34

3

2.3 Phương pháp niching . . . . . . . . . . . . . . . . . . . . . . .38 . . . . . . . . . . . . .38

2.3.2 Phương pháp đám đông (Crowding)

2.4.5 Kỹ thuật đồng tiến hóa hợp tác (cooperation co-evolution)

. . . . . . . . . . . . . . . . . . . .40 . . . . . . . . . . . . . . . . . .42 2.3.3 Phương pháp dựa vào loài (Species-based) 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 . . . . . . . . . . . . . . . . . . . . . . . . . .47 2.4.1 Mô hình master/slave 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 . . . . . . . . . . .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.3.1 Mô hình song song

3.3.2 Thuật toán song song

3.3.3 Thời gian thực thi và hệ số tăng tốc

3.2 Thuật toán DEAL . . . . . . . . . . . . . . . . . . . . . . . . .56 3.2.1 Độ phức tạp tính toán . . . . . . . . . . . . . . . . . . . . . . . . . .59 . . . . . . . . . . . . . . . . . . .60 3.2.2 Các tùy chọn về bước nhảy định hướng 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 . . . . . . . . . . . . . . . . . . . . . . . . . . .61 . . . . . . . . . . . . . . . . . . . . . . . . . .63 . . . . . . . . . . . . . . . . . . . .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

4.3 DEAL với phương pháp Crowding . . . . . . . . . . . . . . .85

4.4 DEAL với phương pháp Species-based . . . . . . . . . . . .86

So sánh các thuật toán đã đề xuât

4.6.6

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 . . . . . . . . . . . . . . . . . . . . .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

5

B.2Các bài toán tối ưu đa cực trị . . . . . . . . . . . . . . . . .139

Danh sách ký hiệu, chữ viết tắt

Diễn giải Thuật toán tối ưu hóa đàn kiến Hệ miễn nhiễm nhân tạo Kỹ thuật đồng tiến hóa hợp tác (Cooperative Coevolution) Tham số Crowding Factor của phương pháp Crowding

Ký hiệu ACO AIS CC CF CrowdingDEAL Thuật toán DEAL với phương pháp Crowding D DE DEAL EA EDA EP ES ETS GA GP M axGens M axF Es

Số chiều của hàm mục tiêu (hàm đánh giá) Thuật toán tiến hóa vi phân Thuật toán tiến hóa dựa trên thông tin định hướng Thuật toán tiến hóa (Evolutionary Algorithm) Thuật toán ước lượng các thuật toán phân phối Quy hoạch tiến hóa (Evolutionary Programming) Chiến lược tiến hóa (Evolution Strategies) Tập các cá thể ưu tú (Elite Set) Giải thuật di truyền (Genetic Algorithm) Lập trình di truyền (Genetic Programming) Số thế hệ tối đa Số lần tính giá trị hàm đánh giá tối đa (Maximum Fitness Evaluations) Thuật toán DEAL theo chiến lược lai ghép cải tiến Kích thước quần thể Kỹ thuật phân cụm Nearest-better Clustering Thuật toán DEAL với phương pháp Clustering-based Thuật toán song song hóa DEAL theo kỹ thuật CC Thuật toán tối ưu bầy đàn

6

MDEAL N , P opSize NBC NBCDEAL PCCDEAL PSO 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)

Danh 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

7

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

8

4.17 Tổng hợp xếp hạng theo các tùy chọn của NBCDEAL . . . . . . 108 4.18 So sánh độ đo PR của NBCDEAL khi điều chỉnh φ . . . . . . . . 110 . . . . 111 4.19 So sánh độ đo PR của NBCDEAL và các thuật toán khác 4.20 Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 01 của các thuật toán112 4.21 Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 02 của các thuật toán113 4.22 Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 03 của các thuật toán113 4.23 Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 04 của các thuật toán114 4.24 Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 05 của các thuật toán114 4.25 Kiểm định Friedman của các thuật toán . . . . . . . . . . . . . . 115 4.26 Thứ hạng của các thuật toán theo kiểm định Friedman . . . . . . 115 4.27 Kiểm định Wilcoxon của các thuật toán . . . . . . . . . . . . . . 116

Danh sách hình vẽ

. . . 17 1.1 Phương án tối ưu địa phương và phương án tối ưu toàn cục 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 . . . . . . . . . 73 3.10 Độ đa dạng quần thể của các bài toán đa cực trị 3.11 Giá trị tối ưu trung bình đạt được khi D = 30 của các bài toán . 77

9

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

10

4.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 . . . . . . . . . . . . . . . . 97 4.5 Ảnh hưởng của kích thước quần thể 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

Lờ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ến hóa (Evolutionary Algorithms - EAs) là một lớp các thuật toán heuristic trong tối ưu hóa và học máy. EAs đã được áp dụng rộng rãi và thu được nhiề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ình chọn lọc tự nhiên trong thuyết tiến hóa của Darwin. EAs hoạt động trên tậ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ền thố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 Pro- gramming - GP). Các đặc điểm quan trọng nhất đối với các EAs là:

• 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ột lờ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ông qua 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 được xem 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ó

một số mô hình thuật toán phỏng tự nhiên mới được đề xuất, chẳng hạn như Tối ưu bầy đàn (PSO) [43], Tối ưu đàn kiến (ACO) [19], Ước lượng các thuậ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ững hiện tượng khác nhau của thế giới tự nhiên như bầy chim, đàn cá hay đàn kiế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âm của các nhà nghiên cứu. Nếu có thông tin định hướng tốt thì quá trình tì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 đơn hì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óa mớ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 định hướng để chỉ dẫn quá trình tìm kiếm lời giải. Tuy nhiên, trong các thuật toán này, thông tin định hướng chỉ được xác định một cách cục bộ trong từ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ức quả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ững trườ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ông tin đị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ủa luậ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ằng một quần thể các cá thể có thể bao hàm các thông tin định hướng, các thô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ướng DEAL (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)

12

đế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 được cập nhật trong suốt quá trình tiến hóa. Tập ETS chứa đựng thông tin đị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ược

lai ghép.

• Có thể mở rộng, nâng cao hiệu năng tính toán thông qua kỹ thuật song 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ền thống với kỹ thuật đồng tiến hóa hợp tác. Các kết quả thực nghiệm cho 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ướng nhằm giải quyết các bài toán đa cực trị: Gồm 4 thuật toán SharingDEAL, CrowdingDEAL, SpeciedDEAL và NBCDEAL là giải pháp kết hợp giữa DEAL và các phương pháp niching phổ biến. Kết quả thực nghiệm của các thuật toán này đều cho thấy sự khả quan củ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à 2

phụ 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-modal optimization problems). Phần lý thuyết về thuật toán tiến hóa, các thành phần của một thuật toán cũng được trình bày một cách chi tiết.

13

Chương 2: Những nội dung nghiên cứu liên quan. Chương này tậ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án tìm kiếm tiêu biểu dựa trên thông tin định hướng. Các thuật toán được trình bày theo trình tự từ cổ điển đến hiện đại để thấy được sự quan tâm củ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ủa cá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

trì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ến hó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án DEAL 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ớp bà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ộng nhằm nâng cao hiệu năng tính toán của thuật toán DEAL bằng phương phá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ối của chương.

Chương 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 đa cực trị. Chương này trình bày các mở rộng của thuật toán DEAL nhằm giải quyết các bài toán tối ưu đa cực trị (multi-modal optimization 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ặt hành vi bằng các phương pháp niching. Trong nội dung của chương, tác giả 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 niching tươ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ộc luậ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.

14

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óp chính của luận án và một số ý tưởng về hướng nghiên cứu trong tương lai của tác giả.

Chương 1

CƠ SỞ LÝ THUYẾT

1.1. Mở đầu

Mục đích của chương này là cung cấp các kiến thức cơ sở lý thuyết liên quan đến nội dung nghiên cứu của luận án. Cấu trúc của chương gồm 2 phần chính. Phần đầu trình bày những khái niệm lý thuyết tổng quan về tối ưu hóa, liên quan nhiều nhất đến thuật toán tiến hóa. Phần thứ hai mô 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ản chất, các dạng phân loại truyền thống. Trong phần này, tác giả cũng dành thời gian để mô tả một cách cụ thể các thành phần chính của một thuật toán tiến hóa và cuối cùng là sơ đồ tổng quát của thuật toán.

1.2. Tối ưu hóa

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án họ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ị

(1.1)

f (x) −→ max(min) với điều kiện x ∈ Ω ⊆ Rn

được gọi là bài toán tối ưu hóa.

15

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.

Đị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.

Tập ràng buộc Ω thường có dạng

(cid:26) (cid:27)

Ω =

x

hi(x) = 0, i ∈ {1, 2, . . . , p} gj(x) ≤ 0, j ∈ {1, 2, . . . , q}

(cid:12) (cid:12) (cid:12) (cid:12)

trong đó hi và gj là các hàm cho trước và được gọi là các hàm ràng buộc, p, q là số lượng các hàm ràng buộc.

Đị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ời giải của bài toán nếu thỏa mãn:

hoặc

f (x) ≤ f (x∗), ∀x ∈ Ω đối với bài toán max 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 địa phương trên Ω nếu tồn tại (cid:15) > 0 sao cho f (x) ≤ f (x∗) đối với bài toán max (hoặc f (x) ≥ f (x∗) đối với bài toán min), trong đó x ∈ Ω \ {x∗} và |x − x∗| < (cid:15).

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án min), 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 án tối ưu địa phương. Trong khi đó, một phương án tối ưu địa phương không nhấ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 sánh ” > ” trong bài toán max (hoặc thay phép so sánh ” ≤ ” bằng phép 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.

16

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.

Hình 1.1: Phương án tối ưu địa phương và phương án tối ưu toàn cục

Hình 1.2: Bài toán tối ưu đơn cực trị Sphere

Đị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ố (cid:15) > 0 đủ nhỏ, một phương án chấp nhận được x được gọi là phương án (cid:15) - tối ưu của bài toán nếu |f (x) − f (x∗)| ≤ (cid:15). Định nghĩa 1.6. Bài toán tối ưu đơn cực trị (uni-modal optimization problem) 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 được gọi là bài toán tối ưu đa cực trị (multi-modal optimization problem).

2 (cid:88)

Xét Hình 1.2 là dạng biểu diễn 3D của hàm Sphere có công thức

f (x) =

x2 i

i=1

17

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

(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

2 (cid:88)

2 (cid:88)

(cid:33) (cid:32)

f (x) = −20 exp

+ 20 + e

(cid:118) (cid:117) (cid:117) (cid:116)

cos(2πxi)

 −0.2   − exp

x2 i

1 2

1 2

i=1

i=1

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àn cục và nhiều phương án tối ưu địa phương. Như vậy bài toán này 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ó một phương án tối ưu toàn cục.

2 (cid:89)

5 (cid:88)

Hình 1.3b là dạng biểu diễn 3D của hàm Shubert có công thức

f (x) = −

j cos[(j + 1)xi + j]

i=1

j=1

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.

18

Một trong những phương pháp hiển nhiên nhất để giải bài toán tối ưu là: 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

hiệ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ũng như thực nghiệm để tách từ bài toán tối ưu tổng quát thành những lớp bà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ài toán quy hoạch lồi, bài toán quy hoạch toàn phương, bài toán quy hoạch nguyê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ật toán đơn hình của Dantzig, thuật toán nhát cắt của Gomory, thuật toán nhá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ạc thu đượ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ủa D.B. Fogel [27], của J.H. Holland [39] về tính toán tiến hóa (Evolutionary Computing - EC) với các thuật toán tiến hóa (Evolutionary Algorithms - EAs).

1.3. Thuật toán tiến hóa

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ên quan đến sinh học, tối ưu hóa và trí tuệ nhân tạo. Về bản chất EAs là các thuậ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ình hoà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ính tối ưu trong tự nhiên thể hiện ở chỗ: về lâu dài, các thế hệ sau có xu hướng không kém hơn thế hệ trước nhờ hai quá trình cơ bản là sinh sản và chọn lọ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ến hó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ôi trường.

19

Có 4 dạng EAs truyền thống bao gồm: Lập trình tiến hóa, Chiến lược

tiế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 đơn giản như sau: Cho một lớp các phương án chấp nhận được có thể giải quyết được một (số) phần của vấn đề. Dựa vào quy luật tiến hóa, tìm mộ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 đầu tiên bởi J.H. Holland trong những năm 1975 [39]. GA (đặc biệt là GA kinh đ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ách ngẫu nhiên, các cặp cá thể được lựa chọn để tham gia một quá trình tiến hóa gồm lai ghép và đột biến. Quần thể thu được phải trải qua một quá trình chọn lọc để xây dựng quần thể mới gồm các cá thể tốt hơ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ật toá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ột bài toán dưới hình thức một chương trình máy tính. Trong GP, các lời giả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ạng thay đổi. Cả cấu trúc và nội dung của lời giải đều được tiến hóa, điều nà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ới nhiều sự khác biệt. Tuy nhiên, chúng đều mô tả các thành phần sau đây:

1.3.1. Cách biểu diễn di truyền lời giải của bài toán

Mỗi lời giải hay phương án chấp nhận được của bài toán tối ưu đều phả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ính xác giá trị thực của lời giải mà phải có một sai số nhất định.

20

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

lớp các giải thuật di truyền tham số thực (real parameter GA). Trong các thuậ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ác toán tử lai ghép SBX được mô phỏng tương tự như lai ghép trong biểu diễ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ủa D.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ích thước và hình dạng thay đổi để biểu diễn các cá thể [46]. Cách biểu diễn nà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.

1.3.2. Cách khởi tạo quần thể ban đầu

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ởi biế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ể được khở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 trong tập khả thi có chứa nhiều lời giải tốt hơn. Tuy nhiên, để đảm bảo tính khách quan và công bằng nên hầu hết trường hợp chúng ta đều thực hiện tì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 đơn giả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ân phối đều trong miền xác định tương ứng của tập khả thi.

21

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ần thể 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 RAMPED-HALF- AND-HALF [46].

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á được xâ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ừng bà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ựng của hàm đánh giá là khác nhau. Tuy nhiên, đối với các thuật toán tiến hóa tham số thực, hàm đánh giá thường dựa trên hàm mục tiêu của bài toán tối ưu với tham số là giá trị biểu diễn của cá thể.

1.3.4. Các phép toán tiến hóa

Trong quá trình tiến hóa, các cá thể con cái được sinh ra một cách ngẫu

Phép toán lai ghép

nhiê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.

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ông qua 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 đơn hình (simplex crossover [101]), lai ghép SBX (simulated binary crossover [17]), lai ghép phân phối chuẩn unimodal (unimodal normal distribution crossover [44, 68]).

22

Trong GP, quá trình lai ghép giữa 2 cây phân tích được lựa chọn làm cha 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ẹ.

Phé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ày chỉ gây ra một thay đổi nhỏ trong cá thể. Quá trình đột biến trong EAs cho 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).

Phép toán chọn lọc

Trong GP, quá trình đột biến là sự thay đổi ngẫu nhiên một cây con trong cây phân tích. Đối với các dạng EAs đặc biệt như ES và EP thì các toá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]).

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ản sinh 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ẳng hạn như giá trị đánh giá không thể xác định chính xác) thì một số thủ tục xế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ỉ mang tính địa phương (chẳng hạn như lựa chọn cá thể tốt nhất trong một nhóm nhỏ các cá thể) thì quy tắc lựa chọn giao đấu (tournament selection) có thể được sử dụng [90, 109].

1.3.5. Điều kiện dừng của thuật toán

Các phép toán lai ghép, đột biến, chọn lọc được thực hiện bên trong mỗ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ủa thế hệ trước. Vấn đề đặt ra ở đây là khi nào thì dừng lại?

23

Quá trình tiến hóa trong tự nhiên là mãi mãi. Tuy nhiên, khi giải quyết các bài toán bằng EAs các điều kiện để dừng thuật toán phải được xem xét. Thông thường có 3 dạng điều kiện dừng được sử dụng:

• 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ời nằm trong ngưỡng so với giá trị tối ưu. Ngoài ra, có thể sử dụng tình huố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ột giá 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ước thì 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ụng là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ều kiệ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ừng tươ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 án tối ưu, là lời giải của bài toán. Nếu giá trị ngưỡng ((cid:15)) được sử dụng thì cá thể đó chính là phương án (cid:15) - 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ép

lai 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 µ, m : I κ −→ I λ và r : I µ −→ I κ. Việc mô tả này có một chút bất thường ở toán tử đột biến, tuy nhiên nó sẽ phù hợp cho tất cả các dạng khác nhau của EAs. Với đột biến, có thể thay thế toán tử m trên bởi nhiều toán tử phù hợp hơn m(cid:48) : 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ể,

24

• ι : I −→ {true, f alse} là hàm logic dùng để xác định điều kiện dừng của thuật toán, θι là tham số bổ sung (nếu cần) của điều kiện dừng.

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.

Khi đó, sơ đồ tổng quát của một EA có thể được mô tả như sau:

(cid:46) Khởi tạo quần thể ban đầu (cid:46) Đánh giá các cá thể của quần thể

1: t ←− 0; 2: P (t) ←− initialize(µ); 3: f (t) ←− evaluate(P (t), µ); 4: while (ι(P (t), θι) (cid:54)= true) do 5:

6:

(cid:46) Phép lai ghép (cid:46) Phép đột biến

7:

8:

(cid:46) Phép chọn lọc

P (cid:48)(t) ←− crossover(P (t), θc); P ”(t) ←− mutate(P (cid:48)(t), θm); f (t) ←− evaluate(P ”(t), λ); P (t + 1) ←− select(P ”(t), f (t), µ, θs); t ←− t + 1;

9: 10: end while 11: return P ∗ = P (t);

12:

a∗ = best(P (t));

1.4. Kết luận

Trong chương này, tác giả đã trình bày các kiến thức lý thuyết cơ bản nhất liên quan đến nội dung nghiên cứu của luận án như tối ưu hóa và các thuật toán tiến hóa. Những nội dung đã trình bày giúp chúng ta có thể thấy được rằng EAs một trong những lĩnh vực nghiên cứu đầy tiềm năng 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ông gian 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, nhanh chó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.

25

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

26

đươ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ởi vậ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ổng quát của bài toán.

Chương 2

NHỮNG NỘI DUNG NGHIÊN CỨU LIÊN QUAN

2.1. Mở đầu

Như đã đặt vấn đề trong lời mở đầu của luận án, việc sử dụng thông tin định hướng luôn nhận được sự quan tâm của các nhà nghiên cứu trong việ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óa nó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].

27

Thông thường, các thuật toán tiến hóa được thiết kế để tìm kiếm một phươ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ực trị 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ình hình thành các tiểu quần thể ổn định trong một quần thể để cuối cùng xác định được nhiều phương án tối ưu (toàn cục hoặc địa phương) một cá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ày nội dung chi tiết và các vấn đề liên quan của 4 phương pháp niching cơ bản thườ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].

Khi 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ì song song hóa là một trong những phương án thành công nhằm tăng cường hiệu quả 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ần thứ tư của chương này có thể giúp tác giả đề xuất các thử nghiệm minh họ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óa mớ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ớn thành các bài toán thành phần cỡ nhỏ hơn, CC đang được xem là khuôn mẫ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ến hóa. Hy vọng rằng việc kết hợp CC với mô hình song song truyền thống master/slave là một tiếp cận trong luận án nhằm nâng cao hiệu năng tính toán của thuật toán tiến hóa mới sẽ được đề xuất.

2.2. Các thuật toán tìm kiếm dựa trên thông tin định hướng

2.2.1. Thuật toán tìm kiếm đơn hình (Simplex Search)

Là phương pháp tìm kiếm dựa vào thông tin định hướng nổi tiếng do J.A. Nelder và R. Mead đề xuất năm 1965 [66], phương pháp này còn được gọi là phương pháp Nelder-Mead. Phương pháp tìm kiếm này có tên gọi phươ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ện n+1 đỉnh trong không gian n chiề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ông gian 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ơ ( (cid:126)x2 − (cid:126)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ậy chú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ơ (cid:126)x3 + ( (cid:126)x2 − (cid:126)x1) trong Hình 2.1). Khi đó điểm cuối của véc tơ (cid:126)x3 + ( (cid:126)x2 − (cid:126)x1) có thể xem là điểm đích khi di chuyển điểm x3 theo hướng của véc tơ ( (cid:126)x2 − (cid:126)x1).

28

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

Hì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á được xếp hạng như sau:

(2.1)

f ((cid:126)xB) > f ((cid:126)xG) > f ((cid:126)xW ) 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ằng hướ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ác thủ tục Reflection, Expansion, Contraction và Shrink như sau:

Giả sử M là trung điểm của G và B, ta có:

((cid:126)xG + (cid:126)xB)

(cid:126)xM =

1 2

Khi đó, hướng từ W đến M được xác định là một hướng tốt hơn và thủ tục Reflection thực hiện việc tìm kiếm điểm R thỏa mãn:

(cid:126)xR = (cid:126)xM + ((cid:126)xM − (cid:126)xW )

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 ((cid:126)xR) > f ((cid:126)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ình B-G-E, trong đó:

(cid:126)xE = (cid:126)xM + 2((cid:126)xM − (cid:126)xW )

Nếu f ((cid:126)xE) > f ((cid:126)xB) thì yêu cầu đặt ra đã đạt được và chúng ta sử dụng B-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ình B-G-R.

Nếu f ((cid:126)xB) > f ((cid:126)xR) > f ((cid:126)xG) thì thủ tục Reflection là chấp nhận được

29

và khối đơn hình B-G-R được sử dụng.

Hình 2.2: Thuật toán Simplex Search

Nếu f ((cid:126)xG) > f ((cid:126)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ục Contraction được dùng để thu hẹp khối đơn hình B-G-R thành khối đơn hình B-G-C với C được xác định theo công thức:

((cid:126)xM − (cid:126)xW )

(cid:126)xC = (cid:126)xW +

1 2

Nếu f ((cid:126)xC) > f ((cid:126)xW ) thì khối đơn hình B-G-C được chấp nhận, ngược lại f ((cid:126)xC) ≤ f ((cid:126)xW ) thì việc xem hướng tốt từ W đến M sẽ phải điều chỉnh 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:

((cid:126)xW + (cid:126)xB)

(cid:126)xS =

1 2

Các thủ tục nói trên được lặp đi lặp lại, kết quả là đỉnh của khối đơn hình sẽ di chuyển dần về điểm tối ưu (thường là phương án tối ưu địa phương). Tiêu chí để dừng thuật toán có thể sử dụng là thời gian tính toán, độ dài của hướng dịch chuyển hoặc tốc độ cải thiện của B,...

Sơ đồ chi tiết của thuật toán đơn hình Simplex Search có thể được trình

bày như trong mục A.1 trong phụ lục A.

2.2.2. Thuật toán tìm kiếm phân tán (Scatter Search)

30

Mặc dù tìm kiếm đơn hình (Simplex Search) làm việc một cách có hiệu quả. Tuy nhiên nó là giống như một kỹ thuật hơn là một thuật toán khi phải giải quyết các vấn đề phức tạp trong thế giới thực. Bởi vậy, trong

năm 1977 F. Glover, M. Laguna và R. Marti đã sử dụng những ý tưởng tố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ác phươ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 theo tiêu chí tính hội tụ (có giá trị đánh giá tốt nhất), b2 là số phương án tốt nhấ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ất gấ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 tham chiếu. Ban đầu Improvement Method sử dụng kỹ thuật tìm kiếm đơn hì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 án tốt tiếp theo có tổng khoảng cách tới các phương án đã được lựa chọn lớ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ực hiện trên tập tham chiếu Ref Set để sinh ra một tập con bao gồm các phươ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ặc nhiề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 được

biể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ục

31

A.2 của Phụ lục A.

Hình 2.3: Các thủ tục của Scatter Search

2.2.3. Tối ưu bầy đàn (Particle Swarm Optimization)

Tối ưu bầy đàn (Particle Swarm Optimization - PSO) là một kỹ thuật tối ưu hóa ngẫu nhiên được phát triển bởi R.C. Eberhart và J. Kennedy phỏng theo hành vi của các bầy chim hay các đàn cá [43]. PSO dựa trên quần thể các cá thể được sinh ra một cách ngẫu nhiên. Tuy nhiên, PSO khô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ến hóa như chọn lọc, lai ghép hay đột biến để sinh các cá thể.

Hình 2.4: Cập nhật vị trí tìm kiếm trong PSO

Để 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ết thứ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 theo sau những con chim gần chỗ thức ăn nhất. Thuật toán PSO phỏng theo kịch bản này và sử dụng nó để giải các bài toán tối ưu.

32

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

bằ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ông gian 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ên cá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 được cậ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ện tại.

i

là vị trí của cá thể thứ i tại thế hệ thứ k, V k i

i

Hình ảnh về các vị trí cập nhật của một particle đươc minh họa trong Hình 2.4, trong đó X k là vận i tố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ể, V P best là vận tốc theo P besti, V Gbest 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:

i,j + c1 ∗ rand() ∗ (cid:0)P besti,j − xk

i,j

i,j

i,j = w ∗ vk vk+1 xk+1 i,j + vk+1 i,j = xk i,j (i =1, 2, . . . , N, j = 1, 2, . . . , D)

(cid:1) (cid:1) + c2 ∗ rand() ∗ (cid:0)Gbestj − xk

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

• k là số thứ tự của thế hệ

• w là hệ số quán tính

• c1, c2 là hệ số gia tốc

• rand() là hàm sinh số ngẫu nhiên trong khoảng (0, 1)

• vk

i,j là thành phần thứ j của vận tốc vk

i của cá thể thứ i tại thế hệ k

• xk

i,j là thành phần thứ j của cá thể thứ i tại thế hệ k

33

• P besti,j là thành phần thứ j của vị trí tốt nhất của cá thể thứ i

• Gbestj là thành phần thứ j của cá thể tốt nhất.

Sơ đồ chi tiết của thuật toán Tối ưu bầy đàn PSO được biểu diễn trong

mục A.3 của Phụ lục A.

2.2.4. Tiến hóa vi phân (Differential Evolution)

Hình 2.5: Thông tin định hướng trong DE

Tiến hóa vi phân (Differential Evolution - DE) là một dạng EAs dựa trê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ác phé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ên bả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ản giữ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.

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 gian D chiều, N là kích thước

quần thể. Một cá thể thứ i có thể được biểu diễn:

xi = (xi,1, xi,2, . . . , xi,D)

34

trong đó xi,j ∈ R, i = 1, 2, . . . , N , j = 1, 2, . . . , D.

Để đột biến một cá thể xi, DE lựa chọn 3 cá thể ngẫu nhiên từ quần thể hiện tại (r1 (cid:54)= r2 (cid:54)= r3 (cid:54)= xi). Khi đó, cá thể vi được tính theo công thức:

(2.2)

vi = r1 + F (r2 − r3) trong đó F là một số thực dương (thường bé hơn 1) được gọi là cá thể đột biế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 định hướ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ẫu nhiên jrand (jrand ∈ [0, D]) và tham số θc ∈ [0, 1] là tham số điều khiển lai ghép (ta quen gọi là xác suất lai ghép) thì cá thể con ui được tính toán theo công thức:

(2.3)

ui,j =

nếu rand() ≤ θc hoặc j = jrand ngược lại (cid:26) vi,j xi,j

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 tranh

của cá thể cha xi và cá thể thử nghiệm ui trong thế hệ kế tiếp:

(2.4)

xi(t + 1) =

(cid:26) ui(t) nếu f (ui(t)) > f (xi(t)) ngược lại

xi(t)

Các phép đột biến, lai ghép và chọn lọc trên sẽ được thực hiện lần lượt với tất cả N cá thể của quần thể hiện tại để tạo thành N cá thể của quần thể thế hệ tiếp theo. Quá trình này được lặp đi lặp lại theo điều kiện dừng của thuật toán.

35

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.1 sau đây.

Algorithm 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ất lai ghép Output: x∗ là phương án tối ưu.

5:

1: t ←− 0; 2: P (t) ←− initialize(N ); 3: F (t) ←− evaluate(P (t)); 4: while (t < M axGens) do for each xi in P (t) do

6:

7:

8:

r1 (cid:54)= r2 (cid:54)= r3 (cid:54)= xi ←− rand(1, N ); vi(t) = r1 + F (r2 − r3); for each j do

(cid:46) Phép đột biến (cid:46) Phép lai ghép

9:

10:

if (rand() ≤ θc) or (j = jrand) then

ui,j(t) = vi,j(t);

11:

12:

else

ui,j(t) = xi,j(t);

13:

14:

15:

end if

(cid:46) Phép chọn lọc

16:

end for if f (ui(t)) > f (xi(t)) then

xi(t + 1) = ui(t);

17:

18:

else

xi(t + 1) = xi(t);

19:

20:

end if

21: 22: end while return x∗ = best(P (t));

end for t ←− t + 1;

Điểm cốt yếu của DE nằm ở phép đột biến, R. Storn và K. Price đã đề xuất nhiều chiến lược đột biến khác nhau và tạo nên các phiên bản với các tên gọi khác nhau của DE [75], bao gồm:

• rand/1

(2.5)

vi = r1 + F (r2 − r3);

• best/1

(2.6)

vi = xbest + F (r1 − r2);

• current to best/1

(2.7)

vi = xi + K(xbest − xi) + F (r1 − r2);

36

• best/2

(2.8)

vi = xbest + K(r1 − r2) + F (r3 − r4);

• rand/2

(2.9)

vi = r1 + K(r2 − r3) + F (r4 − r5);

• current/2

(2.10)

vi = xi + K(r3 − xi) + F (r1 − r2);

trong đó 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ài toá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 trung cải tiến hoặc đề xuất các chiến lược đột biến mới. Tiêu biểu cho hướng nghiê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. Price cho 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án SaDE [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ết hợ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ên cứu kết hợp giữa DE và PSO của W. Zhang và X. Xie [110] hay kết hợp giữa DE với BFOA (Bacterial Foraging Optimization Algorithm) của A. Biswas và các cộng sự [5].

37

Gần đây, bên cạnh các nghiên cứu về ứng dụng DE trong việc giải quyết cá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ến lượ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ứu củ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

một cơ chế tự động lựa chọn kết hợp các tham số điều khiển DE như xác suất đột biến, xác suất lai ghép, kích thước quần thể trong mỗi lần chạy thuậ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 neighborhood search), sử dụng nhiều cơ chế đột biến và lai ghép khác nhau trong các vò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ác phần sau.

2.3. Phương pháp niching

2.3.1. Phương pháp chia sẻ giá trị đánh giá (Fitness sharing)

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 nhau giá 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.

38

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:

Bước 1: Với mỗi cặp cá thể i (cid:54)= j, tính khoảng cách dij. Thông thường khoảng cách này được tính theo công thức Euclidean. Bước 2: Tính giá trị Sharing function sh

(cid:40) (cid:17)α

(cid:16) dij rs

sh(dij) =

dij < rs ngược lại

1 − 0

P opSize (cid:88)

trong đó rs là bán kính niche, α là tham số điều khiển và thường α = 1. Giá trị sh() được gọi là mức độ tương tự của các cá thể i và j. Giá trị của sh() nằm trong đoạn [0, 1]. Bước 3: Tính giá trị Niche count của mỗi cá thể i

mi =

sh(dij)

j=1

(cid:48)

Bước 4: Tính giá trị Fitness Sharing của mỗi cá thể i

(2.11)

f

i =

fi mi

trong đó fi là giá trị đánh giá ban đầu của cá thể i.

Phép toán chọn lọc trong EAs sử dụng giá trị Fitness Sharing để lựa chọn cá thể cho thế hệ sau. Bởi vậy, những cá thể có giá trị này lớn hơn sẽ có mặt trong thế hệ kế tiếp.

39

Phương pháp Fitness Sharing còn có một số trở ngại như việc tham số rs được giả định là như nhau trong mọi trường hợp là không phù hợp với thực tế. Độ phức tạp O(P opSize2) trong việc tính toán giá trị F itnessSharing cũng gây nhiều khó khăn trong giải quyết bài toán với P opSize lớn. Bởi vậy, nhiều nghiên cứu sâu hơn về Fitness Sharing đã được thực hiện. Một số nghiên cứu tập trung vào việc cải tiến kỹ thuật nhằm thu được kết quả tốt hơn như phương pháp Clear Procedure của A. Petrowski đề xuất năm 1996 [76], phương pháp Dynamic Niche Sharing của B. L. Miller và M. J. Shaw đề xuất năm 1996 [64], phương pháp Coevolutionary Shared Niching do D. E. Goldberg và L. Wang đề xuất năm 1997 [34]. Một số nghiên cứu tìm cách kết hợp Fitness Sharing với một số thuật toán EAs nổi tiếng. Tiêu biểu cho hướng nghiên cứu này là thuật toán SharingDE của R. Thomson được đề xuất năm 2004 [99]. Trong SharingDE, số cá thể con thử nghiệm được tạo ra trong mỗi thế hệ tương đương với số lượng cá thể của quần thể. Kỹ thuật Fitness Sharing được áp dụng để tính toán giá trị đánh giá

mới của từng cá thể và một nửa cá thể có giá trị Fitness Sharing kém hơn sẽ bị loại bỏ. Trong SharingDE, một kỹ thuật đặc biệt cũng được sử dụng nhằm bảo tồn cá thể ưu tú nhất trong quần thể hiện tại.

2.3.2. Phương pháp đám đông (Crowding)

Phương pháp đám đông (Crowding) được K. A. De Jong giới thiệu năm 1975 [13], là một trong những nỗ lực đầu tiên trong việc thiết kế các thuật toán tiến hoá nhằm giải quyết các bài toán tối ưu đa cực trị. Crowding được mô phỏng từ một hiện tượng trong tự nhiên là sự cạnh tranh giữa các cá thể tương tự nhau khi nguồn lực cung cấp cho chúng là hạn chế. Mục đích của Crowding là đảm bảo ổn định tính đa dạng di truyền của quần thể. Bởi vậy, khi một cá thể con mới được sinh ra, một cá thể tương tự nhất với nó được xác định trong nhóm gồm CF cá thể đã được lựa chọn ngẫu nhiên. Cá thể con sẽ thay thế cá thể tương tự nếu giá trị đánh giá của nó tốt hơn. Ngược lại cá thể tương tự được bảo lưu. Việc xác định mức độ tương tự của các cá thể được dựa vào độ đo khoảng cách giữa chúng trong không gian biểu diễn bài toán. Trong các bài toán sử dụng biễu diễn số thực thì khoảng cách Euclidean được dùng một cách rộng rãi.

Tham số CF (Crowding Factor) là một tham số quan trọng trong kỹ thuật Crowding. Với các giá trị CF thấp, nghĩa là số lượng các cá thể được lựa chọn trước là ít. Khi đó cá thể con sinh ra có thể đã không thay cho một cá thể thật sự tương tự với nó. Vấn đề này được gọi là lỗi thay thế (replacement error). Một số kỹ thuật cải tiến được đề xuất nhằm giảm thiểu ảnh hưởng của lỗi thay thế, chẳng hạn như Deterministic Crowding (DC) của S. W. Mahfound [60], hay Probabilistic Crowding (PC) của O. J. Mengshoel [62].

Trong PC, Mengshoel đề xuất một luật thay thế xác suất cho phép cá thể có giá trị đánh giá tốt hơn có thể dành ưu thế so với cá thể có giá trị đánh giá thấp hơn. Hai cá thể tương tự X và Y sẽ cạnh tranh với nhau bằng cách so sánh xác suất trong đó xác suất để một cá thể X chiến thắng được tính theo công thức:

p(X) =

f (X) f (X) + f (Y )

trong đó f là hàm đánh giá.

2

40

Trong DC, Mahfound đã sử dụng sự cạnh tranh trực tiếp của 2 cá thể cha mẹ với 2 cá thể con cái mà không yêu cầu tham số CF . Kỹ thuật này chỉ cần thực hiện P opSize lần, trong đó P opSize là kích thước quần thể.

Nội dung dạng bước của DC [60] được mô tả như sau:

Bước 1: Lựa chọn ngẫu nhiên 2 cá thể cha mẹ p1 và p2 Bước 2: Sử dụng các phép toán tiến hóa để sinh cá thể con c1 và c2 Bước 3: Tính giá trị đánh giá của các cá thể con f (c1) và f (c2), tính khoảng cách d(p1, c1), d(p1, c2), d(p2, c1) và d(p2, c2). Bước 4: Xác định các cặp cạnh tranh. Nếu [d(p1, c1) + d(p2, c2)] ≤ [d(p1, c2) + d(p2, c1)] thì xảy ra cạnh tranh giữa p1 ⇔ c1 và p2 ⇔ c2. Ngược lại xảy ra cạnh tranh giữa p1 ⇔ c2 và p2 ⇔ c1. Bước 5: Xác định cá thể chiến thắng. Các cá thể có giá trị đánh giá cao hơn sẽ chiến thắng và ở lại với quần thể. Cá thể kém hơn sẽ bị loại bỏ.

Năm 2004, R. Thomsen đã đề xuất thuật toán CDE [99] với tham số CF bằng kích thước quần thể. Điều đó nghĩa là việc tìm kiếm cá thể tương tự được diễn ra trên toàn bộ quần thể. Chi tiết các bước của CDE như sau:

Bước 1: Khởi tạo quần thể P gồm P opSize cá thể ngẫu nhiên Bước 2: Đánh giá các cá thể f (Pi), i = {1, 2, . . . , P opSize} Bước 3:

while (not termination condition) do

Sử dụng DE truyền thống để sinh các cá thể con S for all cá thể con Si in S do

Tính khoảng cách Euclidean từ cá thể Si đến mọi cá thể trong P Xác định cá thể Pj gần cá thể Si nhất. if f (Si) > f (Pj)

Thay thế Pj bằng Si.

end if

end for

end while

41

Gần đây, một số biến thể của phương pháp Crowding-based tiếp tục được quan tâm đề xuất, chẳng hạn đề xuất Crowding Clustering Genetic Algorithm (CCGA) của Q. Ling và các cộng sự [58] hay Spatially neigh- bours best search crowding Differential Evolution (SnbDE) của D. Shen [87].

2.3.3. Phương pháp dựa vào loài (Species-based)

Phương pháp dựa vào loài (Species-based) là phương pháp phân chia quần thể thành các loài riêng biệt mà mỗi loài gồm các cá thể bao quanh một cá thể tốt nhất được gọi là hạt giống của loài. Thuật toán tiến hóa đầu tiên dựa vào phương pháp này là SCGA (Species Conserving Genetic Algorithm) do Jian-Ping Li và các cộng sự đề xuất năm 2002 [50]. SCGA sử dụng tham số rs gọi là bán kính của loài. SCGA lưu giữ các hạt giống của loài qua các thế hệ tiến hóa cho đến khi nó được thay thế bởi các cá thể khác gần nó và tốt hơn.

Thủ tục quan trọng nhất trong phương pháp Species-based là kỹ thuật

xác định tập hạt giống SSS (Species Seed Set) được mô tả như sau:

Bước 1: Sắp xếp quần thể theo thứ tự giảm dần của giá trị đánh giá. Bước 2: Xây dựng tập hạt giống SSS Khởi tạo SSS = ∅ và thực hiện các bước sau từ cá thể đầu tiên i = 1 cho đến cá thể cuối cùng i = P opSize.

2.1 : Nếu khoảng cách từ cá thể hiện tại i đến tất cả các cá thể đang có trong SSS là lớn hơn rs thì bổ sung nó vào SSS.

2.2 : Nếu khoảng cách từ cá thể hiện tại i đến một cá thể nào đang có trong SSS mà nhỏ hơn rs thì bỏ qua.

2.3 : i = i + 1.

Bước 3: Đệ trình tập SSS.

Khi đã có tập hạt giống SSS, các cá thể trong quần thể sẽ được phân chia thành các loài khác nhau sao cho mỗi loài bao gồm 1 cá thể hạt giống có giá trị đánh giá tốt nhất và các cá thể khác (nếu có) nằm xung quanh hạt giống với khoảng cách tối đa là rs. Một ví dụ về việc xác định các cá thể thuộc về các loài được biểu diễn trong Hình 2.6. Trong hình vẽ này, các hạt giống S1, S2, S3 lần lượt được xác định. Cá thể p được xác định thuộc về loài tương ứng với hạt giống S2 dù trong thực tế khoảng cách giữa p và S3 là ngắn hơn.

42

Trong thuật toán SCGA [50], các phép toán lai ghép, đột biến được thực hiện như GA để sinh ra một quần thể mới, sau đó một thủ tục chọn lọc và cập nhật các loài được diễn ra như sau:

Hình 2.6: Xác định tập hạt giống

Bước 1: Đưa các cá thể mới vào loài có hạt giống gần nhất với nó sao cho khoảng cách từ cá thể mới đến hạt giống nhỏ hơn rs. Bước 2: Nếu cá thể mới i thuộc về một loài nào đó thì tìm cá thể j kém nhất trong loài đó. Nếu f (j) < f (i) thì thay thế cá thể cũ j bởi cá thể mới i. Bước 3: Nếu loài thứ i không chứa bất cứ cá thể mới nào thì tìm cá thể mới j kém nhất trong số các cá thể mới chưa thuộc bất kỳ loài nào và thay thế cá thể mới j bởi hạt giống của loài thứ i.

Sau thuật toán SCGA, nhiều thuật toán tiến hóa có sử dụng phương pháp Species-based đã được đề xuất như SPSO của D. Parrott [52, 69], SDE của Xiaodong Li [51, 53]. Trong SDE, sau khi phân chia quần thể thành các loài riêng biệt dựa vào bán kính rs, nếu số lượng cá thể của một loài nào đó là quá ít (bé hơn số m xác định trước) thì một cơ chế sinh cá thể ngẫu nhiên được thực hiện để bổ sung cho đủ số lượng. Khi các loài đã được xác định xong, SDE điều khiển quá trình tiến hóa của mỗi loài một cách độc lập theo các bước cơ bản của thuật toán tiến hóa vi phân DE. Một quy tắc lựa chọn các cá thể ưu tú cũng được thực hiện nhằm duy trì kích thước của cả quần thể.

43

Chi tiết các bước của SDE được mô tả như sau:

Bước 1: Khởi tạo quần thể ngẫu nhiên gồm P opSize cá thể Bước 2: Đánh giá tất cả các cá thể của quần thể Bước 3: Xác định tập hạt giống SSS Bước 4: Với mỗi loài đã được xác định thông qua tập SSS, thực hiện các bước cơ bản của thuật toán DE và kiểm tra:

a. Nếu loài có ít hơn m cá thể thì bổ sung ngẫu nhiên các cá thể mới trong phạm vi xác định của loài cho đủ số lượng m

b. Nếu giá trị đánh giá của một cá thể con bằng với giá trị đánh giá của hạt giống thì thay thế cá thể con đó bằng một cá thể ngẫu nhiên

Bước 5: Lựa chọn và giữ lại P opSize cá thể tốt nhất trong quần thể Bước 6: Quay lại bước 2 cho đến khi điều kiện dừng được thỏa mãn.

2.3.4. Phương pháp phân cụm (Clustering-based)

Phương pháp Clustering-based sử dụng kỹ thuật phân cụm để nhóm các cá thể gần nhau và xử lý riêng cũng là một hướng nghiên cứu phù hợp trong việc giải quyết các bài toán tối ưu đa cực trị. Năm 1993, X. Yin và N. Germay [108] đã công bố thuật toán tiến hóa mới sử dụng kết hợp giữa kỹ thuật phân cụm theo thuật toán K-mean của Macqueen và kỹ thuật Fitness Sharing của Goldberg và Richardson [33] .

44

Thuật toán của Yin và Germay đòi hỏi sử dụng 02 tham số cho trước, bao gồm tham số δmin là khoảng cách nhỏ nhất giữa tâm của các loài và tham số δmax là khoảng cách lớn nhất từ một cá thể thuộc một loài đến tâm của loài đó. Cũng giống như phương pháp Fitness Sharing, thuật toán của Yin và Germay sử dụng một số tính toán để xác định lại giá trị đánh giá của các cá thể trong quần thể hiện tại, chi tiết các bước tính toán được mô tả như sau:

Bước 1: Sắp xếp quần thể theo thứ tự giảm dần của giá trị đánh giá Bước 2: Xác định ngẫu nhiên 1 số tự nhiên k ∈ [1, P opSize] Bước 3: Chọn k cá thể đầu tiên và xem đó như là các tâm của mỗi loài nhưng phải đảm bảo khoảng cách giữa 2 tâm bất kỳ phải lớn hơn δmin. Nếu không thỏa mãn thì nhóm các loài đó lại và xác định tâm mới của loài. Bước 4: Tính khoảng cách từ (P opSize − k) cá thể còn lại đến tất cả các tâm. Nếu khoảng cách ngắn nhất từ một cá thể đến tất cả các tâm loài đều lớn hơn δmax thì cá thể đó sẽ trở thành một tâm loài mới. Nếu không, cá thể đó sẽ thuộc về loài có tâm gần nhất. Sau khi định vị xong cho tất cả cá thể, các tâm loài được tính toán và cập nhật lại sao cho khoảng cách giữa các 2 tâm bất kỳ đều phải lớn hơn δmin. Nếu không thỏa mãn thì nhóm các loài và xác định tâm mới. Bước 5: Sau khi tất cả các loài đã được xác định. Tính toán số lượng cá thể có trong mỗi loài. Bước 6: Tính giá trị niche count:

(cid:19)α

mi = nc − nc ×

(cid:18) dic 2δmax

trong đó nc là số lượng cá thể trong loài c, dic là khoảng cách từ cá thể i tới tâm loài c tương ứng, α là tham số điều khiển (thường được đặt bằng 1). Bước 7: Tính toán giá trị đánh giá chia sẻ Fitness Sharing theo công thức (2.11)

Yin và Germay đã thực hiện một số hạn chế trong việc lai ghép các cá thể, chỉ những cá thể trong cùng một loài thì mới có thể lai ghép với nhau. Các tham số điều khiển được đề xuất δmax gấp từ 2 đến 3 lần δmin là phù hợp với các bài toán đã thực nghiệm. Tuy nhiên, cần có những nghiên cứu bổ sung để có được các đề xuất tinh tế hơn cho các bài toán tổng quát.

Gần đây đã có nhiều nghiên cứu về kỹ thuật phân cụm mới được đề xuất. Tiêu biểu là kỹ thuật phân cụm NBC (Nearest-better Clustering) của M. Preuss đề xuất trong [74, 91]. Kỹ thuật NBC thực hiện việc phân cụm các cá thể của quần thể hiện tại dựa vào ý tưởng rằng khoảng cách giữa 2 cá thể tốt nhất của 2 cụm khác nhau (đỉnh của 2 cụm) có thể so sánh được với 2 lần khoảng cách ngắn nhất giữa các cá thể trong mỗi cụm.

Với ý tưởng này và tham số điều khiển là φ, kỹ thuật NBC được thực

45

hiện thông qua các bước cơ bản sau đây:

Bước 1: Tính giá trị khoảng cách giữa tất cả các cá thể Bước 2: Khởi tạo một đồ thị có hướng chỉ gồm các đỉnh là các cá thể. Bước 3: Xây dựng cây bao trùm (spanning tree) bằng cách: Với mỗi đỉnh của đồ thị (cá thể), tìm đỉnh khác (cá thể khác) gần nhất với nó và nối với đỉnh này bằng một dây cung. Bước 4: Xóa bỏ các dây cung có độ dài lớn hơn φ lần trung bình độ dài của tất cả các dây cung. Bước 5: Hình thành các cụm là các đỉnh còn kết nối với nhau.

Hình 2.7: Kỹ thuật NBC

Một ví dụ của NBC được biểu diễn trong Hình 2.7, khi các dây cung dài (đường chấm chấm) bị loại bỏ, chúng ta sẽ thu được 3 cụm riêng biệt tương ứng với 3 vùng tìm kiếm.

Kỹ thuật NBC được M. Preuss giới thiệu đầu tiên trong thuật toán NBSEA năm 2009 [91]. Năm 2010, NBC được kết hợp với chiến lược tiến hóa ma trận hiệp phương sai CMS-ES nhằm giải quyết lớp các bài toán tối ưu đa cực trị. Luật xóa bỏ các cung nối trong bước 4 mô tả ở trên được ký hiệu là RULE1, thuật toán kết hợp được gọi là NEA1 [72]. Năm 2013, M. Preuss đã giới thiệu thêm thuật toán NEA2 [73] bằng cách bổ sung luật RULE2 như sau:

RULE: Xét các đỉnh có ít nhất 3 cung đến và 1 cung đi. Nếu độ dài của cung đi lớn hơn β lần trung bình độ dài của các cung đến thì cung đi bị xóa bỏ.

46

NEA2 giành giải nhất cuộc thi thiết kế thuật toán tiến hóa để giải quyết

các bài toán tối ưu đa cực trị trong khuôn khổ Hội thảo quốc tế về tính toán tiến hóa năm 2013 [55].

2.4. Kỹ thuật song song hóa thuật toán tiến hóa

2.4.1. Mô hình master/slave

Hình 2.8: Mô hình Master/Slave

Mô hình song song master/slave là mô hình song song dạng đơn quần thể [9]. Trong mô hình này, một bộ xử lý đóng vai trò bộ xử lý chính (master) sẽ thực hiện tất cả các công đoạn chính của thuật toán tiến hóa như khởi tạo quần thể, thực hiện các toán tử lai ghép và đột biến. Các bộ xử lý khác (slave) chỉ làm nhiệm vụ tính giá trị đánh giá của các cá thể (xem Hình 2.8).

Mô hình master/slave dễ thực hiện, nó phân tán việc tính giá trị hàm mục tiêu cho các bộ xử lý con, còn vòng lặp chính của thuật toán EAs nằm trong bộ xử lý chính. Không gian tìm kiếm của bài toán vẫn giống như trong thuật toán EAs tuần tự. Vì vậy so với thuật toán EAs tuần tự, mô hình này chỉ cải thiện được thời gian tìm kiếm chứ không nâng cao được chất lượng của lời giải. Một số nghiên cứu nhằm nâng cao hiệu suất của thuật toán song song sử dụng mô hình này đã được thực hiện [40, 41, 61, 104].

47

Trong mô hình này, bộ xử lý chính sẽ phải lưu trữ toàn bộ quần thể. Các bộ xử lý khác chỉ lưu trữ một phần quần thể tương ứng để tính giá trị đánh giá. Do đó, mô hình này không thể mở rộng khả năng tính toán với bài toán có kích thước lớn. Ngoài ra, do các bộ xử lý slaves chỉ thực hiện tính giá trị đánh giá nên tốc độ của thuật toán chỉ thực sự được cải thiện với các bài toán có hàm mục tiêu phức tạp, thậm chí tốc độ của thuật toán còn tồi hơn, nếu việc truyền thông giữa hai tiến trình đòi hỏi nhiều

thời gian hơn việc tính giá trị hàm mục tiêu.

Việc truyền thông trong mô hình chỉ xảy ra khi master gửi cho slave các cá thể cần tính toán giá trị hàm đánh giá và khi slave gửi trả cho master giá trị đánh giá đã xác định được. Nếu master dừng lại và chờ đợi để nhận tất cả các giá trị đánh giá của tất cả các cá thể trước khi có những xử lý để tiếp tục thế hệ tiếp theo thì mô hình có tên gọi đầy đủ hơn là master/slave đồng bộ. Ngược lại, nếu master không chờ đợi các bộ vi xử lý chậm mà xử lý ngay thì ta có mô hình master/slave dị bộ [82, 83].

2.4.2. Mô hình island

Mô hình island còn được gọi là mô hình coarse-grained, đó là một mô hình sử dụng đa quần thể, phân tán. Chúng ta có thể xem mỗi island như một tiểu quần thể, chúng kết hợp với nhau để tạo thành một quần thể chung tương ứng với toàn bộ các island. Các tiểu quần thể trong các island tiến hóa một cách độc lập. Định kỳ, một số cá thể thuộc các island có thể được trao đổi sang các island khác nhằm lan truyền các đặc tính tốt. Chúng ta gọi đây là quá trình di cư của các cá thể.

Hình 2.9: Mô hình Island

48

Quá trình di cư có thể được mô tả như một đồ thị có hướng với các island là các nút, một cung có hướng nối giữa hai nút lân cận. Khi di cư, một số cá thể được lựa chọn từ mỗi island sẽ được gửi tới island lân cận. Các cá thể này được gọi là cá thể di cư (migrant) và chúng sẽ tham gia vào quá trình chọn lọc và tiến hóa tại island đến. Như vậy, bằng cách này các island có thể trao đổi và cạnh tranh với nhau trong quá trình tiến hóa. Các island bị mắc kẹt tại các khu vực tìm kiếm có giá trị đánh giá thấp có thể cải thiện bởi các cá thể di cư mới. Điều này giúp cho việc phối hợp tìm kiếm và tập trung vào các khu vực tiềm năng nhất của không gian tìm kiếm và sử dụng hiệu quả các nguồn lực sẵn có.

Sơ đồ chung của thuật toán EAs sử dụng mô hình island với tần số di

cư γ có thể mô tả như sau:

, P (0) 2

1

Bước 1: Khởi tạo một quần thể bao gồm các tiểu quần thể hay là các island, P (0) = {P (0) . . . , P (0) m } Bước 2: Thiết lập t = 1

while (not termination condition) do for all island i do in parallel

if t mod γ = 0 then

i

sang các island Gửi các cá thể đã được lựa chọn từ P (t)

lân cận

i

là lân cận từ các island mà P (t)

i bằng một quần thể con được chọn từ P (t)

i

Nhận các cá thể I (t) i Thay thế P (t)

và I (t) i

i

i bằng cách áp dụng

end if Xây dựng quần thể mới P (t+1) từ P (t)

một thuật toán EA

end for t = t + 1 end while

Song song hóa theo mô hình island cho các thuật toán tiến hóa nổi tiếng đã nhận được nhiều sự quan tâm và đề xuất, chẳng hạn như thuât toán dDE (distributed DE) của Apolloni [3], hay thuật toán SOUPDE của Weber [102].

2.4.3. Mô hình tế bào (cellular)

Mô hình tế bào là một trường hợp đặc biệt của mô hình island với cách bố trí hình dạng hạt mịn (fine-grained). Cũng giống như mô hình island, các island được nối với nhau bằng một cấu trúc liên kết cố định. Đồ thị dạng vòng một chiều và hai chiều là các cấu trúc dạng phổ biến. Đặc điểm nổi bật là mỗi island chỉ có một cá thể đơn lẻ, được gọi là một tế bào (cell). Mỗi cá thể chỉ được phép trao đổi với cá thể lân cận trong cấu trúc. Kiểu tương tác này xảy ra trong mọi thế hệ. Điều này là tương ứng với tần số di cư γ = 1 trong mô hình island. Hình 2.10 mô tả một phác thảo của mô hình tế bào.

Sơ đồ chung cho một thuật toán EAs sử dụng mô hình tế bào là như

49

sau:

Hình 2.10: Mô hình Cellular

. . . , P (0) m }

, P (0) 2

Bước 1: Khởi tạo tất cả các cells tương ứng với quần thể P (0) = {P (0) 1 Bước 2: Thiết lập t = 1

while (not termination condition) do

for all cell i do in parallel

i

là các cell lân cận của Lựa chọn tập Si các cá thể từ P (t)

cell i

i

bằng cách lựa chọn các cá thể từ Tạo một tâp Ri từ Si bằng cách áp dụng thuật toán EA Tạo quần thể mới P (t+1)

{P (t)

i } ∪ Ri

end for t = t + 1 end while

2.4.4. Mô hình lai (hybrid)

Mô hình lai là mô hình kết hợp của nhiều mô hình khác nhau. Chúng ta có thể sử dụng một mô hình island trong đó mỗi island là một mô hình tế bào để thúc đẩy hơn nữa tính đa dạng của quần thể. Hoặc có thể sử dụng một mô hình island phân cấp, nghĩa là mỗi island là một mô hình island khác. Mô hình island và mô hình tế bào cũng có thể được thực hiện giống như mô hình master/slave để đạt được sự tăng tốc tốt hơn (xem các hình vẽ trong Hình 2.11).

50

Một số nghiên cứu sử dụng mô hình lai trong việc song song hóa các thuật toán tiến hóa có thể kể là: [7, 57] sử dụng mô hình island- master/slaves, [28, 29] sử dụng mô hình island-cellular hay [38] sử dụng mô hình island-island.

(a) Island-Master/Slave

(b) Island-Cellular

(c) Island-Island

Hình 2.11: Mô hình Hybrid

2.4.5. Kỹ thuật đồng tiến hóa hợp tác (cooperation co-evolution)

Đồng tiến hóa hợp tác (Cooperation Co-evolution - CC) được M. A. Potter đề xuất năm 1994 [70, 71] như là một khuôn mẫu cho việc giải quyết các bài toán tối ưu cỡ lớn bằng các thuật toán tiến hóa. Về bản chất, đồng tiến hóa hợp tác thực hiện mô phỏng quá trình tiến hóa của một hệ sinh thái gồm hai hoặc nhiều loài. Trong tự nhiên, các loài sinh trưởng một cách độc lập, các cá thể chỉ giao phối với những thành viên khác trong cùng loài. Sự hạn chế giao phối đã thực hiện tiến hóa các loài trong các quần thể riêng biệt. Các loài tương tác với nhau trong một không gian chia sẻ và có mối quan hệ hợp tác.

Đồng tiến hóa hợp tác có 3 bước cơ bản:

• Phân chia bài toán (decomposing the problem): Chia một bài toán cỡ lớn thành nhiều bài toán thành phần để có thể giải quyết được bằng các thuật toán EAs thông thường. Các bài toán thành phần có thể giống và khác nhau về kích cỡ. Không gian lời giải các bài toán thành phần được biểu diễn như là các tiểu quần thể.

• Tối ưu tiểu thành phần (optimizing subcomponents): Mỗi tiểu quần thể tương ứng với mỗi bài toán thành phần, được tiến hóa một cách riêng biệt bằng một thuật toán tiến hóa đã xác định trước. Các phép toán tiến hóa như lai ghép, đột biến, chọn lọc được thực hiện trên từng tiểu quần thể mà không tác động đến các tiểu quần thể khác.

• Đồng thích nghi tiểu thành phần (co-adapting subcomponents): Trong quá trình tiến hóa, các tiểu quần thể trao đổi thông tin đại diện và hợp tác để xây dựng một phương án tối ưu toàn cục.

51

Sơ đồ dạng bước của thuật toán đồng tiến hóa hợp tác có dạng:

Bước 1: Phân chia bài toán cỡ lớn thành k bài toán thành phần Bước 2: Thiết lập i = 1 Bước 3: Giải quyết bài toán thành phần thứ i bằng một thuật toán EAs trong một khoảng thời gian xác định trước Bước 4: Nếu i < m thì i = i + 1 và quay lại bước 3 Bước 5: Nếu điều kiện kết thúc thỏa mãn thì dừng chương trình. Ngược lại thì quay lại bước 2 cho vòng lặp tiếp theo.

Như vậy, quá trình giải quyết hoàn chỉnh một bài toán thành phần bằng một thuật toán EAs thường được thực hiện trọn vẹn trong một vòng lặp. Sự hợp tác chỉ xảy ra sau khi các bài toán thành phần đã được giải quyết và gửi thông tin đại diện nhằm xây dựng một phương án tối ưu toàn cục.

Trong CC, vấn đề chia bài toán là hết sức quan trọng, các chiến lược "chia để trị" khác nhau được áp dụng không chỉ ảnh hưởng đến hiệu suất của thuật toán mà còn ảnh hưởng đến tốc độ hội tụ và chất lượng của phương án tối ưu cuối cùng. Đã có nhiều nghiên cứu về CC nói chung và các bài toán chia của CC nói riêng [59, 71, 88, 89].

Tuy nhiên, các thuật toán CC truyền thống chỉ thực sự thành công với các bài toán tối ưu khả tách (separable problems). Còn đối với các bài toán không khả tách (non-separable problems), vấn đề chia bài toán sẽ gặp nhiều khó khăn do có sự phụ thuộc lẫn nhau giữa của các biến trong một bài toán. Hướng nghiên cứu về các kỹ thuật chia bài toán trong CC cũng đã nhận được nhiều sự quan tâm của các nhà khoa học [67, 105, 106].

Việc ứng dụng CC vào song song hóa các thuật toán tiến hóa cũng đã nhận được sự quan tâm của các nhà nghiên cứu. Theo khảo sát mới nhất (năm 2015) của Y. Gong và các đồng sự [36] môt mô hình ứng dụng CC trong song song đã được R. Subbu và A. C. Sanderson đề xuất [92, 93] trong đó bài toán cỡ lớn được phân chia thành các bài toán cỡ nhỏ hơn và mỗi bài toán nhỏ được giải quyết độc lập bằng một bộ xử lý trong hệ thống phân tán.

2.5. Kết luận

52

Trong chương này, luận án đã khảo sát một cách chi tiết nội dung các thuật toán tìm kiếm dựa trên thông tin định hướng: Tìm kiếm đơn hình (Simplex Search), Tìm kiếm phân tán (Scatter Search), Tiến hóa vi phân (DE), Tối ưu bầy đàn (PSO). Để nâng cao hiệu quả của thuật toán tiến hóa, luận án đã trình bày các phương pháp niching dành cho lớp bài toán

tối ưu đa cực trị, kỹ thuật song song hóa hóa và kỹ thuật đồng tiến hóa hợp tác.

53

Phân tích một cách kỹ hơn các thuật toán tìm kiếm dựa trên thông tin định hướng, chúng ta nhận thấy rằng đối với các thuật toán Tìm kiếm đơn hình (Simplex Search), Tìm kiếm phân tán (Scatter Search) và Tiến hóa vi phân (DE), các thông tin định hướng đang được sử dụng đều sinh ra một cách ngẫu nhiên trong từng thế hệ tiến hóa. Nếu chúng ta có thông tin định hướng tốt thì phương án nhận được sau tiến hóa có thể tốt hơn, nhưng ngược lại trong trường hợp chúng ta nhận được thông tin định hướng không tốt thì phương án hiện tại có thể bị suy giảm về mặt chất lượng. Đối với Tối ưu bầy đàn (PSO), các thông tin định hướng hướng tới cá thể toàn cục tốt nhất và hướng tới cá thể cục bộ tốt nhất đều là các thông tin định hướng tốt. Tuy nhiên, PSO thật sự không phải là một thuật toán tiến hóa và cách định hướng như trên có thể dẫn tới các phương án tối ưu địa phương khó đạt được phương án tối ưu toàn cục.

Chương 3

THUẬT TOÁN TIẾN HÓA DỰA TRÊN THÔNG TIN ĐỊNH HƯỚNG

3.1. Mở đầu

Thuật toán tiến hóa là một dạng thuật toán tìm kiếm ngẫu nhiên. Bởi vậy, một trong những chìa khóa dẫn đến thành công trong thiết kế thuật toán tiến hóa là có được các thông tin định hướng tốt để chỉ dẫn quá trình tìm kiếm. Trong tối ưu hóa cổ điển, phương pháp Gradient descent là một ví dụ điển hình về lợi thế của việc sử dụng thông tin định hướng tốt trong quá trình tìm kiếm. Tuy nhiên việc xác định được các thông tin định hướng tốt theo cách này là việc làm không đơn giản, đặc biệt trong trường hợp hàm mục tiêu của bài toán tối ưu là không tuyến tính (non-linear) hoặc là hộp đen (black-box). Trong thiết kế thuật toán tiến hóa hiện đại, vấn đề xác định thông tin định hướng cũng nhận được nhiều sự quan tâm, chẳng hạn như trường hợp của Tiến hóa vi phân (DE, xem lại phần 2.2.4). DE sử dụng thông tin định hướng được xác định là sự khác biệt giữa 2 cá thể bố mẹ được lựa chọn một cách ngẫu nhiên để sinh ra cá thể con cái. Thực nghiệm đã cho thấy DE rất hiệu quả trong việc giải quyết các bài toán tối ưu liên tục. Trong một số trường hợp, có được thông tin định hướng tốt nên DE đã sinh ra cá thể tốt. Một số trường hợp khác, nếu thông tin định hướng xấu được sinh ra thì chất lượng của cá thể hiện tại có thể bị suy giảm. Vấn đề đặt ra là làm thế nào để khởi tạo và duy trì các hướng tốt một cách có hệ thống?

54

Một yêu cầu khác cũng cần quan tâm trong việc thiết kế các thuật toán tiến hóa là đảm bảo sự cân bằng phù hợp giữa tính hội tụ và tính đa dạng bởi vì thuật toán tiến hóa là một thuật toán tìm kiếm ngẫu nhiên. Tính

hội tụ giúp cho thuật toán nhanh chóng tìm được các phương án tối ưu, trong khi đó tính đa dạng giúp cho không gian tìm kiếm được rộng khắp và thuật toán không sa lầy vào các phương án tối ưu địa phương.

Trong luận án này, thông tin định hướng được xây dựng từ tập các cá thể ưu tú được ký hiệu là ETS (Elite Set). Đó là tập các cá thể có giá trị đánh giá lớn hơn các cá thể khác còn lại (cá thể xếp hạng hai) và được quản lý, duy trì trong suốt quá trình tiến hóa. Ý tưởng quan tâm đến việc tổ chức, duy trì và cập nhật tập ETS nói trên trong cả quá trình tiến hóa đã làm cho tập ETS không chỉ thực hiện việc đóng góp các cá thể ưu tú cho thế hệ kế tiếp mà còn được sử dụng để định hướng, để chỉ dẫn quá trình sản sinh các cá thể mới cho thế hệ tiếp theo.

Có hai dạng thông tin định hướng được luận án quan tâm: (1) hướng hội tụ là hướng từ một cá thể tới một cá thể tốt hơn và (2) hướng tản mát là hướng giữa hai cá thể ưu tú. Tác giả gọi chung là các hướng cải thiện (direction of improvement). Tại mỗi thế hệ tiến hóa, hai hướng cải thiện được định nghĩa:

• Hướng hội tụ (CD - Convergence Direction) là hướng từ một cá thể xếp hạng hai trong quần thể hiện tại đến một cá thể ưu tú trong tập ETS.

• Hướng tản mát (SD - Spread Direction) là hướng giữa hai cá thể ưu

tú trong tập ETS hiện tại.

Do việc tổ chức và quản lý ETS một cách toàn cục nên các hướng cải thiện sẽ có tính toàn cục. Trong quá trình tiến hóa, nếu một cá thể được định hướng theo hướng hội tụ, nó sẽ hướng tới một khu vực tốt hơn khu vực hiện tại, còn nếu một cá thể được định hướng theo hướng tản mát, quần thể trong thế hệ mới có tính đa dạng cao hơn.

Thuật toán mới được gọi là Direction-guided Evolutionary ALgorithm hay DEAL. Những nội dung liên quan của DEAL như sơ đồ thuật toán, độ phức tạp tính toán, các tùy chọn đột biến và chiến lược lai ghép sẽ được trình bày cụ thể trong phần tiếp theo.

55

Nhằm tăng cường hiệu quả tính toán của DEAL khi giải quyết các bài toán tối ưu phức tạp, luận án quan tâm nghiên cứu kỹ thuật song song hóa thuật toán DEAL bằng cách kết hợp giữa mô hình master/slave truyền thống với kỹ thuật đồng tiến hóa hợp tác (xem lại phần 2.4.5). Mô hình song song này được phân tích một cách cụ thể về thời gian thực thi và tính toán hệ số tăng tốc. Thuật toán DEAL song song có tên là Parallel CoOperative CoEvolution for DEAL (PCCDEAL) được trình bày gồm

thuật toán ở master và thuật toán ở slave. Phần cuối của chương là các thực nghiệm được chia thành 2 phần. Phần thứ nhất dành cho DEAL, lớp các bài toán tối ưu chỉ có một phương án tối ưu toàn cục được lựa chọn thực nghiệm, nhằm phân tích, đánh giá các hành vi và hiệu quả của DEAL. Trong phần này, DEAL được so sánh hiệu quả với 10 thuật toán nổi tiếng khác khi cùng giải quyết các bài toán được lựa chọn. Phần thứ hai dành cho PCCDEAL, các bài toán tối ưu đã thực nghiệm được phức tạp hóa bằng cách tăng số chiều của bài toán (D = 500). Hiệu quả về mặt thời gian tính toán, hệ số tăng tốc cũng như chất lượng lời giải sẽ được phân tích một cách cụ thể.

3.2. Thuật toán DEAL

Algorithm 3.1 Sơ đồ của Thuật toán DEAL Input: N là kích thước quần thể; θc, θm, σ1, σ2 là các tham số điều khiển. Output: a∗ là cá thể tốt nhất tìm được.

1: t ←− 0; 2: P (t) ←− initialize(N ); 3: f (t) ←− evaluate(P (t)); 4: ET S(t) ←− selectElite(P (t)); 5: while (termination() (cid:54)= true) do

6:

7:

8:

9:

10:

Như đã mô tả ở trên, DEAL là thuật toán tiến hóa sử dụng thông tin hướng cải thiện để chỉ dẫn quá trình tiến hóa tìm kiếm lời giải. Thông tin hướng cải thiện là hướng toàn cục và được xây dựng từ tập các cá thể ưu tú ETS. Sơ đồ của DEAL được mô tả như sau:

M (t) ←− P (t); M (t) ←− generate(M (t), P (t), θc, θm, σ1, σ2); C(t) ←− M (t) ∪ ET S(t); ET S(t) ←− selectElite(C(t)); P (t + 1) ←− M (t); t ←− t + 1;

11: 12: end while 13: return a∗ = best(P (t));

56

Trong đó, thủ tục initilize(N ) thực hiện việc khởi tạo ngẫu nhiên quần thể P với kích thước N cá thể. Sau khi khởi tạo, quần thể P (t) được đánh giá bằng thủ tục evaluate(P (t)). Tại dòng 4, thủ tục selectElite(P (t)) thực hiện việc khởi tạo tập ETS chứa các cá thể ưu tú (có giá trị đánh giá

tốt hơn) từ quần thể P (t). Trong DEAL, tập ETS được sử dụng có kích thước bằng 1/2 kích thước của quần thể chính. Để khởi tạo ETS, quần thể P (t) được sắp xếp theo chiều giảm dần của giá trị đánh giá f (t), các cá thể có giá trị đánh giá cao hơn được lựa chọn cho đến khi đủ số lượng của ETS.

Điều kiện dừng thuật toán termination() có thể sử dụng tùy ý theo các điều kiện dừng của một thuật toán tiến hóa thông thường. Tuy nhiên với DEAL, tác giả sử dụng điều kiện dừng theo thời gian thông qua tham số MaxFEs là số lần tính giá trị hàm đánh giá tối đa.

Thủ tục generate(M (t), P (t), θc, θm, σ1, σ2) là thủ tục quan trọng nhất trong thuật toán DEAL. Thủ tục này thực hiện việc sinh ra tập M (t) gồm các cá thể thử nghiệm s1 và s2, trong đó:

• Cá thể thử nghiệm s1 thu được khi lai ghép một cá thể cha pr (được lựa chọn ngẫu nhiên trong quần thể hiện tại) với cá thể thu được khi dịch chuyển pr theo hướng hội tụ, còn

• Cá thể thử nghiệm s2 thu được khi lai ghép một cá thể cha pr nói trên

với cá thể thu được khi dịch chuyển pr theo hướng tản mát.

Tập M (t) gọi là quần thể trộn do các cá thể của nó sinh ra từ 2 hướng

cải thiện khác nhau.

Các hướng cải thiện (hội tụ và tản mát) được lựa chọn một cách ngẫu nhiên trong không gian các véc tơ định hướng sinh bởi các cặp cá thể khác nhau trong quần thể hiện tại. Bởi vậy, các công thức sau đây được sử dụng để xác định các hướng hội tụ (cid:126)d1 và hướng tản mát (cid:126)d2 trong thuật toán:

• Hướng hội tụ (cid:126)d1

(cid:126)d1 =

(cid:126)x11 − (cid:126)x12 (cid:107)(cid:126)x11 − (cid:126)x12(cid:107)

trong đó x11 là cá thể ưu tú được lựa chọn ngẫu nhiên trong tập ETS, x12 là cá thể hạng hai được lựa chọn ngẫu nhiên trong quần thể P(t).

• Hướng tản mát (cid:126)d2

(cid:126)d2 =

(cid:126)x21 − (cid:126)x22 (cid:107)(cid:126)x21 − (cid:126)x22(cid:107)

trong đó x21, x22 là 2 cá thể ưu tú được lựa chọn ngẫu nhiên trong tập ETS.

57

Các tham số điều khiển của thủ tục generate() gồm xác suất lai ghép θc, các bước nhảy định hướng σ1, σ2. Sơ đồ chi tiết dạng bước của thủ tục generate() được mô tả như sau:

Bước 1: index = 0. Bước 2: Lựa chọn ngẫu nhiên một cá thể cha pr. Bước 3: Lựa chọn hướng hội tụ d1. Bước 4: Xác định cá thể thử nghiệm s1 bằng cách lai ghép pr với cá thể sinh ra khi dịch chuyển pr theo hướng hội tụ d1, bước nhảy định hướng σ1, xác suất lai ghép θc. Bước 5: Đánh giá s1, Nếu s1 tốt hơn pindex thì thay thế mindex = s1. Bước 6: Lựa chọn hướng tản mát d2. Bước 7: Xác định cá thể thử nghiệm s2 bằng cách lai ghép pr với cá thể sinh ra khi dịch chuyển pr theo hướng tản mát d2, bước nhảy định hướng σ2, xác suất lai ghép θc. Bước 8: Đột biến s2 theo xác suất đột biến θm. Bước 9: Đánh giá s2, Nếu S2 tốt hơn pindex+1 thì mindex+1 = s2. Bước 10: index = index + 2, Lặp lại Bước 1 cho đến khi duyệt hết các cá thể của M.

Việc xác định cá thể thử nghiệm s1 và s2 trong bước 4 và bước 7 có thể

được cụ thể hóa trong các đoạn giả mã sau:

• Cá thể thử nghiệm s1 = (s1(i))i=1...D

If (rand() < θc) or (i = irand) then

s1(i) = pr(i) + σ1 × d1(i);

else

s1(i) = pr(i);

• Cá thể thử nghiệm s2 = (s2(i))i=1...D

If (rand() < θc) or (i = irand) then

s2(i) = pr(i) + σ2 × d2(i);

else

s2(i) = pr(i);

trong đó D là chiều của bài toán, rand() là hàm sinh số ngẫu nhiên trong đoạn [0, 1], irand là số nguyên ngẫu nhiên trong đoạn [1, D].

58

Tại dòng 9 của thuật toán DEAL, thủ tục selectElite(C(t)) thực hiện việc xác định lại tập ETS cho thế hệ kế tiếp. Quần thể C(t) là quần thể

r1 tới cá thể xG

r2 là hướng hội tụ. Bởi thế, nếu cá thể xG

kết hợp giữa tập ETS hiện thời và quần thể trộn M (t). Bởi vậy, thủ tục này làm cho tập ETS chứa các cá thể ưu tú có tính toàn cục.

(a) Hướng hội tụ d1

(b) Hướng tản mát d2

Hình 3.1: Hai dạng thông tin định hướng của DEAL

Lợi ích của việc dịch chuyển một cá thể theo hướng hội tụ hoặc hướng tản mát có thể được minh họa trong Hình 3.1. Trong hình vẽ 3.1.a, hướng từ cá thể xG r3 được dịch chuyển theo hướng hội tụ thì có thể sinh ra một cá thể mới (màu đỏ) tốt hơn. Tương tự như vậy trong hình vẽ 3.1.b, nếu cá thể xG r3 được dịch chuyển theo hướng tản mát thì cá thể mới sinh ra có thể thuộc vào các khu vực tìm kiếm tiềm năng hơn.

3.2.1. Độ phức tạp tính toán

Phân tích các bước của thuật toán DEAL trong Algorithm 3.1, chúng ta có thể dễ dàng nhận ra phần tính toán phức tạp chính của thuật toán nằm ở thủ tục selecElite() xác định tập ETS cho thế hệ kế tiếp (dòng thứ 9). Thủ tục này đòi hỏi phải sắp xếp quần thể kết hợp C(t) và được thực hiện trong một vòng lặp m thế hệ tiến hóa.

59

Nói chung các thuật toán sắp xếp một tập hợp có kích thước N thường có độ phức tạp là O(N logN ). Bởi vậy, nếu không quan tâm đến số chiều D của bài toán thì độ phức tạp của thuật toán DEAL sẽ là O(mN logN ), trong đó N là kích thước quần thể, m là số thế hệ tiến hóa (m là một tham số của bài toán hoặc phụ thuộc vào tham số M axF Es là tổng số lần tính giá trị hàm đánh giá tối đa).

3.2.2. Các tùy chọn về bước nhảy định hướng

Trong thuật toán DEAL, khi sinh ra các cá thể thử nghiệm s1 và s2, DEAL sử dụng 2 tham số σ1 và σ2 để điều chỉnh độ lớn của véc tơ định hướng d1 và d2. Các tham số này được gọi là bước nhảy định hướng và các giá trị khác nhau của chúng có ảnh hưởng đến chất lượng của thuật toán. Điều này sẽ được kiểm chứng và phân tích một cách cụ thể hơn trong các thực nghiệm ở phần cuối của chương.

3.2.3. Các chiến lược lai ghép

(a) DEAL

(b) MDEAL

Hình 3.2: Các chiến lược lai ghép của DEAL

Như đã trình bày trong các thủ tục ở phần trên, thuật toán DEAL sử dụng một cá thể cha pr vừa làm cá thể đột biến (cá thể được dịch chuyển theo hướng hội tụ hoặc hướng tản mát) vừa làm cá thể lai ghép (hiến tạng) để sinh ra các cá thể thử nghiệm s1 và s2. Đây là chiến lược lai ghép thứ nhất. Ngoài ra, thay vì sử dụng cá thể cha pr làm cá thể lai ghép, thuật toán này có thể thay đổi bằng cách sử dụng các cá thể pindex và pindex+1 làm cá thể lai ghép (index là thứ tự bước lặp trong thủ tục generate()). Đây là chiến lược lai ghép thứ hai. Phiên bản lai ghép này của DEAL được gọi tên là MDEAL (Modified Strategy for DEAL). Xem minh họa sự khác biệt của hai chiến lược lai ghép trong Hình 3.2.

Với MDEAL, các thủ tục sinh s1 và s2 được thay đổi như sau:

• Cá thể thử nghiệm s1 = (s1(i))i=1...D

If (rand() < θc) or (i = irand) then

s1(i) = pr(i) + σ1 × d1(i);

60

else

s1(i) = pindex(i);

• Cá thể thử nghiệm s2 = (s2(i))i=1...D

If (rand() < θc) or (i = irand) then

s2(i) = pr(i) + σ2 × d2(i);

else

s2(i) = pindex+1(i);

3.3. Song song DEAL với kỹ thuật đồng tiến hóa hợp tác

Cũng như các thuật toán tiến hóa khác, DEAL sẽ gặp khó khăn về mặt thời gian khi giải quyết các bài toán tối ưu phức tạp như các bài toán tối ưu cỡ lớn. Một trong những kỹ thuật vượt qua khó khăn này là kỹ thuật song song hóa thuật toán. Có thể song song hóa thuật toán DEAL theo các mô hình khác nhau như đã trình bày trong phần 2.4. Tuy nhiên, trong phần này, luận án sử dụng mô hình song song là sự kết hợp giữa mô hình song song master/slave truyền thống và kỹ thuật đồng tiến hóa hợp tác (CoOperative CoEvolution - CC).

3.3.1. Mô hình song song

Trong mô hình song song được đề xuất, quá trình tiến hóa các quần thể được thực hiện tại các slave thay vì chỉ thực hiện các phép đánh giá giá trị cá thể như trong mô hình truyền thống, còn master thực hiện việc điều khiển quá trình tiến hóa và quản lý các giá trị toàn cục. Chi tiết về mô hình này được biểu diễn trong Hình 3.3.

Tại master, một quần thể (Population) gồm các cá thể được khởi tạo ngẫu nhiên trong không gian tìm kiếm, được phân chia (Decomposition) thành các quần thể con mà mỗi quần thể con (subPopulation) tương ứng với một phần của bài toán (vì vậy có số chiều nhỏ hơn). Cũng tại đây, một cá thể toàn cục tốt nhất (Current best) được xác định và quản lý trong suốt quá trình tiến hóa. Các quần thể con (SubPop) và cá thể tốt nhất toàn cục hiện thời (Current best) sẽ được phân phát (Delivery) tới các slave để được tiến hóa một cách độc lập và đồng thời.

61

Tại mỗi slave, quần thể con được tiến hóa bằng DEAL trong một số vòng lặp xác định trước (ký hiệu là Evolution_Cycle). Sau mỗi Evolu- tion_Cycle, mỗi slave lựa chọn một cá thể con tốt nhất làm đại diện cho

Hình 3.3: Mô hình song song PCCDEAL

nó (Representative) và gửi về cho master nhằm tham gia quá trình cập nhật cá thể toàn cục tốt nhất.

Quá trình cập nhật được diễn ra như sau:

Hình 3.4: Mô hình cập nhật cá thể tối ưu toàn cục

62

Mỗi đại diện (Representative i) sẽ thay thế phần tương ứng của nó trong cá thể toàn cục tốt nhất hiện thời (Current best) để được một cá thể mới. Giả sử có m slaves, khi đó sẽ có được m cá thể mới. Tất cả các đại diện cũng kết hợp với nhau để tạo thành một cá thể mới trong đó mỗi thành phần là một đại diện. Như vậy sẽ có m + 1 cá thể, các cá thể này so sánh với nhau và so sánh với cá thể toàn cục tốt nhất hiện thời để lựa chọn một cá thể toàn cục tốt nhất mới. Chi tiết được biểu diễn trong Hình 3.4.

Master luôn luôn kiểm tra điều kiện kết thúc thuật toán. Nếu điều kiện kết thúc thỏa mãn thì quá trình tìm kiếm cá thể toàn cục tốt nhất sẽ kết thúc. Cá thể toàn cục tốt nhất hiện thời là nghiệm của bài toán. Ngược lại master sẽ phân phối lại cá thể toàn cục tốt nhất mới và yêu cầu các slave tiếp tục các quá trình tiến hóa.

3.3.2. Thuật toán song song

PCCDEAL tại master

Thuật toán song song hóa DEAL theo mô hình 3.3 được gọi tắt là PC- CDEAL (Parallel Cooperative Coevolution for DEAL). PCCDEAL gồm 2 phần được vận hành tại master và tại các slave.

Các bước của PCCDEAL tại master được mô tả như sau:

Bước 1: Khởi tạo quần thể chính mainP OP kích thước N . Bước 2: Đánh giá quần thể chính và xác định cá thể toàn cục tốt nhất globalBEST . Bước 3: Phân chia quần thể chính thành m quần thể con subP OP có số chiều bằng nhau. Bước 4: Phân phối các quần thể con subP OP cho các slaves.

for i:=1 to m do

sendToSlave(subP OP )

end for

Bước 5: Vòng lặp chính

while (termination criteria = false) do

for i:=1 to m do

sendToSlaves(globalBEST ) (waiting for slaves) receiveFromSlaves(bestCOM P ON EN T )

end for Update(globalBEST )

end while

63

Trong bước 3, quần thể chính mainP OP được chia đều thành m quần thể con với số chiều bằng nhau. Điều đó nghĩa là mỗi quần thể con subP OP vẫn có kích thước bằng kích thước của quần thể chính, chỉ có số chiều là bé hơn. Bởi vậy, chi phí dành cho quá trình tiến hóa một quần thể con chắc chắn sẽ nhỏ hơn chi phí dành cho quá trình tiến hóa của quần thể chính.

PCCDEAL tại các slave

Bước 5 là vòng lặp chính của chương trình, mô tả quá trình phân phối, thu nhận và cập nhật cá thể toàn cục tốt nhất. Quá trình này được thực hiện một cách đồng bộ cho dù tốc độ xử lý và truyền thông của các slave có thể khác nhau. Việc cập nhật cá thể toàn cục tốt nhất được thực hiện theo quy định của mô hình sau khi master nhận được đầy đủ tất cả các cá thể con thành phần tốt nhất.

Tai mỗi slave, một quần thể con subP OP gồm N cá thể được quản lý và tiến hóa trong suốt quá trình thực hiện chương trình. Quần thể subP OP được phân phối từ master trong bước đầu tiên của chương trình.

Điều kiện kết thúc luôn được kiểm tra ngay đầu chương trình. Điều kiện này được điều khiển bởi master bởi vậy trong thông tin liên lạc giữa master và các slave có chứa thông tin về trạng thái hoạt động của thuật toán. Nếu master yêu cầu dừng thì các slave sẽ giải phóng và kết thúc thuật toán, ngược lại các slave sẽ tiếp tục quá trình tiến hóa. Cá thể toàn cục tốt nhất hiện thời globalBEST được phân phối trong mỗi chu kỳ liên lạc, cá thể này được sử dụng làm phương tiện cho việc đánh giá quần thể con và các cá thể con mới trong quá trình tiến hóa. Vì hàm đánh giá là hàm mục tiêu của bài toán tổng thể nên để có thể đánh giá một cá thể con, một cơ chế thay thế được thực hiện nhằm thay thế phần tương ứng của cá thể con trong globalBEST . Giá trị đánh giá của một cá thể con sẽ là giá trị đánh giá của một cá thể toàn cục thu được sau khi thay thế phần đại diện tương ứng của globalBEST bởi cá thể con đó.

Trong vòng lặp chính, thuật toán tiến hóa dựa trên thông tin định hướng (DEAL) (xem lại phần 3.2) sẽ được thực hiện số vòng lặp được xác định bởi Evolution_Cycle. Các cá thể con được tiến hóa nhờ các thế mạnh của thuật toán DEAL. Kết thúc Evolution_Cycle, cá thể con tốt nhất tìm được sẽ được dùng làm thành phần đại diện (bestCOM P ON EN T ) của slave tham gia quá trình cập nhật cá thể toàn cục tốt nhất ở master. Bởi vậy, thành phần đại diện bestCOM P ON EN T được gửi về cho master và slave chờ đợi lệnh tiếp theo từ master.

64

Các bước của thuật toán PCCDEAL tại slave được mô tả như sau:

Bước 1: Khởi tạo quần thể bằng cách nhận quần thể con subP OP từ master

receiverFromMaster(subP OP )

Bước 2: Vòng lặp chính

while (termination criteria = false) do receiverFromMaster(globalBEST ) runDEAL(Evolution_Cycle) sendToMaster(bestCOM P ON EN T ) (waiting for master)

end while

3.3.3. Thời gian thực thi và hệ số tăng tốc

Thời gian thực thi thuật toán

Căn cứ trên mô hình 3.3, các quần thể được phân phối một lần từ master tới các slave thông qua kết nối mạng truyền thông giữa các bộ xử lý. Sau đó quá trình tiến hóa sẽ được thực hiện một cách riêng rẽ và đồng thời. Việc đồng tiến hóa hợp tác giữa các quần thể có thể được hiểu như là việc góp các cá thể con tốt nhất nhằm xây dựng cá thể toàn cục tốt nhất. Trong mỗi chu kỳ tiến hóa, chỉ có m cá thể con tốt nhất được gửi từ slave tới master và ngược lại chỉ có 1 cá thể toàn cục tốt nhất được gửi từ master tới slave.

Giả sử gọi:

• t1 là các khoảng thời gian trung bình để phân phối một quần thể con

(ký hiệu là subP OP ),

• t2 là khoảng thời trung bình để phân phối một cá thể toàn cục tốt

nhất (ký hiệu là globalBEST ) từ master tới slave,

• t3 là khoảng thời gian trung bình để gửi 1 thành phần đại điện (ký

hiệu là bestCOM P ON EN T ) từ slave về master,

• tcomp là khoảng thời gian trung bình để mỗi slave thực hiện một vòng

lặp tiến hóa (ký hiệu là Evolution_Cycle),

• tf it là khoảng thời gian trung bình để lựa chọn cá thể tốt nhất từ các

cá thể con đại diện của các quần thể.

65

Bỏ qua các khoảng thời gian dành cho các công việc khác không liên quan đến song song (thường là nhỏ), ta có sơ đồ bố trí thời gian thực thi

Hình 3.5: Mô hình thời gian thực thi PCCDEAL

của hệ thống với m slave được mô tả trong Hình 3.5.

Ký hiệu:

• m là số lượng Slave,

• N là kích thước quần thể (số lượng cá thể của quần thể),

• D là số chiều,

• F là tổng số lần tính hàm đánh giá tối đa (F = M axF Es),

• G là số thế hệ tiến hóa tối đa (G = M axGens).

Khi đó, ta có:

G =

.

F (N + 1)m + 1

Giả sử rằng môi trường xử lý là đồng nhất, gọi tf là khoảng thời gian mỗi bộ xử lý đánh giá một cá thể có số chiều bằng D (trong trường hợp không đồng nhất thì coi tf là thời gian cần thiết để bộ xử lý chậm nhất đánh giá một cá thể có số chiều bằng D).

Khi đó:

• Do mỗi subP OP gồm N cá thể nên

tcomp = N tf .

• Do master lựa chọn globalBEST thông qua m + 1 lần đánh giá nên

tf it = (m + 1)tf .

66

Từ đó ta có: Tổng thời gian dành cho việc đánh giá là:

Tf = G(tcomp + tf it)

(3.1)

.

Tf =

= G(N + m + 1)tf mF + F (N + 1) (N + 1)m + 1

Mặt khác, ký hiệu tc là khoảng thời gian truyền 1 byte dữ liệu. Khi đó:

• Do subP OP là một mảng N × D

M số thực Double nên

t1 = N ×

× 8 × tc =

tc.

D m

8N D m

• Do globalBEST là một mảng D số thực Double nên

t2 = D × 8 × tc = 8Dtc.

• Do bestCOM P ON EN T cũng là một mảng D số thực Double nên

t3 = D × 8 × tc = 8Dtc.

Vì vậy, tổng thời gian dành cho việc truyền thông là:

Tc = mt1 + G(mt2 + t3)

= 8N Dtc + G(8mDtc + 8Dtc)

(8mDtc + 8Dtc)

= 8N Dtc +

F (n + 1)m + 1

=

(3.2)

=

.

8N D(N + 1)tcm + 8N Dtc + 8F Dtcm + 8F Dtc (N + 1)m + 1 (8N D(N + 1)tc + 8F Dtc) m + 8N Dtc + 8F Dtc (N + 1)m + 1

Tổng thời gian thực thi của thuật toán song song được tính:

Tp = Tf + Tc

=

+

(8N D(N + 1)tc + 8F Dtc) m + 8N Dtc + 8F Dtc (N + 1)m + 1

=

mF + F (N + 1) (N + 1)m + 1 (F tf + 8N D(N + 1)tc + 8F Dtc) m + F (N + 1)tf + 8N Dtc + 8F Dtc (N + 1)m + 1

67

(3.3)

Hệ số tăng tốc thuật toán

Với thuật toán dạng tuần tự, thời gian thực thi chính là thời gian thực hiện các phép đánh giá. Với tổng số F lần đánh giá, ta có tổng thời gian thực thi của thuật toán dạng tuần tự sẽ là:

(3.4)

Ts = F tf .

S =

Từ (3.3) và (3.4), theo định nghĩa về hệ số tăng tốc của một thuật toán song song, ta có Hệ số tăng tốc của thuật toán song song theo mô hình 3.3 được tính: Ts Tp

.

=

F (N + 1)tf m + F tf (F tf + 8N D(N + 1)tc + 8F Dtc) m + F (N + 1)tf + 8N Dtc + 8F Dtc

là tỷ lệ thời gian đánh giá trên thời gian truyền thông, ta Đặt α = tf tc có:

S =

.

F (N + 1)αm + F α (F α + 8N D(N + 1) + 8F D) m + F (N + 1)α + 8N D + 8F D

Tiếp tục đặt:

• a1 = F (N + 1)α = F α + F N α

• a2 = F α + 8N D(N + 1) + 8F D

• b1 = F α

• b2 = F (N + 1)α + 8N D + 8F D

Khi đó, Hệ số tăng tốc của thuật toán song song theo mô hình 3.3 được viết lại có dạng:

(3.5)

.

S =

a1m + b1 a2m + b2

Nhận xét: Ở đây, luận án đã sử dụng giả thiết môi trường đồng nhất, bỏ qua các chi phí thực tế truyền thông khác không liên quan đến thuật toán. Công thức 3.5 cho chúng ta thấy rằng hệ số tăng tốc của một thuật toán song song không bao giờ là một đường tuyến tính lý tưởng hoặc gần lý tưởng.

68

Xét trường hợp F = 2.500.000, D = 500, N = 100, với các giá trị tỷ lệ thời gian đánh giá trên thời gian truyền thông α = 500, 1.000 và 10.000,

Hình 3.6: Đồ thị biểu diễn hệ số tăng tốc theo mô hình song song 3.3

ta có đồ thị hệ số tăng tốc có thể được biểu diễn như Hình 3.6 (trục hoành là số lượng slave được sử dụng).

3.4. Đánh giá thực nghiệm

3.4.1. Thực nghiệm DEAL và MDEAL

Mặc dù có nhiều các bài toán thực nghiệm mẫu, tuy nhiên để đánh giá hiệu quả hoạt động của DEAL và MDEAL trong việc giải quyết các bài toán tối ưu, luận án chỉ lựa chọn các bài toán phổ biến nhất và đại diện cho nhiều đặc trưng khác nhau. Danh sách các bài toán lựa chọn được liệt kê trong Bảng 3.1. Thông tin chi tiết về các bài toán được trình bày trong Phụ lục B.

Trong thực nghiệm này, ngoài bài toán F0 là bài toán tối ưu đơn cực trị đơn giản, các bài toán được lựa chọn khác đều có một đặc trưng chung, đó là các bà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. Nhiệm vụ của DEAL và MDEAL là tìm kiếm phương án tối ưu toàn cục đó.

Các tham số thực nghiệm:

• Kích thước quần thể: N = 100,

• Chiều của các bài toán: D = 30,

69

Bảng 3.1: Danh sách các bài toán thực nghiệm cho DEAL

Sphere’s Problem Schwefel’s Problem Rastrigin’s Problem Ackley’s Problem Griewank’s Problem Penalized Problem 1 Penalized Problem 2

30 30 30 30 30 30 30

Ranges [-100, 100] [−500, 500] [−5.12, 5.12] [−32, 32] [−600, 600] [−50, 50] [−50, 50]

fmin 0 -12569.5 0 0 0 0 0

ID Name of Problems Dimension (D) F0 F1 F2 F3 F4 F5 F6

• Tổng số lần tính giá trị hàm đánh giá tối đa: M axF Es = 5000 × D = 150.000. Riêng bài toán F2, để đảm bảo cùng điều kiện so sánh với các thuật toán khác nên luận án sử dụng M axF Es = 250.000,

• Xác suất lai ghép: θc = 0.90,

• Xác suất đột biến: θm = 0.01,

• Số lần thực hiện thuật toán một cách độc lập: N R = 100.

Độ đo giá trị tối ưu trung bình (AveFs) được sử dụng để so sánh các thuật toán: (cid:80)N R

AveF s =

i=1 F ∗ i N R là giá trị đánh giá tốt nhất đạt được trong lần chạy thứ i.

Phân tích thời gian thực thi

TM

trong đó F ∗ i

Bảng 3.2: Thời gian thực thi thuật toán DEAL (Đơn vị tính: giây)

Thời gian chạy lớn nhất Thời gian chạy bé nhất Thời gian trung bình Độ lệch chuẩn

F1 2.0120 1.8580 1.9100 0.0278

F2 2.5210 2.0460 2.1207 0.0851

F3 3.7230 2.0410 2.1164 0.1813

F4 2.1210 1.9820 2.0368 0.0245

F5 2.6440 2.5270 2.5782 0.0242

F6 2.7080 2.4790 2.5597 0.0281

Thuật toán DEAL và MDEAL được thực hiện bằng ngôn ngữ lập trình C, C++ trong môi trường Visual Studio 2008. Chương trình được vận hành trên máy tính Sony VAIO intel R(cid:13)core i5 − 2430M − CP U @2.40GHz, RAM = 4GB. Thời gian thực hiện thuật toán trong mỗi lần chạy độc lập được ghi nhận và tính toán. Kết quả về phân tích các thang đo về thời gian được trình bày trong Bảng 3.2.

70

Qua các số liệu ở Bảng 3.2 chúng ta nhận thấy: không có nhiều sự khác biệt về thời gian thực thi đối với các bài toán tham gia thực nghiệm. Bài toán F1 − Schwef el có thời gian thực thi thấp nhất (thời gian trung bình

Phân tích về hành vi

của NR=100 lần chạy là 1.9100 giây), bài toán F5 - Penalized Problem 1 có thời gian thực thi cao nhất (thời gian trung bình là 2.5782 giây).

Để xem xét hành vi của DEAL đối với 2 lớp bài toán tối ưu đơn cực trị

(uni-modal) và đa cực trị (multi-modal), tác giả lựa chọn 2 bài toán:

• Bài toán F0 − Sphere đại diện cho lớp bài toán tối ưu đơn cực trị,

• Bài toán F3 − Ackley đại diện cho lớp bài toán tối ưu đa cực trị.

Hình ảnh về giá trị đánh giá tốt nhất đạt được của các bài toán theo từng thế hệ trong tất cả các lần chạy độc lập được biểu diễn trong Hình 3.7 và Hình 3.8.

(a)

(b)

Hình 3.7: Giá trị đánh giá tốt nhất của Sphere’s problem: (a) trong 250 thế hệ đầu tiên; (b) trong tất cả các thế hệ.

Xem xét kỹ các hình vẽ chúng ta có nhận xét rằng: Đối với bài toán Sphere, giá trị tối ưu là Zero tương ứng với trục tọa độ. Sau F=150.000 lần đánh giá, các giá trị đánh giá tốt nhất đạt được trong tất cả các lần chạy độc lập đều gần với điểm Zero (độ đo Giá trị tối ưu trung bình là 1.558E-12, giá trị độ lệch chuẩn là 6.158E-12). Hình 3.7 cho thấy rằng DEAL ổn định hội tụ về phương án tối ưu trong tất cả các lần chạy độc lập. Sau 250 thế hệ, hầu hết các giá trị đánh giá tốt nhất đạt được của DEAL đều gần với giá trị tối ưu của bài toán.

71

Trong khi đó, khi xét với bài toán Ackley, Hình 3.8 cho thấy sự khó khăn của bài toán tối ưu đa cực trị đã làm cho DEAL khó khăn hơn trong hội tụ. Tại thế hệ thứ 250 (thời điểm DEAL đã hội tụ trong bài toán Sphere) thì giá trị đánh giá tốt nhất đạt được của bài toán Ackley vẫn còn xa giá

(a)

(b)

Hình 3.8: Giá trị đánh giá tốt nhất của Ackley’s problem: (a) trong 250 thế hệ đầu tiên; (b) trong tất cả các thế hệ.

Phân tích độ đa dạng của quần thể

trị tối ưu. Trong tất cả các lần chạy độc lập, hầu như DEAL hội tụ về giá trị tối ưu ở thế hệ thứ 500. Sau đó sự tối ưu hóa vẫn tiếp tục tinh chỉnh để tìm giải pháp tốt nhất của nó cho đến tận cùng.

N (cid:88)

Để tính toán độ đa dạng của quần thể Γ, tác giả sử dụng công thức:

Γ =

min d(pi, pj),

i,j=1

trong đó d(pi, pj) là khoảng cách giữa 2 cá thể bất kỳ pi và pj trong quần thể (i (cid:54)= j).

Sau MaxFEs=150.000 lần tính giá trị hàm đánh giá với 1.500 thế hệ, độ đa dạng quần thể của riêng bài toán Sphere và 6 bài toán thực nghiệm được biểu diễn trong các Hình 3.9 và Hình 3.10 (Trục hoành là số thế hệ).

72

Các hình vẽ cho thấy đối với bài toán đơn cực trị, quần thể ổn định hội tụ về một phương án tối ưu toàn cục duy nhất, bởi vậy độ đa dạng quần thể ổn định giảm dần ở tất cả các lần chạy độc lập. Đối với các bài toán đa cực trị nhiều phương án tối ưu địa phương, đặc biệt là bài toán F2 - Rastrigin’s Problem, độ đa dạng quần thể biến thiên rất nhiều trước khi ổn định giảm dần, khi mà quần thể hội tụ về gần với phương án tối ưu toàn cục. Trong các bài toán đa cực trị khác, vẫn có những cá thể lạc và bị mắc kẹt tại các phương án tối ưu địa phương, bởi vậy độ đa dạng quần

Hình 3.9: Độ đa dạng quần thể của bài toán đơn cực trị Sphere’s Problem

Hình 3.10: Độ đa dạng quần thể của các bài toán đa cực trị (a) Schwefed’s problem; (b) Rastrigin’s problem; (c) Ackley’s problem; (d) Griewank’s problem; (e) Pernalized problem 1; và (f) Pernalized problem 2

So sánh hiệu quả với các tùy chọn về bước nhảy định hướng

thể không hoàn toàn ổn định ở tất cả các lần chạy độc lập. Đây là hành vi thông thường của các thuật toán tiến hóa.

Trong phần này, luận án sử dụng 4 tùy chọn khác nhau về bước nhảy

định hướng, tương ứng với 4 Option của thuật toán:

• Option1: σ1 = U (0, 1); σ2 = 0.5,

• Option2: σ1 = 1; σ2 = 0.5,

73

• Option3: σ1 = U (0, 1); σ2 = U (0, 0.5),

• Option4: σ1 = 1; σ2 = U (0, 0.5).

Bảng 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

DEAL

Option1 Option2 Option3 Option4 MDEAL Option1 Option2 Option3 Option4

F1 -1.085E+04 -1.064E+04 -1.097E+04 -1.064E+04 -1.217E+04 -1.226E+04 -1.201E+04 -1.203E+04

F2 3.482E-15 8.419E-05 1.785E-14 8.419E-05 1.910E-23 4.507E+00 1.251E-16 1.002E-02

F3 3.097E-07 3.977E-05 4.213E-06 3.977E-05 4.096E-11 1.316E-06 4.096E-11 1.171E-08

F4 1.305E-02 1.546E-02 1.350E-02 1.546E-02 2.808E-03 3.177E-03 7.687E-03 6.867E-03

F5 3.619E-07 1.063E-03 6.433E-06 1.063E-03 4.348E-31 1.199E-12 1.839E-31 7.134E-16

F6 1.099E-04 6.594E-04 8.790E-04 6.594E-04 1.110E-26 1.101E-04 9.560E-25 1.099E-04

Thuật toán DEAL và MDEAL được thực nghiệm với tất cả các bài toán từ F1 đến F6. Kết quả độ đo giá trị tối ưu trung bình (AveFs) được ghi nhận trong Bảng 3.3.

So sánh hiệu quả với các chiến lược lai ghép

Bảng 3.3 cho thấy kết quả của tùy chọn Option1 là tốt nhất, của tùy chọn Option3 là tương đối tốt còn 2 tùy chọn còn lại có kết quả kém hơn và tương tự nhau đối với tất cả các bài toán. Điều đó cho thấy việc lựa chọn tùy ý các bước nhảy định hướng, đặc biệt là bước nhảy σ1 có ảnh hưởng tốt đến kết quả thực nghiệm. Bởi vậy, các thực nghiệm tiếp theo tác giả chỉ sử dụng kết quả của tùy chọn Option1 để đại diện cho DEAL.

Bảng 3.4: So sánh hai chiến lược lai ghép

DEAL Mean Sdt Rank MDEAL Mean Std Rank

F1 -1.085E+04 3.996E+02 2 -1.217E+04 1.892E+02 1

F2 3.482E-15 5.888E-15 2 1.910E-23 9.791E-23 1

F3 3.097E-07 8.720E-07 2 4.096E-11 1.325E-15 1

F4 1.305E-02 1.721E-02 2 2.808E-03 5.445E-03 1

F5 3.619E-07 1.268E-06 2 4.348E-31 1.009E-30 1

F6 1.099E-04 1.099E-03 2 1.110E-26 1.106E-25 1

Để so sánh hai chiến lược lai ghép, thuật toán DEAL và MDEAL được thực nghiệm với tất cả các bài toán từ F1 đến F6. Sau 100 lần chạy độc lập, độ đo giá trị tối ưu trung bình và giá trị độ lệch chuẩn được tính toán và ghi nhận trong Bảng 3.4.

74

Các số liệu trong Bảng 3.4 cho thấy MDEAL có kết quả tốt hơn so với DEAL. Bởi vậy, trong các thực nghiệm sau tác giả sẽ sử dụng kết quả thực nghiệm của thuật toán MDEAL thay cho DEAL.

So sánh hiệu quả với các thuật toán khác

Như đã nói ở phần trên, kết quả thực nghiệm của MDEAL thay cho DEAL khi so sánh với các thuật toán khác. Bên cạnh việc thực thi thuật toán MDEAL, luận án còn tiến hành thực nghiệm thuật toán DE với mã nguồn được cung cấp tại [75]. Các tham số của DE được thiết lập theo khuyến cáo của tác giả của DE, cụ thể kích thước quần thể N = 100, xác suất lai ghép 0.9, bước nhảy định hướng 0.5. Kết quả thực nghiệm của MDEAL và DE được so sánh với kết quả thực nghiệm của các thuật toán phổ biến khác đã được công bố trong [48], bao gồm các thuật toán RCCRO (Real-coded version of Chemical Reaction Optimiza- tion) [48], GA (Genetic Algorithm), FEP (Fast Evolutionary Program- ming), CEP (Classical Evolutionary Programming), FES (Fast Evolution- ary Strategy), CES (Conventional Evolutionary Strategy), RCBBO (Real- coded Biogeography-based optimization) [35], CMAES (Covariance Matrix Adaptation Evolution Strategy) [37] và G3PCX (Generalized Generation Gap model with PCX) [16]. Đây là các thuật toán tiến hóa nối tiếng đã có những thành công được ghi nhận trong lịch sử phát triển của thuật toán tiến hóa. Số liệu tổng hợp và xếp hạng được trình bày trong Bảng 3.5.

Theo kết quả thống kê từ Bảng 3.5, chúng ta có thể nhận thấy không có thuật toán nào thực sự chiến thắng trên tất cả các bài toán. Tuy nhiên, trong 3 thuật toán có thể xếp hạng là MDEAL, DE, CMAES (vì có ít nhất một bài toán xếp hạng 1) thì MDEAL và DE có thể cạnh tranh với nhau. Trong khi MDEAL xếp hạng nhất với 4 bài toán (F2, F3, F5, F6) thì DE xếp hạng nhất với 1 bài toán (F4). Tuy nhiên, DE xếp hạng hai ở 5 bài toán còn lại. Một điều thú vị ở đây là cả MDEAL và DE đều là các thuật toán tiến hóa sử dụng thông tin định hướng để điều khiển quá trình tiến hóa. Điều này một lần nữa cho thấy tính hiệu quả của các thuật toán tiến hóa sử dụng thông tin định hướng.

75

Phân tích kỹ hơn về hành vi của 2 thuật toán MDEAL và DE đối với cả 6 bài toán (xem Hình 3.11 với trục hoành là số thế hệ) ta dễ dàng nhận thấy MDEAL hội tụ nhanh hơn DE (đường màu đỏ nằm dưới đường màu xanh) đối với tất cả các bài toán. Tuy nhiên, tính đa cực trị của các bài toán đã làm MDEAL nhanh chóng đạt đến các điểm cực trị địa phương, đối với một số bài toán MDEAL gặp khó khăn khi cải thiện phương án tốt nhất đạt được. Cụ thể đối với bài toán F1, MDEAL đạt đến điểm cực trị địa phương từ thế hệ thứ 400 (xem Hình 3.11.a), đối với bài toán F4, MDEAL đạt đến điểm cực trị địa phương từ thế hệ thứ 500 (xem Hình 3.11.d), sau đó bị kẹt tại đây. Với các bài toán F5 (xem Hình 3.11.e) và F6 (xem Hình 3.11.f), MDEAL đạt đến các điểm cực trị địa phương sau đó

Bảng 3.5: So sánh DEAL với các thuật toán khác

GA

FEP

CEP

FES

CES

DE

MDEAL Mean Std Rank RCCRO1 Mean Std Rank Mean Std Rank Mean Std Rank Mean Std Rank Mean Std Rank Mean Std Rank RCBBO Mean Std Rank Mean Std Rank CMAES Mean Std Rank G3PCX Mean Std Rank

F1 -1.155E+04 3.376E+02 8 -1.257E+04 2.317E-02 2 -1.257E+04 2.109E+00 2 -1.255E+04 5.260E+01 7 -7.917E+03 6.345E+02 9 -1.256E+04 3.253E+01 6 -7.550E+03 6.314E+02 10 -1.257E+04 2.200E-05 2 -1.257E+04 0.000E+00 2 -9.873E+07 8.547E+08 1 -2.577E+03 4.126E+02 11

F2 1.910E-23 9.791E-23 1 9.077E-04 2.876E-04 3 6.509E-01 3.594E-01 7 4.600E-02 1.200E-02 5 8.900E+01 2.310E+01 10 1.600E-01 3.300E-01 6 7.082E+01 2.149E+01 9 2.620E-02 9.760E-03 4 2.224E-06 3.124E-06 2 4.950E+01 1.229E+01 8 1.740E+02 3.199E+01 11

F3 4.096E-11 6.001E-16 1 1.944E-03 4.190E-04 3 8.678E-01 2.805E-01 7 1.800E-02 2.100E-02 5 9.200E+00 2.800E+00 10 1.200E-02 1.800E-03 4 9.070E+00 2.840E+00 9 2.510E-02 5.510E-03 6 1.968E-10 2.571E-11 2 4.607E+00 8.725E+00 8 1.352E+01 4.815E+00 11

F4 9.542E-03 1.281E-02 3 1.117E-02 1.622E-02 4 1.004E+00 6.755E-02 11 1.600E-02 2.200E-02 6 8.600E-02 1.200E-01 8 3.700E-02 5.000E-02 7 3.800E-01 7.700E-01 9 4.820E-01 8.490E-02 10 0.000E+00 0.000E+00 1 7.395E-04 2.389E-03 2 1.127E-02 1.310E-02 5

F5 6.327E-31 3.153E-30 1 2.074E-02 5.485E-02 6 4.372E-02 5.058E-02 8 9.200E-06 6.140E-05 3 1.760E+00 2.400E+00 10 2.800E-02 8.100E-11 7 1.180E+00 1.870E+00 9 3.280E-05 3.330E-05 4 1.086E-20 4.039E-21 2 5.167E-03 7.338E-03 5 4.593E+00 5.984E+00 11

F6 1.110E-26 1.106E-25 1 7.048E-07 5.901E-07 3 1.681E-01 7.068E-02 8 1.600E-04 7.300E-05 5 1.400E+00 3.700E+00 10 4.700E-05 1.500E-05 4 1.390E+00 3.330E+00 9 3.720E-04 4.630E-04 6 7.385E-20 2.379E-20 2 1.639E-03 4.196E-03 7 2.349E+01 2.072E+01 11

đã được cải thiện và đạt giá trị đánh giá tốt hơn.

3.4.2. Thực nghiệm DEAL song song

TM

Để kiểm tra và đánh giá hiệu quả của thuật toán DEAL song song theo mô hình 3.3 (thuật toán PCCDEAL), một hệ thống máy tính song song ghép cụm (cluster computer) được thiết lập, gồm 21 máy tính DELL kết nối mạng theo dạng hình sao. Tất cả các máy tính có cấu hình như nhau (intel R(cid:13)core i5 − 4570 − CP U @3.20GHz, RAM = 4GB), được thiết lập BIOS ở chế độ Only one core is enable, được cài đặt Ubuntu 14.04, trong đó có 01 máy tính đóng vai trò master, các máy tính khác đóng vai trò slave. Môi trường lập trình là GNU C++ với thư viện MPICH2.

76

Trong phần này, luận án chọn sử dụng 5 bài toán với các đặc trưng khác nhau phù hợp với các yêu cầu thực nghiệm. Trong 5 bài toán này, có 1 bài

Hình 3.11: Giá trị tối ưu trung bình đạt được khi D = 30 của các bài toán (a) Schwefed’s problem; (b) Rastrigin’s problem; (c) Ackley’s problem; (d) Griewank’s problem; (e) Pernalized problem 1; and (f) Pernalized problem 2

Bảng 3.6: Danh sách các bài toán thực nghiệm cho DEAL song song

Properties Unimodal, Separable Unimodal, Non-separable Multimodal, Separable Multimodal, Non-separable Multimodal, Non-separable

Ranges Global Opt. [-100, 100] [-100, 100] [-5, 5] [-32, 32] [-600, 600]

(0,0,. . . ,0) (0,0,. . . ,0) (0,0,. . . ,0) (0,0,. . . ,0) (0,0,. . . ,0)

ID Name of Problems Sphere’s Problem F0 Schwefel’s Problem 2.21 F1 F2 Rastrigin’s Problem F3 Ackley’s Problem F4 Griewank’s Problem

toán tối ưu đơn cực trị (F0) và 4 bài toán tối ưu đa cực trị (F1, F2, F3 và F4), có 2 bài toán khả tách (F0 và F 2) và 3 bài toán không khả tách (F1, F3 và F4). Danh sách và thông tin chung của các bài toán được liệt kê trong bảng 3.6. Thông tin chi tiết về các bài toán được trình bày trong Phụ lục B.

77

Như đã nói ở phần mở đầu, các bài toán thực nghiệm được phức tạp hóa bằng cách tăng số chiều của bài toán. Trong thực nghiệm này, chiều của các bài toán được sử dụng là D = 500. Khi đó, tham số tổng số lần tính hàm đánh giá tối đa được xác định sẽ là F = M axF Es = 5.000 × D = 2.500.000. Các tham số thực nghiệm khác bao gồm như sau: Kích thước quần thể N = 100, xác suất lai ghép θc = 0.90, xác suất đột biến pm = 0.01, số vòng lặp tiến hóa Evolution_Cycle = 1, 5 và 10.

Phân tích thời gian thực thi và tính toán hệ số tăng tốc

Để đo lường, phân tích thời gian thực thi và tính toán hệ số tăng tốc của thuật toán PCCDEAL, thời gian tính toán hàm đánh giá và thời gian truyền thông của hệ thống được tăng độ trễ. Cụ thể, đối với mỗi lần tính hàm đánh giá, một độ trễ 500 microseconds được thực hiện (sử dụng hàm usleep(500)). Đối với mỗi lần đơn vị thông tin được truyền qua lại giữa master và slave được đặt trễ 50 microseconds (sử dụng hàm usleep(50)).

Khi đó, thời gian thực thi thuật toán đối với các bài toán được ghi lại

Bảng 3.7: Thời gian thực thi với Evolution_Cycle = 1 (ĐVT: giây)

No. Slaves 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

F0 2,219.9377 1,173.4546 863.8245 719.3394 634.2143 579.0876 540.2397 516.9827 483.9929 470.2007 452.1017 439.4440 430.6839 419.6980 415.9971 409.7547 395.7211 393.0210 394.0854 393.9815

F1 2,226.2760 1,182.8463 891.1093 720.9271 636.6207 580.7579 542.1982 509.5079 494.1266 472.0673 453.5909 439.8801 431.4125 421.4773 416.6226 410.4762 397.3518 393.2143 394.0600 394.0047

F2 2,383.7905 1,257.7259 900.2611 745.6594 657.0398 613.9467 559.0190 522.8394 505.3214 481.7797 461.1528 447.1669 437.9635 428.5834 422.1864 416.5382 398.6509 397.5445 399.6012 398.7745

F3 2,332.2708 1,244.6470 901.9794 748.8662 668.6801 600.0674 558.7006 522.2332 494.4393 482.9529 462.7190 447.3318 438.1068 428.2200 421.9885 416.8032 398.7446 398.3044 399.8843 398.6849

F4 2,360.8423 1,251.8949 913.5721 758.2101 663.2889 605.0908 564.8477 529.8713 499.5765 485.2269 462.9293 451.8031 441.4153 429.1433 425.6023 418.6414 399.0685 400.6608 402.1521 401.5521

và thống kê trong các bảng từ Bảng 3.7 đến Bảng 3.9.

Từ các số liệu của các bảng thống kê, có thể thấy rằng sự khó khăn của các bài toán tham gia thực nghiệm là không có nhiều sự khác biệt. Thời gian thực thi chủ yếu do các đặc điểm và tính chất của mô hình đã đề xuất. Số liệu từ các bảng cũng cho thấy tính hiệu quả của mô hình song song đã được xây dựng. Trường hợp số slave bằng 1 tương ứng với trường hợp tuần tự (không song song vì mô hình chỉ có 1 master và 1 slave). Khi số slave tăng lên thì khoảng thời gian thực thi thuật toán sẽ giảm dần.

78

Xét cụ thể trường hợp bài toán F0 − Sphere trong Bảng 3.7. Khi số slaves bằng 1 thời gian thực thi thuật toán là 2.219,9377 giây nhưng khi số slaves tăng lên bằng 2 thì thời gian thực thi thuật toán giảm xuống còn

Bảng 3.8: Thời gian thực thi với Evolution_Cycle = 5 (ĐVT: giây)

No. Slaves 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

F0 1,837.0836 919.8120 639.9688 501.7067 420.6594 366.8397 328.9758 305.0087 275.5252 260.6687 244.0072 233.3417 223.5459 214.2002 207.8884 202.0153 190.1661 188.9626 187.0571 184.2560

F1 1,828.3618 937.6917 661.9793 505.5722 423.2925 368.9667 331.2193 300.4499 283.2670 262.1520 245.9414 234.1793 224.2625 215.3470 208.8093 202.9277 190.7809 189.5976 187.3637 184.5926

F2 2,005.4335 1,003.2053 687.2184 535.4179 446.9720 395.2862 348.4581 316.3670 296.3223 273.5208 256.2315 243.2652 233.0515 223.3123 216.2691 210.1765 197.5970 195.6437 193.1006 190.1991

F3 1,921.9020 999.6044 686.4251 536.5198 456.7024 389.8116 348.4177 315.6700 288.9320 273.8166 256.6863 243.3451 233.3111 223.7455 216.4079 210.0761 197.5969 196.0830 193.3907 190.3242

F4 1,953.2303 993.5657 685.7187 537.3174 450.8887 392.9929 352.4807 319.0395 292.3901 276.8817 257.1741 246.4329 235.5187 224.8250 218.3405 212.3020 199.6023 198.0336 195.2189 192.2936

Bảng 3.9: Thời gian thực thi với Evolution_Cycle = 10 (ĐVT: giây)

No. Slaves 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

F0 1,767.0286 868.3718 589.1733 452.9570 372.0128 318.3543 280.6914 256.7956 229.2638 213.8560 197.4762 186.6571 176.8625 168.2405 161.4947 155.7747 145.7452 143.5125 139.7761 136.4925

F1 1,741.6316 883.7841 609.2446 457.4634 374.8066 320.6358 283.0610 254.0798 235.8443 214.9568 199.3368 187.3858 177.4163 169.1080 161.9890 156.3569 146.2875 144.1862 140.1395 136.8530

F2 1,930.9716 955.8414 638.6624 488.2842 399.5156 347.5330 300.5862 270.4043 249.3692 227.2593 210.1661 197.0843 186.3512 177.3266 169.7600 163.6910 153.2129 150.3808 146.2534 142.6991

F3 1,832.1833 947.5168 638.4076 489.3180 408.4614 342.3030 300.4778 269.3948 243.6097 227.5090 210.5147 197.3063 187.0998 177.7153 170.0590 163.9311 153.4233 150.6232 146.4542 142.9176

F4 1,876.0886 938.4689 634.0907 488.3468 402.7005 344.8672 304.1861 272.7192 245.9413 229.6337 211.0883 199.4774 188.8959 179.4186 171.8662 165.8482 155.0377 152.0504 147.7667 144.4539

1.173,4546 giây, đạt hệ số tăng tốc là:

= 1.8918

s2 =

2.219, 9377 1.173, 4546

79

Tiếp tục tính toán khi số slave tăng lên đến 20, ta thu được đường biểu

Hình 3.12: Hệ số tăng tốc của PCCDEAL

diễn hệ số tăng tốc đạt được là đường màu xanh trong đồ thị 3.12. Các đường màu hồng và màu chanh trong đồ thị 3.6 là các hệ số tăng tốc đạt được tương ứng với các trường hợp Evolution_Cycle = 5 và Evolution_Cycle = 10.

Phân tích hiệu quả của thuật toán PCCDEAL

Các đồ thị biểu diễn hệ số tăng tốc trong các thực nghiệm đều cho thấy giá trị của nó không bao giờ vượt quá hệ số lý tưởng y = n0 (với n0 là số slave được sử dụng trong thuật toán). Điều này tuân thủ luật Amdahl của lý thuyết tính toán song song.

Thông thường các kỹ thuật song song hóa chỉ làm tăng hiệu suất về mặt thời gian thực thi của thuật toán. Tuy nhiên trong PCCDEAL, luận án đã sử dụng kết hợp song song với kỹ thuật đồng tiến hóa hợp tác. Do đó thuật toán PCCDEAL có thể làm tăng chất lượng của lời giải, nghĩa là giá trị của phương án tốt nhất tìm được cuối cùng của thuật toán có thể được cải thiện.

Bảng 3.10 ghi nhận độ đo Giá trị tối ưu trung bình (AveFs) của PC- CDEAL sau 25 lần chạy độc lập với 03 giá trị khác nhau về số lượng vòng tiến hóa tại mỗi slave, bao gồm Evolution_Cycle = 1, 5 và 10.

80

Căn cứ trên các số liệu trong bảng trên ta có độ đo Giá trị tối ưu trung

Bảng 3.10: Giá trị tối ưu trung bình của PCCDEAL

F1

F2

F3

F4

1 5 10 20

1.28E+01 1.00E+01 1.07E+01 7.88E+00

4.13E+02 1.78E+00 1.75E+00 1.39E+01

1.42E+00 2.22E-02 2.13E-02 1.99E-02

8.87E-04 1.58E-03 2.09E-03 1.47E-03

8.95E+00 3.77E+00 4.06E+00 2.91E+00

2.10E+02 1.12E-02 5.76E-03 1.37E-02

9.66E-01 2.19E-03 1.16E-03 3.77E-04

3.25E-03 2.76E-03 2.10E-03 7.89E-04

1 5 10 20

No. Slaves F0 Evolution_Cycle = 1 2.91E+01 8.23E-02 5.27E-02 5.24E-02 Evolution_Cycle = 5 6.85E+00 5.19E-04 7.03E-05 1.43E-05 Evolution_Cycle = 10 4.98E+00 1.55E-04 2.93E-05 2.34E-06

9.12E+00 3.56E+00 3.14E+00 2.15E+00

1.82E+02 4.02E-03 1.96E-03 5.83E-03

9.43E-01 1.47E-03 5.91E-04 1.39E-04

3.15E-03 1.68E-03 8.88E-04 2.17E-03

1 5 20 30

bình đối với bài toán F0 - Sphere là giảm dần (tốt dần) theo sự tăng dần lên của số lượng slave. Điều này đạt được do bài toán F0 - Sphere là bài toán đơn giản, đơn cực trị và khả tách. Một bài toán khả tách khác là F2 - Rastrigin, phù hợp với phương pháp chia bài toán của mô hình. Tuy nhiên tính đa cực trị của nó đã không đảm bảo tính hiệu quả của chất lượng phương án tìm được khi tăng số slave như của bài toán F0 (Giá trị tối ưu trung bình đạt được khi sử dụng 10 slave là 1.75E+00, nhưng lại tăng lên 1.39E+01 khi sử dụng 20 slave). Đối với bài toán F3 - Ackley, do tính chất đặc biệt (dạng loa kèn) nên hiệu quả đạt được giống như bài toán đơn cực trị mặc dù F3 - Ackley là bài toán đa cực trị. Kết quả của các bài toán còn lại (F1 và F4) cho thấy sự khó khăn của dạng bài toán đa cực trị nhiều phương án cực trị địa phương khi thực hiện PCCDEAL nói riêng cũng như các thuật toán song song hóa khác.

3.5. Kết luận

Trong chương này, tác giả đã đề xuất thuật toán tiến hóa mới sử dụng thông tin định hướng trong việc tìm kiếm phương án tối ưu. Thuật toán DEAL có một số đặc trưng như:

• Tổ chức và sử dụng cân đối 2 dạng thông tin định hướng: (1) hướng hội tụ là hướng từ một cá thể hạng hai đến một cá thể ưu tú và (2) hướng tản mát 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. Tập các cá thể ưu tú được tổ chức ngoài trong tập ETS và liên tục được cập

81

nhật trong suốt quá trình tiến hóa.

• Có 4 tùy chọn về bước nhảy định hướng.

• Có 2 chiến lược lai ghép khác nhau tương ứng với 2 phiên bản DEAL

và MDEAL.

Các kết quả thực nghiệm cho thấy DEAL và MDEAL làm việc tốt với lớp bài toán tối ưu đơn cực trị và các bà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 các trường hợp thử nghiệm, hiệu quả của thuật toán MDEAL có thể so sánh được với các thuật toán tiến hóa nổi tiếng khác. Đặc biệt, tính hiệu quả của MDEAL và DE đã góp phần thể hiện lợi thế của các thuật toán dựa trên thông tin định hướng.

Cũng trong chương này, luận án đã tiến hành song song hóa thuật toán DEAL nhằm nâng cao năng lực tính toán khi phải giải quyết các bài toán phức tạp. Mô hình song song được sử dụng là sự kết hợp giữa mô hình song song master/slave và kỹ thuật đồng tiến hóa hợp tác. Mô hình mới không hoàn toàn giống với mô hình master/slave truyền thống. Thuật toán song song hóa DEAL theo mô hình mới gọi là PCCDEAL (Parallel Cooperative Coevolution for DEAL) được mô tả, cài đặt và thử nghiệm trên các bài toán có số chiều lên đến 500 đã phản ánh đầy đủ các tính chất của thuật toán DEAL và mô hình song song được xây dựng.

Các kết quả chính trong chương này đã được công bố trong các bài báo:

• A Parallel Cooperative Coevolution Evolutionary Algorithm [Ct1],

• Towards a Theoretic Model for Parallelization of Cooperative Coevo-

lutionary Algorithms [Ct2],

• DEAL: A Direction-guided Evolutionary Algorithm [Ct3].

82

Các kết quả thực nghiệm trong chương này cho thấy MDEAL thực hiện tốt như DEAL và có phần vượt trội trong một số trường hợp, bởi vậy trong các nghiên cứu sau kết quả của MDEAL được sử dụng thay cho kết quả của DEAL.

Chương 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Ị

4.1. Mở đầu

Trong các bài toán tối ưu đa cực trị, đặc biệt là các bài toán tối ưu trong thực tế, vấn đề xác định đồng thời các phương án tối ưu (toàn cục và địa phương) có ý nghĩa quan trọng. Từ các phương án tối ưu xác định được, có thể phân tích để khám phá đặc điểm của bài toán hoặc khi cần thiết có thể quyết định lựa chọn phương án tối ưu thỏa mãn nhất theo yêu cầu của bài toán. Nhiệm vụ tìm kiếm xác định các phương án tối ưu (toàn cục và địa phương) cùng một lúc thay vì chỉ tìm kiếm một phương án tối ưu được gọi là tối ưu hóa đa cực trị (Multi-modal Optimization).

Sử dụng cách tiếp cận dựa vào quần thể, các thuật toán EAs có thể xác định nhiều phương án chỉ trong một lần chạy. Bởi vậy, so với các phương pháp tìm kiếm cổ điển, EAs có lợi thế rõ ràng đối với tối ưu hóa đa cực trị. Gần đây, một lớp các bài toán tối ưu đa cực trị với nhiều đặc trưng khác nhau đã được giới thiệu (xem [54]). Điều này đã tạo thuận lợi cho việc nghiên cứu đề xuất các thuật toán EAs mới. Các thuật toán đã có thành công ban đầu như NEA1, NEA2 của M. Preuss (xem [72, 73]), dADE/nrand/1 của M.G. Epitropakis (xem [20]) trong năm 2013, hay NMMSO, LSEAGP, LSEAEA của J. E. Fieldsend (xem [24, 25, 26]) trong năm 2015.

83

Với mong muốn đề xuất thuật toán tiến hóa giải quyết hiệu quả lớp

các bài toán tối ưu đa cực trị và có thể so sánh được với các thuật toán nói trên, trong chương này, luận án nghiên cứu và giới thiệu 04 phương án kết hợp thuật toán DEAL với các phương pháp niching thường dùng. Các phương án kết hợp hiệu quả cùng với việc gia tăng các chiến lược điều khiển phù hợp sẽ cho phép đạt được các yêu cầu đặt ra.

4.2. DEAL với phương pháp Fitness Sharing

Như đã trình bày trong phần 2.3.1, phương pháp Fitness Sharing sử dụng tham số bán kính niche rs làm giá trị ngưỡng để phân chia quần thể hiện tại thành các nhóm quần thể con và bổ sung một số phép tính nhằm xác định giá trị đánh giá chia sẻ (fitness sharing value), toán tử chọn lọc của EAs sử dụng giá trị này thay vì giá trị đánh giá làm tiêu chí lựa chọn cá thể cho thế hệ kế tiếp.

Bởi vậy, để kết hợp phương pháp Fitness Sharing với thuật toán DEAL, luận án đề xuất phương án điều chỉnh các hoạt động của thủ tục generate() của thuật toán DEAL bằng 4 bước con sau đây:

84

Bước 1: Xây dựng quần thể trộn M. Nội dung của bước này hoàn toàn tương tự như 10 bước của thủ tục generate() của thuật toán DEAL (xem lại phần 3.2). Tuy nhiên các cá thể thử nghiệm s1 và s2 không được đánh giá so sánh nhằm thay thế các cá thể cha mẹ mà tiếp tục được bổ sung vào quần thể M. Như vậy sau bước này, kích thước của quần thể M sẽ bằng 2 lần kích thước của quần thể chính P. Bước 2: Tính toán giá tri đánh giá chia sẻ (fitness sharing) của tất cả các cá thể trong quần thể M theo công thức (2.11). Bước 3: Sắp xếp quần thể M theo thứ tự giảm dần của giá trị đánh giá chia sẻ. Bước 4: Loại bỏ một nửa (1/2) cá thể xấu của M. Trong bước này, một nửa số cá thể của M có giá trị đánh giá chia sẻ thấp sẽ bị loại bỏ. Tuy nhiên, cần phải bảo tồn cá thể ưu tú nhất (có giá trị đánh giá cao nhất) trong quần thể M. Bởi vậy nếu cá thể này bị loại bỏ do giá trị đánh giá chia sẻ kém, nó sẽ được khôi phục lại bằng cách thay thế cá thể có giá trị đánh giá chia sẻ kém nhất hiện có trong quần thể M. Quần thể M bây giờ có kích thước bằng kích thước quần thể P tiếp tục được thực hiện các bước tiếp theo của thuật toán DEAL nhằm giải quyết trọn vẹn bài toán.

Thuật toán DEAL với phương pháp Fitness Sharing được gọi là Shar- ingDEAL. Phân tích độ phức tạp tính toán của SharingDEAL từ độ phức tạp tính toán của DEAL, ta thấy phần tính toán phức tạp của thuật toán là ở bước tính toán giá trị đánh giá chia sẻ (fitness sharing) của tất cả các cá thể. Việc tính toán này có độ phức tạp là O(N 2). Bởi vậy, độ phức tạp tính toán của SharingDEAL được tính là O(mN 2), trong đó m là số thế hệ tiến hóa, N là kích thước quần thể.

4.3. DEAL với phương pháp Crowding

Với phương pháp Crowding, thuật toán CrowdingDEAL được đề xuất, trong đó việc so sánh và thay thế các cá thể thử nghiệm s1 và s2 trong thủ tục generate() của DEAL được thực hiện theo tinh thần của phương pháp Crowding. Cụ thể, đối với mỗi cá thể thử nghiệm s1 và s2, CrowdingDEAL sẽ tìm các cá thể cha mẹ tương tự nhất với nó trong toàn bộ quần thể hiện thời để so sánh và thay thế. Một cá thể cha mẹ được gọi là tương tự nếu khoảng cách Euclidean từ nó đến cá thể thử nghiệm là nhỏ nhất. Như vậy, thủ tục generate() của thuật toán DEAL được viết lại như sau:

Bước 1: index = 0. Bước 2: Lựa chọn ngẫu nhiên một cá thể cha pr. Bước 3: Lựa chọn hướng hội tụ d1. Bước 4: Xác định cá thể thử nghiệm s1 bằng cách lai ghép pr với cá thể sinh ra khi dịch chuyển pr theo hướng hội tụ d1, bước nhảy định hướng σ1, xác suất lai ghép θc. Bước 4+: Tìm kiếm cá thể m1 tương tự nhất với cá thể s1. Bước 5: Đánh giá s1 và so sánh s1 với m1 Nếu s1 tốt hơn m1 thì thay thế m1 bằng s1. Bước 6: Lựa chọn hướng tản mát d2. Bước 7: Xác định cá thể thử nghiệm s2 bằng cách lai ghép pr với cá thể sinh ra khi dịch chuyển pr theo hướng tản mát d2, bước nhảy định hướng σ2, xác suất lai ghép θc. Bước 8: Đột biến s2 theo xác suất đột biến θm. Bước 8+: Tìm kiếm cá thể m2 tương tự nhất với cá thể s2. Bước 9: Đánh giá s2 và so sánh s2 với m2 Nếu s2 tốt hơn m2 thì thay thế m2 bằng s2. Bước 10: index = index + 2 Lặp lại Bước 1 cho đến khi duyệt hết các cá thể của M.

85

Trong CrowdingDEAL, Bước 4+ và Bước 8+ thực hiện tìm kiếm cá

thể tương tự nhất với 2 cá thể thử nghiệm s1 và s2. Việc tìm kiếm này được thực hiện trên toàn bộ quần thể (tương ứng với tham số CF = N ). Sau khi tìm được các cá thể tương tự m1 và m2, các bước đánh giá và so sánh (Bước 5 và Bước 9) sẽ được thực hiện nhằm lựa chọn cá thể tốt hơn trong các cặp cá thể s1 với m1 và s2 với m2, cá thể nào tốt hơn sẽ được bảo toàn trong quần thể trộn M và có mặt trong thế hệ tiếp theo. Cũng như DEAL, toàn bộ các bước từ 1 đến 10 sẽ được thực hiện N 2 lần nhằm xác định quần thể trộn M chứa N 2 × 2 = N cá thể được sử dụng cho thế hệ sau.

Phân tích độ phức tạp tính toán của CrowdingDEAL, ta nhận thấy tại mỗi vòng lặp tiến hóa, mỗi khi xác định được một cá thể thử nghiệm s1 hoặc s2 thì CrowdingDEAL phải tiến hành tìm kiếm cá thể cha m1 hoặc m2 tương tự nhất trong toàn bộ quần thể (kích thước N ). Bởi vậy, phần phức tạp tính toán chủ yếu của thuật toán nằm ở bước này. Nếu sử dụng thuật toán tìm kiếm tuần tự để thực hiện tìm kiếm thì ta có độ phức tạp trung bình của thuật toán tìm kiếm là O(N ). Như vậy độ phức tạp tính toán của CrowdingDEAL sẽ là O(mN 2) với m là số thế hệ tiến hóa, N là kích thước quần thể.

4.4. DEAL với phương pháp Species-based

Phần này sử dụng kết hợp thuật toán DEAL với phương pháp Species- based để xây dựng một thuật toán tiến hóa gọi là SpeciesDEAL. Species- DEAL bắt đầu bằng cách khởi tạo một quần thể gồm N cá thể ngẫu nhiên trong miền xác định (tập ràng buộc) của bài toán. Một tập các hạt giống SSS của quần thể được xác định theo các bước đã được trình bày trong phần 2.3.3. Quần thể hiện tại sẽ được chia thành các quần thể con (loài) riêng biệt dựa vào tham số bán kính loài rs đã được xác định trước. Miền xác định của mỗi loài được quy định xung quanh cá thể hạt giống với bán kính là rs. SpeciesDEAL sử dụng một tham số đặc biệt gọi là số lượng cá thể ít nhất của mỗi loài, ký hiệu là n0. Khi một loài mới được xác định, nếu số lượng cá thể của loài là nhỏ hơn n0 thì một cơ chế ngẫu nhiên được khởi tạo để sinh ra cho đủ số cá thể mới trong miền xác định của loài. Tham số n0 có thể lấy giá trị tùy ý lớn hơn hoặc bằng 2. Tuy nhiên, n0 = 10 được lựa chọn dựa vào kinh nghiệm thu được trong các lần thực nghiệm.

86

Sau khi được xác định, mỗi loài (quần thể con) được tiến hóa một cách độc lập theo các bước cơ bản của thuật toán DEAL. Theo đó 50% cá thể của mỗi loài sẽ được tiến hóa theo hướng hội tụ và 50% cá thể còn lại được

tiến hóa theo hướng tản mát.

Một cơ chế khởi động lại thuật toán tiến hóa được áp dụng nhằm tránh trường hợp thuật toán bị kẹt tại một phương án tối ưu địa phương. Species- DEAL sử dụng các điều kiện khởi động lại như sau:

• TC01 (Tình huống hội tụ sớm 1): Khởi động lại nếu sự chênh lệch các giá trị đánh giá của tất cả các cá thể trong quần thể con là bé hơn T olf un = 10−12.

• TC02 (Tình huống hội tụ sớm 2): Khởi động lại nếu độ lệch chuẩn của các giá trị đánh giá của tất cả các cá thể trong quần thể con là bé hơn T olX = 10−12.

• TC03 (Tình huống bị kẹt): Khởi động lại nếu sự chênh lệch các giá trị đánh giá tốt nhất (giá trị tối ưu) đạt được trong glast = 10 thế hệ gần đây là bằng 0.

Nếu một trong các điều kiện trên được thỏa mãn, quá trình tiến hóa đối với loài (quần thể con) đó sẽ bị tạm dừng. Nếu tất cả các loài đều bị tạm dừng trong khi giới hạn về nguồn lực còn chưa bị vi phạm (chẳng hạn như số lần tính hàm đánh giá còn nhỏ hơn F hay M axF Es) thì quần thể chính sẽ được khởi tạo mới một cách ngẫu nhiên và một vòng lặp mới của SpeciesDEAL lại bắt đầu. Kết quả tìm kiếm được đối với các phương án tối ưu sẽ được bảo lưu trong tất cả các vòng lặp của SpeciesDEAL.

Chi tiết các bước của SpeciesDEAL được mô tả như sau:

Bước 1: Khởi tạo quần thể chính P có kích thước N . Bước 2: Xác định tập SSS và phân chia các loài tương ứng. Nếu kích thước của loài nhỏ hơn n0 thì khởi tạo ngẫu nhiên một số cá thể trong miền xác định của loài cho đến khi mọi loài đều có kích thước lớn hơn hoặc bằng n0. Bước 3: Với mỗi loài, thực hiện thuật toán DEAL cho đến khi điều kiện khởi động lại được thỏa mãn. Bước 4: Kết hợp tất cả các loài và chỉ giữ lại N cá thể tốt nhất. Bước 5: Quay lại bước 2 cho đến khi tất cả các loài đều thỏa mãn điều kiện khởi động lại. Bước 6: Quay lại bước 1 cho đến khi điều kiện dừng thuật toán được thỏa mãn.

87

Để dễ hình dung, luận án sử dụng chuỗi hình ảnh biểu diễn không gian tìm kiếm các cá thể khi sử dụng SpeciesDEAL để giải quyết bài toán Himmelblau (xem Phụ lục B). Miền xác định của bài toán là x, y ∈ [−6, 6]

và số lượng phương án tối ưu toàn cục đã biết là 4. Hình 4.1a biểu diễn 80 cá thể được khởi tạo ngẫu nhiên (bước 1). Tại bước 2, với tham số bán kính loài rs = 3.0 đã được quy định trước, thủ tục xác định tập hạt giống và thủ tục phân chia loài được thực hiện tiến hành phần quần thể hiện tại thành 14 loài khác nhau với các hạt giống là các hình hoa thị (*) trên Hình 4.1b. Hình 4.1c biểu diễn quần thể mới sau khi thực hiện các thủ tục kết hợp, lựa chọn, xác định tập hạt giống và phân loài tiếp theo. Lúc này chúng ta chỉ còn 6 hạt giống (hình hoa thị (*)) tương ứng với 6 loài mới. Tại thời điểm này số lượng phép đánh giá đã thực hiện là 239. Các bước biểu diễn trong hình vẽ này sẽ được lặp đi lặp lại cho đến khi tất cả các loài đều thỏa mãn điều kiện khởi động lại. Khi đó bước khởi tạo đã biểu diễn ở Hình 4.1a được thực hiện lại với 80 cá thể ngẫu nhiên khác và quá trình tìm kiếm lại bắt đầu. Chú ý rằng các cá thể là phương án tối ưu tìm được trong mỗi vòng lặp sẽ được lưu giữ và sử dụng trong suốt quá trình tìm kiếm. Kết quả cuối cùng được biểu diễn trong Hình 4.1d, lúc này cả 4 phương án tối ưu đều đã được tìm thấy và số phép đánh giá đã được sử dụng là 2.833.

Phân tích độ phức tạp tính toán của SpeciesDEAL, chúng ta nhận thấy độ phức tạp của thủ tục xác định tập hạt giống SSS trong trường hợp xấu nhất là O(N 2) [53], số loài tương ứng với số lượng hạt giống nhiều nhất là N . Mỗi loài sẽ thực hiện thuật toán DEAL một cách độc lập cho đến khi khởi động lại. Thuật toán DEAL có độ phức tạp O(mN logN ). Bởi vậy, thuật toán SpeciesDEAL có độ phức tạp tính toán sẽ là O(mN 2logN ).

4.5. DEAL với phương pháp Clustering-based

Thuật toán NBCDEAL là sự kết hợp của DEAL và kỹ thuật phân cụm NBC của M. Preuss (xem [74]). Theo đó, một quần thể chính chứa các giải pháp đã được khởi tạo ngẫu nhiên trong không gian tìm kiếm sẽ được phân chia thành các cụm riêng biệt dựa vào kỹ thuật NBC. Mỗi cụm được tiến hóa một cách độc lập theo thuật toán DEAL cho đến khi thỏa mãn các điều kiện khởi động lại. Tương tự như SpeciesDEAL, thuật toán NBCDEAL cũng sử dụng một tệp ngoài để lưu trữ các phương án tối ưu đã được xác định qua các thế hệ. Ngoài 03 điều kiện khởi động lại của SpeciesDEAL, thuật toán NBCDEAL bổ sung 01 điều kiện TC04 nhằm tránh lãng phí nguồn lực khi thuật toán cố gắng khai thác ở những vùng tìm kiếm mà tại đó phương án tối ưu đã được xác định.

• TC04 (Tình huống lãng phí): Khởi động lại nếu miền xác định của

88

cụm chứa một phương án tối ưu đã được tìm thấy.

(a) Initialize

(b) After determine the species and specie seeds

(c) After evolution and selection

(d) Final with 4 known global optima

Hình 4.1: Thuật toán SpeciesDEAL với bài toán Himmelblau

Trong quá trình thực hiện NBCDEAL, điều kiện dừng của chương trình luôn luôn được kiểm tra, nếu thỏa mãn thì chương trình ngay lập tức bị dừng lại. Trong trường hợp tất cả các cụm đều thực hiện xong thuật toán DEAL (hội tụ, thỏa mãn các điều kiện khởi động lại) mà điều kiện dừng chương trình chưa thỏa mãn thì quần thể chính được khởi tạo lại và thuật toán NBCDEAL tiếp tục tìm kiếm các phương án tiềm năng khác. Cũng giống như SpeciesDEAL, các kết quả tìm kiếm phương án tối ưu của NBCDEAL được bảo tồn trong tất cả các vòng lặp.

89

Cấu trúc dạng bước của thuật toán NBCDEAL được mô tả như sau:

Bước 1: Khởi tạo quần thể chính P có kích thước N . Bước 2: Áp dụng kỹ thuật NBC để phân tách quần thể P thành các cụm cá thể riêng biệt. Bước 3: Với mỗi cụm cá thể

Thực hiện thuật toán DEAL cho mỗi cụm cá thể cho đến

khi điều kiện khởi động lại được thỏa mãn Bước 4: Nếu điều kiện dừng chương trình chưa thỏa mãn thì

Quay lại bước 1.

Để minh họa cho thuật toán NBCDEAL, ngoài bài toán Himmelblau

tác giả còn sử dụng bài toán Shubert (xem Phụ lục B).

(a) Initialize

(b) After determine the species and specie seeds

Hình 4.2: Thuật toán NBCDEAL với bài toán Himmelblau

Với bài toán Himmelblau, Hình 4.2a thể hiện 80 cá thể được khởi tạo một cách ngẫu nhiên trong miền xác định của bài toán, các cá thể này đã được phân thành 4 cụm riêng biệt (thể hiện bởi các màu khác nhau) bằng cách sử dụng kỹ thuật NBC. Tại thời điểm này số lần tính giá trị đánh giá là 80 do mỗi cá thể đã được đánh giá 1 lần. Hình 4.2b là kết quả sau khi thực hiện 3.998 lần thực hiện phép đánh giá, lúc này cả 4 phương án tối ưu của bài toán đã được xác định.

90

Với bài toán Shubert, miền xác định của bài toán là x, y ∈ [−10, 10]. Trong Hình 4.3a, 11 cụm cá thể (có màu sắc khác nhau) với 80 cá thể khởi tạo ngẫu nhiên đã được xác định bằng kỹ thuật NBC. Lúc này số lần tính gá trị đánh giá đã sử dụng là 80. Hình 4.3b thể hiện 18 phương án tối ưu của bài toán mà thuật toán NBCDEAL tìm được sau 119.596 lần tính giá trị đánh giá.

(a) Initialize

(b) After determine the species and specie seeds

Hình 4.3: Thuật toán NBCDEAL với bài toán Shubert

Phân tích độ phức tạp của thuật toán NBCDEAL ta có quần thể chính P được phân tách thành các cụm riêng biệt bằng kỹ thuật NBC. Để làm được việc đó, NBC sử dụng ma trận kề để biểu diễn cây bao trùm, mỗi node là một cá thể của quần thể. Nếu N là kích thước của quần thể thì độ phức tạp tính toán của kỹ thuật NBC sẽ là O(N 2). Mỗi cụm riêng biệt sau khi phân tách được tiến hóa độc lập bằng thuật toán DEAL có độ phức tạp O(mlogN ). Bởi vậy, độ phức tạp tính toán của NBCDEAL sẽ là O(mN 2logN ).

4.6. Thực nghiệm

4.6.1. Môi trường thực nghiệm

Các bài toán thực nghiệm

Các tham số thực nghiệm

Luận án sử dụng tập các bài toán thực nghiệm được đề xuất gần đây trong IEEE CEC’2013 (xem [54]). Đây là bộ gồm 20 trường hợp của 12 bài toán đa cực trị nổi tiếng với nhiều đặc điểm khác nhau. Ký hiệu, tên gọi, số chiều và số phương án tối ưu toàn cục đã biết được liệt kê trong Bảng 4.1. Chi tiết hơn về mỗi bài toán có thể xem ở Phụ lục A.

• Kích thước quần thể: Tham số này có thể thiết lập tùy ý. Tuy nhiên với thực nghiệm này, luận án sử dụng kích thước quần thể N = 40 ∗ D với các bài toán có số chiều D ≤ 3 và N = 120 với các bài toán còn

91

Bảng 4.1: Danh sách các bài toán thực nghiệm

Five-Uneven-Peak Trap Equal Maxima

Dimension 1 1 1 2 2 2 3 2 3 2 2 2 2 3 5 10 3 5 10 20

No. of optima 2 5 1 4 4 18 81 36 216 12 6 8 6 6 6 6 8 8 6 8

ID Name F1 F2 F3 Uneven Decreasing Maxima F4 Himmelblau Six-Hump Camel Back F5 Shubert F6 Shubert F6 F7 Vincent F7 Vincent F8 Modified Rastrigin Composition Function 1 F9 F10 Composition Function 2 F11 Composition Function 3 F11 Composition Function 3 F11 Composition Function 3 F11 Composition Function 3 F12 Composition Function 4 F12 Composition Function 4 F12 Composition Function 4 F12 Composition Function 4

Ranges x ∈ [0, 30] x ∈ [0, 1] x ∈ [0, 1] x, y ∈ [−6, 6] x ∈ [−1.9, 1.9], y ∈ [−1.1, 1.1] xi ∈ [−10, 10] xi ∈ [−10, 10] xi ∈ [0.25, 10] xi ∈ [0.25, 10] xi ∈ [0, 1] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5] xi ∈ [−5, 5]

lại.

• Tổng số lần tính hàm đánh giá tối đa: M axF Es = 5 × 104 với các bài toán từ F1 − F5, M axF Es = 2 × 105 với các bài toán có D = 2 còn lại, M axF Es = 4 × 105 với các bài toán có D ≥ 3.

• Độ chính xác ((cid:15)): Là ngưỡng dùng để xác định phương án (cid:15) - tối ưu. Cụ thể, nếu sự khác biệt giữa giá trị đánh giá của phương án tìm kiếm được so với giá trị tối ưu của bài toán là nhỏ hơn hoặc bằng (cid:15) thì phương án tìm được có thể được xem là phương án tối ưu. Trong thực nghiệm này, luận án sử dụng 5 độ chính xác từ thấp đến cao (cid:15) = 10−i với i = 1, 2, . . . , 5.

• Số lần chạy độc lập: N R = 50

• Tham số điều khiển của DEAL: xác suất lai ghép θc = 0.90, xác suất

Các độ đo

đột biến θm = 0.01.

Trong thực nghiệm này luận án sử dụng 2 độ đo, bao gồm:

• Tỷ lệ đạt đỉnh PR (peak ratio)

(cid:80)N R

P R =

i=1 N P Fi N KP × N R

92

trong đó N P Fi là số lượng phương án tối ưu toàn cục xác định được trong lần chạy thứ i. N KP là số lượng phương án tối ưu toàn cục đã biết trước của bài toán.

• Tỷ lệ thành công SR (success rate)

SR =

N SR N R

trong đó N SR là số lần chạy mà thuật toán xác định được đầy đủ tất cả các phương án tối ưu toàn cục của bài toán.

Giá trị của các độ đo này đều nằm trong đoạn [0,1]. Giá trị 1.000 là trường hợp tốt nhất. Khi P R = 1.000 nghĩa rằng tất cả các phương án tối ưu toàn cục đều xác định được trong tất cả các lần chạy độc lập. Trong trường hợp này, độ đo SR cũng có giá trị là 1.000. Nếu có một số lần chạy, thuật toán không xác định được tất cả các phương án tối ưu đã biết thì độ đo SR < 1.000. Tất nhiên khi đó, giá trị độ đo P R < 1.000.

4.6.2. Thực nghiệm 1: Hiệu quả của SharingDEAL

Thuật toán SharingDEAL được thực nghiệm trong N R = 50 lần chạy độc lập. Trong mỗi lần chạy, ứng với các độ chính xác (cid:15) khác nhau, số phương án tối ưu mà thuật toán xác định được N P Fi, số lần tính hàm đánh giá F Ei đươc ghi nhận. Giá trị các độ đo PR và SR được tính toán và tổng hợp trong Bảng 4.2.

Các kết quả từ Bảng 4.2 cho thấy:

• Đối với các bài toán đơn giản 1 chiều (F1, F2, F3) các độ đo PR và SR đều bằng 1.000, điều đó nghĩa là đối với các hàm này SharingDEAL xác định được tất cả các phương án tối ưu của bài toán trong tất cả các lần chạy.

• Đối với các bài toán phức tạp khác (D>1), thuật toán SharingDEAL không xác định được tất cả các phương án tối ưu của các bài toán trong tất cả các lần chạy (PR<1.000, SR<1.000). Các số liệu còn cho thấy các bài toán càng phức tạp thì hiệu quả của SharingDEAL càng kém.

• Với độ chính xác thấp ((cid:15) = 1.0E − 01), SharingDEAL có thể xác định được nhiều phương án tối ưu hơn so với độ chính xác cao ((cid:15) = 1.0E − 05). Đặc biệt đối với các bài toán F4, F5 và F7, SharingDEAL xác định được tất cả các phương án tối ưu ở tất cả các lần chạy với

93

Bảng 4.2: Kết quả thực nghiệm của SharingDEAL

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 0.415 0.275 0.140

SR 1.000 1.000 0.120 0.000 0.000

PR 1.000 1.000 1.000 0.960 0.860

SR 1.000 1.000 1.000 0.920 0.720

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.990 0.990 0.990 0.980 0.000

SR 0.980 0.980 0.980 0.960 0.000

PR 0.422 0.410 0.407 0.406 0.342

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.288 0.169 0.134 0.113

SR 1.000 0.000 0.000 0.000 0.000

PR 0.329 0.087 0.046 0.025 0.024

SR 0.000 0.000 0.000 0.000 0.000

PR 0.138 0.117 0.083 0.083 0.083

SR 0.040 0.040 0.000 0.000 0.000

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 0.917 0.167 0.167 0.167 0.167

SR 0.900 0.000 0.000 0.000 0.000

PR 0.125 0.125 0.125 0.125 0.125

SR 0.000 0.000 0.000 0.000 0.000

PR 0.200 0.167 0.167 0.167 0.167

SR 0.040 0.000 0.000 0.000 0.000

PR 0.950 0.167 0.167 0.167 0.167

SR 0.940 0.000 0.000 0.000 0.000

PR 0.267 0.090 0.090 0.073 0.073

SR 0.200 0.000 0.000 0.000 0.000

F12(3D)

F13(5D)

Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05

F11(10D) SR PR 0.980 0.980 0.000 0.163 0.000 0.163 0.000 0.163 0.000 0.163

PR 0.930 0.125 0.125 0.125 0.125

SR 0.920 0.000 0.000 0.000 0.000

PR 0.180 0.030 0.023 0.023 0.023

SR 0.160 0.000 0.000 0.000 0.000

F12(10D) SR PR 0.000 0.163 0.000 0.163 0.000 0.163 0.000 0.163 0.000 0.163

F12(20D) SR PR 0.400 0.473 0.000 0.123 0.000 0.123 0.000 0.123 0.000 0.123

độ chính xác (cid:15) = 1.0E − 01 nhưng lại xác định được rất ít phương án tối ưu khi độ chính xác (cid:15) = 1.0E − 05.

• Với độ chính xác cao (cid:15) = 1.0E − 05, độ đo SR của các bài toán đều bằng 0.000 (ngoại trừ bài toán F5(2D) có SR = 0.720). Điều đó chứng tỏ trong các bài toán này, SharingDEAL không xác định được bất kỳ phương án (cid:15)-tối ưu nào với (cid:15) = 1.0E − 05.

Bên cạnh kết quả của SharingDEAL, luận án sử dụng các kết quả thực nghiệm của DE/nrand/1, DEAL và SharingDE, trong đó DE/nrand/1 là một phiên bản chuẩn của thuật toán tiến hóa vi phân DE (xem lại phần 2.2.4), các kết quả thực nghiệm của DE/nrand/1 được lấy từ công bố trong bài báo [54]. DEAL là thuật toán gốc, không sử dụng phương pháp niching. SharingDE là thuật toán của R. Thomsen được đề xuất trong [99]. Luận án đã triển khai thuật toán này dựa vào các thông tin được cung cấp trong [99]. Điều kiện và các tham số thực nghiệm của SharingDE được lựa chọn theo đúng khuyến cáo của R. Thomsen như xác suất lai ghép 0.9, bước nhảy định hướng 0.5. độ chính xác được sử dụng trong so sánh này là (cid:15) = 1.0E − 01. Các số liệu về kết quả thực nghiệm được thống kê trong Bảng 4.3 trong đó các giá trị tốt hơn được tô đậm.

94

Các kết quả từ Bảng 4.3 cho thấy:

Bảng 4.3: So sánh SharingDEAL với các thuật toán khác

Algorithm

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

DE/nrand/1 DEAL SharingDE

SR 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000

PR 1.000 0.545 1.000 1.000

SR 1.000 0.520 1.000 1.000

PR 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 SharingDEAL 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

Accuracy level (cid:15) DE/nrand/1 DEAL SharingDE

PR 0.450 0.032 0.897 SharingDEAL 0.990

SR 0.000 0.000 0.780 0.980

PR 0.097 0.000 0.277 0.422

SR 0.000 0.000 0.000 0.000

PR 0.347 0.354 1.000 1.000

SR 0.000 0.000 1.000 1.000

PR 1.000 0.035 0.301 0.329

SR 1.000 0.000 0.000 0.000

PR 0.108 0.658 0.582 0.138

SR 0.000 0.580 0.540 0.040

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

Accuracy level (cid:15) DE/nrand/1 DEAL SharingDE

PR 0.683 0.063 0.900 SharingDEAL 0.917

SR 0.000 0.060 0.880 0.900

PR 0.855 0.003 0.115 0.125

SR 0.240 0.000 0.000 0.000

PR 0.667 0.050 0.157 0.200

SR 0.000 0.040 0.000 0.040

PR 0.667 0.000 0.153 0.950

SR 0.000 0.000 0.140 0.940

PR 0.677 0.000 0.400 0.267

SR 0.000 0.000 0.740 0.920

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) DE/nrand/1 DEAL SharingDE SharingDEAL

PR 0.403 0.000 1.000 0.980

SR 0.000 0.000 0.480 0.160

PR 0.522 0.000 0.740 0.930

SR 0.000 0.000 0.740 0.920

PR 0.345 0.000 0.498 0.180

SR 0.000 0.000 0.400 0.200

PR 0.227 0.000 0.167 0.163

SR 0.000 0.000 1.000 0.980

F12(20D) SR 0.000 0.000 0.000 0.000

PR 0.130 0.000 0.983 0.473

• Theo độ đo PR: Thuật toán SharingDEAL có 11 bài toán xếp hạng 1 và 5 bài toán khác xếp hạng 2. Trong khi đó SharingDE chỉ có 9 bài toán xếp hạng 1 và 7 bài toán khác xếp hạng 2. DE/nrand/1 còn kém hơn với 10 bài toán xếp hạng 1 và 2 bài toán xếp hạng 2.

• Theo độ đo SR: SharingDEAL có 14 bài toán xếp hạng 1 và 5 bài toán xếp hạng 2. Các giá trị 11 và 8, 8 và 2 là kết quả tương ứng của SharingDE và DE/nrand/1.

Qua các số liệu này có thể kết luận rằng SharingDEAL có hiệu quả tốt hơn so với SharingDE và DE/nrand/1 khi giải quyết các lớp bài toán đã lựa chọn.

Ngoài ra khi so sánh DEAL và SharingDEAL, chúng ta nhận thấy DEAL chỉ có kết quả độ đo PR tốt (xếp hạng 1) đối với 5 bài toán đơn giản (F1 − F5) trong khi đó SharingDEAL xếp hạng 1 đối với 11 bài toán, bao gồm cả những bài toán phức tạp như F9(2D), F11(3D), F12(3D). Kết quả của độ đo SR cũng phản ảnh tương quan khá rõ khi DEAL xếp hạng 1 chỉ với 1 bài toán và SharingDEAL xếp hạng 1 với 14 bài toán. Những kết quả này đã phản ảnh rõ vai trò và tính hiệu quả của việc sử dụng các phương pháp niching trong việc giải quyết lớp bài toán tối ưu đa cực trị.

95

Trong thuật toán SharingDEAL, khi lựa chọn các cá thể cho thế hệ kế tiếp, SharingDEAL đã thực hiện thủ tục loại bỏ 50% cá thể có giá trị đánh giá chia sẻ (fitness sharing value) yếu hơn trong quần thể trộn M. Việc này

đã làm mất đi một số các cá thể tiềm năng thực sự (có giá trị đánh giá cao). Mặc dù trong thuật toán đã sử dụng tính năng bảo tồn cá thể có tiềm năng nhất (có giá trị đánh giá cao nhất). Tuy nhiên, thủ tục loại bỏ 50% này đã ảnh hưởng khá nhiều đến hiệu quả của thuật toán.

(a)

(b)

Hình 4.4: Ảnh hưởng của thủ tục loại bỏ một nửa số cá thể

Xét trường hợp của bài toán F6(3D) trong Hình 4.4a. Bài toán F6(3D) có 81 phương án tối ưu toàn cục. Tuy nhiên, ngay từ thế hệ thứ 50, đường kẻ màu xanh cho thấy số lượng phương án tối ưu toàn cục tìm được đang giảm dần từ số 54 phương án phát hiện được. Tương tự như thế của bài toán F7(3D) với 216 phương án tối ưu toàn cục (xem Hình 4.4b), số phương án tối ưu toàn cục xác định được đã giảm dần từ thế hệ thứ 10.

Để xem xét ảnh hưởng của tham số kích thước quần thể (N ), thuật toán SharingDEAL được thực nghiệm với các bài toán có kích thước của quần thể khác nhau: N = 50, 100, 150, 200, 250, 300. Độ đo PR các kết quả thực nghiệm được tính toán và biểu diễn trong Hình 4.5.

Các hình 4.5 (a)-(d) cho thấy sự ảnh hưởng khá lớn của kích thước quần thể đối với hiệu suất của thuật toán SharingDEAL, đặc biệt là trong các bài toán có số lượng phương án tối ưu toàn cục lớn.

4.6.3. Thực nghiệm 2: Hiệu quả của CrowdingDEAL

96

Bên cạnh việc thực nghiệm CrowdingDEAL, luận án còn tiến hành thực nghiệm và sử dụng kết quả của 2 thuật toán khác là CDE của R. Thomsen [99] và CrowdingDE của M. G. Epitropakis [21], trong đó thuật toán CDE được thực hiện lại với thông tin thuật toán và các điều kiện thực nghiệm được công bố trong [99]. Kết quả của CrowdingDE là kết quả thực hiện của CrowdingDE/nrand/1 với cùng điều kiện đã nêu trong [54].

(a)

(b)

(c)

(d)

Hình 4.5: Ảnh hưởng của kích thước quần thể

Kết quả của 3 thuật toán này được biểu diễn trong các Bảng 4.4, 4.5,

4.6 trong đó bôi đậm các số liệu xếp hạng tốt nhất.

Để xem xét một cách cụ thể ảnh hưởng của 3 thuật toán CrowdingDE, CDE, CrowdingDEAL đối với từng lớp bài toán khác nhau, số trường hợp mỗi thuật toán xếp hạng nhất theo độ đo PR được tiến hành thống kê (chữ đậm trong các Bảng 4.4, 4.5, 4.6). Kết quả cho thấy:

• Đối với lớp bài toán tối ưu đa cực trị đơn giản, ít chiều (gồm 5 bài toán từ F1 đến F5 với 5 độ chính xác khác nhau tương ứng với 5 × 5 = 25 trường hợp): đa số các thuật toán đều có kết quả tốt và đạt giá trị độ đo là 1.000, tương ứng với 100%. Số liệu thống kê PR cho thấy thuật toán CrowdingDE có kết quả tốt hơn, nó đạt hạng nhất ở 21/25 trường hợp thống kê. Con số tương ứng của CrowdingDEAL và CDE là 16/25 và 15/25 trường hợp.

• Đối với lớp bài toán tối ưu đa cực trị đơn giản, nhiều chiều (F6, F7):

97

Bảng 4.4: Kết quả thực nghiệm của CrowdingDE

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 0.710 0.090 0.020 0.000

SR 1.000 0.500 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 0.995 0.420

SR 1.000 1.000 1.000 0.980 0.040

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 1.000 0.999 0.972 0.107 0.000

SR 1.000 0.980 0.740 0.000 0.000

PR 0.271 0.272 0.274 0.274 0.270

SR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.847 0.835 0.716 0.290 0.038

SR 0.000 0.000 0.000 0.000 0.000

PR 0.703 0.724 0.715 0.709 0.716

F9(2D)

F10(2D)

F12(3D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 0.937 0.690 0.667 0.667 0.667

SR 0.720 0.040 0.000 0.000 0.000

PR 0.380 0.055 0.007 0.007 0.002

SR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.380 0.000 0.000 0.000 0.000

PR 0.502 0.013 0.000 0.000 0.000

PR 0.730 0.690 0.627 0.490 0.375

Bảng 4.5: Kết quả thực nghiệm của CDE

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 0.992 0.968 0.952

SR 1.000 1.000 0.960 0.840 0.780

SR 1.000 1.000 1.000 0.900 0.560

PR 1.000 1.000 0.965 0.175 0.030

SR 1.000 1.000 0.900 0.000 0.000

PR 1.000 1.000 1.000 0.980 0.640

SR 1.000 1.000 1.000 0.960 0.400

PR 1.000 1.000 1.000 0.900 0.560

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.996 0.994 0.962 0.128 0.000

SR 0.920 0.920 0.560 0.000 0.000

PR 0.633 0.618 0.588 0.528 0.379

SR 0.000 0.000 0.000 0.000 0.000

SR 1.000 0.000 0.000 0.000 0.000

PR 0.274 0.271 0.268 0.264 0.255

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 1.000 0.995 0.993 0.980

SR 1.000 1.000 0.940 0.940 0.800

PR 1.000 0.716 0.706 0.692 0.679

F9(2D)

F10(2D)

F12(3D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 1.000 0.667 0.660 0.653 0.653

SR 1.000 0.000 0.000 0.000 0.000

PR 0.303 0.055 0.008 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

SR 1.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.080 0.000 0.000 0.000 0.000

PR 0.083 0.000 0.000 0.000 0.000

PR 1.000 0.673 0.598 0.460 0.298

thuật toán CrowdingDEAL có kết quả tốt ở bài toán F6 (xếp hạng nhất ở cả 5 độ chính xác của F6(3D), xếp hạng nhất ở 2 độ chính xác cao 1.0E-03 và 1.0E-04 của F6(2D)). Tuy nhiên với bài toán F7, CrowdingDEAL chỉ xếp hạng nhất với độ chính xác thấp (1.0E-01) và xếp hạng 2 với các trường hợp còn lại.

• Đối với lớp bài toán tối ưu đa cực trị phức tạp (gồm 6 bài toán F8 đến F12 với 5 độ chính xác khác nhau tương ứng với 30 trường hợp): thuật toán CrowdingDEAL xếp hạng nhất trong 21/30 trường hợp trong khi

98

Bảng 4.6: Kết quả thực nghiệm của CrowdingDEAL

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 0.964 0.864 0.684

SR 1.000 1.000 0.820 0.480 0.120

PR 1.000 1.000 1.000 1.000 0.880

SR 1.000 1.000 1.000 1.000 0.880

PR 1.000 1.000 1.000 0.500 0.235

SR 1.000 1.000 1.000 0.240 0.020

PR 1.000 1.000 0.960 0.850 0.490

SR 1.000 1.000 0.920 0.720 0.240

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.996 0.994 0.994 0.994 0.000

SR 0.920 0.900 0.900 0.900 0.000

PR 0.693 0.651 0.627 0.606 0.595

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.703 0.696 0.681 0.644

SR 1.000 0.000 0.000 0.000 0.000

PR 0.267 0.267 0.266 0.259 0.248

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 1.000 0.990 0.975 0.938

SR 1.000 1.000 0.900 0.740 0.480

F9(2D)

F10(2D)

F12(3D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 1.000 0.803 0.647 0.523 0.363

SR 1.000 0.220 0.040 0.000 0.000

PR 0.888 0.870 0.813 0.780 0.750

SR 0.340 0.300 0.160 0.100 0.060

PR 1.000 0.443 0.403 0.398 0.385

SR 1.000 0.000 0.000 0.000 0.000

PR 0.263 0.173 0.120 0.107 0.097

SR 0.020 0.000 0.000 0.000 0.000

F12(20D) SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.125 0.125 0.123 0.123

đó CrowdingDE và CDE chỉ xếp hạng nhất trong 6/30 và 7/30 trường hợp. Đặc biệt đối với bài toán phức tạp có số chiều lớn như F12(10D) và F12(20D) thì CrowdingDEAL xếp hạng nhất đối với cả 5 độ chính xác.

Bảng 4.7: Thống kê số trường hợp xếp hạng nhất theo các độ đo PR và SR

Accuracy CrowdingDE

CDE

CrowdingDEAL

level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 7/15 8/15 8/15 8/15 8/15

SR 8/15 11/15 10/15 11/15 12/15

PR 9/15 6/15 4/15 2/15 3/15

SR 10/15 11/15 9/15 8/15 9/15

PR 13/15 11/15 8/15 7/15 7/15

SR 13/15 13/15 11/15 10/15 9/15

99

Ngoài ra, luận án sử dụng Bảng 4.7 để tổng hợp số lượng các bài toán mà kết quả thực nghiệm các thuật toán nói trên đã được xếp hạng cao nhất. Theo đó, CrowdingDEAL xếp hạng nhất đối với 13, 11, 8, 7 và 7 bài toán trong tổng thể 15 bài toán tương ứng với 5 độ chính xác là (cid:15) = 10−i (i = 1, 2, . . . , 5), như vậy giá trị trung bình thống kê này sẽ là (13 + 11 + 8 + 7 + 7)/5 = 46/5 = 9.2. Trong khi đó CrowdingDE xếp hạng nhất đối với 7, 8, 8, 8 và 8 bài toán, đạt giá trị trung bình thống kê là (7 + 8 + 8 + 8 + 8)/5 = 39/5 = 7.8, và CDE xếp hạng nhất đối với 9, 6, 4, 2 và 3 bài toán, đạt giá trị trung bình thống kê là (9 + 6 + 4 + 2 + 3)/5 = 24/5 = 4.8.

Từ tất cả các phân tích và số liệu thống kê ở trên, có thể khẳng định một cách rõ ràng thuật toán CrowdingDEAL có hiệu quả tốt hơn các thuật toán CrowdingDE và CDE.

Xem xét hành vi của CrowdingDEAL khi giải quyết một số bài toán cụ thể, tác giả tiến hành phân tích, so sánh kết quả thực nghiệm của 2 thuật toán CrowdingDEAL, CDE và nhận thấy:

• Đối với bài toán F6(2D): CrowdingDEAL xác định được toàn bộ 18 phương án tối ưu toàn cục của bài toán một cách nhanh hơn so với CDE. Với độ chính xác (cid:15) = 1.0E − 01, CrowdingDEAL hoàn thành nhiệm vụ ở thế hệ thứ 50 trong khi đó CDE hoàn thành ở thế hệ thứ 120. Tương tự với các độ chính xác khác. Với độ chính xác (cid:15) = 1.0E − 05 là độ chính xác cao nhất thì cả hai thuật toán CrowdingDEAL và CDE đều không xác định được phương án tối ưu nào (xem Hình 4.6)

• Đối với bài toán F7(3D): Tốc độ xác định các phương án tối ưu toàn cục của CrowdingDEAL dường như nhanh hơn CDE (xem Hình 4.7). Tuy nhiên các kết quả từ hình vẽ cũng cho thấy cả CDE và Crowd- ingDEAL đều có thể mất đi các phương án tối ưu toàn cục đã tìm thấy ở các thế hệ trước. Nguyên nhân này được xác định là do việc tìm kiếm và thay thế các phương án tương tự có thể làm cho các phương án tiềm năng bị loại bỏ. Vấn đề này sẽ được quan tâm khắc phục trong các nghiên cứu sau.

(a) CDE

(b) CrowdingDEAL

Hình 4.6: Giá trị tối ưu trung bình của hàm F6(2D) (18 global optima)

100

(a) CDE

(b) CrowdingDEAL

Hình 4.7: Giá trị tối ưu trung bình của hàm F7(3D) (216 global optima)

4.6.4. Thực nghiệm 3: Hiệu quả của SpeciesDEAL

Trong phần này, thuật toán SpeciesDEAL được thực nghiệm với 04 tùy chọn khác nhau về các bước nhảy định hướng, luận án tạm ký hiệu tương ứng là SpeciesDEAL_Op1, SpeciesDEAL_Op2, SpeciesDEAL_Op3 và SpeciesDEAL_Op4. Sau N R = 50 lần chạy độc lập, các kết quả thực nghiệm được ghi lại và tính toán theo hai độ đo PR và SR. Luận án sử dụng 04 bảng từ Bảng 4.8 đến Bảng 4.11 để biểu diễn kết quả tính toán đối với tất cả các bài toán. Những kết quả được xếp hạng tốt nhất theo các tiêu chí về mỗi độ đo được bôi đậm.

Các kết quả thống kê cho thấy dường như SpeciesDEAL làm việc hiệu quả với tùy chọn SpeciesDEAL_Op4. Tuy nhiên khi phân tích cụ thể các số liệu của tất cả các tùy chọn, tác giả có một số nhận xét sau:

• Đối với độ đo PR thì SpeciesDEAL_Op4 đứng thứ nhất trong 10 bài toán F1(1D), F2(1D), F3(1D), F4(2D), F5(2D), F7(2D), F8(2D), F9(2D), F10(2D), F11(2D). Đặc biệt với 6 bài toán (F2, F3, F4, F5, F8 và F9), SpeciesDEAL_Op4 xác định được tất cả các phương án tối ưu toàn cục trong tất cả các lần chạy và với cả 5 độ chính xác khác nhau.

• Đối với các bài toán tối ưu đa cực trị đơn giản, có số chiều cố định (not scalable) (F1 - F5): SpeciesDEAL tỏ ra thực sự hiệu quả với tất cả các tùy chọn, tất cả các độ đo PR và SR đều đạt giá trị từ 0.990 đến 1.000 ở tất cả các độ chính xác.

• Đối với các bài toán tối ưu đa cực trị có số chiều biến động (scalable)

101

Bảng 4.8: Kết quả thực nghiệm của SpeciesDEAL_Op1

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 0.990 0.990 0.990 0.990 0.990

SR 0.980 0.980 0.980 0.980 0.980

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.984 0.984 0.984 0.984 0.000

SR 0.820 0.820 0.820 0.820 0.000

PR 0.472 0.471 0.469 0.467 0.465

SR 0.000 0.000 0.000 0.000 0.000

PR 0.974 0.672 0.620 0.599 0.585

SR 0.940 0.000 0.000 0.000 0.000

PR 0.967 0.262 0.230 0.217 0.212

SR 0.900 0.000 0.000 0.000 0.000

PR 0.972 0.967 0.967 0.967 0.967

SR 0.840 0.800 0.800 0.800 0.800

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 0.983 0.980 0.980 0.980

SR 1.000 0.900 0.880 0.880 0.880

PR 0.878 0.878 0.878 0.873 0.870

SR 0.060 0.060 0.060 0.060 0.060

PR 1.000 0.720 0.720 0.720 0.720

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.667 0.667 0.667 0.667

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.627 0.627 0.627 0.627

SR 1.000 0.000 0.000 0.000 0.000

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 0.160 0.027 0.023 0.023 0.023

SR 0.160 0.000 0.000 0.000 0.000

PR 1.000 0.550 0.550 0.548 0.548

SR 1.000 0.000 0.000 0.000 0.000

PR 0.968 0.388 0.385 0.385 0.385

SR 0.960 0.000 0.000 0.000 0.000

PR 0.037 0.020 0.020 0.020 0.020

SR 0.020 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

Bảng 4.9: Kết quả thực nghiệm của SpeciesDEAL_Op2

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 0.990 0.990 0.990 0.990 0.990

SR 0.980 0.980 0.980 0.980 0.980

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 0.995 0.995

SR 1.000 1.000 1.000 0.980 0.980

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.951 0.951 0.950 0.950 0.000

SR 0.520 0.520 0.520 0.520 0.000

PR 0.297 0.293 0.290 0.286 0.283

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.824 0.743 0.689 0.662

SR 1.000 0.040 0.000 0.000 0.000

PR 1.000 0.369 0.289 0.252 0.233

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 0.997 0.997 0.997 0.997

SR 1.000 0.980 0.980 0.980 0.980

PR 0.870 0.870 0.863 0.860 0.860

SR 0.020 0.020 0.020 0.020 0.020

PR 1.000 0.803 0.777 0.767 0.760

SR 1.000 0.160 0.080 0.040 0.040

PR 1.000 0.690 0.687 0.687 0.687

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.573 0.563 0.557 0.543

SR 1.000 0.000 0.000 0.000 0.000

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.748 0.748 0.748 0.745

SR 1.000 0.000 0.000 0.000 0.000

PR 0.990 0.390 0.383 0.350 0.333

SR 0.960 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

102

Bảng 4.10: Kết quả thực nghiệm của SpeciesDEAL_Op3

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 0.960 0.960 0.960 0.960 0.960

SR 0.920 0.920 0.920 0.920 0.920

PR 1.000 1.000 1.000 1.000 0.996

SR 1.000 1.000 1.000 1.000 0.980

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.992 0.992 0.992 0.992 0.000

SR 0.900 0.900 0.900 0.900 0.000

PR 0.480 0.478 0.477 0.476 0.474

SR 0.000 0.000 0.000 0.000 0.000

PR 0.992 0.707 0.656 0.633 0.622

SR 0.980 0.000 0.000 0.000 0.000

PR 0.990 0.295 0.259 0.243 0.237

SR 0.980 0.000 0.000 0.000 0.000

PR 0.980 0.975 0.975 0.975 0.972

SR 0.860 0.820 0.820 0.820 0.800

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 0.973 0.970 0.970 0.970

SR 1.000 0.840 0.820 0.820 0.820

PR 0.900 0.885 0.883 0.880 0.880

SR 0.260 0.160 0.160 0.160 0.160

PR 1.000 0.690 0.687 0.687 0.687

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.667 0.667 0.667 0.667

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.643 0.643 0.643 0.643

SR 1.000 0.000 0.000 0.000 0.000

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 0.180 0.027 0.027 0.027 0.027

SR 0.180 0.000 0.000 0.000 0.000

PR 1.000 0.533 0.533 0.530 0.530

SR 1.000 0.000 0.000 0.000 0.000

PR 0.975 0.390 0.385 0.385 0.383

SR 0.960 0.000 0.000 0.000 0.000

PR 0.027 0.027 0.027 0.027 0.027

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

Bảng 4.11: Kết quả thực nghiệm của SpeciesDEAL_Op4

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 0.990 0.990 0.990 0.990 0.990

SR 0.980 0.980 0.980 0.980 0.980

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.928 0.924 0.922 0.920 0.000

SR 0.520 0.460 0.440 0.420 0.000

PR 0.299 0.297 0.294 0.292 0.291

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.857 0.762 0.706 0.682

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.383 0.303 0.265 0.248

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.895 0.893 0.893 0.893 0.890

SR 0.160 0.140 0.140 0.140 0.140

PR 1.000 0.807 0.787 0.780 0.777

SR 1.000 0.160 0.100 0.100 0.100

PR 1.000 0.673 0.670 0.670 0.670

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.563 0.553 0.547 0.537

SR 1.000 0.000 0.000 0.000 0.000

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05 Accuracy level (cid:15) 1.0E-01 1.0E-02 1.0E-03 1.0E-04 1.0E-05

PR 0.000 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.745 0.743 0.740 0.740

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.433 0.425 0.418 0.410

SR 1.000 0.000 0.000 0.000 0.000

PR 0.023 0.007 0.007 0.007 0.000

SR 0.020 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

103

(F6 - F12): SpeciesDEAL đạt hiệu quả tốt đối với bài toán F8 (ở độ chính xác cao nhất (cid:15) = 1.0E − 05, độ đo PR và SR đạt giá trị bé nhất bằng 0.967 và 0.800 với tùy chọn 1). Với các độ chính xác thấp hơn ((cid:15) = 1.0E − 01, 1.0E − 02, 1.0E − 03, 1.0E − 0.4), các bài toán F6(2D) và F7(2D) đạt hiệu quả tương đối, các độ đo đều đạt giá trị trên trung bình (độ đo PR đạt giá trị bé nhất là 0.599 với Op1). Các bài toán F6(3D) và F7(3D) kết quả thu được là tương đối kém hơn. Đặc biệt đối với bài toán F6(3D), kết quả là tương đối khi thực nghiệm với độ chính xác thấp (độ đo PR bé nhất bằng 0.920 với phiên bản 2 và tùy chọn 4), nhưng với độ chính xác cao nhất ((cid:15) = 1.0E − 05), SpeciesDEAL không thể xác định được bất kỳ một phương án tối ưu toàn cục nào ở tất cả các tùy chọn.

• Đối với các bài toán tối ưu phức tạp, non-symmetric (F9 to F12): SpeciesDEAL có hiệu quả tương đối với các bài toán có số chiều thấp (2D, 3D, 5D), còn đối với các bài toán nhiều chiều hơn (10D, 20D) thì SpeciesDEAL có hiệu quả thấp. Với bài toán F12(20D), SpeciesDEAL không xác định được bất kỳ một giá trị tối ưu toàn cục nào trong tất cả các tùy chọn.

(a) F7

(b) F13

Hình 4.8: Giá trị tối ưu trung bình của SpeciesDEAL khi điều chỉnh rs

Trong thuật toán SpeciesDEAL, việc xác định các loài và hạt giống loài từ quần thể hiện tại được thực hiện dựa vào tham số bán kính của loài (rs). Để đánh giá mức độ ảnh hưởng của tham số rs, tác giả lựa chọn thực nghiệm 02 bài toán F7(2D) và F13(2D) với các giá trị rs biến thiên trong miền xác định của mỗi bài toán. Giá trị trung bình độ đo PR của 50 lần chạy độc lập của thuật toán SpeciesDEAL được biểu diễn trong Hình 4.8.

104

Kết quả từ Hình 4.8 cho thấy rõ sự ảnh hưởng của tham số rs. Đối với

bài toán F7(2D) khi rs tăng dần trong khoảng [0, 1] thì giá trị PR thu được tăng dần, giá trị PR cao nhất ứng với độ chính xác (cid:15) = 1.0E − 05 là 0.682 đạt được tại rs = 0.5. Sau đó giá trị PR sẽ giảm dần. Điều này phản ánh một thực tế rằng khoảng cách giữa các phương án tối ưu toàn cục đã biết trước của bài toán F7(2D) là lớn hơn 0.5.

Bảng 4.12: So sánh độ đo PR của SpeciesDEAL và các thuật toán khác

SpeciesDE Rank

SpeciesDEAL Rank

1.000 1.000 1.000 0.965 1.000 0.000 0.098 0.329 0.080 0.923 0.957 0.838 0.750 0.633 0.530 0.270 0.495 0.288 0.167 0.000

1 1 1 2 1 1 2 2 2 2 2 2 2 2 2 1 2 2 1 1

0.990 1.000 1.000 1.000 1.000 0.000 0.291 0.682 0.248 1.000 1.000 0.890 0.777 0.670 0.537 0.000 0.710 0.410 0.000 0.000

2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1

id Func 1 F1 (1D) 2 F2(1D) 3 F3(1D) 4 F4(2D) 5 F5(2D) 6 F6(2D) 7 F6(3D) 8 F7(2D) F7(3D) 9 10 F8(2D) 11 F9(2D) 12 F10(2D) 13 F11(2D) 14 F11(3D) 15 F11(5D) 16 F11(10D) 17 F12(3D) 18 F12(5D) 19 F12(10D) 20 F12(20D)

Để đánh giá SpeciesDEAL, tác giả thực hiện lại thuật toán SpeciesDE của Xiadong Li với các thông tin được công bố trên [53, 51]. Các điều kiện thực nghiệm SpeciesDE tuân thủ sự khuyến cáo của Xiaodong Li trong [53, 51] và cũng phù hợp với SpeciesDEAL. Kết quả thực nghiệm với (cid:15) = 1.0E − 05 của tất cả các bài toán được ghi nhận, tính toán theo độ đo PR và thể hiện trong Hình 4.12.

105

Các số liệu trong Bảng 4.12 cho thấy SpeciesDEAL có 17 bài toán xếp hạng nhất, 3 bài toán xếp hạng nhì, đạt giá trị trung bình xếp hạng là (17 × 1 + 3 × 2)/20 = 23/20 = 1.15. Trong khi đó giá trị tương ứng của SpeciesDE là 8, 12 và 1.60. Bởi vậy có thể nói rằng trong sự kết hợp với kỹ thuật Species-based, thuật toán DEAL có kết quả thực nghiệm tốt hơn thuật toán DE.

4.6.5. Thực nghiệm 4: Hiệu quả của NBCDEAL

Bảng 4.13: Kết quả thực nghiệm của NBCDEAL_Op1

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.991 0.990 0.990 0.990 0.000

SR 0.860 0.840 0.840 0.840 0.000

PR 0.375 0.369 0.366 0.362 0.645

SR 0.000 0.000 0.000 0.000 0.000

PR 0.999 0.691 0.674 0.659 0.358

SR 0.980 0.000 0.000 0.000 0.000

PR 0.999 0.394 0.324 0.291 0.271

SR 0.880 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.885 0.885 0.885 0.885 0.885

SR 0.160 0.160 0.160 0.160 0.160

PR 0.983 0.953 0.940 0.940 0.940

SR 0.900 0.720 0.640 0.640 0.640

PR 0.970 0.700 0.697 0.697 0.697

SR 0.840 0.000 0.000 0.000 0.000

PR 0.967 0.667 0.667 0.667 0.667

SR 0.840 0.000 0.000 0.000 0.000

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05

PR 0.983 0.500 0.500 0.490 0.487

SR 0.920 0.000 0.000 0.000 0.000

PR 0.995 0.725 0.725 0.725 0.725

SR 0.960 0.000 0.000 0.000 0.000

PR 0.983 0.460 0.458 0.455 0.455

SR 0.900 0.000 0.000 0.000 0.000

PR 0.213 0.197 0.193 0.193 0.193

SR 0.020 0.000 0.000 0.000 0.000

F12(20D) SR 0.020 0.000 0.000 0.000 0.000

PR 0.178 0.073 0.070 0.070 0.063

Tương tự như SpeciesDEAL, 04 tùy chọn về bước nhảy định hướng của NBCDEAL bao gồm NBCDEAL_Op1, NBCDEAL_Op2, NBCDEAL_Op3 và NBCDEAL_Op4 được thực nghiệm. Các kết quả của 50 lần chạy độc lập được tổng hợp và trình bày trong các bảng từ Bảng 4.13 đến Bảng 4.16. Các kết quả xếp hạng cao nhất theo các độ đo được bôi đậm.

Kết quả thống kê từ các bảng trên cho thấy:

• Với độ chính xác thấp nhất ((cid:15) = 1.0E − 01): NBCDEAL_Op1 có 12 bài toán xếp hạng nhất, 1 bài toán xếp hạng 2, 3 bài toán xếp hạng 3 và 4 bài toán xếp hạng 4 đạt giá trị trung bình xếp hạng là (12 × 1 + 1 × 2 + 3 × 3 + 4 × 4)/20 = 1.95. Các số liệu tương ứng của NBCDEAL_Op2 là 14, 2, 3, 1 với giá trị trung bình xếp hạng 1.55, của NBCDEAL_Op3 là 8, 4, 6, 2 và 2.10, của NBCDEAL_Op4 là 9, 5, 2, 4 và 2.05. Như vậy với độ chính xác này NBCDEAL_Op2 có kết quả xếp hạng tốt nhất. Tuy nhiên ở đây, kết quả thống kê không phản ánh chính xác hiệu suất của thuật toán bởi vì NBCDEAL có thể đã xác định được nhiều hơn 1 phương án tối ưu gần đúng với phương án tối ưu cho trước của bài toán.

106

Bảng 4.14: Kết quả thực nghiệm của NBCDEAL_Op2

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

SR 1.000 0.000 0.000 0.000 0.000

PR 1.000 0.478 0.390 0.296 0.203

SR 0.920 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 0.996 0.984 0.970 0.000

SR 1.000 0.920 0.740 0.540 0.000

PR 0.500 0.420 0.351 0.301 0.273

SR 0.000 0.000 0.000 0.000 0.000

PR 1.000 0.700 0.675 0.626 0.554

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

SR 0.560 0.160 0.120 0.120 0.120

PR 0.973 0.707 0.703 0.700 0.700

SR 0.880 0.000 0.000 0.000 0.000

PR 0.997 0.667 0.667 0.667 0.667

SR 0.980 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.898 0.883 0.878 0.875 0.875

SR 0.180 0.080 0.040 0.040 0.040

PR 0.913 0.833 0.813 0.803 0.803

F11(10D)

F12(3D)

F12(5D)

F12(10D)

SR 0.800 0.000 0.000 0.000 0.000

PR 0.017 0.007 0.007 0.003 0.000

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05

PR 0.130 0.013 0.013 0.010 0.003

SR 0.080 0.000 0.000 0.000 0.000

PR 0.998 0.738 0.728 0.723 0.715

SR 0.980 0.000 0.000 0.000 0.000

PR 0.955 0.340 0.325 0.310 0.290

Bảng 4.15: Kết quả thực nghiệm của NBCDEAL_Op3

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

SR 0.960 0.000 0.000 0.000 0.000

PR 0.999 0.390 0.318 0.286 0.267

SR 0.840 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.994 0.994 0.994 0.993 0.000

SR 0.920 0.920 0.900 0.900 0.000

PR 0.378 0.373 0.369 0.366 0.363

SR 0.000 0.000 0.000 0.000 0.000

PR 0.999 0.691 0.680 0.666 0.645

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

SR 0.740 0.520 0.440 0.440 0.440

PR 0.953 0.703 0.703 0.703 0.703

SR 0.740 0.000 0.000 0.000 0.000

PR 0.973 0.667 0.667 0.667 0.667

SR 0.840 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.890 0.890 0.885 0.880 0.878

SR 0.180 0.180 0.180 0.140 0.120

PR 0.953 0.903 0.890 0.890 0.890

F11(10D)

F12(3D)

F12(50D)

F12(10D)

SR 0.700 0.000 0.000 0.000 0.000

PR 0.210 0.207 0.207 0.203 0.203

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.165 0.070 0.070 0.068 0.065

Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05

PR 0.980 0.483 0.473 0.473 0.467

SR 0.880 0.000 0.000 0.000 0.000

PR 0.998 0.718 0.715 0.713 0.713

SR 0.980 0.000 0.000 0.000 0.000

PR 0.948 0.478 0.473 0.468 0.468

107

Bảng 4.16: Kết quả thực nghiệm của NBCDEAL_Op4

F1(1D)

F2(1D)

F3(1D)

F4(2D)

F5(2D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 1.000 1.000 1.000 1.000 1.000

F6(2D)

F6(3D)

F7(2D)

F7(3D)

F8(2D)

PR 0.996 0.993 0.993 0.984 0.000

SR 0.920 0.880 0.880 0.720 0.000

PR 0.495 0.437 0.392 0.352 0.331

SR 0.000 0.000 0.000 0.000 0.000

PR 0.999 0.693 0.658 0.620 0.563

SR 0.980 0.000 0.000 0.000 0.000

SR 0.920 0.000 0.000 0.000 0.000

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.999 0.463 0.374 0.286 0.212

F9(2D)

F10(2D)

F11(2D)

F11(3D)

F11(5D)

PR 1.000 1.000 1.000 1.000 1.000

SR 1.000 1.000 1.000 1.000 1.000

PR 0.898 0.888 0.885 0.880 0.878

SR 0.180 0.100 0.080 0.060 0.040

PR 0.950 0.897 0.880 0.877 0.877

SR 0.740 0.480 0.400 0.380 0.380

SR 0.880 0.000 0.000 0.000 0.000

PR 0.980 0.667 0.667 0.667 0.667

SR 0.880 0.000 0.000 0.000 0.000

PR 0.980 0.730 0.723 0.720 0.720

F11(10D)

F12(3D)

F12(5D)

F12(10D)

Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Accuracy level (cid:15) 1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05

PR 0.127 0.003 0.003 0.000 0.000

SR 0.100 0.000 0.000 0.000 0.000

PR 0.993 0.735 0.730 0.728 0.725

SR 0.940 0.000 0.000 0.000 0.000

PR 0.908 0.343 0.328 0.315 0.308

SR 0.560 0.000 0.000 0.000 0.000

SR 0.000 0.000 0.000 0.000 0.000

F12(20D) SR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

PR 0.000 0.000 0.000 0.000 0.000

Bảng 4.17: Tổng hợp xếp hạng theo các tùy chọn của NBCDEAL

Accuracy level (cid:15) N BCDEAL_Op1 N BCDEAL_Op2 N BCDEAL_Op3 N BCDEAL_Op4

1.00E-01 1.00E-02 1.00E-03 1.00E-04 1.00E-05 Average

1.95 1.95 1.75 1.50 1.35 1.70

1.55 1.85 2.20 2.35 2.40 2.07

2.05 1.90 1.85 2.10 1.90 1.96

2.10 1.85 1.50 1.55 1.40 1.68

• Thống kê tương tự với độ chính xác cao hơn ((cid:15) = 1.0E − 02, 1.0E − 03, 1.0E − 04, 1.0E − 05) thu được Bảng 4.17. Các kết quả cho thấy NBCDEAL_Op3 có kết quả xếp hạng tốt nhất với giá trị trung bình là 1.68, NBCDEAL_Op1 đứng thứ 2 với giá trị bé hơn không nhiều (1.70). NBCDEAL_Op2 và NBCDEAL_Op4 có kết quả tương ứng là 2.07 và 1.96. Điều này một lần nữa khẳng định việc lựa chọn ngẫu nhiên các bước nhảy định hướng, đặc biệt là bước nhảy σ1 có hiệu quả tốt đối với thuật toán DEAL và NBCDEAL (xem lại phần 3.4.1).

108

Đánh giá hiệu quả của thuật toán NBCDEAL đối với các đặc điểm riêng biệt của các bài toán tối ưu đa cực trị đã tham gia thực nghiệm, kết quả thống kê cho thấy:

• NBCDEAL làm việc rất tốt đối với lớp các bài toán tối ưu đa cực trị đơn giản, có số chiều cố định (F1 - F5). Ở đây, các tùy chọn của NBCDEAL đều xác định được tất cả các phương án tối ưu trong tất cả các lần chạy độc lập (giá trị của cả 02 độ đo PR và SR đều bằng 1.000).

• NBCDEAL làm việc tốt đối với các bài toán tối ưu đa cực trị mà các phương án tối ưu có phân bố đều trong không gian tìm kiếm (như bài toán F8). Tuy nhiên đối với lớp bài toán mà sự phân bố của các phương án là không đều (như bài toán F6, F7) thì sự khó khăn thấy rõ. Với độ chính xác thấp, NBCDEAL tìm được hầu hết các phương án tối ưu của bài toán F6(2D), F7(2D), F7(3D), nhưng không thể tìm được phương án tối ưu nào của F6(2D) với độ chính xác cao nhất. Cũng với độ chính xác này NBCDEAL chỉ tìm được hơn 50% phương án tối ưu của F7(2D) và hơn 20% phương án tối ưu của F7(3D). Khó khăn tương tự cũng xảy ra với F6(3D).

• Đối với lớp các bài toán tối ưu đa cực trị tổ hợp (composition functions) (như bài toán F9 - F12): NBCDEAL làm việc đặc biết tốt đối với các bài toán F9 khi mọi tùy chọn của NBCDEAL đều xác định được tất cả các phương án tối ưu trong mọi lần chạy. Đối với bài toán F10 NBCDEAL cũng làm việc khá tốt khi giá trị PR bé nhất bằng 0.875 tương ứng với 87,5% các phương án tối ưu đều được xác định. Đối với các bài toán F11 và F12 sự khó khăn tăng lên khi số chiều của bài toán tăng lên. Với F11(2D) giá trị PR lớn nhất đạt được là 0.940 nhưng với F11(10D) thì PR lớn nhất đạt được chỉ là 0.487. Hai giá trị tương ứng này của bài toán F12 là 0.785 và 0.065. (Các giá trị của độ đo PR này chỉ xét trong trường hợp độ chính xác cao nhất (cid:15) = 1.0E − 05).

Trong kỹ thuật phân cụm NBC, tham số φ có ý nghĩa trong việc phân chia các cụm cá thể, nó quyết định số lượng cụm chia được của quần thể hiện thời. Bởi vậy để kiểm tra sự ảnh hưởng của tham số φ, luận án tiến hành thực nghiệm N BCDEAL_Op1 với sự thay đổi giá trị của φ theo bước nhảy 0.1 trong khoảng [1.5, 2.5]. Sự thay đổi giá trị độ đo PR trong trường hợp độ chính xác cao nhất (cid:15) = 1.0E − 05 của một số bài toán được biểu diễn trong Hình 4.9. Sự thay đổi đối với mỗi bài toán là không nhiều, tuy nhiên kết quả thống kê và so sánh trong Bảng 4.18 cho thấy giá trị độ đo PR đã tăng lên đối với 9/20 bài toán (phần chữ đậm trong Bảng 4.18).

109

Để so sánh NBCDEAL với các thuật toán khác, luận án sử dụng kết quả thực nghiệm thuật toán NEA2 (Niching the CMA-ES via Nearest- Better Clustering) của M. Preuss đã đạt hạng nhất trong cuộc thi thiết

(a)

(b)

(c)

(d)

Hình 4.9: Giá trị tối ưu trung bình của NBCDEAL khi điều chỉnh φ

Bảng 4.18: So sánh độ đo PR của NBCDEAL khi điều chỉnh φ

Origin Max

Origin Max

Origin Max

F1(1D) 1,000 1,000 F6(2D) 0.000 0.000 F9(2D) 1,000 1,000

F2(1D) 1,000 1,000 F7(2D) 0,645 0,651 F10(2D) 0,885 0,895

F4(2D) 1,000 1,000 F7(3D) 0,271 0,271 F11(3D) 0,697 0,743

F5(2D) 1,000 1,000 F8(2D) 1,000 1,000 F12(3D) 0,725 0,730

Origin Max

F3(1D) 1,000 1,000 F6(3D) 0,358 0,360 F11(2D) 0,940 0,957 F11(5D) F12(5D) F11(10D) F12(10D) F12(20D) 0,487 0,537

0,455 0,490

0,193 0,250

0,667 0,667

0,063 0,063

110

kế thuật toán năm 2013 (xem [55]) và kết quả thực nghiệm của thuật toán LSEAGP (Localised Search Evolutionary Algorithm using a Gaussian Process) của J.E. Fieldsend đã đạt hạng hai trong cuộc thi năm 2015 (xem [56]). Ở đây tác giả đã không sử dụng kết quả thực nghiệm của thuật toán NMMSO (Niching Migratory Multi-Swarm Optimiser) đã đạt hạng nhất trong CEC’2015 bởi vì NMMSO không phải là một thuật toán tiến

hóa đúng nghĩa (các cá thể trong NMMSO không sinh sản). Số liệu của NBCDEAL là kết quả tốt nhất của NBCDEAL_Op1 khi điều chỉnh tham số φ.

Bảng 4.19: So sánh độ đo PR của NBCDEAL và các thuật toán khác

NEA2 Rank LSEAGP Rank NBCDEAL Rank 1.000 1.000 1.000 0.990 1.000 0.000 0.239 0.911 0.579 0.980 0.960 0.833 0.947 0.800 0.667 0.666 0.713 0.695 0.667 0.350

1.000 1.000 1.000 1.000 1.000 0.000 1.000 1.000 0.556 1.000 0.697 0.755 0.667 0.667 0.667 0.013 0.705 0.412 0.000 0.000

1.000 1.000 1.000 1.000 1.000 0.000 0.360 0.651 0.271 1.000 1.000 0.895 0.957 0.743 0.667 0.537 0.730 0.490 0.250 0.063

1 1 1 1 1 1 2 3 3 1 1 1 1 2 1 2 1 2 2 2

1 1 1 1 1 1 1 1 2 1 3 3 3 3 1 3 3 3 3 3

1 1 1 3 1 1 3 2 1 3 2 2 2 1 1 1 2 1 1 1

id Func F1(1D) 1 F2(1D) 2 F3(1D) 3 F4(2D) 4 F5(2D) 5 F6(2D) 6 F6(3D) 8 F7(2D) 7 9 F7(3D) 10 F8(2D) 11 F9(2D) 12 F10(2D) 13 F11(2D) 14 F11(3D) 16 F11(5D) 18 F11(10D) 15 F12(3D) 17 F12(5D) 19 F12(10D) 20 F12(20D)

Để so sánh với các thuật toán khác, luận án sử dụng kết quả khi thực nghiệm với độ chính xác cao nhất (cid:15) = 1.0E − 05. Số liệu tính toán độ đo PR và kết quả so sánh được trình bày trong Bảng 4.19.

Tổng hợp kết quả từ Bảng 4.19 cho thấy NEA2 có 12 bài toán xếp hạng nhất, 5 bài toán xếp hạng nhì và 3 bài toán xếp hạng ba, đạt giá trị trung bình là (12 × 1 + 5 × 2 + 3 × 3)/20 = 31/20 = 1.55. LSEAGP có 10 bài toán xếp hạng nhất, 1 bài toán xếp hạng nhì và 9 bài toán xếp hạng ba, đạt giá trị trung bình xếp hạng là 1.95. NBCDEAL cũng có 12 bài toán xếp hạng nhất, nhưng có 6 bài toán xếp hạng nhì và 2 bài toán xếp hạng ba, giá trị trung bình xếp hạng của NBCDEAL đạt 1.50. Bởi vậy có thể nói rằng NBCDEAL có kết quả thực nghiệm tốt hơn NEA2 và LSEAGP.

4.6.6. So sánh các thuật toán đã đề xuât

111

Trong phần này, 04 thuật toán tiến hóa đã được đánh giá cao trong thời gian gần đây, được sử dụng để so sánh với các thuật toán do luận án đề xuất. Các thuật toán được lựa chọn bao gồm:

• NEA2 - Niching the CMA-ES via Nearest-Better Clustering

• dADE/nrand/1 - A Dynamic Archive Niching Differential Evolution

algorithm for Multimodal Optimization

• LSEAGP - Localised Search Evolutionary Algorithm using a Gaussian

Process

• LSEAEA - Localised Search Evolutionary Algorithm using an Evolu-

tionary Algorithm

Bảng 4.20: Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 01 của các thuật toán

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL 1.000 1.000 1.000 1.000 1.000 1.000 0.837 1.000 1.000 0.985 0.893 0.998 0.743 0.923 0.873 0.683 1.000 0.938 0.420 0.030

1.000 1.000 1.000 1.000 1.000 0.998 1.000 1.000 1.000 1.000 0.880 0.895 0.673 0.670 0.667 0.477 0.708 0.422 0.203 0.000

1.000 1.000 1.000 1.000 1.000 0.248 0.004 1.000 0.938 0.102 1.000 0.125 0.417 0.917 0.560 0.940 1.000 0.155 0.167 1.000

1.000 1.000 1.000 1.000 1.000 0.999 0.919 1.000 0.495 1.000 0.937 0.328 0.620 0.823 0.623 1.000 0.935 0.653 0.130 1.000

1.000 1.000 1.000 1.000 1.000 0.996 0.906 1.000 1.000 1.000 1.000 0.998 0.957 0.670 0.673 0.520 0.615 0.350 0.123 0.000

0.990 1.000 1.000 1.000 1.000 0.928 0.299 1.000 1.000 1.000 1.000 0.895 1.000 1.000 1.000 0.000 1.000 1.000 0.023 0.000

1.000 1.000 1.000 1.000 1.000 0.963 0.241 0.946 0.622 1.000 0.980 0.853 0.977 0.830 0.667 0.667 0.743 0.695 0.667 0.363

1.000 1.000 1.000 1.000 1.000 0.998 0.380 0.999 0.999 1.000 1.000 0.900 0.983 0.990 0.967 0.977 0.988 0.975 0.307 0.178

Func F1(1D) F2(1D) F3(1D) F4(2D) F5(2D) F6(2D) F6(3D) F7(2D) F7(3D) F8(2D) F9(2D) F10(2D) F11(2D) F11(3D) F11(5D) F11(10D) F12(3D) F12(5D) F12(10D) F12(20D)

Ghi chú: dADE - dADE/nrand/1, ShDEAL - SharingDEAL, CrDEAL - CrowdingDEAL, SpDEAL - SpeciesDEAL, NDEAL - NBCDEAL.

Kết quả độ đo PR các thực nghiệm của các tất cả thuật toán với 5 mức độ chính xác khác nhau được thống kê trong các bảng từ Bảng 4.20 đến Bảng 4.24.

Thực hiện kiểm định Friedman giá trị trung bình độ đo PR trong toàn

bộ cả 5 trường hợp mức độ chính xác, các số liệu thu được ở Bảng 4.25.

112

Từ Bảng 4.25, giá trị Asymp.Sig = 9.46E − 32 < 0.05. Bởi vậy, có đủ cơ sở để khẳng định có sự khác biệt về độ đo PR của các thuật toán ở mức ý nghĩa 5%. Tiến hành xếp hạng các thuật toán theo trung bình thứ hạng theo kiểm định Friedman ta có kết quả so sánh ở Bảng 4.26.

Bảng 4.21: Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 02 của các thuật toán

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL 1.000 1.000 1.000 1.000 1.000 1.000 0.595 0.962 1.000 0.978 0.667 0.887 0.667 0.667 0.667 0.660 0.620 0.472 0.143 0.000

1.000 1.000 1.000 1.000 1.000 0.998 1.000 1.000 0.777 1.000 0.803 0.865 0.667 0.667 0.667 0.443 0.708 0.417 0.117 0.000

1.000 1.000 1.000 1.000 1.000 0.996 0.375 0.686 0.394 1.000 1.000 0.898 0.967 0.747 0.667 0.557 0.730 0.500 0.260 0.073

1.000 1.000 1.000 0.885 1.000 0.943 0.685 0.884 0.468 1.000 0.467 0.100 0.323 0.253 0.120 0.167 0.330 0.143 0.010 0.080

1.000 1.000 1.000 1.000 1.000 0.996 0.900 1.000 1.000 1.000 1.000 0.998 0.763 0.667 0.663 0.500 0.615 0.345 0.097 0.000

1.000 1.000 1.000 1.000 1.000 0.963 0.241 0.925 0.595 1.000 0.967 0.850 0.970 0.817 0.667 0.667 0.723 0.695 0.667 0.360

1.000 1.000 1.000 1.000 1.000 0.098 0.000 0.325 0.091 0.083 0.167 0.125 0.167 0.167 0.093 0.157 0.125 0.123 0.167 0.125

0.990 1.000 1.000 1.000 1.000 0.924 0.297 0.857 0.383 1.000 1.000 0.893 0.807 0.673 0.563 0.000 0.725 0.433 0.007 0.000

Func F1(1D) F2(1D) F3(1D) F4(2D) F5(2D) F6(2D) F6(3D) F7(2D) F7(3D) F8(2D) F9(2D) F10(2D) F11(2D) F11(3D) F11(5D) F11(10D) F12(3D) F12(5D) F12(10D) F12(20D)

Bảng 4.22: Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 03 của các thuật toán

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL 1.000 1.000 1.000 1.000 1.000 1.000 0.545 0.892 1.000 0.981 0.667 0.745 0.667 0.667 0.667 0.630 0.615 0.417 0.063 0.002

1.000 1.000 1.000 1.000 1.000 0.997 1.000 1.000 0.744 1.000 0.743 0.830 0.667 0.667 0.667 0.330 0.708 0.415 0.040 0.000

1.000 1.000 1.000 1.000 1.000 0.996 0.893 1.000 1.000 1.000 0.853 0.877 0.667 0.667 0.663 0.460 0.615 0.345 0.073 0.000

1.000 1.000 1.000 0.305 1.000 0.740 0.378 0.884 0.468 1.000 0.200 0.045 0.167 0.083 0.020 0.163 0.275 0.115 0.000 0.003

1.000 1.000 1.000 1.000 1.000 0.958 0.240 0.918 0.584 1.000 0.967 0.843 0.960 0.810 0.667 0.667 0.720 0.695 0.667 0.360

0.990 1.000 1.000 1.000 1.000 0.922 0.294 0.762 0.303 1.000 1.000 0.893 0.787 0.670 0.553 0.000 0.718 0.425 0.007 0.000

1.000 1.000 1.000 1.000 1.000 0.993 0.368 0.677 0.324 1.000 1.000 0.895 0.957 0.743 0.667 0.543 0.730 0.493 0.260 0.070

1.000 1.000 1.000 0.400 1.000 0.052 0.000 0.071 0.008 0.083 0.167 0.125 0.167 0.167 0.093 0.157 0.125 0.123 0.167 0.125

Func F1(1D) F2(1D) F3(1D) F4(2D) F5(2D) F6(2D) F6(3D) F7(2D) F7(3D) F8(2D) F9(2D) F10(2D) F11(2D) F11(3D) F11(5D) F11(10D) F12(3D) F12(5D) F12(10D) F12(20D)

113

Kết quả của Bảng 4.26 cho thấy thuật toán NBCDEAL đạt thứ hạng tốt nhất, thuật toán NEA2 đạt hạng nhì và dADE/nrand/1 đạt hạng ba.

Bảng 4.23: Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 04 của các thuật toán

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL 1.000 1.000 1.000 1.000 1.000 0.984 0.431 0.823 1.000 0.967 0.667 0.740 0.667 0.667 0.667 0.633 0.627 0.403 0.018 0.005

1.000 1.000 1.000 1.000 1.000 0.996 1.000 1.000 0.668 1.000 0.710 0.767 0.667 0.667 0.667 0.087 0.708 0.412 0.003 0.000

1.000 1.000 1.000 0.235 0.990 0.001 0.000 0.032 0.005 0.083 0.167 0.125 0.167 0.167 0.093 0.157 0.125 0.123 0.167 0.125

1.000 1.000 1.000 1.000 1.000 0.993 0.886 1.000 1.000 1.000 0.697 0.772 0.667 0.667 0.663 0.383 0.610 0.333 0.057 0.000

1.000 1.000 1.000 1.000 1.000 0.950 0.240 0.914 0.581 0.988 0.960 0.840 0.957 0.807 0.667 0.667 0.718 0.695 0.667 0.360

1.000 1.000 1.000 0.085 1.000 0.179 0.184 0.871 0.465 1.000 0.077 0.015 0.067 0.043 0.003 0.113 0.235 0.070 0.000 0.000

0.990 1.000 1.000 1.000 1.000 0.920 0.292 0.706 0.265 1.000 1.000 0.893 0.780 0.670 0.547 0.000 0.713 0.418 0.007 0.000

1.000 1.000 1.000 1.000 1.000 0.993 0.366 0.663 0.291 1.000 1.000 0.895 0.957 0.743 0.667 0.540 0.730 0.493 0.253 0.070

Func F1(1D) F2(1D) F3(1D) F4(2D) F5(2D) F6(2D) F6(3D) F7(2D) F7(3D) F8(2D) F9(2D) F10(2D) F11(2D) F11(3D) F11(5D) F11(10D) F12(3D) F12(5D) F12(10D) F12(20D)

Bảng 4.24: Giá trị độ đo PR ở độ chính xác (cid:15) = 1.0E − 05 của các thuật toán

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL 1.000 1.000 1.000 1.000 1.000 0.000 0.356 0.732 1.000 0.947 0.667 0.728 0.667 0.667 0.667 0.627 0.620 0.410 0.000 0.000

1.000 1.000 1.000 1.000 1.000 0.000 1.000 1.000 0.556 1.000 0.697 0.755 0.667 0.667 0.667 0.013 0.705 0.412 0.000 0.000

1.000 1.000 1.000 1.000 1.000 0.000 0.879 1.000 1.000 1.000 0.670 0.750 0.667 0.667 0.663 0.300 0.610 0.333 0.040 0.000

1.000 0.556 1.000 0.060 0.460 0.000 0.000 0.024 0.001 0.083 0.167 0.125 0.167 0.167 0.093 0.157 0.125 0.123 0.167 0.125

1.000 1.000 1.000 1.000 1.000 0.000 0.360 0.651 0.271 1.000 1.000 0.895 0.957 0.743 0.667 0.537 0.730 0.490 0.250 0.063

0.990 1.000 1.000 1.000 1.000 0.000 0.291 0.682 0.248 1.000 1.000 0.890 0.777 0.670 0.537 0.000 0.710 0.410 0.000 0.000

1.000 1.000 1.000 0.020 0.920 0.000 0.063 0.803 0.454 0.998 0.023 0.000 0.027 0.020 0.000 0.020 0.168 0.030 0.000 0.000

1.000 1.000 1.000 0.990 1.000 0.000 0.239 0.911 0.579 0.980 0.960 0.833 0.947 0.800 0.667 0.666 0.713 0.695 0.667 0.350

Func F1(1D) F2(1D) F3(1D) F4(2D) F5(2D) F6(2D) F6(3D) F7(2D) F7(3D) F8(2D) F9(2D) F10(2D) F11(2D) F11(3D) F11(5D) F11(10D) F12(3D) F12(5D) F12(10D) F12(20D)

114

Các thuật toán SpeciesDEAL, CrowdingDEAL và SharingDEAL đạt thứ hạng kém nhất.

Bảng 4.25: Kiểm định Friedman của các thuật toán

N Mean

Descriptive Statistics Max Min Std.

100 dADE NEA2 100 LSEAGP 100 LSEAEA 100 100 ShDEAL 100 CrDEAL 100 SpDEAL 100 NDEAL

0.7425 0.7939 0.7302 0.7477 0.3698 0.5012 0.6842 0.7549

0.3030 0.2333 0.3268 0.3236 0.3927 0.4178 0.3738 0.3020

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Percentiles 50th 0.8300 0.8515 0.7900 0.9030 0.1670 0.4595 0.8915 0.9570

75th 1.0000 1.0000 1.0000 1.0000 0.9395 1.0000 1.0000 1.0000

25th 0.6308 0.6670 0.6670 0.6150 0.0990 0.0778 0.3898 0.5378

Test Statistics 100 162.520 7 9.46E-32

N Chi-Square df Asymp. Sig.

Bảng 4.26: Thứ hạng của các thuật toán theo kiểm định Friedman

Mean Rank Rank

dADE NEA2 LSEAGP LSEAEA ShDEAL CrDEAL SpDEAL NDEAL

4.84 5.52 4.80 4.83 2.82 3.19 4.33 5.69

3 2 5 4 8 7 6 1

Ngoài kiểm định Friedman Test, luận án thực hiện bổ sung kiểm định Wilcoxon nhằm xác định sự khác biệt giữa các cặp thuật toán NBCDEAL với dADE/nrand/1, NBCDEAL với NEA2, NBCDEAL với LSEAGP và NBCDEAL với LSEAEA. Kết quả kiểm định Wilcoxon được biểu diễn trong Bảng 4.27.

115

Kết quả từ Bảng 4.27 cho thấy có thể khẳng định sự khác nhau giữa các cặp thuật toán dADE/nrand/1 và NBCDEAL, LSEAGP và NBCDEAL do các giá trị Asymp.Sig tương ứng là 0.031 < 0.05 và 0.036 < 0.05. Tuy nhiên các giá trị Asymp.Sig = 0.074 > 0.05 của cặp NEA2 và NBCDEAL và Asymp.Sig = 0.071 > 0.05 của cặp LSEAEA và NBCDEAL cho thấy chưa đủ cơ sở thống kê với mức ý nghĩa 5% để khẳng định sự khác nhau giữa các thuật toán này.

Bảng 4.27: Kiểm định Wilcoxon của các thuật toán

dADE - NDEAL

35.00 36.46

Sum of Ranks 1610.00 875.00

NEA2 - NDEAL

24.37 44.53

853.00 1425.00

Negative Ranks Positive Ranks Ties Total Negative Ranks Positive Ranks Ties Total

29.41 40.39

1353.00 727.00

LSEAGP - NDEAL Negative Ranks Positive Ranks Ties Total

28.70 44.22

1349.00 796.00

LSEAEA - NDEAL Negative Ranks Positive Ranks Ties Total

N Mean Rank 46 24 30 100 35 32 33 100 46 18 36 100 47 18 35 100

Test Statistics

dADE-NDEAL NEA2-NDEAL LSEAGP-NDEAL LSEAEA-NDEAL

Z Asymp. Sig. (2-tailed)

-2.151 .031

-1.787 .074

-2.093 .036

-1.807 .071

4.7. Kết luận

Trong chương này, 4 thuật toán SharingDEAL, CrowdingDEAL, Species- DEAL và NBCDEAL đã được trình bày. Đó là sự kết hợp giữa DEAL với các phương pháp niching phổ biến. Các thực nghiệm với tập 20 bài toán tối ưu đa cực trị đã được mô tả một cách chi tiết. Ngoài 4 thuật toán được đề xuất, 2 thuật toán SharingDE và CrowdingDE của R. Thomsen (xem [99]) được cài đặt lại. Các bộ kết quả thực nghiệm được công bố trong các Hội thảo quốc tế CEC’2013 và CEC’2015 được sử dụng để so sánh.

Các kết quả thực nghiệm và so sánh kiểm định thống kê cho thấy các thuật toán mới đề xuất có lợi thế so với các thuật toán tiến hóa cùng loại trong việc giải quyết cùng một lớp bài toán nói trên. Thuật toán NBCDEAL có thể so sánh được với các thuật toán tiến hóa được đánh giá tốt hiện nay.

Các nội dung và kết quả nghiên cứu chính của chương này đã được tác

giả công bố trong các bài báo:

• Fitness Sharing for the Direction-guided Evolutionary Algorithm [Ct4].

• The Direction-based Evolutionary Algorithm with a Crowding Mech-

116

anism [Ct5].

Kết luận

Thuật toán tiến hóa là một lĩnh vực nghiên cứu khó khăn nhưng hấp dẫn và đầy tiềm năng. Việc nghiên cứu, đề xuất các thuật toán mới luôn nhận được sự quan tâm của nhiều nhà khoa học. Một trong các xu hướng thiết kế là dựa vào thông tin định hướng, các thuật toán theo xu hướng này đã và đang thể hiện lợi thế trong tính toán tiến hóa nói riêng và tính toán số nói chung.

Với mục tiêu thiết kế một thuật toán tiến hóa mới, có thể so sánh được với các thuật toán tiến hóa mới được đề xuất. Luận án đã tập trung nghiên cứu từ các nội dung mang tính lý thuyết như tối ưu hóa, như tính toán tiến hóa với các thuật toán tiến hóa đến các nội dung mang tính kỹ thuật như thiết kế và thực nghiệm các thuật toán. Cho đến nay luận án đã đạt được một số kết quả sau đây:

1. Luận án đã đề xuất thuật toán tiến hóa dựa trên thông tin định hướng DEAL - 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ụ - là hướng từ một cá thể kém hơn (hạng 2) đến một cá thể ưu tú và (2) hướng tản mát - 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. Tập các cá thể ưu tú được tổ chức trong tệp ETS và liên tục được cập nhật trong suốt quá trình tiến hóa.

• Có 4 tùy chọn khác nhau về bước nhảy định hướng và 2 chiến lược

lai ghép.

• Có thể mở rộng nâng cao hiệu năng tính toán thông qua kỹ thuật song song hóa. Thuật toán song song hóa DEAL có tên là PC- CDEAL (Parallel CoOperative CoEvolution for DEAL) được xây dựng trên mô hình song song kiểu mới không hoàn toàn giống với mô hình master/slaves truyền thống. Các kết quả lý thuyết và

117

thực nghiệm được kiểm tra đánh giá cho thấy tính hiệu quả của mô hình.

2. Luận án đã đề xuất thuật toán tiến hóa dựa trên thông tin định hướng nhằm giải quyết các bài toán tối ưu đa cực trị với 4 thuật toán SharingDEAL, CrowdingDEAL, SpeciedDEAL và NBCDEAL là giải pháp kết hợp giữa DEAL và các phương pháp nich- ing phổ biến. Kết quả thực nghiệm của các thuật toán này cho thấy: Trong các giải pháp kết hợp giữa một thuật toán EA với các phương pháp niching nhằm giải quyết các bài toán tối ưu đa cực trị được lựa chọn thì thuật toán DEAL đang cho kết quả tốt, có thể so sánh được với một số thuật toán tiến hóa đã thành công trong thời gian gần đây.

Tuy nhiên, từ những kết quả nghiên cứu đã đạt được có thể nhận thấy

một số vấn đề cần được tiếp tục đầu tư nghiên cứu thêm, đó là:

1. Đối với vấn đề sử dụng 2 dạng thông tin định hướng. Luận án đang tổ chức và sử dụng cân đối giữa thông tin hướng hội tụ và thông tin hướng tản mát nhằm đảm bảo sự cân đối chung giữa tính hội tụ và tính đa dạng của một thuật toán ngẫu nhiên. Sự cân đối này có thể giải quyết được nhiều lớp bài toán. Tuy nhiên đối với các lớp bài toán cụ thể khác nhau, vấn đề thích nghi khi ưu tiên hướng hội tụ hay hướng tản mát cũng cần được quan tâm hơn.

2. Đối với vấn đề song song hóa thuật toán DEAL. Để đánh giá hiệu quả của mô hình song song được đề xuất, luận án sử dụng kỹ thuật chia đều về chiều khi thực hiện phân tách bài toán thành các bài toán thành phần. Tuy nhiên, kỹ thuật này là đơn giản và chỉ thực sự có hiệu quả đối với lớp bài toán tối ưu khả tách. Còn đối với các bài toán không khả tách, các kết quả thực nghiệm cho thấy nhiều khó khăn và vướng mắc. Bởi vậy quan tâm đến kỹ thuật chia bài toán sẽ là một nhiệm vụ nghiên cứu tiếp theo.

118

3. Thuật toán DEAL đã được thiết kế và thực nghiệm với rất nhiều bài toán, các kết quả thử nghiệm đều cho thấy sự khả quan. Tuy nhiên đây chỉ mới là các bài toán thử nghiệm mang tính lý thuyết, được xây dựng từ kinh nghiệm thiết kế và vận hành các thuật toán. Sẽ trọn vẹn hơn nếu thuật toán DEAL được thử nghiệm với một bài toán thực tế.

Danh sách công trình của tác giả

Ct1. Chi Cuong Vu, Huu Hung Nguyen, and Lam Thu Bui. A parallel cooperative coevolution evolutionary algorithm. In Third In- ternational Conference on Knowledge and Systems Engineering, KSE 2011, October 14-17, 2011, pages 48–53, 2011, IEEE Press.

Ct2. Chi Cuong Vu, Lam Thu Bui, and Huu Hung Nguyen. Towards a theoretic model for parallelization of cooperative coevolu- tionary algorithms. Journal of Science and Technology: the Section on Information and Communication Technology (JICT), (150):32–48, 2012

Ct3. Chi Cuong Vu, Lam Thu Bui, and Hussein A. Abbass. DEAL: A direction-guided evolutionary algorithm. In Simulated Evolution and Learning - 9th International Conference 2012, Lecture Notes in Computer Science, vol 7673, December 16-19, 2012, pages 148–157, 2012, Springer Berlin Heidelberg.

Ct4. Chi Cuong Vu and Lam Thu Bui. Fitness sharing for the direction- guided evolutionary algorithm. Journal of Science and Technol- ogy: the Section on Information and Communication Technology (JICT), (4):34–46, 2014.

119

Ct5. Chi Cuong Vu and Lam Thu Bui. The direction-based evolution- ary algorithm with a crowding mechanism. In Advanced Tech- nologies for Communications (ATC), 2014 International Conference on, pages 175–180, Oct 2014, IEEE Press.

Tài liệu tham khảo

[1] Đức Nghĩa, N. (2002). Tối ưu hóa. Nhà xuất bản Giáo dục, Hà Nội,

Việt Nam.

[2] Đình Thúc, N. (2000). Lập trình tiến hóa. Nhà sách Minh Khai, Hà

Nội, Việt Nam.

[3] Apolloni, J. et al. (2008). Island based distributed differential evolu- tion: An experimental study on hybrid testbeds. In Procedings of the Eighth International Conference on Hybrid Intelligent Systems, pages 696–701. IEEE.

[4] Back, T. (1996). Evolutionary Algorithms in Theory and Practice.

Oxford University Press, New York.

[5] Biswas, A., Dasgupta, S., Das, S., and Abraham, A. (2007). A synergy of differential evolution and bacterial foraging optimization for global optimization. In International Journal on Neural And Mas-parallel Computing And Information Systems - Neural Network World, pages 607–626.

[6] Brown, C., Jin, Y., Leach, M., and Hodgson, M. (2015). µ - jade: adap- tive differential evolution with a small population. Soft Computing, pages 1–10.

[7] Burczy´nski, T., Ku´s, W., D(cid:32)lugosz, A., and Orantek, P. (2004). Opti- mization and defect identification using distributed evolutionary algo- rithms. Engineering Applications of Artificial Intelligence, 17(4):337 – 344.

[8] Cantuz-Paz, E. (1997). A survey of parallel genetic algorithms. Technical Report Illigal TR-97003, University of Illinois, Urbana– Champaign.

[9] Cantuz-Paz, E. (2001). Efficient and Accurate Parallel Genetic Algo-

120

rithms. Kluwer, Boston, MA, USA.

[10] Das, S., Abraham, A., Chakraborty, U. K., and Konar, A. (2009). Differential evolution using a neighborhood-based mutation operator. Evolutionary Computation, 13(3):526–553.

[11] Das, S. and Suganthan, P. N. (2011). Differential evolution: A survey

of the state-of-the-art. Evolutionary Computation, 15(1):4–31.

[12] Dasgupta, D. (1998). Artificial Immune Systems and Their Applica-

tions. Springer, Berlin, Germany.

[13] De Jong, K. A. (1975). An Analysis of the Behavior of a Class of Genetic Adaptive Systems. PhD thesis, Ann Arbor, MI, USA. AAI7609381.

[14] Deb, K. (2001). Multiobjective Optimization using Evolutionary Algo-

rithms. John Wiley and Son Ltd, New York.

[15] Deb, K. and Agrawal, R. B. (1995). Simulated binary crossover for

continuous search space. Complex Systems, 9:115–148.

[16] Deb, K., Anand, A., and Joshi, D. (2002). A computationally efficient evolutionary algorithm for real-parameter optimization. Evolutionary Computation, 4:371–395.

[17] Deb, K. and Beyer, H. (2001). Self-adaptive genetic algorithms with simulated binary crossover. Evolutionary Computation, 9(2):197–221.

[18] Deb, K. and Goyal, M. (1996). A combined genetic adaptive search (geneas) for engineering design. Computer Science and Informatics, 26:30–45.

[19] Dorigo, M. and Stutzle, T. (2004). Ant Colony Optimization. MIT

Press, USA.

[20] Epitropakis, M. G., Li, X., and Burke, E. K. (2013). A dynamic archive niching differential evolution algorithm for multimodal optimization. In IEEE Congress on Evolutionary Computation, pages 79–86. IEEE.

[21] Epitropakis, M. G., Plagianakos, V. P., and Vrahatis, M. N. (2011). Finding multiple global optima exploiting differential evolution’s nich- ing capability. In 2011 IEEE Symposium on Differential Evolution, SDE 2011, Paris, France, April 11-15, 2011, pages 80–87.

121

[22] Eshelman, L. J. and Schaffer, J. D. (1992). Real-coded genetic algo- rithms and interval-schemata. In Whitley, L. D., editor, FOGA, pages 187–202. Morgan Kaufmann.

[23] Fan, H.-Y. and Lampinen, J. (2003). A trigonometric mutation op- Journal of Global Optimization,

eration to differential evolution. 27(1):105–129.

[24] Fieldsend, J. (2013). Multi-modal optimisation using a localised sur- In 13th UK Workshop on

rogates assisted evolutionary algorithm. Computational Intelligence (UKCI’2013), pages 88–95.

[25] Fieldsend, J. (2014). Running up those hills: Multi-modal search with the niching migratory multi-swarm optimiser. In IEEE Congress on Evolutionary Computation (CEC’2014), pages 2593–2600.

[26] Fieldsend, J. (2015). Using an adaptive collection of local evolutionary algorithms for multi-modal problems. Soft Computing, 19(6):1445– 1460.

[27] Fogel, D. (1995). Evolutionary Computation: towards a new philosophy

of machine intelligence. IEEE Press, New York, NY.

[28] Folino, G., Pizzuti, C., and Spezzano, G. (2008). Training distributed GP ensemble with a selective algorithm based on clustering and prun- ing for pattern classification. IEEE Transactions on Evolutionary Computing, 12(4):458–468.

[29] Folino, G. and Spezzano, G. (2006). P-CAGE: an environment for evolutionary computation in peer-to-peer systems. In Proceedings of the 9th European Conference on Genetic Programming, volume 3905 of Lecture Notes in Computer Science, pages 341–350, Budapest, Hun- gary. Springer.

[30] Glover, F. (1977). Heuristics for integer programming using surrogate

constraints. Decision Sciences, 8(1):156–166.

[31] Goldberg, D. (2002). The design of innovation: lessons from and for competent genetic algorithms. Kluwer Academic Publishers, Mas- sachusetts, USA.

[32] Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.

122

[33] Goldberg, D. E. and Richardson, J. J. (1987). Genetic algorithms with sharing for multimodal function optimization. In Proceedings of the 2nd International Conference on Genetic Algorithms, pages 41–49.

[34] Goldberg, D. E. and Wang, L. (1997). Adaptive niching via coevo- lutionary sharing. In Quagliarella, D., P. J. P. C. and Winter, G., editors, Genetic Algorithms and Evolution Strategies in Engineering and Computer Science, pages 21–38. John Wiley and Sons.

[35] Gong, W., Cai, Z., Ling, C. X., and Li, H. (2010). A real-coded biogeography-based optimization with mutation. Applied Mathemat- ics and Computation, 216(9):2749 – 2758.

[36] Gong, Y., Chen, W., Zhan, Z., Zhang, J., Li, Y., Zhang, Q., and Li, J. (2015). Distributed evolutionary algorithms and their models: A survey of the state-of-the-art. Applied Soft Computing, 34:286–300.

[37] Hansen, N. and Ostermeier, A. (2001). Completely derandomized self- adaptation in evolution strategies. Evolutionary Computation, 9:159– 195.

[38] Herrera, F., Lozano, M., and Moraga, C. (1999). Hierarchical dis- tributed genetic algorithms. International Journal of Intelligent Sys- tems, 14(11):1099–1121.

[39] Holland, J. H. (1975). Adaptation in Natural and Artificial Systems.

University of Michigan Press, Ann Arbor, MI.

[40] Iimura, I., Hamaguchi, K., Ito, T., and Nakayama, S. (2005). A study of distributed parallel processing for queen ant strategy in ant colony optimization. In Procedings of the Sixth International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT’2005), pages 553–557.

[41] Ismail, M. (2004). Parallel genetic algorithms (PGAs): master slave

paradigm approach using mpi. In E-Tech 2004, pages 83–87.

[42] Kacprzyk, J. and Pedrycz, W., editors (2015). Springer Handbook of

Computational Intelligence. Springer.

[43] Kennedy, J. and Eberhart, R. C. (1995). Particle swarm optimization. In Proceedings of IEEE International Conference on Neural Networks, volume 4, pages 1942–1948.

[44] Kita, H. (2001). A comparison study of self-adaptation in evolution strategies and real-coded genetic algorithms. Evolutionary Computa- tion, 9(2):223–241.

123

[45] Kolda, T. G., Lewis, R. M., and Torczon, V. (2003). Optimization by direct search: New perspectives on some classical and modern meth- ods. SIAM Review, 45:385–482.

[46] Koza, J. R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA, USA.

[47] Laguna, M. and Marti, R. (2002). Scatter Search: Methodology and Implementations in C. Kluwer Academic Publishers, Norwell, MA, USA.

[48] Lam, A. Y. S., Li, V. O. K., and Yu, J. J. Q. (2012). Real-coded chem- ical reaction optimization. IEEE Transacsion Evolutionary Computa- tion, 16(3):339–353.

[49] Larraanaga, P. and Lozano, J. A. (2002). Estimation of Distribution Algorithms: A New Tool for Evolutionary Computation. Kluwer Aca- demic Publishers, Norwell, MA, USA.

[50] Li, J.-P., Balazs, M. E., Parks, G. T., and Clarkson, P. J. (2002). A species conserving genetic algorithm for multimodal function opti- mization. Evolutionary Computation, 10(3):207–234.

[51] Li, J.-P., Li, X.-D., and Wood, A. (2010). Species based evolution- ary algorithms for multimodal optimization: A brief review. In IEEE Congress on Evolutionary Computation, pages 1–8.

[52] Li, X. (2004). Adaptively choosing neighbourhood bests using species in a particle swarm optimizer for multimodal function optimization. In Deb, K., editor, Genetic and Evolutionary Computation – GECCO 2004, volume 3102 of Lecture Notes in Computer Science, pages 105– 116. Springer Berlin Heidelberg.

[53] Li, X. (2005). Efficient differential evolution using speciation for mul-

timodal function optimization. In GECCO, pages 873–880.

[54] Li, X., Engelbrecht, A., and Epitropakis, M. G. (2013a). Benchmark functions for CEC’2013 special session and competition on niching methods for multimodal function optimization.

[55] Li, X., Engelbrecht, A., and Epitropakis, M. G. (2013b). Niching meth- http://goanna.cs.rmit.

ods for multimodal optimization 2013. edu.au/~xiaodong/cec13-niching/.

[56] Li, X., Engelbrecht, A., and Epitropakis, M. G. (2015). Niching meth- http://goanna.cs.rmit.

124

ods for multimodal optimization 2015. edu.au/~xiaodong/cec15-niching/competition/.

[57] Lim, D., Ong, Y.-S., Jin, Y., Sendhoff, B., and Lee, B.-S. (2007). Efficient hierarchical parallel genetic algorithms using grid computing. Future Generation Computer Systems, 23(4):658 – 670.

[58] Ling, Q., Wu, G., Yang, Z., and Wang, Q. (2008). Crowding clustering genetic algorithm for multimodal function optimization. Applied Soft Computing, 8(1):88–95.

[59] Liu, Y., Yao, X., and Zhao, Q. (2001). Scaling up fast evolutionary programming with cooperative coevolution. In Proceedings of the 2001 Congress on Evolutionary Computation (Seoul, Korea), pages 1101– 1108.

[60] Mahfoud, S. W. (1995). Niching Methods for Genetic Algorithms. PhD

thesis, Champaign, IL, USA. UMI Order No. GAX95-43663.

[61] Mendiburu, A., Lozano, J., and Miguel-Alonso, J. (2005). Parallel im- plementation of EDAs based on probabilistic graphical models. IEEE Transactions on Evolutionary Computation, 9(4):406–423.

[62] Mengshoel, O. J. and Goldberg, D. E. (1999). Probabilistic crowding: Deterministic crowding with probabilistic replacement. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO- 99), pages 409–416, Orlando, FL.

[63] Michalewicz, Z. (1996). Genetic Algorithms + Data Structures = Evo-

lution Programs. Springer-Verlag, London, UK, 3rd edition.

[64] Miller, B. L. and Shaw, M. J. (1996). Genetic algorithms with dynamic niche sharing for multimodal function optimization. In International Conference on Evolutionary Computation, pages 786–791.

[65] Mitchell, T. (1997). Machine Learning. McGraw Hill, Singapore.

[66] Nelder, J. A. and Mead, R. (1965). A simplex method for function

minimization. Computer Journal, 7:308–313.

[67] Omidvar, M. N., Li, X., and Yao, X. (2010). Cooperative co-evolution with delta grouping for large scale non-separable function optimiza- tion. In IEEE Congress on Evolutionary Computation, pages 1–8. IEEE.

125

[68] Ono, I., Kita, H., and Kobayashi, S. (2003). Advances in evolutionary computing. chapter A Real-coded Genetic Algorithm Using the Uni- modal Normal Distribution Crossover, pages 213–237. Springer-Verlag New York, Inc., New York, NY, USA.

[69] Parrott, D. and Li, X. (2004). A particle swarm model for tracking multiple peaks in a dynamic environment using speciation. In IEEE Congress on Evolutionary Computation.

[70] Potter, M. (1997). The Design and Analysis of a Computational Model of Cooperative Coevolution. PhD thesis, George Mason University, Faiffax, Virginia, USA.

[71] Potter, M. and Jong, K. D. (1994). A cooperative coevolutionary approach to function optimization. In Proceedings of the third parallel problem solving from nature, PPSN, pages 249–257, Jerusalem, Israel. Springer Verlag.

[72] Preuss, M. (2010). Niching the CMA-ES via nearest-better cluster- ing. In Pelikan, M. and Branke, J., editors, Genetic and Evolutionary Computation Conference, GECCO 2010, Proceedings, Portland, Ore- gon, USA, July 7-11, 2010, Companion Material, pages 1711–1718. ACM.

[73] Preuss, M. (2012). Improved topological niching for real-valued global

optimization. In EvoApplications, pages 386–395.

[74] Preuss, M., Sch¨onemann, L., and Emmerich, M. (2005). Counter- acting genetic drift and disruptive recombination in (µ+, λ)-EA on multimodal fitness landscapes. In Proceedings of the 7th Annual Con- ference on Genetic and Evolutionary Computation, GECCO ’05, pages 865–872, New York, NY, USA. ACM.

[75] Price, K., Storn, R., and Lampinen, J. (2005). Differential Evolu- tion - A Practical Approach to Global Optimization. Springer, Berlin, Germany.

[76] Pétrowski, A. (1996). A clearing procedure as a niching method for genetic algorithms. In International Conference on Evolutionary Com- putation, pages 798–803.

[77] Qin, A., Tang, K., Pan, H., and Xia, S. (2014). Self-adaptive dif- ferential evolution with local search chains for real-parameter single- objective optimization. In IEEE Congress on Evolutionary Computa- tion (CEC’2014), pages 467–474.

126

[78] Qin, A. K., Huang, V. L., and Suganthan, P. N. (2009). Differen- tial evolution algorithm with strategy adaptation for global numerical optimization. Evolutionary Computation, 13(2):398–417.

[79] Rahnamayan, S., Tizhoosh, H. R., and Salama, M. M. (2008). Opposition-based differential evolution. Evolutionary Computation, 12(1):64–79.

[80] Rechenberg, I. (1973). Evolutions Strategie: Optimierung technis- cher Systeme nach Prinzipien der biologischen Evolution. Frommann- Holzboog, Stuttgart.

[81] Rechenberg, I. (1994). Evolutions Strategie, volume 1 of Werkstatt Bionik und Evolutionstechnik. Frommann-Holzboog, Stuttgart.

[82] Said, S. and Nakamura, M. (2012a). Asynchronous strategy of parallel hybrid approach of ga and eda for function optimization. In Procedings of the Third International Conference on Networking and Computing (ICNC’2012), pages 420–428.

[83] Said, S. and Nakamura, M. (2012b). Parallel enhanced hybrid evolu- tionary algorithm for continuous function optimization. In Procedings of the Seventh International Conference on P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC’2012), pages 125–131.

[84] Sarker, R., Elsayed, S., and Ray, T. (2014). Differential evolution with dynamic parameters selection for optimization problems. IEEE Transactions on Evolutionary Computation (CEC’2014), 18(5):689– 707.

[85] Sarker, R., Mohammadian, M., and Yao, X. (2002). Evolutionary Opti- mization. International Series in Operations Research & Management Science. Springer.

[86] Schwefel, H.-P. P. (1993). Evolution and Optimum Seeking: The Sixth

Generation. John Wiley & Sons, Inc., New York, NY, USA.

[87] Shen, D. and Li, Y. (2013). Multimodal optimization using crowd- ing differential evolution with spatially neighbors best search. JSW, 8(4):932–938.

[88] Shi, Y.-j., Teng, H.-f., and Li, Z.-q. (2005).

Cooperative co- evolutionary differential evolution for function optimization. In Pro- ceedings of the First International Conference on Advances in Natural Computation - Volume Part II, ICNC’05, pages 1080–1088, Berlin, Heidelberg. Springer-Verlag.

127

[89] Sofge, D., Jong, K. D., and Schultz, A. (2002). A blended popula- tion approach to cooperative coevolution fordecomposition of com-

plex problems. In Proceedings of the 2002 Congress on Evolutionary Computation (CEC ’02), pages 413–418.

[90] Sokolov, A., Whitley, D., and Motta Salles Barreto, A. (2007). A note on the variance of rank-based selection strategies for genetic algo- rithms and genetic programming. Genetic Programming and Evolvable Machines, 8(3):221–237.

[91] Stoean, C., Preuss, M., Bartz-Beielstein, T., and Stoean, R. (2009). A New Clustering-Based Evolutionary Algorithm for Real-Valued Mul- timodal Optimization. Technical Report TR09-2-007, Chair of Algo- rithm Engineering, TU Dortmund, Dortmund, Germany.

[92] Subbu, R. and Sanderson, A. (2004a). Modeling and convergence analysis of distributed coevolutionary algorithms. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, 34(2):806– 822.

[93] Subbu, R. and Sanderson, A. C. (2004b). Network-based distributed planning using coevolutionary agents: architecture and evaluation. IEEE Transactions on Systems, Man, and Cybernetics, Part A, 34(2):257–269.

[94] Suganthan, P. N., Hansen, N., Liang, J. J., Deb, K., Chen, Y. P., Auger, A., and Tiwari, S. (2005). Problem definitions and evaluation criteria for the CEC 2005 special session on real-parameter optimiza- tion. Technical report, Nanyang Technological University, Singapore.

[95] Sugihara, K. (1997). Measures for performance evaluation of genetic algorithms. In Proceedings of the 3rd Joint Conference on Information Sciences (JCIS’97), pages 172–175.

[96] Tang, K., Li, X., Suganthan, P. N., Yang, Z., and Weise, T. (2009). Benchmark functions for the cec’2010 special session and competition on large-scale global optimization. Technical report, Nature Inspired Computation and Applications Laboratory.

[97] Tang, K., Yao, X., Suganthan, P. N., MacNish, C., Chen, Y. P., Chen, C. M., and Yang, Z. (2007). Benchmark functions for the CEC 2008 special session and competition on large scale global optimization. Technical report, Nature Inspired Computation and Applications Lab- oratory, USTC, China.

128

[98] Tasgetiren, M., Suganthan, P., Ozcan, S., and Kizilay, D. (2015). A dif- ferential evolution algorithm with a variable neighborhood search for

constrained function optimization. In Adaptation and Hybridization in Computational Intelligence, pages 171–184. Springer International Publishing.

[99] Thomsen, R. (2004). Multimodal optimization using crowding-based differential evolution. In Proceedings of the 2004 IEEE Congress on Evolutionary Computation, pages 1382–1389, Portland, Oregon. IEEE Press.

[100] Torn, A. and Zilinskas, A. (1989). Global Optimization. Springer-

Verlag.

[101] Tsutsui, S., Yamamura, M., and Higuchi, T. (1999). Multi-parent re- combination with simplex crossover in real coded genetic algorithms. In Proceedings of the Genetic and Evolutionary Computation Confer- ence, volume 1, pages 657–664. Morgan Kaufmann.

[102] Weber, M., Neri, F., and Tirronen, V. (2011). Shuffle or update paral- lel differential evolution for large-scale optimization. Soft Computing- A Fusion of Foundations, Methodologies and Applications, 15:2089– 2107.

[103] Wright, M. H. (1996). Direct search methods: Once scorned, now respectable. In Griffiths, D. F. and Watson, G. A., editors, Numerical Analysis 1995 (Proceedings of the 1995 Dundee Biennial Conference in Numerical Analysis), volume 344 of Pitman Research Notes in Math- ematics, pages 191–208, Boca Raton, Florida. CRC Press.

[104] Xu, L. and Zhang, F. (2007). Parallel particle swarm optimiza- tion for attribute reduction. In Procedings of the Eighth ACIS Inter- national Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing (SNPD’2007), vol- ume 1, pages 770–775.

[105] Yang, Z., Tang, K., and Yao, X. (2007). Differential evolution for IEEE Congress on Evolu-

high-dimensional function optimization. tionary Computation, pages 3523–3530.

[106] Yang, Z., Tang, K., and Yao, X. (2008). Large scale evolutionary Information Sciences,

optimization using cooperative coevolution. 178(15):2985–2999.

129

[107] Yao, X., Liu, Y., and Lin, G. (1999). Evolutionary program- ming made faster. IEEE Transactions on Evolutionary Computation, 3(2):82–102.

[108] Yin, X. and Germay, N. (1993). A fast genetic algorithm with sharing scheme using cluster analysis methods in multimodal function opti- mization. In Proceedings of the International Conference on Artificial Neural Networks and Genetic Algorithms (ANNGA’93), pages 450– 457. Springer-Verlag.

[109] Yu, X. and Gen, M. (2010). Introduction to Evolutionary Algorithms.

Springer-Verlag London.

130

[110] Zhang, W.-J. and Xie, X.-F. (2003). DEPSO: hybrid particle swarm with differential evolution operator. In IEEE International Conference on Systems, Man and Cybernetics, volume 4, pages 3816–3821.

131

Phụ lục A

CÁC SƠ ĐỒ THUẬT TOÁN

A.1. Thuật toán Simplex Search

i=0, α,

Algorithm A.1 Simplex Search [66] Input: Hàm đánh giá f : Rn −→ R, khối đơn hình khởi tạo {xi}n β, γ Output: x∗ là phương án tối ưu.

1: t ←− 0; 2: while (t < tmax) do 3:

4:

5:

h ←− argmaxif (xi); l ←− argminif (xi); x(cid:48) ←− (1 + α)x − αxl;

6:

7:

where α > 0 is the reflection coefficient

8:

if f (x(cid:48)) > f (xh) then

x” ←− (1 + γ)x(cid:48) − γx;

9:

10:

where γ > 1 is the expansion coefficient

11:

if f (x”) > f (xh) then

(cid:46) expansion

xl ←− x”;

12:

13:

else

(cid:46) reflection

xl ←− x(cid:48);

14:

15:

end if

16:

17:

else

18:

if f (x(cid:48)) < f (xi), ∀i (cid:54)= l then if f (x) ≥ f (xl) then

(cid:46) reflection

xl ←− x(cid:48);

19:

20:

21:

end if x” ←− βxl + (1 − β)x;

132

where 0 < β < 1 is the contraction coefficient

22:

; ∀i ∈ [0, n]

(cid:46) multiple contraction

if f (x”) < f (xl) then xi ←− xi+xh

2

else

(cid:46) contraction

xl ←− x”;

end if

23: 24: 25: 26: 27:

else

(cid:48)

;

(cid:46) reflection

xl ←− x

end if

end if t ←− t + 1;

28: 29: 30: 31: 32: end while return x∗ = best(x);

A.2. Thuật toán Scatter Search

Algorithm A.1 Scatter Search [30, 47] Input: P Size - Kích thước tập thử nghiệm, b - kích thước tập Ref Set Output: x∗ là phương án tối ưu.

1: Khởi tạo P = ∅; 2: while | P |< P Size do

3:

4:

5:

6:

x ←− Diversif icationGeneration();) Improvement(x); if x (cid:54)= P then P = P ∪ x

13:

14:

15:

16:

17:

18:

19:

20:

21:

end if 7: 8: end while 9: Ref erenceSetU pdate(Ref Set); 10: Sort(Ref Set); 11: N ewSolutions = T RU E; 12: while N ewSolutions do

N ewSubsets ←− SubsetGeneration; N ewSolutions = F ALS; while N ewSubset (cid:54)= ∅ do s ←− N ewSubsets; x ←− SolutionCombination(s); Improvement(x); Ref erenceSetU pdate(Ref Set); if Ref Set has changed then N ewSolutions = T RU E;

22:

133

end if

Delete s from N ewSubsets;

end while

23: 24: 25: end while return x∗ = best();

A.3. Thuật toán Particle Swarm Optimization

Algorithm A.1 Particle Swarm Optimization [43] Input: N, D, w, c1, c2 Output: x∗ là phương án tối ưu.

1: t ←− 0; 2: P (t) ←− initialize(N ); 3: while (t < maxgen) do

4:

5:

6:

7:

for each xi in P (t) do

F (xi) ←− evaluate(xi); if F (xi) > P best then P best = F (xi);

8:

9:

10:

11:

end if

12:

13:

14:

15:

end for if P best > Gbest then Gbest = P best;

16:

end if for each xi in P (t) do vi ←− recalc; xi ←− recalc;

17: 18: end while return x∗ = Gbest;

134

end for t ←− t + 1;

Phụ lục B

CÁC BÀI TOÁN THỰC NGHIỆM MẪU

B.1. Các bài toán tối ưu cơ bản

1. Sphere Problem

D (cid:88)

Đây là các bài toán tối ưu cơ bản thường được sử dụng trong các nghiên cứu về thuật toán tiến hóa. Các bài toán này được giới thiệu trong [107, 94, 97, 96, 54] và là các bài toán cực tiểu hóa với nhiều đặc trưng khác nhau như đơn cực trị (uni-modal) và đa cực trị (multi-modal), dịch chuyển được (shifted) và không dịch chuyển được (non-shifted), khả tách (separable) và không khả tách (non-separable), linh hoạt (scalable) và không linh hoạt (non-scalable). Phương án tối ưu và giá trị tối ưu của các bài toán này đều đã được xác định. Nhiệm vụ của các thuật toán tiến hóa là tìm cách xác định lại các giá trị này từ một quần thể được khởi tạo một cách ngẫu nhiên trong không gian tìm kiếm (tập ràng buộc) của bài toán. Tất nhiên là các tham số thực nghiệm, đặc biệt là các hạn ngạch về điều kiện dừng thuật toán phải được lựa chọn phù hợp và tương tự nhau.

f ((cid:126)x) =

x2 i

i=1

135

• Uni-modal

• Shifted

• Separable

• Scalable

• xi ∈ [−100, 100], i = {1, 2, . . . , D}

• min(f ) = f (0, 0, . . . , 0) = 0

2. Schwefel’s Problem 2.21

f ((cid:126)x) = maxi {|xi|, 1 ≤ i ≤ D}

• Uni-modal

• Shifted

• Non-separable

• Scalable

• xi ∈ [−100, 100], i = {1, 2, . . . , D}

• min(f ) = f (0, 0, . . . , 0) = 0

3. Rosenbrock’s Function

D−1 (cid:88)

f ((cid:126)x) =

i − xi+1)2 + (xi − 1)2(cid:1)

i=1

(cid:0)100(x2

• Multi-modal

• Shifted

• Non-separable

• Scalable

• xi ∈ [−100, 100], i = {1, 2 . . . , D}

• min(f ) = f (1, 1, . . . , 1) = 0

136

4. Generalized Schwefel 2.26

D (cid:88)

(cid:113)

f ((cid:126)x) = −

(xi sin(

|xi|))

i=1

• Multi-modal

• Shifted

• Rotated

• Non-separable

• Scalable

• xi ∈ [−500, 500], i = {1, 2 . . . , D}

• min(f ) = f (420.9687, . . . , 420.9687) = −12569.5

5. Rastrigin’s Problem

D (cid:88)

f ((cid:126)x) =

i − 10 cos(2πxi) + 10(cid:1)

i=1

(cid:0)x2

• Multi-modal

• Shifted

• Separable

• Scalable

• xi ∈ [−5.12, 5.12], i = {1, 2 . . . , D}

• min(f ) = f ((0, 0, . . . , 0) = 0

6. Ackley’s Problem

D (cid:88)

D (cid:88)

(cid:32) (cid:33)

f ((cid:126)x) = −20 exp

+ 20 + e

(cid:118) (cid:117) (cid:117) (cid:116)

cos(2πxi)

 −0.2   − exp

x2 i

1 D

1 D

i=1

i=1

137

• Multi-modal

• Shifted

• Rotated

• Non-separable

• Scalable

• xi ∈ [−32, 32], i = {1, 2 . . . , D}

• min(f ) = f (0, 0, . . . , 0) = 0

7. Griewank’s Problem

D (cid:88)

D (cid:89)

f ((cid:126)x) =

cos

+ 1

x2 i −

1 4000

xi√ i

i=1

i

• Multi-modal

• Shifted

• Rotated

• Non-separable

• Scalable

• xi ∈ [−600, 600], i = {1, 2 . . . , D}

• min(f ) = f (0, 0, . . . , 0) = 0

8. Penalized Problem 1

D−1 (cid:88)

(cid:41) (cid:40)

f ((cid:126)x) =

10 sin2(πy1) +

(yi − 1)2[1 + 10 sin2(πyi+1)] + (yD − 1)2

i=1

π D n (cid:88)

+

u(xi, 10, 100, 4)

i=1

138

• Multi-modal

trong đó: yi = 1 + 1

• Shifted

4(xi + 1)  

u(xi, a, k, m) =

• Rotated

k(xi − a)m, xi > a 0, otherwise k(−xi − a)m, xi < −a

• Non-separable

xi ∈ [−50, 50], i = {1, 2 . . . , D} min(f ) = f (1, 1, . . . , 1) = 0

• Scalable

9. Penalized Problem 2

(cid:41)

(cid:40)

D−1 (cid:88)

f ((cid:126)x) = 0.1

sin2(3πx1) +

(xi − 1)2[1 + sin2(3πxi+1)] + (xD − 1)2[1 + sin2(2πxD)]

i=1

D (cid:88)

+

u(xi, 5, 100, 4)

i=1

• Multi-modal

trong đó: yi = 1 + 1

• Shifted

4(xi + 1)  

u(xi, a, k, m) =

• Rotated

k(xi − a)m, xi > a 0, otherwise k(−xi − a)m, xi < −a

• Non-separable

xi ∈ [−50, 50], i = {1, 2 . . . , D} min(f ) = f (1, 1, . . . , 1) = 0

• Scalable

B.2. Các bài toán tối ưu đa cực trị

139

Gồm 12 bài toán cực đại hóa được giới thiệu trong [54]. Các bài toán này có nhiều phương án tối ưu (toàn cục và địa phương), các phương án tối ưu toàn cục đã được xác định và có giá trị tối ưu bằng nhau. Nhiệm vụ của các thuật toán tiến hóa là tìm cách xác định lại càng nhiều càng tốt các phương án tối ưu toàn cục này từ quần thể các cá thể được khởi tạo ngẫu nhiên trong không gian tìm kiếm của bài toán. Điều kiện dừng thuật toán được sử dụng ở đây là tổng số lần tính giá trị đánh giá lớn nhất cho phép (MaxFEs).

1. Five-Uneven-Peak Trap

f (x) =

80(2.5 − x) 64(x − 2.5) 64(7.5 − x) 28(x − 7.5) 28(17.5 − x) 32(x − 17.5) 32(27.5 − x) 80(x − 27.5)

0 ≤ x < 2.5, 2.5 ≤ x < 5.0, 5.0 ≤ x < 7.5, 7.5 ≤ x < 12.5, 12.5 ≤ x < 17.5, 17.5 ≤ x < 22.5, 22.5 ≤ x < 27.5, 27.5 ≤ x < 30.

  

Đặc điểm

• Số chiều: 1

• Tập ràng buộc: x ∈ [0, 30]

• Số phương án tối ưu toàn cục: 2

• Số phương án tối ưu địa phương: 3.

2. Equal Maxima

f (x) = sin6(5πx)

Đặc điểm

• Số chiều: 1

• Tập ràng buộc: x ∈ [0, 1]

• Số phương án tối ưu toàn cục: 5

• Số phương án tối ưu địa phương: 0.

3. Uneven Decreasing Maxima

(cid:32) (cid:19)2(cid:33)

sin6(5π(x3/4 − 0.05))

f (x) = exp

−2 log(2)

(cid:18)x − 0.08 0.854

Đặc điểm

• Số chiều: 1

• Tập ràng buộc: x ∈ [0, 1]

• Số phương án tối ưu toàn cục: 1

• Số phương án tối ưu địa phương: 4.

140

4. Himmelblau

f (x, y) = 200 − (x2 + y − 11)2 − (x + y2 − 7)2

Đặc điểm

• Số chiều: 2

• Tập ràng buộc: x, y ∈ [−6, 6]

• Số phương án tối ưu toàn cục: 4

• Số phương án tối ưu địa phương: 0.

5. Six-Hump Camel Back

(cid:21) (cid:19) (cid:20)(cid:18)

f (x, y) = −4

4 − 2.1x2 +

x2 + xy + (cid:0)4y2 − 4(cid:1) y2

x4 3

Đặc điểm

• Số chiều: 2

• Tập ràng buộc: x ∈ [−1.9, 1.9]; y ∈

[−1.1, 1.1]

• Số phương án tối ưu toàn cục: 2

• Số phương án tối ưu địa phương: 2.

6. Shubert

D (cid:89)

5 (cid:88)

f ((cid:126)x) = −

j cos[(j + 1)xi + j]

i=1

j=1

Đặc điểm

• Số chiều: D tùy ý

[−10, 10],

• Tập ràng buộc: xi

i=1, 2, . . . , D

• Số phương án tối ưu toàn cục: D.3D

• Số phương án tối ưu địa phương: many.

141

7. Vincent

D (cid:88)

f ((cid:126)x) =

sin(10 log(xi))

1 D

i=1

Đặc điểm

• Số chiều: D tùy ý

[0.25, 10],

• Tập ràng buộc: xi

i=1, 2, . . . , D;

• Số phương án tối ưu toàn cục: 6D

• Số phương án tối ưu địa phương: 0.

8. Modified Rastrigin

D (cid:88)

f ((cid:126)x) = −

(10 + 9 cos(2πkixi))

i=1

Đặc điểm

• Số chiều: D tùy ý

• Tập ràng buộc: xi ∈ [0, 1], i=1, 2, . . . , D; • Số phương án tối ưu toàn cục: (cid:81)D

i=1 ki

• Số phương án tối ưu địa phương: 0.

9. Composition Function 1

n (cid:88)

f ((cid:126)x) = −

i=1

(cid:1) + fbias (cid:0)f i(((cid:126)x − (cid:126)oi/λi × Mi + biasi

142

trong đó: n = 6, f 1 − f 2 là hàm Grienwank, f 3 − f 4 là hàm Weierstrass, f 5 − f 6 là hàm Sphere, σi = 1, (cid:126)λ = [1, 1, 8, 8, 1/5, 1/5], Mi là ma trận đường chéo i ∈ {1, 2, . . . , n}.

Đặc điểm

• Số chiều của mỗi bài toán fi: D

ràng

• Tập

[−5, 5],

buộc: xi

i=1, 2, . . . , D;

• Số phương án tối ưu toàn cục: 6

• Số phương án tối ưu địa phương: nhiều.

10. Composition Function 2

n (cid:88)

f ((cid:126)x) = −

i=1

(cid:1) + fbias (cid:0)f i(((cid:126)x − (cid:126)oi/λi × Mi + biasi

trong đó: n = 8, f 1 − f 2 là hàm Rastrigin, f 3 − f 4 là hàm Weierstrass, f 5 − f 6 là hàm Griewank, f 7 − f 8 là hàm Sphere, σi = 1, (cid:126)λ = [1, 1, 10, 10, 1/10, 1/10, 1/7, 1/7], Mi là ma trận đường chéo i ∈ {1, 2, . . . , n}.

Đặc điểm

• Số chiều của mỗi bài toán fi: D

ràng

• Tập

[−5, 5],

buộc: xi

i=1, 2, . . . , D;

• Số phương án tối ưu toàn cục: 8

• Số phương án tối ưu địa phương: nhiều.

11. Composition Function 3

n (cid:88)

f ((cid:126)x) = −

i=1

(cid:1) + fbias (cid:0)f i(((cid:126)x − (cid:126)oi/λi × Mi + biasi

143

trong đó: n = 6, f 1 − f 2 là hàm EF8F2 , f 3 − f 4 là hàm Weierstrass, f 5 − f 6 là hàm Griewank, (cid:126)σ = [1, 1, 2, 2, 2, 2], (cid:126)λ = [1/4, 1/10, 2, 1, 2, 5], Mi là ma trận xoay tuyến tính.

Đặc điểm

• Số chiều của mỗi bài toán fi: D

• Tập ràng buộc: xi ∈ [−5, 5],

i=1, 2, . . . , D;

• Số phương án tối ưu toàn cục: 6

• Số phương án tối ưu địa phương:

12. Composition Function 4

n (cid:88)

nhiều.

f ((cid:126)x) = −

i=1

(cid:1) + fbias (cid:0)f i(((cid:126)x − (cid:126)oi/λi × Mi + biasi

trong đó: n = 8, f 1 − f 2 là hàm Rastrigin, f 3 − f 4 là hàm EF8F2, f 5 − f 6 là hàm Weierstrass, f 7 − f 8 là hàm Griewank, (cid:126)σ = [1, 1, 1, 1, 1, 2, 2, 2], (cid:126)λ = [4, 1, 4, 1, 1/10, 1/5, 1/10, 1/40], Mi là ma trận xoay tuyến tính.

Đặc điểm

• Số chiều của mỗi bài toán fi: D

• Tập ràng buộc: xi ∈ [−5, 5],

i=1, 2, . . . , D;

• Số phương án tối ưu toàn cục: 8

• Số phương án tối ưu địa phương:

144

nhiều.