Tải bản đầy đủ (.doc) (78 trang)

Giải thuật di truyền giải bài toán lập kế hoạch học tập

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 (2.92 MB, 78 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN LẬP KẾ HOẠCH HỌC TẬP
Chuyên ngành : Công Nghệ Thông Tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
Công nghệ thông tin
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS. Huỳnh Thị Thanh Bình
Giải thuật di truyền giải bài toán lập kế hoạch học tập
Hà Nội – Năm 2014
2
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
MỤC LỤC
MỤC LỤC 3
LỜI CAM ĐOAN 6
DANH MỤC THUẬT NGỮ - VIẾT TẮT 7
DANH MỤC HÌNH VẼ, ĐỒ THỊ 8
DANH MỤC BẢNG 10
MỞ ĐẦU 12
CHƯƠNG 1. GIỚI THIỆU 16
1.1.ĐẶT VẤN ĐỀ 16
1.2.CÁC NGHIÊN CỨU LIÊN QUAN 16
1.3.PHÁT BIỂU BÀI TOÁN 17
1.3.1. Mô tả quy trình lập kế hoạch học tập của Trường Sĩ quan Tăng thiết
giáp 17
1.3.2.Đầu vào 18
1.3.3.Các ràng buộc 18
1.3.4.Mục tiêu 19


1.3.5.Đầu ra 19
1.4.MÔ HÌNH BÀI TOÁN 20
1.4.1.Các chỉ số 20
1.4.2.Các biến 20
1.4.3.Công thức cho các hàm ràng buộc 21
1.4.4.Công thức cho các hàm mục tiêu 22
1.4.5.Phương pháp giải quyết 22
CHƯƠNG 2. GIẢI THUẬT DI TRUYỀN 23
2.1.KHÁI NIỆM CƠ BẢN 23
2.1.1. Lịch sử giải thuật di truyền 23
2.1.2. Khái niệm 24
3
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
2.2.CÁC THAM SỐ CỦA GIẢI THUẬT DI TRUYỀN 36
2.3.ỨNG DỤNG GIẢI THUẬT DI TRUYỀN 36
2.4.BÀI TOÁN TỐI ƯU 37
2.4.1.Một số khái niệm 37
2.4.2.Các bài toán tối ưu 38
CHƯƠNG 3. ÁP DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN LẬP KẾ
HOẠCH HỌC TẬP TẠI TRƯỜNG SĨ QUAN TĂNG THIẾT GIÁP 43
3.1.CÁC ĐỐI TƯỢNG 43
3.2.BIỂU DIỄN MÔ HÌNH CÁ THỂ 44
3.3.KHỞI TẠO QUẦN THỂ 46
3.4.BIỂU DIỄN CÁC RÀNG BUỘC 47
3.5.CÁC TOÁN TỬ DI TRUYỀN 50
3.5.1.Đột biến 50
3.5.2.Lai ghép 51
3.6.TÍNH ĐỘ THÍCH NGHI CỦA CÁ THỂ 53
3.7.THAM SỐ CỦA GIẢI THUẬT 54

CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC 55
4.1.GIẢI PHÁP CÔNG NGHỆ 55
4.1.1.Hệ điều hành 55
4.1.2.Nền tảng, ngôn ngữ lập trình 55
4.1.3.Hệ quản trị CSDL 55
4.1.4.Công cụ phát triển ứng dụng quản lý 56
4.1.5.Giải pháp phân quyền sử dụng và dữ liệu 56
4.1.6.Giải pháp sao lưu phục hồi 57
4.2.MÔ HÌNH HỆ THỐNG 58
4.2.1.Mô hình triển khai 58
4.2.2.Mô hình xây dựng ứng dụng 59
4.3.THỰC NGHIỆM 61
4
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
4.3.1.Cơ sở dữ liệu 61
4.3.2.Dữ liệu mẫu 70
4.3.3.Tham số thử nghiệm 71
4.3.4.Kết quả thử nghiệm 71
4.3.5.Giao diện phần mềm 72
4.4.NHẬN XÉT 76
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78
5.1.CÁC KẾT QUẢ ĐẠT ĐƯỢC 78
5.2.HẠN CHẾ 78
5.3.HƯỚNG PHÁT TRIỂN 78
TÀI LIỆU THAM KHẢO 80
5
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
LỜI CAM ĐOAN

Luận văn Thạc sĩ “Giải thuật di truyền giải bài toán lập kế hoạch học tập”,
chuyên ngành Công nghệ thông tin là công trình của cá nhân tôi. Các nội dung
nghiên cứu và kết quả trình bày trong luận văn là trung thực rõ ràng. Các tài liệu
tham khảo, nội dung trích dẫn đã ghi rõ nguồn gốc.
Ngày 25 tháng 3 năm 2014
Tác giả luận văn
Đỗ Ngọc Phục
6
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
DANH MỤC THUẬT NGỮ - VIẾT TẮT
STT Viết tắt Nguyên gốc Chú thích
1. TTG Tăng thiết giáp
2. SQ Sĩ quan
3. TSQTTG Trường sĩ quan Tăng
thiết giáp
4. GA Genetic Algorithm Giải thuật di truyền
5. NST Nhiễm sắc thể
6. P Population Quần thể
7. G Generation Thế hệ
8. Thêm Thêm mới bản ghi
9. Sửa Sửa bản ghi
10. Xoá Xoá bản ghi
11. Tải lại Tải lại danh sách dữ liệu
12. In In danh sách bản ghi
13. Xuất Xuất danh sách bản ghi ra
excel
7
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập

DANH MỤC HÌNH VẼ, ĐỒ THỊ

Hình 1. Xác xuất của mỗi NST theo kiểu lựa chọn Roulet 27
Hình 2: Lựa chọn xếp hạng 29
Hình 3: Lai ghép một điểm cắt mã hóa nhị phân 30
Hình 4: Lai ghép một điểm cắt mã hóa nhị phân 30
Hình 5: Lai ghép đồng nhất mã hóa nhị phân 31
Hình 6. Mặt nạ lai ghép đồng nhất 31
Hình 7: Lai ghép số học mã hóa nhị phân 31
Hình 8. Lai ghép một điểm cắt mã hóa hoán vị 32
Hình 9. Phép đảo bit mã hóa nhị phân 32
Hình 10. Hoán vị thứ tự mã hóa hoán vị 33
Hình 11. Thay đổi giá trị trong mã hóa giá trị 33
Hình 12. Sơ đồ chiến lược nạp lại hoàn toàn 34
Hình 13. Sơ đồ chiến lược nạp lại ngẫu nhiên 34
Hình 14. Sơ đồ chiến lược nạp lại theo mô hình cá thể tối ưu 35
Hình 15. Mô hình giải thuật 36
Hình 16. Mạch logic, đầu vào được nhập từ bên trái và đầu ra ở bên phải 39
Hình 17: Các lớp bài toán P, NP và co-NP 40
Hình 18: Phân lớp tạm thời các bài toán 41
Hình 19 Biểu diễn mô hình cá thể 44
Hình 20. Mô hình triển khai 59
Hình 21. Mô hình ứng dụng client/server 60
Hình 22. Kiến trúc ứng dụng 3 lớp 61
Hình 23. Giao diện đăng nhập 72
Hình 24. Giao diện quản lý danh mục 72
Hình 25. Giao diện phân công giáo viên dạy môn và lớp học 73
8
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập

Hình 26. Giao diện dữ liệu chuẩn bị trước khi giải thuật thực hiện 73
Hình 27. Giao diện kết quả của phần mềm 74
Hình 28. Giao diện cập nhật chương trình đào tạo 74
Hình 29. Thiết lập lớp thuộc chương trình đào tạo 75
Hình 30. Giao diện thiết lập tham số hệ thống 76
Hình 31. Giao diện thiết lập tham số giải thuật 76
9
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
DANH MỤC BẢNG
Bảng 1. Bảng chỉ số 20
Bảng 2: Mã hóa nhị phân độ dài 20 bit 24
Bảng 3: Mã hóa hoán vị 2 NST A&B 25
Bảng 4: Mã hóa giá trị các NST A, B, C 26
Bảng 5. Khởi tạo cá thể 45
Bảng 6. Sao chép cá thể 45
Bảng 7. Khởi tạo dữ liệu vector của cá thể 46
Bảng 8. Khởi tạo quần thể 47
Bảng 9. Biểu diễn ràng buộc giảng viên không dạy 2 lớp cùng thời điểm 47
Bảng 10. Biểu diễn ràng buộc phòng không tồn tại 2 lớp cùng thời điểm 48
Bảng 11. Biểu diễn ràng buộc số học viên không quá số ghế ngồi của phòng 48
Bảng 12. Biểu diễn ràng buộc lớp không học 2 môn cùng thời điểm 49
Bảng 13. Biểu diễn ràng buộc môn thể dục không học tiết 5, 6 49
Bảng 14. Biểu diễn ràng buộc bài học bắt buộc sử dụng phòng thực hành, bãi tập. 50
Bảng 15. Đột biến 51
Bảng 16. Chọn điểm lai ghép 51
Bảng 17. Lai ghép 52
Bảng 18. Tính độ thích nghi của cá thể 54
Bảng 19. Danh mục đơn vị 62
Bảng 20. Danh mục hình thức bài học 62

Bảng 21. Danh mục loại phòng học 63
Bảng 22. Danh mục môn học 63
Bảng 23. Danh mục phòng học 64
Bảng 24. Bảng dữ liệu người dùng 64
Bảng 25. Bảng phân quyền người dùng 65
Bảng 26. Bảng nhật ký sử dụng 66
10
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
Bảng 27. Bảng dữ liệu chương trình đào tạo 66
Bảng 28. Bảng dữ liệu chương trình đào tạo chi tiết 67
Bảng 29. Bảng dữ liệu chi tiết bài học của môn học trong chương trình đào tạo 68
Bảng 30. Bảng dữ liệu phân công Giảng viên – Lớp học 68
Bảng 31. Bảng dữ liệu phân công Giảng viên – Môn học 69
Bảng 32. Bảng dữ liệu kết quả xếp lịch 70
Bảng 33. Bảng dữ liệu thử nghiệm đơn giản 70
Bảng 34. Bảng dữ liệu thử nghiệm thực tế 71
Bảng 35: Bảng tham số thử nghiệm 71
Bảng 36. Bảng kết quả thử nghiệm đơn giản 71
Bảng 37. Bảng kết quả thử nghiệm thực tế 71
11
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
MỞ ĐẦU
1. Lý do chọn đề tài
Trong cuộc sống ta thường gặp các bài toán liên quan đến xếp lịch như lịch
vận hành cho máy móc, lịch thực hiện dự án, lịch làm việc, lịch thi đấu trong thể
thao, lịch sửa dụng tài nguyên,… Đối với mỗi loại bài toán này cần tìm ra phương
án xếp lịch thoả mãn tất cả các ràng buộc cũng như khai thác hiệu quả các nguồn tài
nguyên hiện có, giảm thời gian và chi phí thực hiện.

Bài toán lập kế hoạch học tập trong trường học nói chung và trong trường Đại
học nói riêng là một trong những bài toán như vậy. Có rất nhiều ràng buộc được đặt
ra trong bài toán này như ràng buộc về đối tượng tham gia (giảng viên, học viện,
lớp học), ràng buộc về tài nguyên phục vụ giảng dạy (phòng học lý thuyết, phòng
học thực hành, máy chiếu, đồ dùng hỗ trợ giảng dạy…), ràng buộc về thời gian (số
tiết học, số lần học, số tiết mỗi lần học), ràng buộc về chuyên mồn và nhiều ràng
buộc khác phụ thuộc vào từng trường. Vấn đề đặt ra là xây dựng một thời khoá biểu
thoả mãn tất cả các ràng buộc trên đồng thời khai thác hiệu quả các nguồn tài
nguyên phục vụ giảng dạy.
Bài toán lập kế hoạch học tập thuộc lớp các bài toán NP-đầy đủ vì vậy có thể
không tìm ra lời giải tối ưu. Đây là một bài toán không mới và đã có nhiều giải
thuật được đưa ra để giải quyết như giải thuật nhánh cận, giải thuật leo đồi, giải
thuật luyện thép, giải thuật tô màu đồ thị, giải thuật xấp xỉ,… Tuy nhiên các giải
thuật này thường không có tính tổng quát và chỉ áp dụng hiệu quả đối với các bài
toán quy mô nhỏ, ràng buộc ít về mặt dữ liệu.
Ở Việt Nam hiện nay, các trường Đại học đang có nhiều hình thức đào tạo
khác nhau như đào tạo tín chỉ, đạo tạo niên chế và có cả trường áp dụng cả 2 hình
thức. Do vậy việc xếp kế hoạch học tập vẫn là một gánh nặng cho các trường, đặc
biệt với những trường có quy mô đào tạo lớn. Mặt khác trên thị trường hiện tại cũng
chưa có sản phẩm nào giải quyết hiệu quả bài toán.
Trong những năm gần đây, phương pháp tiếp cận di truyền đã thu hút rất
nhiều sự chú ý trong các lĩnh vực nghiên cứu khác nhau trong đó có khoa học máy
tính. Phương pháp này có nhiều đặc điểm nổi trội như không đòi hỏi tri thức, tránh
tối ưu cục bộ, thực hiện tốt các bài toán có không gian lời giải lớn và có thể áp dụng
cho nhiều loại bài toán tối ưu khác nhau. Trên thế giới hiện nay giải thuật di truyền
kết hợp với tin học được ứng dụng để giải quyết những bài toán tối ưu một cách rất
hiệu quả. Vì vậy việc nghiên cứu và ứng dụng giải thuật di truyền (Genetic
12
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập

Algorithm - GA) để giải quyết hiệu quả bài toán lập kế hoạch học tập là việc làm
cần thiết.
2. Mục tiêu của đề tài
Đề tài tập trung nghiên cứu và ứng dụng giải thuật di truyền vào bài toán lập
kế hoạch học tập cho Trường Sĩ quan Tăng Thiết Giáp (TSQTTG). Đây là trường
trong ngành quân đội có một số đặc thù riêng trong quá trình lập kế hoạch học tập
với nhiều ràng buộc đặt ra.
Để đạt được các mục tiêu trên, đề tài tập trung vào các nhiệm vụ cụ thể sau:
- Phân tích đặc điểm của bài toán lập kế hoạch học tập tại trường để từ đó đề
ra các giải pháp hợp lý trong việc xây dựng và triển khai hệ thống.
- Tìm hiểu giải thuật di truyền và ứng dụng của nó trong việc giải quyết các
bài toán tối ưu.
- Ứng dụng giải thuật di truyền vào bài toán lập kế hoạch học tập cho trường.
- Thiết kế hệ thống và xây dựng ứng dụng.
- Phân tích, đánh giá kết quả đạt được khi thực hiện hệ thống với các bộ dữ
liệu thử đơn giản.
- Triển khai thực nghiệm với bộ dữ liệu của Trường SQTTG.
3. Đối tượng và phạm vi nghiên cứu
Nghiên cứu các đặc điểm, đặc trưng của giải thuật di truyền, các thành phần
cơ bản như khởi tạo quần thể ban đầu, đánh giá độ thích nghi của các cá thể, các
toán tử di truyền (chọn lọc, lai ghép, đột biến), điều kiện dừng.
Ứng dụng giải thuật di truyền vào bài toán lập kế hoạch học tập tại một
trường cấp Đại học trong ngành Quân đội theo học niên chế với những ràng buộc và
những yêu cầu cơ bản.
4. Phương pháp nghiên cứu
a. Phương pháp nghiên cứu lý thuyết
- Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan.
- Tổng hợp các tài liệu lý thuyết về giải thuật di truyền.
- Biểu diễn bài toán lập kế hoạch học tập trong trường bằng mô hình giải thuật
di truyền.

13
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
b. Phương pháp nghiên cứu thực nghiệm
- Phân tích, thiết kế hệ thống theo quy trình xây dựng phần mềm.
- Xây dựng hệ thống lập kế hoạch học tập sử dụng giải thuật di truyền.
- Thử nghiệm hệ thống và đánh giá kết quả dựa trên bộ dữ liệu thử và dữ liệu
thực tế của trường.
5. Kết quả dự kiến
- Nhận thức đầy đủ về thế mạnh của giải thuật di truyền trong việc giải các bài
toán tối ưu.
- Đề ra được giải pháp và ứng dụng các vấn đề của giải thuật di truyền vào
việc giải quyết bài toán lập kế hoạch học tập cho trường SQTTG.
6. Ý nghĩa khoa học và thực tiễn
- Áp dụng giải thuật di truyền vào máy tính là phương pháp áp dụng các quy
luật của quá trình tiến hoá tự nhiên vào việc giải quyết các bài toán phức tạp
mà các thuật giải trước đó không đáp ứng được.
- Việc lập kế hoạch học tập sử dụng giải thuật di truyền là vấn đề không mới
nhưng chưa được áp dụng hiệu quả trong thực tế.
- Giải thuật di truyền không những áp dụng trong lĩnh vực lập lịch mà còn có
thể được ứng dụng trong nhiều bài toán tối ưu khác. Vì vậy kết quả nghiên
cứu của đề tài sẽ là nền tảng và cơ sở để tiếp tục nghiên cứu về sau.
- Kết quả của đề tài là hệ thống phần mềm TTGScheGA dùng để lập kế hoạch
học tập có tính dễ sử dụng, tính tuỳ biến cao, đáp ứng tốt nhu cầu người sử
dụng.
- Hệ thống có thể chạy tốt với bộ dữ liệu thực tế tại các trường đại học giúp
giảm đáng kể thời gian và công sức trong việc lập kế hoạch học tập.
7. Bố cục của luận văn
Bố cục của luận văn được chia thành 5 chương như sau:
Chương 1. Giới thiệu

Chương 1 nêu rõ tình hình lập kế hoạch học tập của trường Sĩ quan Tăng
thiết giáp và yêu cầu bài toán đặt ra, quy trình cần tin học hoá, các ràng buộc, dữ
liệu đầu vào, dữ liệu đầu ra, các yêu cầu chức năng.
Chương 2: Giải thuật di truyền
14
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
Chương 2 tập trung vào giới thiệu giải thuật di truyền, lịch sử phát triển,
hướng tiếp cận giải các bài toán tối ưu, quy trình thực hiện giải thuật và các ứng
dụng của giải thuật trong thực tế.
Chương 3: Giải thuật di truyền giải bài toán lập kế hoạch học tập tại trường Sĩ
quan Tăng Thiết giáp
Chương 3 nêu cách giải quyết bài toán lập kế hoạch học tập tại trường Sĩ
quan Tăng thiết giáp bằng Giải thuật di truyền, từ biểu diễn các thành phần của
giải thuật, dữ liệu đầu vào, dữ liệu đầu ra và cài đặt giải thuật để giải quyết bài
toán.
Chương 4: Kết quả đạt được
Chương 4 trình bày kết quả đạt được của phần mềm được cài đặt với các bộ
dữ liệu thử nghiệm và dữ liệu thực tế với những thay đổi các tham số của giải thuật
để có sự so sánh bộ tham số phù hợp.
Chương 5: Kết luận và hướng phát triển.
Chương 5 bàn về những vấn đề đã giải quyết được và những vấn đề còn chưa
giải quyết được trong phạm vi của đề tài và đề xuất hướng phát triển tiếp theo cho
đề tài.
15
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
CHƯƠNG 1. GIỚI THIỆU
1.1. ĐẶT VẤN ĐỀ
Trong lĩnh vực lập lịch, giải thuật di truyền đã thu hút được rất nhiều các

nghiên cứu và đề xuất. Bài toán lập lịch thuộc lớp các bài toán NP-khó và vì vậy, rất
cần các giải thuật xấp xỉ. Tính đến nay có rất nhiều các đề xuất sử dụng giải thuật di
truyền cho bài toán lập lịch. Tuy nhiên, bài toán lập lịch là một trong những bài toán
mà có nhiều thể loại đa dạng, mỗi một thể loại cần có thiết kế giải thuật di truyền
đặc biệt. Về cơ bản, bài toán lập lịch được coi như là việc gán các mốc thời gian
(time slots) thực hiện cho các cặp tiết học, phòng học sao cho phù hợp với khả năng
về tài nguyên (giảng viên, phòng học và trang thiết bị hỗ trợ). Tuy nhiên, sự đa dạng
thể hiện ở các thể loại ràng buộc khác nhau và mỗi một bài toán thực tế sẽ có những
ràng buộc đặc trưng riêng. Chính vì vậy, mà các nghiên cứu đề xuất giải thuật di
truyền cho bài toán lập lịch luôn luôn là một chủ đề nóng.
Trường Sĩ quan Tăng thiết giáp là trường trong quân đội nên lập kế hoạch học
tập (kế hoạch huấn luyện) có nhiều đặc thù riêng không giống các trường học dân
sự. Mục tiêu chính là xếp kế hoạch huấn luyện cho học viên của trường theo từng
tháng để trường có kế hoạch huấn luyện cho toàn bộ học viên về kế hoạch giảng
dạy của giảng viên.
1.2. CÁC NGHIÊN CỨU LIÊN QUAN
Công việc lập kế hoạch học tập (lập lịch) trong trường đại học đã được công
nhận là khó cả về phương diện lý thuyết cũng như thực tế. Một vài mô hình lập lịch
đã được mô tả trong thực tế, bao gồm từ lập lịch học của một trường đại học, lập
16
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Chương này sẽ trình bày các vấn đề sau:
• Phát biểu bài toán.
• Các nghiên cứu liên quan.
• Ứng dụng của bài toán.
Giải thuật di truyền giải bài toán lập kế hoạch học tập
lịch thi, hoặc một vài sự kiện trong trường đại học. Các bài toán này được xem là
bài toán lập lịch mà được định nghĩa như là các bài toán gán một số sự kiện như kì
thi, khóa học với các khoảng thời gian và phòng thỏa mãn các ràng buộc.
Trong 20 năm trở lại đây, các cách tiếp cận heuristic đã được áp dụng thành

công cho các bài toán lập lịch. Ví dụ, heuristics dựa trên đồ thị, tabu search, large
neighborhood search, giải thuật great deluge algorithms, hybrid algorithms, và
population based algorithms including memetic algorithms, ant colony
optimization, genetic algorithms, honeybee mating optimization (HBMO)
algorithms đã được ứng dụng. Tuy nhiên, các giải thuật này đặc trưng cho dạng bài
toán lập lịch tổng quát, nhưng khó khăn trong việc cài đặt giải quyết các bài toán cụ
thể.
Các giải thuật trên có thể được cải tiến phù hợp với những bài toán thực tế
hơn, nhưng quá trình này thường khó và không hiệu quả. Dựa trên một mô hình bài
toán cụ thể, ta sẽ xây dựng các ràng buộc đặc trưng cho bài toán đó. Từ đó, luận văn
đề xuất một giải thuật GA giải bài toán lập kế hoạch học tập.
1.3. PHÁT BIỂU BÀI TOÁN
1.3.1. Mô tả quy trình lập kế hoạch học tập của Trường Sĩ quan Tăng thiết
giáp.
- Tại trường Sĩ quan Tăng thiết hàng năm trước khi vào năm học mới, bộ phận
làm kế hoạch (Ban kế hoạch của Phòng Đào tạo) sẽ phải chuẩn bị chương
trình học chi tiết cho khoá học mới vào cho cả quá trình học tuỳ theo từng
đối tượng học (đối tượng 3 năm, 4 năm, ngắn hạn…).
- Mỗi chương trình học chỉ rõ từng môn học với số lượng tổng số tiết học (lý
thuyết, thực hành, bãi tập), danh sách các bài học cụ thể đến từng bài học và
số tiết. Tiết nào học thực hành hoặc ngoài bãi tập có thông tin trang bị hỗ trợ
phục vụ đi kèm của bài đó (tài nguyên sử dụng trong buổi học). Một số bài
học chỉ định phòng học bắt buộc.
- Dựa theo chương trình học, Ban Kế hoạch sẽ phân bổ kế hoạch học cho từng
đối tượng ứng với chương trình học cụ thể và lập lịch theo từng tháng. Tháng
trước lập lịch cho tháng tiếp theo. Do đặc thù của trường quân đội, giảng
17
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
viên thường xuyên có lịch công tác đột xuất do nhiệm vụ nên trong tháng lập

lịch cho tháng tiếp giảng viên phải đăng ký thời gian bận trong tháng tiếp.
Ban Kế hoạch dựa vào thông tin giảng viên bận hay rảnh để phân bổ bài học
của môn học cho phù hợp trong tháng để kịp theo chương trình học trong
năm.
- Sau khi đã có lịch của tháng tiếp theo, Ban Kế hoạch in ra trên giấy A0 và
xin xác nhận của Trưởng phòng Đào tạo, ký đóng dấu của nhà trường và gửi
công khai đến các khoa giảng viên, các đơn vị quản lý học viên.
Một số lưu ý trong lịch của trường:
- Cùng môn học nhưng với mỗi bài học có độ dài khác nhau thì xếp ở các tuần
cũng có độ dài số tiết học khác nhau. Ví dụ môn Vũ khí trong tuần hiện tại
học bài số 1 là 2 tiết nhưng ở tuần sau có thể học 4 tiết lý thuyết liên tục hoặc
6 tiết thực hành liên tục. Do vậy số tiết học phụ thuộc vào bài học của môn
học.
- Số tiết lý thuyết được xếp theo cặp (2, 4 tiết, 6 tiết).
- Thời gian học tập lý thuyết vào buổi sáng, buổi chiều ôn.
- Số lượng lớp học viên không lớn và mỗi lớp học một chuyên ngành riêng
nên không áp dụng ghép lớp.
1.3.2. Đầu vào
- Danh sách các chương trình học
- Bài học đến lượt được đưa vào xếp lịch tháng tiếp.
- Danh sách phòng học.
- Danh sách lớp học.
- Danh sách giảng viên.
- Các yêu cầu bắt buộc đối với bài học cụ thể (phòng học bắt buộc, trang bị hỗ
trợ bắt buộc)
- Bảng phân công giảng viên giảng dạy môn học, lớp học.
1.3.3. Các ràng buộc
Ràng buộc của bài toán được chia thành 2 loại là ràng buộc cứng và ràng buộc
mềm. Ràng buộc cứng là những ràng buộc bắt buộc kết quả phải thoả mã các ràng
18

Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
buộc đó. Ràng buộc mềm là ràng buộc tuỳ chọn và thường là mục tiêu tối ưu của
bài toán.
1.3.3.1. Ràng buộc cứng
- Một giảng viên không thể dạy 2 lớp học cùng một thời điểm.
- Một phòng tại một thời điểm không thể có 2 lớp học (trừ phòng học chung).
- Số lượng sinh viên không thể vượt quá số ghế ngồi của phòng.
- Một lớp không thể học 2 môn cùng một thời điểm.
- Môn thể dục sẽ không vào tiết 5-6 của buổi sáng.
- Bài học bắt buộc sử dụng phòng thực hành, bãi tập.
1.3.3.2. Ràng buộc mềm
- Khoảng trống giữa 2 lần dạy của giảng viên trong một buổi càng gần nhau
càng tốt.
- Thời gian trống của các lớp học viên càng ít càng tốt.
- Số tiết giảng viên dạy chênh lệch không quá lớn.
- Số phòng sử dụng càng ít càng tốt.
1.3.4. Mục tiêu
- Tìm một kế hoạch học tập thoả mã các ràng buộc cứng.
- Tối thiểu thời gian trống của các lớp học viên.
- Tối thiểu thời gian trống của các giảng viên.
- Tối thiểu số phòng sử dụng.
- Tối thiểu thời gian chênh lệch giữa các giảng viên.
1.3.5. Đầu ra
- Bản in Kế hoạch học tập của trường, xuất lịch theo các tiêu chí khác nhau:
lịch của khoa, lịch của giảng viên, lịch của phòng học trong tháng.
- Các biểu thống kê độ căng của giảng viên, của phòng trong từng ngày.
- Tổng thời gian dạy của từng giảng viên trong tháng.
19
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2

Giải thuật di truyền giải bài toán lập kế hoạch học tập
1.4. MÔ HÌNH BÀI TOÁN
1.4.1. Các chỉ số
Chỉ số Ý nghĩa Miền giá trị
G Chỉ số giảng viên 1≤g≤G
N Chỉ số ngày 2≤n≤6
T Chỉ số tiết trong ngày 1≤t≤6
M Chỉ số môn học 1≤m≤M
L Chỉ số lớp học 1≤l≤L
P Chỉ số phòng học 1≤p≤P
Bảng 1. Bảng chỉ số
Trong đó: G là tổng số giảng viên
M là tổng số môn học
L là tổng số lớp học
P là tổng số phòng học
1.4.2. Các biến
C(n,t,g,l) =
D(n,t,l,p) =
E(n,t,l,m) =
F(n,t,g) =
20
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
G(n,t,l) =
H(n,g) =
K(n,g) =
X(n,l) =
Y(n,l) =
Z(n,p) =


1.4.3. Công thức cho các hàm ràng buộc
• Một giảng viên không dạy hai lớp cùng một thời điểm:
- F1 = với mọi n,t,g
• Một phòng tại một thời điểm không thể có 2 lớp học:
- F2 = với mọi n,t,p
• Một lớp không thể học 2 môn cùng một thời điểm:
- F3 = với mọi n,t,l
• Một giảng viên không dạy liền 12 tiết một ngày:
21
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
- F4 = với mọi n,g
• Một lớp học tiết 6 buổi sang không học tiết 1 buổi chiều:
- F5 = Nếu G(n,6,l) = 1 thì G(n,7,l) = 0 với mọi n,l
• Môn thể dục không học vào tiết 5-6 buổi sáng:
- Gọi m
0
là chỉ số của môn thể dục.
- F6 = Khi đó: E(n,t,l,m
0
) =0 nếu t = 5,6 với mọi n,l
1.4.4. Công thức cho các hàm mục tiêu
• Tối thiểu thời gian trống của lớp sinh viên:
- Fit1 = Min ( ) với mọi l
• Tối thiểu thời gian trống của giảng viên:
- Fit2 = Min ( với mọi g
• Tối thiểu số phòng sử dụng
- Fit3 = Min ( với mọi n
1.4.5. Phương pháp giải quyết
Việc lập kế hoạch trong tháng có thể chia thành các tuần rời rạc trong tháng để

thực hiện, mỗi tuần lập kế hoạch từ thứ 2 đến thứ 6. Mỗi tháng có thể lập kế hoạch
cho 5 tuần. Mỗi tuần sau đi được xếp lịch, môn học sẽ được đánh dấu đã xếp lịch
đến bài học nào của môn, tuần tiếp theo sẽ thực hiện xếp cho bài học tiếp theo.
22
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
CHƯƠNG 2. GIẢI THUẬT DI TRUYỀN
2.1. KHÁI NIỆM CƠ BẢN
2.1.1. Lịch sử giải thuật di truyền
Ý niệm về giải thuật di truyền đã được một số nhà sinh vật học đưa ra từ
những năm 50-60, thế kỉ XX. A.S. Fraser là người tiên phong nêu lên sự tương
đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về Genetic
Algorithms (GA).
Tuy nhiên, chính John Henry Holland mới là người triển khai ý tưởng và
phương pháp giải quyết vấn đề dựa theo sự tiến hóa. Từ những bài giảng, bài báo
của mình, ông đã đúc kết các ý tưởng vào trong cuốn sách đầu tay Adaptation in
Natural and Artificial Systems, xuất bản năm 1975. Dựa trên lý thuyết cơ bản về
GA của Holand, Keneth De Jong đã triển khai và chứng minh những thành quả do
ông thực hiện đã góp phần quan trọng trong việc tạo ra nền tảng toán học cho lý
thuyết GA.
Giải thuật di truyền hình thành trên quan niệm cho rằng quá trình tiến hoá tự
nhiên là quá trình hoàn hảo nhất, hợp lý nhất, và tự nó đã mang tính tối ưu. Quan
niệm này có thể được xem như một tiên đề đúng không chứng minh được nhưng
phù hợp với thực tế khách quan. Quá trình tiến hoá thể hiện tính tối ưu ở chỗ thế hệ
sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước. Tiến hoá tự
nhiên được duy trì nhờ hai quá trình cơ bản : sinh sản và chọn lọc tự nhiên. Xuyên
suốt quá trình tiến hoá tự nhiên, thế hệ mới luôn được sinh ra và bổ sung thay thế
thế hệ cũ. Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại, ngược
23
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2

Chương này sẽ trình bày các vấn đề sau:
• Khái niệm cơ bản.
• Tham số của giải thuật di truyền.
• Ứng dụng của giải thuật di truyền.
Giải thuật di truyền giải bài toán lập kế hoạch học tập
lại sẽ bị đào thải. Sự thay đổi môi trường là động lực thúc đẩy quá trình tiến hoá và
ngược lại tiến hoá góp phần thay đổi môi trường.
2.1.2. Khái niệm
2.1.2.1. Nhiễm sắc thể
Các sinh vật sống đều cấu tạo từ các tế bào, và tất cả các tế bào này đều bao
gồm một tập hợp các nhiếm sắc thể giống nhau. Các NST này là một chuỗi các
AND, quy định đặc tính của cả cá thể. Mỗi NST bao gồm rất nhiều GEN, mỗi gen
quy định một trạng thái nào đó.
Trong bài toán tối ưu, mỗi cá thể tương ứng với một lời giải chấp nhận được.
Việc mã hóa và giải mã gen, biến đổi giữa kiểu gen và kiểu hình được quyết định
bởi tính chất của bài toán.
Trong giải thuật di truyền, nhiễm sắc thể được biểu diễn trên máy tính bằng
cách mã hoá nhiễm sắc thể và với từng bài toán khác nhau mà có cách mã hoá NST
cho phù hợp. Có các cách mã hoá NST sau :
2.1.2.1.1. Mã hóa nhị phân
Đây là cách mã hóa nhị phân phổ biến nhất.Mỗi một nhiễm sắc thể là một
chuỗi bit nhị phân 0 & 1. Mỗi một bit có thể biểu diến một đặc tính nào đó của lời
giải, và số bit cần để mã hóa được tính toán hợp lý để chuỗi nhị phân không quá
dài, mà chỉ vừa đủ cho biểu diễn thông tin cần thiết cho lời giải.
Chromosome A 00110101000010111010
Chromosome B 10111100110010001011
Bảng 2: Mã hóa nhị phân độ dài 20 bit
Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biến
hay nhiều biến. Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một (tập) giá trị
của (các) biến hoặc mỗi bộ chuỗi nhị phân sẽ biểu diễn một bộ nghiệm của hàm.

24
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2
Giải thuật di truyền giải bài toán lập kế hoạch học tập
Ví dụ: Trong bài toán cái túi, dùng một chuỗi nhị phân để biểu diễn một cách
xếp đồ vào túi có kích thước bằng số đồ vật, mỗi bit tương ứng với các đồ vật sẽ có
hai giá trị : giá trị 0 nếu đồ vật đó không được cho vào túi và giá trị 1 nếu đồ vật
được cho vào túi.
Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo ra
không gian mã hoá lớn hơn so với không gian giá trị của NST. Do đó, với nhiều bài
toán thì biểu diễn nhị phân là không hữu hiệu.
2.1.2.1.2. Mã hóa hoán vị
Mỗi NST là một chuỗi hoán vị của các số (thường là số tự nhiên) để biểu diễn
một trình tự nào đó.
Chromosome A 4 7 9 3 2 1 8 6 5
Chromosome B 9 6 5 1 4 3 2 7 8
Bảng 3: Mã hóa hoán vị 2 NST A&B
Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự. Đối với các bài
toán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong chuỗi đó
làm thay đổi trình tự của nó. Mã hóa hoán vị rất hữu ích với các bài toán sắp xếp.
Ví dụ: Bài toán người du lịch. Cho trước một số thành phố và khoảng cách
giữa chúng. Tìm đường đi cho người du lịch để anh ta có thể đi thăm tất cả các
thành phố, mỗi thành phố chỉ đi qua một lần đồng thời tổng đường đi là ngắn nhất.
Cách mã hóa: Mỗi một lời giải hay một cách đi của người du lịch được biểu
diến bằng một dãy các số chỉ trình tự người đó sẽ đi.
2.1.2.1.3. Mã hóa giá trị
Mã hóa giá trị trực tiếp có thể được sử dụng trong các bài toán mà giá trị của
nó là các giả trị phức tạp như là số thực. Sử dụng mã hóa nhị phân sẽ trở nên khó
khăn. Trong đó, mỗi NST là một chuỗi các giá trị. Các giá trị có thể là các thông tin
25
Học viên thực hiện: Đỗ Ngọc Phục - CB120105 - 12BCNTT2

×