Tải bản đầy đủ (.pdf) (74 trang)

(Luận văn thạc sĩ) nghiên cứu bài toán lập lịch và ứng dụng xếp thời khóa biểu cho trường phổ thông vùng cao việt bắc

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.22 MB, 74 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

HỒNG PHÚC LỢI

NGHIÊN CỨU BÀI TỐN LẬP LỊCH VÀ
ỨNG DỤNG XẾP THỜI KHĨA BIỂU CHO
TRƢỜNG PHỔ THƠNG VÙNG CAO VIỆT BẮC

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2017


ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

HỒNG PHÚC LỢI

NGHIÊN CỨU BÀI TỐN LẬP LỊCH VÀ
ỨNG DỤNG XẾP THỜI KHĨA BIỂU CHO
TRƢỜNG PHỔ THƠNG VÙNG CAO VIỆT BẮC

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Ngƣời hƣớng dẫn khoa học: TS. TRƢƠNG HÀ HẢI

Thái Nguyên - 2017




i
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá
nhân tơi, khơng sao chép của ai, do tôi tự nghiên cứu, đọc, dịch tài liệu,
tổng hợp và thực hiện. Nội dung lý thuyết trong trong luận văn tơi có sử
dụng một số tài liệu tham khảo nhƣ đã trình bày trong phần tài liệu tham khảo.
Các số liệu, chƣơng trình phần mềm và những kết quả trong luận văn là trung
thực và chƣa đƣợc cơng bố trong bất kỳ một cơng trình nào khác.
Thái nguyên 19 tháng 06 năm 2017
Học viên thực hiện

Hoàng Phúc Lợi


ii
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến TS. Trƣơng Hà Hải
ngƣời đã tận tình hƣớng dẫn, chỉ bảo, giúp đỡ em trong suốt quá trình
làm luận văn.
Em cũng xin gửi lời cảm ơn đến các thầy giáo, cô giáo trƣờng Đại học
Công Nghệ Thông Tin và Truyền Thông Thái Nguyên, các thầy giáo, cô giáo
Viện Công nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ em trong
suốt quá trình học của mình.
Và cuối cùng tơi xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và
bạn bè những ngƣời đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để
tơi có đƣợc kết quả nhƣ ngày hơm nay.
Thái Nguyên 19, tháng 06 năm 2017
Học Viên


Hoàng Phúc Lợi


iii
MỤC LỤC
LỜI CAM ĐOAN .......................................................................................... i
LỜI CẢM ƠN ............................................................................................... ii
MỤC LỤC .................................................................................................... iii
DANH MỤC HÌNH ẢNH ............................................................................ v
DANH MỤC BẢNG BIỂU ......................................................................... vi
MỞ ĐẦU ....................................................................................................... 1
CHƢƠNG 1: TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH ........................... 4
1.1. Giới thiệu chung về bài toán lập lịch ................................................. 4
1.2. Các đặc trƣng của bài tốn lập lịch .................................................... 4
1.3. Một số ví dụ về bài toán lập lịch: ....................................................... 5
1.4. Bài toán xếp thời khóa biểu ở trƣờng phổ thơng ............................... 7
1.4.1. Giới thiệu bài tốn xếp thời khóa biểu ........................................ 7
1.4.2. Độ phức tạp của bài tốn xếp thời khóa biểu .............................. 9
1.4.3. Phân loại mơ hình xếp thời khóa biểu....................................... 10
1.4.4. Các đặc thù của thời khóa biểu hệ trung học phổ thơng ........... 12
1.4.5. Nhu cầu bài tốn xếp thời khóa biểu......................................... 14
CHƢƠNG 2: MỘT SỐ HƢỚNG TIẾP CẬN VÀ THUẬT TỐN GIẢI
BÀI TỐN XẾP THỜI KHĨA BIỂU. ....................................................... 17
2.1. Đề xuất các giải thuật giải bài toán .................................................. 17
2.1.1. Giải thuật vét cạn. ..................................................................... 17
2.1.2. Giải thuật chia để trị .................................................................. 17
2.1.3. Giải thuật Heuristic: .................................................................. 19
2.2. Đánh giá các phƣơng pháp: .............................................................. 20
2.3. Giới thiệu giải thuật tối ƣu hóa đàn kiến (ANT COLONY

OPTIMIZATION: ACO) ........................................................................ 22
2.4. Mơ tả giải thuật tối ƣu hóa đàn kiến ................................................ 24
2.4.1. Trình bày giải thuật ................................................................... 24


iv
2.4.2. Một số vấn đề liên quan ............................................................ 29
CHƢƠNG 3: XÂY DỰNG CHƢƠNG TRÌNH XẾP THỜI KHĨA BIỂU
CHO TRƢỜNG PHỔ THƠNG VÙNG CAO VIỆT BẮC ......................... 32
3.1. Phân tích quy trình thực hiện bài tốn ............................................. 32
3.1.1. Phát biểu bài tốn ...................................................................... 32
3.1.2. Bài tốn xếp thời khóa biểu trong mơ hình tổng thể................. 33
3.1.3. Đặc điểm cơng tác, kế hoạch đào tạo ........................................ 33
3.1.4. Quy trình xây dựng kế hoạch đào tạo thời khóa biểu ............... 34
3.2. Sơ đồ xây dựng chƣơng trình xếp thời khóa biểu ............................ 35
3.2.1. Xây dựng hệ thống .................................................................... 39
3.2.2. Đánh giá khả năng ứng dụng giải quyết bài tốn xếp thời khóa biểu42
3.4. Thiết kế chƣơng trình. ...................................................................... 44
3.4.1. Lớp học ..................................................................................... 49
3.4.2. Giáo viên ................................................................................... 50
3.4.3. Phòng học .................................................................................. 50
3.4.4. Nhân viên phịng đào tạo .......................................................... 50
3.4.5 Mơ hình ca sử dụng .................................................................... 50
3.5. Các chức năng chính của chƣơng trình ............................................ 51
3.5.1. Chức năng đăng nhập ( chức năng quản lý user ) ..................... 51
3.5.2. Chức năng Quản lý môn học..................................................... 52
3.5.3. Chức năng Quản lý giáo viên .................................................... 55
3.5.4. Chức năng Quản lý học sinh: .................................................... 58
3.5.5. Chức năng Quản lý lớp học ...................................................... 60
3.6. Kết quả thử nghiệm .......................................................................... 62

