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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv 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 (Lv thạc sĩ)
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HOÀNG PHÚC LỢ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
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2017
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HOÀNG PHÚC LỢ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
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
Trang 3LỜ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
Trang 4LỜ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
Trang 5MỤ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 toá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 toán xếp thời khóa biểu 7
1.4.2 Độ phức tạp của bài toá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 toá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 TOÁN GIẢI BÀI TOÁ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
Trang 62.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 toán 32
3.1.1 Phát biểu bài toán 32
3.1.2 Bài toá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 toán xếp thời khóa biểu 42 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
Trang 7DANH MỤC HÌNH ẢNH
Hình 2.1: Đồ thị cấu trúc tổng quát cho bài toá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 toá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
Trang 8DANH 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
Trang 9Tại các trường học, thời khóa biểu kết nối hầu như toà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 toán lập thời khóa biểu luôn 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 toá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 toán xếp thời khóa
Trang 10biể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 toá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 toán xếp thời khóa biểu
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
Trang 11- Phân tích thuật toá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 toá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
Ngoà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 toá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 toán lập lịch là bài toá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 toán xếp thời khoá 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 toá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
Trang 12- Lập lịch có thể được định nghĩa là một bài toá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 để hoàn thành toàn bộ quá trình nhằm sắp xếp lịch Vì thế bài toá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 toá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 nguyên này có thể phục hồi hoặc không
Trang 13- 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 toá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 toá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 toá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 nguyên đó là lượng thời gian hoàn thành công việc, yêu cầu phân bổ tài nguyên 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 toán lập lịch:
a Bài toán lập lịch cho 2 máy:
Xét mỗi một chi tiết phải được lần lượt gia công trên 2
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 hoà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 gồm các chi tiết thoả mãn
< , tức là và nhóm gồm các chi tiết thoả mãn tức là Các chi tiết thoả mãn xếp vào 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
Trang 14và sắp xếp các chi tiết trong theo chiều giảm của các nối vào đuôi , dãy thu được đọc từ trái sang phải) sẽ là lịch gia công
b Bài toán lập lịch cho 3 máy:
Xét bài toá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 toá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 và máy thứ hai với thời gian
Thuật toá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 toán Quá trình lập lịch là quá 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
Trang 15Hiện nay có nhiều phương pháp nghiên cứu, phát triển để 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 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 toán Heuristic, thuật toá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 toá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 toá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 toán lưới trắc địa, lập lịch cho bộ xử lý CPU…
1.4 Bài toán xếp thời khóa biểu ở trường phổ thông
1.4.1 Giới thiệu bài toá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 toán lập lịch và việc tìm lời giải tối ưu cho các bài toá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 toán lập lịch, trong
đó tiêu biểu là bài toán xếp thời khóa biểu Bài toá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 toá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)
Trang 16- 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: Hoàn chỉnh thời khóa biểu tổng thể cho giáo viên, lớp học Bài toá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 toán xếp thời khóa biểu tự động là một bài toá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 toá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
Trang 17ra ở 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 toá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 toán là ngoà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 toá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 toá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
Trang 18tiế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, ngoà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 hoàn toà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 khuôn 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
Trang 19+ Thời khóa biểu HỌC KỲ:
Là mẫu khuôn 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à khuôn 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 toá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 khuôn 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
Trang 20c Yê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 soá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 toá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 quá 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 toá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 toá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
Trang 21- 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 toá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 toá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 ngoà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 toán
+ Đối tượng Phòng học:
Phòng học đóng vai trò rất quan trọng trong bài toá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
Trang 22Phò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ọcphả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 toá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 toán bài toá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
Trang 23Theo 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ó chuyên 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 chuyên 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 toá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 toá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 toá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
Trang 24Hiệ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ì hoàn toà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 toá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
Trang 25CHƯƠNG 2:
MỘT SỐ HƯỚNG TIẾP CẬN VÀ THUẬT TOÁN
GIẢI BÀI TOÁ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 toán để tìm ra phương án tối ưu Trong nhiều bài toán, không gian các phương án quá lớn
Do vậy, khi áp dụng thuật toán vét cạn không đảm bảo về thời gian cũng như kĩ thuật.Trong quá trình duyệt ta luôn 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 toá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 toán kích thước n, ta chia bài toán
đã cho thành một số bài toán con có kích thước nhỏ hơn Giải các bài toá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 toán kích thước nhỏ hơn nữa Quá trình trên sẽ dẫn đến những bài
Trang 26toán mà lời giải chúng là hiển nhiên hoặc dễ dàng thực hiện, ta gọi các bài toán này là bài toán cơ sở
Tóm lại kỹ thuật chia để trị bao gồm hai quá trình: Phân tích bài toán
đã cho thành các bài toán cơ sở và tổng hợp kết quả từ bài toán cơ sở để có lời giải của bài toán ban đầu Tuy nhiên đối với một số bài toán, thì quá trình phân tích đã chứa đựng việc tổng hợp kết quả do đó nếu chúng ta đã giải xong các bài toán cơ sở thì bài toán ban đầu cũng đã được giải quyết Ngược lại có những bài toán mà quá trình phân tích thì đơn giản nhưng việc tổng hợp kết quả lại rất khó khăn
Hai giải thuật sắp xếp MergeSort và QuickSort thực chất là đã sử dụng
kỹ thuật chia để trị
Với MergeSort, để sắp một danh sách L gồm n phần tử, chúng ta chia
L thành hai danh sách con L1 và L2 mỗi danh sách có n/2 phần tử Sắp xếp L1, L2 và trộn hai danh sách đã được sắp này để được một danh sách có thứ tự Quá trình phân tích ở đây là quá trình chia đôi một danh sách, quá trình này sẽ dẫn đến bài toán sắp xếp một danh sách có độ daì bằng 1, đây chính là bài toán cơ sở vì việc sắp xếp danh sách này là “không làm gì cả” Việc tổng hợp các kết quả ở đây là “trộn 2 danh sách đã được sắp để được một danh sách có thứ tự”
Với QuickSort, để sắp xếp một danh sách gồm n phần tử, ta tìm một giá trị khóa và phân hoạch danh sách đã cho thành hai danh sách con “bên trái” và “bên phải “ Sắp xếp “bên trái” và “bên phải” thì ta được danh sách
có thứ tự Quá trình phân chia sẽ dẫn đến các bài toán sắp xếp một danh sách chỉ gồm một phần tử hoặc gồm nhiều phần tử có khoá bằng nhau, đó chính là các bài toán cơ sở, vì bản thân chúng đã có thứ tự rồi Ở đây chúng
ta cũng không có việc tổng hợp kết quả một cách tường minh, vì việc đó đã được thực hiện trong quá trình phân hoạch
Trang 272.1.3 Giải thuật Heuristic:
Là các giải thuật dựa trên phân tích yếu tố cụ thể gắn với bài toán để xác định phương hướng tìm kiếm lời giải Nó thể hiện cách giải bài toán với các đặc tính sau :
- Thường tìm được lời giải tốt nhưng không chắc là lời giải tốt nhất)
- Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn
- Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người
Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người ta thường dựa vào một số nguyên lý cơ sở như sau:
- Nguyên lý vét cạn thông minh: Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu
- Nguyên lý tham lam (Greedy):
Lấy tiêu chuẩn tối ưu trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ của từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lời giải
Trang 28- Xếp thời khóa biểu các lớp khó xếp trước, ở đây độ khó xếp có thể đánh giá qua số giờ giảng dạy được phân cho giáo viên phụ trách lớp Số giờ càng lớp, độ khó càng cao
- Phòng học sử dụng cho lớp được gán cho nhiều lớp khác: số lớp được gán càng lớn, độ khó càng cao
Hai tiêu chí độ khó này thể hiện thực tế: do giáo viên phụ trách lớp dạy nhiều nên thời gian tự do lựa chọn của giáo viên giảm Tương tự với trường hợp phòng học
2.2 Đánh giá các phương pháp:
- Giải thuật chia để trị:
+ Ưu điểm: Chia nhỏ các bài toán nên giảm được sự phức tạp của bài toán + Nhược điểm: Các bài toán con khi kết hợp lại để tạo bài toán hoàn
chỉnh dễ xảy ra xung đột
Bài toán xếp thời khóa biểu có độ phức tạp lớn, và là bài toán đa mục tiêu Vì vậy cần chia bài toán thành nhiều bài toán nhỏ để giảm bớt độ phức tạp các bài toán Sau đó lại kết hợp lời giải các bài toán nhỏ để tạo Thời khóa biểu tổng thể Điều này càng dẫn đến xảy ra xung đột vì vậy bài toán thời khóa biểu không nên áp dụng phương pháp này Ta chỉ nên kếp hợp với các phương pháp khác để giải quyết bài toãn xếp thời khóa biểu
- Giải thuật vét cạn:
+ Ưu điểm: Vét được các trường hợp của bài toán
+ Nhược điểm: Với bài toán lớn như thời khóa biểu độ phức tạp lớn
nên cần nhiều thời gian để thực hiện
Như vậy giải thuật vét cạn về mặt nguyên tắc luôn tìm được nghiệm nếu bài toán có nghiệm Nhưng trên thực tế, các bài toán thời khóa biểu không nên áp dụng phương pháp này, vì ta phải phát triển một không gian trạng thái cực lớn trước khi đi đến trạng thái đích Do các hạn chế về thời gian tính toán và dung lượng bộ nhớ, không cho phép ta thực hiện được
Trang 29- Giải thuật Heuristic:
+ Ưu điểm: Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi
với cách suy nghĩ và hành động của con người Dễ dàng và nhanh chóng đưa ra kết quả vì vậy chi phí thấp hơn
+ Nhược điểm: Có nhiều bài toán cho tới nay vẫn chưa xây dựng
được thuật toán Có bài toán xây dựng được thuật toán song không thể áp dụng được do không đủ tài nguyên để cung cấp Có thể giải quyết một số bài toán theo những cách khác, thường cho kết quả tốt và thực hiện dễ dàng hơn so với thuật toán
Như vậy, Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người Dễ dàng và nhanh chóng đưa ra kết quả vì vậy chi phí thấp hơn Do đó có thể áp dụng giải thuật Heuristic để giải quyết bài toán xếp thời khóa biểu
- Căn cứ vào quy trình xây dựng thời khóa biểu và các yêu cầu thực
tế, em lấy tiêu chí là xây dựng được một thuật giải riêng phù hợp với quy trình xếp thời khóa biểu của trường học, tìm ra được một thời khóa biểu khả thi, chấp nhận được
- Tuy nhiên nhận thấy phương pháp chia nhỏ để giải quyết bài toán và xây dựng hàm tối ưu của thuật toán Heuristic là tối ưu hóa đàn kiến(ANT
Trang 30COLONY OPTIMIZATION: ACO) là những phương hướng tốt để giải quyết bài toán xếp thời khóa biểu
2.3 Giới thiệu giải thuật tối ưu hóa đàn kiến (ANT COLONY OPTIMIZATION: ACO)
Bài toán tối ưu hóa tổ hợp (Combinatorial Optimization Problems) là bài toán hấp dẫn và thú vị phần lớn chúng đều dễ để hình dung nhưng khó tìm ra lời giải Nhiều bài toán tối ưu hóa tổ hợp là các bài toán NP – khó và chúng không thể giải được trong thời gian đa thức Trên thực tế người ta thường giải quyết các bài toán này bằng các phương pháp xấp xỉ, chúng có nghiệm gần tối ưu và thời gian chạy khá ngắn Các thuật toán thuộc loại này thường được gọi là các thuật toán heuristic, chúng được sử dụng để giải quyết các bài toán cụ thể Mở rộng của chúng là các bài toán metaheuristic có thể giải quyết được cả một lớp các bài toán rộng lớn Phương pháp tối ưu hóa đàn kiến (Ant Colony Optimization: ACO) là một phương pháp theo hướng tiếp cận như thế
Tối ưu đàn kiến (Ant Colony Optimization: ACO) là một phương Metaheuristic được đề xuất bởi Dorigo vào năm 1991[3] dựa trên ý tưởng
mô phỏng cách tìm đường đi từ tổ tới nguồn thức ăn của các con kiến tự nhiên Trên đường đi của mình các con kiến thực để lại một vết hóa chất
được gọi là vết mùi (pheromone trail), đặc điểm sinh hóa học của vết mùi
này là có khả năng ứ đọng, bay hơi và là phương tiện giao tiếp báo cho các con kiến khác thông tin về đường đi đó một cách gián tiếp Các con kiến sẽ lựa chọn đường đi nào tồn đọng lượng mùi hay có cường độ vết mùi lớn nhất tại thời điểm lựa chọn để đi, nhờ cách giao tiếp mang tính gián tiếp và cộng đồng này mà đàn kiến trong tự nhiên tìm được đường đi ngắn nhất trong quá trình tìm thức ăn mang về tổ và ngược lại
Sử dụng mô hình kiến nhân tạo này Dorigo (1991) đã xây dựng thuật
toán hệ kiến (AS) giải bài toán người chào hàng Thuật toán này đã được
Trang 31chứng minh tính hiệu quả thông qua thực nghiệm so với các mô phỏng tự nhiên khác như SA mô phỏng luyện kim) và GA (giải thuật di truyền) Thuật toán này về sau được phát triển và có nhiều áp dụng phong phú trong thực tế, được gọi chung là phương pháp ACO
- ACO là một mô hình để thiết kế các thuật toán metaheuristic cho việc giải quyết bài toán tối ưu hóa tổ hợp
- ACO – phương pháp tối ưu hóa đàn kiến [1] mô phỏng hành vi của bầy kiến trong tự nhiên nhằm tìm kiếm đường đi ngắn nhất giữa tổ kiến và nguốn thức ăn dựa trên mật độ mùi (Pheromone) mà các con kiến để lại trên đường đi Thuật toán này lần đầu tiên được ứng dụng giải bài toán phân loại các trạm làm việc vào năm 1991 Sau đó, rất nhiều các biến thể của thuật toán dựa trên các nguyên lý cơ bản của nó được giới thiệu Đặc điểm chủ yếu của thuật toán ACO là sự kết hợp của các thông tin về cấu trúc của lời giải triển vọng với thông tin về cấu trúc của các lời giải tốt trước đó
- Hiệu quả nổi trội của thuật toán ACO đã được thể hiện khi so sánh với một số thuật toán nổi tiếng khác như thuật toán di truyền (GA), Tabu-Search, ocal Search, … Người ta đã áp dụng rất thành công các thuật toán kiến trong một số các bài toán tối ưu thường gặp như: bài toán người chào hàng, bài toán người đưa thư, bài toán gán, bài toán tô màu đồ thị, bài toán lập lịch, …trong đó phải kể đến bài toán xếp thời khóa biểu
Nhờ những thành quả to lớn trong việc ứng dụng phương pháp tối ưu đàn kiến vào giải các bài toán tối ưu tổ hợp khó mở ra một lĩnh vực nghiên cứu và ứng dụng mới thu hút được sự quan tâm của đông đảo các nhà khoa học trên thế giới, Dorigo đã được Hội đồng châu u trao giải thưởng đặc
biệt Marie Curie (Marie Curie Excellence Award) trao hai năm một lần
giành cho năm nhà khoa học có nhiều đóng góp cho nền khoa học và công nghệ châu u vào ngày 05 11 2003 Cho đến nay, các hội nghị về đàn kiến
Trang 32đã tổ chức 6 lần ANT 98, ANT 2000, ANTS 2002, ANTS 2004, ANTS
2006, ANTS 2008) và ở mỗi hội nghị có khoảng 30-40 báo cáo về các công trình nghiên cứu lý thuyết và thực nghiệm có ý nghĩa khoa học và ứng dụng quan trọng góp phần chứng tỏ ACO là phương pháp tối ưu mới mẻ và hiệu quả http://iridia.ulb.ac.be/~ants/)
2.4 Mô tả giải thuật tối ưu hóa đàn kiến
2.4.1 Trình bày giải thuật
Khi áp dụng ACO cho các bài toán cụ thể, có bốn yếu tố quyết định hiệu quả của thuật toán:
- Xây dựng đồ thi cấu trúc thích hợp: Tùy thuộc vào đặc thù của bài toán
- Xây dựng lời giải tuần tự: Tùy thuộc vào đặc thù của bài toán
- Chọn thông tin heuristic: Thông tin heuristic tốt sẽ làm tăng hiệu quả
của thuật toán Tuy nhiên có nhiều bài toán không có thông tin này thì có thể đánh giá chúng như nhau
- Chọn quy tắc cập nhật mùi: Quy tắc cập nhật mùi[2],[6] thể hiện
chiến lược học của thuật toán Hai yếu tố đầu: Đồ thị cấu trúc và thông tin heuristic phụ thuộc vào bài toán cụ thể, còn quy tắc cập nhật mùi là yếu tố
phổ dụng và thường dùng làm tên để phân biệt cho các thuật toán ACO
a Đồ thị cấu trúc
Bài toán tối ưu tổ hợp tổng quát
Mỗi bài toán tối ưu tổ hợp tổng quát ứng với một bộ ba trong
đó S là tập hữu hạn các trạng thái (lời giải tiềm năng hay phương án), f là hàm mục tiêu xác định trên S, còn Ω là tập các ràng buộc Mỗi phương án thỏa mãn các ràng buộc gọi là phương án chấp nhận được Mục tiêu của chúng là tìm ra phương án tối ưu hóa toàn cục đối với hàm mục tiêu , nói cách khác chính là tìm phương án sao cho với mọi Đối với bài toán này ta có 3 cách giải quyết đó là: Vét cạn, kỹ thuật ăn tham hoặc phương pháp tối ưu trong lĩnh vực NP-khó
Trang 33Các tập C, S, Ω có đặc tính như sau [1,tr.31-32]: C là một tập hữu hạn
mà mỗi phương án của C gồm một bộ ba trong đó S là tập hữu hạn các trạng thái (lời giải tiềm năng hay phương án), f là hàm mục tiêu xác định trên S, còn Ω là tập các ràng buộc
1) Ký hiệu X là tập các vectơ trong C độ dài không quá h: X = hi đó, mỗi phương án s trong S được xác định bởi ít nhất một vectơ trong X như ở điểm 2)
2) Tồn tại tập con X* của X và ánh xạ từ X*
lên S sao cho không rỗng với S, trong đó tập X*
Mỗi bài toán tối ưu tổ hợp được xem như một bài toán tìm kiếm vectơ
độ dài không quá trên đồ thị đầy đủ có các đỉnh được gán nhãn trong tập Để tìm các lời giải chấp nhận được, ta xây dựng đồ thị với tập đỉnh , mỗi đỉnh của nó tương ứng với mỗi thành phần của Các lời giải chấp nhận được sẽ là các vectơ được xác định theo thủ tục mở rộng tuần tự hay
mở rộng ngẫu nhiên
Thông thường, đối với các bài toán thuộc loại NP-khó, người ta đưa ra các phương pháp heuristic tìm lời giải đủ tốt cho bài toán Các thuật toán ACO kết hợp thông tin heuristic này với phương pháp học tăng cường, mô phỏng hành vi của đàn kiến, để tìm lời giải tốt hơn
Trang 34Ta gọi đồ thị là đồ thị cấu trúc của bài toán tối ưu tổ
hợp, trong đó V là tập đỉnh, E là tập cạnh, H là vectơ các trọng số heuristic của cạnh và là vectơ biểu thị các thông tin học tăng cường Từ các cạnh ta xây dựng tập X* nhờ mở rộng tập theo thủ tục tuần tự Nếu không có thông tin heuristics thì ta xem H có các thành phần như nhau và bằng 1
Trường hợp tổng quát, là đồ thị đầy đủ.Tuy nhiên, tùy theo ràng buộc của bài toán, các cạnh có thể lược bớt để giảm miền tìm kiếm lời giải theo thủ tục mở rộng tuần tự Chẳng hạn, với bài toán tìm cực trị của hàm giải tích , với thuộc tập giá trị hữu hạn , đồ thị cấu trúc có tầng, tầng chứa các đỉnh thuộc tập , còn tập cạnh chỉ gồm các cạnh nối các đỉnh thuộc tầng với các đỉnh thuộc tầng như trong hình 2.1 hi đó tập là tập , mỗi mở rộng tuần tự của lời giải sẽ được xây dựng từ một đỉnh thuộc tập này
Hình 2.1: Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm
c Xây dựng lời giải
Lời giải trên đồ thị cấu trúc như sau: hởi tạo với m con kiến, tại mỗi lần lặp, kiến sẽ chọn ngẫu nhiên một đỉnh để làm khởi tạo
Trang 35ban đầu x0 = với Sau đó các con kiến sẽ đi xây dựng lời giải theo thủ tục bước ngẫu nhiên
Từ đỉnh ta tiến hành mở rộng các đỉnh cho đến khi thuộc vào X*, nghĩa là tìm được lời giải chấp nhận được Giả sử con kiến đang ở đỉnh
(2.1)
Trong đó :
, : Giá trị thông tin mùi và thông tin heuristic
: Hai tham số quyết định sự ảnh hưởng tương quan giữa thông tin mùi và thông tin heuristic Nếu không có học tăng cường Nếu chỉ có thông tin học tăng cường biểu thị qua vết mùi được sử dụng, không có thông tin heurisric
: Đỉnh lân cận của đỉnh i mà kiến có thể đi đến
Quá trình mở rộng tiếp tục cho tới khi kiến tìm được lời giải chấp nhận được trong và do đó
Hình 2.2: Lựa chọn đỉnh đi tiếp theo
Trang 36Để tiện trình bày, về sau ta sẽ xem và như nhau và không phân biệt với
d Cập nhật mùi
Dựa trên lời giải tìm được, đàn kiến sẽ thực hiện cập nhật mùi theo cách học tăng cường
(2.2) Trong đó: : hệ số bay hơi tỷ lệ lượng mùi bị bay hơi), là hằng số thuộc khoảng (0,1)
: lượng mùi do kiến để lại
e Trình bày về thuật toán ACO cơ bản
Tiến hành sử dụng m con kiến để xây dựng lời giải trên đồ thị cấu trúc Quá trình tìm kiếm lời giải trên đồ thị kết thúc theo số bước lặp hoặc giới hạn thời gian chạy
Procedure Thuật toán ACO;
Begin
Khởi tạo tham số, ma trận mùi, khởi tạo m con kiến;
Repeat For =1 to m do
Kiến xây dựng lời giải;
Cập nhật mùi;
Cập nhật lời giải tốt nhất;
Until điều kiện kết thúc);
Đưa ra lời giải tốt nhất;
End ;
Hình 2.3: Đặc tả thuật toán ACO
Trang 37Nhận xét chung về các thuật toán ACO
- Nhờ kết hợp thông tin heuristic, thông tin học tăng cường và mô
phỏng hoạt động của đàn kiến, các thuật toán ACO có các ưu điểm sau:
1) Việc tìm kiếm ngẫu nhiên dựa trên các thông tin heuristic trở nên linh hoạt và mềm dẻo trên miền rộng hơn so với các phương pháp heuristic đã có Do
đó, cho ta lời giải tốt hơn và có thể tìm được lời giải tối ưu
2) Học tăng cường thông qua thông tin về cường độ vết mùi cho phép từng bước thu hẹp không gian tìm kiếm, mà vẫn không loại bỏ các lời giải tốt, do đó nâng cao chất lượng thuật toán
- Khi áp dụng phương pháp ACO cho các bài toán cụ thể, các yếu tố sau có ảnh hưởng quyết định đến hiệu quả thuật toán:
1) Xây dựng đồ thị cấu trúc thích hợp Việc xây dựng đồ thị cấu trúc để
tìm được lời giải cho bài toán theo thủ tục tuần tự không khó hó khăn chính là với các bài toán cỡ lớn, không gian tìm kiếm quá rộng, đòi hỏi ta sử dụng các
ràng buộc một cách hợp lý để giảm miền tìm kiếm của kiến
2) Chọn thông tin heuristic Thông tin heuristic tốt sẽ tăng hiệu quả thuật
toán Tuy nhiên, trong nhiều bài toán không có thông tin này thì có thể đánh giá chúng như nhau hi đó, ban đầu thuật toán chỉ đơn thuần chạy theo phương thức tìm kiếm ngẫu nhiên, vết mùi thể hiện định hướng của học tăng cường và thuật toán vẫn thực hiện được
3) Chọn quy tắc cập nhật mùi Quy tắc cập nhật mùi thể hiện chiến lược
học của thuật toán Trong khi đồ thị cấu trúc và thông tin heuristic phụ thuộc vào bài toán cụ thể, quy tắc cập nhật mùi lại là yếu tố phổ dụng và thường dùng để đặt tên cho thuật toán Có nhiều quy tắc cập nhật mùi đã được đề xuất, luận văn này sẽ tìm quy tắc thích hợp cho hai loại bài toán, tùy theo thông tin heuristic ảnh hưởng nhiều hay ít tới thủ tục tìm kiếm lời giải
2.4.2 Một số vấn đề liên quan
a Đặc tính hội tụ
Gutjahr là một trong những người đầu tiên nghiên cứu đặc tính hội tụ của thuật toán MMAS (Max – Min Ant System), nhưng chưa xét đến yếu