Nó hoạt động trên quần thể các lời giải để tìm kiếm lời giải tối ưu, trong đó quần thể các lời giải phải trải qua một quá trình tiến hóa nhiều chu kỳ với các phép biến đổi mang tính di t
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS Vũ Chí Cường
Vinh, 2018
Trang 2Xin chân thành bày tỏ lòng biết ơn đến Thầy TS Vũ Chí Cường người
đã hết lòng giúp đỡ và tạo mọi điều kiện tốt nhất cho tôi hoàn thành luận văn này
Xin chân thành bày tỏ lòng biết ơn đến toàn thể quý thầy cô trong Viện
Kỹ thuật và Công nghệ – Trường Đại học Vinh đã tận tình truyền đạt những kiến thức quý báu cũng như tạo mọi điều kiện thuận lợi nhất cho tôi trong suốt quá trình học tập nghiên cứu và cho đến khi thực hiện đề tài luận văn
Cuối cùng, tôi xin chân thành cảm ơn đến gia đình, các anh chị và các bạn đồng nghiệp đã hỗ trợ cho tôi rất nhiều trong suốt quá trình học tập, nghiên cứu và thực hiện đề tài luận văn thạc sĩ một cách hoàn chỉnh
Vinh, ngày tháng năm 2018
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
DANH MỤC CÁC TỪ VIẾT TẮT 4
DANH MỤC CÁC HÌNH, CÁC BẢNG BIỂU 5
MỞ ĐẦU 6
1 Lý do chọn đề tài 6
2 Lịch sử vấn đề 7
3 Đối tượng và phạm vi nghiên cứu 8
4 Mục đích, nhiệm vụ nghiên cứu 9
5 Phương pháp nghiên cứu 9
6 Đóng góp của luận văn 9
7 Cấu trúc của luận văn 9
CHƯƠNG 1:TỔNG QUAN VỀ THUẬT TOÁN TIẾN HOÁ 11
2.1 Thuật toán tiến hoá 11
2.1.1 Khái niệm về thuật toán tiến hoá 11
2.1.2 Các dạng của thuật toán tiến hoá 12
2.2 Một số thuật toán tiến hoá cơ bản 12
2.2.1 Thuật toán di truyền cơ bản 12
2.2.2 Thuật toán tối ưu bầy đàn (Particle Swarm Optimization – PSO) 18
2.2.3 Thuật toán tối ưu đàn kiến (Ant Colony Optimization - ACO) 21
2.2.4 Thuật toán Tiến hoá vi phân (Differential Evolution - DE) 23
CHƯƠNG 2:TÌM HIỂU VỀ CÁC BÀI TOÁN TỐI ƯU SỐ 27
2.1 Tổng quan về bài toán tối ưu số 27
2.1.1 Tổng quan 27
2.1.2 Bài toán tối ưu số cơ bản 28
2.2 Các bài toán tối ưu cơ bản 28
2.2.1 Các bài toán tối ưu không ràng buộc 28
2.2.2 Bài toán tối ưu có ràng buộc 35
CHƯƠNG 3:CÀI ĐẶT VÀ THỰC NGHIỆM 38
3.1 Cài đặt các thuật toán 38
Trang 43.1.1 Thuật toán GA 38
3.1.2 Thuật toán PSO 38
3.1.3 Thuật toán ACO 40
3.1.4 Thuật toán DE 42
3.2 Thực nghiệm 44
3.2.1 Bài toán thực nghiệm 44
3.2.2 Tham số thực nghiệm 45
3.2.3 Kết quả thực nghiệm 46
3.3 Đánh giá 56
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
1 EAs Evolutionary Algorithms
2 GAs Genetic Algorithms
3 DE Differential Evolution
4 PSO Particle Swarm Optimization
5 ACO Ant Colony Otimization
7 EP EvolutionaryProgramming
8 ES EvolutionaryStrategies
10 BTQHTT Bài toán quy hoạch tuyến tính
11 BTQHPTT Bài toán quy hoạch phi tuyến tính
Trang 6DANH MỤC CÁC HÌNH, CÁC BẢNG BIỂU
Hình 1.1: Sơ đồ tổng quan của giải thuật di truyền 16
Hình 1.2: Sơ đồ 1 điểm tìm kiếm bằng phương pháp PSO 20
Hình 1.4: Thông tin định hướng trong DE 25
Hình 2.1: Đồ thị của hàm Sphere Function 31
Hình 2.2: Đồ thị của hàm Schwefel Function 32
Hình 2.3: Đồ thị của hàm Shubert Functions 33
Hình 2.4: Đồ thị của hàm Rosenbrock Function 34
Hình 2.5: Đồ thị của hàm Ackley Function 35
Hình 2.6: Đồ thị của hàm Griewank Function 36
Hình 2.7: Đồ thị của hàm Rastrigin Function 37
Bảng 1.1 Một số các thuật toán ACO theo thứ tự xuất hiện 21
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Sphere 48
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Schwefel 49
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Rosenbrock 50
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Shubert 51
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Ackley 52
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Griewank 53
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm Rastrigin 54
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm G1 55
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm G2 56
Bảng 3.1 Kết quả so sánh các thuật toán – Hàm G3 57
Trang 7MỞ ĐẦU
1 Lý do chọn đề tài
Tối ưu hoá 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 giải pháp (nghiệm) tối ưu cho một vấn đề (bài toán) nào
đó chiếm một vai trò hết sức quan trọng Tuy nhiên việc tìm các giải pháp tối ưu ngày càng có nhiều khó khăn vì các bài toán tối ưu thường là các bài toán hộp đen, các tính chất tiên nghiệm là chưa được biết Ngay cả khi các hàm mục tiêu trong các bài toán đã được xác định rõ thì phần nhiều trong số đó lại là các bài toán NP-khó Trong bối cảnh như vậy, nhiều kỹ thuật khác nhau, đặc biệt là các
kỹ thuật heuristic đã được đưa ra nhằm tìm kiếm các lời giải gần đúng cho các bài toán Thuật toán tiến hóa (Evolutionary Algorithms - EAs) là một trong những kỹ thuật như vậy
EAs lấy cảm hứng từ quá trình chọn lọc tự nhiên trong thuyết tiến hóa của Darwin Nó hoạt động trên quần thể các lời giải để tìm kiếm lời giải tối ưu, trong đó quần thể các lời giải phải trải qua một quá trình tiến hóa nhiều chu kỳ với các phép biến đổi mang tính di truyền như lai ghép, đột biến, lựa chọn Hiện nay, EAs được ứng dụng rất rộng rãi trong nhiều lĩnh vực phức tạp EAs đã chứng tỏ được hiệu quả của nó trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá được sự tối ưu của các kết quả thu được Chính vì vậy, EAs đã trở thành đề tài nghiên cứu thú vị và thu hút được nhiều sự quan tâm của các nhà nghiên cứu trong cũng như ngoài nước
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 Programing – 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 Programming – GP) Tuy
Trang 8nhiên trong khoảng 20 năm gần đây, một số mô hình thuật toán tiến hóa mới được đề xuất, chẳng hạn như Tối ưu bầy đàn (PSO), Tối ưu đàn kiến (Ant colony optimization - ACO), Tiến hóa sai phân (Differential Evolution - DE),… 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á, đàn kiến,…
Với mục tiêu tìm hiểu về EAs và các ứng dụng của nó, sau khi được sự
gợi ý của giáo viên hướng dẫn, tôi lựa chọn nội dung “Thuật toán tiến hóa và ứng dụng trong giải các bài toán tối ưu số” làm đề tài luận văn tốt nghiệp của
mình
2 Lịch sử vấn đề
Nghiên cứu về thuật toán tiến hóa nói chung và các dạng thuật toán cụ thể nói riêng luôn nhận được nhiều sự quan tâm của các nhà khoa học, nhà nghiên cứu Trên thế giới, từ rất lâu đã tồn tại những cộng đồng chuyên nghiên cứu về các lĩnh vực nói trên, đã có những website chuyên biệt liên tục cập nhật những thông tin, những nghiên cứu nổi bật về lĩnh vực, chẳng hạn:
- Website http://www1.icsi.berkeley.edu/~storn/code.html là trang web về thuật toán tiến hóa vi phân DE của hai tác giả Kenneth Price và Rainer Storn
- Website http://www.swarmintelligence.org/tutorials.php của Xiaohui Hu,
là chuyên trang về thuật toán PSO
- Website http://iridia.ulb.ac.be/dorigo/ACO/index.html là chuyên trang về thuật toán ACO
Tại Việt Nam, nhiều nhóm nghiên cứu về thuật toán tiến hóa đã được hình thành tại các trường đại học, viện nghiên cứu Tiêu biểu có thể kể đến :
- Nhóm nghiên cứu về thuật toán tiến hóa, giải thuật di truyền của PGS.TS Bùi Thu Lâm ở Học viện Kỹ thuật Quân sự ([1][15])
- Nhóm nghiên cứu về tối ưu hóa bầy đàn của PGS.TS Hoàng Xuân Huấn ở
Trang 9Trường Đại học Công nghệ - Đại học Quốc gia Hà nội ([2][13][14])
- Nhóm nghiên cứu về lập trình di truyền của PGS.TS Nguyễn Xuân Hoài ở Trường Đại học Hà Nội ([17])
- Nhóm nghiên cứu về thuật toán tiến hóa, tối ưu đàn kiến của GS.TS Nguyễn Thanh Thủy, PGS.TS Huỳnh Thị Thanh Bình ở Trường Đại học Bách khoa Hà Nội ([11])
Việc khảo sát các thuật toán tiến hóa và ứng dụng trong giải bài toán tối
ưu số đã được TS Vũ Mạnh Xuân (Trường Đại học Thái Nguyên) nghiên cứu
và công bố trong bài báo “Khảo sát một số giải thuật tiến hóa giải bài toán tối ưu số” tại Tạp chí Khoa học và Công nghệ, số 3 (43) năm 2007 ([13]) Trong bài báo này, tác giả đã khảo sát 03 thuật toán cơ bản bao gồm Giải thuật di truyền, Chiến lược tiến hóa, Mô phỏng tôi luyện và tiến hành thực nghiệm trên lớp gồm
06 bài toán tối ưu số Đây chỉ là các thuật toán tiến hóa cơ bản, đã được giới thiệu từ rất lâu Ngoài ra lớp 06 bài toán tối ưu số là chưa đủ đại diện cho các loại bài toán tối ưu số khác nhau Bởi vậy nhiệm vụ nghiên cứu, cập nhập, giới thiệu các thuật toán tiến hóa mới và ứng dụng của chúng trong giải quyết nhiều lớp bài toán tối ưu số sẽ là mục tiêu nghiên cứu của chúng tôi trong luận văn này
3 Đối tượng và phạm vi nghiên cứu
- Nghiên cứu tổng quát về thuật toán tiến hoá, đi vào một số thuật toán cụ
thể như thuật toán di truyền cơ bản (GA), thuật toán tối ưu bầy đàn (PSO), thuật toán tối ưu đàn kiến (ACO), thuật toán tiến hoá vi phân (DE)…
- Nghiên cứu về các bài toán tối ưu số cơ bản gồm các bài toán tối ưu ràng
buộc và không ràng buộc
- Nghiên cứu về việc ứng dụng các thuật toán tiến hoá đã nêu để giải các
bài toán tối ưu số cơ bản, đưa ra kết quả thử nghiệm các thuật toán này cho một
số hàm cụ thể và so sánh các kết quả đó
Trang 104 Mục đích, nhiệm vụ nghiên cứu
Nghiên cứu, cập nhập, giới thiệu các thuật toán tiến hóa mới và ứng dụng của chúng trong giải quyết nhiều lớp bài toán tối ưu số
5 Phương pháp nghiên cứu
- Nghiên cứu, tìm hiểu các tài liệu liên quan
- Viết chương trình
- Thử nghiệm và phân tích kết quả
6 Đóng góp của luận văn
Luận văn bổ sung thêm một tài liệu tham khảo lý thuyết và thực nghiệm
về thuật toán tiến hoá Các kết quả nghiên cứu trong luận văn một lần nữa khẳng định tính hiệu quả của thuật toán tiến hoá đối với việc giải quyết các bài toán tối ưu số
Luận văn đã nghiên cứu, khảo sát một cách có hệ thống các dạng thuật toán tiến hóa từ thuật toán di truyền cổ điển (GA) đến các thuật toán hiện đại như tiến hóa vi phân (DE), tối ưu bầy đàn (PSO), tối ưu đàn kiến (ACO) Các thuật toán được mô tả chi tiết kèm theo mã nguồn được xây dựng trên môi trường matlab Kết quả thực nghiệm của các thuật toán nói trên đối với một lớp lớn các bài toán tối ưu cơ bản với cùng điều kiện thực nghiệm đã cho một so sánh, đánh giá bước đầu về tính hiệu quả của các thuật toán đã khảo sát
7 Cấu trúc của luận văn
Báo cáo của luận văn được cấu trúc trong 03 chương:
Chương 1: Tổng quan về thuật toán tiến hoá Tìm hiểu về thuật toán
tiến hoá và đi vào một số thuật toán tiến hoá cụ thể như GA, DE, PSO, ACO…
Trang 11Chương 2: Bài toán tối ưu cơ bản Tìm hiểu về các bài toán tối ưu cơ
bản, bài toán tối ưu có ràng buộc và tối ưu không ràng buộc
Chương 3: Ứng dụng thuật toán tiến hoá giải các bài toán tối ưu Là
nội dung chính của luận văn và được chia làm 2 phần Phần thứ nhất thiết lập môi trường cho việc giải các bài toán tối ưu khi ứng dụng thuật toán tiến hoá trong đó trình bày rõ mô hình biểu diễn, các toán tử liên quan và nội dung chính của thuật toán Phần thứ hai là các kết quả thực nghiệm và đánh giá
Trang 12CHƯƠNG 1:
TỔNG QUAN VỀ THUẬT TOÁN TIẾN HOÁ
2.1 Thuật toán tiến hoá
2.1.1 Khái niệm về thuật toán tiến hoá
Thuật toán phỏng tiến hoá sinh học hay còn gọi là thuật toán tiến hoá (Evolutionary Algorithms – EAs) là một lớp các thuật toán heuristic trong tối ưu hoá và học máy EAs đã được áp dụng rộng rãi và thu 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 hoá 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
Các đặc điểm quan trọng nhất đối với EAs là:
- EAs điều khiển quá trình tiến hoá của một quần thể gồm nhiều cá thể, mỗi cá thể đại diện (hay mã hoá) 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 tự 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 hai 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
Trang 13các cá thể khác Quá trình 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 20 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), Tối ưu đàn kiến (ACO), Tiến hóa vi phân (DE) 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
2.1.2 Các dạng của thuật toán tiến hoá
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 hoá (EvolutionaryProgramming-EP)
- Chiến lược tiến hoá (EvolutionaryStrategies-ES)
- Giải thuật di truyền (GeneticAlgorithm-GA)
- Lập trình di truyền (GeneticProgramming-GP)
2.2 Một số thuật toán tiến hoá cơ bản
2.2.1 Thuật toán di truyền cơ bản
2.2.1.1 Tổng quan về thuật toán di truyền
Giải thuật di truyền (tên tiếng Anh là Genetic Algorithm, viết tắt là GA)
là một giải thuật tin học dựa trên việc quan sát quá trình tiến hóa trong tự nhiên Các nguyên lý cơ bản của giải thuật di truyền được giáo sư J.H Holland công bố lần đầu tiên vào năm 1962 Sau đó các nền tảng khoa học của giải thuật lần đầu tiên được tác giả công bố vào năm 1975 trong quyển sách “Adaptation in natural and artificial systems” Dựa trên lý thuyết cơ bản
về GA của J.H Holland sau này Keneth De Jong và John Koza đã tiếp nối,
Trang 14phát triển giải thuật này Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận dụng các nguyên lý của tiến hóa như di truyền, đột biến, lai ghép và chọn lọc tự nhiên Ngày nay, giải thuật di truyền được dùng phổ biến trong một số ngành như tin
học, khoa học máy tính, trí tuệ nhân tạo, tài chính và một số ngành khác
2.2.1.2 Thuật toán di truyền
Giải thuật di truyền giúp giải quyết vấn đề bài toán bằng cách mô phỏng sự tiến hóa của con người hay của sinh vật nói chung trong điều kiện qui định sẵn của môi trường Mục tiêu của giải thuật di truyền không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu (lời giải chấp nhận được) Theo đề xuất ban đầu của giáo sư J.H Holland, một vấn đề (bài toán) đặt ra sẽ được mã hóa thành các chuỗi bit với chiều dài cố định Nói một cách chính xác là các thông số của bài toán sẽ được chuyển đổi và biểu diễn lại dưới dạng các chuỗi nhị phân Các thông số này có thể là các biến của một hàm hoặc hệ số của một biểu thức toán học Người ta gọi các chuỗi bit này là mã genome ứng với mỗi cá thể, các genome đều có cùng chiều dài Nói ngắn gọn, một lời giải sẽ được biểu diễn bằng một chuỗi bit, cũng giống như mỗi cá thể đều được quy định bằng gen của cá thể đó Như vậy, đối với giải thuật di truyền, một cá thể chỉ có một gen duy nhất và một gen cũng chỉ phục
vụ cho một cá thể duy nhất
Ban đầu, ta sẽ phát sinh một số lượng lớn (có giới hạn) các cá thể có gen ngẫu nhiên Nghĩa là phát sinh một tập hợp các chuỗi bit ngẫu nhiên Tập các cá thể này được gọi là quần thể ban đầu (Initial population) Sau đó, dựa trên một hàm nào đó gọi là hàm đánh giá (Fitness function) ta sẽ xác định được một giá trị gọi là độ thích nghi hay giá trị đánh giá của cá thể Giá trị này
Trang 15có thể hiểu chính là độ "tốt" của lời giải Vì phát sinh ngẫu nhiên nên độ "tốt" của lời giải hay tính thích nghi của các cá thể trong quần thể ban đầu là không xác định Để cải thiện tính thích nghi của quần thể, người ta tìm cách tạo ra quần thể mới Có hai thao tác thực hiện trên thế hệ hiện tại để tạo ra một thế
hệ khác với độ thích nghi tốt hơn Thao tác đầu tiên là sao chép nguyên mẫu một nhóm các cá thể tốt từ thế hệ trước rồi đưa sang thế hệ sau (thao tác này gọi là thao tác chọn lọc, selection) Thao tác này đảm bảo độ thích nghi của thế hệ sau luôn được giữ ở một mức độ hợp lý Các cá thể được chọn thông thường là các cá thể có độ thích nghi cao nhất Thao tác thứ hai là tạo các cá thể mới bằng cách thực hiện các thao tác sinh sản trên một số cá thể được chọn từ thế hệ trước – thông thường cũng là những cá thể có độ thích nghi cao Có hai loại thao tác sinh sản được sử dụng: một là lai ghép (crossover), hai là đột biến (mutation) Trong thao tác lai ghép, gen của hai cá thể được chọn trong thế hệ trước sẽ được phối hợp với nhau (theo một số quy tắc nào đó) để tạo thành hai gen mới Thao tác chọn lọc và lai ghép có thể giúp tạo ra thế hệ sau Tuy nhiên, nhiều khi do thế hệ khởi tạo ban đầu có đặc tính chưa phong phú và chưa phù hợp nên các cá thể không rải đều được hết không gian của bài toán Từ đó, khó có thể tìm ra lời giải tối ưu cho bài toán Thao tác đột biến sẽ giúp giải quyết được vấn đề này Đó là sự biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một cá thể ở thế hệ trước tạo ra một cá thể hoàn toàn mới ở thế thệ sau Nhưng thao tác này chỉ được phép xảy ra với tần suất rất thấp (thường dưới 0.01), vì thao tác này có thể gây xáo trộn và làm mất đi những cá thể đã chọn lọc và lai tạo có tính thích nghi cao, dẫn đến thuật toán không còn hiệu quả Thế hệ mới được tạo ra lại được xử lý như thế
hệ trước (xác định độ thích nghi và tạo thế hệ mới) cho đến khi có một cá thể đạt được các yêu cầu mong muốn hoặc đạt đến thời gian giới hạn
Trang 16Hình 1.1: Sơ đồ tổng quan của giải thuật di truyền
Thuật toán di truyền gồm có 4 quá trình cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên như sau:
a) Quá trình lai ghép (Phép lai)
Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể cha – mẹ để hình thành nhiễm sắc thể mới mang đặc tính của cả cha lẫn mẹ Quá trình được diễn ra như sau: Chọn một cách ngẫu nhiên hai hay nhiều cá thể trong quần thể Giả sử chuỗi nhiễm sắc thể của cá thể cha và mẹ có chiều dài là m Tìm điểm lai là một số ngẫu nhiên trong khoảng 1 đến m-1 Như vậy điểm lai này sẽ chia hai chuỗi NST cha mẹ thành 2 nhóm NST con là m1 và m2 Hai chuỗi NST con lúc này sẽ là m11+ m22 và m21 + m12 Đưa hai chuỗi NST con vào quần thể để tiếp tục tham gia quá trình tiến hoá
b) Quá trình đột biến (Phép đột biến)
Quá trình tiến hoá được gọi là đột biến khi một hoặc một số tính trạng của con người không được thừa hưởng từ 2 chuỗi NST cha và mẹ Quá trình đột
Phát sinh quần
thể ban đầu Xác định độ thích nghi của các cá thể trong quần thể
Có cá thể nào đạt đến lời giải tối ưu chưa?
Trình bày lời giải
Trang 17biến thường được xảy ra với xác suất rất thấp, nó có thể được mô tả như sau: Chọn ngẫu nhiên một số k trong khoảng 1 đến m, thực hiện thay đổi giá trị gen thứ k để tạo thành NST con mới, đưa NST con này vào quần thể để tham gia quá trình tiến hoá tiếp theo
c) Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn)
- Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích
nghi của nó Độ thích nghi cá thể là một hàm số thực được xác định cho mỗi cá thể trong quần thể Phép tái sinh có thể mô tả như sau: Tính độ thích nghi của từng cá thể trong quần thể (ký hiệu cá thể thứ i có độ thích nghi là Fi), lập bảng cộng dồn các giá trị thích nghi đó (theo thứ tự gán cho từng cá thể) ta được tổng
độ thích nghi (ký hiệu tổng cộng dồn thứ i là Ft, tổng độ thích nghi của cả quần thể là Fm) Lần lượt tái sinh các cá thể trong quần thể bằng cách tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 đến Fm, chọn cá thể k đầu tiên thoã mãn F≥ Ft đưa vào quần thể của thế hệ mới
- Phép chọn: là quá trình loại bỏ các cá thể xấu trong quần thể Phép chọn
có thể được mô tả như sau: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần, loại bỏ các cá thể ở cuối dãy sắp xếp và chỉ để lại một số các cá thể tốt nhất
* Các bước quan trọng trong việc áp dụng giải thuật di truyền
Để giải quyết vấn đề bằng giải thuật di truyền chúng ta cần thực hiện 7 bước quan trọng sau đây:
Bước 1: Chọn mô hình cho giải pháp của vấn đề Chọn một số tượng trưng cho toàn bộ giải pháp có thể có cho vấn đề
Bước 2: Chỉ định cho mỗi giải pháp một ký hiệu, ký hiệu có thể là dãy của những số 1 và 0 thuộc hệ nhị phân hay dãy số thập phân, dãy của chữ hay của hỗn hợp số và chữ Trong giai đoạn mới làm quen với GA, chỉ nên dùng hệ nhị phân để làm ký hiệu cho giải pháp
Trang 18Bước 3: Tìm hàm số thích nghi cho vấn đề và tính hệ số thích nghi cho từng giải pháp
Bước 4: Dựa trên hệ số thích nghi của từng giải pháp để thực hiện sự tái sinh (reproduction) và biến hoá các giải pháp Các biến hoá gồm: lai ghép (crossover), đột biến (mutation)
Bước 5: Tính các hệ số thích nghi cho các giải pháp mới là loại bỏ những giải pháp kém nhất để chỉ còn giữ lại nhất định một số giải pháp
Bước 6: Nếu chưa tìm được giải pháp tối ưu hay chưa hết hạn kỳ ấn định thì trở lại bước thứ 4 để tiếp tục tìm giải pháp mới
Bước 7: Tìm được giải pháp tối ưu hoặc hết thời gian cho phép thì chấm dứt và báo cáo kết quả tìm được
* Các công thức của giải thuật di truyền
- Tính độ thích nghi eval(vi) của mỗi NST vi(i=1…kích thước quần thể):
𝑒𝑣𝑎𝑙(𝑣𝑖) = f(vi)
∑𝑘𝑖𝑐ℎ𝑡ℎ𝑢𝑜𝑐𝑞𝑢𝑎𝑛𝑡ℎ𝑒𝑖=1 𝑓(𝑣𝑖) với f(vi) là hàm mục tiêu
- Tìm tổng giá trị thích nghi quần thể:
Trang 192.2.2 Thuật toán tối ưu bầy đàn (Particle Swarm Optimization – PSO)
2.2.2.1 Tổng quan về thuật toán tối ưu bầy đàn
Thuật toán tối ưu bầy đàn (tên tiếng Anh là Particle Swarm Optimization, viết tắt là PSO) là một trong những thuật toán được xây dựng dựa trên khái niệm trí tuệ bầy đàn để tìm kiếm lời giải cho các bài toán tối ưu trên một không gian tìm kiếm nào đó PSO là một dạng của các thuật toán tiến hoá quần thể với sự tương tác giữa các cá thể trong một quần thể để khám phá một không gian tìm kiếm PSO là kết quả của sự mô hình hoá việc đàn chim bay đi tìm thức ăn cho nên nó thường được xếp vào các loại thuật toán có sử dụng trí tuệ bầy đàn, được giới thiệu vào năm 1995 tại hội nghị của IEEE bởi James Kenndy và Russell C.Eberhart Thuật toán này đã được áp dụng thành công trong nhiều lĩnh vực
PSO được khởi tạo bằng một nhóm cá thể ngẫu nhiên và sau đó tìm nghiệm tối ưu bằng cách cập nhật các thế hệ Trong các thế hệ, mỗi cá thể được cập nhật theo 2 vị trí tốt nhất Giá trị thứ nhất là vị trí tốt nhất mà nó từng đạt được cho tới thời điểm hiện tại, gọi là Pbest Một nghiệm tối ưu khác mà cá thể
Trang 20này bám theo là nghiệm tối ưu toàn cục GBest, đó là vị trí tốt nhất trong tất cả quá trình tìm kiếm cả quần thể từ trước đế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ả của quần thể tính đến thời điểm hiện tại (Hình 1.2)
Hình 1.2: Sơ đồ 1 điểm tìm kiếm bằng phương pháp PSO
GBest: Vị trí tốt nhất trong quần thể
Vận tốc và vị trí của cá thể trong quần thể được tính như sau:
Trang 21- c1, c2: Các hệ số gia tốc, nhận giá trị từ 1.5 đến 2.5
- r1, r2: Các số ngẫu nhiên nhận giá trị trong khoảng [0;1]
Giá trị của trọng số ω sẽ giảm tuyến tính từ 1 đến 0 tuỳ thuộc vào số lần lặp xác định trước Các nhà nghiên cứu đã tìm ra giá trị của ω lớn cho phép các
cá thể thực hiện mở rộng phạm vi tìm kiếm, giá trị của ω nhỏ làm tăng sự thay đổi để nhận được giá trị tối ưu địa phương Bởi vậy người ta đã nhận thấy rằng, hiệu năng tốt nhất có thể đạt được khi sử dụng giá trị ω lớn (Chẳng hạn 0.9), ở thời điểm bắt đầu và sau đó giảm dần dần cho đến khi đưa ra được giá trị khác nhỏ của ω
2.2.2.2 Thuật toán PSO
1 Khởi tạo quần thể:
(a) Thiết lập các hằng số: kmax, c1, c2
(b) Khởi tạo ngẫu nhiên vị trí cá thể x0 thuộc miền D trong tập IRn với i =
1, 2, , s
(c) Khởi tạo ngẫu nhiên vận tốc cá thể : 0 ≤ v0i ≤ v0max với i = 1, , s (d) Đặt k = 1;
2 Tối ưu hóa:
(a) Đánh giá hàm fki bằng tọa độ của xk tính toán được trong không gian tìm kiếm
(b) Nếu fki <fbesti thì fbesti = fki và pki = xki
(c) Nếu fki <fbestg thì fbestg = fki và pkg = xki
(d) Nếu thỏa mãn tiêu chuẩn hội tụ thì dừng lại rồi thực hiện bước 3
(e) Cập nhật tất cả các vận tốc vki và vị trí xki
(f) Tăng i Nếu i > s thì đặt i = 1, tăng k
Trang 22(g) Quay trở lại từ bước 2(a)
3 Kết thúc
Với kmax là số lần lặp tối đa
2.2.3 Thuật toán tối ưu đàn kiến (Ant Colony Optimization - ACO)
2.2.3.1 Tổng quan về thuật toán tối ưu hoá đàn kiến
Thuật toán tối ưu đàn kiến (tên tiếng Anh là Ant Colony Optimization, viết tắt là ACO) là một metaheuristic có thể áp dụng để giải quyết rất nhiều bài toán tối ưu tổ hợp Thuật toán ACO đầu tiên được đề xuất bởi Dorigo trong luận án tiến sỹ của ông năm 1991 và kể từ đó nguyên tắc căn bản của ACO đã có nhiều thay đổi khác nhau (xem bảng 1.1)
Ant System Dorigo Maniezzo, & Colorni (1991)
Elitist AS Dorigo (1992); Dorigo, Maniezzo, &
Colorni (1996)
Ant-Q Gambardella & Dorig Gambardella (1996)
Ant Colony System Dorigo & Gambardella (1996)
Max-Min AS Stutzle & Hoos (1996, 2000); Stutzle(1999)
Rank-based AS Bullnheimer, Hartl, & Strauss (1997, 1999)
Hyper-cube AS Blum, Roli, & Dorigo (2001); Blum &
Dorigo (2004)
Bảng 1.1 Một số các thuật toán ACO theo thứ tự xuất hiện
Trong quá trình nghiên cứu hành vi của đàn kiến trong tự nhiên, người
Trang 23ta nhận thấy: khi tìm kiếm thức ăn, các con kiến để lại một vết hóa chất (pheromone trail) dọc theo đường đi, chúng có khả năng ứ đọng, bay hơi và
có thể nhận biết bởi các con kiến khác Các vệt mùi này chính là phương tiện giao tiếp để báo đường đi cho các con kiến khác Tại thời điểm lựa chọn, các con kiến sẽ lựa chọn đường đi nào có cường độ mùi lớn nhất Nhờ cách giao tiếp mang tính gián tiếp và cộng đồng này mà đàn kiến trong tự nhiên tìm được đường đi ngắn nhất
Dựa vào ý tưởng trên, các thuật toán ACO sử dụng thông tin heuristic (chính là thông tin có được do các dữ liệu đầu vào của bài toán) kết hợp thông tin từ các vết mùi của các con kiến nhân tạo (artificial ant) để giải các bài toán tối ưu tổ hợp khó bằng cách đưa về bài toán tìm đường đi tối ưu trên đồ thị cấu trúc tương ứng được xây dựng từ đặc điểm của từng bài toán Mỗi con kiến nhân tạo xây dựng lời giải của chúng dựa vào luật phân phối xác suất của các vết mùi nhân tạo và các thông tin heuristic
2.2.3.2 Thuật toán ACO
Lược đồ thuật toán ACO tổng quát được biểu diễn như sau:
procedure ACOMetaheuristicStatic
Set parameters, initialize pheromone trails
while (termination condition not met) do
Trang 242.2.4 Thuật toán Tiến hoá vi phân (Differential Evolution - DE)
2.2.4.1 Tổng quan về thuật toán tiến hóa vi phân
Tiến hoá vi phân (DE) là một dạng thuật toán tiến hóa 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 DE thực hiện tiến hoá 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 được sử dụng để làm biến đổi các
cá thể của quần thể hiện tại
Hình 1.3 : Thông tin định hướng trong DE
2.2.4.2 Thuật toán Tiến hóa vi phân
Hoạt động của DE được mô tả như sau:
Giả sử không gian tìm kiếm là không gian D chiều, N là kích thước
Trang 25quần thể Một cá thể thứ i có thể được biểu diễn:
xi = (xi,1, xi,2,…, xi,D) Trong đó xi,j R, i = 1,2,…,N, j = 1,2,…,D
Để độ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 # r2 # r3 # xi) Khi đó cá thể vi được tính theo công thức:
vi = r1 + F(r2 – r3)
Trong đó F là một số thực dương (thường bé hơn 1) 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 vecto đị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ì xác suất cá thể con ui được tính toán theo công thức:
ui,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:
xi(t + 1) = {𝑢𝑖(𝑡) 𝑛ế𝑢 𝑓(𝑢𝑖(𝑡)) > 𝑓(𝑥𝑖(𝑡))
𝑥𝑖(𝑡) 𝑁𝑔ượ𝑐 𝑙ạ𝑖
Trang 26Cá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ể 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
Quá trình khởi tạo và 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ư sau:
Input: N – Kích thước quần thể, F – bước nhảy định hướng, θc – xác suất
Trang 28Tìm giá trị cực tiểu (hoặc cực đại) hàm:
f(x)→min (max); x Rn (1) Với các điều kiện: gi(x) ≥ o, i = 1,2,….,m
Hi(x) = o, i = 1,2,….,l
Bài toán đặt ra yêu cầu là tìm tập hợp các biến xi, i = 1,….,n thoả mãn các điều kiện ràng buộc đồng thời hàm f(x) đạt giá trị cực tiểu hoặc cực đại Thực ra tìm cực tiểu hoặc cực đại trong toán học không khác nhau nhiều (ta có thể dùng phép biến đổi hàm ngược)
Hàm f(x) trong biểu thức (1) được gọi là hàm mục tiêu hoặc tiêu chuẩn tối
ưu, biểu diễn mối quan hệ giữa tiêu chuẩn chất lượng của quá trình khảo sát và biến độc lập x
Các hàm số gi(x), hi(x) là các điều kiện ràng buộc của bài toán tối ưu dưới dạng đẳng thức và bất đẳng thức Trong không gian các biến, các hàm số này tạo
Trang 29ra miền giới hạn D các khả năng cho phép của hàm f(x) Các hàm gi(x) là các ràng buộc bất bình đẳng, các hàm hi(x) là các ràng buộc bình đẳng
Nếu như D = Rn (với n là số chiều của hàm mục tiêu) có nghĩa là không tồn tại bất kỳ một hàm giới hạn nào, ta nói rằng bài toán tối ưu không có ràng buộc, ngược lại trong trường hợp D Rn thì bài toán (1) gọi là bài toán tối ưu có ràng buộc
2.1.2 Bài toán tối ưu số cơ bản
Trong nghiên cứu về đề xuất các thuật toán tiến hóa nói riêng và nghiên cứu về tối ưu hóa nói chung, các nhà khoa học đã đề xuất một loạt các bài toán tối ưu số cơ bản với nhiều các đặc trưng khác nhau, chẳng hạn 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), co giãn được (scalable) và không co giãn được (non – scalable)
Trong các bài toán này, phương án tối ưu và giá trị tối ưu đã được xác định trước Nhiệm vụ của 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ể phương án đượ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 với điều kiện là các tham số thực nghiệm đặc biệt là các hạn nghạ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
Chi tiết về một số bài toán tối ưu số cơ bản được liệt kê trong phần tiếp theo
2.2 Các bài toán tối ưu cơ bản
2.2.1 Các bài toán tối ưu không ràng buộc
2.2.1.1 Sphere Function
Trang 30- Số lượng biến: n biến