Lý do chọn đề tài Trên thực tế, tồn tại rất nhiều bài toán yêu cầu tối ưu hóa đồng thời nhiều mục tiêu thường là cạnh tranh lẫn nhau ví dụ như: định tuyến các phương tiện giao thông để
Trang 1GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN ĐA MỤC TIÊU
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN HẢI THANH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trần Hải Thanh
GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN ĐA MỤC TIÊU
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Trang 3Đầu tiên, tôi xin chân thành cảm ơn TS Lê Nguyên Khôi đã tận tâm hướng dẫn chỉ bảo và giúp đỡ tôi hoàn thành đề tài luận văn này
Tôi xin gửi lời cảm ơn đến quý thầy cô ở khoa Công nghệ Thông tin, phòng Đào tạo trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã tạo điều kiện thuận lợi cho các học viên cao học như tôi trong suốt thời gian học tập tại trường
Tôi cũng gửi lời cám ơn đến gia đình, bạn bè và đồng nghiệp, những người
đã luôn bên tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình
Tuy đã có những cố gắng nhất định, tiếp cận với thực tế để tìm hiểu và áp dụng khoa học vào cuộc sống, nhưng do thời gian và trình độ còn nhiều hạn chế nên luận văn này khó tránh khỏi các thiếu sót Kính mong nhận được sự đóng góp ý kiến của thầy cô và các bạn
Sau cùng, tôi xin kính chúc quý thầy cô trong khoa Công nghệ Thông tin cũng như Ban Giám Hiệu trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau
Trân trọng
Hà Nội, ngày tháng năm 2014
Học viên
Trần Hải Thanh
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này
là trung thực và không trùng lặp với các đề tài khác của cá nhân tôi, được thực hiện dưới sự hướng dẫn khoa học của Tiến sĩ Lê Nguyên Khôi
Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc
Học viên
Trần Hải Thanh
Trang 5
Mục Lục
LỜI CẢM ƠN 3
LỜI CAM ĐOAN 4
Danh mục các ký hiệu và chữ viết tắt 7
Danh mục các hình vẽ đồ thị 8
Danh mục các bảng 9
MỞ ĐẦU 10
CHƯƠNG 1 TỔNG QUAN VỀ TỐI ƯU ĐA MỤC TIÊU 12
1.1 Giới thiệu bài toán tối ưu đa mục tiêu 12
1.1.1 Mô hình bài toán tối ưu đa mục tiêu có ràng buộc 12
1.1.2 Khái niệm tối ưu Pareto 13
1.1.3 Khái niệm trội Pareto 13
1.1.4 Tập các lời giải tối ưu Pareto 13
1.2 Bài toán cái túi (Knapsack) 14
1.2.1 Bài cái túi dạng 0-1 14
1.2.2 Bài toán cái túi bị chặn 15
1.2.3 Bài toán cái túi không bị chặn 15
1.3 Bài toán cái túi đa mục tiêu 15
1.4 Mô hình bài toán cái túi đa mục tiêu 17
1.4.1 Mô hình mã nhị phân 17
1.4.2 Mô hình mã hóa hoán vị 18
1.4.3 Một số ví dụ mã hóa đối với bài toán cái túi đa mục tiêu 18
1.4.3.1 Mô hình mã hóa nhị phân 18
1.4.3.2 Mô hình mã hóa hoán vị 19
CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 21 2.1.Giới thiệu về giải thuật di truyền 21
2.1.1 Các nguyên tắc căn bản của giải thuật di truyền 21
2.1.2 Các vấn đề chính trong tìm kiếm đa mục tiêu 23
2.1.3 Mô hình tổng quát giải thuật tiến hóa 24
2.2 Một số thuật toán thường được áp dụng giải bài toán tối ưu đa mục tiêu 25
2.2.1 Thuật toán MOGA 25
2.2.2 Thuật toán VEGA 26
2.2.3 Thuật toán SEAMO, SEAMO2 27
2.2.4 Thuật toán NSGA, NSGA2 30
2.2.5 Thuật toán SPEA, SPEA2 35
CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 39
3.1 Cài đặt thuật toán SEAMO2 39
3.1.1 Thuật toán SEAMO2 39
3.1.2 Dữ liệu của bài toán 39
3.1.3 Phương pháp so sánh 39
3.1.4 Mô hình và các toán tử cho bài toán cái túi 0-1 đa mục tiêu 39
3.2 Thuật toán SEAMO2_LG 42
3.2.1 Chiến lược chọn lọc cá thể của thuật toán SEAMO2 42
Trang 63.2.2 Đề xuất cải tiến 43
3.2.3 Kết quả thực nghiệm 46
3.3 So sánh với thuật toán SPEA2, NSGA2 49
KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 52
Tiếng Việt 52
Tiếng Anh 52
Trang 7Danh mục các ký hiệu và chữ viết tắt
Algorithms
Multi-objective Optimization
⃗=(x1,…,xn) : Vector biến quyết định
( ⃗) ( ( ⃗) ( ⃗) ( ⃗)) : Vector hàm mục tiêu
được các nghiệm không trội
tập P
√ : khoảng cách giữa nghiệm x đếm nghiệm lân cận gần nhất thứ k trong tập Et+1
Trang 8Danh mục các hình vẽ đồ thị
Hình 2.1 Mối liên hệ giữa không gian cá thể, vectơ quyết định và mục tiêu 23
Hình 2.2: Mô hình tổng quát giải thuật di truyền 25
Hình 2.3: Minh họa thuật toán MOGA 26
Hình 2.4:Minh họa biên chứa các nghiệm không trội và thứ hạng tương ứng 31
Hình 2.6: Minh họa khoảng cách quy tụ quanh nghiệm i 34
Hình 2.7: Minh họa các biên và thứ hạng 34
Hình 2.8: Minh họa sự quy tụ của các nghiệm quanh một nghiệm 35
Hình 2.9: Minh họa tính toán độ thích nghi của các cá thể 37
Hình 2.10: Minh họa cách xóa bỏ các nghiệm nào có δk nhỏ nhất 37
Hình 3.1: Mô hình mã hóa nhị phân 40
Hình 3.2: Mô hình mã hóa hoán vị 41
Hình 3.3: So sánh mã hóa nhị phân - mã hóa hoán vị 42
Hình 3.4: Minh họa không gian tìm kiếm 44
Hình 3.5: Thuật toán SEAMO2_LG 46
Hình 3.6: So sánh SEAMO2 và SEAMO2_LG – 500 thế hệ 48
Hình 3.7: So sánh SEAMO2 và SEAMO2_LG – 1920 thế hệ 49
Hình 3.8: So sánh thuật toán SEAMO2_LG với NSGA2, SPEA2 50
Trang 9Danh mục các bảng
Bảng 1.1: Ví dụ bài toán cái túi đa mục tiêu 19
Bảng 3.1: Tỷ lệ % thực hiện của các trường hợp thay thế - SEAMO2 43
Bảng 3.2: Tỷ lệ % thực hiện của các trường hợp thay thế - SEAMO2_LG 47
Bảng 3.3: Độ bao phủ trung bình – 500 thế hệ 48
Bảng 3.4: Độ bao phủ trung bình – 1920 thế hệ 49
Bảng 3.5: Độ bao phủ trung bình 50
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Trên thực tế, tồn tại rất nhiều bài toán yêu cầu tối ưu hóa đồng thời nhiều mục tiêu (thường là cạnh tranh lẫn nhau) ví dụ như: định tuyến các phương tiện giao thông để xác định các tuyến đường tối ưu nhằm cung cấp dịch vụ cho một tập hợp các khách hàng có thể liên quan đến một số mục tiêu khác nhau: tổng quãng đường đi (hoặc thời gian thực hiện), lượng xe sử dụng, độ hài lòng của khách hàng (giao hàng trong khoảng thời gian đã thỏa thuận trước), … hay việc
đi chợ mua thức ăn cần đảm bảo sao cho đủ lượng calo cần thiết, chất lượng bữa
ăn đảm bảo, số tiền chi tiêu không vượt quá giới hạn, …
Giải thuật di truyền (GA) là một trong những mô hình tính toán phổ biến và thành công nhất trong lĩnh vực tính toán thông minh Cùng với các kỹ thuật tính toán thông minh khác như tính toán mờ (fuzzy computing), mạng Nơ-ron (neural networks), hệ đa tác tử (multi- agent systems), trí tuệ bầy đàn (swarm intelligence), giải thuật di truyền ngày càng phát triển, được áp dụng rộng rãi trong các lĩnh vực của cuộc sống
Đối với bài toán đa mục tiêu, đã có nhiều phương pháp nghiên cứu đề xuất ra các thuật toán để giải quyết bài toán như: MOGA, NSGA2, SPEA2, SEAMO2,
… trong đó giải thuật SEAMO2 là hiệu quả hơn cả [4] Với giải thuật SEAMO2, việc thay thế cá thể vào quần thể (thực hiện chiến lược chọn lọc tự nhiên) thì độ hội tụ về tập nghiệm tối ưu (với lần chạy ngắn) là chưa cao và khi quần thể nghiệm đã đạt ngưỡng tối ưu (với lần chạy dài) thì sẽ mất nhiều thời gian để loại
cá thể không phù hợp Chính vì vậy, tác giả mạnh dạn nghiên cứu phương pháp cải tiến chiến lược chọn lọc tự nhiên trong giải thuật SEAMO2 để giải các bài
toán tối ưu đa mục tiêu trong luận văn: “Giải thuật di truyền cho bài toán đa mục tiêu”
2 Mục đích nghiên cứu
Mục tiêu của luận văn là nghiên cứu các toán tử trong giải thuật di truyền (hay giải thuật tiến hóa nói chung) đặc biệt là toán tử chọn lọc tự nhiên để chọn lọc và thay thế các lời giải nhằm tối ưu tập lời giải thu được giúp cho giải thuật
di truyền giải quyết hiệu quả các bài toán tối ưu đa mục tiêu
Mục đích cụ thể của luận văn là sử dụng các toán tử di truyền khác nhau đối với thuật toán SEAMO2, ứng dụng cho bài toán cái túi đa mục tiêu, thay đổi chiến lược chọn lọc tự nhiên của thuật toán nhằm cải tiến thuật toán Phương
Trang 11pháp này sẽ được so sánh với kết quả của các thuật toán tối ưu đa mục tiêu khác như: SPEA2, NSGA2, …[3,13,16,17]
Do đó mục tiêu của luận văn là: Nghiên cứu giải thuật di truyền cho bài toán
đa mục tiêu
3 Nhiệm vụ nghiên cứu
Nghiên cứu các mô hình của giải thuật di truyền có áp dụng các nguyên lý tiến hóa và trên cơ sở đó tiếp cận các ý tưởng t thuật toán di truyền để giải bài toán cái túi đa mục tiêu như: NSGA2, SPEA2, SEAMO2, cách thức tìm nghiệm của các thuật toán này để cải tiến thuật toán di truyền có áp dụng nguyên lý tiến hóa SEAMO2
4 Đối tượng và phạm vi nghiên cứu
Tìm hiểu về bài toán tối ưu đa mục tiêu, bài toán cái túi 0-1 đa mục tiêu Tìm hiểu về giải thuật tiến hóa, các mô hình giải thuật tiến hóa có thể áp dụng cho bài toán cái túi 0 - 1 đa mục tiêu
Xây dựng ứng dụng giải bài toán cái túi 0 - 1 đa mục tiêu với giải thuật SEAMO2 và đề xuất phương pháp cải tiến giải thuật
So sánh kết quả thực nghiệm của phương pháp đề xuất với các kết quả của các thuật toán khác
5 Phương pháp nghiên cứu
Dựa trên tài liệu thu thập t nhiều nguồn (tài liệu, bài báo do giảng viên hướng dẫn cung cấp, sách, báo, tạp chí, internet…) tổng hợp, phân tích và trình bày lại theo sự hiểu biết của bản thân
Mở rộng các cách tiếp cận trước đây trên cơ sở phân tích đặc thù giải thuật, bài toán cần giải quyết để đưa ra những ý kiến, đề xuất cải tiến hợp lý
Ứng dụng những kết quả dựa trên nghiên cứu để xây dựng chương trình thực nghiệm, t đó so sánh với kết quả của các thuật toán tối ưu đa mục tiêu khác
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ TỐI ƯU ĐA MỤC TIÊU
1.1 Giới thiệu bài toán tối ưu đa mục tiêu
Tối ưu đa mục tiêu (multiobjective optimization) hay cũng còn gọi là tối
ưu đa tiêu chuẩn (multicriteria optimization), tối ưu đa nhiệm (multiperformance optimization) hay tối ưu vectơ (vector optimization) có thể được định nghĩa như là một bài toán tìm kiếm vectơ của các biến quyết định mà
nó thỏa mãn các ràng buộc và tối ưu hóa một hàm vectơ mà các thành phần của
nó biểu diễn các hàm mục tiêu thông thường đối nghịch lẫn nhau Vì vậy thuật ngữ tối ưu có nghĩa là tìm kiếm một lời giải mà nó cho các giá trị của các hàm mục tiêu có thể chấp nhận được đối với người thiết kế Chúng ta gọi các đại lượng số mà các giá trị của nó được chọn cho bài toán tối ưu hóa là các biến quyết định, ký hiệu là ( ) Vectơ của biến lấy quyết định được biểu diễn như sau[1, 2]:
Trong mỗi bài toán tối ưu đa mục tiêu luôn luôn có các hạn chế được đặt ra bởi các đặc trưng đặc biệt của môi trường hay các tài nguyên có sẵn Các hạn chế này phải được thỏa mãn trong việc xem xét lời giải nào đó có thể chấp nhận được Tổng quát, chúng ta gọi các hạn chế này là các ràng buộc, chúng mô tả sự phụ thuộc giữa các biến lấy quyết định và các hằng số (hay các tham số) trong bài toán Các ràng buộc thường được biểu diễn dưới dạng bất đẳng thức toán học như sau [1, 2]:
Để biết một lời giải nào đó tốt như thế nào chúng ta cần phải có một số tiêu chuẩn để đánh giá nó Các tiêu chuẩn này được biểu diễn như là các hàm toán học theo các biến quyết định, chúng được gọi là các hàm mục tiêu Trong các hàm mục tiêu đó, một số hàm này đối nghịch với một số hàm khác, và một số mục tiêu thì được cực tiểu hóa trong khi các mục tiêu khác thì được cực đại hóa Các hàm mục tiêu này có thể so sánh được với nhau, nghĩa là chúng được đo lường trong các đơn vị giống nhau, hay không so sánh được với nhau, nghĩa là chúng được đo lường trong các đơn vị khác nhau [1,2]
1.1.1 Mô hình bài toán tối ưu đa mục tiêu có ràng buộc
Chúng ta xét một mô hình tối ưu đa mục tiêu có ràng buộc gồm có hàm mục tiêu
( ) ( )
và r hàm (có thể phi tuyến) ràng buộc
( ) ( )
Trang 13với ⃗ ( ) là biến quyết định n chiều được định nghĩa theo mô hình sau
, ( )- ( ) sao cho
( ) ( ) Chúng ta có một vectơ sao cho
( ) ( ) ( ) với tất cả lời giải khả thi Nếu trường hợp này xảy ra, được gọi là lời giải mong ước (desirable solution) hay lời giải lý tưởng (ideal solution), điều này có nghĩa là tất cả các ( ) đều có cực đại trong Yf tại một điểm chung Nhưng chúng ta thường không có được lời giải lý tưởng này, nên chúng ta phải thiết lập một tiêu chuẩn để xác định cái gì sẽ được xem là lời giải tối ưu Trong luận văn này, chúng ta chỉ xem xét tiêu chuẩn tối ưu theo khái niệm tối ưu Pareto
1.1.2 Khái niệm tối ưu Pareto
Khái niệm tối ưu Pareto được giới thiệu bởi Vilfredo Pareto vào năm 1896, và
nó tạo thành cơ sở cho việc nghiên cứu trong lĩnh vực này Ta có định nghĩa như sau :
Gọi ( ) ( ) ( ) ( )/ ( ) là hàm vectơ chiều Gọi là tập lời giải khả thi của mô hình trên, nghĩa là tập các vectơ thỏa mãn các điều kiện ràng buộc [1,2]
1.1.3 Khái niệm trội Pareto
Gọi là hai lời giải khả thi Ta nói trội hơn nếu và chỉ nếu ( ) tốt hơn ( ), nghĩa là :
( ) ( ) ( ) và ( ) ( ) ( )
và * +: ( ) ( ) hay * +: ( ) ( )
1.1.4 Tập các lời giải tối ưu Pareto
Khái niệm: Gọi * sao cho ( ) tốt hơn ( )+ là tập các lời giải khả thi bị trội của Khi đó là tập các lời giải khả thi không bị trội của hay còn gọi là tập các lời giải tối ưu Pareto của
Tuy nhiên, điểm tối ưu Pareto hầu như luôn luôn không duy nhất, mà có đến một tập các điểm tối ưu Pareto thường được gọi là tập các lời giải không bị trội (non-dominated) Thông thường một lớp bài toán tối ưu đa mục tiêu trong thiết kế kỹ thuật
có một tập tối ưu Pareto, và các bài toán đó lại có một số lượng lớn các lời giải có khả năng để chọn lựa, và điều này gây khó khăn ở 2 điểm: một là việc phát sinh ra tập lời giải, hai là việc xử lý các kết quả
Toàn bộ các lời giải tối ưu Pareto được gọi là tập tối ưu Pareto, các vectơ mục
Trang 14tiêu tương ứng thành lập một biên (front) Pareto hay mặt (surface) Pareto
Trong hầu hết các trường hợp, sẽ có nhiều lời giải tối ưu khác nhau theo nghĩa Pareto khi đó ta sẽ phải tìm kiếm các giá trị của các hàm mục tiêu để quyết định giá trị nào của chúng là thích hợp nhất gọi là quá trình lấy quyết định Nếu ta biết trước được tầm quan trọng tương đối của mỗi hàm mục tiêu thì quá trình lấy quyết định sẽ đơn giản Tuy nhiên, trong nhiều trường hợp ta không biết tầm quan trọng tương đối của mỗi hàm mục tiêu vì nó không đầy đủ hay không thể biểu diễn một cách hình thức hóa đầy đủ, nên các phương pháp này thường không được áp dụng trong thực
tế
Một cách tổng quát, ta không dễ dàng tìm được một biểu diễn giải tích cho các đường hay các mặt chứa các điểm tối ưu Pareto và các thủ tục chuẩn để tính toán các điểm trong cho các điểm tương ứng của nó trong Tuy nhiên, khi ta có một số lượng tương đối đầy đủ các điểm này thì ta có thể tiến hành lấy quyết định cuối cùng
1.2 Bài toán cái túi (Knapsack)
Bài toán cái túi theo [1,10] là một bài toán tối ưu hóa tổ hợp Bài toán được đặt tên t vấn đề chọn những gì quan trọng có thể nhét v a vào trong một cái túi (với giới hạn khối lượng) để mang theo trong một chuyến đi
Martello và Toth [10] xây dựng bài toán cái túi đơn mục tiêu là một tập hợp n đồ vật và một cái túi Mỗi đồ vật có một trọng lượng wi và một giá trị pi với mục tiêu là tìm một tập con của n đồ vật sao cho tối đa giá trị các đồ vật mà không vượt quá giới hạn khối lượng của cái túi
Nội dung bài toán : Một kẻ trộm đột nhập vào một cửa hiệu tìm thấy có n mặt hàng có trọng lượng và giá trị khác nhau, nhưng hắn chỉ mang theo một cái túi có sức chứa về trọng lượng tối đa là M Vậy kẻ trộm nên bỏ vào túi những món nào và số lượng bao nhiêu để đạt giá trị cao nhất trong khả năng mà hắn có thể mang đi được
Các bài toán tương tự thường xuất hiện trong kinh doanh, toán tổ hợp, lý thuyết độ phức tạp tính toán, mật mã học và toán ứng dụng
1.2.1 Bài cái túi dạng 0-1
Hạn chế số đồ vật thuộc mỗi loại là 0 (không được chọn) và 1 (được chọn)
Bài toán cái túi 0-1 có thể được phát biểu bằng toán học như sau [1,10]:
Cực đại hóa:
∑ sao cho
Trang 15∑
1.2.2 Bài toán cái túi bị chặn
Hạn chế số đồ vật thuộc mỗi loại không được vượt quá một lượng nào đó Bài toán cái túi bị chặn có thể được phát biểu bằng toán học như sau: Cực đại hóa
∑ sao cho
1.2.3 Bài toán cái túi không bị chặn
Không có một hạn chế nào về số lượng đồ vật mỗi loại
Một trường hợp đặc biệt của bài toán này nhận được nhiều quan tâm, đó
là bài toán với các tính chất:
là một bài toán quyết định
là một bài toán 0-1
với mỗi đồ vật, chi phí bằng giá trị: C = V
Bài toán cái túi thường được giải bằng quy hoạch động, tuy chưa có một thuật toán thời gian đa thức cho bài toán tổng quát Cả bài toán cái túi tổng quát
và bài toán tổng con đều là các bài NP-khó, và điều này dẫn đến các cố gắng sử dụng tổng con làm cơ sở cho các hệ thống mật mã hóa khóa công khai, chẳng hạn Merkle-Hellman Các cố gắng này thường dùng nhóm thay vì các số nguyên Merkle-Hellman và một số thuật toán tương tự khác đã bị phá, do các bài toán tổng con cụ thể mà họ tạo ra thực ra lại giải được bằng các thuật toán thời gian đa thức
1.3 Bài toán cái túi đa mục tiêu
Martello và Toth[10] cũng định nghĩa bài toán bái túi đa mục tiêu trong
đó bao gôm n đồ vật và m cái túi, mỗi cái túi có một giới hạn trọng lượng ( ) Bài toán cái túi đa mục tiêu (MKP) là bài toán tổng quát hóa của bài toán cái túi dạng đơn giản Ở dạng này, một tập hợp các đồ vật được lựa chọn sao cho thỏa mãn tối đa một tập các ràng buộc của ba lô Bài toán có thể phát biểu bằng toán học như sau [10]:
Cực đại hóa
Trang 16∑ sao cho
∑
Trong đó: là số đồ vật với giá trị mỗi đồ vật thứ là và ba lô với sức chứa mỗi ba lô thứ là , mỗi đồ vật sẽ có trọng lượng trong mỗi ba lô , * + để chỉ ra đồ vật được chọn hay không được chọn Mục tiêu của bài toán là để chọn một tập con các đồ vật sao cho có giá trị đối đa Các đồ vật được lựa chọn phải không vượt quá khả năng của ba lô tương ứng Tuy nhiên, đề xuất trên đã không được sử dụng rộng rãi cho đến khi Zitzler and Thiel
đề xuất mô hình mới cho bài toán cái túi đa mục tiêu, mô hình được mô tả bởi Zitzler and Thiele [17] là mô hình đa mục tiêu được mở rộng t mô hình đơn mục tiêu của Martello và Toth [10] T đó, bài toán này đã được sử dụng rộng rãi như là một bài toán chuẩn để đánh giá hiệu suất không chỉ cho các thuật toán tiến hóa đa mục tiêu mà còn cho các thuật toán tìm kiếm khác [10, 14, 17]
Mô hình dạng 0-1 được xác định như sau: Cho một tập hợp n đồ vật và m cái túi, trọng lượng và giá trị của mỗi đồ vật tương ứng với mỗi túi là khác nhau
và bị ràng buộc bởi khả năng có thể chứa của mỗi cái túi Mục tiêu của bài toán
là tìm một tập hợp các đồ vật sao cho giá trị ở mỗi túi là tối đa và có trọng lượng không vượt quá khả năng của mỗi túi [17]
– giá trị của đồ vật trong túi – trọng lượng của đồ vật trong túi – thể tích của túi
tìm vector ⃗ ( ) * + sao cho:
Trang 17Ở bài toán cái túi đa mục tiêu, ta phải giải quyết các vấn đề sau :
Chọn các đồ vật vào tất cả cái túi có thể
Mỗi cái túi có thể tích khác nhau
Mỗi đồ vật có thể có trọng lượng và giá trị khác nhau đối với mỗi cái túi
1.4 Mô hình bài toán cái túi đa mục tiêu
1.4.1 Mô hình mã nhị phân
Mô hình mã nhị phân là mô hình phổ biến nhất, các công trình đầu tiên về giải thuật di truyền thường sử dụng mô hình này
Trong mô hình mã nhị phân, mỗi cá thể là một chuỗi các bits có giá trị là
0 hoặc 1 Mô hình mã nhị phân cho nhiều cá thể tốt ngay cả với quần thể số lượng nhỏ Nhưng mặt khác mô hình này thường là không tự nhiên đối với một
số bài toán và đôi khi chúng ta phải sửa chữa các cá thể thu được sau khi lai ghép hoặc đột biến
Cá thể A 101100101100101011100101
Cá thể B 111111100000110000011111 Đối với mô hình này ta có thể sử dụng các phép lai ghép:
Single point crossover: Ta chọn một điểm ngẫu nhiên làm điểm lai phép,
chuỗi nhị phân t đầu đến điểm lai ghép sẽ được sao chép t cá thể cha mẹ đầu tiên, phần còn lại được sao chép t cá thể cha mẹ còn lại
11001011+11011111 = 11001111 Two point crossover: Ta chọn hai điểm lai ghép, chuỗi nhị phân t đầu
đến điểm lai ghép đầu tiên được sao chép t cá thể cha mẹ đầu tiên, phần t điểm lai ghép đầu tiên đến điểm lai ghép thứ hai được sao chép t cá thể cha mẹ còn lại, phần còn lại được sao chép t cá thể cha mẹ đầu tiên
11001011 + 11011111 = 11011111 Uniform crossover: mỗi bit sẽ được sao chép ngẫu nhiên t cá thể cha
hoặc mẹ
11001011 + 11011101 = 11011111 Arithmetic crossover: Một số phép toán số học trên bit sẽ được áp dụng
để tạo ra cá thể con mới
11001011 + 11011111 = 11001001 (AND)
Mô hình này áp dụng phép đột biến là Bit inversion, các bit được chọn sẽ được ngẫu nhiên đảo ngược
11001001 => 10001001
Trang 181.4.2 Mô hình mã hóa hoán vị
Trong mô hình mã hóa hoán vị mỗi cá thể là một dãy các con số, đại diện cho một cách sắp xếp số thứ tự của các đồ vật
Cá thể A 1 5 3 2 6 4 7 9 8
Cá thể B 8 5 6 7 2 3 1 4 9 Các phép lai ghép có thể áp dụng:
Single point crossover: một điểm lai ghép sẽ được chọn, t đầu đến điểm
lai ghép này ta sao chép t cá thể cha mẹ đầu tiên sau đó cá thể cha mẹ còn lại sẽ được kiểm tra, nếu số được kiểm tra chưa có trong cá thể con thì thêm số đó vào
cá thể con
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7) Cycle crossover: Ở phép lai ghép này, mỗi vị trí của cá thể con sẽ là kết
quả của việc lấy giá trị t vị trí tương tự của cá thể cha mẹ
(8 7 6 4 1 2 5 3 9 10) + (2 5 1 7 3 8 4 6 10 9) = (2 5 6 7 1 8 4 3 10 9)
Các phép đột biến có thể áp dụng:
Displacement Mutation: Chọn hai điểm ngẫu nhiên, lấy các số giữa
chúng, sau đó đưa các số đó vào một vị trí ngẫu nhiên
(0 1 2 3 4 5 6 7) =(0 3 4 5 1 2 6 7) Insertion Mutation: Đây là phương pháp đột biến rất hiệu quả, nó tương
tự như Displacement Mutation, điểm khác biệt là chỉ có một số được chọn Trong các thử nghiệm thì phương pháp đột biến này luôn có kết quả tốt hơn các phương pháp đột biến còn lại
(0 1 2 3 4 5 6 7) = (0 1 3 4 5 2 6 7) Inversion Mutation: Chọn hai điểm ngẫu nhiên và đảo ngược các số
giữa chúng
(0 1 2 3 4 5 6 7) = (0 4 3 2 1 5 6 7) Displaced Inversion Mutation: Chọn hai điểm ngẫu nhiên, đảo ngược
các số giữa hai điểm này, sau đó đưa vào vị trí bất kỳ trong cá thể gốc
(0 1 2 3 4 5 6 7) = (0 6 5 4 1 2 3 7) 1.4.3 Một số ví dụ mã hóa đối với bài toán cái túi đa mục tiêu
1.4.3.1 Mô hình mã hóa nhị phân
Trong bài toán cái túi 0-1 đa mục tiêu với mô hình mã hóa nhị phân, mỗi bit sẽ cho biết đồ vật đó có được chọn vào túi hay không
Cá thể 101100101100101011100101
Trang 19Với mô hình này mỗi cá thể (phương án) sẽ là một vector ( ) với nếu đồ vật thứ i được chọn vào túi, và nếu
đồ vật thứ i không được chọn Việc tạo ra các bits của vector có thể khởi tạo ngẫu nhiên
Giả sử có 10 đồ vật muốn cho vào hai cái túi mô tả như sau:
Bảng 1.1: Ví dụ bài toán cái túi đa mục tiêu
1.4.3.2 Mô hình mã hóa hoán vị
Đối với bài toán cái túi 0-1 đa mục tiêu để áp dụng được mô hình mã hóa hoán vị phải dựa trên một bộ giải mã [8] Đối với các bộ giải mã các giải pháp của bài toán được biểu diễn như là một hoán vị đơn giản của các đối tượng được chọn Bộ giải mã sẽ chọn lần lượt các cá thể bắt đầu t đầu danh sách hoán vị, với mỗi đối tượng được chọn bộ giải mã sẽ kiểm tra để đảm bảo rằng bất kỳ cái túi nào cũng không bị vượt quá tải trọng tối đa Việc giải mã sẽ ng ng ngay lập tức khi vượt quá tải trọng của một cái túi, và khi điều này xảy ra, đồ vật đó sẽ bị lấy ra khỏi mọi túi Như vậy, mỗi một túi chứa chính xác cùng một đồ vật theo yêu cầu và mỗi giải pháp được tạo thành là một giải pháp khả thi
Giả sử có 10 đồ vật muốn cho vào hai cái túi mô tả như bảng 1.1, ta có thể lấy một hoán vị của các đồ vật như {2,5,1,7,9,8,10,3,4,6}, bộ giải mã đầu tiên chọn đồ vật 2 với trọng lượng là 8 đối với túi 1 và 4 đối với túi 2, tiếp theo
là đồ vật thứ 5 với trọng lượng là 3 đối với túi 1 và 9 đối với túi 2, cho ta tổng
Trang 20trọng lượng là 11 đối với túi 1 và 12 đối với túi 2 Bộ giải mã sẽ thực hiện chọn
các đồ vật t danh sách hoán vị cho đến khi nó chọn đến đồ vật 10 và cho tổng
trọng lượng là 36 đối với túi 1, 39 đối với túi 2 Trọng lượng 39 trong túi 2 vượt
quá tải trọng của túi do đó đồ vật cuối cùng được chọn (đồ vật 10) sẽ bị xóa bỏ
khỏi cả hai túi Vector giá trị cho việc chọn các đồ vật 2, 5, 1, 7, 9, 8 là {32, 24}
Trang 21CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN TỐI ƯU
ĐA MỤC TIÊU 2.1 Giới thiệu về giải thuật di truyền
Các bài toán tối ưu đa mục tiêu thường hướng đến một đặc trưng bởi một tập các lựa chọn được xem xét tương đương với nhau trong tình trạng thiếu thông tin về mối tương quan của mỗi mục tiêu với các mục tiêu khác Khi số lượng các mục tiêu cạnh tranh với nhau gia tăng và ít các mục tiêu có hành vi tốt thì độ phức tạp của bài toán sẽ tăng nhanh chóng
Trong sự phát triển của các giải thuật di truyền, người ta đã nhận thấy rằng các giải thuật di truyền có khả năng thích hợp tốt nhất cho tối ưu hóa đa mục tiêu Nhiều cá thể có thể được tìm kiếm cho nhiều lời giải song song với nhau Khả năng để xử lý các bài toán phức tạp có các đặc trưng như : tính không liên tục, đa phương thức, không gian tìm kiếm tách rời và các hàm định giá bị nhiễu,
đã củng cố tính hiệu quả tiềm năng của các giải thuật di truyền trong tìm kiếm và tối ưu đa mục tiêu [1]
2.1.1 Các nguyên tắc căn bản của giải thuật di truyền
Tổng quát, một giải thuật di truyền được đặc trưng bởi ba yếu tố sau :
Một tập các lời giải ứng viên P
Tập P được thay đổi trong quá trình chọn lọc
Được xử lý bởi các toán tử di truyền, thường là lai ghép và đột biến
Tương tự như tiến hóa trong tự nhiên, các lời giải ứng viên được gọi là các cá thể và tập các lời giải ứng viên được gọi là quần thể Mỗi cá thể biểu diễn một lời giải có khả năng, nghĩa là một vectơ của các biến quyết định hay gọi tắt là vectơ quyết định, đối với bài toán đang xử lý, tuy nhiên một cá thể không phải là một vectơ quyết định, đúng hơn là nó đã được mã hóa dựa trên một cấu trúc thích hợp [1,7]
Quá trình chọn lọc có thể là ngẫu nhiên hay được xác định hoàn toàn Trong quá trình chọn lọc, các cá thể có chất lượng thấp bị loại bỏ ra khỏi quần thể trong khi đó các cá thể chất lượng cao thì được sinh sản Mục đích là tập trung việc tìm kiếm trên phần đặc biệt của không gian tìm kiếm nhằm gia tăng chất lượng trung bình của cá thể trong quần thể [1,2,7]
Mục đích của tái tổ hợp và đột biến là phát sinh ra các lời giải mới bên trong không gian tìm kiếm bằng cách biến dạng các cá thể hiện đang có Toán tử lai ghép lấy ra một số các cha và tạo ra một số các con bằng cách tái tổ hợp các cha lại với nhau Để mô phỏng tính tự nhiên ngẫu nhiên của quá trình tiến hóa, một xác xuất lai ghép được kết hợp với toán tử này Ngược lại, toán tử đột biến hiệu
Trang 22chỉnh các cá thể bằng cách thay đổi những phần nhỏ bên trong vectơ liên kết tương ứng với một tỉ lệ đột biến đã cho Cả hai toán tử lai ghép và đột biến đều làm việc trên các cá thể Nghĩa là trong không gian cá thể, không phải trên vectơ quyết định đã được giải mã[2]
Dựa vào các khái niệm trên, tiến hóa tự nhiên được mô phỏng bằng một quá trình tính toán lặp đi lặp lại Đầu tiên một quần thể ban đầu được khởi tạo một cách ngẫu nhiên (hay tương ứng với một lược đồ đã được định nghĩa trước), nó chính là điểm khởi đầu của một quá trình tiến hóa Kế đến là một vòng lặp bao gồm các bước như định giá (gán giá trị fitness), chọn lọc, tái tổ hợp và đột biến được thực thi trong một số lần lặp hữu hạn nào đó Mỗi lần lặp của vòng lặp được gọi là một thế hệ, và thường là có một số khá lớn, gọi là ngưỡng, được xác định trước làm điều kiện kết thúc của vòng lặp khi số lần lặp vượt qua ngưỡng
đó Nhưng cũng có một số điều kiện khác, như tình trạng đình trệ trong quần thể hay đã có một cá thể có chất lượng đủ, có thể được dùng để d ng vòng lặp Sau cùng các cá thể tốt nhất trong quần thể cuối cùng hay tìm được trong toàn bộ quá trình tiến hóa sẽ là kết quả của giải thuật tiến hóa[2]
Ta có một số ký hiệu như sau :
: không gian các cá thể
: không gian vectơ quyết định
: không gian vectơ mục tiêu
: quần thể, chứa một số cá thể thuộc I (có thể gồm nhiều cá thể giống nhau) : là một ánh xạ, t tập sang tập , biến đổi một cá thể thành một vectơ quyết định ( )
( ) f: là hàm mục tiêu, ứng với một vectơ quyết định ta có một vectơ mục tiêu ( )
Mối liên hệ giữa không gian các cá thể, không gian vectơ quyết định và không gian mục tiêu có thể được biểu diễn như hình sau:
Trang 23Hình 2.1 Mối liên hệ giữa không gian cá thể, vectơ quyết định và mục tiêu
2.1.2 Các vấn đề chính trong tìm kiếm đa mục tiêu
Vì các giải thuật di truyền có tính th a kế song song nên các giải thuật di truyền có tiềm năng tìm kiếm được nhiều lời giải tối ưu Pareto trong một lần chạy thử Tuy nhiên, trong nhiều bài toán phức tạp chúng lại không có khả năng phát sinh ra các lời giải không bị chặn hoặc chỉ phát sinh ra rất ít tập tối ưu Pareto mà thôi Vì vậy mục đích tối ưu của một giải thuật di truyền dựa trên cơ
Tương ứng với ba mục tiêu trên, khi giải quyết các giải thuật di truyền áp dụng vào các bài toán tối ưu đa mục tiêu ta cần giải quyết các vấn đề sau:
1 Cách thức xử lý các hàm mục tiêu và xây dựng hàm fitness
2 Làm thế nào để thực hiện việc gán giá trị fitness và chọn lọc để chúng đều có khả năng hướng dẫn việc tìm kiếm hướng đến tập tối
ưu Pareto
3 Làm thế nào để duy trì một quần thể đa dạng để ngăn cấm sự hội tụ mới và đạt được một tập không bị trội có độ phân bố và phát triển tốt
Trang 242.1.3 Mô hình tổng quát giải thuật di truyền
Một giải thuật di truyền (hay một chương trình tiến hóa bất kỳ) giải một bài toán cụ thể gồm 5 thành phần [2]:
– Cách biểu diễn di truyền cho lời giải của bài toán
– Cách khởi tạo quần thể ban đầu
– Hàm lượng giá trong vai trò môi trường
– Các phép toán di truyền (lựa chọn, lai ghép, đột biến)
– Các tham số khác (kích thước quần thể, xác suất áp dụng các phép toán di truyền, …)
Mô hình của giải thuật di truyền có thể mô tả dưới dạng giả mã như sau:
Until (điều kiện d ng thỏa mãn) End
Trang 25Hình 2.2: Mô hình tổng quát giải thuật di truyền
Đã có nhiều công trình nghiên cứu nhằm mô hình hóa toán học giải thuật
di truyền, các ảnh hưởng của các toán tử di truyền lên hành vi của giải thuật, đặc biệt là hành vi hội tụ tới nghiệm tối ưu
2.2 Một số thuật toán thường được áp dụng giải bài toán tối ưu đa mục
tiêu
2.2.1 Thuật toán MOGA
Thuật toán này được đề nghị bởi Fonseca và Fleming Trong MOGA, thứ hạng của cá thể hiện tại sẽ dựa vào số lượng các cá thể trội hơn cá thể hiện tại trong hồ chứa Tất cả cá thể không bị trội sẽ được gán một giá trị thích nghi cao nhất [9]
Trang 26Thuật toán MOGA
2.2.2 Thuật toán VEGA
David Shaffer là một trong những người đầu tiên đề nghị một cách cài đặt thuật giải tiến hóa là VEGA vào năm 1984 : chọn (selection), lai (crossover) và đột biến (mutation) Trong Thuật toán này, hồ chứa các cá thể cha mẹ sẽ được chia nhỏ thành nhiều hồ chứa con, các hồ chứa này sẽ được bỏ đầy các cá thể thông qua việc chọn cá thể dựa trên một mục tiêu nào đó Sau đó sẽ cho chọn ngẫu nhiên và tiến hành lai, đột biến Việc chọn ngẫu nhiên tiến hành lai để đảm bảo rằng các cá thể trong các hồ chứa nhỏ sẽ được lai với nhau Thuật toán này chạy tốt ở một vài thế hệ, nhưng một vài trường hợp, Thuật toán này sẽ sinh ra các cá thể quá tốt trong các hồ chứa, điều này làm mất đi tính đa dạng của Thuật toán tiến hóa [11,12]
Hình 2.3: Minh họa thuật toán MOGA