Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 167 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
167
Dung lượng
697,23 KB
Nội dung
Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA PHAN ANH TUẤN XÂY DỰNG MỘT FRAMEWORK H ƯỚNG ĐỐI TƯỢNG CHO GIẢI THUẬT MEMETIC V À ỨNG DỤNG VÀO VIỆC GIẢI BÀI TOÁN PHỦ TẬP Chuyên ngành : Khoa Học Máy Tính LUẬN VĂN THẠC SĨ TP.HỒ CHÍ MINH, THÁNG 09 NĂM 2007 CƠNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH Cán hướng dẫn khoa học: Tiến sĩ DƯƠNG TUẤN ANH Cán chấm nhận xét 1: Tiến sĩ NGUYỄN VĂN HIỆ P Cán chấm nhận xét 2: Tiến sĩ NGUYỄN ĐÌNH THÚC Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA ngày 08 tháng 09 năm 2007 LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành đến: - Tiến sĩ Dương Tuấn Anh tận tình bảo, hướng dẫn nghiên cứu thực luận văn Nếu khơng có theo dõi động viên thầy, tơi khơng thể hồn thành luận văn thời gian quy định - Các thầy cô Khoa Công Nghệ Thông Tin tr ường Đại học Bách Khoa TP.Hồ Chí Minh tận tâm giảng dạy mở cho đường đến với tri thức - Gia đình, bạn bè thân thiết người bên tôi, động viên khuyến khích tơi vào thời điểm quan trọng đời i TÓM TẮT Một cách tiếp cận đ ược ưa thích để giải tốn tối ưu tổ hợp thuộc lớp toán NP-đầy đủ dùng giải thuật memetic, kết hợp giải thuật di truyền tìm kiếm cục Luận văn tìm hiểu vấn đề giải thuật memetic, sau xây dựng framework h ướng đối tượng cho giải thuật memetic tảng ngôn ngữ Java Bởi v ì việc phát triển ứng dụng cụ thể, có áp dụng giải thuật memetic, l công việc tốn nhiều thời gian v công sức, framework có ích việc hổ trợ thiết kế v thực nhanh ứng dụng cụ thể giải giải thuật memetic B ên cạnh đó, luận văn sử dụng framework vào việc phát triển giải thuật memetic giải b ài toán phủ tập, xem tốn NP-đầy đủ, để chứng minh tính hữu ích hiệu việc sử dụng framework Quá tr ình thử nghiệm cho thấy: 1) framework tiện dụng cho việc phát triển v thực giải thuật memetic để giải toán thực tế 2) Giải thuật memet ic hữu hiệu thời gian thực thi nhiều so với giải thuật di truyền tuý ii ABSTRACT Memetic algorithm is the one of existing, successful methods for solving NP complete combinatorial optimization problems Memetic algorithm is t he combination of genetic algorithm and local search In this thesis, the fundamentals of memetic algorithms will be studied, then an object oriented framework for memetic algorithm is developed in Java It’s very useful to use such a framework to design and implement a certain memetic algorithm rapidly, because building an application using memetic algorithm is complicated and time -comsuming Our framework has been tested through an application : solving set covering problems (SCP), which has been proven t o be NP-complete Computational results show that: 1) this framework is particularly useful for designing and implementing a memetic algorithm for some application 2) The run -time efficiency of the memetic algorithm for SCP is better than that of a pure g enetic algorithm for the same problem iii MỤC LỤC CHƯƠNG GIỚI THIỆU 1.1 Giới thiệu đề tài 1.2 Nhiệm vụ luận văn 1.3 Những kết đạt luận văn 1.4 Cấu trúc luận văn CHƯƠNG TỔNG THUẬT VỀ CÁC CƠNG TR ÌNH ĐÃ CÓ TRÊN THẾ GIỚI LIÊN QUAN ĐẾN ĐỀ TÀI CHƯƠNG CƠ SỞ LÝ THUYẾT 3.1 Tìm kiếm cục (Local Search) 3.2 Giải thuật di truyền (Genetic Algorithm) 14 3.3 Giải thuật memetic (Memetic Algorithm) 18 CHƯƠNG FRAMEWORK HƯỚNG ĐỐI TƯỢNG CHO GIẢI THUẬT MEMETIC 32 4.1 Giới thiệu 32 4.2 Kiến trúc Framework 33 4.2.A Sơ lược mẫu thiết kế sử dụng framework 33 4.2.B Kiến trúc framework 34 4.3 Một số thực th ành phần framework 42 CHƯƠNG MỘT ỨNG DỤNG - BÀI TOÁN PHỦ TẬP 72 5.1 Giới thiệu 72 5.2 Phương pháp giải toán phủ tập 75 5.3 Những thành phần giải thuật memetic cho toán phủ tập (SCP) 75 5.3.A Sự biễu diễn hàm thích nghi 75 5.3.B Kỷ thuật lựa chọn cha mẹ (Parent selection techniques) 77 5.3.C Phép toán lai ghép (Crossover operator) 79 5.3.D Chiến lược thay quần thể 79 5.3.E Heuristic tìm kiếm cục 80 5.3.F Giải thuật Memetic (MA) cho b ài toán “Phủ tập” (SCP) 81 iv 5.4 Phần thực toán SCP 84 5.5 GUI phần mềm dùng để giải toán SCP 98 5.6 Thử nghiệm số kết đạt 102 CHƯƠNG KẾT LUẬN 109 THƯ MỤC THAM KHẢO 112 PHỤ LỤC A : HIỆN THỰC CỤ THỂ CỦA NHỮNG PH ƯƠNG THỨC PHỤ ĐƯỢC SỬ DỤNG TRONG LUẬN VĂN A1 PHỤ LỤC B : GIỚI THIỆU NHỮNG MẪU THIẾT KẾ CHÍNH Đ ƯỢC SỬ DỤNG TRONG LUẬN VĂN B1 PHỤ LỤC C : KẾT QUẢ CỦA NHỮNG B ÀI TOÁN MẪU ĐƯỢC THỬ NGHIỆM C1 PHỤ LỤC D: BẢNG THUẬT NGỮ ANH - VIỆT .D1 v DANH MỤC HÌNH Hình Trang Hình 3.1 Lược đồ tổng qt giải thuật memetic .15 Hình 3.2 Dạng mở rộng thứ giải thuật memetic .16 Hình 3.3 Dạng mở rộng thứ hai giải thuật memetic…… .17 Hình 3.4 Ví dụ minh họa cháu khơng khả thi hai cha mẹ khả thi 18 Hình 4.1 Kiến trúc framework.… .27 Hình 4.2 Một thành phần framework sử dụng mẫu template method 28 Hình 4.3 Một thành phần framework sử dụng mẫu abstract factory 29 Hình 4.4 Những thành phần framework sử dụng mẫu strategy 31 Hình 4.5 Các thành phần khác framework .32 Hình 4.6 Thành phần khác framework 32 vi Hình 5.1 Bản đồ thành phố A .54 Hình 5.2 Biểu diễn nhị phân cho nhiễm sắc thể 56 Hình 5.3 Biểu diễn khơng nhị phân cho nhiễm sắc thể 56 Hình 5.4 Heuristic làm cho l ời giải trở nên khả thi 59 Hình 5.5 Giải thuật tìm kiếm cục .59 Hình 5.6 Giải thuật memetic cho toán phủ tập (SCP) .60 Hình 5.7 Giải thuật tạo quần thể ban đầu cho b ài tốn phủ tập 60 Hình 5.8 Giao diện phần mềm 72 Hình 5.9 Cung cấp toán SCP cho phần mềm 72 Hình 5.10 Thiết lập thơng số cho chiến l ược lựa chọn cha mẹ .73 Hình 5.11 Thiết lập thơng số cho chiến lược thay quần thể .74 vii Hình 5.12 Thiết lập thông số cho lịch biểu đột biến động 74 Hình 5.13 Biểu đồ biểu diễn tương quan giá trị chi phí trung b ình số hệ cháu cho hai toán scp41 scp45 … 78 Hình 5.14 Biểu đồ biểu diễn tương quan giá trị chi phí trung b ình số hệ cháu cho hai toán scp61 scp65 78 viii Sơ đồ cấu trúc mẫu Template Method Các phần tử tham gia: Định nghĩa primitive operation cho lớp override để thực phần hoạt động Các ph ương thức điểm mà lớp hook vào code lớp cha Hiện thực template method, l method định nghĩa khung hoạt động Template method kết hợp primitive operation để thực trọn vẹn hoạt động Các ngữ cảnh nên dùng mẫu Template Method Thường sử dụng Template method cần: Hiện thực phần cố định hoạt động v cho phép lớp thực phần thay đổi C5 Tập trung hành vi giống lớp để tránh tr ùng lắp Kiểm sốt q trình override lớp con: cho phép override điểm hook qui định sẵn Mẫu Strategy Mục tiêu: Cung cấp họ giải thuật cho phép Client chọn lựa linh động giải thuật cụ thể sử dụng Nhu cầu sử dụng: Một số chương trình có nhiều giải thuật khác cho c ùng vấn đề Nhu cầu phát sinh: quản lý giải thuật cách đ ơn giản cho phép client chọn giải thuật để sử dụng cách linh động Sơ đồ cấu trúc mẫu Strategy C6 Các phần tử tham gia Strategy : định nghĩa interface cho tất lớp thể giải thuật Có thể nhận pointer đến đối tượng Context tr ình khởi tạo đối tượng để truy xuất liệu Context ConcreteStrategy : thực interface Strategy, thể giải thuật cụ thể Context: Tại thời điểm dịch: sử dụng đối tượng kiểu Strategy xác định giải thuật cho vấn đề cần xử ly Tại thời điểm run-time: cung cấp đối tượng giải thuật cụ thể thay cho đối tượng Strategy Có thể cung cấp entry cho phép đối t ượng kiểu Strategy truy xuất li ệu Các ngữ cảnh nên sử dụng mẫu Strategy Thường áp dụng mẫu Strategy tr ường hợp sau: Một lớp có nhiều hành vi loại trừ lẫn trình chuyển từ hành vi sang hành vi khác cần thực dễ dàng Khi hành vi thể lớp Concrete Strategy v lớp có nhiều hành vi lớp Strategy Giải thuật cần che dấu liệu v cấu trúc chương trình Client Một số chương trình áp dụng Strategy: C7 Compiler, OS: q trình tối ưu hố Game: trình chọn giải thuật Các giao diện tổng quát (common dialog VB) C8 PHỤ LỤC C : KẾT QUẢ CỦA NHỮNG B ÀI TOÁN MẪU ĐƯỢC THỬ NGHIỆM Phần phụ lục cung cấp lời giải tối ưu mà chương trình tìm cho toán mẫu thử nghiệm phần 5.6 Bài tốn scp41 Các cột có lời giải : 0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 27, 28, 42, 43, 45, 46, 47, 48, 49, 51, 53, 57, 58, 62, 65, 68, 69, 70, 74, 76, 77, 80, 82, 84, 85, 88, 90, 93, 102, 106, 109, 115, 119, 120, 121, 123, 137, 142, 143, 145, 152, 193, 274, 432 Chi phí : 429 Bài toán scp42 Các cột có lời giải : 0, 1, 2, 4, 5, 7, 9, 10, 14, 16, 17, 18, 19, 21, 22, 24, 28, 31, 40, 43, 46, 47, 48, 50, 51, 53, 55, 58, 59, 60, 61, 62, 63, 68, 69, 70, 75, 78, 86, 87, 91, 93, 100, 102, 111, 112, 113, 119, 135, 136, 144, 159, 160, 162, 167, 176, 208, 273, 293, 75 Chi phí : 512 C9 Bài toán scp43 Các cột có lời giải : 0, 1, 2, 3, 5, 7, 8, 9, 11, 12, 17, 18, 19, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 37, 38, 39, 45, 46, 47, 48, 50, 54, 55, 56, 59, 61, 63, 65, 66, 68, 75, 77, 82, 83, 91, 95, 101, 115, 121, 123, 131, 133, 135, 141, 149, 155, 165, 170, 180, 197, 228, 282, 421 Chi phí : 516 Bài tốn scp44 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 26, 31, 32, 34, 35, 36, 37, 42, 43, 44, 46, 47, 51, 57, 58, 60, 62, 63, 68, 70, 71, 72, 82, 83, 84, 95, 97, 102, 106, 117, 121, 123, 131, 135, 163, 164, 166, 16 7, 173, 183, 199, 232, 276, 374, 419 Chi phí : 494 Bài toán scp45 Các cột có lời giải : 1, 2, 4, 5, 7, 8, 9, 11, 13, 14, 17, 18, 20, 23, 25, 27, 32, 33, 34, 37, 39, 40, 41, 42, 44, 45, 46, 48, 53, 54, 56, 66, 67, 71, 75, 80, 86, 98, 99, 104, 109, 120, 124, 125, 126, 136, 137, 146, 150, 155, 157, 159, 181, 182, 183, 190, 216, 223, 229, 297 C10 Chi phí : 512 Bài toán scp46 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 15, 18, 19, 20, 23, 26, 27, 29, 30, 31, 32, 35, 36, 37, 38, 39, 43, 49, 51, 52, 54, 59, 60, 63, 67, 70, 73, 80, 81, 82, 84, 85, 87, 100, 109, 120, 123, 131, 144, 145, 146, 158, 162, 66, 172, 174, 176, 181, 195, 268, 281, 290 Chi phí : 560 Bài tốn scp47 Các cột có lời giải : 1, 2, 3, 4, 5, 7, 11, 12, 15, 16, 17, 8, 20, 22, 24, 25, 26, 27, 30, 32, 35, 44, 45, 52, 55, 57, 58, 59, 60, 62, 63, 64, 65, 67, 69, 70, 72, 76, 77, 84, 85, 88, 93, 96, 103, 105, 107, 112, 113, 132, 133, 148, 158, 171, 182, 222, 400, 404 Chi phí : 430 C11 Bài tốn scp48 Các cột có lời giải : 0, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 21, 22, 25, 26, 29, 31, 32, 34, 35, 42, 43, 44, 45, 49, 52, 53, 55, 56, 58, 59, 64, 65, 67, 69, 73, 76, 77, 84, 86, 94, 99, 104, 115, 117, 124, 136, 138, 140, 170, 174, 192, 193, 207, 235, 278 Chi phí : 492 Bài toán scp49 Các cột có lời giải : 0, 1, 2, 3, 5, 8, 9, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25, 27, 29, 30, 32, 34 , 35, 37, 38, 39, 44, 45, 54, 58, 67, 75, 79, 82, 89, 90, 109, 110, 112, 114, 117, 118, 120, 124, 125, 128, 134, 142, 145, 157, 178, 201, 208, 209, 229, 241, 279, 287, 368, 400 Chi phí : 641 - - Bài toán scp410 Các cột có lời giải : 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 21, 22, 24, 25, 27, 28, 29, 34, 39, 40, 41, 42, 46, 47, 48, 49, 50, 54, 55, 57, 58, 59, 62, 67, 68, 70, 76, 83, 84, 85, 87, 95, 106, 109, 113, 118, 122, 141, 144, 152, 54, 183, 190, 210, 234, 254, 256, 299, 479 C12 Chi phí : 514 Bài toán scp61 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 16, 24, 25, 29, 30, 31, 33, 35, 36, 37, 39, 44, 45, 51, 56, 57, 59, 62, 78, 79, 82, 106, 138, 226 Chi phí : 138 Bài tốn scp62 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 16, 19, 20, 21, 23, 24, 25, 26, 28, 33, 35, 43, 46, 47, 50, 53, 59, 60, 61, 63, 70, 77, 83, 102, 104 Chi phí : 146 - - C13 Bài toán scp63 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 22, 23, 25, 26, 29, 32, 34, 36, 38, 44, 45, 46, 47, 50, 53, 57, 82, 122, 198 Chi phí : 145 Bài tốn scp64 Các cột có lời giải : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 23, 30, 33, 35, 37, 41, 45, 48, 51, 52, 55, 56, 57, 58, 63, 67, 70, 73, 75, 29, 136 Chi phí : 131 Bài tốn scp65 Các cột có lời giải : 0, 2, 3, 4, 5, 9, 10, 12, 13, 14, 15, 17, 18, 19, 21, 23, 24, 26, 28, 30, 32, 34, 35, 43, 49, 53, 54, 60, 61, 62, 69, 72, 104, 109, 154, 158 Chi phí : 161 C14 PHỤ LỤC D: BẢNG THUẬT NGỮ ANH - VIỆT Thuật Ngữ Tiếng Anh Thuật Ngữ Tiếng Việt Binary Mask Mặt nạ nhị phân Binary Representation Biểu diễn nhị phân Candidate Solution Lời giải dự tuyển Chromome Nhiểm sắc thể Combinatorial Optimization Problems Bài toán tối ưu tổ hợp Communication Network Design Taking Into Consideration An Existing Network Thiết kế mạng thơng tin liên lạc có xem xét đến mạng Component Thành phần Concrete Class Lớp cụ thể Constraint Satisfaction Problems Những tốn thỗ mãn ràng buộc Cost Function Hàm chi phí Crossover Lai ghép Crossover Operator Phép toán lai ghép Design Pattern Mẫu thiết kế Density Độ đậm đặc Developer Người phát triển Distance Preserving Crossover Operator Phép tốn lai ghép bảo tồn khoảng cách D1 Dynamic Mutation Scheduling Lập thời biểu đột biến động Exploitation Khai thác tập trung Exploration Khám phá đa dạng Feasible Khả thi Fitness Funtion Hàm thích nghi Fitness-Based Selection Lựa chọn dựa độ thích nghi General-Purpose Techniques Giải thuật với mục đích tổng quát Generational Replacement Lựa chọn hệ Genes Gen Genetic Algorithm Giải thuật di truyền Global Search Tìm kiếm tồn cục Hashtable Bảng băm Heuristic Operator Tác vụ heuristic High Level Mutation Operator Phép toán đột biến mức độ cao Hill-Climbing Leo Đồi Individual Cá thể Local Search Tìm kiếm cục Makespan Minimization Problem Bài toán tối thiểu hoá Makespan memetic algorithm Giải thuật memetic Merge Trộn Metaheuristics Siêu heuristic Move Bước di chuyển D2 Mutation Đột biến Mutation Operator Phép toán đột biến Neighborhood Miền lân cận Non-Binary Representation Biểu diễn không nhị phân Non-Exhaustive Không vét cạn NP-complete NP-đầy đủ Objective Function Hàm mục tiêu One-point Crossover Lai ghép điểm Override Ghi đè Parallel Machine Scheduling Định thời máy song song Partial Shape Matching Đối chiếu hình dạng khơng gian Penalty Function Hàm phạt Phenotype Space Không gian phenotype Pool Kho chứa Populaton-Based Search Tìm kiếm dựa quần thể Protein Structure Prediction Tiên đoán cấu trúc protein Rank-Based Selection Lựa chọn theo hạng Raw Fitness Độ thích nghi thô Representation Function Hàm biểu diễn Search Space Không gian tìm kiếm Self-Adaptive Tự thích nghi Set Covering Problem Bài toán phủ tập D3 Simulated Annealing Algorithm Giải thuật mô luyện kim Steady, Frozen State Một trạng thái đông lạnh ổn định Steady-State Replacement Lựa chọn Stochastic Có tính xác xuất Stochastic Unary Move Operator Tác vụ di chuyển đối số có xác xuất Stochastic, Parameterised Function Hàm thơng số có xác xuất Stop Criterion Điều kiện dừng chuẩn dừng Tabu List Danh sách tabu The Cooling Schedule Lịch biểu làm nguội The Fitness Scaling Method Phương pháp tỉ lệ với độ thích nghi The Propotionate Selection Method Phương pháp lựa chọn theo xác xuất The Uphill Moves Bước di chuyển lên đồi Tournament Selection Method Phương pháp lựa chọn theo thi đấu Tournament-Based Selection Lựa chọn dựa thi đấu Traveling Salesman Problem Bài toán người bán hàng rong Two-point Cross Over Lai ghép hai điểm Uniform Crossover Lai ghép Variation Operator Phép toán biến dị Vehicle Routing Problems Bài toán định tuyến cho xe cộ Water Distribution Network Design Thiết kế mạng phân bố cấp n ước D4 Lý lịch trích ngang: Họ tên : Phan Anh Tuấn Ngày,tháng,năm sinh : 20 -02-1980 Nơi sinh : Biên Hoà, Đ ồng Nai Địa liên lạc : 77/27 Phan Đình Phùng, Biên Hịa Đồng Nai Q TRÌNH ĐÀO TẠO 2005 – 2007 : Học cao học trường Đại Học Bách Khoa Tp Hồ Chí Minh Q TRÌNH CƠNG TÁC ... đối tượng cho giải thuật memetic Sử dụng framework hướng đối tượng cho giải thuật memetic để xây dựng giải pháp giải toán phủ tập Đã chạy thử nghiệm giải thuật memetic cho toán phủ tập với... cứu giải thuật memetic Sau đưa framework cho giải thuật memetic nhằm hổ trợ tốt cho người phát triển việc ứng dụng giải thuật memetic để giải vấn đề cụ thể n Và toán phủ tập chọn ứng dụng Lý cho. .. thiệu framework cho giải thuật Memetic Và chương sau s ẽ ứng dụng toán phủ tập (Set Covering Problem) mà sử dụng framework xây dựng trước 31 CHƯƠNG FRAMEWORK HƯỚNG ĐỐI TƯỢNG CHO GIẢI THUẬT MEMETIC