Tải bản đầy đủ (.docx) (63 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 63 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ Á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
MỤC LỤC
2
DANH MỤC BẢNG
3
DANH MỤC HÌNH
4
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
PHẦ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.
5
B1. 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ổiB4. Xếp thời khóa biểu
B5. Lấy ý kiến GV B6. Điều chỉnh và phát hành
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
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.
6
Hình 1. Quy trình xếp TKB tại trường ĐH TNMT TP.HCM
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Trong 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:
7
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Ràng buộc về thời gian:
− 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.
− Hạn chế bố trí phòng ở tầng cao cho giảng viên lớn tuổi.
8
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
9
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
PHẦ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:

BD = {(id, name)}.
− Tập hợp Phòng/Khoa/Bộ môn:
DP = {(id, name)}.
− Tập hợp phòng học:
RM = {(id, name, capacity, floor, building, dept) | building ∈ BD ∧ dept ∈ DP}.
− Tập hợp môn học:
CR = {(id, name, theory, exercises, practice, level, dept) | dept ∈ DP}.
− Tập hợp giảng viên:
LT = {(id, name, birthyear, sex, dept) | dept ∈ DP}.
− Danh sách lớp quản lý:
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
10
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
diễ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(n
k
* 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.
11
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Ư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.
if( độ ưu tiên > 0){
7. Chọn phòng rm cho mt
8. Thiết lập thời gian cho mt.
9. Cập nhật phòng cho mt.
10. Xóa mt khỏi tập M và MT
11. Xóa các ca có xung đột với mt
}
}
}

