Đó là các giáo viên phải thông báo lại với các sinh viên của mình răng một số người đã đăng ký chương trình học quá muộn và nhà trường đã khoá sổ đối với môn học này.. Với đầu ra là một
Trang 1Khoa Công Nghệ Thông Tin và Toán Ứng Dụng trường Đại Học Tôn Đức Thắng vì
đã tận tình giúp đ ỡ, dìu dắt chúng em, tạo nhiều điều kiện thuận lợi cho chúng em
học tập và nghiên cứu trong suốt bốn năm theo học tại trường để chúng em đạt được thành quả như ngày hôm nay
Chúng em xin gửi lời cảm ơn sâu sắc nhất đến cô Lê Thị Ngọc Thảo, là giảng viên trực tiếp hướng dẫn chúng em thực hiện đề tài này Nhờ sự giúp đỡ nhiệt thành
của cô, chúng em đã h ọc được nhiều điều bổ ích, đúc kết được nhiều kinh nghiệm
mà chúng em biết rằng sẽ rất hữu ích cho công việc và nghiên cứu về sau Và cũng
nhờ sự dìu dắt tận tình của cô, chúng em đã hoàn thành đ ề tài tốt nghiệp này và đạt được những thành quả nhất định
Sau cùng, chúng em gửi lời cảm ơn đến gia đình và tất cả những người bạn,
đã khích lệ, động viên, giúp đỡ chúng em khi chúng em gặp khó khăn để chúng em
có thể theo đuổi và hoàn thành đề tài tốt nghiệp này
Đề tài chúng em thực hiện chắc chắn không thể tránh khỏi những sai sót, kính mong sự góp ý chân thành và giúp đỡ của quý thầy cô và các bạn
Nhóm sinh viên th ực hiện đề tài:
PH ẠM HỮU KHÁNH & NGUYỄN AN KHƯƠNG
Trang 2Nh ận xét của giảng viên hướng dẫn
Trang 3
Nh ận xét của giảng viên phản biện
Trang 4
M ục lục
Lời cảm ơn 1
Nhận xét của giảng viên hướng dẫn 1
Nhận xét của giảng viên phản biện 3
Chương 1: Giới thiệu tổng quan 6
1.1 Tổng quan về bài toán xếp TKB: 6
1.2 Mục tiêu tìm hiểu, nghiên cứu và phát triển đề tài 7
Chương 2: Giới thiệu về thuật giải di truyền 8
2.1 Lịch sử hình thành 8
2.2 Giới thiệu thuật giải di truyền: 8
2.3 Khái niệm 11
2.4 Các thành phần của thuật giải di truyền 15
Chương 3: Mô hình bài toán xếp thời khóa biểu hệ tín chỉ 29
3.1 Tổng quan chế độ đào tạo đại học tại VN (niên chế - tín chỉ) 29
3.2 Phân loại mô hình xếp Thời khóa biểu 32
3.7 Ánh xạ bài toán xếp thời khóa biểu vào thuật giải di truyền 41
3.7.1 Khái niệm lớp ảo trong bài toán xếp thời khóa biểu hệ tín chỉ 41
3.7.2 Phân tích yêu cầu bài toán 42
3.7.3 Dữ liệu bài toán 43
3.7.4 Các ràng buộc 44
3.7.4.1 Ràng buộc dữ liệu nhập vào 44
3.7.4.2 Ràng buộc nghiệp vụ - thời gian 44
3.7.4.3 Ràng buộc về nghiệp vụ - chuyên môn 45
3.8 Ứng dụng thuật giải di truyền vào bài toán xếp thời khóa biểu 45
3.8.1 Giai đoạn 1- Xếp thời khóa biểu các lớp 45
3.8.1.1 Chọn mô hình cá thể 45
3.8.1.2 Tạo quần thể ban đầu 48
Trang 53.8.1.3 Độ thích nghi – Chọn cá thể 48
3.8.1.4 Thuật toán lai ghép và đột biến 49
3.8.2 Giai đoạn 2 – Xếp lịch học cho toàn bộ cơ sở 50
3.8.2.1 Chọn mô hình cá thể 50
3.8.2.2 Tạo quần thể ban đầu 51
3.8.2.3 Độ thích nghi – Chọn cá thể 51
3.8.2.4 Thuật toán lai ghép và Đột biến 52
3.8.3 Chọn điểm dừng trong thuật toán 52
Chương 4: Xây dựng ứng dụng xếp thời khóa biểu 53
4.1 Hiện trạng hoạt động xếp thời khóa biểu của nhà trường 53
4.2 Nhu cầu giải quyết các khó khăn đang tồn động của nhà trường 53
4.3.1 Các yêu cầu chức năng 54
4.3.1.1 Chức năng lưu trữ 54
4.3.1.2 Chức năng tra cứu 54
4.3.1.3 Chức năng tính toán 55
4.3.1.4 Chức năng chiết xuất 55
4.3.1.5 Các yêu cầu phi chức năng 55
4.4 Các ràng buộc của bài toán 55
4.5.1 Lược đồ chính của mô hình usecase: 57
4.7 Một số màn hình giao diện của phần mềm 72
Chương 5: Đánh giá và tổng kết đề tài 82
5.1 Đánh giá tổng quan đề tài: 82
5.1.1 Những vấn đề đã đạt được của đề tài 82
5.1.2 Những vấn đề chưa đạt được của đề tài 82
5.2 Kết quả bản thân nhóm đạt được: 83
5.3 Hướng phát triển và mở rộng đề tài trong tương lai: 83
Tài Liệu Tham khảo: 84
Trang 6Chương 1: Giới thiệu tổng quan
1.1 T ổng quan về bài toán xếp TKB:
Bài toán xếp Thời khóa biểu đã từ lâu trở thành một bài toán nổi tiếng và thu hút được sự quan tâm của rất nhiều nhà nghiên cứu, nhiều chuyên gia trong các
lĩnh vực liên quan Sự nổi tiếng của bài toán này không chỉ được đo bởi độ phức
tạp của vấn đề, mà còn ở tính thực tiễn, khả năng áp dụng rất cao trên thực tế Với
bất cứ một nhà trường nào, thời khóa biểu học tập của học sinh và giảng dạy của giáo viên là bộ xương sống cơ bản nhất kết nối hầu như toàn bộ các hoạt động của nhà trường Chính vì lẽ đó bài toán xếp Thời khóa biểu trở thành một trong những
vấn đề chính và quan trọng bậc nhất của mỗi nhà trường
Trong trường đại học, việc xếp thời khóa biểu do cán bộ của Phòng Đào T ạo
thực hiện Người cán bộ này phải có kinh nghiệm và sự tỉ mỉ rất để thực hiện các thao tác chính như: chia tách, ghép giờ học của môn học, thao tác phân bổ tiết học
- tuần học từng nhóm môn, thao tác sắp xếp các ngày nghỉ Cán bộ phụ trách xếp TKB phải thực hiện hoàn toàn thủ công các thao tác trên, mất rất nhiều thời gian
và công sức Đặc biệt là số môn học cần phân bổ lịch lớn (có thể lên đến cả trăm môn tương ứng với các khoa đào tạo chuyên ngành) trong khi nhà trường có
những hạn chế như:
- Hạn chế về phòng học, đặc biệt là các phòng thực hành và phòng chuyên
dụng Mỗi phòng học lại có sức chứa và tính chất khác nhau
- Nếu nhà trường có nhiều cơ sở, thì việc sắp xếp phòng học thuận tiện cho
việc di chuyển giữa các giờ học cũng là một vấn đề khó khăn lớn
- Tình trạng giảng viên còn thiếu
Tất cả dẫn đến việc sắp thời khóa biểu vào mỗi đầu học kỳ thật sự trở thành
một thách thức lớn, một bài toán khó đối với cán bộ phụ trách công tác này
Trang 71.2 M ục tiêu tìm hiểu, nghiên cứu và phát triển đề tài
Việc tìm hiểu, nghiên cứu đề tài nhằm hướng đến mục tiêu tìm ra một thuật toán tối ưu phù hợp với bài toán xếp thời khóa biểu, kết hợp với sức mạnh của công nghệ thông tin để xây dựng nên phần mềm hỗ trợ xếp thời khóa biểu hệ tín
chỉ
Trang 8Chương 2: Giới thiệu về thuật giải di truyền
2.1 L ịch sử hình thành
Trước tiên, ý niệm về thuật giải 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 đầu 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 Trong những năm 70, thuật giải di truyền đã được nghiên cứu
và ứng dụng thành công trong việc giải quyết các trường hợp phức tạp Tuy nhiên, chính John Henry Holland mới là người triển khai ý tư ởng và phương thức giải quyết vấn đề dựa theo sự tiến hóa của con người
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 Adaltation in Natural anh 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 và 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
Lần đầu tiên Holand nghiên cứu các thuật giải này, chúng hoàn toàn không có tên Do nguồn gốc của phương pháp này là từ các gen di truyền, Holand đã đặt tên cho nó là thuật giải di truyền
2.2 Gi ới thiệu thuật giải di truyền:
Trong thực tiễn, có nhiều bài toán tối ưu quan trọng đòi hỏi những thuật giải
chất lượng cao Ví dụ, ta có thể áp dụng phương pháp mô phỏng luyện thép để
giải bài toán tìm đường đi ngắn nhất cho xe cứu hỏa… Cũng có nhiều bài toán tối
ưu tổ hợp có thể được giải gần đúng trên máy tính hiện đại bằng kỹ thuật Carlo
Monte-Nói chung, bài toán tối ưu có thể được xem như bài toán tìm lời giải (tốt nhất) trong không gian các giải pháp (không gian này có thể vô cùng lớn.) Không gian tìm kiếm nhỏ, các phương pháp cổ điển thích hợp có thể được áp dụng để tìm lời
giải Nhưng khi không gian tìm ki ếm lớn thì cần phải áp dụng những kỹ thuật Trí
Trang 9Tuệ Nhân Tạo đặc biệt Thuật giải di truyền (GA) là một trong những kỹ thuật đó
GA là một loại thuật giải mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải và khảo sát không gian lời giải Khái niệm kế thừa và đấu tranh có thể được giải thích qua thí dụ về sự tiến hóa sau đây:
Có một quần thể thỏ, trong đó có những con nhanh nhẹn và thông minh hơn
những con khác Những chú thỏ nhanh nhẹn và thông minh có xác suất bị chồn cáo ăn thịt nhỏ hơn Do đó, chúng tồn tại để làm những gì tốt nhất có thể: tạo thêm nhiều thỏ nhanh nhẹn và thông mình Quần thể những chú thỏ còn sống này sẽ bắt đầu sinh sản và tạo ra một hỗn hợp tốt về “nguyên liệu di truyền thỏ” Thỉnh thoảng, thiên nhiên lại tạo ra một con thỏ “mới” bằng cách làm đột biến nguyên
liệu di truyền của nó Những chú thỏ con các thế hệ sau sẽ nhanh hơn, thông minh hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh thoát chết khỏi chồn cáo, tồn tại và sinh sản ra thỏ con Quá trình trên cũng xảy ra tương tự với những con chồn, cáo Bởi nếu không, chồn cáo sẽ không đủ nhanh và thông minh để bắt những thế hệ thỏ con sau này
Khi tìm ki ếm lời giải tối ưu, thuật giải di truyền cũng thực hiện các bước tương tự như với câu chuyện đấu tranh sinh tồn của loài thỏ
Thuật giải di truyền sử dụng các thuật ngữ vay mượn của di truyền học Mỗi
một lời giải là một cá thể (hay kiểu gen, cấu trúc) Những cá thể này còn được gọi
là các chuỗi hay các nhiễm sắc thể Các nhiễm sắc thể được tạo thành từ các đơn
vị - các gen- mỗi gen kiểm soát một đặc trưng Một quần thể, là một tập hợp các nhiễm sắc thể, đại diện cho không gian lời giải Một tiến trình tiến hóa được thực
hiện trên một quần thể chính là quá trình tìm kiếm lời giải trong không gian lời
giải Tìm kiếm đó cần cân đối hai mục tiêu:
• Khảo sát không gian tìm kiếm
• Khai thác những lời giải tốt nhất
Trang 10Thuật giải GA thuộc lớp các thuật giải xác suất, nhưng lại rất khác với những thuật giải ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu nhiên Khác biệt quan trọng giữa tìm kiếm của GA và các phương pháp tìm ki ếm khác là GA duy trì và xử lý một tập các lời giải (ta gọi là các quần thể) trong khi
những phương pháp tìm ki ếm khác chỉ xử lý một điểm trong không gian tìm kiếm Chính vì thế, GA mạnh hơn các phương pháp tìm kiếm hiện có rất nhiều
Ta so sánh GA với hai phương pháp được sử dụng rộng rãi hiện nay - Leo đồi
và Mô phỏng luyển thép:
• Phương pháp leo đồi dùng kĩ thuật lặp và áp dụng cho một điểm duy
nhất (điểm hiện hành trong không gian tìm kiếm) Trong mỗi bước lặp, điểm mới được chọn từ lân cận của điểm hiện hành (vì thế leo đồi còn được gọi là tìm kiếm lân cận hay tìm kiếm cục bộ) Nếu điểm mới cho giá trị tốt hơn, điểm mới sẽ trở thành điểm hiện hành Nếu không, một lân cận khác sẽ được chọn và thử Quá trình trên sẽ dừng nếu không cải
tiến thêm được cho lời giải hiện hành
Như vậy phương pháp leo đồi chỉ cung cấp các giá trị tối ưu cục
bộ và những giá trị này phụ thuộc rất nhiều vào điểm khởi đầu Hơn
nữa không có thông tin sẵn có về sai số tương đối, thỏa tối ưu toàn cục
của lời giải tìm đư ợc Để tăng cơ hội thành công, phương pháp leo đồi thường được thực hiện nhiều lần; mỗi lần với một điểm khởi đầu khác nhau Những điểm khởi đầu này không nhất thiết được chọn ngẫu nhiên
mà tập hợp những điểm khởi đầu của một lần thực thi phụ thuộc vào kết
quả của những lần chạy trước đó
• K ỹ thuật Mô phỏng luyện thép là kỹ thuật khắc phục được những bất
lợi của leo đồi Lời giải không còn phụ thuộc nhiều vào điểm khởi đầu
nữa và thường là gần với điểm tối ưu Đạt được điều này là nhờ đưa vào xác suất nhận p Xác suất p là hàm theo giá trị của hàm mục tiêu
Trang 11đối với điểm hiện hành và điểm mới, và có một tham số điều khiển chung gọi là tham số nhiệt độ T Nhiệt độ T càng thấp thì cơ h ội nhận được điểm mới càng nhỏ Khi thực hiện lời giải, nhiệt độ T của hệ
thống sẽ được hạ thấp dần theo từng bước Thuật giải dừng lại khi T
nhỏ hơn một ngưỡng cho trước Với ngưỡng này thì gần như không còn thay đổi nào được chấp nhận nữa
Như đã nêu, khác với phương pháp Leo đồi hay Mô phỏng luyện thép, GA
thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng, bằng cách duy trì một
quần thể lời giải, và thúc đẩy sự hình thành và trao đ ổi thông tin giữa các hướng này Quần thể trải qua tiến trình tiến hóa: ở mỗi thế hệ lại tái sinh lời giải tương đối
“tốt”, trong khi các lời giải tương đối “xấu” thì chết đi Một hàm mục tiêu sẽ đóng vai trò là môi trường để phân biệt các lời giải khác nhau
2.3 Khái ni ệm
Thuật giải di truyền (GA) là kỹ thuật chung giúp giải quyết bài toán bằng cách
mô phỏng sự tiến hóa của con người hay của sinh vật trong điều kiện qui định sẵn
của môi trường
Như chúng ta đã biết, tất cả các cơ thể sống bao gồm nhiều tế bào, trong mỗi tế bào có các tập hợp nhiễm sắc thể như nhau Các nhiễm sắc thể là các chuỗi DNA
hoạt động như một mô hình cho toàn bộ cơ thể Một nhiễm sắc thể gồm các gen,
những khối DNA Mỗi gen mã hóa một protein riêng biệt Nói một cách đơn giản,
mỗi gen mã hóa một đặc điểm được gọi là gen tương ứng (allele) Mỗi gen có một
vị trí riêng trong nhiễm sắc thể được gọi là điểm (locus)
Toàn bộ tập hợp vật liệu di truyền ( tất cả các nhiễm sắc thể ) được gọi là bộ gen (gnome) Một tập hợp riêng biệt của các gen trong bộ gen được gọi là kiểu gen (genotype) Kiểu gen với quá trình phát triển sau này của cơ sở sinh sản cho kiểu hình (pheotype) của cơ thể, các đặc điểm vật lý và trí tuệ, như màu mắt, trí thông minh…
Trang 12Quá trình tiến hóa là quá trình hoàn hảo nhất, hợp lí nhất và và tự nó đã mang tính
tối ưu 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 hóa tự nhiên được duy trì nhờ 2 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 hóa tự nhiên, các thế hệ mới luôn được sinh ra
để bổ sung thay thế cho thế hệ cũ, cá thể nào phát triễn hơn với môi trường sẽ tồn
tại Cá thể nào không thích ứng được với môi trường sẽ bị đào thải Sự thay đổi môi trường là động lực thúc đẩy quá trình tiến hóa Ngược lại, tiến hóa cũng tác động trở lại làm thay đổi môi trường
Các cá thể mới sinh ra trong quá trình tiến hóa nhờ sự lai ghép ở thế hệ cha mẹ
một cá thể mới có thể mang tính trạng của cha mẹ (di truyền), cũng có thể mang tính trạng hoàn toàn mới (đột biến) Các thuật toán tiến hóa, tuy có điểm khác biệt, nhưng đều mô phỏng bốn quá trình cơ bản: lai ghép, đột biến, sinh sản và chọn lọc
tự nhiên
Các thuật giải di truyền là những kỹ thuật tối ưu dựa trên những khái niệm
chọn lọc tự nhiên và di truyền Trong cách tiếp cận này, lời giải của bài toán được trình bày như các gen trong nhi ễm sắc thể Thuật giải di truyền mô tả một nhóm các lời giải có thể ứng cử (quần thể) trên bề mặt đáp ứng Qua tiến hóa và chọn lọc
tự nhiên các nhiễm sắc thể với độ thích nghi tốt hơn xuất hiện
Chọn lọc tự nhiên đảm bảo cho nhiễm sắc thể có độ thích nghi tốt nhất sẽ được truyền cho những quần thể tương lai Thuật giải di truyền kết hợp các gen từ hai nhiễm sắc thể bố mẹ để tạo thành hai nhiễm sắc thể con mới (offspring) với độ thích nghi cao hơn bố mẹ Đột biến (mutation) cho phép khám phá những vùng
mới trên bề mặt đáp ứng
Thuật giải di truyền cung cấp sự cải tiến thế hệ về độ thích nghe của các nhiễm
sắc thể và sau nhiều thế hệ sẽ tạo ra các nhiệm sắc thể chứa những thiết lập biển đổi đã được tối ưu
Trang 13Sự khác biệt của thuật giải di truyền với thủ tục tìm kiếm và tối ưu bình thường được Goldberg.Zbigniew Michalewicz trình bày như sau:
điểm
đưa vào đạo hàm hoặc tri thức bổ sung khác
Nói chung, có thể mô tả phần đặc tả của toàn bộ thuật giải di truyền như sơ đồ sau:
Trang 14Mô hình ho ạt động của thuật giải di truyền
Trang 15Mã giả minh họa việc cài đặt thuật giải di truyền:
2.4 Các thành ph ần của thuật giải di truyền
Một thuật giải di truyền bao gồm các thành phần sau:
• M ột cấu trúc dữ liệu biểu diễn không gian lời giải bài toán
• Cách kh ởi tạo quần thể ban đầu
• M ột hàm đánh giá mức độ thích nghi của các lời giải, hàm này đóng vai trò là môi tr ường
• Các phép toán di truy ền
• Tham s ố thuật giải di truyền sử dụng (kích thước quần thể, xác suất lai, đột biến)
Trang 162.4.1 Quá trình kh ởi động quần thể ban đầu
Tạo quần thể đầu tiên trong thuật giải, là nơi xuất phát quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà có cách khởi động khác nhau Trước một bài toán áp dụng thuật giải di truyền, ta
cần phải xác định rõ nhiễm sắc thể và cá thể cho vấn đề Việc phân tích sẽ dựa trên kết quả là cơ bản nhất
2.4.2 Đánh giá cá thể
Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của
vấn đề Dựa trên mức độ thích nghi của cá thể, bao gồm những vướng mắc mà
cá thể gặp phải Thông thường đặt mỗi vấn đề nhỏ tương ứng với một giá trị điểm thích nghi, kết quả đánh giá bằng tổng các số điểm đó Kết quả tốt nhất
sẽ có số điểm lớn nhất hoặc thấp nhất
Theo thuyết tiến hóa của Darwin, nhiễm sắc thể tốt nhất sẽ tồn tại và tạo
ra các cá thể con mới Có nhiều phương pháp để chọn các nhiễm sắc thể tốt
nhất
2.4.3 Toán t ử lai ghép
Phép lai là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc
thể của cha mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều) nhiễm sắc thể cha mẹ với nhau Phép lai xảy ra với xác suất p c
Ch ọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể Giả sử các nhi ễm sắc thể của cha mẹ đều có m gen
Trang 17Đưa hai cá thể mới này vào quần thể để tham gia các quá trình tiến hóa ti ếp theo
Lai ghép nhằm nâng cao kết quả cá thể, do đó, toán tử lai ghép sẽ tạo điều kiện cho tiến trình hội tụ nhanh hay chậm Còn tùy thuộc và cách tổ chức
và phân bố các nhiễm sắc thể mà chúng ta các xác suất lai ghép nhanh hay
chậm Sau đây là một số phương pháp thông dụng trong kỹ thuật di truyền:
2.4.3.1 Lai ghép ánh x ạ từng phần (PMX – Partial- Mapped
Crossover)
Lai ghép ánh xạ từng phần có thể được xem như một biến đổi của lai ghép hai điểm giao nhau bằng cách kết hợp với một thủ tục sửa chữa đặc biệt để giải quyết tính không chính đáng (illegitimacy) có thể có PMX gồm các bước chính sau:
• Chọn hai điểm cắt nhau cùng với một chuỗi một cách ngẫu nhiên Chuỗi con được định nghĩa bởi hai chuỗi cắt được gọi là ánh xạ thành phần
• Trao đổi hai chuỗi con giữa các cá thể cha mẹ để tạo ra cá thể con
• Xác định quan hệ ánh xạ giữa các thành phần ánh xạ
• Hợp thức cá thể con với các quan hệ ánh xạ
Ví dụ: Trong bài toán TSP 9 thành phố Một nhiễm sắc thể biểu
diễn toàn bộ đường đi
Cá thể cha: 93185711642
Cá thể mẹ: 35126141879
Đầu tiên hoán vị giữa cá thể cha (parent 1 ) và cá thể mẹ (parent 2)
Proto-children 1: xx|2614|xxx (proto: tiền, trước)
Trang 18Proto-children 2: xx|8571|xxx
Ký hiệu ‘x’ có thể được xem như ẩn số
Hoán vị này cũng định nghĩa một chuỗi những ánh xạ
2 → 8, 6→5,1→7 và 4→1
Cuối cùng, điều chỉnh với quan hệ ánh xạ
Chúng ta có thể điền thêm các thành phó (từ cá thể cha mẹ ban đầu), mà không có vấn đề gì mẫu thuẫn
Cá thể con thứ nhất: 93|2614|578
Cá thể con thứ hai: 36|8571|249
2.4.3.2 Lai ghép có tr ật tự ( OX-Order Crossover)
Lai ghép có trật tự có thể được xem như một biến thể của PMX sử
dụng thủ tục sửa chữa khác OX gồm các bước sau:
• Ch ọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ
• Đưa ra một proto-child bằng cách sao chép chuỗi con vào những vị trí tương ứng như trong cá thể cha mẹ
• Xóa t ất cả các ký hiệu từ cá thể cha mẹ thứ hai, lúc này đã có trong chu ỗi con Chuỗi còn lại chứa các ký hiệu mà proto-child cần
• Đặt các ký hiệu và những vị trí không cố định của proto-child từ trái sang ph ải theo trật tự của chuỗi để tạo ra cá thể con
Ví dụ:
Cá thể cha: 93|8571|642
Cá thể con: 35|2614|879
Trang 19Đầu tiên, phân đoạn giữa để cắt các điểm được sao chép vào cá
thể con
Proto-child 1: xx|8571|xxx Proto-child 2: xx|2614|xxx Chuỗi bắt đầu từ điểm cắt thứ hai của cá thể cha mẹ thứ hai là: 8-7-9-3-5-2-6-1-4
Chuỗi sau khi loại các thành phố 8,5,7,1 cũng ở trong cá thể con đầu tiên là:
9-3-2-6-4
Cuối cùng, chuỗi này được đặt vào proto-child 1 đầu tiên để tạo
ra cá thể con (bắt đầu từ điểm cắt thứ 2)
Cá thể con thứ nhất: 64|8571|932 Tương tự, chúng ta được cá thể con khác:
Cá thể con thứ hai: 57|2614|938
2.4.3.3 Lai ghép d ựa trên vị trí (Position-Based Crossover)
Lai ghép dựa trên vị trí thực chất là một loại lai ghép đồng nhất cho
mã hóa theo nghĩa đ ột biến kết hợp với một thủ tục sửa chữa Toán tử lai ghép đồng nhất được đề nghị cho mã hóa chuỗi bit bởi Syswerda Trước tiên nó phát sinh ngẫu nhiên một mặt nạn với mỗi bit tương ứng trong cá
thể con, xác định cá thể cha mẹ nào sẽ cung cấp bit đó
Bởi vì lai ghép đồng nhất sẽ tạo ra cá thể con bất hợp lệ cho mã hóa đột biến, lai ghép đột biến sẽ sử dụng một thủ tục sửa chữa để giải quyết tính bất hợp lệ
Trang 20Lai ghép dựa trên vị trí gồm các bước sau:
• Đặt các ký hiệu vào những vị trí không cố định của proto-child
t ừ tría sang phải tương ứng với trật tự của chuỗi để tạo ra một
hiệu từ cá thể mẹ ( trong chuỗi từ trái sang phải)
Cá thể con thứ nhất: 3xxxxxxxx Bit thứ 2 của mặt nạ là 1 Như vậy, cá thể con thứ nhất nhận các ký hiệu tiếp theo từ cá thể cha (cũng trong chuỗi từ trái sang
phải) Đây là ký hi ệu 9, không được trình bày trong cá thể con thứ
nhất
Cá thể con thứ 1: 39xxxxxxx
Tiếp tục như vậy và cuối cùng ta được:
Cá thể con thứ nhất: 395287164
Trang 21Cá thể con thứ hai: 938526174
2.4.3.4 Lai ghép d ựa trên thứ tự (Order-Base Crossover)
Lai ghép dựa trên thứ tự là một thay đổi nhỏ của lai ghép dựa trên
vị trí, trong đó, thứ tự của các ký hiệu vị trí được chọn trong cá thể cha tác động lên vị trí tương ứng trong cá thể mẹ
Tất cả thành phần tử khác được điền theo thứ tự của cá thể mẹ
ngoại trừ những thành phố đã có trong cá thể cha
Cá thể con thứ nhất: 238571649 Tương tự chúng ta được:
Cá thể con thứ hai: 385614279
2.4.3.5 Lai ghép có chu trình (CX-Cycle Crossover)
Giống như lai ghép dựa trên vị trí, nó chọn một số ký hiệu từ
một cá thể cha hoặc mẹ và các ký hiệu còn lại từ cá thể cha hoặc
mẹ khác Điểm khác nhau là các ký hiệu lấy từ cá thể cha không
Trang 22được chọn một cách ngẫu nhiên và chỉ những ký hiệu được chọn
mới xác định một chu trình tương ứng với những vị trí tương ứng
giữa các cá thể cha mẹ CX làm việc như sau:
• Tìm m ột chu trình đư ợc xác định bởi những vị trí tương ứng của các ký hiệu giữa các cá thể cha hoặc mẹ
• Sao chép các ký hi ệu trong chu trình vào một cá thể con
b ởi những vị trí tương ứng trong một cá thể cha hoặc
mẹ.Trong cá thể cha, thành phố này ở vị trí thứ 2 như vậy:
Cá thể con thứ nhất: 9 3 x x x x x x x Đến lượt điều này ngụ ý thành phố 5 từ cá thể mẹ
Cá thể con thứ nhất: 9 3 x 5 x x x x x
Trang 23Tương tự chúng ta có một chu trình đầy đủ:
Cá thể con thứ nhất: 9 3 8 5 x x 6 x 2 Các thành phố còn lại được điền từ cá thể cha mẹ còn lại:
Cá thể con thứ nhất: 9 3 8 5 1 4 6 7 2 Tương tự,
sắc thể được xem xét xoay vòng vì toán tử được đặt ra cho TSP Trong bài toán sắp xếp công việc cửa hàng, nhiễm sắc thể không
thể được xem xét xoay vòng Vì lý do này, ngư ời ta phát triển nhiễm sắc thể được xem xét tuyến tính thay vì xoay vòng LOX làm
việc như sau:
• Ch ọn chuỗi con từ các cá thể cha mẹ một cách ngẫu nhiên
• Lo ại bỏ chuỗi con 2 (sub-string 2) từ cá thể cha, giữ lại
m ột số lỗ (holes)(đánh dấu bằng h) và sau đó đẩy các lỗ
t ừ đầu đến tâm cho đến khi chúng gặp miền giao nhau Tương tự, loại bỏ chuỗi con 1 từ cá thể mẹ và đẩy các lỗ đến miền giao ( cross section)
Trang 24• Đưa chuỗi con 1 vào các lỗ của cá thể mẹ để tạo thành
cá th ể con thứ nhất và đưa chuỗi con 2 và các lỗ của cá
th ể cha để tạo thành cá thể con thứ hai
Toán tử lai ghép có thể giữ quan hệ giữa các vị trí tuyệt đối
cũng như quan hệ đối với những điểm đầu của các cá thể cha mẹ càng nhiều càng tốt Các điểm đầu ứng với các hoạt động có độ ưu tiên thấp và cao
Sau đó, loại bỏ các ký hiệu trong phân đoạn giữa hai điểm cắt Cá thể mẹ giữ lại một số lỗ
Cá thể mẹ: 3 h | 2 6 h 4| h h 9 Đẩy các lỗ đến khi chúng gặp miền giao
Cá thể mẹ: 3 2 | h h h h |6 4 9
Cuối cùng, đưa proto-child 1 vào lỗ trong cá thể mẹ để
tạo ra cá thể con thứ nhất
Cá thể con thứ nhất: 3 2 | 8 5 7 1 | 6 4 9 Tương tự,
Trang 25Cá thể con thứ hai: 9 3 | 2 6 1 4 | 8 5 7
2.4.4 Toán t ử đột biến:
Đột biến là hiện tượng cá thể con mang một số tính trạng không có trong mã di truyền của cha – mẹ Phép đột biến xãy ra với xác suất p m
nhỏ hơn rất nhiều so với xác suất lai p c
• Ch ọn ngẫu nhiên một cá thể bất kì trong quần thể cha mẹ
Phép đột biến được mô phỏng như sau:
• T ạo một số ngẫu nhiên k trong khoảng từ 1 đến m (1 < k < m)
• Thay đổi gen thứ k và trả cá thể này về quần thể để tham gia quá trình ti ến hóa tiếp theo
Cũng giống như lai ghép, toán tử đột biến làm tăng nhanh quá trình
hội tụ, nhưng tăng một cách đột ngột, cũng có khi s ẽ không gây tác
dụng gì một khi không thành công Không ai có thể đánh giá được phương pháp đột biến nào tốt hơn, do đó có một vài phương pháp đơn
giản, cũng có vài trường hợp khá phức tạp Người ta thường chọn một trong những phương pháp sau:
2.4.4.1 Đột biến đảo ngược ( Inversion Mutation)
Chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể và sau đó, nghịch đảo chuỗi giữa hai vị trí này
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2 Sau khi đột biến: 9 3 1 7 5 8 6 4 2
Trang 262.4.4.2 Đột biến chèn (Insertion Mutation )
Chọn ngẫu nhiên một gen và sau đó chèn nó vào vị trí ngẫu nhiên
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2 Sau khi đột biến: 9 3 5 7 8 1 6 4 2
2.4.4.3 Đột biến thay thế (Displacement Mutation )
Chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí ngẫu nhiên Đột biến chèn có thể được xem như trường hợp đặc biệt của đột biến thay thế, trong đó, chuỗi con chỉ chứa một gen
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2
Sau khi đột biến: 9 3 6 8 5 7 1 4 2
2.4.4.4 Đột biến tương hỗ ( Reciprocal Exchange Mutation )
Chọn ngẫu nhiên hai vị trí và sau đó hoán vị gen trên những vị trí này
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2 Sau đột biến: 9 3 1 5 7 8 6 4 2
2.4.4.5 Đột biến chuyển dịch ( Shift Mutation )
Trước tiên, chọn ngẫu nhiên một gen, sau đó, dịch chuyển nó đến một vị trí ngẫu nhiên bên phải hoặc bên trái vị trí của gen
Ví dụ:
Trang 27Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2 Sau đột biến (trái): 9 8 3 5 7 1 6 4 2 Sau đột biến (phải): 9 3 5 8 7 1 6 4 2
2.4.5 Quá trình sinh s ản, chọn lọc (phép tái sinh và phép chọn): Quá trình sinh s ản (phép tái sinh) là quá trình trong đó các cá thể được
sao chép dựa trên cơ sở độ thích nghi của nó Độ thích nghi là một hàm gán một giá trị thực cho các cá thể trong quần thể Quá trình này có thể được mô phỏng như sau:
• Tính độ thích nghi của từng cá thể trong quần thể hiện hành, lập
b ảng cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng
cá th ể) Giả sử có n cá thể, gọi độ thích nghi của cá thể thứ i là
F ti , t ổng độ thích nghi của quần thể là F m
• T ạo một số ngẫu nhiên F trong đoạn từ 0 đến F
• Ch ọn cá thể thứ k đầu tiên thỏa F > F
m
tk
Quá trình ch ọn lọc (phép chọn) là quá trình loại bỏ các cá thể xấu trong
quần thể, chỉ giữ lại những quần thể tốt Phép chọn được mô tả như sau:
đưa và quần thể của thế hệ
m ới
• S ắp xếp quần thể theo thứ tự độ thích nghi giảm dần
• Lo ại bỏ các cá thể cuối dãy chỉ giữ lại n cá thể tốt nhất, n là kích
thước của quần thể
2.4.6 Điều kiện kết thúc
Khi thoát ra quá trình tiến hóa quần thể, dựa vào bài toán mà có cách kết thúc vấn đề khác nhau khi đã đ ạt đến mức yêu cầu Có một
Trang 28• Kết thúc theo kết quả: một khi đạt đến mức giá trị yêu cầu thì
chấm dứt ngay quá trình thực hiện
• Kết thúc dựa vào số thế hệ: chọn số thế hệ, quá trình sẽ dừng đúng ngay số thế hệ qui định trước, không cần biết kết quả như thế nào
• Kết thúc theo thời gian: không cần biết đã bao nhiêu thế hệ hay kết
quả nào, chỉ dựa vào số giờ qui định mà kết thúc
• Tổ hợp: dùng nhiều phương án khác nhau cho vấn đề, chẳng hạn như: chạy theo số thế hệ xong sau đó đánh giá cho chạy theo kết
quả, hoặc ngược lại
Trang 29Chương 3: Mô hình bài toán xếp thời khóa biểu hệ tín chỉ
3.1 T ổng quan chế độ đào tạo đại học tại VN (niên chế - tín chỉ)
Có rất nhiều dạng khác nhau của các chương trình đào t ạo đại học Có trường sẽ thực hiện đào tạo theo mô hình tín chỉ Còn các trư ờng khác lại đào
tạo theo cơ chế niên chế Có trường thì đào tạo theo cơ chế nửa tín chỉ Và với
mỗi cơ chế đào tạo chúng ta lại có một dạng khác cho công việc lập thời khoá
biểu
3.1.1 Đào tạo theo tín chỉ
Đào tạo theo tín chỉ là cách đào tạo theo phong cách giống các nước phương tây Đó là cho phép các sinh viên có thể tuỳ chọn chương trình đào
tạo, chương trình học tập trong năm học cho chính mình Công việc đào tạo hoàn toàn theo tín chỉ có rất nhiều yêu cầu, nhất là về cơ sở hạ tầng, về công nghệ và nhiều điểu kiện khác chúng ta mới có thể thực hiện công tác đào tạo theo cách này
3.1.2 Đào tạo theo bán tín chỉ
Chương trình đào tạo tín chỉ này là chương trình đào tạo đã được ứng dụng
tại Việt Nam và trường đã sử dụng phương pháp này có thể nêu tên ra ở đây
đó chính là đại học Xây Dựng Hà Nội Qui cách đào tạo của trương tuân theo nguyên tắc sau đây: Chương trình h ọc của mỗi sinh viên bao gồm 2 phần:
phần bắt buộc và phân tự chọn
• Phần bắt buộc là các môn bắt buộc trong học kỳ đó sinh viên phải hoàn thành và trả điểm lại cho trường
• Phần tự chọn: nhà trường sẽ đưa ra một số môn học mà sinh viên có
thể chọn tuỳ theo sở thích và khả năng của mỗi sinh viên đó
Thông thường thì phần bắt buộc (các môn cứng) sẽ nhiều hơn một chút
so với các môn không bắt buộc Ví dụ trong một học kỳ có 7 môn học thì khoảng 4 môn bắt buộc và 3 môn còn lại là tự chọn cho mỗi sinh viên Tuy nhiên cũng có thể rằng số môn mà sinh viên chọn trong kỳ đó là 4-5 tức là tỷ
Trang 30lệ bắt buộc / không bắt buộc sẽ là 4/4 hoặc 5/4 hoặc là 3/4 tuỳ theo sinh viên Và như thế một sinh viên có thể xác định cho mình ra trư ờng sớm hay
muộn tuỳ vào khả năng của chính mình
Sau quá trình tự chọn của mỗi sinh viên thì tiếp đến đó là quá trình thu
thập đầy đủ thông tin về các mong muốn của mỗi sinh viên và tập hợp các sinh viên lại và bắt đầu quá trình phân lớp Trong công tác phân lớp đối với quá trình lựa chọn của sinh viên như thế này nếu không có sự hỗ trợ của máy tính thì quả thật là một công việc vô cùng gian nan và vất vả Và trong quá trình này thì thực chất có sự đan xen sinh viên giữa các lớp với nhau chứ không phải là các lớp riêng biệt và để đơn vị hoá các lớp , các nhóm sinh viên học sao cho công việc lập lịch là vô cùng khó khăn Sau quá trình hình thành lớp (nhóm các sinh viên cùng chung sở thích học một môn nào đó) là quá trình cân đ ối lại các đơn xin Ví dụ như các giáo viên đã xác đ ịnh trước
rằng trong kỳ học này sẽ có 3 lớp tự chọn học môn triết tuy nhiên số SV đăng
ký môn triết lại nhiều quá như thế sẽ có một số thay đổi Đó là các giáo viên
phải thông báo lại với các sinh viên của mình răng một số người đã đăng ký chương trình học quá muộn và nhà trường đã khoá sổ đối với môn học này
Thực chất quá trình này yêu cầu cân đối giữa các môn học sao đó cho hợp lý
với số phòng và số tiết thực tại của trường Bởi lẽ các tài nguyên về số giáo viên và phòng học dành cho sinh viên không phải là vô hạn, và có thể thoả mãn được tất cả mọi yêu cầu Với đầu ra là một tập hợp các lớp đã được định trước như thế thì công việc xếp lịch cũng không hề đơn giản vì lẽ rằng các sinh viên tham gia trong quá trình xếplịch ở đây là riêng biệt chứ không theo đơn vị lớp Và khi số sinh viên lên đến con số vài trăm thì sự đan xen đó là
vô cùng lớn và để tìm một thời khoá biểu có thể hợp mọi bề là cả một vấn đề
Vấn đề lớn nhất xảy ra là nếu đặt môn A học tại thời điểm T của ngày N thì
liệu tất cả các sinh viên trong lớp A đó đã tham gia một môn nào đó tại thời điểm T của ngày N này chưa Và nhiều khi là quá trình không thể tìm được
lời giải thích hợp!
Trang 313.1.3 Đào tạo niên chế:
Đây là loại hình đào tạo được sử dụng nhiều nhất trong nước ta hiện nay
đó là quy trình đào t ạo mà chương trình đào tạo đã được định trước bởi phòng đào tạo Và các môn trong một học kỳ là không thay đổi nhiều theo thời gian
Hoặc chăng có thay đổi thì thay đ ổi chút ít Chương trình đào t ạo sẽ thay đổi
nếu như trường đại học đó muốn thay đổi chút ít trong công tác đào tạo đinh hướng của mình đối với từng thế hệ sinh viên Ví dụ như khoá 1,2,3 thì trường đào tạo theo một chương trình nhưng b ắt đầu từ khoá thứ 4 trở đi chẳng hạn các giáo viên muốn rằng các sinh viên của mình khi ra trư ờng sẽ có thêm nhiều hơn khả năng thực hành hoặc suy luận … thì trong chương trình dành cho khoá 4 sẽ có một chút thay đổi đê đáp ứng với nhu cầu đó
Tuy nhiên quá trình thay đ ổi này là không nhiều và có thể thấy ở các chương trình đào tạo từ khoá 41, 42 đến 45 là không biến động gì lớn về các môn học cũng như số đơn vị học trình Như vậy chúng ta có thể nói rất ngắn
gọn rằng đào tạo theo niên chế là qui trình đào t ạo mà các chương trình h ọc
tập sẽ được đưa xuống từ phòng đào tạo Công việc xếp lịch sẽ tuỳ thuộc vào chương trình đào tạo này Tuy nhiên ở đây cũng có một số vấn đề xảy ra đó là Trong trường hợp khi mà giáo viên không đủ hoặc là các phòng không đ ủ,
hoặc các dụng cụ học tập không đủ thì chương trình đào t ạo sẽ phải thay đổi đôi chút đó là một vài lớp nào đó sẽ không học chương trình đào tạo chính mà
sẽ phải học chương trình đào t ạo phụ, chương trình đào t ạo thay thế Chương trình đào tạo này phải đảm bảo các tiêu chí là đủ kiến thức cho sinh viên ra trường và phù hợp với điều kiện về tài nguyên giáo viên cũng như phòng h ọc
hiện tại của trường
3.1.4 Ki ểu đào tạo cuốn chiếu và đồng đều theo kỳ
Đây là một kiểu đào tạo được khá nhiều trường đại học tại Việt Nam thực
hiện Kiểu đào tạo này có thể mô tả như sau: Với mỗi một chương trình đào
ạo thì mỗi môn học sẽ được học trong một khoảng thời gian liên tiếp của một
Trang 32kỳ Có thể cụ thể rằng mỗi môn học sẽ kéo dài trong khoảng 1 tháng điều đó
có nghĩa rằng môn học đó có thể ít hơn hoặc nhiều hơn tuỳ theo môn học đó là dài hay ngắn Sau quá trình học thì các sinh viên sẽ phải thi ngay
Kiểu đào tạo đồng đều theo kỳ thì các môn học không phải học dồn vào
một khoảng thời gian rồi thi mà chia đều ra Tức là trong 1 tuần cụ thể thì sinh viên sẽ phải học nhiều hơn 1 môn chứ không phải là cả tuần đều học một môn như phong cách cuốn chiếu
Như thế nhìn về tổng quan thì học theo kiểu đào tạo cuốn chiếu sẽ làm cho các sinh viên đỡ mệt mỏi hơn trong giai đoạn thi Vì họ không phải thi
dồn vào một khoảng thời gian xác định Mà quá trình thi sẽ được chia đều ra trong 1 năm Tuy nhiên xét về góc độ tiếp thu kiến thức thì có vể như phong cách đào tạo này sinh viên sẽ khó tiếp thu hơn là phòng cách chia đ ều Bởi vì
ai cũng biết rằng học cả tuần chỉ có một môn thì cũng hơi nh ức đầu, và 6 tiết trong 1 ngày đều là 1 môn học thì cũng quả là khá nặng
3.2 Phân lo ại mô hình xếp Thời khóa biểu
3.2.1 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:
3.2.1.1 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 Đây cũng là mô hình thời khóa
biểu của đa số các phần mềm thời khóa biểu trên thế giới mà chúng tôi
đã tham khảo
Trang 333.2.1.2 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
3.2.1.3 Th ời khóa biểu 2 TUẦN liên tục
Là mẫu dạng Thời khóa biểu theo tuần nhưng phân biệt sự khác nhau giữa các tuần chẵn và lẻ trong học kỳ Thời khóa biểu dạng này được áp dụng cho các loại trường có môn học, bài giảng được sắp xếp 2
tuần 1 lần trong học kỳ hoặc năm học Thời khóa biểu của một tuần chẵn
hoặc lẻ có dạng giống như loại A đã mô tả ở trên
3.2.1.4 Th ời khóa biểu (k) TUẦN/HỌC KỲ
Đây là loại thời khóa biểu khuôn dạng tuần tuy nhiên thời gian phân
bổ cho thời khóa biểu được chia làm nhiều kỳ trong một học kỳ hoặc năm học Rất nhiều trường đại học, cao đẳng tại Việt Nam sử dụng mô hình này Với mô hình này, các môn học được sắp xếp không dàn đều trong một học kỳ mà thường co giãn trong những khoảng thời gian nhỏ hơn Các trường đại học, cao đẳng với chương trình đào tạo đa dạng, kết
hợp chặt chẽ giữa lý thuyết và thực tế thường hay sử dụng mô hình này Chúng tôi sẽ phân tích kỹ mô hình này trong các phần tiếp theo của báo cáo này
3.2.1.5 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
3.2.2 Phân lo ại theo đơn vị xếp Thời khóa biểu
Trang 34Phân loại theo các đối tượng trực tiếp liên quan đến dữ liệu thời khóa biểu Các đối tượng chính của Thời khóa biểu bao gồm:
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 qui định chặt chẽ về thời lượng, kiến thức và hình thức học
Hội trường: địa điểm học các môn học và bài giảng do giáo viên đảm nhiệm
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 được phân công vào các lớp học Chính việc phân công lớp học theo các kiểu khác nhau tạo ra sự khác biệt cơ bản của mô hình Thời khóa biểu Trên thực tế tại Việt Nam cũng thế giới có 2 loại lớp học sau đây:
Mô hình lớp học niên chế: Học sinh nhập học và các năm học được phân công cố định vào các lớp học được gọi là lớp niên chế
Mô hình lớp học tín chỉ: Học sinh được tự do đăng ký vào các bài
giảng đã được chuẩn bị trước của Thời khóa biểu Các lớp học này thực
chất là các Bài giảng (Course) được thiết kế thời khóa biểu giảng dạy chi
tiết Thông thường, sau khi thời khóa biểu của các lớp học này đã đư ợc lên kế hoạch thì học sinh mới căn cứ vào thời khóa biểu cụ thể để đăng
ký học Cũng có thể xếp thời khóa biểu các lớp học tín chỉ sau khi học sinh đã đăng ký học Việc sắp xếp này phải đảm bảo sự không trùng giờ
học của các sinh viên đã đăng ký Tuy nhiên cách làm này s ẽ vô cùng
phức tạp và trên thực tế không có nhà trường nào tổ chức xếp Thời khóa
biểu theo mô hình này
3.3 Các đối tượng liên quan đến Thời khóa biểu
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, Phòng học và Môn học (học phần) giảng dạy Các đối tượng này tuy có vai trò thứ yếu trong việc phân loại mô hình thời khóa biểu tuy nhiên những đặc thù riêng biệt của các đối tượng này có ảnh hưởng rất
Trang 35lớn đến mô hình chung của bài toán xếp thời khóa biểu Chúng ta sẽ xem xét chúng nhanh tại đây
a) 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 2 mức (mức sơ bộ - chi tiết) thông tin phân bổ việc xếp thời khóa biểu sơ bộ về Khoa hay Bộ môn là
rất quan trọng
Việc phân công giảng dạy của giáo viên theo từng môn học hoặc
từng hình thức học của môn học sẽ tạo ra sự khác biệt rất lớn giữa các
mô hình xếp thời khóa biểu khác nhau
Cho phép gán phân công giảng dạy không phải cho 1 giáo viên mà
là cho một nhóm giáo viên
Phân công giáo viên cho các lớp ghép và tách
b) Phòng học: Phòng học chuyên môn đóng vai trò r ất quan trọng trong mọi bài toán xếp thời khóa biểu Các đặc thù sau của phòng học
cần chú ý khi xếp thời khóa biểu:
Có phân biệt rõ ràng hay không giữa các phòng học lý thuyết và
thực hành theo các môn học
Các đặc thù chuyên môn đặc biệt của phòng học (ví dụ đối với các trường thể dục thể thao, nghệ thuật múa, hát, hội họa, thiết bị đặc chủng quân sự, )
c) Môn học: Môn học hay học phần là một đơn vị quản lý chính của chương trình đào t ạo và là đối tượng xếp thời khóa biểu chính của cả 2
mô hình lớp niên chế và lớp tín chỉ Chính vì vậy môn học đóng vai trò quan trọng trong mô hình bài toán xếp Thời khóa biểu các nhà trường đại học, cao đẳng của Việt Nam
Trang 36Mô hình của bài toán xếp Thời khóa biểu cho các nhà trường Việt Nam có những đặc thù quan trọng sau đây:
Phân biệt rõ ràng buổi học SÁNG, CHIỀU, TỐI Đây là một đặc thù
rất riêng biệt của Việt Nam do tính chất của thời tiết vùng nhiệt đới Tại
Việt Nam, hầu hết việc học tập chỉ diễn ra trong một buổi học, các tiết
học đánh số từ đầu cho mỗi buổi học
Phần lớn các nhà trường Việt Nam có mô hình thời khóa biểu theo
lớp niên chế Tuy nhiên trong một số mô hình có kết hợp cả hai loại hình
lớp học niên chế và tín chỉ
Do mô hình chương trình KHUNG đào t ạo của Bộ Giáo dục & Đào
tạo được mô tả rất sơ sài và tổng quát, mỗi nhà trường hầu như lại có
một mô hình quản lý Chương trình Đào t ạo CHI TIẾT khác nhau, dẫn đến việc mô hình xếp Thời khóa biểu cũng rất khác nhau Theo quan sát
của chúng tôi tại Việt Nam hầu như không có 2 nhà trường đại học, cao đẳng nào có mô hình thời khóa biểu giống nhau Hay nói một cách khác không thể xây dựng một phần mềm hỗ trợ xếp Thời khóa biểu chung cho
tất cả các nhà trường
Mô hình của bài toán xếp Thời khóa biểu cho các nhà trường Việt Nam có những đặc thù quan trọng sau đây:
Phân biệt rõ ràng buổi học SÁNG, CHIỀU, TỐI Đây là một đặc thù
rất riêng biệt của Việt Nam do tính chất của thời tiết vùng nhiệt đới Tại
Việt Nam, hầu hết việc học tập chỉ diễn ra trong một buổi học, các tiết
học đánh số từ đầu cho mỗi buổi học
Phần lớn các nhà trường Việt Nam có mô hình thời khóa biểu theo
lớp niên chế Tuy nhiên trong một số mô hình có kết hợp cả hai loại hình
lớp học niên chế và tín chỉ
Trang 373.4 Quy trình x ếp tkb hệ tín chỉ bậc đào tạo ĐH tại trường ĐH TĐT
Hiện nay ở các trường tồn tại 2 kiểu xếp TKB bằng tay như sau:
3.4.1 Phòng Đào tạo xếp Thời khóa biểu chi tiết 1 lần
Ở mô hình này toàn bộ việc sắp xếp Thời khóa biểu cho toàn trường được tiến hành một lần tại Phòng Đào tạo Toàn bộ dữ liệu tập trung tại phòng đào tạo và tại đây công việc xếp thời khóa biểu được tiến hành đồng loạt cho đến kết quả cuối cùng
Thông thường các trường đại học có mô hình đào t ạo ổn định, đội
ngũ giáo viên cơ hữu lớn được thực hiện theo mô hình này
3.4.2 Vi ệc xếp Thời khóa biểu chia làm 2 giai đoạn: Khoa/Bộ môn -
Phòng đào tạo
Với mô hình này, tại phòng đào t ạo thực hiện việc phân công lớp
học và môn học và các định hướng đào tạo chính Sau đó dữ liệu được chuyển về các khoa và bộ môn phân công thời khóa biểu cụ thể Sau khi
đã xếp sơ bộ tại Khoa/Bộ môn, dữ liệu được chuyển về phòng đào tạo để hoàn thiện
Các trường đại học mới thành lập, các trường dân lập với đội ngũ giáo viên còn thiếu thông thường tiến hành xếp thời khóa biểu theo mô hình này
Qui trình xếp Thời khóa biểu bằng tay có thể mô tả trong sơ đồ tổng quát dưới đây:
Trang 38Quy trình xếp TKB tổng quát Chú thích:
3.5 Ứng dụng giải thuật Di Truyền
Ta có thể hình dung mô hình bài toán trong giải thuật di truyền như sau: gồm một quần thể chứa tất cả các kết quả có thể có được của bài toán, rồi từ đó chọn ra kết quả tốt nhất
Vì thế suy ra, bộ nhiễm sắc thể trong mỗi cá thể chính là một kiểu
sắp xếp lịch thực hành, đồng thời phải đáp ứng được vấn đề bài toán đặt
Trang 39ra: các nhiễm sắc thể không được trùng nhau, không được thiếu lớp-môn nào
Mỗi nhiễm sắc thể được biểu diễn bởi một chuỗi gen là chuỗi các số nguyên
Ví dụ: Giả sử ta có số lớp-môn = 8 thì ta có bộ nhiễm sắc thể đầy đủ như sau:
tổng số lớp môn được sắp ) Cuối cùng trả về giá trị ước lượng của cá
thể, mà kết quả này được đưa vào biến fit theo từng cá thể tương ứng
Việc chọn lựa sẽ dựa trên biến fit bằng cách: sắp xếp lại quần
thể theo độ thích nghi giảm dần, sau đó lấy từ trên xuống tất cả các cá
thể (kể cả cha mẹ lẫn con cái), với số lượng bằng số cá thể ban đầu
* Lai ghép và đột biến:
Hai phần này, có lẽ đã được nói rõ trong chương trư ớc
Ở đây xin được nói ngắn gọn, về lai ghép, ta dùng lai ghép có trật tự:
Còn về đột biến: chỉ việc hoán vị hai nhiễm sắc
Trang 40Về đảo gen: Một cá thể thay đổi vị trí các gen để tạo thành cá thể mới
Chọn điểm dừng trong thuật toán Như đã nêu trên, chúng ta có thể kết thúc thuật toán với nhiều điều kiện dừng khác nhau Với bài toán sắp thời khoá biểu thực hành này, ta chọn cách dừng theo số thế hệ
Khi điều kiện dừng thỏa, thuật toán kết thúc và cho ta nhiễm
sắc thể tốt nhất Từ đó ta sẽ có được một kiểu sắp thời khóa biểu thực hành với số lớp môn sắp được là cao nhất
3.6 Các ràng bu ộc bài toán
Ràng buộc cứng:
• Một phòng không thể được sử dụng cho hai sự kiện cùng một lúc
• Sĩ số của nhóm môn học không vượt quá sức chứa của phòng
• Tính chất môn học phải phù hợp với tính chất phòng: (môn thực hành – phòng thực hành), (môn lý thuyết – phòng lý thuyết)…
• Tổng số tiết học của một môn phải đúng với số tiết quy định lúc nhập
liệu.của môn học đó
• 1 môn không học quá 2 lần/ buổi
nhóm sau không được có tiết bắt đầu bằng tiết bắt đầu của nhóm trước của cùng 1 môn + số tiết học của môn đó