ẾT UẬN ................................................................................................. 64
HƢỚNG PHÁT TRIỂN .............................................................................. 65
TÀI LIỆU THAM KHẢO ........................................................................... 66


v
DANH MỤC HÌNH ẢNH
Hình 2.1: Đồ thị cấu trúc tổng qt cho bài tốn cực trị hàm

.. 26

Hình 2.2: Lựa chọn đỉnh đi tiếp theo .......................................................... 27
Hình 2.3: Đặc tả thuật tốn ACO ................................................................ 28
Hình 3.1: Sơ đồ xây dựng chƣơng trình T B ................................................. 35
Hình 3.2: Chức năng của hệ thống .............................................................. 40
Hình 3.3 Mơ hình cơ sở dữ liệu .................................................................. 48
Hình 3.4: Mơ hình các ca sử dụng .............................................................. 50
Hình 3.5: Giao diện của chƣơng trình ......................................................... 51
Hình 3.6: Giao diện đăng nhập ................................................................... 52
Hình 3.7: Mơ hình chức năng quản lý mơn học.......................................... 53
Hình 3.8: Giao diện thêm mơn học ............................................................. 54
Hình 3.9:Giao diện chỉnh sửa mơn ............................................................. 54
Hình 3.10: Mơ hình chức năng quản lý giáo viên....................................... 55
Hình 3.11:Giao diện thêm giáo viên ........................................................... 56
Hình 3.12:Giao diện chỉnh sửa.................................................................... 56
Hình 3.13:Giao diện thời khóa biểu của từng giáo viên ............................. 57
Hình 3.14: Chức năng Quản lý học sinh ..................................................... 58
Hình 3.15:Cập nhật thơng tin học sinh ....................................................... 59
Hình 3.16: Cập nhật lại thơng tin học sinh ................................................. 59
Hình 3.17: Mơ hình chức năng quản lý lớp học ......................................... 60

Hình 3.18: Giao diện mơn học .................................................................... 61
Hình 3.19: Kết quả xếp thời khóa biểu theo lớp ........................................ 61
Hình 3.20: Cập nhật thơng tin lớp ............................................................... 62


vi

DANH MỤC BẢNG BIỂU

Bảng 3.1. Ví dụ về TKB của một lớp ......................................................... 36
Bảng 3.2. Ma trận TKB mà kiến xây dựng ................................................. 38
Bảng 3.3. Bảng dữ liệu phân công giảng dạy theo khối ............................. 41
Bảng 3.4. Bảng dữ liệu phân công giảng dạy theo lớp ............................... 41
Bảng 3.5. Bảng dữ liệu phân công giảng dạy theo giáo viên...................... 42


1
MỞ ĐẦU
1. Lý do chọn đề tài
Lập lịch biểu là cơng việc khơng thể thiếu ở bất kì tổ chức nào hoạt
động trong xã hội hiện nay. Cùng với tiến bộ xã hội, khoa học máy tính đã
có những bƣớc tiến dài, đem lại sự tiện lợi và hiệu quả kinh tế cao trong rất
nhiều lĩnh vực từ công nghiệp cho đến đời sống. Với việc sử dụng máy tính
trong lập lịch, con ngƣời có thể xây dựng đƣợc lịch biểu một cách nhanh
chóng và tối ƣu hơn. Nhiều phần mềm máy tính có chức năng hỗ trợ lập lịch
nhƣ MS.Excel, MS.Project,… nhƣng sự “thiếu thông minh” của chúng vẫn làm
cho con ngƣời phải tiêu tốn nhiều thời gian cũng nhƣ cơng sức khi lập lịch. Nhu
cầu cần có phần mềm lập lịch thông minh đã trở thành bức thiết.
Tại các trƣờng học, thời khóa biểu kết nối hầu nhƣ tồn bộ các hoạt
động của nhà trƣờng. Trƣớc đây cơng việc xếp thời khóa biểu chủ yếu

đƣợc làm bằng tay bởi các cán bộ có kinh nghiệm, nắm vững chuyên mơn
nghiệp vụ. Do đó việc xây dựng thời khóa biểu phụ thuộc rất lớn vào ngƣời
lập lịch, đồng thời hiệu quả tối ƣu cũng cịn bị hạn chế.Vì thế bài tốn lập
thời khóa biểu ln là một trong những vấn đề quan trọng cần giải quyết.
Hiện nay, hầu hết các trƣờng học đã đầu tƣ xây dựng phần mềm xếp
thời khóa biểu, mang lại hiệu quả nhất định trong việc xây dựng lịch biểu
học tập và làm việc. Đối với các trƣờng Trung học phổ thơng thì việc ứng
cơng nghệ thơng tin vào xếp thời khóa biểu là rất hạn chế, cụ thể là trƣờng
Phổ thông Vùng cao Việt Bắc. Vì vậy ứng dụng xây dựng thời khóa biểu
cho trƣờng Phổ thông Vùng cao Việt Bắc là nhu cầu cần thiết. Xuất phát từ
nhu cầu đó, em đã lựa chọn đề tài “Nghiên cứu bài toán lập lịch và ứng
dụng xếp thời khóa biểu cho trƣờng Phổ Thơng Vùng Cao Việt Bắc”
làm luận văn tốt nghiệp thạc sỹ.
Luận văn nghiên cứu về mơ hình bài tốn cũng nhƣ quy trình, độ phức tạp
của vấn đề xếp thời khóa biểu nói chung và giải quyết bài tốn xếp thời khóa


2
biểu chính khóa cho các trƣờng Phổ Thơng Trung Học nói chung và trƣờng
Phổ Thơng Vùng Cao Việt Bắc nói riêng. Sử dụng giải thuật tối ƣu hóa đàn
kiến tự động cập nhật thời khóa biểu và đƣa ra phƣơng án khả thi cho bài
tốn xếp thời khóa biểu.
2. Đối tƣợng và phạm vi nghiên cƣu
Đối tƣợng: Nghiên cứu tổng quan bài toán lập lịch và một số thuật
toán giải bài toán lập lịch.
Phạm vi nghiên cứu: uận văn tập trung nghiên cứu các kiến thức
có liên quan, các cơ sở lý thuyết nhƣ: Bài toán lập lịch. Một số thuật toán
giải bài toán lập lịch và ứng dụng vào bài tốn xếp thời khóa biểu.
3. Mục tiêu và nhiệm vụ
- Mục tiêu

