Dự án

Tổng quan

Hồ sơ

Hành động

Task #1476

mở
HN SH

[Xếp TKB auto]

Task #1476: [Xếp TKB auto]

Thêm bởi Hải Yến Ngô cách đây 3 tháng. Cập nhật cách đây 14 ngày.

Trạng thái:
Commit
Mức ưu tiên:
Trung bình
Phân công cho:
Phiên bản:
-
Bắt đầu:
04-08-2026
Hết hạn:
Tiến độ:

93%

Thời gian ước lượng:
(Tổng cộng: 0:00 h)
Build tại bản:
Thời gian test xong:

Mô tả

1. Mục đích

Màn hình “Xếp thời khóa biểu tự động” dùng để:
Cho phép người dùng cấu hình tham số xếp lịch (ràng buộc cứng/mên, thứ tự ưu tiên, thiết lập ràng buộc tiết )
Chọn phạm vi xếp (khoá, quý => khi cần điểu chỉnh thì có thể chọn phạm vi nhỏ hơn như tiểu đoàn, đại đội / tuần,tháng )
Thực hiện xếp tự động cho khóa đào tạo
Theo dõi tiến trình xếp
Xem kết quả sau khi xếp
Kiểm tra các lỗi/ràng buộc không xếp được
Các bước sử dụng thuật toán
Bước 1 : Sử dụng Rule-based để chọn các ràng buộc
Ràng buộc cứng : không được phép vi phạm
Ràng buộc mềm: cảnh báo khi vi phạm và có tính điểm khi vi phạm (khi thêm có cột penalty để ghi đánh giá điểm)
Bước 2 : Sử dụng Priority-based (thứ tự ưu tiên )
Thứ tự ưu tiên lớp
Thứ tự ưu tiên môn học
Bước 3 : Dùng greedy
Xếp lớp ưu tiên đầu tiên trước sau đó lần lượt đến các lớp có thứ tự đằng sau
Mỗi lớp thì xếp môn ưu tiên đầu tiên trước sau đến các môn có thự tự đằng sau
Thuật toán sẽ chọn phương án tốt nhất ngay tại thời điểm hiện tại mà không xét đến toàn cục
Bước 4 : Sau khi xếp xong thì sẽ tính điểm penalty(bị vi phạm các ràng buộc mềm) có cả thời khoá biểu , điểm penalty đã được quy định từ trước khi tạo ra ràng buộc.
Bước 5 : Sử dụng Hill Climbing để điều chỉnh thời khoá biểu cho đẹp
Thuật toán tìm kiếm cục bộ, cải thiện dần lời giải bằng cách chọn phương án tốt hơn lân cận
Sẽ dựa vào điểm penalty để điểu chỉnh sao cho điểm penalty xuống 0 hoặc thấp nhất có thể

2. Câu chuyện nghiệp vụ (Business Story)

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,...
    Phải tuân thủ các mốc huấn luyện, lịch thi, phòng học , tiết học và giảng viên, Kế hoạch huấn luyện, thứ tự bài học , ràng buộc, thể loại tiết
    Trong thực tế: Một khóa có nhiều lớp, có nhiều khoá trong 1 khoảng thời gian , một quý có nhiều môn học và có nhiều ràng buộc phức tạp , thường xuyên thay đổi kế hoạch huấn luyện

2.2 Mong muốn

Người dùng mong muốn:
Chỉ cần chọn quý và khoá đào tạo → hệ thống tự xếp, sẽ có các chế độ xếp (xếp mới toàn bộ, xếp không ghi đè vào các tiết đã xếp và xếp lại toàn bộ trừ các tiết đã khoá ) vào tuân thủ các ràng buộc
Ngoài ra:
Ưu tiên xếp buổi sáng các bài học chính
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
    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
    Lưu ý: Có các môn ưu tiên cao:
    Chiến thuật
    Bắn súng
    Thao trường

3. Quy tắc chi tiết ****

[[https://docs.google.com/document/d/1HDzj-z-5y2KyyhDe9dFOk0w_GRuMTAFpG094hAkQss8/edit?pli=1&tab=t.u3ogbg4k9mm6
]]

4. GIẢI PHÁP PHẦN MỀM ****

