Mô hình thuật toán CX trong các lệnh tinh chỉnh dữ liệu của phần mềm TKB 10.0

Ngày gửi bài: 30/06/2016
Số lượt đọc: 21318

CX là một thuật toán quan trọng trong phần mềm TKB. Bài viết này sẽ mô tả mô hình của thuật toán này trong phần mềm hỗ trợ xếp thời khóa biểu TKB.

Chú ý rằng không được nhầm lần giữa thuật toán CX và lệnh CX trong phần mềm TKB.

Thuật toán CX là một thuật toán sử dụng trong các lệnh tinh chỉnh dữ liệu của phần mềm.

Lệnh CX (xếp 1 tiết có điều kiện) là một trong 3 lệnh tinh chỉnh dữ liệu chính của phần mềm TKB.

Ký hiệu CX là cụm từ viết tắt của Conditional eXecution (thực hiện có điều kiện).

1. Ý tưởng, tư tưởng thuật toán CX

Như chúng ta đã biết tất cả các thuật toán tinh chỉnh dữ liệu đều có một điểm chung: để thực hiện được một tinh chỉnh tốt (cho một lớp, giáo viên) thì cần có sự trả giá thay đổi của một số giáo viên khác. Ý tưởng của thuật toán CX là tìm kiếm các giáo viên trung gian cần thay đổi chỉ trong phạm vi 1 lớp học.

Hình ảnh dưới đây cho ta thấy ý tưởng của thuật toán CX: trên hình là thời khóa biểu của lớp 10A, mỗi lớp học trong trường phổ thông chỉ có khoảng 10-12 giáo viên dạy.

Khi thực hiện một lệnh tinh chỉnh dữ liệu trên thời khóa biểu của lớp này hoặc giáo viên dạy lớp này, phần mềm sẽ đi tìm một "dây" giáo viên từ chính ngay lớp học này. Sự thay đổi dữ liệu của "dây" giáo viên này được mô tả bằng một sơ đồ như hình vẽ trên.

Thuật toán này có ý nghĩa thực tiễn rất cao và hiệu quả vì hạn chế được tổng số giáo viên tham gia vào tinh chỉnh.

Thực tế tư duy điều chỉnh của giáo viên như sau: khi một giáo viên muốn thay đổi một tiết học nào đó tại một lớp học, giáo viên này sẽ liên hệ và điều đình với các giáo viên cùng dạy lớp này để yêu cầu cùng thay đổi thời khóa biểu sao cho thỏa mãn yêu cầu của mình (tất nhiên với sự đồng ý của tất cả các giáo viên bị thay đổi giờ dạy). Đó chính là ý tưởng lõi của thuật toán CX.

2. Cài đặt lựa chọn thuật toán CX

Trong phần mềm TKB, tất cả 3 lệnh tinh chỉnh dữ liệu chính (Push Out, CX, Move To) đều có thể sử dụng thuật toán CX. Để cài đặt sử dụng thuật toán CX cho các lệnh tinh chỉnh dữ liệu trong phần mềm thực hiện lệnh: Lệnh chính --> Các lựa chọn --> (TAB) Xếp TKB.

3. Tính năng chính của thuật toán CX

Sau đây mô tả các tính năng chính của thuật toán CX:

- Khi thực hiện một lệnh tinh chỉnh dữ liệu trên một lớp học nào đó sử dụng thuật toán CX thì chỉ có các giáo viên đang dạy lớp này mới bị ảnh hưởng và có thể tham gia vào "dây" giáo viên thay đổi của lệnh.

- Cho phép người dùng quan sát và thực hiện liên tiếp các phương án khác nhau của lệnh. Với mỗi phương án cho phép quan sát tất cả các thay đổi của tất cả các giáo viên tham gia vào lệnh, quan sát từng giáo viên trước và sau khi sẽ thực hiện lệnh.

- Phần mềm có tính năng tự động đánh giá từng phương án thực hiện lệnh, đánh giá từng giáo viên tham gia vào lệnh và đánh giá tổng thể kết quả lệnh. Việc đánh giá được thực hiện bẳng 3 trạng thái: màu đỏ - xấu, màn vàng - trung bình và màu xanh - tốt.

- Trước khi thực hiện lệnh cho phép người dùng cài đặt một số lựa chọn quan trọng như cho phép giáo viên nào tham gia vào lệnh, các qui định cụ thể của việc cho phép giáo viên trung gian thay đổi như thế nào, với những ràng buộc nào trong quá trình thực hiện lệnh.

