Bài toán xếp Thời khóa biểu luôn là một bài toán khó, mang tính khoa học đồng thời mang tính thực tiễn rất cao. Trên thế giới, bài toán Thời khóa biểu (Time Table Problem) đã đƣợc rất nhiều các nhà khoa học quan tâm, nghiên cứu. [6] Đã có hơm 1000 bài báo khoa học đƣợc viết về đề tài này, trong đó có khoảng 300 luận án Tiến sĩ và Thạc sĩ đƣợc bảo vệ xung quanh về bài toán Thời khóa biểu. Riêng đối với Việt Nam, đặc biệt trong các trƣờng Đại học, các trƣờng phổ thông, từ lâu việc xếp thời khóa biểu đã trở thành một vấn đề có tính thời sự, một bài toán gây đƣợc sự chú ý, quan tâm của nhiều ngƣời.
Một thực tế hiện nay tại Việt Nam, việc xếp thời khóa biểu phần lớn là đều đƣợc thực hiện thủ công bằng tay. Phƣơng pháp này vừa tốn nhiều chi phí, thời gian, công sức mà hiệu quả lại không cao. Nhu cầu thực tiễn hiện nay là tin học hóa bài toán lập Thời khóa biểu với tính năng sắp thời khóa biểu chính xác, hiệu quả, giảm bớt thời gian, chi phí công sức của con ngƣời. Tính phức tạp của bài toán lập Thời khóa biểu, các quy định, ràng buộc môn học chặt chẽ, các ràng buộc về lịch dạy của giáo viên, lớp học … hết sức phức tạp, đa dạng. Chính vì vậy, bài toán lập thời khóa biểu là một bài toán khó, có rất ít phần mềm lập thời khóa biểu đƣợc viết và sử dụng tại Việt Nam.
Xuất phát từ nhu cầu thực tế, việc xây dựng một chƣơng trình sắp xếp thời khóa biểu là giải pháp cấp bách và cần thiết. Phần mềm giải quyết thỏa mãn tất cả các quy định, yêu cầu ràng buộc của bài toán.
Dựa trên mô hình đào tạo của trƣờng Đại học Công nghệ, đối mỗi kỳ học, phòng đào tạo quy định danh sách các lớp học học, danh sách các môn học tƣơng ứng cho từng lớp học và danh sách giảng viên tƣơng ứng với mỗi môn cho từng lớp... Vì vậy, một Thời khóa biểu chấp nhận đƣợc phải đáp ứng đƣợc tất cả các điều kiện ràng buộc sau:
26
Ràng buộc về ngày học: Một tuần có 5 ngày đi học quy định từ thứ 2 đến thứ 6. Thứ 7 và chủ nhật là ngày nghỉ cho nên chƣơng trình không xếp lịch học vào các ngày thứ 7 và chủ nhật.
Ràng buộc về ngày học, giờ học lựa chọn trước: Trƣờng hợp này chỉ áp dụng cho lập lịch có chọn trƣớc. Trong trƣờng hợp này, giáo vụ khoa có thể cố định một số thuộc tính nhƣ lớp K54CA luôn học môn tiếng Anh vào thứ 2 phòng 302, ...
Ràng buộc về giáo viên: Lịch giảng dạy của mỗi giáo viên không bị chồng chéo lên nhau. Tức là tại một thời điểm, giáo viên chỉ đảm nhiệm giảng dạy một lớp học.
Ràng buộc về ngày nghỉ của giáo viên: Giáo viên có thể đăng ký ngày nghỉ nào đó cố định trong tuần. Do đó, chƣơng trình không xếp lịch dạy cho giáo viên đó vào ngày mà giáo viên đã đăng ký nghỉ.
Ràng buộc về giáo viên nghỉ tiết đầu: Giáo viên có thể đăng ký nghỉ tiết đầu trong buổi dạy tƣơng ứng. Chƣơng trình không xếp lịch cho giáo viên đó dạy vào các tiết đầu mà giáo viên đó đã đăng ký nghỉ.
Ràng buộc về số tiết/buổi: Số tiết học trong một buổi không quá 6 tiết/buổi. Ràng buộc về lớp học: Mỗi phòng học tại một thời điểm chỉ có một lớp học. Ràng buộc về môn học: Tại một thời điểm, một lớp chỉ có thể học một môn
học. Các học phần của cùng môn học không đƣợc dạy trong một ngày. Đối với các môn học lý thuyết phải xếp vào phòng lý thuyết, môn học thực
hành xếp vào phòng thực hành. Phòng học phải đảm bảo đầy đủ điều kiện học tập (số chỗ ngồi luôn lớn hơn hoặc bằng sĩ số của lớp).
Ràng buộc về lập lịch có lựa chọn trước: Việc lập Thời khóa biểu có thể đƣợc thực hiện với một số lựa chọn đƣợc khởi tạo trƣớc nhƣ cố định ngày học hay giờ bắt đầu cho một môn nào đó của một lớp,…
27