12.Chọn tuần bắt đầu w tiếp theo trong tập MT.
12
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Trở về bước 2.
//Tính độ xung đột giảng viên, lớp
function computeConflict(MT){
for(i= 0, i < |MT|, i++){
for(j =0; j < |MT|, j++){
if(I <> j){
if(M[i].lecturer = M[j].lecturer){
conflictLecturer[i][j] = true;
conflictLecturer[j][i] = true;
}
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){
//Duyệt tập ràng buộc cứng
for(hct in HCT){
score *= hct(mt, day, sesion) * w
hct
;
}
//Duyệt tập ràng buộc mềm

for(sct in SCT){
score += sct(mt, day, session) * w
sct
;
}
}
//Chọn phòng cho mt
function selectRoom(mt){
1. RM’ = {các phòng khả dụng}.
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.
}
13
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
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 = lg3
3
+ lg2 = lg54.
− 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|.
− Dòng 3, có độ phực tạp tính toán: |M|
2
.
− Dòng 4, có độ phức tạp tính toán: thực hiện |CT| phép kiểm tra luật trên tập ràng
buộc cho mỗi ca: |M| * |CT|.
− Dòng 5, có độ phức tạp tính toán |M|lg|M|.
− Dòng 6: chọn một phần tử trong tập hợp, có độ phức tạp 1.
− Dòng 7, có độ phức tạp tính toán: 2|RM|.
− Dòng 8, 9, 10, 11, có độ phức tạp tính toán: thực hiện 2 phép gán giá trị, 1 phép

tìm kiếm mt trên M, 1 phép xóa và 10 phép tìm ca xung đột với mt và 10 phép
xóa: 13 + 11lg|M| (10 là số ca tối đa xung đột với 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(n

2
) với n là kích thước tập ca học cần xếp lịch.
14
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
PHẦ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
15
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyê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 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
16
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
m
Year 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.
17
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Nhằ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
18
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên

Hình 3. Giao diện quản lý lớp
Hình 4. Giao diện quản lý giảng viên
19
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Hì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
20
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
Hì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
21
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
4.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.
4.3.2. Tính hiệu quả
Thời khóa biểu nhận được hoàn toàn thỏa mãn yêu cầu tại trường Đại học Tài
nguyên và Môi trường, với các ưu điểm:
− Đã tăng hiệu suất sử dụng phòng học (từ <50% khi xếp lịch bằng tay lên >90% khi
xếp lịch tự động).
− Đáp ứng được đa số yêu cầu của giảng viên, tối ưu hóa thời gian lên lớp của giảng
viên cũng như của sinh viên (thỏa mãn đa số ràng buộc mềm cho sinh viên và một
phần cho giảng viên).

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.
22
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
TÀ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.
23
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
PHỤ 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
2 Phòng Tổ chức Cán bộ 3 Phòng Đào tạo
4 Phòng Khảo thí & ĐBCL 5 Phòng Thanh tra
6 Phòng Quản lý NCKH 7 Phòng Kế hoạch tài chính
8 Phòng Công tác học sinh sinh viên 9 Phòng Quản trị vật tư
11 Khoa Khoa học Đại cương 12 Khoa Lý luận chính trị
13 Khoa Khí tượng thủy văn – Tài nguyên nước 14 Khoa Môi trường
15 Khoa Quản lý đất đai 16 Khoa Trắc địa – Bản đồ

17 Khoa Công nghệ thông tin 18 Khoa Kinh tế tài nguyên thiên nhiên
19 Khoa Địa chất 20 Bộ môn GDTC - QPAN
Phụ lục 2. Danh sách giảng viên xếp thời khóa biểu
MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
14.11 Nguyễn Vĩnh An 1980 Nam 14
19.10 Nguyễn Quốc Khương Anh 1980 Nữ 19
15.17 Nguyễn Đức Anh 1980 Nam 15
13.07 Vũ Thị Vân Anh 1980 Nữ 13
14.17 Bùi Khánh Vân Anh 1980 Nữ 14
14.04 Trần Quốc Bảo 1980 Nam 14
17.07 Nguyễn Văn Bạo 1980 Nam 17
16.10 Nguyễn Danh Cần 1980 Nam 16
17.13 Khưu Minh Cảnh 1980 Nam 17
07.01 Nguyễn Duy Châu 1980 Nam 7
11.38 Lại Hoài Châu(TG) 1980 Nữ 11
15.18 Lê Minh Chiến 1980 Nam 15
01.02 Huỳnh Chức 1980 Nam 1
14.14 Nguyễn Kim Chung 1980 Nữ 14
11.14 Hồ Văn Công 1980 Nam 11
15.06 Nguyễn Văn Cương 1980 Nam 15
14.15 Nguyễn Huy Cương 1980 Nam 14
01.04 Vũ Xuân Cường 1980 Nam 1
15.02 Nguyễn Hữu Cường 1980 Nam 15
19.07 Trần Đức Dậu 1980 Nam 19
12.09 Võ Đình Quyên Di 1980 Nữ 12
14.27 Lê Thị Ngọc Diễm 1980 Nữ 14
11.11 Hà Anh Đông 1980 Nam 11
20.03 Đặng Duy Đồng 1980 Nam 20
12.11 Nguyễn Bá Đồng 1980 Nam 12
19.15 Đỗ Công Dự 1980 Nam 19

14.20 Nguyễn Đình Đức 1980 Nam 14
16.02 Nguyễn Hữu Đức 1980 Nam 16
11.22 Nguyễn Thành Đức 1980 Nam 11
11.33 Nguyễn Thị Như Dung 1980 Nữ 11
11.31 Nguyễn Lương Tuấn Dũng 1980 Nam 11
24
GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên
MÃ GV HỌ TÊN NĂM SINH GIỚI KHOA/BM
05.01 Nguyễn Tiến Dũng 1980 Nam 5
17.16 Võ Văn Tuấn Dũng 1980 Nam 17
16.14 Đào Mạnh Dũng 1980 Nam 16
11.40 Hồ Chí Dũng(TG) 1980 Nam 11
11.44 Phạm Tiến Dũng(TG) 1980 Nam 11
16.12 Đặng Văn Em 1980 Nam 16
14.41 Phạm Thị Thanh Hà 1980 Nữ 14
14.30 Đinh Thị Thu Hà 1980 Nữ 14
14.42 Hoàng Ngọc Hà 1980 Nam 14
14.02 Nguyễn Thị Vân Hà 1980 Nữ 14
16.19 Trịnh Ngọc Hà 1980 Nam 16
18.08 Đặng Bắc Hải 1980 Nam 18
11.46 Nguyễn Minh Hải(TG) 1980 Nam 11
14.19 Huỳnh Thị Ngọc Hân 1980 Nữ 14
14.05 Huỳnh Thị Ngọc Hân 1980 Nữ 14
11.23 Nguyễn Thị Thúy Hằng 1980 Nữ 11
11.13 Nguyễn Thanh Hằng 1980 Nữ 11
11.25 Nguyễn Thị Hằng 1980 Nữ 11
15.05 Huỳnh Thị Thanh Hạnh 1980 Nữ 15
19.14 Hoàng Thị Hồng Hạnh 1980 Nữ 19
15.03 Trần Mỹ Hảo 1980 Nam 15
20.07 Nguyễn Tiến Hảo 1980 Nam 20

14.09 Lê Đăng Hảo 1980 Nam 14
14.39 Nguyễn Thị Thu Hiền 1980 Nữ 14
11.27 Nguyễn Sỹ Hiệp 1980 Nam 11
15.08 Ngô Thị Hiệp 1980 Nữ 15
12.07 Võ Thị Hồng Hiếu 1980 Nữ 12
11.03 Phan Thị Hoa 1980 Nữ 11
12.02 Nguyễn Thị Hồng Hoa 1980 Nữ 12
19.09 Nguyễn Thị Thanh Hoa 1980 Nữ 19
18.07 Sử Thị Oanh Hoa 1980 Nữ 18
15.16 Hoàng Thị Thu Hoài 1980 Nữ 15
11.19 Trần Bá Lê Hoàng 1980 Nam 11
19.12 Nguyễn Kim Hoàng 1980 Nam 19
17.04 Huỳnh Thái Học 1980 Nam 17
14.10 Nguyễn Thị Hồng 1980 Nữ 14
19.05 Vũ Thị Thúy Hồng 1980 Nữ 19
16.09 Trần Văn Huân 1980 Nam 16
14.07 Dương Hồng Huệ 1980 Nữ 14
11.01 Lý Cẩm Hùng 1980 Nam 11
15.01 Trần Thanh Hùng 1972 Nam 15
19.17 Trần Phú Hưng 1980 Nam 19
11.20 Nguyễn Quang Hưng 1980 Nam 11
11.02 Nguyễn Thị Mai Hương 1980 Nữ 11
15.09 Nguyễn Thu Hương 1980 Nữ 15
11.28 Nguyễn Thị Thu Hương 1980 Nữ 11
12.01 Nguyễn Tiến Hữu 1980 Nam 12
16.13 Đỗ Công Hữu 1980 Nam 16
18.02 Nguyễn Bá Huy 1980 Nam 18
17.08 Nguyễn Quang Huy 1980 Nam 17
11.39 Phan Đông Huyền(TG) 1980 Nữ 11
25

×