Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 83 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
83
Dung lượng
657,82 KB
Nội dung
Đại Học Quốc Gia TP Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN SƠN HÀ DÙNG PHƯƠNG PHÁP COLUMN GENERATION Đ Ể SẮP XẾP THỜI KHÓA BIỂU MƠN HỌC Chun ngành: Khoa Học Máy Tính LUẬN VĂN THẠC SĨ TP Hồ Chí Minh, tháng 12 năm 2008 CƠNG TRÌNH ĐƯỢC HỒ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ĩ Trần Văn Hoài Cán chấm nhận xét : Tiến sĩ Nguyễn Văn Minh Mẫn Cán chấm nhận xét : Tiến sĩ Nguyễn Đức Cường 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 10 tháng 02 năm 2009 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày 10 tháng 02 năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: TRẦN SƠN HÀ Giới tính : Nam Ngày, tháng, năm sinh : 01/07/1982 Nơi sinh : Bình Thuận Chun ngành : Khoa Học Máy Tính Khố (Năm trúng tuyển) : 2006 1- TÊN ĐỀ TÀI: “Dùng phương pháp Column Generation đ ể xếp thời khóa biểu mơn học” 2- NHIỆM VỤ LUẬN VĂN Generation Nghiên cứu lý thuyết quy hoạch nguy ên phương pháp Column Đề xuất mơ hình Column Generation thích h ợp với tốn xếp thời khóa biểu mơn học Xây dựng chương trình tự động xếp thời khóa biểu mơn học cho tr ường Đại Học Bách Khoa thành phố Hồ Chí Minh 3- NGÀY GIAO NHIỆM VỤ : 21/01/2008 4- NGÀY HOÀN THÀNH NHI ỆM VỤ : 10/02/2009 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Tiến sĩ Trần Văn Hoài Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) Tiến sĩ Trần Văn Hoài CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) LỜI CẢM ƠN Tôi xin gởi lời cảm đến gia đình, người ln sát cánh động vi ên, tạo điều kiện tốt để tơi hồn thành luận văn Xin chân thành cám ơn anh Nguy ễn Dương Tường Lam, giám đốc công ty TNHH Niềm Tin Việt, người tạo điều kiện cho học Cao học thời gian công tác công ty Nếu khơng có giúp đỡ q báu anh th ì tơi khó hồn thành khóa học Xin chân thành cám ơn th ầy TS Trần Văn Hồi, nhiệt tình hướng dẫn tơi hồn thành tốt luận văn Cuối cùng, xin gởi lời cám ơn đến thầy tận tình dạy dỗ giúp đỡ suốt thời gian tham gia khóa học Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Mơn Học Trang i TĨM TẮT Bài tốn xếp thời khóa biểu mơn học l toán tối ưu tổ hợp Các hướng tiếp cận cho tốn chủ yếu lập trình ràng buộc tìm kiếm cục Luận văn trình bày phương pháp mới, dựa vào tảng quy hoạch nguyên, phương pháp Column Generation Ý tưởng phương pháp tạo “column”, column đại diện cho nghiệm toán Các column tạo phần hay tạo to àn tùy thuộc vào kích thước liệu tốn Sau đó, sử dụng giải thuật quy hoạch nguyên để tìm nghiệm tối ưu Luận văn sử dụng BCP framework để xây dựng ch ương trình xếp thời khóa biểu mơ n học cho trường Đại học Bách Khoa Tp HCM tiến hành thử nghiệm, đánh giá liệu thực Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Mơn Học Trang ii ABSTRACT The uinversity course timetabling is a well -studied combinatorial optimization problem The common approachs for this problem are constraint programming and local search In this thesis, we’d like to present a new approach, based on integer programming That is Column Generation The basic idea of this approach is to produce some columns, each column represents to a solution These columns are produced totally or partially depend on the problem Subsequently, some integer programming algorithms are used to give an optimal solution We use BCP framework to implement university timetabling program for HCMC University of Technology and test, evaluate problem’s results on real data Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Môn Học Trang iii MỤC LỤC LỜI CẢM ƠN i TÓM TẮT ii ABSTRACT iii MỤC LỤC iv DANH MỤC HÌNH ẢNH vi DANH MỤC BẢNG vii Chương GIỚI THIỆU 1.1 Mục tiêu nghiên cứu 1.2 Nhiệm vụ luận văn 1.2.1 Mục đích chương trình xếp thời khóa biểu mơn học 1.2.2 Các quy tắc học vụ 1.2.3 Các yêu cầu đặt 1.3 Kết luận văn 1.4 Cấu trúc nội dung luận văn Chương CÁC CƠNG TRÌNH LIÊN QUAN 2.1 Phương pháp xây dựng 2.2 Lập trình ràng buộc 2.3 Tìm kiếm cục 2.4 Quy hoạch nguyên 2.5 Kết luận Chương CƠ SỞ LÝ THUYẾT 3.1 Quy hoạch tuyến tính 3.1.1 Định nghĩa quy hoạch tuyến tính 3.1.2 Sự tồn nghiệm tính chất tập nghiệm quy hoạch tuyến tính 11 3.1.3 Phương pháp đơn hình để giải tốn quy hoạch tuyến tính tắc 11 3.1.4 Tìm phương án cực biên xuất phát sở xuất phát – Phương pháp biến giả cải biên 18 3.1.5 Đối ngẫu 20 3.2 Quy hoạch nguyên 22 3.2.1 Phương pháp nhánh cận 23 3.2.2 Phương pháp mặt phẳng cắt 26 3.2.3 Phương pháp branch-and-cut 28 3.3 Column Generation 28 3.3.1 Giới thiệu 28 3.3.2 Phân rã Dantzig-Wolfe 29 3.3.3 Column Generation cho tốn quy ho ạch tuyến tính 30 3.3.4 Column Generation cho toán Quy ho ạch nguyên 32 3.4 Kết luận 38 Chương PHƯƠNG PHÁP GIẢI BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU MƠN HỌC 40 4.1 Giới thiệu 40 4.2 Mô tả toán 40 4.2.1 Các quy tắc học vụ 40 4.2.2 Các yêu cầu đặt 41 4.2.3 Mơ hình hóa tốn 42 Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Mơn Học Trang iv 4.3 Các thành phần giải thuật 46 4.3.1 Khởi tạo nghiệm ban đầu 46 4.3.2 Branching 47 4.3.3 Pricing 48 4.3.4 Upper bounding 51 Chương HIỆN THỰC VÀ THỬ NGHIỆM 53 5.1 Hiện thực tốn xếp thời khóa biểu mơn học 53 5.1.1 BCP Framework 53 5.1.2 Tổ chức liệu toán 54 5.2 Thử nghiệm 56 5.2.1 Thống kế số liệu thử nghiệm ch ương trình xếp thời khóa biểu mơn học 56 5.2.2 Kết thử nghiệm 56 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60 6.1 Kết luận 60 6.2 Hướng phát triển 60 TÀI LIỆU THAM KHẢO 62 Phụ lục A CƠ SỞ DỮ LIỆU THẬT CỦA CH ƯƠNG TRÌNH 64 Phụ lục B BCP FRAMEWORK 70 Phụ lục C CÁC THUẬT NGỮ 72 Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Mơn Học Trang v DANH MỤC HÌNH ẢNH Hình 3.1: Giải thuật đơn hình 18 Hình 3.2: Giải thuật hai pha 19 Hình 3.3: Giải thuật branch-and-bound 23 Hình 3.4: Giải thuật cutting-plane 28 Hình 3.5: Sơ đồ khối phương pháp Column Generation 32 Hình 3.6: Giải thuật branch-and-price 37 Hình 4.1: Ma trận vector cột 47 Hình 4.2: Giải thuật local search cho b ài toán pricing 49 Hình 4.3: Giải thuật branch-and-bound cho tốn pricing 51 Hình 4.4: Giải thuật tìm upper bound 52 Hình 5.1: Sơ đồ khối BCP framework 54 Hình 5.2: Dữ liệu tốn theo mơ hình UML 55 Hình 5.3: Thử nghiệm cho 15 lớp 58 Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Mơn Học Trang vi DANH MỤC BẢNG Bảng 3.1: Cặp toán quy hoạch tuyến tính đối ngẫu 20 Bảng 5.1: Bảng số liệu thử nghiệm 56 Bảng 5.2: Bảng kết cần t hống kê 57 Bảng 5.3: Thử nghiệm cho lớp 57 Bảng 5.4: Thử nghiệm cho 10 lớp 58 Dùng Phương Pháp Column Generation để Sắp Xếp Thời Khóa Biểu Môn Học Trang vii Quan sát số liệu từ bảng ta thấy với thử nghiệm cho lớp kết hai trường hợp chênh lệch không lớn Trong trường hợp sử dụng heuristic th ì tốn cho lời giải ba trường hợp Với thử nghiệm cho 15 lớp thời gian chạy thời điểm tìm nghiệm trường hợp sử dụng heuristic số lượng node tìm kiếm giảm đáng kể so với trường hợp không sử dụng heuristic Điều lý giải việc nhanh chóng t ìm upper bound làm giảm đáng kể vùng khơng gian tìm kiếm giải thuật Số lượng column trì trình chạy chương trình nhỏ so với số biến mơ hình gốc dẫn đến thời gian chạy giải thuật simplex chiếm tỷ lệ nhỏ so với tổng thời Điều cho thấy ưu điểm phương pháp Column Generation Tuy nhiên, thời gian chạy giải thuật tạo column lại chiếm tỷ lệ lớn Đây l đặc điểm phương pháp Column Generation, mà s dụng phần lớn thời gian thực thi để tạo column Vì vậy, việc cải thiện tốc độ giải thuật pricing l yêu cầu thực Các thử nghiệm thực với điều kiện giải thuật branch -and-bound giới hạn tìm kiếm số vùng khơng gian để giới hạn thời gian chạy giả i thuật có thời gian chạy tệ tr ường hợp xấu Do đó, khơng tìm column thích hợp cho tốn điều làm cho giải thuật bỏ sót số node tìm kiếm Vì vậy, giải thuật khơng chứng minh đ ược nghiệm tối ưu Số lượng ràng buộc mơ hình gốc lớn Tuy nhiên chuyển qua mơ hình Column Generation, số lượng ràng buộc giảm dựa tập column Khi kích thước tốn tăng, dẫn đến số lượng column tăng lên làm ảnh hưởng không nhỏ đến giải thuật simplex Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 59 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận Qua trình nghiên cứu thực, luận văn rút kết luận sau: Nghiên cứu cơng trình cơng bố gần liên quan đến nội dung đề tài Theo đó, đề tài tổng hợp lại thành tảng lý thuyết quy hoạch nguy ên nói chung phương pháp Column Generation nói riêng Đề tài đề xuất mơ hình cho cách thức xếp th ời khóa biểu, mơ hình phù hợp với phương pháp Column Generation th ỏa mãn ràng buộc cứng ràng buộc mềm Đề tài nghiên cứu áp dụng thành công giải thuật branch-and-price, phương pháp kết hợp giải thuật branch -and-bound với Column Generation Về mặt lý thuyết, phương pháp Column Generation b ảo đảm tìm nghiệm tối ưu thực tế việc tìm nghiệm tối ưu phụ thuộc vào độ hữu hiệu thuật toán pricing Đề tài thực giải thuật branch -and-bound cho toán pricing, nhiên, gi ải thuật chưa hữu hiệu Phương pháp Column Generation có ưu điểm tìm nghiệm tối ưu việc vận dụng phương pháp th ực tế lại phụ thuộc vào mô hình tốn Hiện tại, phương pháp ứng dụng chủ yếu vào tốn có mơ hình assignment nh set-partitioning, set-covering, network flows, v.v… 6.2 Hướng phát triển Tuy cố gắng nhiều để nghiên cứu thực tốn xếp thời khóa biểu mơn học, thời gian nghiên cứu có hạn, vấn đề nghiên cứu lý thuyết lẫn thực n ên đề tài nhiều thiếu sót, khuyết điểm cần có bổ sung h ướng phát triển tiếp theo: Cần nghiên cứu thêm tượng bất thường xuất áp dụng ph ương pháp Column Generation head -in, tail-off, instability Các tượng ảnh hưởng đến hiệu giải thuật Vì vậy, thực thử nghiệm nên theo dõi tượng đề biện pháp phịng chống Mơ hình xếp thời khóa biểu mơn học tr ường Đại học Bách khoa phức tạp, có số ràng buộc số biến lớn Dựa vào liệu tốn số ràng buộc lên đến hàng trăm nghìn, điều làm cho giải thuật đơn hình giải toán master chạy chậm Theo số nghiên cứu, người ta khắc phục đ ược nhược điểm cách kết hợp với phương pháp Row Generation Đây c ũng hướng nghiên cứu khả thi cho toán Việc chứng minh nghiệm tối ưu phụ thuộc nhiều vào giải thuật thực toán pricing Hiện tại, luận văn sử dụng giải thuật local search n ên khơng tạo hết column cần thiết C òn giải thuật branch-and-bound thực thi khơng tốt Cho nên cần phải cải thiện t ìm giải thuật để thực b ài toán pricing hiệu Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 60 Chương trình chạy hệ thống tuần tự, cần nghi ên cứu để thực chương trình chạy hệ thống song song Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 61 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Barnhard C., Johnson, E L., Nemhauser, G L., Salvelsbergh, M W P., Vance, P.: Branch-and-Price: Column Generation for Solving Huge Integer Problems , Operations Research, 46, pp 316-329, 1998 Maculan N., de Mendonca Passini, M., de Moura Brito, J A., Loiseau, I.: Column-Generation in Integer Linear Programming , RAIRO-Operations Reasearch, 37, pp 67-83, 2003 Andrea, Q., Paulo, S.: A Column Generation Scheme for Facult y Timetabling, Practice and Theory of Automated Timetabling V, 5th International Conference, PATAT 2004, Pittsburgh, PA, USA , 2004 Papousis K., Valouxis, C., Housos, E.: A Column Generation Approach for the Timetabling Problem of Greek High Schools , Journal of Operations Research Society, 54, pp 230-238, 2003 G.B Dantzig and P Wolfe, Decomposition Principle for Linear Programs , Operations Research 8, 1960 Schaerf A.: A Survey of Automated Timetabling , Artificial Intelligence Review, 13, pp 87-127, 1999 Carter M., Laporte G.: Recent Developments in Practical Course Timetabling , Pactical and Theory of Automated Timetabling II (PATAT ’97), Toronto ON, Canada, August 20-22, 1997, Slected Papers, Lecture Notes in Computer Science 1408, Springer Verlag, B erlin, 272, pp 3-9, 1998 Azevedo F & Barahona P.: Timetabling in Constraint Logic Programming , Proceedings of World Congress on Expert Systems, 1994 Erben W and Keppler J.: A Genetic Algorithm Solving a Weekly Course Timetabling Problem, Department of Computer Science, Fachhochschule Konstanz, 1995 Kirkpatrick S, Gelatt C.D and Vecchi M.P.: Optimisation by simulated annealing, Science New Series, 220, pp 671 -680, 1983 Elmohammed M.A.S., Coddington P., Fox G.: A comparison of annealing techniques for academic course scheduling , Pactical and Theory of Automated Timetabling II (PATAT ’97), Toronto ON, Canada, August 20 -22, 1997, Slected Papers, Lecture Notes in Computer Science 1408, Springer Verlag, Berlin, 272, pp 92-112, 1998 Costa D.: A tabu search for computing an operational timetable European Journal of Operational Research , European Journal of Operation Research, 76, pp 98-110, 1994 Alvarez-Valdes R., Crespo E and Tamarit J.M.: Assigning students sections using tabu search, Annals of Operations Research, 96, pp 1-16, 2000 Zervoudakis K and Stamatopoulos P.: A generic object-oriented constraint-based model for university course timetabling , 2001 Breslaw, J A.: A Linear Programming Solution to the Faculty Assignment Problem, Socio-Economic Planning Sciences, 6, pp 227-230, 1976 Shin, W & Sullivan, J A.: Dynamic Course Scheduling for College Faculty Via ZeroOne Programming, 1977 Tripathy, A.: Computerised Decision Aid for Timetabling – A Case Analysis, 1992 Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 62 [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] Hai, L H., Tam, V H and Anh, D T.: Course Timetabling of an Entire University with Local Search Method , Proceedings of International School on Computational Sciences and Engineering: Theory and Applications (COSCI2005), March 2-4, 2004, Ho Chi Minh City University of Technol ogy 2005 Duong Tuan Anh, Vo Hoang Tam, Nguyen Quoc Viet Hung: Generating Complete University Course Timetables by Using Local Search Methods , Proceedings of the 4th IEEE International Conference on Computer Sciences, Research, Innovation and Vision for th e Future (RIVF 2006), Feb 12-16, Ho Chi Minh City, Vietnam, pp 67-74, 2006 Selim S.M.: Split vertices in vertex colouring and their application in developing a solution to the faculty timetable problem , The Computer Journal, 31, pp 76 -82, 1998 Neufeld G.A and Tartar J.: Graph colouring conditions for the existence of solutions to the timetable problem , Communications of ACM, 8, pp 450 -454, 1974 Asratian A.S and de Werra D.: A generalized class–teacher model for some timetabling problems, European Journal of Operational Research, 143 (3), pp 531-542., 2002 Land A.H and Doig A.G.: An Automatic Method for Solving Discrete Programming Problems, Econometrica 28 (3), pp 497 -520, 1967 Gomory R.E.: Essentials of an Algorithm for Interger Solutions to Linear Programs, Bulletin of the American Mathematical Society , 64 (5), pp 275-278, 1958 Dantzig G.B., Fulkerson D.R., Johnson J.M.: Solution of a Large-Scale Travelling Salesman Problem, Operations Research, 2, pp 393 -410, 1954 Desrosiers J., Soumis F., Desrochers M.: Routing with time windows by column generation, Networks, 14, pp 545-565, 1984 Ford L.R., Fulkerson D.R.: A suggested computation for maximal multicommodity network flows, Management Science, Baltimore , 5, pp 97-110, 1958 Gilmore P.C., Gomory G.E.: A linear programming approach to the cutting -stock problem, Operations Research, 9, pp 849-858, 1961 Gilmore P.C., Gomory G.E.: A linear programming approach to the cutting -stock problem (Part II), Operations Research, 11, pp 863 -888, 1961 http://www.coin-or.org/Bcp http://www.coin-or.org/Symphony http://www.coin-or.org/Clp http://www.coin-or.org/Vol http://www.branchandcut.org http://www.ilog.com/products/cplex http://www.dash-optimization.com Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 63 Phụ lục A CƠ SỞ DỮ LIỆU THẬT CỦA CH ƯƠNG TRÌNH Chương trình thực dựa sở liệu thật trường Đại học Bách Khoa Tp HCM năm 2001 Số liệu bảng class Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 64 Số liệu bảng course Số liệu bảng group Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 65 Số liệu bảng meeting Số liệu bảng room Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 66 Số liệu bảng room_type Số liệu bảng department_info Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 67 Số liệu bảng block_location Số liệu bảng course_meeting Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Môn Học Trang 68 10 Số liệu bảng class_group Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 69 Phụ lục B BCP FRAMEWORK Như giới thiệu chương 5, BCP framework hi ện thực giải thuật branch -and-cut branch-and-price Phần giới thiệu giao diện lập tr ình BCP framework mà chương trình sử dụng Lớp USER_initialize: lớp có chức khởi tạo mơi tr ường khối xử lý, gồm hàm sau: msgenv_init(): khởi tạo môi trường xử lý, gồm hai chế độ, xử lý v xử lý song song tm_init(): khởi tạo module Tree Manger lp_init(): khởi tạo module Linear Programming vg_init() cg_init(): khởi tạo module Var Generator v Cut Generator Lớp BCP_tm_user(): lớp thực module Tree Manager pack_module_data(): đóng gói d ữ liệu để giao tiếp module unpack_feasible_solution(): l liệu trả từ module Linea r Programming (un)pack_var_algo(): đóng gói/gi ải nén variable trả từ module Var Generator (un)pack_cut_algor(): đóng gói/gi ải nén cut trả từ modul Cut Generator Initialize_core() create_root(): hai phương th ức có chức khởi tạo node branch-and-bound User phải override hai phương thức để khởi tạo tốn Lớp BCP_lp_user: lớp thực hầu hết chức giải thuật branch -andbound, bao gồm giải tốn master, tìm kiếm lời giải khả thi, tạo column, v.v…User thực lớp cho tốn Lớp gồm phương thức sau unpack_module_data(): giải nén liệu lớp BCP_tm_user gởi (un)pack_var_algo() (un)pack_cut_algo(): có tính gi ống hai phương thức tương ứng lớp BCP_tm_user initialize_solver_interface(): kh ởi tạo LP solver initialize_new_search_tree_node(): ti ến hành tiền xử lý tree node BCP_tm_user gởi modify_lp_parameters(): thay đ ổi tham số cho LP solver test_feasibility(): kiểm tra xem nghiệm có khả thi hay khơng generate_heuristic_solution(): t ạo nghiệm heuristic từ ph ương án cuts_to_rows(): tạo row từ cuts nhận đ ược vars_to_cols(): tạo columns từ vars nhận đ ược generate_cuts_in_lp(): tạo cuts từ LP process Thông thường, việc tạo vars dành cho module Cut Generator Tuy nhiên, có th ể tạo cuts từ module Linear Programming để giảm chi phí trao đổi liệu module Linear Programming với moduel Cut Generator generate_vars_in_lp(): tạo var từ LP process select_branching_candidates(): thực branching Lớp BCP_vg_user: Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 70 un(pack)_module_data(): đóng gói/gi ải nén liệu nhận từ module Tree Manager generate_vars(): thực việc tạo vars Lớp BCP_cg_user: un(pack)_module_data(): đóng gói/gi ải nén liệu nhận từ module Tree Manager generate_cuts(): thực việc tạo cuts Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 71 Phụ lục C CÁC THUẬT NGỮ THUẬT NGỮ TIẾNG ANH THUẬT NGỮ TIẾNG VIỆT Branch-and-bound algorithm Giải thuật nhánh cận Branching Phân nhánh Column generation Sinh cột Constraint programming Lập trình ràng buộc Combinatorial optimization Tối ưu tổ hợp Cost function Hàm chi phí Cutting plane Mặt phẳng cắt Dantzig-Wolfe decomposition Phân rã Dantzig-Wolfe Diversification Đa dạng hóa Genetic algorithm Giải thuật di truyền Graph coloring algorithm Giải thuật tô màu đồ thị Hill climbing algorithm Giải thuật leo đồi Intesification Tập trung hóa Integer linear programming Quy hoạch ngun tuyến tính Integer programming Quy hoạch nguyên Knapsack problem Bài toán túi Linear programming Quy hoạch tuyến tính Local search Tìm kiếm cục Long-term tabu list Danh sách tabu dài hạn Lower bound Reduced cost Cận Giá trị thu giảm Short-term tabu list Danh sách tabu ngắn hạn Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 72 Shortest path problem Bài tốn tìm đường ngắn Simulated annealing Mơ luyện kim Simplex algorithm Giải thuật đơn hình Tabu search Tìm kiếm tabu Upper bound Cận Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 73 ... ước nhỏ giải thuật Column Generation Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang 39 Chương PHƯƠNG PHÁP GIẢI BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU MÔN HỌC 4.1 Giới thiệu... tài Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Mơn Học Trang Chương CÁC CƠNG TRÌNH LIÊN QUAN 2.1 Phương pháp xây dựng Đây nhóm phương pháp đ ời sớm để giải tốn xếp thời khóa biểu. .. -and-bound phương pháp tổng quát để giải cho toán quy hoạch ngun, sở để hình thành Dùng Phương Pháp Column Generation đ ể Sắp Xếp Thời Khóa Biểu Môn Học Trang 38 phương pháp branch-and-cut, phương pháp