Dự án

Tổng quan

Hồ sơ

Task #1476

Cập nhật bởi Hải Ninh Đoàn cách đây 3 tháng

**1. 1. Mục đích** đích 
 Xây dựng chức năng xếp thời khóa biểu tự động cho từng khóa đào tạo trong quý nhằm: 
 Giảm thao tác xếp lịch thủ công 
 Tự động phân bổ môn học, bài học theo đúng quy định huấn luyện 
 Đảm bảo tuân thủ các ràng buộc đào tạo 
 Hỗ trợ tối ưu lịch học theo ngày, tuần, quý 
 Hạn chế xung đột: 
 Phòng học 
 Mốc huấn luyện 
 Kế hoạch huấn luyện 
 Ràng buộc bài học 
 Hỗ trợ người dùng tinh chỉnh thủ công sau khi xếp 
 Hệ thống sử dụng: 
 Greedy Algorithm để xếp lịch sơ bộ 
 Hill Climbing để tối ưu và tinh chỉnh lịch 
 2. Yêu cầu nghiệp vụ 
 2.1 Câu chuyện nghiệp vụ 
 Hiện tại việc xếp thời khóa biểu đang thực hiện chủ yếu bằng tay: 
 Xếp cho từng khoá/lớp  
 Chọn từng ngày 
 Chọn từng môn/ bài học 
 Kiểm tra thủ công: 
 Mốc huấn luyện 
 Lịch thi 
 Phòng học 
 Tiết học 
 Giảng viên 
 Trong thực tế: 
 Một khóa có nhiều lớp 
 Một quý có nhiều môn học 
 Có nhiều ràng buộc phức tạp 
 Thường xuyên thay đổi kế hoạch huấn luyện 
 Các vấn đề gặp phải: 
 Tốn nhiều thời gian xếp lịch 
 Dễ xung đột phòng học 
 Dễ vi phạm kế hoạch huấn luyện 
 Khó đảm bảo đúng thứ tự bài học 
 Khó tối ưu phân bố lịch học 
 Do đó cần chức năng xếp tự động hỗ trợ: 
 Xếp sơ bộ nhanh 
 Tự động xử lý ràng buộc 
 Tinh chỉnh tối ưu lịch 
 Cho phép người dùng chỉnh sửa tiếp bằng tay 
 2.2 Mong muốn 
 Người dùng mong muốn: 
 Chỉ cần chọn khóa đào tạo và quý → hệ thống tự xếp 
 Không ghi đè lịch đã xếp tay 
 Chỉ xếp vào ô còn trống 
 Có thể bấm “Xếp tự động” nhiều lần để xếp tiếp các tiết còn dư 
 Tuân thủ đầy đủ: 
 Mốc huấn luyện 
 Kế hoạch huấn luyện 
 Thứ tự bài học 
 Loại hình bài học 
 Quy tắc môn học 
 Tự động tối ưu lịch: 
 Giảm tiết lẻ 
 Giảm khoảng trống 
 Hạn chế học quá tải 
 Ngoài ra: 
 Ưu tiên xếp buổi sáng 
 Buổi chiều dùng để: 
 Xếp lịch dư 
 Dồn lịch thay đổi 
 Xử lý conflict 
 2.3 Khó khăn 
 - Về nghiệp vụ 
 Có nhiều loại tiết: 
 Có nhiều ràng buộc đặc thù quân sự 
 Có các block cứng không được xếp 
 Có các môn ưu tiên cao: 
 Chiến thuật 
 Bắn súng 
 Thao trường 
 - Về dữ liệu 
 Một quý có nhiều bài học 
 Một bài có nhiều loại hình 
 Có bài kéo dài nhiều ngày 
 Có bài yêu cầu đúng khoảng thời gian 
 - Về thuật toán 
 Khó tối ưu toàn bộ lịch ngay từ đầu 
 Nhiều conflict: 
 Phòng học 
 Tiết học 
 Khoảng cách lịch 
 Tiết lẻ 
 Khó đảm bảo toàn bộ constraint đều đúng 100% 
 3. Quy tắc chi tiết : https://docs.google.com/document/d/1HDzj-z-5y2KyyhDe9dFOk0w_GRuMTAFpG094hAkQss8/edit?tab=t.u3ogbg4k9mm6 
 4. Kết quả mong muốn 
 Sau khi xếp: 
 Không vi phạm hard constraint 
 Giảm tối đa soft constraint 
 Không conflict phòng học 
 Đảm bảo đúng thứ tự bài học 
 Đảm bảo đúng kế hoạch huấn luyện 
 4.

Quay lại