Hoàn thành sản phẩm là phần mềm xếp thời khóa biểu cho trƣờng Phổ
thơng Vùng cao Việt Bắc.
Tiếp tục phát triển các phần mêm xếp thời khóa biểu cho các trƣờng
Phổ thơng trung học trên tồn quốc.
- Nhiêm vụ
Phân tích các số liệu, đề ra giải pháp hợp lý trong việc xây dựng và
phát triển hệ thống.
Nghiên cứu các giải thuật, áp dụng thuật tốn tối ƣu hóa đàn kiến giải
quyết bài tốn xếp thời khóa biểu cho trƣờng Phổ thơng Vùng cao Việt Bắc.
Phân tích, đánh giá, đề ra các phƣơng pháp xếp thời khóa biểu một
cách tự dộng và chính xác.
4. Phƣơng pháp nghiên cứu
- Phƣơng pháp nghiên cứu lý thuyết.
- Phƣơng pháp nghiên cứu tài liệu.
- Phƣơng pháp quan sát.
- Phƣơng pháp phân tích và tổng hợp lý thuyết.
- Phƣơng pháp nghiên cứu thực nghiệm.


3
- Phân tích thuật tốn đã lựa chọn, xây dựng cấu trúc dữ liệu và cài
đặt chƣơng trình.
- Tạo các mẫu thử có chất lƣợng để kiểm nghiệm các tính chất của
thuật toán, kiểm chúng sự thỏa mãn yêu cầu đặt ra của bài tốn.
Thực nghiệm:
Xây dựng chƣơng trình thời khóa biểu, tích hợp cơ sở dữ liệu với
phịng Giáo vụ, tổng hợp lại hệ thống để đƣa ra thời khóa biểu trên
Website của trƣờng.
5. Cấu trúc của đề tài
Ngồi phần mở đầu và kết luận, bố cục của luận văn đƣợc tổ chức

thành 3 chƣơng, gồm:
Chương 1: Tổng quan về bài toán lập lịch
Giới thiệu về bài toán lập lịch, những đặc trƣng cơ bản và hƣớng tiếp cận
nghiên cứu, bài tốn xếp thời khóa biểu ở trƣờng phổ thông. Giới thiệu nghiên
cứu một dạng cụ thể của bài tốn lập lịch là bài tốn xếp thời khóa biểu.
Chương 2: Một số hướng tiếp cận và thuật toán giải bài tốn xếp thời
khố biểu
Tìm hiểu về một số giải thuật giải bài toán, đánh giá các giải thuật và
đề xuất giải thuật giải bài toán.
Chương 3: Thiết kế chương trình xếp thời khóa biểu chính khóa trường
Phổ Thơng Vùng Việt Bắc
Phân tích thiết kế hệ thống, áp dụng giải thuật tối ƣu hóa đàn kiến,
đánh giá khả năng ứng dụng để giải quyết bài tốn thời khóa biểu.
Các bƣớc thực hiện: thiết kế dữ liệu, ý tƣởng thuật toán, xây dựng
chƣơng trình, nhận xét.


4
CHƢƠNG 1:
TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH
1.1. Giới thiệu chung về bài toán lập lịch
Bài toán cần xác định trình tự thời gian thực hiện các cơng việc trong
điều kiện ràng buộc về tài nguyên cần thiết sử dụng để thực hiện các cơng
việc bài tốn đó đƣợc phân loại là Bài tốn lập lịch.
- Lập lịch có thể đƣợc định nghĩa là một bài tốn tìm kiếm chuỗi tối
ƣu để thực hiện một tập các hoạt động chịu tác động của một tập các ràng
buộc cần phải đƣợc thỏa mãn. Ngƣời lập lịch thƣờng cố gắng thử đến mức
tối đa sự sử dụng các cá thể, máy móc và tối thiểu thời gian địi hỏi để
hồn thành tồn bộ quá trình nhằm sắp xếp lịch. Vì thế bài tốn lập lịch là
một vấn đề rất khó để giải quyết. Hiện nay có nhiều khả năng để phát

triển các kỹ thuật hiện tại để giải quyết bài toán này. Những kỹ thuật đó
bao gồm: Các tiếp cận Trí tuệ nhân tạo nhƣ hệ thống tri thức cơ sở
(knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia,
mạng Nơron và các tiếp cận của các nghiên cứu hoạt động: lập trình tính
tốn, lập trình động, tìm kiếm nhánh và đƣờng biên, kỹ thuật mơ phỏng,
tìm kiếm Tabu và phƣơng pháp nút cổ chai
1.2. Các đặc trƣng của bài toán lập lịch
Khi nghiên cứu về bài toán lập lịch cần làm rõ các đặc trƣng cơ bản
của bài toán. Các đặc trƣng cơ bản đó bao gồm: Tập cơng việc, tài nguyên,
tác vụ, ràng buộc và mục tiêu.
- Tập công việc: Mơ tả tính chất cơng việc (lập danh sách mơn học,
lập danh sách giáo viên, lập danh sách phịng học, lập bảng thông tin môn
học.....)
- Tài nguyên: Là các dữ liệu đầu vào để giải quyết bài. Các tài ngun
này có thể phục hồi hoặc khơng.


5
- Thời gian giới hạn: Mô tả các dạng thời gian (trình tự, thời điểm,
khoảng thời gian – ca học – tiết học,....)
- Ràng buộc: Đây là những điều kiện cần thỏa mãn để bài tốn có thể
đƣa đƣợc lời giải tốt nhất.
- Mục tiêu: Đánh giá độ tối ƣu của lịch trình lời giải của bài tốn. Khi
các mục tiêu đƣợc thỏa mãn thì các ràng buộc cũng đƣợc thỏa mãn.
Đánh giá độ phức tạp của bài toán lập lịch: vấn đề ràng buộc tài
nguyên trong bài toán lập lịch rất đa dạng và phức tạp. Thông thƣờng các
vấn đề liên quan đến ràng buộc về tài nguyên trong bài tốn lập lịch thƣờng
xảy ra trong tình huống lƣợng tài nguyên là khan hiếm, hạn chế. Nhƣ vậy
đặc trƣng cơng việc đối với vấn đề tài ngun đó là lƣợng thời gian hồn
thành cơng việc, u cầu phân bổ tài ngun cho cơng việc. Các cơng việc

có thể đƣợc thực hiện theo một số phƣơng pháp khác nhau nhƣng có điểm
chung đó là đƣợc xác định bởi một quy tắc ràng buộc, các công việc đƣợc
thực hiện theo dây chuyền, một số công việc chỉ đƣợc thực hiện sau khi đã
thực hiện xong một số công việc khác.
1.3. Một số ví dụ về bài tốn lập lịch:
a. Bài tốn lập lịch cho 2 máy:
phải đƣợc lần lƣợt gia công trên 2

Xét mỗi một chi tiết
máy A, B. Thời gian gia công chi tiết

trên máy A là

trên máy B là

(i=1,2,...,N). Hãy tìm lịch trình tự gia cơng) các chi tiết trên hai
máy sao cho việc hồn thành gia cơng tất cả các chi tiết là sớm nhất.
Thuật toán Johnson:
Chia các chi tiết thành 2 nhóm: nhóm
<