4. Mô tả giao diện thuật toán CX

Dưới đây là hình ảnh giao diện ban đầu của lệnh CX (xếp 1 tiết) sử dụng thuật toán CX của phần mềm TKB.

Chú ý đến 5 khu vực chính của giao diện thuật toán CX như hình dưới đây.

1. Vùng thông tin Input của lệnh

Đây là vùng chứa các thông tin ban đầu và là nơi thực hiện các lệnh cài đặt bổ sung các lựa chọn của lệnh.

Môn Sinh hoạt: chỉ ra môn học tương ứng với môn Sinh hoạt của lớp hiện thời. Giáo viên dạy môn sinh hoạt này sẽ không tham gia vào quá trình chuyển vị trí của lệnh. Hay nói cách khác các tiết Sinh hoạt sẽ không bị thay đổi vị trí của lệnh này.

Số bước cần chuyển tối đa: đây thực chất là số các giáo viên trung gian được phép tham gia vào quá trình thực hiện lệnh. Giá trị này càng lớn thì xác suất thành công của lệnh càng lớn.

Để bắt đầu thực hiện lệnh hãy nháy nút Thực hiện tại vùng 5.

Khi đó thông tin vùng Input sẽ có dạng như sau:

2. Vùng quan sát thời khóa biểu

Trong quá trình thực hiện lệnh Vùng 2 là khu vực quan sát thời khóa biểu của các giáo viên và lớp tham gia thực hiện lệnh.

Người dùng dễ dàng quan sát sự thay đổi các tiết học trên lớp (cửa sổ phía trên). Các thay đổi này được thể hiện bằng các mũi tên màu đỏ kẻ từ ô này sang ô khác. Dãy các ô thay đổi được đánh số theo thứ tự từ 1.

Phía dưới là thời khóa biểu của giáo viên tương ứng. Nháy chuột vào 1 ô phía trên (TKB lớp) thì phía dưới sẽ hiện TKB của giáo viên tương ứng với ô này.

3. Vùng diễn giải và thể hiện thông tin chi tiết của lệnh

Khi lệnh bắt đầu thực hiện, vùng diễn giải 3 sẽ ghi rõ chi tiết các giáo viên bị thay đổi dữ liệu.

Trong hình ảnh trên ta thấy kết quả ghi rõ có 3 giáo viên tham gia vào lệnh hiện thời, trong đó giáo viên Nguyễn Thị Dung là đối tượng cần xếp ban đầu, hai giáo viên Dương Minh Hằng (thể dục) và Ngô Thu Hà (văn) là các giáo viên trung gian có thay đổi giáo viên khi thực hiện lệnh.

4. Vùng đánh giá giáo viên và lệnh

Vùng 4 ngay phía dưới vùng 3 là thể hiện đánh giá giáo viên tham gia vào thuật toán.

5. Vùng các nút điều khiển lệnh

Khu vực này bao gồm các nút điều khiển chính của lệnh.

Ý nghĩa các nút này như sau:

Dừng lại: dừng không thực hiện tiếp tục nữa, quay trở lại ban đầu của lệnh.

Tìm tiếp: tìm phương án tiếp theo của lệnh. Như vậy thuật toán CX cho phép người dùng thực hiện liên tiếp các phương án của lệnh cho đến khi ưng ý.

Quay lại: quay lại phương án đã tìm thấy ở bước trước đó.

Báo cáo: mở cửa sổ xem chi tiết bảng đánh giá các giáo viên đã tham gia vào phương án hiện thời. Báo cáo này cho phép xem các thông số chi tiết của toàn bộ 12 tiêu chí của từng giáo viên trước và sau khi thực hiện lệnh. Các thông tin này rất có giá trị cho người dùng để nhận biết thực sự các giáo viên sẽ bị thay đổi thời khóa biểu như thế nào khi thực hiện lệnh.

Cửa sổ thông báo sẽ có dạng như hình dưới đây.

Kết thúc: kết thúc, thực hiện lệnh và đóng của sổ.

Hủy lệnh: đóng cửa sổ lệnh mà không thực hiện lệnh.

5. Các lựa chọn thực hiện lệnh

Nút Tùy chọn trong vùng 1 sẽ cho phép người dùng cài đặt các lựa chọn để thực hiện lệnh.

