HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG —————————— Nguyễn Dƣơng Kiên NGHIÊN CỨU VỀ THUẬT TOÁN TIẾN HÓA ĐA NHÂN TỐ GIẢI QUYẾT BÀI TOÁN TỐI ƢU LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) Hà Nội - 2020 e HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG —————————— Nguyễn Dƣơng Kiên NGHIÊN CỨU VỀ THUẬT TOÁN TIẾN HÓA ĐA NHÂN TỐ GIẢI QUYẾT BÀI TOÁN TỐI ƢU Chuyên ngành: Hệ thống thông tin Mã số: 8.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Trần Quý Nam Hà Nội - 2020 e i LỜI CẢM ƠN Luận văn đƣợc hoàn thành dƣới sự hƣớng dẫn và chỉ bảo nhiệt tình của TS. Trần Quý Nam giảng viên học viện bƣu chính viễn thông. Trong quá trình làm việc, em không chỉ tích lũy đƣợc nhiều kiến thức và kinh nghiệm quý báu mà còn đƣợc học hỏi ở Thầy một tinh thần làm việc khoa học, đầy tinh thần trách nhiệm.
Qua đây, em xin bày tỏ lòng biết ơn chân thành và sâu sắc tới Thầy. Nhân dịp này, em cũng xin bày tỏ lòng biết ơn tới toàn thể các thầy cô giáo trong học viện Công nghệ Bƣu chính Viễn thông những ngƣời đã dạy bảo em tận tình trong suốt quá trình học tập và tạo điều kiện về cơ sở vật chất để em có thể hoàn thành tốt luận văn này. Cuối cùng, em xin đƣợc gửi lời cảm ơn chân thành tới gia đình, bạn bè đã cổ vũ, động viên và tạo điều kiện cho em trong quá trình học tập và thực hiện luận văn. Dù đã cố gắng hết sức cùng với sự tận tâm của thầy giáo hƣớng dẫn tuy nhiên do trình độ còn hạn chế nên khó tránh khỏi những thiếu sót, em rất mong nhận đƣợc sự đóng góp ý kiến của thầy cô và các bạn.
Hà Nội, ngày tháng năm 2020 Học viên cao học Nguyễn Dƣơng Kiên e ii MỤC LỤC LỜI CẢM ƠN. i DANH SÁCH BẢNG. iv DANH SÁCH HÌNH VẼ .1 Chƣơng 1 TỔNG QUAN .1 Bài toán tối ƣu .1 Tối ƣu hóa tổ hợp .2 Giải bải toán tối ƣu .2 Thuật toán tiến hóa .26 Chƣơng 2 TIẾN HÓA ĐA NHÂN TỐ.1 Các khái niệm liên quan .2 Giải thuật tiến hóa đa nhân tố .3 Khởi tạo quần thể .4 Kỹ thuật di truyền .5 Đánh giá có chọn lọc .6 Sự lựa chọn .37 Chƣơng 3 ÁP DỤNG THUẬT TOÁN TIẾN HÓA ĐA NHÂN TỐ ĐỂ GIẢI CÁC BÀI TOÁN TỐI ƢU ĐƠN MỤC TIÊU .1 Bài toán Knapsack và bài toán Quadratic Assignment Problem .1 Bài toán Knapsack .2 Bài toán Quadratic Assignment .2 Áp dụng thuật toán tiến hóa đa nhân tố để giải đồng thời hai bài toán Knapsack và bài toán Quadratic Assignment Problem .3 Kết quả mô phỏng .2 Tham số thực nghiệm .3 Kết quả thực nghiệm .44 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .46 TÀI LIỆU THAM KHẢO .47 e iv DANH SÁCH BẢNG Bảng 3-1: Kích thƣớc các bài toán sẽ kết hợp giải .43 Bảng 3-2: Tham số thực nghiệm .44 e v DANH SÁCH HÌNH VẼ Hình 1-1: Ví dụ cây khung của đồ thị .5 Hình 1-2: Sơ đồ khối cấu trúc thuật toán di truyền .17 Hình 1-3: Sơ đồ khối thuật toán PSO.23 Hình 1-4: Lời giải nhận đƣợc nhờ thay 2 cạnh (2,3), (1,6) bằng (1,3), (2,6) .25 Hình 1-5: Mô tả các bƣớc tổng thể của các EA .26 Hình 2-1:Nổi bật sự khác biệt giữa tối ƣu hóa đa mục tiêu và đa yếu tố.31 Hình 2-2: Mô tả các bƣớc tổng thể của các EA(thuật toán 1) .32 Hình 2-3: Mô tả các bƣớc tổng thể của các EA (thuật toán 2) .34 Hình 2-4: Mô tả các bƣớc tổng thể của EA (thuật toán 3) .36 Hình 3-1: Sự biểu diễn của các tác vụ trên các không gian tìm kiếm khác nhau đƣợc chuyển về không gian tìm kiếm hợp nhất .39 Hình 3-2: So sánh kết quả cảu MFGA với GA và lời giải tối ƣu trên bài toán QAP .44 Hình 3-3: So sánh kết quả của MFGA với GA và lời giải tối ƣu trên bài toán KP .45 e 1 LỜI NÓI ĐẦU Trong những năm vừa qua, các thuật toán tiến hóa đƣợc áp dụng để giải quyết nhiều bài toán tối ƣu trong khoa học máy tính và trong thực tế. Tuy nhiên, việc thiết kế các thuật toán tiến hóa mới chỉ tập trung vào việc giải quyết có hiệu quả một bài toán tối ƣu tại một thời điểm, chƣa có thuật toán tiến hóa giải quyết đồng thời các bài toán tối ƣu hóa chỉ sử dụng duy nhất một quần thể.
Do vậy, luận văn sẽ tìm hiểu một mô hình tiến hóa mới trong tính toán tiến hóa: mô hình tiến hóa đa nhân tố (Multifactorial Optimization) cho phép giải đồng thời nhiều bài toán tối ƣu mà chỉ dựa trên một quần thể tiến hóa duy nhất. Thuật toán tiến hóa (Evolutionary Algorithms - EAs) dựa theo học thuyết Darwin nói chung đƣợc hình thành trên quan niệm cho rằng, quá trình tiến hóa là quá trình hoàn hảo nhất vì tự nó đã mang tính tối ƣu [1]. Tính tối ƣu đƣợc thể hiện ở chỗ, cá thể sau đƣợc sinh ra bao giờ cũng tốt hơn, hoàn hảo hơn cá thể cha-mẹ, chúng có khả năng thích nghi với sự thay đổi của môi trƣờng cao hơn cá thể cha- mẹ. Thuật toán tiến hóa đƣợc áp dụng trong các bài toán tối ƣu.
Bài toán tối ƣu là bài toán tìm giá trị cực đại hoặc cực tiểu của một hàm hoặc một quá trình nào đó. Cơ chế này đƣợc sử dụng trong nhiều lĩnh vực nhƣ vật lý, hóa học, kinh tế,. Trong thuật toán tiến hóa, một nhóm các cá thể (giải pháp của bài toán) sẽ đƣợc khởi tạo ngẫu nhiên. Trong mỗi thế hệ, những cá thể tốt, thích nghi với môi trƣờng (bài toán) sẽ đƣợc giữ lại.
Quá trình tiếp tục cho đến khi gặp điều kiện dừng của bài toán. Có nhiều thuật toán tiến hóa khác nhau nhƣ: thuật toán di truyền (Genetic Algorithm – GA), thuật toán tối ƣu hóa bầy đàn (Particle Swarm Optimization – PSO), thuật toán đàn kiến (Ant Colony Optimization - ACO),.Trong đó, thuật toán di truyền đƣợc xây dựng dựa trên quy luật tiến hóa sinh học hay phát triển tự nhiên của một quần thể sống. Các cá thể trải qua một quá trình phát triển và sinh sản để tạo ra những cá thể mới cho thế hệ kế tiếp. Trong quá trình tăng trƣởng và phát triển những cá thể xấu tức là những cá thể không thích nghi đƣợc với môi trƣờng sẽ bị đào thải, ngƣợc lại, những cá thể tốt sẽ đƣợc giữ lại (đây chính là quá trình chọn lọc) và đƣợc lai ghép (quá trình lai ghép) để tạo ra những cá thể mới cho thế hệ sau.
Những cá thể e 2 mới đƣợc sinh ra mang những tính trạng của cá thể cha-mẹ (còn gọi là hiện tƣợng di truyền). Thuật toán tối ƣu bầy đàn đƣợc xây dựng dựa vào quá trình mô phỏng sinh học của đàn chim. Để hiểu rõ về thuật toán, hãy xem một ví dụ về quá trình tìm kiếm thức ăn của một đàn chim. Tại thời điểm tìm kiếm cả đàn bay theo một hƣớng nào đó, có thể là ngẫu nhiên.
Tuy nhiên, sau một thời gian tìm kiếm một số cá thể trong đàn bắt đầu tìm ra đƣợc nơi có chứa thức ăn. Tùy vào số lƣợng thức ăn vừa tìm đƣợc mà các cá thể gửi tín hiệu đến các cá thể đang tìm kiếm ở vùng lân cận. Tín hiệu này đƣợc lan truyền trên toàn quần thể. Dựa vào thông tin nhận đƣợc, mỗi cá thể sẽ điều chỉnh hƣớng bay và vận tốc bay theo hƣớng về nơi có nhiều thức ăn nhất.
Cơ chế truyền tin nhƣ vậy thƣờng đƣợc xem là một kiểu hình của trí tuệ bầy đàn. Cơ chế này giúp đàn chim tìm ra nơi có nhiều thức ăn nhất trên không gian tìm kiếm [2]. Các thuật toán tiến hóa trên chỉ dừng lại ở việc giải quyết một bài toán tối ƣu tại một thời điểm. Tuy nhiên, hầu hết các ứng dụng trong thực tế đều yêu cầu phải giải quyết nhiều bài toán tối ƣu cùng lúc, ví dụ nhƣ ứng dụng trong tính toán đám mây.
Do đó, luận văn sẽ tìm hiểu một mô hình tiến hóa mới: mô hình tiến hóa đa nhân tố (Multifactorial Optimization - MFO). Mô hình tiến hóa đa nhân tố là mô hình tiến hóa tổng hợp để giải quyết đồng thời nhiều bài toán tối ƣu. Mỗi bài toán tối ƣu đƣợc coi nhƣ một nhân tố ảnh hƣởng đến quá trình tiến hóa. Ƣu điểm của phƣơng pháp này là chúng ta có thể chuyển vật liệu di truyền từ các bài toán tối ƣu đơn giản đến các bài toán tối ƣu phức tạp.
Điều này có thể đẩy nhanh quá trình tối ƣu hóa, giảm thời gian thực hiện. Cấu trúc luận văn đƣợc tổ chức nhƣ sau Chƣơng 1: Luận văn sẽ trình bày tổng quan về bài toán tối ƣu hóa và các phƣơng pháp để giải quyết một bài toán tối ƣu hóa. Chƣơng 2: Luận văn sẽ trình bày về mô hình tiến hóa đa nhân tố và giải thuật tiến hóa đa nhân tố để giải quyết bài toán tối ƣu hóa. Chƣơng 3: Áp dụng thuật toán tiến hóa đa nhân tố để giải các bài toán tối ƣu đơn mục tiêu e 3 Chƣơng 1 TỔNG QUAN 1.1 Bài toán tối ƣu Giải thuật di truyền (Di truyền - Genetic Algorithm (GA)) Tối ƣu hóa là cơ chế tìm giá trị cực tiểu hoặc cực đại của một hàm hoặc một quá trình nào đó.
Cơ chế này đƣợc sử dụng trong nhiều lĩnh vực nhƣ vật lý, hóa học, kinh tế.để đạt đƣợc mục đích là tối đa hóa hiệu quả, sản xuất hoặc các thƣớc đo khác. Tối ƣu hóa liên quan đến hai khái niệm cực tiểu và cực đại của một hàm f nào đó. Đây là hai bài toán đối lập nhau, trong đó, tìm cực tiểu của hàm f tƣơng đƣơng với tìm cực đại của hàm −f. Về mặt toán học, bài toán tìm cực đại đƣợc định nghĩa nhƣ sau: f : Rn → R, (1.
Miền Rn đƣợc gọi là không gian tìm kiếm. Mỗi phần tử thuộc Rn đƣợc gọi là một giải pháp trong không gian tìm kiếm, X∗ đƣợc gọi là giải pháp tối ưu. Hàm f đƣợc gọi là hàm mục tiêu, hàm này xác định trong không gian n chiều và nhận giá trị thực. Bài toán tối ƣu hóa đƣợc chia làm hai loại chính đó là Tối ƣu rời rạc hay còn gọi là tối ƣu tổ hơp (TƢTH) và Tối ƣu liên tục.