Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 131 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
131
Dung lượng
8,69 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGH NGUYễN XUÂN MINH NGHIÊN CứU CáC BàI TOáNLịCH BIểU Và ứNG DụNG LUậN VĂN THạC Sĩ CÔNG NGHệ THÔNG TIN Hà Nội - 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ NGUN XU¢N MINH NGHI£N CứU CáC BàI TOáNLịCH BIểU Và ứNG DụNG Chuyờn ngnh: Hệ thống thông tin Mã số: 60 48 01 04 LUậN VĂN THạC Sĩ CÔNG NGHệ THÔNG TIN Ngi hng dẫn khoa học: GS.TS Vũ Đức Thi Hà Nội - 2015 LỜI CẢM ƠN Trước hết, vô biết ơn GS.TS Vũ Đức Thi, người thầy trực tiếp dành nhiều thời gian tận tình hướng dẫn, cung cấp thông tin, tài liệu quý báu, giúp đỡ hồn thành luận văn Tơi xin cảm ơn thầy cô Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội cung cấp cho kiến thức quý báu thời gian học tập Nhà trường Sau cùng, xin bày tỏ lòng biết ơn đến người thân, bạn bè, đồng nghiệp quan tạo điều kiện động viên cho tơi hồn thành luận văn tốt nghiệp Hà Nội, ngày … tháng … năm 2015 HỌC VIÊN Nguyễn Xuân Minh LỜI CAM ĐOAN Tôi tên Nguyễn Xuân Minh, học viên cao học khóa 19 ngành Cơng nghệ thơng tin, chuyên ngành Hệ thống thông tin Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội; Thực đề tài luận văn “Nghiên cứu toán lịch biểu ứng dụng”; Cán hướng dẫn: GS.TS Vũ Đức Thi Tôi xin cam đoan công trình nghiên cứu tơi hình thành phát triển cá nhân tơi, cán hướng dẫn thông qua nội dung đồng ý cho thực đề tài Hà Nội, ngày … tháng … năm 2015 HỌC VIÊN Nguyễn Xuân Minh MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, BIỂU ĐỒ MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH 1.1 Định nghĩa toán lập lịch Jobshop (JSP) 1.2 Tình hình nghiên cứu thuật tốn tìm kiếm lịch biểu tối ưu 1.2.1 Tình hình nghiên cứu giới 1.2.2 Tình hình nghiên cứu nước 1.3 Các phương pháp tiếp cận giải toán lập lịch 1.2.3 Cách tiếp cận xác, thuật tốn nhánh cận 1.2.4 Cách tiếp cận gần CHƯƠNG THUẬT TOÁN DI TRUYỀN 18 2.1 Lịch sử đời 18 2.2 Một số khái niệm 18 2.2.1 Cá thể, nhiễm sắc thể 18 2.2.2 Quần thể 18 2.2.3 Chọn lọc 18 2.2.4 Lai ghép 19 2.2.5 Đột biến 20 2.3 Lưu đồ thuật toán di truyền đơn giản 20 2.4 Các tham số thuật toán di truyền 21 2.4.1 Kích thước quần thể 21 2.4.2 Xác suất lai ghép 22 2.4.3 Xác suất đột biến 22 2.5 Khởi tạo quần thể ban đầu 22 2.5.1 Hàm tính độ thích nghi 22 2.5.2 Toán tử chọn lọc 22 2.5.3 Các toán tử lai ghép 24 2.5.4 Toán tử đột biến 28 2.7 Kết luận 30 CHƯƠNG HAI BÀI TOÁN CON CỦA BÀI TOÁN LẬP LỊCH JOB SHOP 31 3.1 Bài toán Flowshop hoán vị 31 3.1.1 Mô tả toán 31 3.1.2 Cách tính thời gian hồn thành lịch biểu hốn vị 32 3.1.3 Thuật toán Johnson cho PFSP máy PFSP máy 36 3.1.4 Một thuật di truyền mã hóa tự nhiên cho toán FSP tổng quát 44 3.1.5 Kết thực nghiệm 48 3.2 Bài toán lập lịch Flowshop 48 3.2.1 Mơ tốn 48 3.2.2 Một thuật tốn di truyền mã hóa tự nhiên cho toán FPS tổng quát 49 3.3 Kết luận 52 CHƯƠNG MỘT THUẬT TOÁN DI TRUYỀN LAI CHO BÀI TOÁN LẬP LỊCH JOB SHOP 53 4.2 Các luật ưu tiên Giffler Thompson 55 4.2.1 Thuật toán Giffler - Thompson (GT) 55 4.2.2 Áp dụng thuật toán GT cho JSP để sinh lịch biểu tích cực 57 4.3 Một thuật toán di truyền lai cho toán JSP 58 4.3.1 Mã hóa lời giải 59 4.3.2 Khởi tạo tập lời giải cho hệ ban đầu 60 4.3.3 Xây dựng hàm thích nghi 60 4.3.4 Các toán tử di truyền 60 4.3.5 Thuật toán di truyền 64 4.3.6 Tính đắn thuật tốn 64 4.4 Kết thực nghiệm 65 KẾT LUẬN 66 i DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Tiếng anh Branch and Bound Algorithm Crossover Fitness Genetic Algorithm Integer Linear Programming Makespan Mutation One point crossover Population Two point crossover Uniform crossover Jobshop Scheduling Problem Flowshop Scheduling Problem Permutation Flowshop SchedulingProblem Bảng 1.1: Bài tốn JSP cơng việc, máy Bảng 1.2: Bài toán lập lịch máy Bảng 1.3: Tính tốn Bảng 1.4: Tính tốn Bảng 1.5: Tính tốn Bảng 1.6: Tính tốn Bảng 1.7: Tính tốn Bảng 1.8: Tính tốn Bảng 1.9: Tính tốn Bảng 1.10: Sinh tất Bảng 1.11: Tính tốn Bảng 1.12: Tính tốn Bảng 1.13: Tính tốn Bảng 1.14: Tính tốn Bảng 2.1: Độ thích Bảng 2.1: Độ thích nghi xác suất xác suất tích lũy cá thể Bảng 3.1 Thời gian xử lý cho tốn PFSP máy cơng việc Bảng 3.2: Bài toán Flowshop công vệc, máy Bảng 3.3: PFSP công việc máy Bảng 3.4: PFSP công việc máy Bảng 3.5: Bài tốn PFSP cơng việc, máy Bảng 3.6: Kết chạy thực nghiệm Bảng 3.7: Mã hóa lời giải theo số tự nhiên Bảng 3.8: Kết chạy thực nghiệm Bảng 4.1: Bài tốn JSP cơng việc, máy Bảng 4.2: Bài tốn JSP cơng việc, máy Bảng 4.3: Kết chạy thực nghiệm iii DANH MỤC CÁC HÌNH VẼ, BIỂU ĐỒ Hình 1.1: Các tiếp cận cho tốn lập lịch JSP Hình 1.2: Tuần tự cơng nghệ cách trao đổi cặp công việc liền kề 12 Hình 1.3: Tuần tự cơng nghệ cách trao đổi cặp công việc liền kề 13 Hình 1.4: Tuần tự cơng nghệ S cách trao đổi cặp công việc liền kề 14 Hình 1.5: Tuần tự cơng nghệ cách trao đổi cặp công việc liền kề 15 Hình 1.6: Tuần tự cơng nghệ cách trao đổi cặp cơng việc liền kề 16 Hình 2.1: Cá thể cha mẹ cho phép lai ghép điểm 19 Hình 2.2: Hai cá thể sau khilai ghép điểm 19 Hình 2.3: Cá thể cha mẹ cho phép lai ghép hai điểm 19 Hình 2.4: Hai cá thể sau lai ghép hai điểm 19 Hình 2.5: Cá thể cha mẹ cho phép lai ghép đồng 20 Hình 2.6: Hai cá thể sau lai ghép đồng 20 Hình 2.7: Cá thể ban đầu trước đột biến 20 Hình 2.8: Cá thể sau phép đột biến 20 Hình 2.9: Sơ đồ mơ tả thuật toán di truyền 21 Hình 2.10: Minh họa bước lai ghép phần (PMX) 25 Hình 2.11: Minh họa bước lai ghép có thứ tự (OX) 26 Hình 2.12: Minh họa bước lai ghép có thứ tự (POS) 26 Hình 2.13: Minh họa bước lai ghép (POS) 27 Hình 2.14: Minh họa bước lai ghép (CX) 28 Hình 2.15: Minh họa đột biến ngược 28 Hình 2.16:Minh họa đột biến chèn 28 Hình 2.17:Minh họa đột biến thay 29 Hình 2.18: Minh họa đột biến hốn vị 29 Hình 3.1: Biều đồ Grant biểu diễn lời giải PFSP công việc máy 32 Hình 3.2: Đồ thị khơng liên thơng biểu diễn lời giải PFSP 33 Hình 3.3: Các tính thời gian hồn thành đồ thị khơng liên thơng 34 Hình 3.4: Các cạnh tới hạn đồ thị không liên thông 35 Hình 3.5: Đồ thị cạnh tới hạn 35 Hình 3.6: Đồ thị đường tới hạn 36 iv Hình 3.7: Biểu đồ Grant lịch biểu tối ưu toán máy 40 Hình 3.8: Biểu đồ Grant lịch biểu tối ưu toán máy 43 Hình 3.9: Một lời giải hợp lệ cho PFSP công việc máy 44 Hình 3.10: Cá thể cha cho phép đột biến 46 Hình 3.11: Cá thể sau phép đột biến 46 Hình 3.12: Hai thể cha tham gia trao đổi chéo 47 Hình 3.13: Cá thể sau trao đổi chéo 47 Hình 3.14: Một lời giải hợp lệ cho FSP máy, công việc 49 Hình 3.15: Các cá thể cha cho phép đột biến 50 Hình 3.16: Toán tử sau đột biến 51 Hình 3.17: Các cá thể cha tham gia lai ghép 51 Hình 3.18: Cá thể sau lai ghép 51 Hình 4.1: Phân lớp lịch biểu 53 Hình 4.2: Lịch khơng tích cực 54 Hình 4.3: Lịch biểu bán tích cực 54 Hình 4.4: Lịch biểu tích cực 55 Hình 4.5: Lập lịch sử dụng thuật tốn GT 57 Hình 4.6: Một lời giải hợp lệ cho JSP 3x3 59 Hình 4.7: Cá thể cha cho phép đột biến 61 Hình 4.8: Cá thể thu sau phép đội biến 61 Hình 4.9: Cá thể cha tham gia lai ghép 63 Hình 4.10: Cá thể sau lai ghép 63 Hình P.1: Cấu trúc liệu đầu vào toán MT06 75 Hình P.2: Giao diện chương trình 76 Hình P.3: Quá trình tiến hóa tốn MT06 76 66 KẾT LUẬN Các kết luận văn Luận văn trình bày tốn lập lịch job shop (JSP) tổng quát, phương pháp tiếp cận giải tốn JSP Luận văn trình bày thuật toán di truyền bao gồm: khái niệm bản, tham số đầu vào, toán tử thuật tốn di truyền Luận văn trình bày hai toán toán lập lịch job shop tốn flow shop hốn vị (PFSP) toán flow shop (FSP) Thuật toán di truyền mã hóa số tự nhiên cho hai tốn Luận văn trình bày thuật tốn di truyền lai kết hợp thuật toán di truyền với kỹ thuật tìm kiếm khác cho tốn lập lịch job shop (JSP) Hạn chế Vì thời thực đề tài có hạn, đề tài dừng lại mức độ nghiên cứu lý thuyết toán lập lịch job shop (JSP); thuật toán di truyền; toán toán JSP, thuật toán di truyền lại kết hợp thuật toán di truyền với kỹ thuật tìm kiếm khác cho JSP Cài đặt thuật toán di truyền lai mức độ thực nghiệm giải, chưa phải ứng dụng hoàn thiện Hướng nghiên cứu Nghiên cứu sâu toán lập lịch job shop cách tiếp cận thuật tốn di truyền kỹ thuật tìm kiếm khác để tìm thuật tốn tốt cho JSP Ứng dụng thuật toán vào toán quản lý: lập thời khóa biểu, lập lịch thi phạm vi trường đại học 67 PHỤ LỤC Các hàm thuật tốn di truyền lai luận văn trình bày cài đặt ngơn ngữ C# đây: 1 Hàm GT dùng để khởi tạo quần thể publicOperation[,] GT(){ Operation[,] S = newOperation[numMachine + 1, numJob + 1]; List G = newList(); List C = newList(); List[] PM = newList[numMachine + 1]; //Khởi tạo PM for (int i = 0; i < PM.Length; i++){ PM[i] = newList(); } //Bước Khởi tạo G thao tác cột for (int i = 1; i