Trong nghiên cứu này, chúng tôi đề xuất một giải thuật metaheuristic dạng quần thể là giải thuật di truyền để giải bài toán xếp thời khóa biểu trường phổ thông[r]
(1)ĐẠI HỌC SÀI GÒN OF SAIGON UNIVERSITY
Số 71 (05/2020) No 71 (05/2020)
Email: tcdhsg@sgu.edu.vn ; Website: http://sj.sgu.edu.vn/
ĐỀ XUẤT GIẢI THUẬT DI TRUYỀN GIẢI BÀI TỐN XẾP THỜI KHĨA BIỂU
Proposing a genetic algorithm to solve timetabling problem Nguyễn Hồ Thiên Đăng(1), Nguyễn Thị Hồng Bích(2),
Thái Minh Tân(3), TS Phan Tấn Quốc(4)
(1)Học viên cao học Trường Đại học Sài Gịn (2)Trường THPT Ngơ Quyền, Q.7, TP.HCM (3)Cơng ty TMA Solutions, TP.HCM (4) Trường Đại học Sài Gịn
TĨM TẮT
Việc xếp thời khóa biểu hợp lý tốn tối ưu có nhiều ứng dụng thực tế Được phân loại thuộc lớp NP-complete nghiên cứu rộng rãi hàng chục năm qua với hướng tiếp cận quy hoạch toán học, tối ưu dựa ràng buộc, tối ưu đa mục tiêu, giải thuật tham lam, giải thuật metaheuristic.v.v Nghiên cứu đề xuất sử dụng giải thuật di truyền để giải tốn xếp thời khóa biểu trường phổ thơng, loại tốn xếp thời khóa biểu phổ biến Nghiên cứu cài đặt thí nghiệm giải thuật đề xuất số liệu thực tế Kết thực nghiệm cho thấy giải thuật đề xuất cho kết tốt số phần mềm hỗ trợ xếp thời khóa biểu cho trường phổ thơng dựa trọng số số ràng buộc tốn
Từ khóa: thời khóa biểu, thời khóa biểu trường phổ thơng, giải thuật di truyền ABSTRACT
Timetabling problem is optimization problems that have many practical applications; this is the problem of class NP-complete Timetabling problem has been widely studied over the past decades with approaches such as mathematical programming, constraint-based approaches, multiobjective optimization, greedy algorithms, metaheuristic algorithms, etc In this study, we propose a genetic algorithm to solve a form of Timetabling problem that is the School Timetabling problem The proposed algorithm was conducted on some real data sets Experimental results claim that our algorithm results in better results than some of the current school Timetabling software based on some constraints of the problem
Keywords: genetic algorithm, timetabling problem, school timetabling
1 Giới thiệu
Bài toán xếp thời khóa biểu trường học (timetabling problem) tạo lịch phân công giảng dạy người dạy người học chu kỳ thời gian cố
định (thường theo tuần) cho thỏa mãn nhiều ràng buộc bài tốn Bài tốn xếp thời khóa biểu thuộc lớp tốn tối ưu NP-complete [1]
Bài tốn xếp thời khóa biểu biết
(2)đến rộng rãi với dạng sau: tốn xếp thời khóa biểu trường phổ thơng (school timetabling-STTP); tốn xếp thời khóa biểu trường đại học (course timetabling-CTTP); toán xếp lịch thi (examination timetabling-ETTP) [1]
Đã có nhiều cơng trình nghiên cứu bài tốn xếp thời khóa biểu dựa hướng tiếp cận giải thuật tô màu đồ thị, tiếp cận dựa ràng buộc, quy hoạch toán học, tối ưu đa mục tiêu, giải thuật tham lam [2], giải thuật metaheuristic [3], [4], [5], [6], [7]
Trong nghiên cứu này, đề xuất giải thuật metaheuristic dạng quần thể giải thuật di truyền để giải toán xếp thời khóa biểu trường phổ thơng với hy vọng khắc phục bẩy tối ưu cục so với metaheuristic dạng cá thể khác
2 Bài tốn xếp thời khóa biểu phổ thông
2.1 Một số khái niệm
Chu kỳ thời khóa biểu: chu kỳ thời khóa biểu số ngày mà thời khóa biểu cần xếp lịch, tính từ thứ Hai đến thứ Bảy.
Nhóm thời gian: nhóm thời gian tập hợp nhóm tiết chu kỳ thời khóa biểu; buổi sáng từ tiết đến tiết 5, buổi chiều từ tiết đến tiết 8, sau tiết đầu buổi học có giải lao Định dạng khn mẫu buổi học thông thường trường phổ thông sau: từ thứ Hai đến thứ Sáu, buổi lớp học đủ tiết; riêng thứ Bảy học hơn tuỳ theo tổng số tiết môn tuần, tổng số tiết thay đổi tuỳ học kỳ tuỳ khối lớp
Giáo viên: giáo viên phân công làm công tác chủ nhiệm lớp, giáo viên chủ nhiệm lớp phải phân cơng giảng dạy mơn học
của lớp đó; giáo viên dạy mơn học ngồi chun mơn chính, gọi công tác kiêm nhiệm
Lớp học: lớp học gồm tập học sinh học chung với tất môn học
Phạm vi tốn xếp thời khóa biểu đề cập nghiên cứu khối lớp 10, 11 12
Phòng học: với tốn xếp thời khóa biểu trường phổ thơng, lớp cấp cố định phòng học lý thuyết suốt năm học; phòng học có thêm thơng tin là phịng học lý thuyết hay phịng thực hành, thực nghiệm
Mơn học: có thể gọi mơn, khối lớp học kỳ có từ 13 đến 17 mơn; Mơn ngữ văn, thể dục, quốc phịng phải xếp tiết cặp khơng xếp tiết 2-3 sau tiết giải lao; Mơn tốn, tiếng Anh, Tin học khuyến khích xếp tiết cặp Các mơn xếp tiết cặp buổi không xếp cặp
Bảng phân công: bảng phân công
giảng dạy gồm tập phân công; phân công bao gồm thông tin giáo viên, lớp học, môn học, tổng số tiết môn học tuần
2.2 Ràng buộc toán xếp thời khóa biểu
Ràng buộc tốn xếp thời khóa biểu phân làm hai loại: ràng buộc cứng (hard constraints) ràng buộc mềm (soft constraints)
Ràng buộc cứng ràng buộc được quy định văn ngành Ví dụ mơn học cần xếp có tiếp cặp, buổi học lớp khơng có tiết lủng.v.v Ràng buộc cứng loại ràng buộc, vi phạm, trừ trường hợp bất khả kháng
(3)để làm tăng chất lượng thời khóa biểu Các ràng buộc mềm cần xếp thỏa mãn càng nhiều tốt Khi có nhiều ràng buộc mềm độ ưu tiên chúng là yếu tố cần xem xét
Ràng buộc cứng toán xếp thời khóa biểu phổ thơng
Ràng buộc đụng độ giáo viên (1): các
phân công giáo viên khơng xếp vào vị trí tiết học
Ràng buộc đụng độ lớp học (2): phân công lớp học khơng xếp vào vị trí tiết học
Ràng buộc đụng độ phịng học (3): mỗi phòng học xếp vào nhiều nhất phân cơng vị trí tiết học Việc đụng độ phịng học xảy các phịng thí nghiệm, thực hành, sân tập thể dục
Ràng buộc số tiết học liên tiếp tối thiểu số tiết học liên tiếp tối đa (4): thông số (1,2) toán STTP và điểm khác biệt so với toán CTTP Ở toán CTTP, số tiết học liên tiếp tối thiểu, tối đa (2,k) với 2 ≤ k ≤
Ràng buộc thời gian rảnh giáo
viên, lớp học, phòng học (5): các phân
công không vi phạm thời gian rảnh của giáo viên, lớp học, phòng học
Ràng buộc tính đầy đủ phân
công (6): tất phân công phải
được xếp thời khóa biểu Nếu giải thuật khơng xếp tất phân cơng cần gỡ dần ràng buộc mềm tiến hành lại việc xếp thời khóa biểu Một giải thuật xếp tất phân công không đồng nghĩa giải thuật tạo thời khóa biểu tốt
Ràng buộc phân công xếp sẵn (7): tiết xếp sẵn tiết ưu tiên xếp trước và tiết khác xếp sau tránh tiết xếp sẵn
Ràng buộc mơn học có tiết cặp
(8): một số môn học theo quy định bắt
buộc phải có tiết cặp để đáp ứng yêu cầu chuyên môn
Ràng buộc môn học học một lần buổi lớp (9): trong buổi học, mơn học có thể xuất nhiều lần (một tiết lẻ tiết cặp)
Ràng buộc tiết trống lớp theo buổi (10): tiết trống tiết không bố trí dạy học xen tiết học khác; thực tế thời khóa biểu lớp trường phổ thông cần được xếp cho khơng có tượng trống tiết
Ràng buộc tiết không xếp giáo
viên (11): tiết không xếp tiết theo quy
định ngành, sở giáo dục; thời khóa biểu giáo viên cần xếp tránh tiết khơng xếp này, ví dụ ngày sinh hoạt chuyên môn giáo viên xem tiết không xếp
Ràng buộc mềm tốn xếp thời khóa biểu phổ thơng
Ràng buộc lịch bận giáo viên (1): giáo viên có lịch bận riêng
Ràng buộc học cách ngày (2): nên xếp môn học học cách ngày tuần
Ràng buộc độ nén lịch dạy giáo viên (3): nên xếp lịch dạy giáo viên cho số buổi mà giáo viên dạy có thể; gọi n số buổi dạy giáo viên thì: n ≤ số tiết tuần giáo viên/5 +1
Ràng buộc tiết trống giáo viên (4): buổi giáo viên trống tiết tối đa lần (trống tiết tiết liên tục); trong tuần số tiết trống giáo viên không vượt
(4)Ràng buộc số tiết học tối thiểu trong buổi học lớp (6): số tiết tối thiểu buổi học lớp 2 tiết
Ràng buộc số môn học tối đa
trong buổi (7): số môn học tối đa
trong buổi 4; trường hợp bất khả kháng có mơn buổi học mơn học khơng thuộc nhóm mơn học xã hội (Văn, Sử, Địa, Giáo dục công dân, Tiếng Anh)
Ràng buộc số tiết tối đa giáo viên lớp buổi (8): tránh xếp giáo viên dạy lớp nhiều hơn tiết/buổi học (khơng tính tiết sinh hoạt chủ nhiệm) Trường hợp xảy mơn học có nhiều tiết giáo viên dạy lớp mơn học
2.3 Mơ hình hóa tốn xếp thời khóa biểu
Bài tốn xếp thời khóa biểu gồm yếu tố sau:
Tập P ={p1, p2,…,pm} gồm m tiết học,
tập T ={t1, t2,…,tn} gồm n giáo viên, ma trận PT cho biết tiết rảnh giáo viên, PTij=1 giáo viên ti rảnh tiết pj PTij=0 ngược lại
Tập C ={c1, c2,…,ch} gồm h lớp học, ma trận PC cho biết tiết rảnh lớp học, trong PCij=1 lớp học ci rảnh tiết pj và PCij=0 ngược lại
Tập R ={r1, r2, ,rk} gồm k phòng học, ma trận PR cho biết tiết rảnh phòng học, PRij=1 phịng học ri rảnh tiết pj PRij=0 ngược lại
Tập M ={m1, m2,…, my} gồm y môn
học, tập PM gồm y tổng số tiết học tuần môn học tương ứng tập
M tức PM={pm1, pm2,…, pmy}
Tập MR gồm mơn học phân
cơng vào phịng học, MRij=1
nếu mơn học mi xếp vào phịng rj
ngược lại
Tập A ={A1, A2, , Aq} gồm q phân công, tập Ai cho biết chi tiết phân công giáo viên tj giảng dạy môn mf cho lớp Cv:
Ai={tj, Cv, mf}
Tập lời giải S toán gồm x phân cơng gán tiết học phịng học S={S1, S2, ,Sx}, tập Si gồm phân công Ai xếp vào tiết học Pj với số tiết liên tiếp kv (với k=1,2) phòng học rm: Si={Ai, pj, kv, rm}
Để đánh giá chất lượng lời giải ta sử dụng hàm mục tiêu biểu diễn tổng trọng số vi phạm các ràng buộc tốn; ràng buộc cứng chuyển thành ràng buộc mềm có trọng số cao
Trong đó: S lời giải - thời khóa biểu toàn trường, n tổng số ràng buộc toán, wi trọng số vi phạm
của ràng buộc thứ i (wi ≥ 0, với i=1 n), di là số lần vi phạm ràng buộc thứ i (di ≥ 0, với i=1 n) [4]
Ký hiệu f(S) giá trị hàm mục tiêu lời giải S, giá trị hàm mục tiêu cao độ thích nghi thấp ngược lại
2.4 Tiêu chí đánh giá chất lượng thời khóa biểu
Chất lượng thời khóa biểu thể hiện qua thời khóa biểu lớp học thời khóa biểu giáo viên Việc đánh giá chất lượng thời khóa biểu cơng việc khó khăn thơng thường giáo viên đánh giá dựa vào thơng tin thời khóa biểu có vi phạm ràng buộc toán
3 Giải thuật di truyền giải toán xếp thời khóa biểu
(5)một giải thuật metaheuristic, cụ thể giải thuật di truyền [5], [7], [8] để giải toán xếp thời khóa biểu trường phổ thơng
3.1 Tạo quần thể ban đầu
Quần thể ban đầu tạo gồm N cá thể T1, T2, ,TN, cá thể lời giải tốn, tức thời khóa biểu toàn trường Mỗi cá thể gồm nhiều gen, gen khởi tạo ngẫu nhiên từ tập phân công cho cho trước hết phải thỏa mãn ràng buộc cứng của toán
Chất lượng cá thể quần thể ban đầu khởi tạo ngẫu nhiên thường có chất lượng so với chất lượng các cá thể khởi tạo heuristic của toán Tuy nhiên đa dạng các cá thể khởi tạo ngẫu nhiên, nên lúc kết thúc q trình tiến hóa, giải thuật di truyền ứng với quần thể ban đầu (được khởi tạo ngẫu nhiên) thường cho chất lượng lời giải tốt
3.2 Độ thích nghi cá thể
Độ thích nghi cá thể thời khóa biểu xác định giá trị hàm mục tiêu Giá trị hàm mục tiêu nhỏ cá thể thời khóa biểu có chất lượng cao
3.3 Phép lai
Mục trình bày cách chọn cá thể cách thực phép lai, cách xử lý các cá thể sinh từ phép lai
Chọn cá thể thời khóa biểu tham gia phép lai
Cho xác xuất lai pc, cá thể quần thể P, ta phát sinh ngẫu nhiên số thực r [0 1] Nếu r ≤ pc, chọn cá thể để tham gia phép lai Ta tiến hành thực phép lai cặp cá thể thời khóa biểu theo thứ tự mà chúng được chọn
Phép lai hai cá thể thời khóa biểu cha-mẹ T1,T2 để sinh hai cá thể thời khóa
biểu T1’ T2’ T1’ và T2’ ban đầu
gán T1 T2
Lấy ngẫu nhiên đoạn gen trong cặp cá thể cha-mẹ thỏa mãn ràng buộc tính chất gen tốn – là lớp đó, giả sử đoạn (p1,p2) Duyệt đoạn gen từ (p1,p2)
cá thể cha-mẹ T1, nếu có gen làm cho
cá thể T2’ tốt cập nhật T2’ Cơng
đoạn kết thúc ta cá thể T2’ Tương tự, duyệt đoạn gen từ (p1,p2) cá thể cha-mẹ T2, nếu có gen
nào làm cho cá thể T1’ tốt cập nhật
T1’ Công đoạn kết thúc ta cá thể
con T1’
Các cá thể gốc T1 T2 không thay đổi
trong trình này; cá thể T1’ T2’
sinh từ phép lai phải thỏa mãn ràng buộc toán
Phép lai hai cá thể T1 T2 để hai
cá thể T1’ T2’ Ta đưa cá thể
này vào quần thể - nghĩa sau thực phép lai, số cá thể quần thể lớn N, giả sử N’ Phép chọn cuối hệ có nhiệm vụ loại bớt số cá thể có độ thích nghi để đảm bảo kích thước quần thể khơng đổi mỗi lần bắt đầu hệ tiến hóa
3.4 Phép đột biến
Mục trình bày cách chọn phân cơng cá thể để thực phép đột biến, cách thực phép đột biến cách xử lý cá thể sinh từ phép đột biến
Phép đột biến tiến hành sau thực phép lai (trước thực phép chọn) Kích thước quần thể lúc thực phép đột biến N’
(6)Thực di chuyển cụm tiết từ vị trí u đến vị trí v lớp qua lớp khác mà đảm bảo lớp khác cũng có giáo viên, môn học phù hợp với phân công X Nếu khơng tìm vị trí v phù hợp phép đột biến khơng thực
Theo nguyên tắc đột biến, cá thể sau đột biến không thiết phải tốt trước đột biến Vì xét trình tiến hóa, một cá thể chưa tốt hệ có khả giúp trình tiến hóa sinh cá thể tốt hệ
Xử lý cá thể sinh
Giả sử cá thể T sau đột biến sinh cá thể T’, ta có hai cách xử lý sau đây:
Cách thứ T’ tốt T
thay T T’, T’ T xem như phép đột biến khơng thực
Cách thứ hai thay T T’ mà
không quan tâm đến chất lượng lời giải T’ Trong báo này, chọn thực hiện phép đột biến thứ hai
3.5 Phép chọn lọc
Chúng sử dụng phép chọn lọc cá thể dựa độ thích nghi xếp hạng bằng cách bố trí chung theo độ thích nghi giảm dần (tức theo chiều tăng dần giá trị hàm mục tiêu), sau chọn N cá thể có độ thích nghi cao
Để không làm cá thể tốt được khai phá suốt trình tiến hóa, giải thuật chúng tơi ln cập nhật cá thể tốt thời điểm (cá thể ưu tú)
3.6 Điều kiện dừng
Thường giải thuật di truyền chọn các điều kiện dừng sau đây: thứ lời giải tốt tìm tốn khơng được cải thiện sau số lần lặp định trước ; thứ hai số lần lặp giải thuật đạt đến giá trị định trước ; thứ ba
giải thuật chạy hết lượng thời gian định trước Trong tốn xếp thời khóa biểu trường phổ thơng xét, chọn điều kiện dừng
3.7 Giải thuật di truyền giải tốn xếp thời khóa biểu
Chúng tơi gọi giải thuật STTGA (School Timetabling Problem Genetic algorithm)
Dữ liệu đầu vào: danh sách phân công, danh sách ràng buộc, trọng số vi phạm ứng với ràng buộc
Dữ liệu đầu ra: thời khóa biểu mỗi lớp, thời khóa biểu giáo viên
Giải thuật di truyền giải toán xếp thời khóa biểu - STTGA
1: Khởi tạo quần thể ban đầu với N cá thể ngẫu nhiên, lời giải thời khóa biểu tồn trường, gen cá thể ứng với phân công;
2: Xác suất lai pc, xác suất đột biến pm; 3: Đánh giá độ thích nghi cá thể
quần thể, cá thể T có giá trị hàm mục
C(T), cá thể T tốt C(T) có giá
trị bé ngược lại;
4: while (điều kiện dừng chưa thỏa)
{
a) Chọn ngẫu nhiên cặp cá thể cha-mẹ từ quần thể;
b) Phép lai (crossover): xảy xác suất lai ghép pc lai ghép hai cá
thể cha-mẹ để tạo thành cá thể
con, ngược lại, cá thể giống cá thể cha-mẹ;
c) Đột biến (Mutation): xảy xác suất đột biến pm đột biến cách cho thay đổi nhỏ cá thể; d) Đánh giá lại độ thích nghi
cá thể, tức tính lại giá trị hàm mục tiêu;
(7)cá thể có độ thích nghi hơn; }
5: Cá thể tốt hệ sau lời giải toán
4 Thực nghiệm đánh giá
4.1 Dữ liệu thực nghiệm
Chúng thực nghiệm giải thuật di truyền STTGA liệu thực tế Trường Trung học phổ thơng Giồng Ơng Tố, Quận 2, Thành phố Hồ Chí Minh Bộ thứ có tên gọi HK11920, thứ hai có tên gọi HK21920
Bảng Thông số liệu thực nghiệm
STT Loại liệu HK11920
(Số lượng)
HK21920 (Số lượng)
1 Số giáo viên có phân công 76 73
2 Số phòng học 36 36
3 Số môn học 45 44
4 Số phân công 485 475
5 Số ràng buộc cứng 11 11
6 Số ràng buộc mềm 8 8
7 Số buổi học tuần 6 6
8 Số tiết tối đa buổi học 5 5
Các ràng buộc cứng 1, 2, 3, 9, 10, 11 trên mềm hóa với trọng số cao (các giá trị đề xuất qua trình thực nghiệm thực tế), ràng buộc cứng 4, 5,
6, 7, cịn lại ln thỏa mãn cài đặt Do đó, tốn có ràng buộc cứng 8 ràng buộc mềm cần xử lý theo liệt kê Bảng Bảng
Bảng 2. Trọng số vi phạm ràng buộc cứng
Ràng
buộc Tên ràng buộc Trọng số
Đối tượng ràng buộc
H1 Ràng buộc đụng độ giáo viên 999 Giáo viên
H2 Ràng buộc đụng độ lớp học 999 Lớp
H3 Ràng buộc đụng độ phòng học 999 Phòng học
H4 Ràng buộc môn học học lần
một buổi lớp 600 Lớp
H5 Ràng buộc tiết lủng lớp theo buổi 600 Lớp