Bài toán lập lịch bài toán nên lịch để tìm hểu suy nghĩ chuyên sâu Bài toán lập lịch Bài toán lập lịch Bài toán lập lịch
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
—————————————–
VŨ THANH HƯƠNG
BÀI TOÁN LẬP LỊCH
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HOÀNG NAM DŨNG
Hà Nội - 2022
Trang 3LỜI CAM ĐOANTôi 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ả, phântích và đánh giá nêu trong luận văn là hoàn toàn trung thực.
Tác giả luận văn
Vũ Thanh Hương
Trang 4LỜI CẢM ƠN
Em xin gửi cảm ơn chân thành nhất tới các thầy cô giáo ở Khoa Toán - Cơ - Tinhọc, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội đã cho em nhữngkiến thức quý báu và tạo điều kiện tốt nhất cho em trong quá trình học tập cũng nhưhoàn thành luận văn Em xin chân thành cảm ơn gia đình, người thân và bạn bè đãđộng viên, giúp đỡ em trong quá trình học tập và thực hiện luận văn này
Trong quá trình thực hiện luận văn, mặc dù em đã rất nỗ lực và cố gắng nhưngchắc chắn khó tránh được những sai sót, rất mong được sự thông cảm và chỉ bảo củacác thầy, cô và các bạn để luận văn này được hoàn thiện hơn Cuối cùng em xin kínhchúc các thầy, cô sức khỏe, thành công và hạnh phúc
Trang 5THUẬT NGỮ, KÍ HIỆU VÀ TỪ VIẾT TẮT
Kí hiệu Ý nghĩa
ĐH KHTN Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà NộiFIFO Cấu trúc vào trước - ra trước (First in, first out)
ITC Cuộc thi Xếp Thời khóa biểu Quốc tế
(International Timetabling Competition)
TKB Thời khóa biểu
TS Thuật giải Tìm kiếm Tabu (Tabu Search)
Trang 6Danh sách hình vẽ
3.1 Các bước của phương pháp giải bài toán thời khóa biểu của Khoa Toán
-Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà
Nội 29
3.2 Ví dụ về vị trí xếp lịch của một lớp học phần 31
3.3 Ví dụ về việc xếp lịch học cho một lớp học phần 35
3.4 Các bước chuyển đơn chuyển lớp e2 từ phòng số 3 sang phòng số 1 và bước chuyển hoán vị hoán đổi vị trí hai lớp e1 và e3 39
3.5 Ví dụ một phần thời khóa biểu trước khi thưc hiện bước chuyển 45
3.6 Lớp học phần e3 được bỏ khỏi thời khóa biểu và thêm vào danh sách các lớp học phần chưa được xếp lịch trong trường hợp xảy ra vi phạm ràng buộc cứng khi đổi vị trí với lớp e1 45
3.7 Hoán đổi vị trí hai lớp học phần e1 và e3 trong trường hợp bước chuyển không tạo ra bất kì vi phạm ràng buộc cứng nào 45
3.8 Thời khóa biểu thu được nếu bước chuyển chuyển hoán vị hai lớp học phần e1 và e3 là hợp lệ 48
3.9 Một phần thời khóa biểu trong quá trình tính điểm phạt 51
4.1 Ví dụ dữ liệu về thông tin các lớp học phần 55
4.2 Ví dụ dữ liệu về thông tin giảng viên 55
4.3 Ví dụ dữ liệu về thông tin phòng học 56
4.4 Ví dụ dữ liệu về thông tin phòng học 56
4.5 Điểm phạt cải thiện theo từng vòng lặp cho thời khóa biểu của bộ dữ liệu Data1_4_11 63
4.6 Điểm phạt cải thiện theo từng vòng lặp cho thời khóa biểu của bộ dữ liệu Data2_4_8 63
Trang 74.7 Điểm phạt cải thiện theo từng vòng lặp cho thời khóa biểu của bộ dữ liệuData1_4_11 654.8 Điểm phạt cải thiện theo từng vòng lặp cho thời khóa biểu của bộ dữ liệuData2_4_8 654.9 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_3_9 664.10 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_3_10 664.11 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_4_8 664.12 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_4_9 664.13 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_4_10 674.14 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData1_4_11 674.15 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_3_9 674.16 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_3_10 674.17 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_4_8 674.18 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_4_9 674.19 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_4_10 684.20 Điểm phạt theo thời gian cải thiện cho thời khóa biểu của bộ dữ liệuData2_4_11 684.21 So sánh mức độ cải thiện điểm phạt giữa các thời khóa biểu xây dựngtrên bộ dữ liệu của học kì I 694.22 So sánh mức độ cải thiện điểm phạt giữa các thời khóa biểu xây dựngtrên bộ dữ liệu của học kì II 70
Trang 8Danh sách bảng
4.1 Bảng số liệu chi tiết của các bộ dữ liệu ban đầu 55
4.2 Bảng thống kê chi tiết các bộ dữ liệu 57
4.3 Bảng các giá trị tham số cho giai đoạn thứ nhất 57
4.4 Bảng các giá trị tham số cho giai đoạn thứ hai 58
4.5 Bảng kết quả bước 1.1 cho dữ liệu của học kì I 58
4.6 Bảng kết quả bước 1.1 cho bộ dữ liệu của học kì II 59
4.7 Kết quả bước 1.2 60
4.8 Thời gian xây dựng thời khóa biểu đầy đủ cho từng bộ dữ liệu 61
4.9 Thống kê số vi phạm các ràng buộc cứng và ràng buộc mềm của thời khóa biểu đầy đủ thu được sau giai đoạn 1 61
4.10 So sánh hai phương án chọn tập hợp bước chuyển để xét duyệt 62
4.11 Thời gian xây dựng thời khóa biểu đầy đủ cho từng bộ dữ liệu 64
4.12 Kết quả cải thiện thời khóa biểu với độ dài danh sách Tabu bằng 20 sau 400 vòng lặp 64
4.13 Thống kê số vi phạm các ràng buộc cứng và ràng buộc mềm của thời khóa biểu tốt nhất sau thời gian cải thiện tối đa 68 4.14 So sánh khả năng cải thiện của thời khóa biểu xây dựng trên các bộ dữ liệu 70
Trang 9Mục lục
1.1 Bài toán xếp thời khóa biểu cho trường học 3
1.2 Bài toán xếp thời khóa biểu cho khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên 5
1.2.1 Các thành tố trong một thời khóa biểu 6
1.2.2 Các ràng buộc của bài toán 6
1.2.3 Mô hình hóa bài toán 8
2 Các phương pháp giải bài toán xếp thời khóa biểu 13 2.1 Các phương pháp heuristics 13
2.2 Các phương pháp dựa trên tô màu đồ thị 14
2.3 Các phương pháp quy hoạch ràng buộc 15
2.4 Các phương pháp metaheuristic 15
2.4.1 Các thuật giải metaheuristics dựa trên tìm kiếm cục bộ 19
2.4.2 Các thuật giải metaheuristics dựa trên quần thể 24
2.5 Các phương pháp hyperheuristics 26
2.6 Các phương pháp cho bài toán tối ưu đa mục tiêu 27
Trang 103 Phương pháp giải bài toán thời khóa biểu 28
3.1 Sơ đồ phương pháp và biểu diễn nghiệm 28
3.1.1 Sơ đồ phương pháp 28
3.1.2 Biểu diễn nghiệm 30
3.2 Xây dựng thời khóa biểu đầy đủ 31
3.2.1 Xây dựng nghiệm khởi tạo 31
3.2.2 Thuật giải Tìm kiếm Tabu trong quá trình xây dựng thời khóa biểu đầy đủ 36
3.3 Cải thiện chất lượng thời khóa biểu 47
4 Kết quả tính toán 54 4.1 Dữ liệu tính toán 54
4.2 Giá trị các tham số sử dụng 57
4.3 Kết quả giai đoạn 1 58
4.4 Kết quả giai đoạn 2 62
Trang 11Mở đầu
Bài toán lập lịch là một bài toán thuộc lớp bài toán NP-khó Mục tiêu của bài toánnày là cấp phát tài nguyên và nguồn lực để hoàn thành một tập hợp các công việctrong một khoảng thời gian cụ thể với các ràng buộc cho trước Trong thực tế, kết quảcủa bài toán lập lịch thường được đánh giá theo nhiều yếu tố như hiệu quả của việc
sử dụng tài nguyên, nguồn lực, các yêu cầu thực tế cần được đáp ứng, Các yêu cầuthực tế dành cho kết quả của bài toán lập lịch có thể rất khác nhau Do đó, việc xâydựng một phương pháp phù hợp cho từng bài toán cụ thể phụ thuộc vào mô hình củabài toán, tài nguyên và nguồn lực có thể sử dụng
Ứng dụng của bài toán lập lịch hiện diện trong nhiều lĩnh vực như giao thông vậntải, y tế hay giáo dục Trong giao thông vận tải, bài toán lập lịch dùng trong việc sắpxếp lịch trình tàu xe, chuyến bay, ; trong lĩnh vực y tế, là sắp xếp lịch khám, lịchphẫu thuật cho bệnh nhân và bác sĩ, Các ứng dụng tiêu biểu nhất của bài toán này
có lẽ xuất hiện trong lĩnh vực giáo dục, khi ta cần sắp xếp thời khóa biểu cho trườnghọc Trong khuôn khổ của luận văn này, bài toán xếp thời khóa biểu cho trường họccũng là lớp bài toán chính được đề cập đến, cụ thể là dạng bài toán xếp thời khóa biểucho trường đại học
Mục tiêu của luận văn là nghiên cứu một số phương pháp tiếp cận cho bài toánxếp thời khóa biểu nói chung và xếp thời khóa biểu cho trường đại học nói riêng, đồngthời xây dựng một phương án cụ thể để giải quyết bài toán thời khóa biểu thực tế củaKhoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia HàNội
Nội dung luận văn gồm 4 chương, trong đó:
Chương 1 giới thiệu bài toán xếp thời khóa biểu cho trường học và bài toán thực
tế của Khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc
Trang 13Chương 1
Giới thiệu bài toán
1.1 Bài toán xếp thời khóa biểu cho trường học
Bài toán thời khóa biểu cho trường học là một lớp quan trọng của bài toán lập lịch.Các đối tượng liên quan trực tiếp hoặc gián tiếp đến kết quả của bài toán xếp thờikhóa biểu bao gồm chương trình đào tạo, giáo viên, các lớp học phần, số tiết quy địnhcho mỗi lớp học phần, phòng học, các tiết học trong một ngày, Yêu cầu chính củabài toán này là tìm ra một cách sắp xếp các môn học, lớp học phần hay bài giảng, phụtrách bởi các giáo viên hoặc giảng viên theo đúng chuyên môn, cho các học sinh hoặcsinh viên trong một tuần, một tháng hoặc một học kì, tùy theo chương trình đào tạoriêng của mỗi trường
Theo Andrea Schaerf [37], bài toán xếp thời khóa biểu cho trường phổ thông có thểđược mô hình hóa dưới dạng một bài toán tìm kiếm hoặc một bài toán tối ưu hóa Dưới
mô hình của một bài toán tìm kiếm, mục tiêu của việc lập thời khóa biểu là nghiệmcuối cùng cần đáp ứng tất cả các điều kiện bắt buộc phải tuân thủ, các điều kiện nàycòn được gọi là các ràng buộc cứng của bài toán Mặt khác, khi được xây dựng dướidạng một bài toán tối ưu hóa, mục tiêu của việc lập thời khóa biểu là nghiệm cuốicùng ngoài việc phải đáp ứng tất cả các ràng buộc cứng, còn cần đáp ứng nhiều nhất
có thể các điều kiện không bắt buộc, còn được gọi là các ràng buộc mềm của bài toán.Cấu trúc của các bài toán xếp thời khóa biểu cho trường học thường giống nhau,tuy nhiên, giữa chúng cũng có những điểm khác biệt quan trọng Trong khảo sát về lậpthời khóa biểu tự động của tác giả Andrea Schaerf [37] và báo cáo trong cuộc thi Xếpthời khóa biểu quốc tế 2007 (International Timetabling Competition 2007, gọi tắt là
Trang 14CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
ITC 2007) [31], bài toán xếp thời khóa biểu cho trường học được chia thành ba dạngchính, bao gồm bài toán xếp thời khóa biểu cho trường phổ thông, bài toán xếp thời khóabiểu cho trường đại học và bài toán lập lịch thi
Với bài toán thời khóa biểu cho trường phổ thông, những thông tin cần được cungcấp trước bao gồm các khối, lớp học, các môn học sẽ được dạy cho mỗi khối và cácmôn học mà mỗi giáo viên phụ trách Mục tiêu hay ràng buộc cứng cơ bản của bàitoán này là xếp lịch học cho các lớp sao cho không có giáo viên nào phải dạy 2 lớp tạicùng một thời điểm và không có lớp nào học 2 giáo viên khác nhau hay 2 môn khácnhau tại cùng một thời điểm
Bài toán xếp thời khóa biểu cho trường đại học tập trung giải quyết việc sắp xếpcác bài giảng hoặc các tiết học của các lớp học phần cần giảng dạy tại một số phòngtrong một khoảng thời gian có thể là 1 tuần, 1 tháng hoặc 1 học kì, tùy theo quy địnhriêng của mỗi trường Điểm khác biệt chính của bài toán thời khóa biểu của trườngđại học so với bài toán thời khóa biểu của trường phổ thông nằm ở việc các lớp học ởtrường phổ thông không không có chung học sinh, trong khi các lớp học phần ở trườngđại học có thể có chung sinh viên tham dự, do đó cần sắp xếp sao cho các lớp như vậykhông bị trùng tiết với nhau
Bài toán xếp thời khóa biểu cho trường đại học gồm hai lớp bài toán con là bàitoán xếp thời khóa biểu dựa trên chương trình đào tạo (Curriculum-Based CourseTimetabling) và bài toán xếp thời khóa biểu dựa trên lịch đăng kí của sinh viên(Post Enrolment-Based Course Timetabling) Với bài toán xếp thời khóa biểu dựa trênchương trình đào tạo, thời khóa biểu cho các môn học hoặc lớp học phần được sắp xếptrước khi cho sinh viên đăng kí học, sao cho các môn học trong cùng một nhóm họcphần (nhóm các môn học hay học phần dành cho cùng một chuyên ngành hay mộtnhóm đối tượng sinh viên) không được trùng giờ nhau, các nhóm học phần này đượcnhà trường quy định sẵn theo chương trình đào tạo
Trong khi đó, với bài toán xếp thời khóa biểu dựa trên lịch đăng kí của sinh viên,nhà trường sẽ dựa trên kết quả đăng kí môn học của sinh viên để xếp thời khóa biểusao cho hạn chế số cặp lớp học phần chung sinh viên tham dự có tiết hoặc giờ học bịxếp trùng nhau Trong bài toán này, số lượng sinh viên tham dự các lớp lớp học phầnđều được xác định trước, do đó, trong quá trình sắp xếp, ta cũng cần chú ý các lớpcần được xếp vào các phòng có đủ chỗ cho tất cả sinh viên tham dự
Trang 15CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
Khác với bài toán xếp thời khóa biểu môn học, bài toán xếp lịch thi có mục tiêu
cơ bản là sắp xếp lịch thi cho một số môn học trong một khoảng thời gian nhất định.Bài toán này có nhiều điểm tương tự như bài toán xếp thời khóa biểu cho truờng đạihọc, nhưng cũng có một số điểm khác biệt như xếp lịch thi sao cho thời gian kéo dàicủa lịch thi là ít nhất (trong khi độ dài của một thời khóa biểu được áp dụng cho bàitoá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 một phòng thi tại cùng một 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 một thời điểm (bài toán xếp thời khóa biểu chotrườ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 trường đại học, việc thựchiệ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ếtquả 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ó[13] nên việc giải quyết bài toán bằng phương pháp vét cạn là dường 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ánxế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 văn này tập trung vào việc nghiên cứu các phương pháp giải bài toán xếp thờikhóa biểu cho trường đại học dựa trên nhóm học phần thông qua bài toán xếp thờikhóa biểu thực tế cho khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên
- Đại học Quốc gia Hà Nội Chi tiết các ràng buộc và một mô hình toán học cho bàitoán này sẽ được trình bày trong mục tiếp theo của chương này Phương án cụ thể
để giải quyết bài toán cùng kết quả thu được sẽ được trình bày trong các chương tiếptheo
1.2 Bài toán xếp thời khóa biểu cho khoa Toán - Cơ - Tin học,
Trường Đại học Khoa học Tự nhiên
Bài toán xếp thời khóa biểu cho khoa Toán - Cơ - Tin học, Trường Đại học Khoahọc Tự nhiên, Đại học Quốc gia Hà Nội là đại diện tiêu biểu cho bài toán xếp thờikhóa biểu môn học tại các trường đại học ở Việt Nam Phần này của luận văn sẽ trìnhbày về các thành tố cơ bản trong một thời khóa biểu, các ràng buộc và một mô hình
cụ thể của bài toán này
Trang 16CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
1.2.1 Các thành tố trong một thời khóa biểu
Các thành tố cơ bản trong một thời khóa biểu bao gồm các lớp học phần để xếplịch, các tiết học (giờ) trong tuần có thể dùng để xếp lịch cho các lớp học phần và cácphòng học có thể sử dụng Các yếu tố khác có thể ảnh hưởng đến việc xếp lịch nhưngày học, buổi học, giảng viên, sinh viên và chương trình đào tạo Một buổi học làmột khoảng thời gian chứa một số tiết học liền nhau Các buổi học được xét trong bàitoán xếp thời khóa biểu nói chung và bài toán xếp thời khóa biểu cho khoa Toán - Cơ
- Tin học, Trường Đại học Khoa học Tự nhiên thường chứa tất cả các tiết học diễn ravào buổi sáng hoặc tất cả các tiết học diễn ra vào buổi chiều của một ngày Một ngàyhọc bao gồm tất cả các buổi học có thể có trong một ngày
Một giảng viên có thể phải dạy nhiều hơn một môn học hoặc lớp học phần trongmột học kì Tuy nhiên, một giảng viên chỉ có thể dạy tối đa một lớp học phần, tại mộtphòng học, trong một tiết học
Một lớp sinh viên bao gồm tất cả sinh viên có cùng chuyên ngành và cùng khóa học.Chương trình đào tạo bao gồm một khung kế hoach các lớp học phần cần thiết để dạycho sinh viên theo từng chuyên ngành Theo chương trình đào tạo, một lớp sinh viên
có thể cần học nhiều hơn một học phần trong một học kì Nói cách khác, một sinhviên có thể cần tham gia nhiều hơn một lớp học phần trong một học kì Tuy nhiên,mỗi sinh viên chỉ có thể tham gia tối đa một lớp học phần, tại một phòng học, trongmột tiết học
Bài toán xếp thời khóa biểu cho khoa Toán - Cơ - Tin học, Trường Đại học Khoahọc Tự nhiên, Đại học Quốc gia Hà Nội được phát biểu như sau có n lớp học phần{e1, e2, , en}, cần được xếp lịch theo chu kì 5 ngày (từ thứ Hai đến thứ Sáu) trongmột học kì, mỗi ngày bao gồm 10 tiết học, chia đều trong hai buổi sáng và chiều, tại
m phòng học {r1, r2, , rm}, thỏa mãn các ràng buộc cứng và hạn chế vi phạm cácràng buộc mềm Chi tiết về các ràng buộc của bài toán sẽ được trình bày trong mụctiếp theo
1.2.2 Các ràng buộc của bài toán
Việc xếp lịch cho các lớp học phần hay các lớp học phần phải đáp ứng 7 ràng buộccứng, cụ thể là các ràng buộc sau đây
Trang 17CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
1 Ràng buộc về việc không xếp trùng giờ dạy của giảng viên
Một giảng viên không thể dạy nhiều hơn một lớp học phần tại cùng một thờiđiểm
2 Ràng buộc về việc không xếp trùng giờ học của một lớp sinh viên
Các lớp học phần cho cùng một lớp chuyên ngành không được sắp xếp trùng tiếtvới nhau
3 Ràng buộc về sự tương thích giữa phòng học và học phần
Mỗi lớp học phần phải được tổ chức ở một phòng có cơ sở vật chất phù hợp (vídụ: lớp Thực hành Tin học Cơ sở cần được tổ chức tại phòng máy)
4 Ràng buộc về việc không sử dụng trùng phòng học
Một phòng học chỉ được tổ chức nhiều nhất một lớp học phần tại cùng một thờiđiểm
5 Ràng buộc về tính liên tục và tính duy nhất của phòng học và tiết học của một lớphọc phần
Tất cả các tiết của cùng một lớp học phần phải diễn ra liền nhau tại cùng mộtphòng Ví dụ, lớp học phần e cần được dạy học trong 3 tiết mỗi tuần Khi đó, 3tiết học của lớp e cần xếp liên tục nhau, như từ tiết 1 đến tiết 3 sáng thứ Hai,không thể xếp 2 tiết đầu là tiết 1, 2 và tiết cuối là tiết thứ 4 trong sáng thứ Hai(3 tiết không liên tục nhau) Mặt khác, cả 3 tiết này của lớp e chỉ được tổ chứctại duy nhất một phòng học
6 Ràng buộc về buổi học cho một lớp học phần
Tất cả các tiết của một lớp học phần đều phải được tổ chức trong cùng một buổisáng hoặc buổi chiều của một ngày nào đó Tiếp tục ví dụ trên, với lớp học phần
e cần được dạy học trong 3 tiết mỗi tuần, 3 tiết học của lớp e không thể xếp từtiết 4 đến tiết 6 của một ngày Lí do là việc đó vi phạm ràng buộc cứng này với 2tiết đầu của lớp e được tổ chức vào tiết 4, 5 thuộc buổi sáng và tiết cuối của lớp
e lại rơi vào tiết thứ 6 thuộc buổi chiều trong ngày
7 Ràng buộc về tính đầy đủ của thời khóa biểu
Trang 18CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
Tất cả các các lớp học phần cần được xếp lịch trong một học kì đều phải có một
vị trí duy nhất trong thời khóa biểu, nói cách khác, mỗi lớp học phần phải được
tổ chức trong một hoặc một số tiết học (thỏa mãn ràng buộc cứng số 6) tại một
và chỉ một phòng học
Bên cạnh các ràng buộc cứng phải được đáp ứng ở trên, bài toán có thêm các ràngbuộc mềm Các ràng buộc mềm được quan tâm trong bài toán này bao gồm 2 ràngbuộc
1 Ràng buộc về thời gian hạn chế xếp lịch học
Một số tiết trong tuần cần bị hạn chế sử dụng khi xếp lịch Theo đặc thù của bàitoán thực tế, khoảng thời gian bị hạn chế sử dụng rơi vào chiều thứ Năm hàngtuần (bao gồm các tiết từ tiết 35 đến tiết 39)
2 Ràng buộc về yêu cầu của giảng viên với giờ dạy
Nếu giảng viên có yêu cầu về thời gian giảng dạy như muốn hoặc không muốndạy vào một thời gian cụ thể nào đó, thì các yêu cầu đó cần được được đáp ứngnhiều nhất có thể
1.2.3 Mô hình hóa bài toán
Một mô hình toán học cho bài toán xếp thời khóa biểu của khoa Toán - Cơ - Tinhọc, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội có thể được đượcbiểu diễn dưới dạng một bài toán tối ưu với các yếu tố và tham số liên quan như dướiđây
1 Tập hợp
P = {0, 1, p − 1}
với p là số tiết tối đa có thể xếp lịch trong 1 tuần Ở đây, ta chọn p = 50 (mộttuần học gồm 50 tiết, phân bố đều trong 10 buổi, từ buổi sáng thứ Hai đến buổichiều thứ Sáu)
2 Tập hợp D các ngày có thể xếp lịch dạy và học trong một tuần
3 Tập hợp Pd chứa các tiết học của ngày d
Trang 19CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
4 Tập hợp B chứa các buổi học trong một tuần (ví dụ như "sáng thứ Hai", "chiềuthứ Ba", )
5 Tập hợp Bb = {pb
1, pb
2, , pb
|Bb|} chứa tất cả các tiết thuộc buổi b ∈ B
6 Tập hợp T các giảng viên tham gia giảng dạy
7 Tập hợp C các lớp chuyên ngành, với Nc là số lượng sinh viên của lớp c ∈ C
8 Tập hợp E các lớp học phần của một học kì, với ne là tổng số tiết học cần có chomỗi lần tổ chức học phần e ∈ E
9 Ma trận CM|E|×|E| cho biết mức độ mâu thuẫn giữa các học phần, trong đó
0, nếu học phần i có thể diễn ra cùng lúc với học phần j
1, nếu 2 học phần i và j chỉ có cùng giảng viên hoặc chỉ có cùng sinhviên tham dự
2, nếu học phần i và học phần j có cùng cả giảng viên lẫn sinh viêntham dự
10 Tập hợp R các phòng học có thể được sử dụng
11 Tập hợp RT các loại phòng có thể được sử dụng (ví dụ "Phòng máy", "Giảngđường", ), Rt là tập hợp các phòng loại t ∈ RT , Et là tập hợp các học phầncần được xếp vào phòng loại t
12 Ma trận RE|R|×|E|cho biết sự tương thích giữa các phòng học và học phần, trongđó
REij =
0, nếu học phần j có thể được tổ chức tại phòng i
1, nếu ngược lại
1, nếu học phần e có tiết bắt đầu là p tại phòng r,
0, nếu ngược lại
Trang 20
CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
1, nếu học phần e được tổ chức tại phòng r vào tiết p,
0, nếu ngược lại
1, nếu lớp giảng viên t dạy môn e vào tiết p tại phòng r
0, nếu ngược lại
0, nếu ngược lại
17 Tập hợp P Tt các tiết dạy mong muốn giảng viên t (thời gian ưu tiên để xếp chocác lớp do giảng viên t phụ trách)
18 Tập hợp AP các tiết cần tránh xếp lịch dạy và học trong tuần
Đặt d1, d2 lần lượt là số tiết trong thời khóa biểu vi phạm các ràng buộc mềm số 1
và ràng buộc mềm số 2 và w1, w2 lần lượt là trọng số cho các ràng buộc mềm số 1 vàràng buộc mềm số 2 Khi đó, số vi phạm ràng buộc mềm về thời gian hạn chế xếp lịchdạy và học d1 được tính bằng
d1 =Xe∈EXp∈APXr∈R
xepr
Số vi phạm ràng buộc mềm về yêu cầu của giảng viên với giờ dạy được tính bằng
d2 =Xt∈TXe∈EXr∈RXp∈P \{P T t }
ytepr
Từ các ràng buộc và thiết lập trên, ta có thể xây dựng một mô hình cho bài toán xếpthời khóa biểu cho Khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên,
Trang 21CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
Đại học Quốc gia Hà Nội như sau
min
2Xi=1
thỏa mãn các ràng buộc cứng
1 Ràng buộc về việc trùng giờ dạy của giảng viên
Xe∈EXr∈R
ytepr≤ 1, ∀t ∈ T, ∀p ∈ P, ∀r ∈ R
2 Ràng buộc về việc trùng giờ học của một lớp chuyên ngành (hay một nhóm sinhviên)
xepr− le(p+h)r ≤ 0, ∀e ∈ E, ∀p ∈ P, ∀h ∈ {1, 2, , ne− 1}, ∀r ∈ R
3 Ràng buộc về sự tương thích giữa phòng học và học phần
X
t ′ ∈RT,t ′ ̸=t
Xp∈PXr∈Rt′
xepr = 0, ∀t ∈ RT, ∀e ∈ Et
4 Ràng buộc về việc sử dụng trùng phòng học
Xe∈E
lepr ≤ 1, ∀p ∈ P, ∀r ∈ R
5 Ràng buộc về tính liên tục và tính duy nhất về phòng học cho các tiết học của mộthọc phần
Xe∈EXr∈R
zcepr≤ 1, ∀c ∈ C, ∀p ∈ P, ∀r ∈ R
6 Ràng buộc về buổi học cho một học phần
xepb
i r(pb|Bb|− pbi − ne+ 1) ≥ 0, ∀e ∈ E, ∀r ∈ R, ∀b ∈ B, ∀i ∈ {1, , |Bb|}
Trang 22CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
7 Ràng buộc về tính đầy đủ của thời khóa biểu
Xp∈PXr∈R
xepr = 1, ∀e ∈ E
Nhóm các bài toán xếp thời khóa biểu là các bài toán NP-khó, do đó, việc giải cácbài toán này bằng phương pháp vét cạn là gần như bất khả thi Chương thứ hai củaluận văn sẽ trình bày một số phương pháp cũng như thuật giải được sử dụng để giảiquyết các bài toán thuộc nhóm bài toán này
Trang 23áp dụng cho bài toán xếp thời khóa biểu bao gồm nhóm các phương pháp heuristicstrực tiếp, nhóm các phương pháp dựa trên tô màu đồ thị, nhóm các phương pháp quyhoạch ràng buộc, nhóm các phương pháp metaheuristics và nhóm các phương pháphyperheuristics.
2.1 Các phương pháp heuristics
Các phương pháp heuristics thường khá tự nhiên, gần gũi với cách suy nghĩ vàhành động của con người Một phương pháp heuristics thường chỉ được thiết kế đểtập trung giải quyết một bài toán cụ thể Việc giải bài toán sử dụng các phương phápheuristics thường đơn giản và nhanh chóng nhận được kết quả tốt, tuy có thể khôngphải là kết quả tốt nhất Do đó, các phương pháp heuristics thường được sử dụng đểxây dựng lời giải ban đầu cho một số phương pháp khác, như các phương pháp theohướng metaheuristics và hyperheuristics
Khi xây dựng một phương pháp heuristics cho một bài toán, người ta thường dựavào một số nguyên lý cơ bản là nguyên lý vét cạn thông minh, nguyên lý tham lam(Greedy) và nguyên lý thứ tự Trong một bài toán tìm kiếm, khi không gian tìm kiếm
Trang 24CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
lớn, nguyên lý vét cạn thông minh có thể được sử dụng để tìm cách giới hạn lại khônggian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán
để nhanh chóng tìm ra mục tiêu Nguyên lý tham lam lấy tiêu chuẩn tối ưu (trên phạm
vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động trong phạm vi cục bộcủa từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lời giải Nguyên lý thứ
tự thể hiện qua việc thực hiện các công việc trong từng bước (hoặc từng giai đoạn)dựa trên một cấu trúc thứ tự phù hợp với không gian khảo sát nhằm nhanh chóng đạtđược lời giải tốt Việc xây dựng các phương pháp heuristics thường đi cùng việc xâydựng các hàm heuristics Đây là các hàm đánh giá thô, giá trị của hàm phụ thuộc vàotrạng thái của bài toán tại mỗi bước giải Dựa trên giá trị này, ta có thể quyết địnhđược hành động hợp lý cho từng bước của phương pháp
2.2 Các phương pháp dựa trên tô màu đồ thị
Nội dung của bài toán tô màu đồ thị là cho một đồ thị gồm n đỉnh, thực hiện tômàu cho tất cả các đỉnh trong đồ thị sao cho màu của bất kì hai đỉnh kề nhau nàocũng phải khác nhau và số màu sử dụng là ít nhất có thể Trong khi đó, dạng đơn giảncủa bài toán xếp thời khóa biểu có thể phát biểu như sau: gán n học phần vào mộttập hợp các tiết học sao cho tổng số tiết học cần dùng là cực tiểu Như vậy, bài toánxếp thời khóa biểu có thể được chuyển hóa thành một bài toán tô màu đồ thị với mỗihọc phần đóng vai trò như một đỉnh của một đồ thị, hai đỉnh của đồ thị kề nhau nếu
và chỉ nếu hai học phần tương ứng không thể diễn ra trong cùng một tiết, mỗi màucủa đồ thị tương ứng với một tiết
Bài toán xếp thời khóa biểu đầu tiên sử dụng phương pháp dựa trên tô màu đồ thịđược thực hiện bởi nhóm tác giả Dominic Welsh và Martin B Powell vào năm 1967[39], ngoài ra, cũng có khá nhiều thuật giải để giải bài toán tô màu đồ thị được áp dụngcho bài toán xếp thời khóa biểu được nhắc đến trong khảo sát của tác giả De Werra[16] Các phương pháp thuộc nhóm này có ưu điểm là có thể tìm được lời giải chấpnhận được với chi phí tính toán thấp Do đó, cũng như các phương pháp heuristics,phương pháp này thường được sử dụng để xây dựng nghiệm ban đầu cho các phươngpháp khác
Trang 25CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
2.3 Các phương pháp 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ỏamãn ràng buộc (Constraint Satisfaction Problem) với các biến có miền xác định rời rạc
và hữu hạn Do đó, các hướng tiếp cận quy hoạch ràng buộc (Constraint Programming)
có thể được áp dụng để giải quyết bài toán xếp thời khóa biểu Ưu điểm của các hướngtiếp cận này là khả năng tận dụng lại kết quả của các bài toán có mô hình biểu diễntương tự Các hướng tiếp cận tiêu biểu cho toán thời khóa biểu cũng sử dụng phươngpháp quy hoạch ràng buộc được trình bày cụ thể trong các bài khảo sát của nhóm tácgiả Edmund Burke [9] và Rong Qu [33]
2.4 Các phương pháp metaheuristic
Trong các thập niên gần đây, nhóm các phương pháp metaheuristics đang được quantâm nghiên cứu rộng rãi [38] Theo định nghĩa trên trang web của dự án MetaheuristicsNetwork (http://www.metaheuristics.org), được thực hiện từ năm 2000 đến 2004,metaheuristics là một cách gọi chung cho các phương pháp có thể được sử dụng đểgiải quyết nhiều loại bài toán tối ưu tổ hợp khó Nói cách khác, một phương phápmetaheuristics có thể được xem như một khung thuật giải chung có thể được áp dụng
để giải quyết các bài toán tối ưu hóa khác nhau với tương đối ít sửa đổi (cần thiết)
để thích ứng với một bài toán cụ thể Theo Rhydian Lewis [27], các phương phápmetaheuristics giải bài toán thời khóa biểu có thể được chia thành 3 loại chính Loạithứ nhất là các phương pháp một bậc (1-stage method), sử dụng một hàm mục tiêuchung cho cả ràng buộc cứng lẫn ràng buộc mềm Loại thứ hai là các phương pháp haibậc (2-stage method), chia việc xếp thời khóa biểu thành 2 giai đoạn Trong đó, giaiđoạn đầu tập trung xây dựng một thời khóa biểu không vi phạm bất kì ràng buộc cứngnào, giai đoạn thứ hai tập trung giảm thiểu các vi phạm ràng buộc mềm Loại thứ ba
là các phương pháp nới lỏng, bước đầu xây dựng một thời khóa biểu có thể vi phạmmột hoặc một số ràng buộc cứng, sau đó, tìm cách loại bỏ các vi phạm cho các ràngbuộc cứng này và giảm thiểu các vi phạm cho ràng buộc mềm ở các bước tiếp theo.Trong ba loại phương pháp nói trên, các phương pháp 1-bậc có cách tiếp cận trựctiếp nhất Với loại phương pháp này, các ràng buộc của bài toán được gán trọng số
Trang 26CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
khác nhau, tùy theo mức độ ưu tiên trong việc hạn chế các vi phạm của mỗi ràngbuộc Theo đó, các ràng buộc cứng sẽ có trọng số cao hơn hẳn các ràng buộc mềm để
có ảnh hưởng lớn hơn đến giá trị của hàm mục tiêu Ví dụ, giả sử trọng số cho mỗi
vi phạm ràng buộc mềm đều bằng nhau và bằng 1, còn trọng số của mỗi ràng buộccứng được cho là 10000 Khi đó, nếu giá trị hàm mục tiêu nhỏ hơn 10000 thì thời khóabiểu đang xét không còn vi phạm ràng buộc cứng (với giả thiết số vi phạm ràng buộcmềm tối đa không thể vượt quá 10000) Như vậy, bằng việc giảm giá trị hàm mục tiêutrong quá trình tính toán, phương pháp 1-bậc có khả năng xây dựng được một thờikhóa biểu không còn vi phạm ràng buộc cứng (thời khóa biểu chấp nhận được) Cácphương pháp 1-bậc có ưu điểm là dễ thực hiện và sửa đổi, tuy nhiên không hiệu quảkhi áp dụng cho các bài toán phức tạp, có nhiều ràng buộc, bộ dữ liệu lớn,
Với bài toán có nhiều ràng buộc, có dữ liệu phức tạp, các phương pháp 2-bậc cóthể cho nghiệm tốt hơn so với các phương pháp 1-bậc Trong các phương pháp này,giai đoạn thứ nhất chỉ tập trung vào việc xây dựng thời khóa biểu không có vi phạmràng buộc cứng, việc tính toán các vi phạm ràng buộc mềm được tạm thời bỏ qua.Như vậy, kết quả của giai đoạn này chính là một thời khóa biểu chấp nhận được Tuynhiên, hiệu quả của các phương pháp này phụ thuộc vào việc có thể hay không xâydựng được một thời khóa biểu chấp nhận được trong thời gian hợp lý
Khác với các phương pháp 2-bậc, trong giai đoạn thứ nhất, các phương pháp nớilỏng cho phép thời khóa biểu đang xây dựng được vi phạm một hoặc một số ràng buộcnào đó (có thể là ràng buộc cứng) Ví dụ, nếu việc xếp một lớp học phần vào thời khóabiểu hiện tại có thể vi phạm một ràng buộc cứng nào đó thì việc xếp chỗ cho lớp họcphần đó sẽ tạm thời bị bỏ qua hoặc tự động thêm vị trí mới (không nằm trong số các
vị trí cho trước của thời khóa biểu) để xếp cho lớp học phần đó Khi đó, các giá trịnhư số lớp học phần hoặc số tiết chưa được xếp lịch, số vị trí mới được thêm vào,
sẽ được lưu lại Trong quá trình sắp xếp sau đó, phương pháp sẽ tìm cách giảm các giátrị này cùng với giá trị của hàm mục tiêu
Các thuật giải metaheuristics được sử dụng nhiều trong các cuộc thi xếp thời khóabiểu bao gồm thuật giải thuật giải Di truyền, Tìm kiếm Tabu, thuật giải Luyện kim,thuật giải Bầy kiến, Trong đó, các thuật giải Tìm kiếm Tabu, thuật giải Luyện kim,thuật giải Bầy kiến thuộc lớp các thuật giải dựa trên tìm kiếm cục bộ và thuật giải Ditruyền là thuật giải dựa trên quần thể
Trang 27CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
Điểm chung của các thuật giải metaheuristics là đều bắt đầu và lặp lại việc tínhtoán hoặc tìm kiếm từ một hoặc một tập hợp các lời giải ban đầu Một trong nhữngcách thông dụng nhất để khởi tạo lời giải ban đầu cho các phương pháp metaheuristics
là phương pháp dựa trên thuật giải tham lam Trong phương pháp của tác giả DanielCosta, các lớp học phần có ít cách gán tiết, gán phòng nhất được ưu tiên xếp lịchtrước, đồng thời tác giả đặt ra các mức tiêu chí (6 mức) cho việc xếp lịch Với mỗi lớphọc phần chưa được xếp lịch các tiết học, phòng học không gây ra bất kì vi phạm nào
sẽ được ưu tiên chọn để gán cho lớp học phần đó, nếu không tồn tại tiết học và phònghọc nào thoả mãn thì yêu cầu đối với của việc chọn vị trí xếp lịch cho lớp học phần đó
sẽ được giảm xuống một bậc, các tiết học không gây ra bất kì vi phạm ràng buộc cứngnào liên quan đến giờ dạy của giáo viên và phòng học còn trống trong các tiết đó sẽđược ưu tiên xem xét và lựa chọn để gán cho lớp này, nếu vẫn không tồn tại tiết học,phòng học nào phù hợp, yêu cầu đối với của việc chọn vị trí xếp lịch sẽ lại được giảm
đi một bậc nữa, (các mức tiêu chí được trình bày chi tiết trong bài báo của tác giả[15]) Sau đó đã có nhiều tác giả khác cũng áp dụng phương pháp tương tự cho bướckhởi tạo lời giải của mình, chẳng hạn như nhóm tác giả Halvard Arntzen [5] và CagdasHakan Aladag [1] Một phương pháp thông dụng khác nữa là phương pháp khởi tạongẫu nhiên lời giải bằng cách gán ngẫu nhiên các lớp học phần vào các tiết học và cácphòng học bất kì Phương pháp này được sử dụng bởi các tác giả Luca Di Gaspero vàAndrea Schaerf [37], Cagdas Hakan Aladag [2] Vào năm 2001, nhóm tác giả MarconeSouza [36] đã ứng dụng một phương pháp mới để khởi tạo lời giải ban đầu, ý tưởngcủa phương pháp này là 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).Một cách làm khác là khởi tạo lời giải bằng phương pháp mạng phân luồng Ý tưởngcủa phương pháp này là ứng với mỗi tiết học, ta có hai tập hợp điểm, tập hợp thứnhất biểu diễn các bài giảng có thể gán cho tiết học đang xét, tập hợp thứ hai biểudiễn các phòng học còn trống vào tiết đang xét, mục tiêu là sử dụng các thuật giải chomạng phân luồng để tạo nên một lời giải đầy đủ (tất cả các bài giảng đều phải đượcgán tiết, gán phòng)
Quá trình tìm kiếm lời giải sẽ dừng lại khi điều kiện dừng được thỏa mãn Các điều
Trang 28CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
kiện dừng này có thể khác nhau với mỗi bài toán và phương pháp giải cụ thể, thậm chí
có thể khác nhau trong các bước hoặc giai đoạn khác nhau của phương pháp Các điềukiện dừng được sử dụng trong các phương pháp giải bài toán xếp thời khóa biểu có ápdụng thuật giải metaheuristics nói chung thường liên quan đến hai yếu tố là điểm phạtcủa thời khóa biểu và thời gian tìm kiếm Cụ thể, điều kiện dừng liên quan đến điểmphạt có thể là quá trình tìm kiếm sẽ dừng lại khi không còn vi phạm ràng buộc cứng(khi thu được thời khóa biểu chấp nhận được) hoặc điểm phạt của thời khóa biểu đãthấp hơn một giá trị cụ thể cho trước, Điều kiện dừng liên quan đến thời gian tìmkiếm có thể là quá trình tìm kiếm sẽ dừng lại khi thời gian tìm kiếm đã vượt qua mộtgiá trị cụ thể cho trước hoặc khi số vòng lặp được thực hiện đã đạt đến giá trị tối đacho phép Ngoài ra, nhiều tác giả còn sử dụng điều kiện dừng là quá trình tìm kiếm
sẽ dừng lại khi điểm phạt của thời khóa biểu không thể thay đổi sau một khoảng thờigian hoặc sau một số vòng lặp tối đa cho trước
Các phương pháp metaheuristics khá hiệu quả trong việc tìm ra lời giải cho các bàitoá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ếmlớn như bài toán xếp thời khoá biểu Điển hình, trong cuộc thi ITC 2002, các phươngpháp metaheuristics đã được rất nhiều đội sử dụng và giành được thứ hạng cao Trong
đó, phương pháp của nhóm tác giả Jean-Fran¸cois Cordeau, Brigitte Jaumard, RodrigoMorales [14] áp dụng thuật giải chính là Tìm kiếm Tabu cho bài toán của cuộc thi
và xếp hạng 2 Nhóm tác giả Halvard Arntzen và Arne Lokketangen [5] khởi tạo lờigiải ban đầu bằng thuật giải tham lam, sau đó sử dụng thuật giải Tìm kiếm Tabu vàthủ tục Ejection Chain để hướng việc tìm kiếm đến một vùng không gian tìm kiếmmới, xếp hạng 5 Nhóm tác giả Alexandre Dubourg, Benoˆıt Laurent, Emmanuel Long,Benoˆıt Salotti [18] sử dụng thuật giải tham lam để tạo ra lời giải ban đầu, sau đó sửdụng thuật giải Tìm kiếm Tabu để cải tiến chất lượng lời giải Kết quả nhóm đượcxếp hạng 6 Nhóm tác giả Rhydian Lewis và Ben Paechter [28] đã đề xuất thêm một
số phương án cải tiến thuật giải Di truyền cho bài toán xếp thời khóa biểu sử dụngtrong cuộc thi này Ngoài ra, vào năm 2007, nhóm tác giả Alfred Mayer [30] đã ápdụng thuật giải Bầy kiến cho bài toán xếp thời khóa biểu ở dạng tín chỉ của cuộc thiInternational Timetabling Competition 2007 (phiên bản tiếp theo của bài toán từ cuộcthi ITC 2002), kết quả của nhóm chiếm được vị trí thứ 4 chung cuộc
Trang 29CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
2.4.1 Các thuật giải metaheuristics dựa trên tìm kiếm cục bộ
Từ một thời khóa biểu ban đầu (thời khóa biểu khởi tạo, có thể được tạo thành từnhiều phương pháp khác nhau), các thuật giải metaheuristics dựa trên tìm kiếm cục
bộ 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ánnhằm mục đích tìm ra lời giải tối ưu Tại mỗi bước lặp, thuật giải sẽ tìm kiếm và chỉlựa ra một lời giải duy nhất để làm cơ sở cho bước lặp tiếp theo Đây chính là điểmkhác biệt cơ bản nhất giữa nhóm thuật giải dựa trên tìm kiếm cục bộ so với nhóm cácthuật giải dựa trên quần thể Ở nhóm các thuật giải dựa trên quần thể, sau mỗi bướclặp, kết quả thu được là cả một tập hợp các lời giải
Tại mỗi bước lặp, bằng một hoặc một số tác động lên lời giải duy nhất đang đượcxét, ta thu được một phương án mới, phương án mới này được gọi là một lân cận củalời giải đang xét và các tác động này được gọi là một bước chuyển (move) Đối với bàitoán xếp thời khóa biểu, các tác động hay bước chuyển có thể thực hiện trên một lờigiải nào đó có thể là thay đổi phòng học của lớp học phần, đổi thời gian của hai lớphọc phần Trong các thuật giải tìm kiếm cục bộ, hai chiến lược cải thiện chất lượnglời giải quan trọng là chiến lược tăng cường hóa và chiến lược đa dạng hóa Chiến lượctăng cường hóa là nếu sau một số bước lặp nhất định mà lời giải hiện tại vẫn khôngđược cải thiện, quá trình tìm kiếm sẽ được khởi động lại với lời giải ban đầu chính làlời giải tốt nhất hiện tại Mặt khác, mục đích của việc đa dạng hóa là hướng đến nhữngmiền không gian tìm kiếm mới Chiến lược đa dạng hóa thúc đẩy quá trình tìm kiếmkhảo sát các vùng chưa được xét duyệt trong không gian trạng thái của bài toán.Tìm kiếm Tabu (Tabu Search) là một thuật giải metaheuristics được đề xuất bởiFred W.Glover năm 1986 [21] Thuật giải này được sử dụng rộng rãi để giải các bàitoán tối ưu tổ hợp Thuật ngữ Tabu có nguồn gốc là từ Taboo trong tiếng Anh, nghĩa
là sự cấm kị Thuật giải Tìm kiếm Tabu gồm nhiều bước lặp, tại mỗi bước lặp, một tậphợp các thời khóa biểu lân cận của lời giải hiện tại sẽ được xét duyệt và chọn ra thờikhóa biểu có chất lượng tốt nhất Khác với các thuật giải tìm kiếm cục bộ khác, thuậtgiải Tìm kiếm Tabu sử dụng một bộ nhớ ngắn hạn (short-term memory) còn được gọi
là danh sách Tabu Danh sách này dùng để lưu các bước chuyển vừa được thực hiệntrong một số bước lặp trước đó, các bước chuyển này sẽ bị cấm sử dụng lại chừng nàochúng còn nằm trong danh sách Tabu
Trang 30CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
Thuật toán 2.1 Thuật giải Tìm kiếm Tabu cơ bản
1: Khởi tạo lời giải ban đầu x0; x := x0; xbest := x0
Ý tưởng chính của thuật giải Tìm kiếm Tabu là xuất phát từ một lời giải ban đầu
x0, thuật giải sẽ lặp lại việc tìm kiếm trong không gian các lời giải X của bài toán(cụ thể là trong tập hợp thời khóa biểu lân cận Nx của lời giải đang xét x) nhằm tìm
ra lời giải tốt hơn Ở mỗi bước lặp, để tránh trường hợp duyệt phải những lời giải đãđược duyệt trước đó, thuật giải sử dụng một danh sách là danh sách Tabu để lưu trữcác bước chuyển đã được thực hiện trong vòng một số bước lặp gần nhất Các bướcchuyển này được gọi là bước chuyển Tabu hoặc có trạng thái Tabu active, sẽ bị cấm sửdụng lại chừng nào chúng còn ở trong danh sách Tabu
Trong quá trình tính toán, có thể xảy ra trường hợp là một số bước chuyển Tabu(bước chuyển bị cấm duyệt) có thể cải thiện chất lượng lời giải tốt nhất hiện có Đểtránh bỏ sót các bước chuyển như vậy, người ta đặt ra khái niệm tiêu chuẩn mongđợi (aspiration criteria) Tiêu chuẩn này được áp dụng như sau: nếu một bước chuyểnTabu thỏa mãn tiêu chuẩn mong đợi thì nó sẽ ngay lập tức được bỏ khỏi danh sáchTabu Tiêu chuẩn mong đợi thường được sử dụng nhất là nếu bước chuyển Tabu có
Trang 31CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
thể cải thiện chất lượng lời giải tốt nhất hiện tại thì nó sẽ được chọn
Thời gian một bước chuyển nằm trong danh sách Tabu có thể phụ thuộc vào độ dàicủa danh sách Khi danh sách đã đầy hay đã đạt đến một độ dài nhất định, các bướcchuyển ở đầu danh sách sẽ được loại bỏ khỏi danh sách Các danh sách Tabu như vậy
có cấu trúc "vào trước ra trước" (Fist In First Out, FIFO) Ngoài ra, một bước chuyểntabu cũng có thể chỉ cần nằm trong danh sách Tabu trong vòng n bước lặp, sau đó,bước chuyển này sẽ được loại bỏ khỏi danh sách Tabu và có thể được duyệt lại Giá trị
n này được gọi là giá trị Tabu tenure của bước chuyển [23] Các giá trị Tabu tenure chotừng bước chuyển có thể giống nhau hoặc khác nhau Giá trị Tabu tenure quá lớn hayquá nhỏ đều có thể khiến cho chất lượng lời giải không được cải thiện Do đó, trongquá trình tính toán cụ thể, ta cần điều chỉnh và chọn ra giá trị Tabu tenure phù hợpcho các bước chuyển
Có nhiều cách khác nhau để chọn tập hợp thời khóa biểu lân cận trong quá trình xétduyệ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àokích thước của miền lân cận, vào chiến lược chọn bước chuyển của thuật giải Tronghướng tiếp cận của mình, tác giả Daniel Costa [15] xét toàn bộ các phần tử thoả mãntất cả ràng buộc cứng trong tập hợp thời khóa biểu lân cận và chọn ra thời khóa biểutốt nhất Tuy nhiên, cách chọn trên đôi khi không hiệu quả khi kích thước tập lân cậnquá lớn Thay vì duyệt toàn bộ tập lân cận và chọn bước chuyển tốt nhất HalvardArntzen [5] đề ra một cách làm khác như sau: nếu bước chuyển tốt nhất trong tập lâncận có thể cải thiện được chất lượng lời giải hiện tại thì bước chuyển này sẽ được chọn,nếu không, bước chuyển này sẽ được chọn với xác suất 0.5, nếu sau phép thử xác suất
mà bước chuyển này không được chọn thì sẽ chọn phép thử tốt thứ hai với xác suất0.5, cứ thế cho đến khi chọn được một bước chuyển để thực hiện cho bước lặp kế tiếp.Nhóm tác giả John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo và RamónAlfonso Gallego Rendón [20] lại đề ra một chiến lược khác chỉ xét một phần của tậphợp thời khóa biểu lân cận do kích thước quá lớn của nó Nếu lời giải khởi tạo khôngthỏa mãn tất cả các ràng buộc cứng, tại mỗi bước lặp, sẽ có một danh sách L gồm cácbài giảng bị vi phạm ràng buộc cứng, xác suất phép chuyển được chọn liên quan đếncác bài giảng thuộc danh sách L này là 80%, 20% còn lại là chọn ngẫu nhiên Khi lờigiải đang xét không còn vi phạm các ràng buộc cứng nữa, danh sách L sẽ bị hủy, thayvào đó, tại mỗi bước lặp, ta chọn ngẫu nhiên 10 bài giảng, sau đó xét các bước chuyển
Trang 32CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
có liên quan đến các bài giảng này
Phần lớn các tác giả áp dụng thuật giải Tìm kiếm Tabu cho bài toán xếp thời khóabiểu cho trường đại học sử dụng các loại bước chuyển tương tự nhau Trong đó, hailoại bước chuyển thông dụng nhất là bước chuyển đơn để chuyển một bài giảng đếnmột tiết học mới, một phòng học mới và bước chuyển hoán vị để hoán đổi tiết học,phòng học của hai bài giảng cho nhau Ví dụ, trong công trình của Costa [15], chỉ cócác bước chuyển đơn tác động lên các bài giảng vi phạm ít nhất một ràng buộc được
sử dụng Về mặt thiết kế danh sách Tabu, Costa xét hai danh sách Tabu T1 và T2,khi một bước chuyển thực hiện di chuyển bài giảng A từ tiết học p1 sang tiết học p2được chọn, bước chuyển này sẽ được đưa vào danh sách Tabu T1 và T2 như sau: T1 lưubài giảng A, T2 lưu cặp bài giảng A và tiết học p1, có nghĩa là bài giảng A sẽ khôngđược di chuyển cho đến khi bước chuyển này bị loại ra khỏi T1, và bài giảng A cũng
sẽ không được gán trở lại cho tiết học p1 cho đến khi bước chuyển này bị loại khỏi T2.Hoặc danh sách Tabu được sử dụng bởi nhóm tác giả O.R Dorial [35] cấm bài giảng
A di chuyển trở về lại tiết học cũ mà nó từng được gán cho đến khi bước chuyển đượcloại khỏi danh sách Tabu Giá trị Tabu tenure được chọn cố định và được tính bằngtổng số bài giảng chia cho một hằng số Tác giả Halvard Arntzen [5] xét danh sáchTabu như sau: đối với bước chuyển đơn lưu lại ngày mà bài giảng đã từng được xếpvào, nghĩa là khi bước chuyển đơn chuyển bài giảng A từ tiết học p1 sang tiết học p2,cặp (bài giảng A, ngày d) sẽ được lưu vào danh sách Tabu (ngày d là ngày mà tiết học
p1 thuộc về) Khi đó, bài giảng A sẽ bị cấm gán trở lại vào bất kì tiết nào của ngày dcho đến khi cặp (A, d) bị loại ra khỏi danh sách Tabu
Ngoài các thiết kế cho các thành phần cơ bản của thuật giải Tìm kiếm Tabu đãnêu trên, khi áp dụng thuật giải vào bài toán xếp thời khóa biểu, để nâng cao hiệuquả tìm kiếm, các tác giả thường đề ra thêm một số chiến lược bổ sung khác Chẳnghạn như các chiến lược đa dạng hóa (để giúp việc tìm kiếm tìm đến được những miềnkhông gian tìm kiếm mới) và tăng cường hóa (tập trung tìm kiếm sâu hơn ở nhữngvùng không gian tìm kiếm có triển vọng chứa lời giải tối ưu) Các chiến lược bổ sungnày không chỉ áp dụng cho các ứng dụng của thuật giải Tìm kiếm Tabu, mà còn được
áp dụng cho các thuật giải khác thuộc cùng nhóm (các thuật giải metaheuristics dựatrên tìm kiếm cục bộ) Ví dụ, tác giả Daniel Costa [15] sử dụng chiến lược đa dạnghóa bằng cách thay đổi trọng số của ba ràng buộc đầu tiên (ba ràng buộc có trọng số
Trang 33CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
cao nhất) trong suốt quá trình tìm kiếm, từ đó giúp việc tìm kiếm không bị tập trungvào một miền không gian cố định Quy tắc thay đổi trọng số như sau: cứ sau k bướclặp liên tiếp mà các lời giải thu được không được cải thiện mặc dù ba ràng buộc đầutiên không hề bị vi phạm thì trọng số của các ràng buộc này sẽ được giảm đi Nhómtác giả Luca Di Gaspero và Andrea Schaerf trong cuộc thi ITC 2002 [17], còn áp dụngthêm thuật giải leo đồi kết hợp với thuật giải Tìm kiếm Tabu, với mục đích tăng cườnghóa chất lượng tìm kiếm
Cùng với thuật giải Tìm kiếm Tabu, thuật giải Luyện kim cũng thuộc nhóm cácthuật giải metaheuristics dựa trên tìm kiếm cục bộ do tác giả Metropolis và các cộng
sự đề xuất vào năm 1953
Thuật toán 2.2 Thuật giải Luyện kim cơ bản
1: Khởi tạo lời giải ban đầu s
2: T := T0
3: while điều kiện dừng chưa thỏa mãn do
4: Chọn ngẫu nhiên s′ trong số các nghiệm lân cận của s
bị mắc kẹt ở một điểm tối ưu cục bộ và không thể thoát ra được T càng lớn thì khả
Trang 34CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
năng vượt ra khỏi vùng tối ưu cục bộ của quá trình tìm kiếm sẽ càng cao, nhưng cóthể khiến việc hội tụ về lời giải tối ưu chậm hơn Do đó, việc chọn giá trị khởi tạo T0ban đầu việc điều khiển giá trị T trong suốt quá trình tìm kiếm là một vấn đề rất quantrọng, ảnh hưởng lớn đến chất lượng của quá trình tìm kiếm
Năm 1998, nhóm nghiên cứu của tác giả Elmohamed đã ứng dụng thuật giải Luyệnkim cho bài toán xếp lịch thi [19] và đã thử nghiệm trên bộ dữ liệu của Trường Đại HọcSyracuse Năm 2002, Philip Kostuch đã sử dụng thuật giải Luyện kim để giải quyếtbài toán của cuộc thi ITC 2002 Phương pháp này đã được kiểm tra với 20 bộ dữ liệuthật và kết quả thu được xếp thứ nhất trong cuộc thi Năm 2007, Thomas Muller cũng
áp thuật giải Luyện kim cho bài toán của cuộc thi ITC 2007 và đạt được giải nhất
2.4.2 Các thuật giải metaheuristics dựa trên quần thể
Thuật giải Di truyền (Genetic Algorithm) là một trong những thuật giải lâu đờinhất của nhóm các thuật giải metaheuristics dựa trên quần thể Ý tưởng của thuậtgiải đã được đề xuất bởi nhiều tác giả khác nhau vào những năm trước 1970, nhưngđến năm 1975, thuật giải mới có một phiên bản hoàn chỉnh đầu tiên mà có thể ápdụng được vào thực tế, phiên bản này được đề xuất bởi Holland [34] Mỗi lời giải trongthuật giải được biểu diễn dưới dạng một cá thể (individual) Ý tưởng chính của thuậtgiải là bắt đầu từ một quần thể (population) ban đầu (một tập hợp các lời giải banđầu), thuật giải sẽ tiến hành tạo ra thế hệ quần thể mới bằng cách chọn một số các
cá thể trong quần thể ban đầu làm các cá thể cha mẹ, sau đó thuật giải tiến hành laitạo (crossover) các cá thể cha mẹ này với nhau để tạo ra các cá thể con (offspring).Các cá thể con và một số cá thể trong quần thể ban đầu sẽ được hợp lại tạo thànhmột quần thể mới - quần thể của thế hệ mới Quần thể mới này lại được xem là quầnthể cha mẹ, và quá trình lai tạo để phát sinh ra một quần thể mới hơn lại tiếp tục chođến khi hết thời gian cho phép, hoặc cho đến khi quần thể đã hội tụ (các lời giải trongquần thể đều có cùng chất lượng) Một khái niệm nữa trong thuật giải Di truyền làkhái niệm độ thích nghi (fitness) của cá thể - độ thích nghi của một cá thể tỉ lệ thuậnvới chất lượng lời giải của lời giải tương ứng với cá thể đó Bên cạnh đó, để tăng tính
đa dạng và tránh việc hội tụ ở cục bộ địa phương, các cá thể con mới được tạo ra sẽđược biến đổi một cách ngẫu nhiên (đột biến - mutation) với một xác suất nhỏ Đã córất nhiều nhóm nghiên cứu trên thế giới áp dụng thuật giải Di truyền cho bài toán xếp
Trang 35CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
thời khóa biểu đại học, các áp dụng này đã được khảo sát và trình bày chi tiết trongbài báo của tác giả Ross [26]
Thuật giải Bầy kiến (Ant Colony System) được nhóm tác giả Dorigo đề xuất lầnđầu tiên vào năm 1991 Thuật giải này được lấy cảm hứng từ hành vi kiếm ăn theo bầyđàn của loài kiến trên thực tế Cho đến nay, đã có rất nhiều phiên bản khác nhau củathuật giải Bầy kiến được đề xuất, chẳng hạn như Max-Min Ant System (MMAS), AntColony System (ACS), thuật giải Bầy kiến và các biến thể của thuật giải đã được
áp dụng khá hiệu quả cho một số bài toán xếp thời khóa biểu vào năm 2002, nhómtác giả Socha đã áp dụng biến thể Max-Min Ant System (MMAS) cho một bài toánxếp thời khóa biểu cho trường đại học ở dạng tín chỉ, kết quả thực nghiệm trên các bộ
dữ liệu của cuộc thi ITC 2002 cho thấy thuật giải MMAS giúp tìm được lời giải tốthơn so với một số thuật giải tìm kiếm khác dựa trên cục bộ với lời giải khởi tạo ngẫunhiên Trong thiết kế của mình, nhóm tác giả Socha chỉ sử dụng MMAS để thực hiệnviệc gán các học phần vào các tiết học phù hợp, còn việc chọn phòng học được tách
ra làm một bước riêng và được thực hiện bởi một thuật giải dựa trên bài toán mạngphân luồng Các tác giả đã mô hình hóa lời giải dưới dạng một đồ thị với số đỉnh bằngvới số lượng lớp học phần, giá trị được gán tại mỗi đỉnh chính là tiết học được chọngán cho học phần tương ứng với đỉnh đó Khi duyệt qua các đỉnh để tìm lời giải tốthơn, thứ tự duyệt của các đỉnh sẽ được sắp xếp dựa trên "độ khó" của học phần, tức
là học phần nào khó xếp hơn sẽ được ưu tiên xếp trước Điểm khác biệt lớn nhất khiứng dụng thiết kế của các thuật giải Bầy kiến vào bài toán xếp thời khóa biểu so vớicác phiên bản gốc (thường được áp dụng cho bài toán người du lịch) là đàn kiến sẽ đểlại pheromone trên các đỉnh của đồ thị (tương ứng với các giá trị có thể gán cho đỉnhđó), thay vì để lại trên các cạnh như ở phiên bản gốc của thuật giải Sau đó, vào năm
2007, nhóm tác giả Mayer đã áp dụng thuật giải Bầy kiến vào bài toán xếp thời khóabiểu ở dạng tín chỉ của cuộc thi ITC 2007 (phiên bản tiếp theo của bài toán thời khóabiểu trong cuộc thi ITC 2002), kết quả thực nghiệm xếp thứ 4 chung cuộc Các thiết
kế trong phiên bản ACS này cũng tương tự với thiết kế của MMAS ở trên, tuy nhiênthay vì tách yếu tố phòng học ra, nhóm tác giả Mayer [32] đã tận dụng luôn phiên bảnACS để giải quyết bài toán gán phòng, bên cạnh đó, một số bước chuyển theo dạngchuỗi cũng được bổ sung vào bước cải thiện lời giải nhằm nâng cao hiệu quả tìm kiếm
Trang 36CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
2.5 Các phương pháp hyperheuristics
Ý tưởng của các phương pháp thuộc nhóm này là sử dụng nhiều thuật giải heuristicshoặc metaheuristics khác nhau trong quá trình tìm kiếm, nhờ đó sẽ tận dụng được ưuđiểm của từng thuật giải, vì mỗi thuật giải có thể chỉ hiệu quả trong một số trường hợp
cụ thể Các thuật giải được sử dụng trong các phương pháp hyperheuristics thườngđược phân biệt theo từng bước Theo đó, việc quyết định xem thuật giải nào (low-levelalgorithm, tạm dịch là thuật giải ở mức dưới) sẽ được sử dụng tại một thời điểm nào
đó trong quá trình tính toán sẽ được điều khiển bởi một thuật giải khác (high-levelalgorithm, tạm dịch là thuật giải ở mức trên) Thuật giải ở mức trên này sẽ phân tíchđặc điểm của vùng không gian tìm kiếm hiện tại và hiệu quả của các thuật giải ở mứcdưới có thể sử dụng, từ đó chọn lựa thuật giải phù hợp cho bước tiếp theo
Các phương pháp hyperheuristics đã được áp dụng cho các bài toán xếp thời khoábiểu cho đại học được nhóm tác giả Edmund Bruke [11], [10] chia làm hai nhóm chínhdựa trên đặc điểm của các heuristics được sử dụng ở mức dưới nhóm các thuật giảixây dựng lời giải (constructive heuristics) và nhóm các thuật giải cải tiến chất lượnglời giải có sẵn (improvement heuristics) Trong nhóm thứ nhất, các thuật giải ở mứcdưới được sử dụng chủ yếu là các thuật giải heuristics dựa trên bài toán tô màu đồ thịđược áp dụng vào bài toán xếp thời khoá biểu đại học đã được trình bày ở mục trước.Trong nhóm thứ hai, các thuật giải ở mức dưới thường là các bước chuyển tiết, chuyểnphòng, phép hoán đổi tiết học hoặc phòng học thường được sử dụng trong các phươngpháp metaheuristics dựa trên tìm kiếm cục bộ cho bài toán xếp thời khoá biểu đại học
Ở cả hai nhóm, các thuật giải ở mức trên thường được sử dụng là các metaheuristicsdựa trên tìm kiếm cục bộ như Tìm kiếm Tabu, thuật giải Luyện kim hoặc các thuậtgiải thuộc nhóm suy diễn theo trường hợp (Case-Based Reasoning) Bên cạnh đó, vẫn
có nhóm tác giả sử dụng thuật giải metaheuristics dựa trên quần thể như thuật giải
Di truyền ở mức trên, khi đó, mỗi nhiễm sắc thể sẽ đại diện cho một thuật giải ở mứcdưới (thường là các thuật giải heuristics thuộc nhóm tô màu đồ thị) và các giá trị tham
số tương ứng với thuật giải ở mức dưới này
Trang 37CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
2.6 Các phương pháp cho bài toán tối ưu đa mục tiêu
Các bài toán xếp thời khoá biểu trong thực tế thường có nhiều ràng buộc và nhiềumục tiêu khác nhau, tuỳ thuộc vào yêu cầu cụ thể của người dùng tại từng thời điểm,
và người dùng thường mong muốn các chương trình xếp thời khoá biểu tự động sẽ đưa
ra nhiều lời giải tốt khác nhau dựa trên tiêu chí của các hàm mục tiêu khác nhau, sau
đó, người dùng sẽ tự lựa chọn cho mình lời giải mà họ cảm thấy phù hợp dựa trênkinh nghiệm cá nhân Do đó, có thể nói các bài toán xếp thời khoá biểu cho trườnghọc trong thực tế rất gần với nhóm các bài toán tối ưu tổ hợp đa mục tiêu Tuy nhiên,các hệ thống xếp thời khoá biểu hiện nay hầu hết đều thiên về hướng kết hợp cáchàm mục tiêu này lại thành một hàm mục tiêu duy nhất và trả ra duy nhất một lờigiải Các phương pháp thuộc nhóm này đã được áp dụng cho bài toán xếp thời khoábiểu chủ yếu sử dụng các thuật giải thuộc nhóm tiến hoá [40], tiêu biểu là thuật giải
di truyền và thuật giải memetic (phiên bản cải tiến của thuật giải Di truyền – với sựkết hợp các thuật giải heuristics cho bước đột biến) nhằm tìm ra các lời giải thuộcbiên Pareto (Pareto frontier, biên được tạo thành bởi tập hợp các lời giải không bị trộitrong bài toán tối ưu đa mục tiêu) Ngoài ra, còn có một hướng tiếp cận khác cho bàitoán xếp thời khoá biểu đa mục tiêu là hướng tiếp cận sử dụng các thuật giải thuộcnhóm hyperheuristics được đề xuất áp dụng lần đầu bởi nhóm tác giả Edmund Burke[12]
Trang 38Chương 3
Xây dựng phương pháp giải bài
toán thời khóa biểu của Khoa Toán
- Cơ - Tin học, Trường Đại học
Khoa học Tự nhiên, Đại học Quốc gia Hà Nội
Bài toán thời khóa biểu của Khoa Toán - Cơ - Tin học, Trường Đại học Khoa học
Tự nhiên, Đại học Quốc gia Hà Nội đã được trình bày trong chương 1 là một trongnhững bài toán đặc trưng cho chương trình đào tạo bậc đại học ở Việt Nam, trong đó,thời gian hay số tiết cần thiết cho các lớp học phần có thể khác nhau và các tiết họccủa một lớp học phần trong một tuần phải được xếp liền nhau Chương 3 của luậnvăn sẽ trình bày một phương án giải bài toán này với thuật giải chính được sử dụng làthuật giải Tìm kiếm Tabu
3.1 Sơ đồ phương pháp và biểu diễn nghiệm
3.1.1 Sơ đồ phương pháp
Phương pháp được sử dụng trong luận văn này thuộc loại phương pháp nới lỏng,gồm 2 giai đoạn chính, có thể được tóm lược trong sơ đồ 3.1
Trang 39CHƯƠNG 3 PHƯƠNG PHÁP GIẢI BÀI TOÁN THỜI KHÓA BIỂU
Còn tiết chưa được xếp lịch?
Còn tiết chưa được xếp?
Sắp xếp lại TKB đã xây dựng để tìm chỗ trống xếp các tiết còn lại sao cho không vi phạm ràng buộc cứng nào khác ràng buộc về tính đầy đủ
Xếp các tiết còn lại vào TKB để có TKB đầy đủ (có thể vi phạm một số
ràng buộc cứng)
Thực hiện cải thiện chất lượng TKB (giảm số vi phạm ràng buộc cứng (nếu
có) và ràng buộc mềm
Hình 3.1: Các bước của phương pháp giải bài toán thời khóa biểu của Khoa Toán - Cơ - Tin học,
Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội.
Trang 40CHƯƠNG 3 PHƯƠNG PHÁP GIẢI BÀI TOÁN THỜI KHÓA BIỂU
Mục tiêu của giai đoạn thứ nhất là xây dựng một thời khóa biểu đầy đủ, hay là tìmcách xếp lịch cho tất cả các lớp học phần, đồng thời hạn chế các vi phạm ràng buộccứng Giai đoạn thứ nhất có thể thực hiện trong tối đa ba bước Ở bước 1.1, ta xâydựng thời khóa biểu ban đầu có thể không đầy đủ (vi phạm ràng buộc cứng về tínhđầy đủ) nhưng không vi phạm bất kì ràng buộc cứng nào khác Nếu thời khóa biểunhận được đã đầy đủ, tức là tất cả các lớp học phần đều được xếp lịch và không có viphạm bất kì ràng buộc cứng nào thì giai đoạn thứ hai sẽ được tiến hành Ngược lại,nếu thời khóa biểu nhận được sau bước 1.1 vẫn chưa đầy đủ, thì thời khóa biểu này
sẽ được sử dụng làm thời khóa biểu đầu vào cho bước 1.2 Trong bước 1.2, ta sẽ thựchiện sắp xếp lại các lớp học phần đã được xếp lịch (sử dụng thuật giải Tìm kiếm Tabu)nhằm tạo ra các vị trí thích hợp để xếp các lớp học phần chưa được xếp lịch sao chokhông vi phạm bất kì ràng buộc cứng nào khác ràng buộc về tính đầy đủ Bước này
sẽ có giới hạn thời gian để tránh trường hợp thuật giải không thể dừng do không thểxếp lịch cho tất cả lớp học phần mà không vi phạm bất kì ràng buộc cứng nào Bước1.3 sẽ chỉ được thực hiện nếu sau cả hai bước trước đó, thời khóa biểu nhận được vẫnchưa đầy đủ Lúc này, ta thực hiện xếp nốt các lớp học phần còn lại chưa được xếplịch vào thời khóa biểu, tạm chấp nhận các vi phạm cho các ràng buộc về sự trùng lặpgiờ dạy của giảng viên, trùng giờ học của các lớp sinh viên và ràng buộc về tính tươngthích của phòng học
Khi bước sang giai đoạn thứ hai, cải thiện chất lượng thời khóa biểu, ta sẽ cố gắnglàm giảm bớt các vi phạm ràng buộc cứng (nếu có) và các vi phạm ràng buộc mềm,
sử dụng thuật giải Tabu Trong đó, các vi phạm ràng buộc cứng (nếu có) sẽ được ưutiên cải thiện hơn so với các vi phạm ràng buộc mềm
3.1.2 Biểu diễn nghiệm
Một thời khóa biểu hay một nghiệm trong mỗi bước và giai đoạn giải bài toán đượcbiểu diễn dưới dạng một ma trận kích thước n × p,
timetable = S = (sij)i=0,(n−1),j=0,(p−1),
với n là số phòng học được phép sử dụng và p là số tiết học trong một tuần học Tổng
số tiết học có thể được sử dụng trong quá trình tính toán thực tế là 50 tiết, phân bố