MÔ TẢ GIẢI THUẬT:

Một phần của tài liệu Phân hệ xếp lịch thi (Trang 35 - 37)

III.1 Sơ đồ khối tổng quát của chương trình:

III.2 Các phương pháp cụ thể giải quyết các yêu cầu:

III.2.1 Chọn đơn vị nhỏ nhất cho quá trình xếp lịch thi:

Theo thực tế, do việc cho phép các nhóm tổ thuộc một thi có thể phải thi cùng lúc khác phòng (thi song song), nên ta chuyển việc xếp lịch thi cho từng nhóm tổ thành việc xếp lịch thi trên các nhóm thi song song, tức là nhóm của các nhóm tổ cần thi song song. Điều này giảm số trường hợp cần xét khi xếp lịch thi.

Tuy nhiên, khi thực hiện việc xếp lịch thi dựa trên các nhóm song song sẽ gây khó khăn cho việc đánh giá để chọn các phòng phù hợp cho các nhóm tổ trong một nhóm thi song song.

III.2.2 Xếp theo độ ưu tiên của các chiến lược:

Theo độ ưu tiên đã được người sử dụng chọn, ta tìm thông số cần thiết cho tất cả các chiến lược chọn của tất cả các nhóm, sau đó tiến hành xếp lịch thi cho các nhóm theo thứ tự các chiến lược theo độ ưu tiên giảm dần. Mặc định độ ưu tiên 1 có mức ưu tiên cao nhất.

Việc chọn độ ưu tiên cao nhất cho chiến lược 1: chọn các nhóm thi song song có số lượng nhóm liên quan lớn nhất xếp trước, thường đạt được kết quả tương đối tốt hơn so với việc chọn độ ưu tiên cao cho các chiến lược còn lại.

Ví dụ: ta có một nhóm X có 30 nhóm liên quan, nếu ta xếp cho 30 nhóm liên quan đó trước, thì khi ta chọn ngày tiết bắt đầu thi cho nhóm X, ta sẽ phải tránh thời gian của tất cả 30 nhóm liên quan -> có thể ta không thể tìm thấy một thời điểm thích hợp. Ngược lại, nếu ta chọn xếp cho nhóm X trước thì khi ta xếp cho

nhóm còn lại, thì nếu các nhóm này có số nhóm liên quan ít hơn thì khả năng tìm được một thời điểm tương đối phù hợp sẽ cao hơn trường hợp trước rất nhiều.

III.2.3 Xếp lịch thi với các tùy chọn:

Theo các tùy chọn của người sử dụng chọn, dùng các tùy chọn này để chọn các đánh giá sử dụng cho việc xếp lịch thi. Đó là các tuỳ chọn cho phép ta xếp lịch thi.

Tuỳ chọn xếp tránh tiết 1: tránh xếp lịch thi vào tiết 1 do quá sớm không đủ thời gian chuẩn bị cho kỳ thi.

Tuỳ chọn xếp tránh tiết 6: tránh xếp lịch thi vào tiết này do quá trễ. Tùy chọn xếp tránh tiết 7: tránh xếp lịch thi vào tiết vào giữa trưa. Tuỳ chọn xếp tránh tiết 12: tránh xếp lịch thi vào tiết này do quá trễ.

Tùy chọn xếp lịch thi cho bất kỳ sinh viên có hai môn thi một buổi: tránh cho sinh viên phải thi hai môn liên tiếp trong một buổi sáng hay một buổi chiều.

Tuỳ chọn tránh một tiết giữa hai môn thi bất kỳ cho một sinh viên bất kỳ.

III.2.4 Đánh giá lịch thi theo thang điểm:

Theo thang điểm đã được chọn hay mặc định, ta tiến hành thống kê tính điểm theo sinh viên nhằm cung cấp cho người sử dụng thông tin đánh giá lịch thi tìm được.

Đó là các thông tin như:

-số lượt sinh viên phải thi hai môn trong một buổi. -số lượt sinh viên phải thi hai môn trong một ngày. - số lượt sinh viên phải thi trong ngày hai ngày liên tiếp. -số lượt sinh viên phải thi hơn hai môn trong một ngày. -số lượt sinh viên phải thi hơn hơn hai ngày liên tiếp. HƯỚNG PHÁT TRIỂN CỦA CHƯƠNG TRÌNH:

Theo các hướng tiếp cận vấn đề ở trên, ta có thể tiếp tục phát triển chương trình theo hướng tìm kiếm kết quả tối ưu trên không gian trạng thái. Đó là dùng chương trình tạo một lịch thi, sau đó dùng các giải thuật tìm kiếm để hoán vị lịch thi của các nhóm thi song song, sau đó dùng hàm đánh giá có sẵn làm hàm heuristic để đánh các kết quả tìm được sau khi hoán vị, ta có thể tiến hành tìm kiếm trước theo n bước, chọn kết quả tối ưu nhất trong các kết quả tìm được tiến hành tiếp tục tìm kiếm. Nhưng trở ngại lớn nhất là vấn đề thời gian, ta có nhiều cách giải quyết như tạo nhiều quá trình tiến hành tìm kiếm và đánh giá song song trên nhiều máy.

Các ý tưởng trên hoàn toàn có thể thực hiện được do hiện nay đã có một số giải thuật hỗ trợ việc tìm kiếm trên không gian trạng thái như TABU SEARCH, BEST FIRST SERCH… Ngoài ra, các việc tạo nhiều quá trình chạy song song trên nhiều máy cũng được hỗ trợ rất nhiều, đặc biệt là trên các hệ thống cơ sở dữ liệu phân bố.

Một phần của tài liệu Phân hệ xếp lịch thi (Trang 35 - 37)