, tức là
tức là

và nhóm

gồm các chi tiết

thoả mãn


gồm các chi tiết

thoả mãn

thoả mãn

xếp vào

. Các chi tiết

nhóm nào cũng đƣợc. Sắp xếp các chi tiết trong

theo chiều tăng của các


6

và sắp xếp các chi tiết trong
đuôi

theo chiều giảm của các

nối

vào

, dãy thu đƣợc đọc từ trái sang phải) sẽ là lịch gia cơng.
b. Bài tốn lập lịch cho 3 máy:
Xét bài tốn gia cơng N chi tiết trên 3 máy theo thứ tự A,B,C với bảng


thời gian

(i=1,2,..N) thoả mãn:

hoặc

Thuật tốn: Lịch gia cơng tối ƣu trên 3 máy sẽ trùng với lịch gia công
tối ƣu trên 2 máy: máy thứ nhất với thời gian
thời gian

và máy thứ hai với

.

Thuật tốn More
Có n ơtơ đƣa vào xƣởng sửa chữa đƣợc đánh số thứ tự 1,2..,n. Ơtơ
phải sửa chữa trong thời gian

và thời điểm phải bàn giao là

. Mỗi thời

điểm xƣởng chỉ sửa chữa một cái, xƣởng sửa chữa không ngừng và thời
điểm bắt đầu sửa chữa là 0. Hãy đƣa ra một thứ tự sửa chữa sao cho số
lƣợng ôtô đúng hạn là lớn nhất. Sắp xếp theo thứ tự tăng dần của thời điểm
bàn giao. Duyệt từ đầu cho đến khi gặp ôtô quá hạn đầu tiên (Giả sử là ơtơ
thứ k).
Tìm từ đầu cho đến ơtơ thứ k, ôtô nào có

lớn nhất (Giả sử đó là ôtô


thứ m). Nếu ơtơ này đã đƣợc chuyển một lần rồi thì dừng chƣơng trình, cịn
nếu khơng thì ta chuyển ơtơ này xuống cuối. Rồi trở lại bƣớc 2.
Bài toán lập lịch là dạng bài toán quan trọng đƣợc nghiên cứu trong
các mơi trƣờng tính tốn. Q trình lập lịch là q trình quyết định sẽ thực
thi cơng việc tại một nguồn tài nguyên cụ thể nào và vào thời điểm nào là
thích hợp nhất bởi cơng việc đó sẽ ảnh hƣởng rất lớn đến hiệu năng hoạt
động của hệ thống. Nhu cầu cần sử dụng bài toán lập lịch là rất lớn trên
thực tế. Hầu nhƣ mọi lĩnh vực liên quan đến quản lý, điều hành đều phải sử
dụng đến bài toán lập lịch.


7
Hiện nay có nhiều phƣơng pháp nghiên cứu, phát triển để giải quyết
bài tốn này. Những kỹ thuật đó bao gồm:
- Các tiếp cận trí tuệ nhân tạo nhƣ: Hệ thống cơ sở tri thức
(knowledgebased systems), bài toán thoả mãn ràng buộc, hệ chuyên gia,
mạng Neural, tìm kiếm, tìm kiếm chọn lọc, thuật tốn Heuristic, thuật tốn
tơ màu đồ thị, thuật toán luồng…
- Các tiếp cận dựa trên những nghiên cứu hoạt động: Lập trình tính
tốn, lập trình động, tìm kiếm nhánh và đƣờng biên, kỹ thuật mơ phỏng,
tìm kiếm Tabu search, phƣơng pháp nút cổ chai...
Bài toán lập lịch có rất nhiều ứng dụng trong thực tế nhƣ: Bài tốn lập
lịch xếp thời khóa biểu cho các trƣờng đại học, cao đẳng, các trƣờng phổ
thông…, lập lịch phân công công tác cho một công ty, doanh nghiệp, lập
lịch cho hệ thống tính tốn lƣới trắc địa, lập lịch cho bộ xử lý CPU…
1.4. Bài tốn xếp thời khóa biểu ở trƣờng phổ thơng
1.4.1. Giới thiệu bài tốn xếp thời khóa biểu
Trong một cơ quan, một tổ chức, một trƣờng học công việc quản lý và
sắp xếp công việc cho các cá nhân, các nhóm trong từng giai đoạn và thời

