LỜI CÁM ƠN Luận án Tiến sĩ ―Nghiên cứu ứng dụng các giải thuật metaheuristic cho bài toán xếp thời khóa biểu môn học trường đại học‖ đã được thực hiện trong nhiều năm và NCS đã nhận được
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
NGUYỄN TẤN TRẦN MINH KHANG
NGHIÊN CỨU ỨNG DỤNG CÁC GIẢI THUẬT
METAHEURISTIC CHO BÀI TOÁN XẾP THỜI KHÓA BIỂU MÔN HỌC TRƯỜNG ĐẠI HỌC
LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH
Tp.Hồ Chí Minh – Năm 2013
Trang 2
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
NGUYỄN TẤN TRẦN MINH KHANG
NGHIÊN CỨU ỨNG DỤNG CÁC GIẢI THUẬT METAHEURISTIC CHO BÀI TOÁN XẾP THỜI KHÓA BIỂU MÔN HỌC TRƯỜNG ĐẠI HỌC
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 62 48.01 01
Phản biện 1: PGS.TS DƯƠNG TUẤN ANH Phản biện 2: TS NGUYỄN ĐỨC CƯỜNG Phản biện 3: TS ĐINH BÁ TIẾN
Phản biện độc lập 1: PGS.TS ĐỖ PHÚC Phản biện độc lập 2: PGS.TS ĐỖ VĂN NHƠN
NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS TRẦN THỊ HUỆ NƯƠNG
Tp.Hồ Chí Minh – Năm 2013
Trang 3LỜI CÁM ƠN
Luận án Tiến sĩ ―Nghiên cứu ứng dụng các giải thuật metaheuristic cho bài toán xếp thời khóa biểu môn học trường đại học‖ đã được thực hiện trong nhiều năm và NCS đã nhận được rất nhiều sự giúp đỡ của gia đình, Thầy Cô và bạn đồng nghiệp Trước hết xin cám ơn gia đình đã luôn động viên và tạo mọi điều kiện tốt nhất giúp tôi hoàn thành luận án
Xin chân thành cám ơn PGS.TS.Trần Thị Huệ Nương đã tận tình hướng dẫn tôi trong suốt nhiều năm qua
Cám ơn tất cả các Thầy Cô Khoa Công nghệ thông tin đã hỗ trợ tôi rất nhiều trong công việc
Cám ơn các bạn đồng nghiệp và bạn bè đã luôn bên cạnh, giúp tôi vượt qua mọi khó khăn để hoàn thành luận án
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận án là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả luận án
Nguyễn Tấn Trần Minh Khang
Trang 5Mục lục
Tóm tắt xiv
Chương 1 Giới thiệu bài toán 1
1.1 Dẫn nhập 1
1.2 Mục tiêu và đóng góp của luận án 2
1.3 Nội dung luận án 3
Chương 2 Mô hình hóa bài toán thời khóa biểu môn học và các phương pháp tiếp cận 5
2.1 Giới thiệu bài toán 5
2.2 Mô hình hóa bài toán 7
2.2.1 Các kí hiệu 7
2.2.2 Các biến của mô hình 9
2.2.3 Mô hình hóa các ràng buộc cứng 10
2.2.4 Mô hình hóa các ràng buộc mềm 11
2.2.5 Hàm mục tiêu 14
2.2.6 Các trọng số 14
2.2.7 Đặc thù của bài toán xếp thời khóa biểu tại các đại học Việt Nam so với các bài toán thời khóa biểu các nước khác 15
2.3 Các hướng tiếp cận 16
2.3.1 Nhóm các heuristics trực tiếp 16
2.3.2 Nhóm các kĩ thuật dựa trên bài toán tô màu đồ thị 16
2.3.3 Nhóm các kĩ thuật Quy hoạch ràng buộc 18
2.3.4 Nhóm các hướng tiếp cận metaheuristics dựa trên tìm kiếm cục bộ 19
2.3.5 Nhóm các hướng tiếp cận metaheuristics dựa trên quần thể 33
2.3.6 Nhóm các hướng tiếp cận hyper-heuristics 41
2.3.7 Nhóm các hướng tiếp cận cho bài toán tối ưu đa mục tiêu 42
2.4 Các kỹ thuật chung của các thuật giải metaheuristic khi áp dụng cho bài toán thời khóa biểu môn học Việt Nam 44
2.4.1 Biểu diễn lời giải 44
2.4.2 Các phương pháp khởi tạo lời giải ban đầu 44
2.4.3 Các phép chuyển 47
2.4.4 Shaking – Kick Move 49
2.4.5 Các kỹ thuật Local search 53
2.5 Mô tả về bộ dữ liệu dùng để đánh giá các thuật toán 57
2.5.1 Độ phức tạp của bộ dữ liệu 57
2.5.2 Cấu trúc của bộ dữ liệu 59
Chương 3 Các phương pháp tiếp cận đơn lời giải và quần thể 63
3.1 Thuật giải Tabu Search 63
3.1.1 Thiết kế thuật giải Tabu Search cho bài toán xếp thời khóa biểu 63
3.1.2 Kết quả chạy thực nghiệm thuật giải Tabu Search 65
Trang 63.2 Thuật giải Simulated Annealing 68
3.2.1 Thiết kế thuật giải Simulated Annealing cho bài toán xếp thời khóa biểu 68
3.2.2 Kết quả chạy thực nghiệm thuật giải Simulated Annealing 69
3.3 Thuật giải VNS 72
3.3.1 Thiết kế Variable Neighborhood Search cho bài toán xếp thời khóa biểu 72
3.3.2 Kết quả chạy thực nghiệm thuật giải Variable Neighborhood Search 73
3.3.3 So sánh kết quả chạy thực nghiệm giữa 3 thuật giải Tabu Search, Simulated Annealing và Variable Neighborhood Search 77
3.4 Thuật giải Di Truyền 78
3.4.1 Thiết kế thuật giải Di Truyền cho bài toán xếp thời khóa biểu 78
3.4.2 Kết quả chạy thực nghiệm thuật giải Di Truyền 81
3.5 Thuật giải Memetic 84
3.5.1 Thiết kế thuật giải Memetic cho bài toán xếp thời khóa biểu 84
3.5.2 Kết quả chạy thực nghiệm thuật giải Memetic 86
3.6 Thuật giải Harmony Search 89
3.6.1 Thiết kế thuật giải Harmony Search cho bài toán xếp thời khóa biểu 89
3.6.2 Kết quả chạy thực nghiệm thuật giải Harmony Search 91
3.7 Thuật giải Particle Swarm Optimization 95
3.7.1 Thiết kế Particle Swarm Optimization cho bài toán xếp thời khóa biểu 95
3.7.2 Giải thích mã giả thuật giải Particle Swarm Optimization cho bài toán xếp thời khóa biểu 96
3.7.3 Kết quả chạy thực nghiệm thuật giải Particle Swarm Optimization 98
3.8 Thuật giải Bees 101
3.8.1 Thiết kế thuật giải Bees cho bài toán xếp thời khóa biểu 101
3.8.2 Giải thích mã giả thuật giải Bees cho bài toán xếp thời khóa biểu 103
3.8.3 Kết quả chạy thực nghiệm thuật giải Bees 107
3.8.4 So sánh kết quả chạy thực nghiệm giữa 5 thuật giải GA, MA, HS, PSO và BA 110 3.9 Tóm tắt 111
Chương 4 Các phương pháp kết hợp 112
4.1 Phương pháp kết hợp giữa các thuật giải đơn lời giải và thuật giải bầy đàn 112
4.1.1 Phương pháp kết hợp thuật giải GA và thuật giải TS, VNS, SA 112
4.1.2 Phương pháp kết hợp thuật giải Harmony Search và thuật giải TS, VNS, SA 124
4.1.3 Phương pháp kết hợp thuật giải PSO và thuật giải TS, VNS, SA 137
4.1.4 Phương pháp kết hợp thuật giải Bees và thuật giải TS, VNS, SA 149
4.2 Phương pháp kết hợp giữa các thuật giải quần thể, bầy đàn 162
4.2.1 Phương pháp kết hợp thuật giải Bees và thuật giải GA 162
4.2.2 Phương pháp kết hợp thuật giải Bees và thuật giải Harmony Search 168
4.2.3 Phương pháp kết hợp thuật giải PSO và thuật giải Bees 173
4.3 Tóm tắt 179
Chương 5 Kết quả thực nghiệm 180
5.1 Tính dễ hiện thực của thuật giải 180
5.2 Phân tích số liệu thực nghiệm 181
5.3 Lý giải kết quả thực nghiệm 191
Trang 7Chương 6 Kết luận và Hướng phát triển 194
6.1 Tóm tắt các đóng góp của luận án 194
6.2 Những hạn chế của luận án 195
6.3 Hướng phát triển của luận án 195
Danh mục công trình của tác giả 197
Tài liệu tham khảo 199
Trang 8Danh mục các thuật ngữ, ký hiệu, chữ viết tắt
GA : thuật giải di truyền (Genetic algorithm)
VNS : thuật giải Variable Neighborhood Search ILS : thuật giải Iterated Local Search
Monkey Search : thuật giải Monkey Search
Simulated Annealing algorithm : thuật giải tôi luyện thép
Metropolis-Hastingalgorithm : thuật giải Metropolis-Hasting
Great Delugealgorithm : thuật giải đại hồng thủy
Firefly algorithm : thuật giải đom đóm
Bees algorithm : thuật giải bầy ong
Ant Colony optimization : thuật giải bầy kiến
PSO : thuật giải Particle Swarm Optimization
Scatter Searchalgorithm : thuật giải Scatter Search
Memetic Algorithmalgorithm : thuật giải Memetic
Travelling Salesman Problem : bài toán người du lịch (TSP)
Single move : phép chuyển đơn
Swap move : phép chuyển hoán vị
Trang 9Constraint Programming : quy hoạch ràng buộc
Constraint Logic Programming : quy hoạch logic có ràng buộc
Local Search : tìm kiếm cục bộ
Intensification : tính tăng cường
Diversification : tính đa dạng
GRASP :Greedy Randomized Adaptive Search
Procedure Population : quần thể (tập các cá thể)
Musical instrument : nhạc cụ
Decision variable : biến quyết định
Value range : miền giá trị của biến quyết định
Objective function : hàm mục tiêu
Random search : tìm kiếm ngẫu nhiên
Evolutionary algorithm : thuật giải thuộc nhóm tiến hóa
Integer Goal Programming :kĩ thuật quy hoạch mục tiêu nguyên
Trang 10Danh mục các hình
Hình 2.1 Mã giả thuật giải tôi luyện thép 27
Hình 2.2 Mã giả quy trình thực hiện chung của phép chuyển đơn 48
Hình 2.3 Mã giả quy trình thực hiện chung của phép chuyển hoán vị 49
Hình 2.4 Mã giả kỹ thuật Kick Move 1 49
Hình 2.5 Mã giả kỹ thuật Kick Move 2 49
Hình 2.6 Mã giả kỹ thuật Kick Move 3 50
Hình 2.7 Mã giả Giải thuật Ejection Chain 50
Hình 2.8 Mã giả giải thuật Shaking_01 51
Hình 2.9 Mã giả giải thuật Shaking_MoveBad 51
Hình 2.10 Mã giả giải thuật Shaking_swap 52
Hình 2.11 Mã giả giải thuật Shaking_Single 52
Hình 2.12 Mã giả giải thuật Shaking_Moves 53
Hình 2.13 Mã giả thuật giải local search tổng quát 54
Hình 2.14 Mã giả thuật giải Chiến lược 1 - Hill Climbing 1 54
Hình 2.15 Mã giả thuật giải Chiến lược 2 - Hill Climbing 2 55
Hình 2.16 Mã giả thuật giải Chiến lược 3 - Hill Climbing 3 55
Hình 2.17 Mã giả thuật giải Chiến lược 4 - Sequential Local Search 1 55
Hình 2.18 Mã giả thuật giải Chiến lược 5 - Sequential Local Search 2 56
Hình 2.19 Mã giả thuật giải Chiến lược 6 - Sequential Local Search 3 56
Hình 2.20 Cấu trúc bộ dữ liệu dưới dạng XML 60
Hình 3.1 Mã giả thuật giải Tabu Search 65
Hình 3.2 Kết quả tốt nhất thuật giải Tabu Search 66
Hình 3.3 Kết quả trung bình tốt nhất thuật giải Tabu Search 66
Hình 3.4 Giá trị vi phạm lời giải hiện tại thuật giải Tabu Search 67
Hình 3.5 Giá trị vi phạm lời giải tốt nhất thuật giải Tabu Search 67
Hình 3.6 Mã giả thuật giải Simulated Annealing 69
Hình 3.7 Kết quả tốt nhất thuật giải Simulated Annealing 70
Hình 3.8 Kết quả trung bình tốt nhất thuật giải SimulatedAnnealing 71
Hình 3.9 Giá trị vi phạm lời giải hiện tại thuật giải Simulated Annealing 71
Hình 3.10 Giá trị vi phạm lời giải tốt nhất thuật giải Simulated Annealing 72
Hình 3.11 Mã giả thuật giải Variable Neighborhood Search 73
Hình 3.12 Kết quả tốt nhất thuật giải Variable Neighborhood Search 75
Trang 11Hình 3.13 Kết quả trung bình tốt nhất thuật giải Variable Neighborhood Search 75
Hình 3.14 Giá trị vi phạm lời giải hiện tại thuật giải Variable Neighborhood Search 76
Hình 3.15 Giá trị vi phạm lời giải tốt nhất thuật giải Variable Neighborhood Search 76
Hình 3.16 Mã giả thuật giải Di Truyền 81
Hình 3.17 Kết quả tốt nhất thuật giải Di Truyền 82
Hình 3.18 Kết quả trung bình tốt nhất thuật giải Di Truyền 83
Hình 3.19 Giá trị vi phạm lời giải hiện tại thuật giải Di Truyền 83
Hình 3.20 Giá trị vi phạm lời giải tốt nhất thuật giải Di Truyền 84
Hình 3.21 Mã giả thuật giải Memetic 86
Hình 3.22 Kết quả tốt nhất thuật giải Memetic 87
Hình 3.23 Kết quả trung bình tốt nhất thuật giải Memetic 87
Hình 3.24 Giá trị vi phạm lời giải hiện tại thuật giải Memetic 88
Hình 3.25 Giá trị vi phạm lời giải tốt nhất thuật giải Memetic 89
Hình 3.26 Mã giả thuật giải Harmony Search 91
Hình 3.27 Mã giả thuật giải tạo lời giải Harmony mới 91
Hình 3.28 Kết quả tốt nhất thuật giải Harmony Search 93
Hình 3.29 Kết quả trung bình tốt nhất thuật giải Harmony Search 93
Hình 3.30 Giá trị vi phạm lời giải hiện tại thuật giải Harmony Search 94
Hình 3.31 Giá trị vi phạm lời giải tốt nhất thuật giải Harmony Search 94
Hình 3.32 Mã giả thuật giải Particle Swarm Optimization 96
Hình 3.33 Kết quả tốt nhất thuật giải Particle Swarm Optimization 99
Hình 3.34 Kết quả trung bình tốt nhất thuật giải PSO 100
Hình 3.35 Giá trị vi phạm lời giải hiện tại thuật giải PSO 100
Hình 3.36 Giá trị vi phạm lời giải tốt nhất thuật giải PSO 101
Hình 3.37 Mã giả thuật giải Bees 103
Hình 3.38 Mã giả thuật giải Neighbourhood Search 104
Hình 3.39 Mã giả thuật giải Create_A_Neighbour_Solution_NS1 105
Hình 3.40 Mã giả thuật giải Create_A_Neighbour_Solution_NS2 106
Hình 3.41 Kết quả tốt nhất thuật giải Bees 108
Hình 3.42 Kết quả trung bình tốt nhất thuật giải Bees 108
Hình 3.43 Giá trị vi phạm lời giải hiện tại thuật giải Bees 109
Hình 3.44 Giá trị vi phạm lời giải tốt nhất thuật giải Bees 109
Hình 4.1 Mã giả thuật giải GA kết hợp TS, SA, VNS 114
Hình 4.2 Kết quả tốt nhất thuật giải GA kết hợp TS 115
Trang 12Hình 4.3 Kết quả trung bình tốt nhất thuật giải GA kết hợp TS 115
Hình 4.4 Giá trị vi phạm lời giải hiện tại thuật giải GA kết hợp TS 116
Hình 4.5 Giá trị vi phạm lời giải hiện tốt nhất giải GA kết hợp TS 116
Hình 4.6 Kết quả tốt nhất thuật giải GA kết hợp SA 118
Hình 4.7 Kết quả trung bình tốt nhất thuật giải GA kết hợp SA 118
Hình 4.8 Giá trị vi phạm lời giải hiện tại thuật giải GA kết hợp SA 119
Hình 4.9 Giá trị vi phạm lời giải tốt nhất thuật giải GA kết hợp SA 119
Hình 4.10 Kết quả tốt nhất thuật giải GA kết hợp VNS 121
Hình 4.11 Kết quả trung bình tốt nhất thuật giải GA kết hợp Variable Neighborhood Search 122
Hình 4.12 Giá trị vi phạm lời giải hiện tại thuật giải GA kết hợp Variable Neighborhood Search 122
Hình 4.13 Giá trị vi phạm lời giải tốt nhất thuật giải GA kết hợp Variable Neighborhood Search 123
Hình 4.14 Mã giả thuật giải Harmony Search kết hợp TS, SA, VNS 126
Hình 4.15 Kết quả tốt nhất thuật giải Harmony Search kết hợp TS 127
Hình 4.16 Kết quả trung bình tốt nhất thuật giải Harmony Search kết hợp TS 128
Hình 4.17 Giá trị vi phạm lời giải hiện tại thuật giải Harmony Search kết hợp TS 128
Hình 4.18 Giá trị vi phạm lời giải tốt nhất thuật giải Harmony Search kết hợp TS 129
Hình 4.19 Kết quả tốt nhất thuật giải Harmony Search kết hợp SA 130
Hình 4.20 Kết quả trung bình tốt nhất thuật giải Harmony Search kết hợp SA 131
Hình 4.21 Giá trị vi phạm lời giải hiện tại giải Harmony Search kết hợp SA 131
Hình 4.22 Giá trị vi phạm lời giải tốt nhất giải Harmony Search kết hợp SA 132
Hình 4.23 Kết quả tốt nhất thuật giải HS kết hợp VNS 134
Hình 4.24 Kết quả trung bình tốt nhất thuật giải HS kết hợp Variable Neighborhood Search 134
Hình 4.25 Giá trị vi phạm lời giải hiện tại thuật giải HS kết hợp Variable Neighborhood Search 135
Hình 4.26 Giá trị vi phạm lời giải tốt nhất thuật giải HS kết hợp Variable Neighborhood Search 135
Hình 4.27 Mã giả thuật giải PSO kết hợp TS, SA, VNS 138
Hình 4.28 Kết quả tốt nhất thuật giải PSO kết hợp TS 140
Hình 4.29 Kết quả trung bình tốt nhất thuật giải PSO kết hợp TS 140
Hình 4.30 Giá trị vi phạm lời giải hiện tại thuật giải PSO kết hợp TS 141
Hình 4.31 Giá trị vi phạm lời giải tốt nhất thuật giải PSO kết hợp TS 141
Trang 13Hình 4.32 Kết quả tốt nhất thuật giải PSO kết hợp SA 143
Hình 4.33 Kết quả trung bình tốt nhất thuật giải PSO kết hợp SA 143
Hình 4.34 Giá trị vi phạm lời giải hiện tại thuật giải PSO kết hợp SA 144
Hình 4.35 Giá trị vi phạm lời giải tốt nhất thuật giải PSO kết hợp SA 144
Hình 4.36 Kết quả tốt nhất thuật giải PSO kết hợp VNS 146
Hình 4.37 Kết quả trung bình tốt nhất thuật giải PSO kết hợp Variable Neighborhood Search 147
Hình 4.38 Giá trị vi phạm lời giải hiện tại thuật giải PSO kết hợp Variable Neighborhood Search 147
Hình 4.39 Giá trị vi phạm lời giải tốt nhất thuật giải PSO kết hợp Variable Neighborhood Search 148
Hình 4.40 Mã giả thuật giải Bees kết hợp TS, VNS, SA 151
Hình 4.41 Kết quả tốt nhất thuật giải Bees kết hợp TS 152
Hình 4.42 Kết quả trung bình tốt nhất thuật giải Bees kết hợp TS 153
Hình 4.43 Giá trị vi phạm lời giải hiện tại thuật giải Bees kết hợp TS 153
Hình 4.44 Giá trị vi phạm lời giải tốt nhất thuật giải Bees kết hợp TS 154
Hình 4.45 Kết quả tốt nhất thuật giải Bees kết hợp SA 156
Hình 4.46 Kết quả trung bình tốt nhất thuật giải Bees kết hợp SA 156
Hình 4.47 Giá trị vi phạm lời giải hiện tại thuật giải Bees kết hợp SA 157
Hình 4.48 Giá trị vi phạm lời giải tốt nhất thuật giải Bees kết hợp SA 157
Hình 4.49 Kết quả tốt nhất thuật giải Bees kết hợp VNS 159
Hình 4.50 Kết quả trung bình tốt nhất thuật giải Bees kết hợp VNS 160
Hình 4.51 Giá trị vi phạm lời giải hiện tại thuật giải Bees kết hợp VNS 160
Hình 4.52 Giá trị vi phạm lời giải tốt nhất thuật giải Bees kết hợp VNS 161
Hình 4.53 Mã giả thuật giải Bees kết hợp GA 164
Hình 4.54 Kết quả tốt nhất thuật giải Bee kết hợp GA 166
Hình 4.55 Kết quả trung bình tốt nhất thuật giải Bee kết hợp Genetic Algorithms 166
Hình 4.56 Giá trị vi phạm lời giải hiện tại thuật giải Bee kết hợp Genetic Algorithms 167
Hình 4.57 Giá trị vi phạm lời giải tốt nhất thuật giải Bees kết hợp Genetic Algorithms 167
Hình 4.58 Mã giả thuật giải Bees kết hợp Harmony Search 169
Hình 4.59 Kết quả tốt nhất thuật giải HS-Bees 171
Hình 4.60 Kết quả trung bình tốt nhất thuật giải HS-Bees 171
Hình 4.61 Giá trị vi phạm lời giải hiện tại thuật giải HS-Bees 172
Hình 4.62 Giá trị vi phạm lời giải tốt nhất thuật giải HS-Bees 172
Trang 14Hình 4.63 Mã giả thuật giải PSO kết hợp Bees 174
Hình 4.64 Kết quả tốt nhất thuật giải PSO-Bees 176
Hình 4.65 Kết quả trung bình tốt nhất thuật giải PSO-Bees 176
Hình 4.66 Giá trị vi phạm lời giải hiện tại thuật giải PSO-Bees 177
Hình 4.67 Giá trị vi phạm lời giải tốt nhất thuật giải PSO-Bees 177
Hình 5.1 Biểu đồ xếp hạng tính dễ hiện thực của các thuật giải 181
Hình 5.2 Biểu đồ thời gian thực thi trung bình của các phiên bản thuật giải 185
Hình 5.3 Biểu đồ tổng hợp kết quả trung bình của các phiên bản thuật giải đƣợc chọn 190
Hình 5.4 Biểu đồ tổng hợp kết tốt nhất của các phiên bản thuật giải đƣợc chọn 190
Trang 15Danh mục các bảng
Bảng 2.1.Bảng giá trị của các độ đo cho các bộ dữ liệu 58
Bảng 2.2.Bảng mô tả cấu trúc bộ dữ liệu 60
Bảng 3.1.Bảng tham số thực nghiệm cho thuật giải Tabu Search 65
Bảng 3.2.Bảng kết quả thực nghiệm cho thuật giải Tabu Search 65
Bảng 3.3.Bảng tham số thực nghiệm cho thuật giải Simulated Annealing 69
Bảng 3.4.Bảng kết quả thực nghiệm cho thuật giải Simulated Annealing 69
Bảng 3.5.Bảng tham số thực nghiệm cho thuật giải VNS 73
Bảng 3.6.Bảng kết quả thực nghiệm cho thuật giải VNS 74
Bảng 3.7 So sánh kết quả tốt nhất giữa TS, SA và VNS 77
Bảng 3.8 So sánh kết quả trung bình tốt nhất giữa TS, SA và VNS 77
Bảng 3.9.Bảng tham số thực nghiệm cho thuật giải Di Truyền 81
Bảng 3.10.Bảng kết quả thực nghiệm cho thuật giải Di Truyền 81
Bảng 3.11.Bảng tham số thực nghiệm cho thuật giải Memetic 86
Bảng 3.12.Bảng kết quả thực nghiệm cho thuật giải Memetic 86
Bảng 3.13.Bảng tham số thực nghiệm cho thuật giải Harmony Search 91
Bảng 3.14.Bảng kết quả thực nghiệm cho thuật giải Harmony Search 91
Bảng 3.15.Bảng tham số thực nghiệm cho thuật giải PSO 98
Bảng 3.16.Bảng kết quả thực nghiệm cho thuật giải PSO 99
Bảng 3.17.Bảng tham số thực nghiệm kích thước quần thể đàn ong n 103
Bảng 3.18.Bảng tham số thực nghiệm số vùng tìm kiếm lân cận m 103
Bảng 3.19.Bảng tham số thực nghiệm kích thước vùng lân cận ngh 104
Bảng 3.20.Bảng tham số thực nghiệm nep 105
Bảng 3.21.Bảng tham số thực nghiệm nsp 105
Bảng 3.22.Bảng tham số thực nghiệm cho thuật giải Bees 107
Bảng 3.23.Bảng kết quả thực nghiệm cho thuật giải Bees 107
Bảng 3.24 So sánh kết quả tốt nhất giữa GA, MA, HS, PSO và BA 110
Bảng 3.25 So sánh kết quả trung bình tốt nhất giữa GA, MA, HS, PSO và BA 110
Bảng 4.1.Bảng tham số thực nghiệm cho thuật giải GA-TS 114
Bảng 4.2.Bảng kết quả thực nghiệm cho thuật giải GA-TS 114
Bảng 4.3.Bảng tham số thực nghiệm cho thuật giải GA-SA 117
Bảng 4.4.Bảng kết quả thực nghiệm cho thuật giải GA-SA 117
Bảng 4.5.Bảng tham số thực nghiệm cho thuật giải GA-VNS 120
Trang 16Bảng 4.6.Bảng kết quả thực nghiệm cho thuật giải GA-VNS 120
Bảng 4.7 So sánh kết quả tốt nhất giữa GA, GA+TS, GA+VNS và GA+SA 123
Bảng 4.8 So sánh kết quả trung bình tốt nhất giữa GA, GA+TS, GA+VNS và GA+SA 124
Bảng 4.9.Bảng tham số thực nghiệm cho thuật giải HS-TS 126
Bảng 4.10.Bảng kết quả thực nghiệm cho thuật giải HS-TS 126
Bảng 4.11.Bảng tham số thực nghiệm cho thuật giải HS-SA 129
Bảng 4.12.Bảng kết quả thực nghiệm cho thuật giải HS-SA 130
Bảng 4.13.Bảng tham số thực nghiệm cho thuật giải HS-VNS 132
Bảng 4.14.Bảng kết quả thực nghiệm cho thuật giải HS-VNS 133
Bảng 4.15 So sánh kết quả tốt nhất giữa HS, HS+TS, HS+VNS và HS+SA 136
Bảng 4.16 So sánh kết quả trung bình tốt nhất giữa HS, HS+TS, HS+VNS và HS+SA 136
Bảng 4.15.Bảng tham số thực nghiệm cho thuật giải PSO-TS 138
Bảng 4.16.Bảng kết quả thực nghiệm cho thuật giải PSO-TS 139
Bảng 4.17.Bảng tham số thực nghiệm cho thuật giải PSO-SA 141
Bảng 4.18.Bảng kết quả thực nghiệm cho thuật giải PSO-SA 142
Bảng 4.19.Bảng tham số thực nghiệm cho thuật giải PSO-VNS 145
Bảng 4.20.Bảng kết quả thực nghiệm cho thuật giải PSO-VNS 145
Bảng 4.23 So sánh kết quả tốt nhất giữa PSO, PSO+TS, PSO+VNS và PSO+SA 148
Bảng 4.24 So sánh kết quả trung bình tốt nhất giữa PSO, PSO+TS, PSO+VNS và PSO+SA 149
Bảng 4.21.Bảng tham số thực nghiệm cho thuật giải Bees-TS 151
Bảng 4.22.Bảng kết quả thực nghiệm cho thuật giải Bees-TS 151
Bảng 4.23.Bảng tham số thực nghiệm cho thuật giải Bees-SA 154
Bảng 4.24.Bảng kết quả thực nghiệm cho thuật giải Bees-SA 155
Bảng 4.25.Bảng tham số thực nghiệm cho thuật giải Bees-VNS 158
Bảng 4.26.Bảng kết quả thực nghiệm cho thuật giải Bees-VNS 158
Bảng 4.15 So sánh kết quả tốt nhất giữa BA, BA+TS, BA+VNS và BA+SA 161
Bảng 4.16 So sánh kết quả trung bình tốt nhất giữa BA, BA+TS, BA+VNS và BA+SA 162
Bảng 4.27.Bảng tham số thực nghiệm cho thuật giải GA-Bees 165
Bảng 4.28.Bảng kết quả thực nghiệm cho thuật giải GA-Bees 165
Bảng 4.35.Bảng tham số thực nghiệm cho thuật giải HS-Bees 170
Bảng 4.36.Bảng kết quả thực nghiệm cho thuật giải HS-Bees 170
Trang 17Bảng 4.31.Bảng tham số thực nghiệm cho thuật giải PSO-Bees 174
Bảng 4.32.Bảng kết quả thực nghiệm cho thuật giải PSO-Bees 175
Bảng 4.15 So sánh kết quả tốt nhất giữa BA, BA+GA, BA+HS và PSO+BA 178
Bảng 4.16 So sánh kết quả trung bình tốt nhất giữa BA, BA+GA, BA+HS và PSO+BA 178
Bảng 5.1 Bảng xếp hạng tính dễ hiện thực của các thuật giải 180
Bảng 5.2 Bảng kết quả tốt nhất thu đƣợc 183
Bảng 5.3 Bảng danh sách các phiên bản đƣợc chọn của các thuật giải 183
Bảng 5.4 Bảng tổng hợp kết quả trung bình của các phiên bản đƣợc chọn 186
Bảng 5.5 Bảng tổng hợp kết quả tốt nhất của các phiên bản đƣợc chọn 187
Bảng 5.6 Bảng số lƣợng phiên bản đƣợc chọn cho giá trị vi phạm trung bình từ 1000 trở lên 191
Trang 18Tóm tắt
Luận án này tập trung giải quyết bài toán xếp thời khóa biểu dựa trên nhóm học phần có mang đặc trưng riêng của các trường đại học Việt Nam, một bài toán có nhiều ứng dụng trong thực tế
Điểm khác biệt giữa bài toán xếp thời khóa biểu môn học tại các trường đại học của Việt Nam với các bài toán xếp thời khóa biểu đại học trên thế giới là sự đa dạng hơn về mặt ràng buộc, ví dụ: một phân công khi được sắp thời khóa biểu có thể được chia ra nhiều cụm (block element), một một cụm phải được gán vào một buổi và các cụm của một phân công (activity) cần phải gán vào các ngày khác nhau; một buổi dạy/học của giảng viên và lớp học cần phải được hạn chế số lượng tiết lủng; lịch giảng dạy của giảng viên cần được cực tiểu hóa số lượng buổi dạy khi có yêu cầu Thách thức của bài toán xếp thời khóa biểu môn học là bài toán bùng nổ tổ hợp, không gian tìm kiếm lớn, trong khi đó thời gian yêu cầu để thuật giải chạy cho ra lời giải phải trong khoảng thời gian chấp nhận được
Luận án này tập trung vào các phương pháp theo hướng tiếp cận metaheuristic bởi
vì hướng tiếp cận này được sử dụng rất thông dụng để giải quyết các bài toán xếp thời
khóa biểu, một trong những lớp bài toán dạng NP-khó Tuy nhiên việc áp dụng các
thuật toán theo hướng tiếp cận này là không đơn giản bởi vì việc áp dụng một thuật giải metaheuristic vào một bài toán đặc thù cần sự tinh tế trong việc biểu diễn lời giải, khởi tạo lời giải ban đầu, thực hiện việc tìm kiếm lời giải trong không gian lời giải Hơn nữa, với sự đa dạng của các thuật toán đã công bố, việc đánh giá để lựa chọn thuật toán tối ưu cho bài toán xếp thời khóa biểu với đặc thù Việt Nam là rất cần thiết
Do đó luận án này tập trung làm rõ các vấn đề sau:
- Đánh giá, so sánh, và đề xuất một số cải tiến các thuật giải hiện có cho bài toán xếp thời khóa biểu môn học của Việt Nam Đóng góp của luận án bao gồm:
o (i) đề xuất một mô hình Toán học (integer formulation for the course timetabling problem)[CT12] để có thể đánh giá các thuật toán một cách
Trang 19hiệu quả Mô hình này là cần thiết bởi vì các thuật toán hiện có được đánh giá ở nhiều ngữ cảnh, ràng buộc khác nhau dẫn đến sự không nhất quán trong so sánh hiệu quả của các thuật toán
o (ii) phân tích, đánh giá các thuật toán như TabuSearch [CT2][CT3], thuật giải tôi luyện thép (SA)[CT4], thuật giải Variable Neighborhood Search [CT5], thuật giải Memetic [CT7], thuật giải Particle Swarm Optimization [CT6] và thuật giải bầy ong (Bees Algorithm) [CT8] dựa trên mô hình đã đề xuất cho tập dữ liệu thực tế thu thập tại trường ĐH Khoa Học Tự Nhiên Tp HCM Đây là tập dữ liệu có độ phức tạp cao với 10 ràng buộc cứng, 10 ràng buộc mềm sát với thực tế triển khai
o (iii) đề xuất một số cải tiến dựa trên các phân tích trên Cụ thể, với thuật toán Tabu Search, SA, VNS để tối ưu bộ nhớ, khi khám phá không gian lân cận, luận án đề xuất chỉ lưu trữ các phép chuyển thay cho lưu trữ các lời giải lân cận Kỹ thuật này được tiếp tục áp dụng cho các thuật giải SA, VNS, Memetic Với thuật toán PSO, luận án đề xuất khái niệm
vị trí, vận tốc trong việc ứng dụng thuật toán Với các đề xuất mới này, việc cài đặt các thuật toán được đơn giản hơn, và tốc độ xử lí được cải tiến rất đáng kể
- Nghiên cứu cách kết hợp các thuật toán hiện có sao cho đạt hiệu quả tối ưu hơn Cụ thể luận án đã đề xuất các phương pháp kết hợp giữa các thuật giải GA-Bees[CT9], Harmony-Bees[CT10], GA-SA[CT11], Bees-VNS, Bee-PSO
Ý tưởng chính của việc kết hợp các thuật toán là nhằm tăng tính đa dạng và
mở rộng không gian tìm kiếm hết khả năng có thể Kết quả thực nghiệm cho thấy sự vượt trội của các phương pháp kết hợp này so với các phương pháp áp dụng đơn thuần một thuật giải
Trang 20Bên cạnh đó, với đặc thù của các trường ĐH ở Việt Nam, các giảng viên cũng thường đặt ra những yêu cầu nhất định về mặt thời gian đối người xếp lịch, cộng với việc lịch học phải cố gắng được sắp xếp làm sao để tiện cho sinh viên, tránh việc lãng phí thời gian khi bắt sinh viên phải ngồi chờ quá lâu giữa các môn trong cùng một buổi, một ngày Việc sắp xếp lịch làm sao để có thể tận dụng được tối ưu nguồn tài nguyên mà vẫn đảm bảo được các yêu cầu rất cơ bản này là một công việc thật sự khó khăn và vất vả cho người xếp lịch
Chính vì lí do đó, bài toán xếp thời khoá biểu cho giáo dục từ lâu đã nhận được sự quan tâm của các nhà nghiên cứu nhằm đề xuất ra các thuật giải giúp hỗ trợ giải quyết bài toán một cách tự động bằng máy tính Khởi đầu từ bài báo của tác giả Gotlieb vào năm 1963[18], cho đến nay, đã có rất nhiều hướng tiếp cận được đưa ra cho lớp bài toán này Trên thực tế, do sự đa dạng về nhu cầu và qui định của các trường, đã xuất hiện rất nhiều biến thể khác nhau của bài toán xếp thời khóa biểu Dựa theo bài khảo sát của tác giả A Schaerf[5] và bài báo cáo kĩ thuật của cuộc thi Xếp thời khóa biểu quốc tế 2007[10] (International Timetabling Competition 2007 – gọi tắt là ITC07), có thể phân các bài toán xếp thời khóa biểu cho giáo dục thành ba nhóm chính:
Bài toán xếp thời khóa biểu cho trường phổ thông (high school timetabling)
Bài toán xếp thời khóa biểu cho trường đại học (course timetabling)
Trang 21 Bài toán xếp lịch thi (examination timetabling)
Các bài toán xếp thời khóa biểu cho giáo dục nói chung đều thuộc lớp bài toán
NP- khó[109] Các kỹ thuật đầu tiên được đề xuất để giải quyết bài toán là các kĩ
thuật dựa trên mô phỏng suy nghĩ của con người để giải quyết vấn đề Những kỹ
thuật đó gọi là heuristic trực tiếp (direct heuristic)[51] Một ví dụ của dạng này là kỹ
thuật ưu tiên xếp trước những bài giảng khó xếp nhất Thời khóa biểu sẽ dần dần được hình thành sau mỗi bước xếp Tiếp đó là sự phát triển của các thuật giải dựa trên việc mô hình hoá bài toán xếp thời khoá biểu thành các bài toán cơ bản trong lý thuyết, chẳng hạn như bài toán tô màu đồ thị[29], bài toán mạng phân luồng, Tuy nhiên, trong khoảng 20 năm trở lại đây, một nhóm các hướng tiếp cận khác đã được
đề xuất và thể hiện được khả năng giải quyết vấn đề khá vượt trội so với các hướng
còn lại, đó là nhóm các hướng tiếp cận metaheuristics Metaheuristics tỏ ra khá hiệu
quả trong việc tìm ra lời giải cho các bài toán tối ưu, giúp giải quyết khá tốt nhiều bài toán khó với kích thước miền tìm kiếm rất lớn như bài toán xếp thời khóa biểu, trong
đó tiêu biểu có thể kể đến thuật giải Tabu Search[92], thuật giải Tôi luyện thép (Simulated Annealing)[93], thuật giải di truyền (Genetic Algorithm)[58], thuật giải bầy kiến (Ant Colony Optimization)[72]
1.2 Mục tiêu và đóng góp của luận án
Luận án này tập trung vào các phương pháp theo hướng tiếp cận metaheuristic bởi
vì hướng tiếp cận này được sử dụng rất thông dụng để giải quyết các bài toán xếp thời khóa biểu, một trong những lớp bài toán dạng NP-khó Tuy nhiên việc áp dụng các thuật toán theo hướng tiếp cận này là không đơn giản bởi vì việc áp dụng một thuật giải metaheuristic vào một bài toán đặc thù với các ràng buộc cứng và ràng buộc mềm cần phải thỏa mãn trong điều kiện làm việc tại Việt Nam, cần sự tinh tế trong việc biểu diễn lời giải, khởi tạo lời giải ban đầu, thực hiện việc tìm kiếm lời giải trong không gian lời giải Hơn nữa, với sự đa dạng của các thuật toán đã công bố, việc đánh giá để lựa chọn thuật toán tối ưu cho bài toán xếp thời khóa biểu với đặc thù Việt Nam là rất cần thiết Do đó luận án này tập trung làm rõ các vấn đề sau:
Trang 22- Đánh giá, so sánh, và đề xuất một số cải tiến các thuật giải hiện có cho bài toán xếp thời khóa biểu môn học của Việt Nam Đóng góp của luận án bao gồm:
(i) đề xuất một mô hình Toán học (integer formulation for the course timetabling problem)[CT12] để có thể đánh giá các thuật toán một cách hiệu quả và thống nhất trong cùng một bộ dữ liệu và tiêu chí đánh giá Mô hình này là cần thiết bởi vì các thuật toán hiện có được đánh giá ở nhiều ngữ cảnh, ràng buộc khác nhau dẫn đến sự không nhất quán trong so sánh hiệu quả của các thuật toán
(ii) phân tích, đánh giá 23 thuật toán bao gồm 3 thuật toán đơn lời giải như TabuSearch [CT3][CT4], tôi luyện thép (SA) [CT5], và Variable Neighborhood Search [CT6]; và 5 thuật toán quần thể như di truyền (GA), Memetic [CT8], Harmony Search, Particle Swarm Optimization [CT7] và bầy ong (Bees Algorithm) [CT9]; và 15 thuật toán kết hợp các thuật toán trên Các thuật toán này được đánh giá dựa trên mô hình đã đề xuất cho 14 tập dữ liệu thực tế thu thập tại trường ĐH Khoa Học Tự Nhiên Tp HCM Đây là tập dữ liệu có độ phức tạp cao với 10 ràng buộc cứng, 10 ràng buộc mềm sát với thực tế triển khai
(iii) đề xuất một số cải tiến dựa trên các phân tích trên Cụ thể, với thuật toán Tabu Search để tối ưu bộ nhớ, khi khám phá không gian lân cận, luận án đã vận dụng cách lưu trữ các phép chuyển thay cho lưu trữ các lời giải lân cận và áp dụng cho các thuật giải SA, VNS, Memetic Với thuật toán PSO, luận án đề xuất khái niệm vị trí, vận tốc trong việc ứng dụng thuật toán Với các đề xuất mới này, việc cài đặt các thuật toán được đơn giản hơn, và tốc độ xử lí được cải tiến rất đáng kể
- Nghiên cứu cách kết hợp các thuật toán hiện có sao cho đạt hiệu quả tối ưu hơn Cụ thể luận án đã đề xuất các phương pháp kết hợp giữa các thuật giải GA-Bees [CT10], Harmony-Bees [CT11], GA-SA [CT12], Bees-VNS, Bee-PSO Ý tưởng chính của việc kết hợp các thuật toán là nhằm tăng tính đa dạng và mở rộng không gian tìm kiếm hết khả năng có thể Kết quả thực nghiệm cho thấy sự vượt trội của các phương pháp kết hợp này so với các phương pháp áp dụng đơn thuần một thuật giải
1.3 Nội dung luận án
Nội dung của luận án bao gồm:
Trang 23 Chương 1 trình bày tổng quan về bài toán, mục tiêu và đóng góp của luận án
Chương 2 trình bày về mô hình bài toán xếp thời khóa biểu trường đại học
được phát biểu dưới dạng toán học, và các hướng tiếp cận giải quyết bài toán Chương này trình bày chi tiết về các hướng tiếp cận metaheuristics dựa trên tìm kiếm cục bộ dựa trên quần thể Một phần của chương này đã được công bố trong công trình số [CT12]
Chương 3 trình bày các phương pháp tiếp cận đơn lời giải và quần thể trong
việc giải bài toán thời khóa biểu Một phần của chương này đã được công bố trong công trình số[CT1], [CT2], [CT3], [CT4], [CT5],[CT6], [CT7], [CT8]
Chương 4 trình bày các phương pháp tiếp cận kết hợp (hybrid heuristic) trong
việc giải bài toán thời khóa biểu Một phần của chương này đã được công bố trong công trình số[CT9], [CT10], [CT11]
Chương 5 trình bày kết quả thực nghiệm, đánh giá và so sánh kết quả giữa các
thuật giải
Chương 6 trình bày kết luận và hướng phát triển
Trang 24Chương 2
Mô hình hóa bài toán thời khóa biểu môn học và các phương pháp tiếp cận
2.1 Giới thiệu bài toán
Bài toán xếp thời khóa biểu cho trường đại học thuộc lớp các bài toán xếp thời khóa biểu cho giáo dục, đây là lớp các bài toán rất thực tế, xuất hiện ở tất cả các trường phổ thông và đại học Mục tiêu của bài toán là tìm cách xếp lịch học, lịch dạy cho các sinh viên (học sinh) và giảng viên (giáo viên) vào các tiết học, các phòng học sao cho thỏa một số ràng buộc nhất định Yêu cầu chính của lớp bài toán này là xếp các tài nguyên (giảng viên/giáo viên, sinh viên/học sinh, phòng học, thiết bị ) vào các tiết học thích hợp sao cho thời khóa biểu thu được phải thỏa một số ràng buộc nhất định (chẳng hạn: một giảng viên không dạy 2 bài giảng khác nhau tại cùng 1 thời điểm, 1 sinh viên không học 2 bài giảng khác nhau tại cùng 1 thời điểm, ) Trên thực
tế, do sự đa dạng về nhu cầu và qui định của các trường, đã xuất hiện rất nhiều biến thể khác nhau của bài toán xếp thời khóa biểu Dựa theo bài khảo sát của tác giả A Schaerf [5] và bài báo cáo kĩ thuật của cuộc thi Xếp thời khóa biểu quốc tế 2007 (International Timetabling Competition 2007 – gọi tắt là ITC07) [10], có thể phân các bài toán xếp thời khóa biểu cho giáo dục thành ba nhóm chính:
- Bài toán xếp thời khóa biểu cho trường phổ thông (high school timetabling): xếp lịch học hàng tuần cho các lớp và lịch dạy hàng tuần cho các giáo viên sao cho không có giáo viên nào phải dạy 2 lớp tại cùng 1 thời điểm, và không có lớp nào học 2 giáo viên tại cùng 1 thời điểm
- Bài toán xếp thời khóa biểu cho trường đại học (course timetabling), gồm có 2 lớp bài toán con:
o Bài toán xếp thời khóa biểu cho trường đại học dựa trên nhóm học phần (curriculum-based course timetabling): sinh viên đăng kí học sau khi thời khóa biểu đã được sắp, sự tránh đụng độ giữa các môn học
Trang 25được quy định bởi nhóm học phần (nhóm các môn học không được sắp trùng giờ nhau), các nhóm học phần này được trường quy định sẵn và không phụ thuộc vào kết quả đăng kí học của sinh viên
o Bài toán xếp thời khóa biểu cho trường đại học dựa trên lịch đăng kí của sinh viên (post enrolment –based course timetabling): các sinh viên đăng kí môn mà mình muốn học, sau đó, trường sẽ dựa trên kết quả đăng kí này để xếp thời khóa biểu sao cho các sinh viên đều có thể học được tất cả các môn mà mình đăng kí mà không bị đụng độ giờ học
- Bài toán xếp lịch thi (examination timetabling): tương tự như bài toán xếp thời khóa biểu cho truờng đại học, nhưng bài toán này có 1 số điểm khác biệt, chẳng hạn như: xếp lịch thi sao cho thời gian kéo dài của lịch thi là ít nhất (trong khi độ dài của 1 thời khóa biểu được xếp cho bài toán xếp thời khóa biểu cho trường đại học là cố định, thường là 1 tuần), 2 môn thi có thể dùng chung 1 phòng học tại cùng 1 thời điểm, hoặc 1 môn thi có thể tách ra thi ở 2 phòng khác nhau tại cùng 1 thời điểm (bài toán xếp thời khóa biểu cho trường đại học thường không cho phép điều này)
Với yêu cầu phức tạp của bài toán xếp thời khóa biểu cho đại học, việc thực hiện xếp thời khóa biểu bằng tay đòi hỏi tốn rất nhiều công sức và thời gian mà kết quả
tìm được đôi khi lại không phù hợp với thực tế Do thuộc lớp bài toán NP-khó[109]
nên việc giải quyết bài toán bằng phương pháp vét cạn là hầu như không thể Chính
vì độ phức tạp của bài toán và nhu cầu cao xuất phát từ thực tế nên bài toán xếp thời khóa biểu đã nhận được mối quan tâm đáng kể của các nhà khoa học
Luận án này tập trung giải quyết bài toán xếp thời khóa biểu môn học tại các trường đại học Việt Nam nói chung và đại học Khoa học Tự nhiên nói riêng Việc giải quyết này đòi hỏi phải mô hình bài toán với các ràng buộc đặc thù Điều này dẫn đến số lượng số lượng ràng buộc của bài toán Việt Nam đa dạng hơn các bài toán tương tự trên thế giới và có thể làm cho các thuật toán đã có phải cần được đánh giá lại một cách toàn diện và đưa ra các cải tiến mới cho phù hợp với bài toán hiện tại Lý
Trang 26do là các ràng buộc mới này có thể làm cho các giả thiết (assumption) được dùng trong các thuật toán đã có không còn phù hợp và tương thích
Phần kế tiếp của luận án trình bày mô hình hóa toán học của bài toán
2.2 Mô hình hóa bài toán
Mô hình bài toán xếp thời khóa biểu môn học được đề cập trong luận án bao gồm các phần chính như sau:
- Các ký hiệu
- Các biến
- Các ràng buộc cứng: Đây là các ràng buộc bắt buộc phải được thỏa trong lời giải Luận án trình bày 10 ràng buộc cứng với các ràng buộc cứng 7, 8 là những ràng buộc đặc thù của đại học Việt Nam
- Các ràng buộc mềm: Đây là các ràng buộc dạng khuyến cáo cần phải được thỏa càng nhiều càng tốt trong lời giải cuối cùng.Trong đó các ràng buộc 2, 3, 4, 5, 9
là những ràng buộc mà các đối tượng liên quan trong thời khóa biểu Việt Nam rất quan tâm
- Hàm mục tiêu: Hàm này được dùng để đánh giá chất lượng của một lời giải Trong đó, các ràng buộc cứng được đánh trọng số cao hơn hẳn so với các ràng buộc mềm
2.2.1 Các kí hiệu
Bài toán bao gồm các yếu tố cho sẵn sau:
Tập * + tập các tiết học trong một tuần Trong đó
là số tiết tối đa trong 1 tuần, thông thường
Tập : tập các ngày học trong một tuần
Tập : tập các tiết học của ngày thứ trong tuần
Tập : tập các buổi học (ví dụ: buổi sáng, buổi chiều) trong một tuần
Tập * +: tập các tiết học thuộc về buổi , với
Tập : tập các giảng viên tham gia giảng dạy
Trang 27 Tập : tập các lớp học
: số lƣợng sinh viên của lớp học
Ma trận cho biết giờ rảnh của giảng viên:
: cho biết sức chứa của phòng học , với
Ma trận cho biết giờ rảnh của phòng học:
: giảng viên tham gia giảng dạy phân công
Tập : tập các lớp học tham gia học phân công
Tập : tập các BlockElement, một BlockElement là một nhóm các tiết học liên tiếp nhau của cùng một phân công mà cần phải đƣợc phân vào cùng một buổi
Tập *( ) + cho biết lịch gán sẵn của các phân công, một bộ ba ( ) khi và chỉ khi tiết bắt đầu của BlockElement đƣợc gán sẵn vào tiết và phòng
Trang 28 Tập : tập các BlockElement thuộc về phân công , với
Tập : tổng số tiết học của BlockElement , với
Tập : tập các BlockElement do giảng viên giảng dạy, với
Tập : tập các BlockElement mà lớp học có tham gia học, với
Tập : tập các nhóm học phần (curriculum) – mỗi nhóm học phần là một tập các phân công mà không được xếp trùng giờ nhau do yêu cầu của khoa quy định Thường nhóm học phần này được đưa ra nhằm giải quyết việc tránh trùng giờ của các học phần chuyên ngành
Tập : các phân công thuộc thuộc nhóm học phần lớp học
2.2.2 Các biến của mô hình
Tất cả các biến quyết định và các biến bổ trợ đều là các biến nhị phân - chỉ nhận một trong hai giá trị là 0 hoặc 1
Biến quyết định (decision variable): với , trong đó:
nếu tiết bắt đầu của BlockElement được gán vào tiết và phòng ,
Trang 292.2.3 Mô hình hóa các ràng buộc cứng
1 Ràng buộc về tính liên tục của BlockElement và tính duy nhất của phòng học của BlockElement
Tất cả các tiết học của cùng một BlockElement phải diễn ra liền kề nhau và tại cùng một phòng
* + ( )
2 Ràng buộc đụng độ giảng viên
Một giảng viên không thể dạy nhiều hơn một BlockElement tại cùng một thời điểm
∑ ∑
5 Ràng buộc thời gian rảnh của giảng viên, lớp học, phòng học
Các giảng viên, lớp học và phòng học không đƣợc xếp vào thời gian mà họ không rảnh
Trang 306 Ràng buộc về tính đầy đủ và duy nhất của một phân công
Tất cả các BlockElement của tất cả các phân công phải đƣợc gán vào một và chỉ một tiết bắt đầu và một và chỉ một phòng học nào đó
∑
7 Ràng buộc về buổi của BlockElement
Với mỗi BlockElement, tất cả các tiết đƣợc gán đều phải thuộc cùng một buổi , - ( )
8 Ràng buộc về ngày của phân công
Các BlockElement khác nhau của cùng một phân công phải đƣợc gán vào các ngày khác nhau
∑ ∑
9 Ràng buộc về phân công gán sẵn
Lịch gán sẵn (nếu có) của các phân công phải đƣợc đảm bảo
( )
10 Ràng buộc sức chứa của phòng học
Các lớp học phải đƣợc phân công vào những phòng học có sức chứa phù hợp với
sỉ số lớp học
∑( )
2.2.4 Mô hình hóa các ràng buộc mềm
Khác với các ràng buộc cứng, đối với các ràng buộc mềm, yếu tố đƣa vào mô hình bài toán không phải là công thức biểu diễn ràng buộc, mà thay vào đó là công thức biểu diễn số lƣợng vi phạm của ràng buộc nhằm đƣa vào hàm mục tiêu
1 Ràng buộc di chuyển của giảng viên giữa các nhóm phòng học
Cần hạn chế việc một giảng viên phải di chuyển giữa các nhóm phòng học khác nhau trong cùng một ngày Số vi phạm của ràng buộc này đƣợc biểu diễn nhƣ sau:
Trang 31∑ ∑ ∑ ∑ ∑ ∑ ( )
2 Ràng buộc giờ lủng của giảng viên theo buổi
Hạn chế trường hợp một giảng viên phải dạy nhiều BlockElement trong cùng một buổi mà lại phải nghỉ giữa các BlockElement này Số vi phạm của ràng buộc này (kí hiệu: ) là số bộ ( ) trong lời giải hiện tại, với , , ( ) ( ) mà:
( ) ( )
3 Ràng buộc giờ lủng của giảng viên theo ngày
Hạn chế trường hợp một giảng viên phải dạy nhiều BlockElement trong cùng một ngày mà lại phải nghỉ giữa các BlockElement này Số vi phạm của ràng buộc này (kí hiệu: ) là số bộ ( ) trong lời giải hiện tại, với , , ( ) ( ) mà:
( ) ( )
4 Ràng buộc tổng số tiết dạy tối đa của giảng viên
Hạn chế trường hợp một giảng viên phải dạy nhiều hơn 9 tiết một ngày Số vi phạm của ràng buộc này được tính bằng công thức sau:
∑ ( ∑ ∑ ∑
)
5 Ràng buộc thời gian dạy mong muốn của giảng viên
Hạn chế trường hợp các giảng viên phải dạy vào tiết mà họ không mong muốn Tổng số vi phạm của ràng buộc này được tính như sau:
∑ ∑ ∑ ∑( ( ))
6 Ràng buộc di chuyển địa điểm học của lớp học trong cùng 1 ngày
Cần hạn chế việc một lớp học phải di chuyển giữa các nhóm phòng học khác nhau trong cùng một ngày Số vi phạm của ràng buộc này được biểu diễn như sau:
∑ ∑ ∑ ∑ ∑ ∑ ( )
Trang 32
7 Ràng buộc di chuyển địa điểm học của nhóm học phần - lớp học trong cùng 1 ngày
Cần hạn chế việc các phân công thuộc cùng một nhóm học phần-lớp học nhưng lại được phân vào các nhóm phòng học khác nhau trong cùng một ngày Số vi phạm của ràng buộc này được biểu diễn như sau:
∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ( )
8 Ràng buộc độ nén lịch dạy của giảng viên theo buổi
Mục tiêu của ràng buộc này là cực tiểu hóa số lượng buổi mà mỗi giảng viên phải dạy, giá trị cần cực tiểu hóa được biểu diễn bằng công thức sau:
∑ ∑
Trong đó, { ∑ ∑ ∑
9 Ràng buộc độ nén lịch học của lớp học theo buổi
Mục tiêu của ràng buộc này là cực tiểu hóa số lượng buổi mà mỗi lớp học cần học, giá trị cần cực tiểu hóa được biểu diễn bằng công thức sau:
∑ ∑
Trong đó, { ∑ ∑ ∑
10 Ràng buộc giờ lủng của lớp học theo buổi
Hạn chế trường hợp một lớp học phải học nhiều BlockElement trong cùng một buổi mà lại phải nghỉ giữa các BlockElement này Số vi phạm của ràng buộc này (kí hiệu: ) là số bộ ( ) trong lời giải hiện tại, với , , ( ) ( ) mà:
( ) ( )
Trang 332.2.5 Hàm mục tiêu
Mục tiêu của bài toán là tìm cách gán các BlockElement vào các phòng, các tiết (xác định giá trị của các biến ) sao cho lời giải thu đƣợc thỏa tất cả các ràng buộc cứng và cho giá trị cực tiểu của hàm mục tiêu ( ) sau đây:
( ) ∑
Trong đó:
là lời giải của bài toán
n: tổng số ràng buộc mềm của bài toán (n=10)
: trọng số của ràng buộc mềm thứ i
: là số lƣợng vi phạm tại ràng buộc thứ i của lời giải
Hai lời giải và , khi đó lời giải đƣợc gọi là tốt hơn lời giải nếu ( ) ( )
2.2.6 Các trọng số
Các ràng buộc đƣợc đánh trọng số theo nguyên tắc ràng buộc cứng đƣợc đánh trọng số cao hơn hẵn ràng buộc mềm Ràng buộc mềm quan trọng hơn đƣợc đánh trọng số cao hơn
STT Tên Ràng Buộc Trọng Số Ghi Chú
01
Ràng buộc về tính liên tục của
BlockElement và tính duy nhất của phòng
07 Ràng buộc về buổi của BlockElement 1000 RBC thứ 7
08 Ràng buộc về ngày của phân công 1000 RBC thứ 8
09 Ràng buộc về phân công gán sẵn 1000 RBC thứ 9
10 Ràng buộc sức chứa của phòng học 1000 RBC thứ 10
Trang 34STT Tên Ràng Buộc Trọng Số Ghi Chú
11 Ràng buộc di chuyển của giảng viên giữa
20 Ràng buộc giờ lủng của lớp học theo buổi 7 RBM thứ 10
Trong lời giải kết quả cuối cùng của một thuật toán nếu giá trị hàm mục tiêu của lời giải nhỏ hơn 1000 thì lời giải đó chắc chắn thỏa tất cả các ràng buộc cứng và có thể áp dụng trong thực tế
Các ràng buộc cứng và ràng buộc mềm đƣợc đánh trọng số thống nhất trong tất cả các phiên bản cài đặt của các thuật toán khác nhau Các phân tích, đánh giá đều đƣợc qui chiếu về mô hình bài toán đã phát biểu một cách nhất quán
2.2.7 Đặc thù của bài toán xếp thời khóa biểu tại các đại học
Việt Nam so với các bài toán thời khóa biểu các nước khác
2.2.7.1 Thách thức
Bài toán bùng nổ tổ hợp
Không gian lời giải rất lớn
Các ràng buộc phức tạp, khó có thể thỏa hết
Trang 35 Thời gian yêu cầu để thuật giải chạy cho ra lời giải phải trong khoảng thời gian chấp nhận được
2.3.1 Nhóm các heuristics trực tiếp
Một trong những nhóm các thuật giải heuristic đầu tiên được đề xuất để giải quyết bài toán là nhóm các heuristics trực tiếp [51] Các heuristics này thường tập trung vào việc khai thác các đặc trưng của một bài toán xếp thời khóa biểu cụ thể nào đó và thuật giải sẽ được thiết kế để giải quyết tốt nhất có thể bài toán cụ thể này Các thuật giải này thường có hạn chế là chỉ giải quyết một bài toán cụ thể nào đó, và có thể sẽ rất khó để áp dụng cho bài khác xếp thời biểu khác dù thuộc cùng một nhóm
2.3.2 Nhóm các kĩ thuật dựa trên bài toán tô màu đồ thị
Bài toán tô màu đồ thị là bài toán kinh điển trong lý thuyết đồ thị, nội dung bài toán như sau: cho một đồ thị gồm N đỉnh, hãy tìm cách tô màu tất cả các đỉnh trong
đồ thị sao cho không có hai đỉnh nào kề nhau được tô cùng một màu và tổng số màu
sử dụng là nhỏ nhất
Xét bài toán xếp thời khóa biểu ở dạng đơn giản, gồm N học phần (course/event)
và một tập các khe thời gian (timeslot), bài toán yêu cầu tìm cách gán các học phần vào các khe thời gian sao cho cực tiểu hóa tổng số khe thời gian cần dùng Bài toán này có thể được mô hình hóa thành bài toán Tô màu đồ thị trên, trong đó, mỗi đỉnh của đồ thị sẽ tương ứng với một học phần, hai đỉnh được nối với nhau bằng một cạnh
Trang 36khi hai học phần tương ứng không được phép gán vào cùng một khe thời gian (do có cùng giáo viên, cùng lớp học, ) Mỗi màu của đồ thị chính là một khe thời gian
Do mối tương đồng giữa bài toán tô màu đồ thị và bài toán xếp thời khóa biểu mà trong khoảng trước năm 1990, có khá nhiều thuật giải để giải bài toán tô màu đồ thị
đã được áp dụng vào bài toán xếp thời khóa biểu và được trình bày khá rõ trong bài khảo sát của tác giả D de Werra[29] Ý tưởng chung của các thuật giải thuộc nhóm này là: các học phần sẽ được sắp xếp theo một thứ tự nào đó, sau đó, các học phần này sẽ lần lượt được gán vào các khe thời gian phù hợp Việc sắp xếp thứ tự gán của các học phần thường dựa trên ―độ khó‖ của các học phần, học phần nào khó xếp hơn thì sẽ được gán trước, độ khó này thường được xác định dựa trên một trong năm tiêu chí sau [41][102]:
Tiêu chí Bậc bão hoà (saturation degree): độ khó của một học phần tỉ lệ nghịch với số khe thời gian mà học phần có thể được xếp vào
Tiêu chí Bậc lớn nhất (largest degree): độ khó của một học phần tỉ lệ thuận với
số lượng học phần đụng độ với học phần này (là các học phần mà học phần này không được xếp trùng giờ)
Tiêu chí Bậc lớn nhất có trọng số (weighted largest degree): giống với tiêu chí Bậc lớn nhất, nhưng có xét thêm số lượng sinh viên cùng tham gia các học phần bị đụng độ
Tiêu chí sắp xếp ngẫu nhiên: các học phần được sắp xếp một cách ngẫu nhiên, không dựa trên độ khó nào cả
Tiêu chí Bậc của màu (color degree): độ khó của một học phần tại một thời điểm tỉ lệ thuận với số lượng học phần đã được xếp tính thời điểm đó mà đụng
độ với học phần này Như vậy, với tiêu chí này, độ khó của một học phần sẽ thay đổi trong suốt quá trình xây dựng lời giải
Các khe thời gian phù hợp sẽ được chọn để gán lần lượt vào các học phần đã sắp xếp theo thứ tự Một trong những cách đơn giản nhất để chọn khe thời gian cho một
Trang 37học phần là chọn khe thời gian nào làm tăng giá trị hàm mục tiêu của lời giải hiện tại lên ít nhất
Các thuật giải thuộc nhóm này có ưu điểm là có thể tìm được lời giải có độ tốt chấp nhận được với chi phí tính toán thấp, do đó, các thuật giải này hiện nay thường được sử dụng để tạo ra các lời giải ban đầu cho các thuật giải (thuật toán) khác, hoặc tiếp tục được cải tiến, kết hợp với các kĩ thuật khác như: kĩ thuật backtracking [83], kĩ thuật look-ahead [38], Các cải tiến và kết hợp của các thuật giải dựa trên đồ thị được áp dụng cho bài toán xếp thời khóa biểu từ năm 1996 trở đi được khảo sát và trình bày chi tiết trong bài báo của nhóm tác giả R Qu[102] vào năm 2006
2.3.3 Nhóm các kĩ thuật Quy hoạch ràng buộc
Bài toán xếp thời khóa biểu cũng có thể được mô hình hóa dưới dạng Bài toán thỏa mãn ràng buộc (Constraint Satisfaction Problem - CSP) với các biến có miền xác định rời rạc và hữu hạn Nhờ đó, có thể áp dụng các hướng tiếp cận quy hoạch ràng buộc (Constraint Programming) để giải quyết bài toán xếp thời khóa biểu Ưu điểm của các hướng tiếp cận này là khả năng tận dụng lại các solver đã có cho bài toán CSP khi đã có mô hình biểu diễn bài toán phù hợp Các hướng tiếp cận tiêu biểu của nhóm này đã được trình bày khá rõ trong các bài khảo sát của nhóm tác giả R Qu[102] và nhóm tác giả E Bruke [16] Một trong những hướng tiếp cận tiêu biểu của nhóm này là hướng tiếp cận dựa trên kĩ thuật Quy hoạch logic có ràng buộc (Constraint Logic Programming - CLP) được công bố bởi nhóm tác giả H.J Goltz[59] vào năm 1996 Trong công trình nghiên cứu của mình, nhóm tác giả H.J Goltz đã sử dụng ngôn ngữ CHIP [33] – một trong những ngôn ngữ đầu tiên được đề xuất cho CLP để giải quyết bài toán xếp thời khóa biểu thực tế cho trường đại học Humboldt – Đức, chương trình mà nhóm tác giả cài đặt cho phép người dùng có thể tương tác và sửa đổi lời giải, cũng như chỉnh sửa một số ràng buộc ở mức cho phép trong suốt quá trình tìm kiếm Một hướng tiếp cận tiêu biểu khác của nhóm này là hướng tiếp cận dựa trên kĩ thuật Quy hoạch số nguyên (Integer Programming), trong
đó có thể kể đến công trình của nhóm tác giả K.Schimmelpfeng [105], trong bài báo của mình, nhóm tác giả K.Schimmelpfeng đã đề xuất mô hình biểu diễn bài toán xếp
Trang 38thời khóa biểu thực tế của trường đại học Hanover – Đức bằng mô hình quy hoạch số nguyên và sử dụng kết hợp giữa một solver miễn phí để giải các bài toán quy hoạch nguyên hỗn hợp (Mixed Integer Programming –bài toán quy hoạch số nguyên trong
đó chỉ có tập xác định của một số biến là tập số nguyên) và solver nổi tiếng CPLEX
2.3.4 Nhóm các hướng tiếp cận metaheuristics dựa trên tìm
lặp trước làm lời giải hiện tại, thuật giải sẽ duyệt trong miền không gian láng giềng
của lời giải hiện tại để chọn ra lời giải thay thế cho lời giải hiện tại ở bước lặp kế sau
Mỗi lời giải trong không gian láng giềng của lời giải hiện tại được gọi là một láng
giềng của lời giải hiện tại Sự tác động lên lời giải hiện tại để biến nó thành một lời
giải láng giềng của nó gọi là một bước chuyển(move) Trong các local search, hai vấn
đề quan trọng nhất cần quan tâm là tính tăng cường (intensification) và tính đa dạng (diversification) của quá trình tìm kiếm, tính tăng cường là khả năng tập trung tìm kiếm sâu ở những vùng không gian mà ta dự đoán là sẽ chứa lời giải tối ưu, tính đa dạng là khả năng tìm đến những vùng không gian lời giải mới nhằm thoát ra khỏi các vùng chứa điểm tối ưu cục bộ Các local search khác nhau sẽ đưa ra các chiến lược khác nhau để đảm bảo sự tồn tại và cân bằng giữa hai yếu tố này
Các thuật giải thuộc nhóm này mà đã được áp dụng cho bài toán xếp thời khóa biểu gồm có: thuật giải Tabu Search, thuật giải tôi luyện thép (Simulated Annealing)
Trang 39và các phiên bản deterministics, thuật giải Đại hồng thuỷ (Great Deluge), thuật giải Variable Neighborhood Search, thuật giải Iterated Local Search, thuật giải Walk Down Jump Up, thuật giải Monkey Search
2.3.4.1 Thuật giải Tabu Search
Thuật giải Tabu Search (gọi tắt là TS) được Fred Glover đề nghị vào năm 1989[47], từ đó đến nay, thuật giải đã được bổ sung thêm rất nhiều biến thể, với rất nhiều chiến lược hiệu quả khác được bổ sung vào nhằm nâng cao khả năng tìm kiếm của thuật giải, các bổ sung này đã được khảo sát và trình bày khá chi tiết trong tài liệu [48]
Ý tưởng chính của thuật giải TS như sau: bắt nguồn từ một lời giải ban đầu, thuật giải TS sẽ thực hiện lặp đi lặp lại việc tìm kiếm trong miền không gian tìm kiếm của bài toán nhằm mục đích tìm ra lời giải tối ưu Tại mỗi bước lặp, để tránh việc duyệt trở lại những lời giải đã từng được duyệt, thuật giải TS sử dụng một danh sách để lưu trữ một số bước chuyển đã từng được sử dụng, gọi là danh sách Tabu Danh sách này
sẽ chứa những bước chuyển đã được thực hiện trong một số bước lặp gần đây, các bước chuyển nằm trong danh sách Tabu được gọi là các bước chuyển Tabu Các bước chuyển này sẽ bị cấm sử dụng lại trong chừng nào nó còn nằm trong danh sách Tabu Một bước chuyển Tabu sẽ tồn tại trong danh sách Tabu trong một khoảng thời gian n bước lặp, sau đó, bước chuyển này sẽ được loại ra khỏi danh sách Tabu và trở về trạng thái bình thường (không bị cấm nữa), số n này được gọi là giá trị Tabu tenure của bước chuyển, giá trị n này có thể cố định cho tất cả các bước chuyển hoặc là một
số được chọn ngẫu nhiên cho từng bước chuyển Tuy nhiên, đôi khi một số bước chuyển dù bị cấm (bước chuyển Tabu) nhưng nó lại có khả năng cải tiến chất lượng của lời giải tốt nhất hiện nay, do đó, để tránh bỏ sót các bước chuyển tốt này, Tabu Search đưa ra một khái niệm nữa, đó là khái niệm tiêu chuẩn mong đợi (aspiration criteria), cách áp dụng của tiêu chuẩn này như sau: nếu một bước chuyển Tabu bất kì thỏa được tiêu chuẩn mong đợi thì nó sẽ được loại ra khỏi danh sách Tabu ngay lập tức, cho dù giá trị Tabu tenure đi kèm có là bao nhiêu đi chăng nữa Tiêu chuẩn mong đợi thường được dùng nhất là: nếu bước chuyển Tabu nào có thể làm cho lời giải hiện
Trang 40tại trở nên tốt hơn cả lời giải tốt nhất hiện nay thì bước chuyển Tabu đó sẽ được loại
ra khỏi danh sách Tabu ngay lập tức
Phần tiếp theo sẽ trình bày về những thiết kế thông dụng khi áp dụng thuật giải TS vào bài toán xếp thời khóa biểu:
Về mặt khởi tạo lời giải ban đầu, cách thông dụng nhất là sử dụng các kĩ thuật thuộc nhóm các heuristic trực tiếp và các heuristic cho bài toán tô màu đồ thị đã được trình bày ở phần 2.3.1 và 2.3.2[28][61][21][57][8], ngoài ra còn có phương pháp kết hợp giữa thuật giải tham lam và phương pháp ngẫu nhiên, người sử dụng có thể điều chỉnh sự tương quan giữa mức độ ngẫu nhiên và ―mức độ tham lam‖ trong thuật giải
để tạo nên một lời giải khởi tạo có chất lượng khá tốt Phương pháp này có tên là GRASP (Greedy Randomized Adaptive Search Procedure) [84]
Về phương pháp chọn tập láng giềng, có nhiều cách khác nhau để chọn tập láng giềng trong quá trình xét duyệt, tùy thuộc vào tính chất và mục tiêu của bài toán, chẳng hạn như: tùy thuộc vào kích thước của miền láng giềng, vào chiến lược chọn phép chuyển của thuật giải Trong hướng tiếp cận của mình, tác giả D Costa [28] xét toàn bộ các phần tử thỏa tất cả ràng buộc cứng trong tập láng giềng và chọn phần tử tốt nhất Tuy nhiên, cách chọn trên đôi khi không hiệu quả khi kích thước miền láng giềng quá lớn Chẳng hạn như trong bài báo của O.R Doria và các đồng sự ở trường đại học Napier, Scotland [92], tác giả thực hiện thử nghiệm Tabu Search trên các bộ
dữ liệu thật của cuộc thi Xếp lịch Quốc tế ITC2007 với hai loại phép chuyển khác nhau (được đề cập ở phần sau) Nhóm tác giả chọn cả hai tập láng giềng thu được từ hai loại phép chuyển: phép chuyển đơn và phép hoán chuyển cùng một lúc, do đó, không gian láng giềng khá lớn Khi đó, tại mỗi bước lặp, không phải tất cả các phần
tử láng giềng đều được chọn, mà mỗi phần tử sẽ được chọn với xác suất cố định là 0.1, từ đó lấy ra phần tử tốt nhất trong số các phần tử được chọn để thực hiện cho bước lặp kế sau Hoặc thay vì duyệt miền láng giềng và chọn ngay phép chuyển tốt nhất H Arntzen [61] đề ra một cách làm khác như sau: nếu phép chuyển tốt nhất trong miền láng giềng có thể cải thiện được chất lượng lời giải tốt nhất hiện tại thì phép chuyển này sẽ được chọn, nếu không, phép chuyển này sẽ được chọn với xác