2. Ý tưởng thuật toán
Ý tưởng của thuật toán FPR xuất phát từ tên gọi của thuật toán là "thay đổi vị trí cố định", tức là cố gắng giữ cố định không thay đổi hai vị trí xuất phát của giáo viên đầu tiên và được mô tả trong hình dưới đây.
Trong hình ảnh trên mô tả cách thực hiện lệnh chuyển tiết của giáo viên A từ tiết 1 thứ 7 sang tiết 5 thứ 4.
Nếu tại vị trí tiết 5, thứ 4, lớp học đang rỗi thì lệnh sẽ được thực hiện ngay lập tức không ảnh hưởng đến ai.
Nếu như tại vị trí tiết 5, thứ 4 có giáo viên B đang dạy. Khi đó tiết học này của giáo viên B sẽ được sắp xếp để chuyển về tiết 1, thứ 7. Nếu giáo viên B bận dạy tại tiết 1, thứ 7 thì trên TKB của giáo viên B sẽ thực hiện việc hoán đổi vị trí 2 tiết là tiết 1 thứ 7 và tiết 5 thứ 4.
Việc chuyển tiết từ tiết 1 thứ 7 sang tiết 5 thứ 4 của giáo viên B sẽ làm ảnh hưởng đến giáo viên C và quá trình tương tự tiếp tục với giáo viên C, D, ...
Thuật toán trên sẽ dừng lại cho đến khi gặp giáo viên E rỗi vào tiết 1 thứ 7 và là giáo viên cuối cùng trong dãy các giáo viên tham gia vào dự án A, B, ...
Hoặc thuật toán cũng dừng lại nểu giáo viên E có tiết dạy vào tiết 1, thứ 7 nhưng lớp học mà giáo viên này dạy thứ 7 lại rỗi vào tiết 5 thứ 4.
Ta có nhận xét sau cho cách thực hiện của thuật toán FPR:
- Tất cả các giáo viên tham gia vào thuật toán này đều thay đổi hai vị trí cố định giống nhau.
- Tất cả các giáo viên trung gian tham gia vào thuật toán, trừ ra giáo viên cuối cùng, sẽ có thời khóa biểu không thay đổi về vị trí, do đó sẽ không bị xấu thời khóa biểu sau lệnh.
- Chỉ có một giáo viên cuối cùng là sẽ có thời khóa biểu thay đổi. Do đó thuật toán FPR sẽ làm thay đổi hoặc làm xấu đi, cùng lắm là 01 giáo viên. Đây chính là ưu điểm tuyệt vời của thuật toán này.
3. Cài đặt và thực hiện thuật toán FPR
Toàn bộ các lệnh tinh chỉnh dữ liệu (CX, Push Out, Move To) đều có thể sử dụng thuật toán FPR. Cách cài đặt thuật toán này cho các lệnh tinh chỉnh được thực hiện tương tự.
Vào lệnh Các lựa chọn --TAB: Xếp TKB để cài đặt thuật toán này cho các lệnh tinh chỉnh.
4. Giao diện thực hiện thuật toán
Sau khi thực hiện lệnh với thuật toán FPR, nếu lệnh thực hiện thành công thì màn hình dạng sau xuất hiện.
Phía trên và phía dưới chính của cửa sổ này là các khung thể hiện thời khóa biểu của các lớp (phía trên) và giáo viên (phía dưới) đã tham gia vào thực hiện lệnh.
Với mỗi lớp hay giáo viên, màn hình sẽ hiện thông tin trong 2 khung trái và phải, khung trái là TKB trước khi thực hiện lện, khung phải là TKB sau khi thực hiện lệnh.
Tại khung trái chúng ta sẽ thấy các đường kẻ đỏ với số hiệu đi kèm chi ra dãy các tiết thay đổi trên TKB này. Ô màu vàng là tương ứng với thông tin chi tiết của lớp hay GV được chọn tại khung thông tin chi tiết giữa.
Quan sát trên các khung thời khóa biểu này chúng ta có thể đánh giá các thay đổi dữ liệu trên các thời khóa biểu lớp/giáo viên là chấp nhận được hay không.
Tại vị trí khung giữa là nơi thể hiện các thông tin thay đổi chi tiết của lệnh. Mỗi dòng thông tin tại vị trí này sẽ tương ứng với một cặp (lớp, giáo viên) thể hiện trên màn hình. Nháy chuột vào dòng để xem thông tin lớp, giáo viên tương ứng.
Có hai kiểu xem thông tin: liệt kê theo giáo viên hay theo lớp.
Liệt kê theo lớp:
Liệt kê theo giáo viên:
Cách thể hiện thông tin thay đổi cũng có 2 cách:
Hiển thị chi tiết (như 2 hình trên) và chỉ hiện thị số lượng vị trí thay đổi như hình dưới đây:
Phía dưới vị trí TKB giáo viên là dòng thông tin đánh giá giáo viên này.
Nháy nút Báo cáo để xem bảng thông tin đánh giá của tất cả các giáo viên tham gia vào lệnh.
Khung dưới cùng của màn hình là các nút điều khiển chính của lệnh.
Yêu cầu giáo viên: Mở màn hình xem lại các yêu cầu và ràng buộc giáo viên.
Báo cáo: Xem bảng đánh giá các giáo viên tham gia vào lệnh.
Kết thúc: Đồng ý thực hiện lệnh và đóng cửa sổ này lại.
Hủy lệnh: Không thực hiện, hủy lệnh và đóng cửa sổ lại.
School@net
|