điểm cũng nhƣ địa điểm một cách hợp lý và khoa học là hết sức cần thiết
và cấp bách. Công việc đó dựa trên các bài tốn lập lịch và việc tìm lời giải
tối ƣu cho các bài tốn này vẫn là hƣớng nghiên cứu mà rất nhiều cá nhân,
tổ chức hƣớng tới và cũng có nhiều cơng trình nghiên cứu về vấn đề này.
Trong phạm vi một trƣờng học cũng có nhiều bài tốn lập lịch, trong
đó tiêu biểu là bài tốn xếp thời khóa biểu. Bài tốn này nhằm sắp xếp lịch
hoạt động giảng dạy và học tập của giáo viên và học sinh.
Sau đây chúng ta đi tìm hiểu bài tốn lập thời khóa biểu chính khóa,
theo tuần, theo học kỳ, theo năm học của trƣờng Phổ thông trung học:
- Bƣớc 1: Lập kế hoạch đào tạo (dựa vào khung chƣơng trình đào tạo
của Nhà trƣờng theo các qui định của Ngành giáo dục).


8
- Bƣớc 2: Lập kế hoạch đào tạo theo tuần, theo học kỳ.
- Bƣớc 3: Xây dựng bảng phân công giáo viên.
- Bƣớc 4: Xây dựng bảng phân công từng lớp, từng khối.
- Bƣớc 5: Xây dựng thời khóa biểu.
- Bƣớc 6: Hồn chỉnh thời khóa biểu tổng thể cho giáo viên, lớp học.
Bài tốn xếp thời khóa biểu trong các nhà trƣờng là bài toán cần phải
thỏa mãn những ràng buộc hết sức phức tạp và nhiều khi là mâu thuẫn của
các đối tƣợng. Việc đƣa ra một bảng thời khóa biểu hợp lý khơng những
làm mất nhiều thời gian và công sức của ngƣời lập lịch mà đôi khi còn gây
ra mâu thuẫn nhƣ thỏa mãn nhu cầu của ngƣời hay nhóm ngƣời này lại
phạm vào nhu cầu của ngƣời hay nhóm ngƣời khác.
Vấn đề xây dựng thời khóa biểu tự động hoặc bán tự động cho các loại
công việc khác nhau bao gồm cả các hoạt động dạy và học trong một trƣờng
học là một vấn đề cấp thiết đã thu hút nhiều sự chú ý trong cả hai lĩnh vực
nghiên cứu và ứng dụng. Tuy nhiên kết quả nghiên cứu đạt đƣợc trong lĩnh vực
này vẫn chƣa đƣợc ứng dụng rộng rãi bởi các nguyên nhân sau:

- Về mặt học thuật, bài tốn xếp thời khóa biểu tự động là một bài tốn có
độ phức tạp giải thuật rất cao. Chƣa có giải thuật xếp thời khóa biểu một cách
tổng quát.
- Khi áp dụng vào các trƣờng học, mỗi trƣờng có mơ hình đào tạo, đặc
thù khác nhau dẫn đến các mối quan hệ ràng buộc khác nhau. Việc đƣa ra
một mơ hình biểu diễn đặc trƣng tổng quát cho tất cả các mối quan hệ ràng
buộc này là rất khó.
- Bài tốn thời khóa biểu là mơ hình quan hệ ràng buộc giữa các đối
tƣợng liên quan trực tiếp đến thời khóa biểu bao gồm giáo viên ngƣời
dạy), học sinh ngƣời học), môn học hay học phần (nội dung dạy và học),
phòng học địa điểm) và cuối cùng là dạy, học nội dung gì, học ở đâu, diễn


9
ra ở thời điểm nào. Các đối tƣợng trên quyết định đến mơ hình chung của
bài tốn xếp thời khóa biểu do những đặc thù riêng biệt của chúng.
Bài toán đặt ra bao gồm tất cả các vấn đề có liên quan đến việc xếp
thời khóa biểu ở một trƣờng học. Chẳng hạn nhƣ đặt số học sinh vào một
phòng sao cho tƣơng ứng về sức chứa của nó, tránh việc học trùng giờ tại
một phòng của các lớp chuyên ngành, giáo viên sẽ dạy theo giờ quy định
trong bảng phân công hay đăng ký giảng dạy. Thông thƣờng, công việc này
có thể đƣợc làm bằng tay, nhƣng phải mất nhiều thời gian và phải có kinh
nghiệm xếp lịch nếu khơng muốn xảy ra sai sót, chẳng hạn nhƣ: chỗ này
thừa phòng, chỗ khác lại thiếu, sai giờ, sai chỗ… vấn đề của bài tốn là
ngồi việc thực hiện đúng, chính xác, cịn phải tốt hơn, nhanh hơn và hiệu
quả hơn công việc xếp lịch bằng tay mà chúng ta vẫn làm.
1.4.2. Độ phức tạp của bài toán xếp thời khóa biểu
Khi nhắc đến bài tốn xếp thời khóa biểu, hầu hết tất cả những ai quan
tâm đến bài toán này đều quan tâm đến độ phức tạp của nó.
Bài tốn xếp thời khóa biểu trong các nhà trƣờng là bài toán cần phải

thỏa mãn những ràng buộc hết sức phức tạp và nhiều khi là mâu thuẫn của
các đối tƣợng.
"Độ phức tạp " của bài toán đã trở nên nổi tiếng khơng chỉ bởi độ khó
của nó, mà cịn ở tính thực tiễn, khả năng áp dụng rất cao vào thực tế. Tại tất
cả các trƣờng học, thời khóa biểu học tập của học sinh, giảng dạy của giáo
viên là quyết định hoạt động chính của nhà trƣờng, chính vì vậy xếp thời khóa
biểu đã trở thành vấn đề chính và quan trọng trong mỗi nhà trƣờng.
Việc xếp thời khóa biểu thực sự là một cơng việc rất khó và mất rất
nhiều thời gian. Xếp thời khóa biểu thể hiện cái khó ở các lý do sau:
- Thứ nhất: Việc xếp thời khóa biểu địi hỏi tƣ duy, tính toán, suy luận
rất phức tạp, dễ xảy ra nhầm lẫn nhƣ: trùng giờ trùng tiết, thiếu giờ thiếu