Cửa sổ nhập các Tùy chọn có dạng như hình sau:

Bên trái là danh sách các giáo viên dạy lớp hiện thời. Các giáo viên được kích hoạt chọn sẽ được phép tham gia vào lệnh, các giáo viên không được kích hoạt sẽ không được tham gia (trừ ra giáo viên đang dạy tại ô hiện thời mặc nhiên phải tham gia).

Bên phải là các điều kiện ràng buộc liên quan đến ràng buộc giáo viên và môn học như sau:

Bận, Nghỉ, Hạn chế: Nếu các lựa chọn này được kích hoạt (checked), các điều kiện Bận, Nghỉ, Hạn chế của ràng buộc giáo viên sẽ được tính đến và lệnh sẽ không phá vỡ các ràng buộc này. Mặc định các lựa chọn này là disable.

Điều kiện nghỉ tiết giáo viên: Nếu lựa chọn này kích hoạt thì các điều kiện nghỉ của giáo viên theo tiết học (ví dụ sáng dạy từ tiết ... đến tiết....) sẽ được tính đến trong quá trình thực hiện lệnh.

Điều kiện nghỉ ngày của giáo viên: Điều kiện này liên quan đến các ràng buộc nghỉ theo ngày của giáo viên (ví dụ xin nghỉ thứ ...)

Số lượng phòng học môn: Đây là điều kiện liên quan đến một tính chất môn học: số phòng học môn qui định tại một thời điểm số lượng tiết học của môn học này không vượt quá số phòng học môn.

Học 1 tiết trong ngày: Tính chất chỉ học một tiết học trong một buổi của môn học này.

Các ràng buộc nghỉ tiết của môn học: Lựa chọn này liên quan đến các tính chất môn học liên quan đến ngày nghỉ trong tuần, đó là các tính chất 4 (không học tiết 5), 5 (không học tiết 4, 5), 6 (không học tiết 1), 7 (không học tiết 1, 2),  9 (chỉ học tiết 1), 10 (chỉ học tiết 5), 13 (chỉ học tiết 1 hoặc 5), 14 (học vào đầu tuần), 15 (học vào cuối tuần).

Kiểm tra khóa dữ liệu: Nếu lựa chọn này kích hoạt (mặc định là enable) thì khóa dữ liệu trên TKB lớp hiện thời sẽ có hiệu lực: lệnh không cho phép phá vỡ các tiết đã được khóa.

Không phá vỡ cặp tiết xếp liền: Nếu lựa chọn này được kích hoạt (mặc định enable) thì các lệnh sẽ không phá vỡ các cặp tiết đã xếp liền nhau trên thời khóa biểu.

Sau khi thực hiện các cài đặt lựa chọn nháy nút Kết thúc.

School@net



Những bài viết khác:
7 bước xếp thời khóa biểu: từ số 0 đến khi hoàn thành thời khóa biểu (11/07/2016)
TKB 10.0: Chức năng chuyển đổi thời khóa biểu toàn trường (04/07/2016)
TKB 10.0: giới thiệu lệnh Show All Room (02/07/2016)
TKB 10.0: giao diện Triple View cho phép thao tác trực tiếp trên thời khóa biểu phòng học (02/07/2016)
Chức năng Xếp môn thực hành của phần mềm hỗ trợ xếp thời khóa biểu TKB 10.0 (02/07/2016)
10 chức năng mạnh nhất và quan trọng nhất định hướng tối ưu hóa thời khóa biểu của phần mềm TKB 10.0 (01/07/2016)
Mô tả thuật toán tinh chỉnh tối ưu OpDPR/FPR trong TKB 10.0 (30/06/2016)
Thuật toán tinh chỉnh tối ưu OpCX/OpDPR trong TKB 10.0 (30/06/2016)
Mô hình thuật toán OpFPR trong TKB 10.0 (30/06/2016)
Mô hình thuật toán FPR trong các lệnh tinh chỉnh dữ liệu của phần mềm TKB 10.0 (30/06/2016)

School@net Technology Company.
Công ty Công nghệ Tin học Nhà trường.

Phòng 804, nhà 17T1, khu đô thị Trung Hòa Nhân Chính, quận Cầu Giấy, Hà Nội.
Điện thoại: 84-24-62511017
Email: kinhdoanh@schoolnet.vn
Website: www.vnschool.net, www.schoolnet.vn, www.thnt.vn