Điều chỉnh và phát hành PHẦN 2: BÀI TOÁN Bài toán xếp thời khóa biểu là quá trình xếp lịch cho các lớp môn học dựa trên nguồn tài nguyên hạn hẹp của trường thỏa mãn những ràng buộc đã đư
Trang 1ĐỒ ÁN MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP
GIẢI QUYẾT VẤN ĐỀ
XÂY DỰNG GIẢI PHÁP LẬP THỜI KHÓA BIỂU TẠI TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM
GVHD : PGS TS Đỗ Văn Nhơn HVTH : Lê Thành Nguyên
MSHV : CH1301102
TP HCM, Tháng 09 năm 2014
Trang 2MỤC LỤC i
DANH MỤC BẢNG ii
DANH MỤC HÌNH iii
PHẦN 1: MỞ ĐẦU 1
PHẦN 2: BÀI TOÁN 2
2.1 Đặc điểm và khó khăn khi giải bài toán 3
2.1.1 Ràng buộc cứng 3
2.1.2 Ràng buộc mềm 4
PHẦN 3: GIẢI PHÁP LẬP THỜI KHÓA BIỂU 6
3.1 Dữ liệu cho trước 6
3.2 Dữ liệu đầu vào 6
3.3 Dữ liệu kết quả 7
3.4 Giải thuật lập thời khóa biểu 7
3.4.1 Các định hướng 7
3.4.2 Giải thuật 8
3.4.3 Độ phức tạp giải thuật 9
PHẦN 4: THỰC NGHIỆM 11
4.1 Dữ liệu thực nghiệm 11
4.2 Giao diện chương trình 14
4.3 Đánh giá 18
4.3.1 Thời gian thực thi 18
4.3.2 Tính hiệu quả 18
4.3.3 Hạn chế 18
TÀI LIỆU THAM KHẢO 19
PHỤ LỤC 20
Trang 3Bảng 1 Cấu trúc bảng semester 11
Bảng 2 Cấu trúc bảng dữ liệu department 11
Bảng 3 Cấu trúc bảng dữ liệu building 11
Bảng 4 Cấu trúc bảng dữ liệu room 12
Bảng 5 Cấu trúc bảng dữ liệu course 12
Bảng 6 Cấu trúc bảng dữ liệu lecturer 12
Bảng 7 Cấu trúc bảng dữ liệu clazz 13
Bảng 8 Cấu trúc bảng assignment 13
Bảng 9 Cấu trúng bảng meeting 13
Trang 4Hình 1 Quy trình xếp TKB tại trường ĐH TNMT TP.HCM 2
Hình 2 Giao diện quản lý giảng đường 14
Hình 3 Giao diện quản lý lớp 15
Hình 4 Giao diện quản lý giảng viên 15
Hình 5 Giao diện quản lý môn học 16
Hình 6 Giao diện quản lý lịch bận giảng viên 16
Hình 7 Giao diện quản lý danh sách phân công giảng dạy 17
Hình 8 Giao diện quản lý thời khóa biểu 17
Trang 5PHẦN 1: MỞ ĐẦU
Nước ta đang thực hiện công cuộc công nghiệp hóa hiện đại hóa nhằm thúc đẩy nền kinh tế phát triển mạnh mẽ Trong quá trình này, vai trò nền tảng của giáo dục, đặc biệt là giáo dục Đại học đã được xã hội ghi nhận và phát huy Từ đó, nhiệm vụ giáo dục
và cấu trúc quản lý của hệ thống đào tạo đại học đang đối mặt với một thử thách to lớn trước sự tăng trưởng theo cấp số nhân của số lượng sinh viên và yêu cầu ngày càng cao của xã hội
Để đáp ứng nhu cầu trên, hệ thống đào tạo theo tín chỉ đã ra đời và được hầu hết các trường đại học trong cả nước áp dụng Song song đó đã phát sinh hàng loạt những thách thức trước yêu cầu thay đổi cơ sở hạ tầng quản lý Trong đó, việc xếp thời khóa biểu và chương trình xếp thời khóa biểu môn học là một trong những yêu cầu không thể thiếu trong hệ thống đào tạo theo học chế tín chỉ.
Trường Đại học Tài nguyên và Môi trường TP Hồ Chí Minh không phải là ngoại
lệ, được nâng cấp từ trường Cao đẳng Tài nguyên và Môi trường TP Hồ Chí Minh với cơ
sở hạ tầng quản lý đào tạo áp dụng cho hệ niên chế Theo xu thế phát triển chung, trường
đã áp dụng hệ thống học chế tín chỉ, tuy nhiên, hệ thống phần mềm quản lý đào tạo chưa được nâng cấp kịp thời gây khó khăn nhất định trong công tác quản lý, đặc biệt là công tác lập và quản lý thời khóa biểu giảng dạy Với số lượng sinh viên ngày càng tăng gây sức ép lớn trong phân bổ nguồn tài nguyên và sẽ rất khó khăn nếu xếp lịch thủ công
Như chúng ta đã biết việc xếp thời khóa biểu theo phương pháp thủ công của con người phải tốn rất nhiều thời gian và công sức,… nhưng hiệu quả đem lại không cao Chính vì điều đó đã thu hút nhiều nhà khoa học, các chuyên gia đã nghiên cứu ứng dụng khoa học máy tính vào việc xếp thời khóa biểu cho các trường đại học, cao đẳng, phổ thông…và đã đạt được một kết quả thỏa mãn nhất định Tuy nhiên, mỗi trường có những đặc thù về quy trình công việc, cơ sở vật chất,…cần giải quyết khác nhau.
Từ những khó khăn trên, đề tài này đã được thực hiện từ tháng 12/2013 nhằm đưa
ra giải pháp lập thời khóa biểu tự động và phát triển ứng dụng lập thời khóa biểu học kỳ đáp ứng nhu cầu đào tạo cũng như tối ưu hóa việc sử dụng tài nguyên hạn hẹp hiện có của nhà trường.
Trang 6B1 Phân công giảng dạy B2 Tổng hợp phân công giảng dạy
B3 Lập kế hoạch bố trí buổi B4 Xếp thời khóa biểu
B5 Lấy ý kiến GV B6 Điều chỉnh và phát hành
PHẦN 2: BÀI TOÁN
Bài toán xếp thời khóa biểu là quá trình xếp lịch cho các lớp môn học dựa trên nguồn tài nguyên hạn hẹp của trường thỏa mãn những ràng buộc đã đưa ra Tài nguyên
của trường ở đây có thể hiểu: phòng học, lớp học, giảng viên, ca học… Tại trường ĐH
Tài nguyên và Môi trường TP.HCM quy trình xếp thời khóa biểu được thực hiện như sơ
đồ ở Hình 1, được tiến hành qua các bước sau:
B1: Vào cuối mỗi học kỳ, Phòng Đào tạo sẽ thông báo đến các Khoa/Bộ môn chuyên ngành lập bảng phân công giảng dạy học kỳ tiếp theo dựa vào kế hoạch đào tạo
và chương trình khung của từng ngành đã được Hiệu trưởng phê duyệt, gửi về Phòng Đào tạo.
B2: Phòng Đào tạo tổng hợp bảng phân công giảng dạy nhận được.
B3: Dựa vào bảng phân công giảng dạy Phòng Đào tạo sẽ lập kế hoạch bố trí buổi học cho từng ngành/ chuyên ngành nhằm phân phối đều tài nguyên vào từng buổi.
B4: Phòng Đào tạo tiến hành xếp thời khóa biểu dựa trên bảng phân công giảng dạy và kế hoạch bố trí buổi.
B5: Phòng Đào tạo gửi thời khóa biểu đã lập về các khoa/ bộ môn lấy ý kiến giảng viên.
B6: Điều chỉnh lịch dạy theo yêu cầu giảng viên (nếu có thể) và phát hành thời khóa biểu chính thức.
Hình 1 Quy trình xếp TKB tại trường ĐH TNMT TP.HCM
Trang 7Trong chuyên đề này sẽ tập trung giải quyết công việc tại bước 4, trong đó sẽ tìm giải pháp cho các vấn đề gặp phải trong quá trình xếp thời khóa biểu tự động, tối ưu hóa thời khóa biểu Bài toán xếp thời khóa biểu có thể xem là bài toán tối ưu hóa nhằm thỏa mãn các ràng buộc trong quá trình lập lịch
2.1 Đặc điểm và khó khăn khi giải bài toán
Trong việc xếp thời khóa biểu có thể chia thành hai loại ràng buộc: ràng buộc cứng và ràng buộc mềm Ràng buộc cứng là các ràng buộc phải được thỏa mãn Ràng buộc mềm, tuy có thể vi phạm, nhưng càng thỏa mãn nhiều ràng buộc mềm càng tốt.
Như đã biết việc xếp thời khóa biểu theo phương pháp thủ công của con người phải tốn rất nhiều thời gian và công sức,… nhưng hiệu quả đem lại không cao Vì vậy, nhiều nghiên cứu khoa học và thực tiễn đã tập trung nghiên cứu ứng dụng khoa học máy tính vào việc xếp thời khóa biểu cho các trường đại học, cao đẳng, phổ thông…và đã đạt được một kết quả nhất định Nhưng do mỗi trường có những đặc thù về quy trình công việc, cơ sở vật chất,…cần giải quyết khác nhau và hầu như không có ngoại lệ.
Do đó, để thực hiện được công việc này với kết quả khả thi, chúng ta phải dựa trên tập các ràng buộc cứng và ràng buộc mềm cũng như yêu cầu về quản lý của mỗi trường đại học Với tính đa dạng của bài toán lập thời khóa biểu, hiện nay, vẫn chưa có giải pháp
cụ thể, hiệu quả giải quyết vấn đề này Thuật giải đơn giản nhất có thể xây dựng dựa trên phép vét cạn với độ phức tính toán rất cao Do đó, đối với mỗi trường hợp cụ thể, chúng
ta phải nghiên cứu xây dựng giải pháp tối ưu nhất phù hợp với yêu cầu quản lý của từng đơn vị
Nội dung tiếp theo sẽ đề cập các ràng buộc trong quá trình xếp thời khóa biểu tại trường Đại học Tài nguyên và Môi trường TP.HCM.
Ràng buộc là những yêu cầu hay điều kiện phải xem xét và thỏa mãn trong quá trình xếp thời khóa biểu Trong nhiều nghiên cứu về lập lịch, các tác giả thường phân các ràng buộc thành hai loại: ràng buộc cứng và ràng buộc mềm.
2.1.1 Ràng buộc cứng
Ràng buộc cứng được định nghĩa là các yêu cầu, điều kiện trong quá trình xếp thời khóa biểu không được vi phạm Thời khóa biểu áp dụng tại trường Đại học Tài nguyên và Môi trường TP.HCM có một số ràng buộc cứng như sau:
Ràng buộc về thời gian:
Trang 8 Thời gian dạy và học trong thời khóa biểu phải đảm bảo thời lượng của môn học được quy định trong chương trình đào tạo.
Lịch dạy không được trùng với lịch bận giảng viên đã thông báo trước.
Một giảng viên không được dạy quá n ca/ngày.
Một sinh viên không được học quá m ca/ngày.
Trong cùng một thời điểm không thể xảy ra một trong các trường hợp sau:
Một phòng được bố trí cho hai môn học khác nhau.
Một giảng viên được bố trí dạy ở hai phòng khác nhau.
Một sinh viên được bố trí học ở hai phòng khác nhau.
Ràng buộc về không gian:
Phòng học được bố trí phải đảm bảo đủ chỗ ngồi cho sinh viên trong lớp.
Trong một ngày, không được bố trí một giảng viên dạy ở cả hai cơ sở khác nhau (Trường ĐH Tài nguyên và Môi trường có hai cơ sở đào tạo, trụ sở tại địa chỉ 236B Lê Văn Sỹ, Phường 1, Quận Tân Bình TP.HCM và cơ sở 2 tại ấp Long Đức 3, xã Tam Phước, TP Biên Hòa, Đồng Nai).
2.1.2 Ràng buộc mềm
Ràng buộc mềm được hiểu như là các yêu cầu, điều kiện hạn chế vi phạm trong quá trình lập thời khóa biểu Ràng buộc mềm cho thời khóa biểu tại trường Đại học Tài nguyên và Môi trường TP.HCM có thể được liệt kê như sau:
Ràng buộc về thời gian:
Lịch dạy/học của một giảng viên/sinh viên phải liên lục trọn trong một buổi, không có ca trống xen giữa.
Hạn chế bố trí những ca đơn trong nhiều ngày.
Hai ca học của một một môn học dành cho một lớp không nên bố trí trong cùng một ngày.
Lịch học của một sinh viên hạn chế những ngày học cả hai buổi.
Nhằm tối ưu về thời gian rãnh của giảng viên cũng như sinh viên, nên bố trí lịch mới sao cho thời gian bận chung thay đổi ít nhất.
Ràng buộc về không gian:
Hạn chế di chuyển xa khi giảng viên/sinh viên đổi ca.
Hạn chế những ngày giảng viên dạy xen kẽ ở hai cơ sở.
Phòng học phải được sử dụng với tần suất cao nhất và tối ưu sức chứa.
Trang 9 Hạn chế bố trí phòng ở tầng cao cho giảng viên lớn tuổi.
Trang 10PHẦN 3: GIẢI PHÁP LẬP THỜI KHÓA BIỂU 3.1 Dữ liệu cho trước
Tập hợp học kỳ:
SM = {(id, startWeek, numberWeek, numberDay, numberSession)}.
Tập hợp khu giảng đường:
CL = {(id, name, level, studentNum, year, dept) | dept DP}.
Tập các ràng buộc CT, trong đó ct có dạng hàm hoặc luật.
3.2 Dữ liệu đầu vào
Đầu vào của quá trình xếp thời khóa biểu là bảng phân công giảng dạy trong học
kỳ Sau khi nhập vào hệ thống sẽ được tập AM
AM = {(id, course, class, lecturer, semester) | course CR class CL lecturer
LT semester SM}.
Từ tập AM, trải qua bước tiền xử lý tạo tập MT là các ca học chưa xếp lịch Quá trình này được thực hiện thủ công qua giao diện của chương trình Dựa vào kế hoạch phân chia buổi học cho từng ngành, người dùng sẽ chỉ định phân công nào diễn ra trước, phân công nào diễn ra sau và trong khoảng thời gian bao lâu Dựa vào khoảng thời gian
Trang 11diễn ra và thời lượng của từng môn học, chương trình sẽ tạo ra số lượng ca phù hợp hoàn tất việc dạy và học và được tập MT.
MT = {(id, assignment, startWeek, numberWeek, day, session, room) | assignment
AM room = null startWeek + numberWeek < assignment.semester.numberWeek }
Tập MT là tập đầu vào của quá trình xếp thời khóa biểu và |MT| |AM|.
3.3 Dữ liệu kết quả
Khi quá trình xếp lịch hoàn tất ta sẽ nhận được thời khóa biểu đã được bố trí thời gian và phòng học đầy đủ.
MT = {(id, assignment, startWeek, numberWeek, day, session, room) | room
RM day < assignment.semester.numberDay session < assignment.semester numberSession}
Tập MT được gọi là thời khóa biểu hợp lệ khi:
mt MT, mt đã được bố trí thời gian và phòng học sao cho:
Có duy nhất một ca được bố trí tại phòng được xếp cho mt trong khoảng thời gian ca mt diễn ra.
Các giảng viên/lớp liên quan có duy nhất một ca trong khoảng thời gian ca
mt diễn ra.
3.4 Giải thuật lập thời khóa biểu
Đối với bài toán lập thời khóa biểu, giải pháp thông thường là xem xét tất cả các trường hợp có xảy ra của một ca học và thiết lập thời gian, phòng học cho chúng Quá trình này nhanh hay chậm phụ thuộc số lượng ràng buộc của bài toán Chính quá trình này dẫn đến độ phức tạp của giải thuật có dạng O(nk * numberDay * numberSession), trong đó, n = |MT| và k =|CT| Tuy nhiên, giải thuật vét cạn cho kết quả không tốt.
Tuy nhiên, nếu quá trình trên được thực hiện theo một định hướng tốt, kết quả đạt được có nhiều thay đổi đáng kể nâng cao chất lượng lời giải Do đó, chuyên đề này sẽ ứng dụng giải thuật heuristic xây dựng giải pháp xếp thời khóa biểu cho trường Đại học Tài nguyên và Môi trường
3.4.1 Các định hướng
Ưu tiên xếp lịch cho các ca có thời gian dài trước, thời gian ngắn sau.
Ưu tiên xếp lịch cho các ca bắt đầu sớm trước, muộn sau.
Trang 12Ưu tiên xếp lịch cho các ca có giảng viên/ lớp có thời gian rãnh ít trước, nhiều sau.
Ưu tiên xếp lịch cho các ca có số lượng sinh viên lớn trước nhỏ sau.
Ưu tiên xếp lịch cho các ca có độ xung đột về giảng viên/lớp cao trước, thấp sau Chọn ca có xung đột về lớp/giảng viên với ca đã xếp lịch trước đó nếu hai ca này thuộc một buổi trong ngày.
Không chọn ca có giảng viên/lớp đang bận.
Không chọn ca có yêu cầu phòng đã được sử dụng hết.
Không chọn ca ở cơ sở này của giảng viên có ca được bố trí ở cơ sở khác.
Hạn chế chọn ca có giảng viên/lớp có thời gian dạy/học trong ngày vượt thời gian cho phép.
Ưu tiên chọn phòng có khoảng cách gần phòng của phân ca trước đó.
3.4.2 Giải thuật
function scheduling(MT)
1 Chọn tuần bắt đầu w nhỏ nhất trong tập MT.
//Duyệt tất cả các ngày trong tuần có thể xếp lịch
for (day = 0; day < numberDay; day ++){
//Duyệt tất cả các ca trong ngày
for (session = 0; session < numberSession; session ++){
2 M = {mt | mt MT tuần bắt đầu của mt = w}.
3 Tính độ xung đột giữa các phần tử trong M.
4 Tính độ ưu tiên cho các mt M
5 Sắp xếp M độ ưu tiên tăng dần
while (vẫn con ca có độ ưu tiên > 0 or |M| > 0){
6 Chọn mt có độ ưu tiên cao nhất.
}
12 Chọn tuần bắt đầu w tiếp theo trong tập MT.
Trở về bước 2.
Trang 13//Tính độ xung đột giảng viên, lớp
if (M[i].clazz == M[j].clazz){
conflictClazz[i][j] = true ; conflictClazz[j][i] = true ; }
} } }
}
//Tính độ ưu tiên cho mt
function computeScore(mt, day, session){
2 Tính độ ưu tiên cho từng phòng trong RM’.
3 Sắp xếp RM’ theo độ ưu tiên tăng dần.
4 Chọn phòng rm có độ ưu tiên cao nhất.
}
3.4.3 Độ phức tạp giải thuật
Dòng 1, mỗi học kỳ được chia không quá 3 đợt học, do đó, độ phức tạp tính toán ở bước này là 3lg3 + 1 = lg33 + lg2 = lg54.
Trang 14 Dòng 2, là phép duyệt và kiểm tra phần tử tập hợp có độ phức tạp tính toán: |MT|.
Giải thuật thực hiện 1 lần dòng 1, numberDay * numberSession lần các dòng 2, 3, 4, 5 và
|MT| lần các dòng 6, 7, 8, 9, 10, 11 Trong đó, numberDay = 5 và numberSession = 6 Suy ra: T = lg54 + 30 * (|MT| + |M|2 + |M||CT| + |M|lg|M|)
+ |MT| (2|RM| + 14 + 11lg|M|) = lg54 + 44|MT| + 30|M|2 + 30|M|(|CT| +lg|M|)
+ 2|MT||RM| + 11|MT|lg|M|
< |MT|2 + 44|MT|2 + 30|MT|2 + 30|MT|2 + 2|MT|2 + 11|MT|2 < 118|MT|2
Kết luận, độ phức tạp thời gian của thuật toán xếp thời khóa biểu áp dụng heuristic
có độ phức tạp O(n2) với n là kích thước tập ca học cần xếp lịch.
Trang 15PHẦN 4: THỰC NGHIỆM 4.1 Dữ liệu thực nghiệm
Dữ liệu đầu vào cho phần mềm xếp thời khóa biểu là các bảng được lưu trữ trên tập tin định dạng Microsoft Excel, gồm các bảng phòng ban/Khoa/Bộ môn, giảng đường, phòng học, môn học, giảng viên, lớp và phân công giảng dạy Dữ liệu này được import vào hệ thống và được lưu trữ trong cơ sở dữ liệu
Cấu trúc các bảng trong cơ sở dữ liệu được mô tả chi tiết bên dưới.
Lưu trữ thông tin học kỳ đã lập thời khóa biểu
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Số nguyên dương Yes
Year Năm bắt đầu học kỳ Số nguyên dương No
StartWeek Tuần bắt đầu học kỳ Số nguyên dương No
NumberWeek Số tuần học trong học kỳ Số nguyên dương No
NumberDay Số ngày học/tuần Số nguyên dương No
NumberSessio
n
Số ca học/ngày Số nguyên dương No
Bảng 1 Cấu trúc bảng semester
Lưu trữ thông tin phòng ban/Khoa/ Bộ môn
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Trường khóa chính Số nguyên dương No
Name Tên phòng ban/ Khoa/ Bộ môn Chuỗi No
Bảng 2 Cấu trúc bảng dữ liệu department
Lưu trữ thông tin giảng đường
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Trường khóa chính Số nguyên dương Yes
Name Tên giảng đường Chuỗi No
Bảng 3 Cấu trúc bảng dữ liệu building
Lưu trữ thông tin phòng học
Trang 16Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Trường khóa chính Số nguyên dương Yes
Name Tên phòng học Chuỗi No
Capacity Sức chứa Số nguyên dương No
Type Loại phòng học LT/TH Boolean No
Building Mã giảng đường Số nguyên dương No
Floor Tầng cao Số nguyên dương No
DeptID Mã khoa quản lý phòng Số nguyên dương No
Bảng 4 Cấu trúc bảng dữ liệu room
Lưu trữ thông tin môn học
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Chuỗi No
Name Tên môn học Chuỗi No
LT Số tín chỉ lý thuyết Số nguyên dương No
BT Số tín chỉ bài tập Số nguyên dương No
TH Số tín chỉ thực hành Số nguyên dương No
Level Hệ đào tạo Số nguyên dương No
DeptID Mã khoa quản lý môn học Số nguyên dương No
Bảng 5 Cấu trúc bảng dữ liệu course
Lưu trữ thông tin giảng viên
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Chuỗi No
Name Họ tên giảng viên Chuỗi No
BirthYear Năm sinh Số nguyên dương No
Sex Giới tính Boolean No
DeptID Mã khoa quản lý giảng viên Số nguyên dương No
Bảng 6 Cấu trúc bảng dữ liệu lecturer
Lưu trữ thông tin lớp quản lý
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Số nguyên dương Yes
Name Tên lớp Chuỗi No
StudentNu Sỉ số Số nguyên dương No
Trang 17Year Năm nhập học Số nguyên dương No
Level Hệ đào tạo Số nguyên dương No
DeptID Khoa quản lý lớp Số nguyên dương No
Bảng 7 Cấu trúc bảng dữ liệu clazz
Lưu trữ thông tin bảng phân công giảng dạy
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Số nguyên dương Yes
CourseId Mã môn học được phân công Số nguyên dương No
ClazzId Mã lớp được phân công Số nguyên dương No
StudentNu
m
Số sinh viên đăng ký Số nguyên dương No
LecturerID Mã GV được phân công Chuỗi No
SemesterID Mã học kỳ Số nguyên dương No
Bảng 8 Cấu trúc bảng assignment
Lưu trữ thông tin bảng ca học
Tên trường Mô tả Kiểu dữ liệu Tự phát sinh
ID Khóa chính Số nguyên dương Yes
AssignmentI
D Mã phân công giảng dạy Số nguyên dương No
StartWeek Tuần bắt đầu học Số nguyên dương No
Day Thứ trong tuần Số nguyên dương No
Session Ca trong ngày Chuỗi No
RoomID Mã phòng học Số nguyên dương No
Bảng 9 Cấu trúng bảng meeting
Do chương trình được sử dụng trong xếp và quản lý lịch giảng dạy của toàn trường Dữ liệu này được lưu trữ phục vụ công tác tra cứu khối lượng giảng dạy của giảng viên và các yêu cầu quản lý khác Do đó, dữ liệu liên tục tăng trong thời gian thực
sẽ ảnh hưởng tốc độ thực thi của toàn hệ thống và khó khăn trong bảo trì và cập nhật dữ liệu.
Trang 18Nhằm cải thiện hiệu suất của chương trình, cơ sở dữ liệu được chia thành 2 phần: phần dữ liệu dùng chung cho các năm học (dữ liệu có trước) sẽ được lưu trữ trong
schema public gồm các bảng dữ liệu chứa thông tin của dữ liệu có trước được mô tả
trong phần 3 , phần dữ liệu phân công giảng dạy và thời khóa biểu sẽ được lưu trong các schema khác nhau – mỗi schema chứa dữ liệu xếp thời khóa biểu của một năm học.
4.2 Giao diện chương trình
Chương trình lập thời khóa biểu tại trường Đại học Tài nguyên và Môi trường TP HCM đã phát triển dựa trên ngôn ngữ lập trình Java, cơ sở dữ liệu được quản lý bởi hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL Chương trình đã cung cấp khá đầy đủ các chức năng quản lý dữ liệu và thời khóa biểu bao gồm các chức năng nhập liệu, xuất
dữ liệu, lọc và sắp xếp dữ liệu theo yêu cầu tác nghiệp của người dùng Ngoài ra, thời khóa biểu có thể được xuất theo nhiều mẫu gồm: thời khóa biểu toàn bộ, thời khóa biểu theo khoa/Bộ môn, thời khóa biểu theo lớp hay thời khóa biểu cá nhân dành cho giảng viên,…
Hình 2 Giao diện quản lý giảng đường
Trang 19Hình 3 Giao diện quản lý lớp
Hình 4 Giao diện quản lý giảng viên
Trang 20Hình 5 Giao diện quản lý môn học
Hình 6 Giao diện quản lý lịch bận giảng viên
Trang 21Hình 7 Giao diện quản lý danh sách phân công giảng dạy
Hình 8 Giao diện quản lý thời khóa biểu
Trang 224.3 Đánh giá
Giải pháp xếp thời khóa biểu học kỳ tại trường Đại học Tài nguyên và Môi trường
TP HCM đã được sử dụng trong xếp lịch dạy và học từ học kỳ II năm học 2013 – 2014 ghi nhận được kết quả như sau:
4.3.1 Thời gian thực thi
Giải pháp này được phát triển từ giải thuật heuristic và không xây dựng giải pháp đối chứng do đó không thể kết luận giải pháp này hiệu quả hơn giải pháp khác về mặt thời gian.
Tuy nhiên, thời gian thực thi trung bình trong khoảng 01 giờ với một kết quả khả quan so với quá trình lập lịch thủ công là một ghi nhận đáng quan tâm.
Ngoài ra, hệ thống có thể đáp ứng các yêu cầu quản lý khác: cung cấp lịch bận phòng học, lớp quản lý, kê khai khối lượng giảng dạy,… đã giảm được khối lượng lớn công việc thủ công.
4.3.3 Hạn chế
Dữ liệu phục vụ quá trình xếp thời khóa biểu tương đối lớn, không thể nạp toàn bộ vào bộ nhớ máy tính Do đó, hầu hết các kiểm tra luật trong thời gian thực thi phải truy xuất vào cơ sở dữ liệu là nguyên nhân chính ảnh hưởng đến tốc độ chương trình.
Trong quá trình xếp thời khóa biểu, người dùng phải tính toán thủ công để lập kế hoạch phân buổi học cho từng ngành.
Thời khóa biểu lập được vẫn còn một lượng nhỏ ca học không thể xếp lịch, phần này phải được điều thủ công.
Trang 23TÀI LIỆU THAM KHẢO
[1] Bài giảng Thuật toán và phương pháp giải quyết vấn đề – PGS TS Đỗ Văn Nhơn - Đại học Quốc Gia Thành Phố Hồ Chí Minh.
[2] Nguyễn Chí Trung, Nguyễn Thị Thu Thủy(2010), “Phân tích thiết kế thuật toán và đánh giá độ phức tạp giải thuật”, Đại học sư phạm Hà Nội.
Trang 24PHỤ LỤC
Phụ lục 1 Danh sách phòng ban/ Khoa/ BM
MÃ KHOA/BM TÊN KHOA/BM MÃ KHOA/BM TÊN KHOA/BM
Phụ lục 2 Danh sách giảng viên xếp thời khóa biểu
Trang 25MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
Trang 26MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
Trang 27MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
Trang 28MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
Trang 29Phụ lục 3 Danh sách phòng học xếp thời khóa biểu
TÊN PHÒNG
Trang 30Phụ lục 4 Danh sách môn học xếp thời khóa biểu
Trang 31MÃ MH TÊN MH L SỐ TC H Ệ KHOA/BM
T
B T
T H