10
tiết,... Nhƣ vậy, việc xếp thời khóa biểu địi hỏi ngƣời phải có nhiều kinh
nghiệm và hiểu biết về cơng việc này mới có thể làm đƣợc.
- Thứ hai: Các ràng buộc của giáo viên trong trƣờng rất mâu thuẫn,
chồng chéo lẫn nhau.
- Thứ ba: Cơng việc xếp thời khóa biểu địi hỏi phải có tƣ duy đặc
biệt. Ngƣời xếp thời khóa biểu, ngồi việc phải am hiểu về các môn học
cũng nhƣ quy định của Bộ Giáo Dục và Đào Tạo đối với nhà trƣờng về
chƣơng trình mơn học, hiểu rõ yêu cầu cầu của các giáo viên trong nhà
trƣờng, phải có tƣ duy nghề nghiệp của cơng việc xếp thời khóa biểu.
Mỗi trƣờng lại có một đặc thù riêng về công tác đào tạo, số lƣợng giáo
viên, lớp học, phịng học. Do vậy việp xếp thời khóa biểu của các trƣờng
hồn tồn khác nhau, khơng thể áp dụng chung cho các trƣờng. Hiện nay cả
nƣớc ta có khoảng 25,000 trƣờng học với các cấp bậc đào tạo khác nhau
nhƣ: cấp Tiểu học, Trung học cơ sở, Phổ thông trung học.
Những điều trên đã khiến cho bài toán xếp thời khóa biểu càng trở nên
phức tạp hơn.

1.4.3. Phân loại mơ hình xếp thời khóa biểu
a. Phân loại theo khn dạng thời gian thời khóa biểu
Phân loại theo mẫu biểu của thời khóa biểu đƣợc in ra. Trên thực tế có rất
nhiều dạng thời khóa biểu khác nhau, rất đa dạng và tuỳ thuộc vào hoàn cảnh,
điều kiện của từng trƣờng. Có thể liệt kê ra đây một vài kiểu (mẫu) thời khóa
biểu nhƣ sau:
+ Thời khóa biểu TUẦN:
Là mẫu dạng thời khóa biểu cho một tuần và đƣợc dùng làm chuẩn
cho tất cả các tuần của học kỳ hoặc năm học. Đa số các nhà trƣờng của
Việt Nam đều sử dụng khuôn mẫu này.


11

+ Thời khóa biểu HỌC KỲ:
Là mẫu khn dạng thời khóa biểu đƣợc biểu diễn chi tiết đến từng
ngày trong suốt một học kỳ hoặc năm học. Một số các trƣờng đại học, cao
đẳng tại Việt Nam, đặc biệt là các trƣờng quân đội sử dụng khuôn dạng này
của thời khóa biểu.
+ Thời khóa biểu cho mỗi TUẦN:
Là loại thời khóa biểu mơ hình tuần nhƣng mỗi tuần lại có một Thời
khóa biểu riêng. Nhƣ vậy ví dụ trong một học kỳ có 25 tuần thì mỗi lớp học
sẽ có đúng 25 thời khóa biểu. Đây là mơ hình rất phức tạp và về bản chất
chính là mơ hình Thời khóa biểu Học kỳ (loại B), điểm khác duy nhất là
khn dạng in ra của thời khóa biểu là TUẦN.
b. Phân loại theo đối tượng xếp thời khóa biểu
Phân loại theo các đối tƣợng trực tiếp liên quan đến dữ liệu bài tốn
xếp thời khóa biểu, đó là các đối tƣợng chính bao gồm: giáo viên, học sinh,
học phần (mơn học), phòng học.
+ Giáo viên: à ngƣời trực tiếp giảng dạy theo các học phần, môn

học đƣợc quy định chặt chẽ về thời lƣợng, kiến thức và hình thức học.
+ Học sinh: Đối tƣợng học tập trực tiếp của giáo viên giảng dạy. Học
sinh tham gia học tập ở các lớp học.
+ Môn học: Là nội dung các bài giảng của giáo viên và nội dung mà
học sinh học tập, mỗi mơn học có đặc trƣng riêng để phân biệt với các mơn
học khác.
+ Phịng học:

à địa điểm tổ chức các môn học, học phần và bài

giảng do giáo viên đảm nhiệm.
Chính việc phân loại theo khn dạng thời gian và phân loại theo đối
tƣợng đã tạo ra sự khác biệt cơ bản của mơ hình thời khóa biểu.


12
c. u cầu đối với các mơ hình xếp thời khóa biểu
- Các đối tƣợng chính cần quan tâm là lớp học, giáo viên, phịng học,
mơn học.
- Các mơ hình đều có các ràng buộc về giáo viên, phịng học do vậy
đều phải kiểm soát đƣợc các trạng thái ràng buộc này trên cơ sở ràng buộc
cứng và mềm.
- Các môn học của cùng một lớp không đƣợc xếp trùng giờ, trùng tiết.
- Phải kiểm sốt các mơn học để không xảy ra 2 môn học của lớp
trùng nhau về thời gian.
- Có sự phân chia các mơn học theo thứ tự ƣu tiên về ý nghĩa môn học
để sắp xếp.
- Với mỗi mơn học của thời khóa biểu đƣợc gắn cho một hay nhiều lớp
1.4.4. Các đặc thù của thời khóa biểu hệ trung học phổ thơng
Phân tích các đặc thù của thời khóa biểu trên cơ sở các ràng buộc.

Ràng buộc về cơ bản vẫn là các yêu cầu từ phía đối tƣợng đặt ra, bắt buộc
bài tốn phải thỏa mãn tất cả, nhƣng phần nghiệp vụ cũng mang lại một
ràng buộc cần thiết nhằm tránh một số trƣờng hợp sai sót để giúp q trình
thực thi cho ra kết quả đúng.
Vậy liệt kê đƣợc đầy đủ các ràng buộc có thể có trong bài tốn là cơng
việc quan trọng cần làm. Các thành phần ràng buộc của bài tốn có thể kể
đến đó là:
- Ràng buộc dữ liệu nhập vào.
- Ràng buộc môn học, thời gian.
a. Ràng buộc dữ liệu nhập vào
Các dữ liệu chính của thời khóa biểu bao gồm:
- Danh sách mơn học.
- Danh sách khối học.
- Danh sách lớp học.


13

