ASP & Clingo
Cân bằng tải dạy bằng tối ưu mức phạt lớn nhất
So lịch tổng phạt thấp với lịch phân bổ gánh nặng đồng đều hơn.
Thích và đánh giá Bình luận và hỏi đáp1. Tổng thấp có thể dồn gánh nặng
Giả sử lịch A cho ba mức phạt 0, 0 và 8. Lịch B cho 3, 3 và 3. Tổng của A là 8, nhỏ hơn tổng 9 của B. Người chịu phạt nặng nhất trong A lại có 8 điểm, còn trong B là 3. Đây là hai mục tiêu khác nhau, nên nhóm xây dựng mô hình cần xác định tiêu chí ưu tiên trước khi chọn lịch.
2. Đặt thứ tự thay vì chọn hệ số tùy ý
Ví dụ tìm giá trị lớn nhất trên ba mức phạt rồi tối thiểu hóa đại lượng này ở ưu tiên cao. Ở mức thấp, tổng phạt phá hòa giữa các phương án có cùng mức lớn nhất. Việc đưa mã giảng viên vào bộ định danh của phép tối ưu giữ các khoản có cùng điểm được tính riêng.
3. Kiểm tra hai tiêu chí bằng kết quả cụ thể
Chương trình có A và B như trên, cùng lịch C có phạt 3, 2 và 3. B và C đều có mức lớn nhất 3. C thắng ở mức thấp vì tổng 8 so với 9. Kết quả cuối là chon(c) với vector chi phí 3 8. Tắt mục tiêu mức cao để quan sát A và C đồng hạng theo tổng.
Nếu chưa có Clingo, cài bằng python -m pip install clingo.
Chạy ví dụ bằng python -m clingo asp_cong_bang_tai_day.lp -n 0.
Môi trường thực hành. Clingo 5.8 trở lên. Có thể cài bằng python -m pip install clingo và gọi python -m clingo thay cho lệnh clingo.
Đọc kết quả tối ưu. Các nghiệm trung gian có thể chưa tối ưu. Lệnh --opt-mode=optN -n 0 tìm tối ưu rồi liệt kê các nghiệm tối ưu; cần phân biệt hai giai đoạn khi đếm nghiệm. Chỉ kết luận tối ưu khi lượt giải đã chứng minh được kết quả. Giải thích của Potassco.
lich(a;b;c).
phat(a,gv1,0). phat(a,gv2,0). phat(a,gv3,8).
phat(b,gv1,3). phat(b,gv2,3). phat(b,gv3,3).
phat(c,gv1,3). phat(c,gv2,2). phat(c,gv3,3).
1 { chon(L) : lich(L) } 1.
cao_nhat(M) :- chon(L), M = #max { P,G : phat(L,G,P) }.
#minimize { M@2 : cao_nhat(M); P@1,G : chon(L), phat(L,G,P) }.
#show chon/1.
#show cao_nhat/1.4. Đặt câu hỏi về cách đo công bằng
Một điểm phạt có thể mang ý nghĩa khác nhau giữa giảng viên dạy ít và dạy nhiều. So thử phạt tuyệt đối và phạt chuẩn hóa theo số buổi, rồi ghi lại trường hợp đổi thứ hạng. Cần kiểm tra cả khả thi, độ nhạy với trọng số và việc quy tắc có gây bất lợi lặp lại cho một nhóm giảng viên qua các học kỳ.
Đọc thêm Tài liệu ngôn ngữ ASP của Potassco.