**4.1: Các chức năng ảnh hưởng
** Xếp thời khoá biểu
**4.2: Giải pháp
** Sử dụng tất cả các ràng buộc
Sử dụng thuật toàn phù hợp
Chọn ra các mục ưu tiên hợp lý


Tác vụ con 15 (2 mở13 đóng)

Bug #1957: [ Xếp auto ]: Lịch xếp tự động các bài không hiển thị theo kế hoạch huấn luyệnDONESơn Hoàng Tuấn 04-08-2026

Hành động
NF #1958: [ Xếp auto ]: Mong muốn hiển thị trạng thái Loading (Processing) khi hệ thống đang xử lý xếp lịchNewSơn Hoàng Tuấn 04-08-2026

Hành động
Bug #1959: [ Xếp auto ]: Không xếp theo thứ tự loại hình của mỗi bài ( Mong muốn ưu tiên xếp lý thuyết trước tự học ) DONESơn Hoàng Tuấn 04-08-2026

Hành động
Bug #1960: [ Xếp tkb ] > Công bố lịch: Báo lỗi trùng ngày với TKB cũ chưa công bố ("Thời gian quý/năm đang chọn trùng ngày...")DONETiến Lực Phạm04-08-2026

Hành động
Bug #1963: [ Xếp auto ]: Hiển thị bài đã xếp, đã duyệt của năm trước để xếp thời khóa biểu cho năm tiếpDONESơn Hoàng Tuấn 05-08-2026

Hành động
Bug #1964: [ Xếp auto ]: Sai quy tắc xếp tiết lẻ (Xếp vào Thứ 6 ghép Tự học thay vì ưu tiên Thứ 2 )DONESơn Hoàng Tuấn 05-08-2026

Hành động
Bug #1968: [ Xếp auto ]: Không hiện lịch khi chọn chế độ xếp lịch vào những tiết còn trốngDONESơn Hoàng Tuấn 05-08-2026

Hành động
Bug #1969: [ Xếp auto ]: Xếp lịch vi phạm Ràng buộc bài học trước DONETiến Lực Phạm05-08-2026

Hành động
Bug #1971: [ Xếp auto ]: Sai quy tắc xếp lịch thực hiện xếp theo cặp ( Tiết chẵn nhưng Xếp với tiết tự học thay vì xếp theo cặp tiết )DONESơn Hoàng Tuấn 06-08-2026

Hành động
Bug #1984: [ Xếp auto ]: Xếp lịch vi phạm ràng buộc khácDONESơn Hoàng Tuấn 07-08-2026

Hành động
Bug #1985: [ Quản lý ràng buộc ]: Ràng buộc khác > Sửa ràng buộc: Cho phép sửa các trường thông tin của ràng buộcDONESơn Hoàng Tuấn 07-08-2026

Hành động
Bug #1990: [ Xếp auto ]: Hai lớp trong cùng 1 tiết trùng giảng viên nhưng không hiện cảnh báo khi xếp lịchDONESơn Hoàng Tuấn 07-08-2026

Hành động
Task #2137: [Xếp auto] xếp quá số lương lớp học so với số lượng giảng viên có thể giảng dạyCommitSơn Hoàng Tuấn 17-08-2026

Hành động
Bug #2150: [ Xếp auto ]: Không xếp đủ các tiết học bắt buộc (Lý thuyết) còn lại của bài họcDONESơn Hoàng Tuấn 18-08-2026

Hành động
Bug #2151: [ Xếp auto ]: Cấu hình ràng buộc mong muốn có thêm cột thông tin của nhóm môn họcDONESơn Hoàng Tuấn 18-08-2026

Hành động

Liên quan 2 (1 mở1 đóng)

liên quan Bug #2209: [ Xếp auto ]: Xếp toàn bộ tiết Tự học trước khi xếp các tiết học bắt buộc (Lý thuyết / Thực hành) của bài họcDONESơn Hoàng Tuấn 24-08-2026

Hành động
liên quan Bug #2206: [Xếp auto] xếp lịch không theo thông báo nhiệm vụ huấn luyệnCommitSơn Hoàng Tuấn 24-08-2026

Hành động
Hành động

Định dạng khác của trang này: PDF Atom