- Danh sách giáo viên.
- Danh sách phòng học.
- Bảng phân công giáo viên giảng dạy tại các lớp học.
- Bảng yêu cầu ràng buộc của giáo viên đối với lịch dạy.
- Bảng yêu cầu ràng buộc của phòng học đối với lịch dạy.
Do yêu cầu đặt ra của bài tốn xếp thời khóa biểu mà các ràng buộc
dữ liệu phải đƣợc thiết lập sau khi đã nhập các đối tƣợng: giáo viên, học
sinh, phòng học.
+ Đối tượng giáo viên:
Trong mơ hình của bài tốn xếp thời khóa biểu vai trò các giáo viên là
ngang nhau. Mỗi giáo viên về nguyên tắc sẽ có một thời khóa biểu lịch giảng
dạy riêng của mình trong học kỳ hoặc năm học hiện thời. Những đặc thù sau

cần chú ý khi xem xét dữ liệu thời khóa biểu liên quan đến giáo viên:
Trong mơ hình xếp thời khóa biểu thơng tin phân bổ việc xếp thời
khóa biểu sơ bộ về là rất quan trọng.
Mỗi giáo viên có một lịch đăng ký giảng dạy cá nhân riêng, do đó phải
nhập bảng lịch này vào để nhập giờ dạy theo lịch của giáo viên trong việc xếp
thời khóa biểu.
+ Đối tượng học sinh:
Học sinh đƣợc phân công vào các lớp học.
Học sinh là đối tƣợng phải tham gia nhiều hoạt động của trƣờng, do đó
cũng có một số lịch thời gian riêng để thực hiện những cơng việc khác ngồi
học tập. Nhƣ vậy ta phải nhập khoảng thời gian không học tập đƣợc vào làm dữ
liệu cho bài tốn.
+ Đối tượng Phịng học:
Phịng học đóng vai trị rất quan trọng trong bài tốn xếp thời khóa
biểu. Các phịng học đƣợc dùng cho mục đích học tập và mỗi phịng học
cũng có lịch đăng ký tổ chức học tập riêng.


14
Phịng học đƣợc gắn phân cơng tổ chức cho các lớp học.
hi xét đến đối tƣợng phòng học phải xét địa điểm của phòng học ở
đâu, sức chứa bao nhiêu, trang bị trong phòng học, phòng học lý thuyết,
thực hành và chức năng hợp lý …
b. Ràng buộc thời gian, môn học
- Một ngày đƣợc tổ chức học 1 ca, ca sáng học 5 tiết.
- Khơng có học sinh nào tại một thời điểm đƣợc học nhiều môn.
- Giáo viên khơng dạy nhiều lớp cùng một thời điểm.
- Phịng học tại một thời điểm chỉ đƣợc tổ chức giảng dạy cho một lớp.
- Lớp học tránh những giờ không đƣợc học do nhà trƣờng quy định
(các ngày nghỉ, lễ Tết…)

- Giáo viên giảng dạy theo các thời điểm đã đăng ký với nhà trƣờng.
Tuy nhiên việc này có thể cản trở việc xếp lịch, dẫn đến không thể xếp đƣợc
nhƣng nếu không giải quyết đƣợc cho giáo viên dạy theo các thời điểm đã đăng
ký thì có thể kết quả xếp lịch thời khóa biểu sẽ khó đƣợc thực hiện.
- Các giờ khơng cho phép học tại các phịng học, sẽ khơng có lớp học
nào đƣợc tổ chức quy định của phịng học).
- Tổng số tiết học của các mơn học phải đƣợc đảm bảo đúng theo thời
gian quy định của nhà trƣờng.
1.4.5. Nhu cầu bài tốn xếp thời khóa biểu
Bài toán xếp thời kháo biểu đã từ lâu trở thành một bài toán hết sức
đƣợc quan tâm của rất nhiều nhà nghiên cứu cũng nhƣ các chuyên gia trong
lĩnh vực liên quan. Điều đƣợc quan tâm của bài toán xếp thời khóa biểu
khơng chỉ bởi độ phức tạp của nó, mà cịn ở tính thực tiễn, khả năng áp dụng
rất cao trên thực tế từ trƣớc đến nay. Bất cứ nhà trƣờng, thời khóa biểu học tập
của học sinh và giảng dạy cảu giáo viên đã và luôn là cầu nối cho hầu hết các
hoạt động của nhà trƣờng. Chính vì lẽ đó bài tốn bài tốn xếp thời khóa biểu
chở thành nhu cầu cần thiết và quan trọng của nhà trƣờng.


15
Theo nghiên cứu tại Việt Nam, trƣớc những năm 1986, cơng việc xếp
thời khóa biểu chủ yếu đƣợc làm bằng tay bởi các nhà quản lý. Điều này vơ
cùng khó khăn vì đã tiêu tốn một thời lƣợng thời gian và công sức không
nhỏ của các nhà quản lý đào tạo. Địi hỏi ngƣời xếp lịch phải có kinh
nghiệm và sự am hiểu cao về lĩnh vực này. Đó là những ngƣời rất khó thay
thế bởi mỗi lần thay đổi, chỉnh sửa thời khóa biểu khơng thể làm đƣợc bởi
những ngƣời khơng có chun mơn. Chính những khó khăn, thách thức đó
cùng với sự phát triển mạnh mẽ của Cơng nghệ thông tin, việc xây dựng
phƣơng pháp tự động xếp thời khóa biểu đã trở thành tất yếu cần thiết cho
các trƣờng học.

Năm 1986-1987, một nhóm chun gia máy tính tại khoa toán Học
viện Kỹ thuật Quân sự đã bắt đầu nghiên cứu bài tốn xếp Thời khóa biểu
cho mơ hình đại học.Và đó là nền móng cho việc phát triển các phần mềm
thời khóa biểu sau này đi đến những thành cơng nhất định.
Tuy nhiên do tính chất của mỗi nhà trƣờng là khác nhau nên việc xếp
thời khóa biểu trở nên đa dạng, không thể sử dụng một phần mềm để giải
quyết đƣợc cho tất cả các trƣờng học.
Tại Việt Nam, có đến hàng ngàn trƣờng học, nhƣng hiện nay vẫn chỉ
gần 1/3 số các trƣờng là có ứng dụng của Công nghệ thông tin vào giải
quyết bài tốn xếp thời khóa biểu, số cịn lại chủ yếu xếp bằng tay. Do vậy
nhu cầu giải quyết và sử dụng bài tốn xếp thời khóa biểu cịn rất lớn trong
giai đoạn hiện nay. Đặc biệt là ngày càng xuất hiện nhiều các mơ hình đào
tạo khác nhau theo chủ trƣơng về cải cách giáo dục tại Việt Nam.
Trƣờng phổ thông Vùng cao Việt Bắc là một trong những trƣờng Dân
tộc nội trú với rất đông các con em dân tộc của các tỉnh miền núi phía Bắc
đang học tập. Là một ngơi trƣờng có đặc thù rất riêng biệt: Mỗi học kỳ
đƣợc chia thành nhiều giai đoạn khác nhau, mỗi giai đoạn số tiết dạy của
từng bộ mơn có sự thay đổi để đáp ứng yêu cầu của từng môn và thƣờng
đƣợc làm thủ công nên hiệu quả không mấy khả quan.


