Hành động
Task #1476
mở
HN
HĐ
[Xếp TKB auto]
Task #1476:
[Xếp TKB auto]
Bắt đầu:
27-05-2026
Hết hạn:
Tiến độ:
70%
Thời gian ước lượng:
Build tại bản:
Người Test:
Thời gian test xong:
Mô tả
- Mục đí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 - 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%
- Quy tắc chi tiết : https://docs.google.com/document/d/1HDzj-z-5y2KyyhDe9dFOk0w_GRuMTAFpG094hAkQss8/edit?tab=t.u3ogbg4k9mm6
- 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
HĐ Cập nhật bởi Hải Ninh Đoàn cách đây 10 ngày
- Trạng thái thay đổi từ New tới Approved
HĐ Cập nhật bởi Hải Ninh Đoàn cách đây 10 ngày
- Tiến độ thay đổi từ 0 tới 70
Hành động