16

Hiện nay có một số phần mềm xếp thời khóa biểu của Cục Công Nghệ
Thông tin, hay một số tổ chức khác dành cho các trƣờng phổ thông trung học
nhƣng hiệu quả không cao, không đáp ứng đƣợc nhu cầu của từng giáo viên.
Vì vậy, các trƣờng thƣờng phải làm thủ cơng, cịn áp dụng vào cho trƣờng
phổ thơng Vùng cao Việt Bắc thì hồn tồn khơng thể đáp ứng đƣợc.
Công nghệ thông tin đã và đang phát triển rất mạnh mẽ, nhƣng việc
chia thời khóa biểu cho tất cả các trƣờng phổ thơng trung học trên cả nƣớc

nói chung, trƣờng phổ thơng Vùng cao việt bắc nói riêng vẫn phải làm thủ
công nên hiệu quả không cao lại mất rất nhiều cơng sức và thời gian. Bài
tốn đặt ra là xếp thời khóa biểu cần có sự sắp xếp lịch học cho các lớp tại các
phòng học ở mỗi địa điểm, sao cho vừa hợp lý lại vừa tiện dụng và phù hợp với
từng bộ môn và cơ sở của nhà trƣờng. Nhu cầu của giáo viên khác nhau, một số
giáo viên lại có nhu cầu đến trƣờng vào một số ngày khác nhau trong tuần. Từ
những nhu cầu đó mà việc xếp thời khóa biểu trở nên rất khó khăn thể hiện
ở các lý do sau:
- Thứ nhất: Việc xếp thời khóa biểu địi hỏi tƣ duy, tính toán, suy luận
rất phức tạp, dễ xảy ra nhầm lẫn nhƣ: trùng giờ trùng tiết, thiếu giờ thiếu
tiết,... Nhƣ vậy, việc xếp thời khóa biểu địi hỏi ngƣời phải có nhiều kinh
nghiệm và hiểu biết về công việc này mới có thể làm đƣợc.
- Thứ hai: Các ràng buộc của giáo viên trong trƣờng rất mâu thuẫn,
chồng chéo lẫn nhau.
- Thứ ba: Cơng việc xếp thời khóa biểu địi hỏi phải có tƣ duy đặc biệt
của cơng việc xếp thời khóa biểu.
Từ thực tế đó, cần có những phần mềm tự động xếp thời khóa biểu
riêng cho trƣờng. Từ sự cần thiết này, đề tài Nghiên cứu bài toán lập lịch và
ứng dụng xếp thời khóa biểu để làm sao thỏa mãn nhu cầu thực tế, đáp ứng
sự cần thiết, cấp bách của các trƣờng phổ thơng trung học nói chung,
trƣờng phổ thơng Vùng cao Việt Bắc nói riêng.


17
CHƢƠNG 2:
MỘT SỐ HƢỚNG TIẾP CẬN VÀ THUẬT TOÁN
GIẢI BÀI TỐN XẾP THỜI KHĨA BIỂU.
2.1. Đề xuất các giải thuật giải bài toán
2.1.1. Giải thuật vét cạn.
Vét cạn là một trong những giải thuật giải bài toán tối ƣu. Gải thuật

vét cạn là tìm phƣơng án tối ƣu của bài toán bằng cách lựa chọn một
phƣơng án trong tập hợp tất cả các phƣơng án của bài tốn để tìm ra
phƣơng án tối ƣu. Trong nhiều bài tốn, khơng gian các phƣơng án quá lớn.
Do vậy, khi áp dụng thuật tốn vét cạn khơng đảm bảo về thời gian cũng
nhƣ kĩ thuật.Trong q trình duyệt ta ln giữ lại một phƣơng án là phƣơng
án mẫu, là phƣơng án có giá nhỏ nhất tại thời điểm đó. Phƣơng pháp đánh
giá nhánh cận là phƣơng pháp tính giá của phƣơng án ngay trong quá trình
xây dựng các thành phần của phƣơng án, có nghĩa là ta sẽ tính xem việc
xây dựng phƣơng án theo hƣớng đó có thể có thể tốt hơn phƣơng án mẫu
hay không. Nếu không tốt hơn ta lựa chọn hƣớng khác. Bằng cách này ta
đã hạn chế đƣợc nhiều phƣơng án mà chắc rằng trong đó khơng chứa
phƣơng án tối ƣu. Một yêu cầu đặt ra là tính tốn đặt nhánh cận nhƣ thế
nào, để có thể hạn chế tối đa các phƣơng án phải duyệt.
2.1.2. Giải thuật chia để trị
Đây là kỹ thuật từ trên xuống ( top - down),Có thể nói rằng đây là kỹ
thuật quan trọng nhất, đƣợc áp dụng rộng rãi nhất để thiết kế các giải thuật
có hiệu quả.
Nội dung của nó là: Để giải một bài tốn kích thƣớc n, ta chia bài tốn
đã cho thành một số bài tốn con có kích thƣớc nhỏ hơn. Giải các bài tốn
con này rồi tổng hợp kết quả lại để đƣợc lời giải của bài toán ban đầu. Đối
với các bài toán con, chúng ta lại sử dụng kỹ thuật chia để trị để có đƣợc
các bài tốn kích thƣớc nhỏ hơn nữa. Q trình trên sẽ dẫn đến những bài


×