World’s Best StudentProject 2 Giải thuật di truyền và bài toán sắp xếp thời khóa biểu cho một trường tiểu học 6/3/2012... Các thông tin của bài toán+ Danh sách lớp học + Danh sách giáo v
Trang 1World’s Best Student
Project 2
Giải thuật di truyền và bài toán sắp xếp thời khóa biểu cho một trường tiểu học
6/3/2012
Trang 2Nội dung
I Giải thuật di truyền
II Mô tả bài toán sắp xếp TKB
III Thiết kế giải thuật cho bài toán sắp xếp TKB
IV Công cụ lập trình
Trang 3I Giải thuật di truyền
I.1 Khái quát về giải thuật di truyền
I.2 Các toán tử của giải thuật di truyền:
I.2.1 Toán tử lai ghép
I.2.2 Toán tử đột biến
I.2.3 Toán tử chọn lọc
Trang 4Toán tử lai ghép
Quá trình lai ghép diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể (NST) cha-mẹ để hình thành hai chuỗi NST con mang đặc tính của
cả cha lẫn mẹ Giả sử chuỗi NST của cha và mẹ đều có chiều dài là m và được chọn ngẫu nhiên trong quần thể Điểm lai sẽ chia hai chuỗi NST cha-mẹ thành hai chuỗi NST con Đưa hai chuỗi NST con vào quần thể để tiếp tục tham gia quá trình tiến hóa tiếp theo
Trang 5Toán tử đột biến
Quá trình đột biến xảy ra khi một hoặc một số tính trạng của con không được thừa hưởng từ hai chuỗi NST cha-mẹ Phép đột biến xảy ra với xác suất thấp hơn rất nhiều lần so với xác suất xảy ra phép lai Phép đột biến có thể mô tả như sau: Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m Thay đổi giá trị của gen thứ k Đưa NST con vào quần thể để tham gia quá trình tiến hóa tiếp theo
Trang 6Toán tử chọn lọc
Là quá trình dựa trên độ thích nghi của từng cá thể Độ thích nghi là một hàm được gán các giá trị thực cho các cá thể trong quần thể của nó Trong
đó phép chọn là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt Phép chọn được mô tả như sau: 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ỉ để lại những cá thể tốt nhất
Trang 7II Mô tả bài toán sắp xếp TKB
II.1 Các thông tin của bài toán
II.2 Các ràng buộc
II.3 Mục tiêu của bài toán
Trang 8II.1 Các thông tin của bài toán
+ Danh sách lớp học
+ Danh sách giáo viên
+ Danh sách môn học trong từng lớp
+ Tổng số tiết học trong một tuần của từng môn học
+ Bảng phân công giáo viên giảng dạy tại các lớp
+ Số ngày lên lớp tối đa trong tuần của từng giáo viên
Trang 9II.2 Các ràng buộc
+ RB1: một giáo viên không thể dạy 2 lớp trong cùng 1 tiết
+ RB2: một lớp không thể học 2 môn trong cùng 1 tiết
+ RB3: Không được học 1 môn quá số tiết quy định của môn đó trong 1 ngày
+ RB4: Số buổi dạy của 1 giáo viên trong tuần tại 1 lớp phải nằm trong khoảng quy định
Trang 10II.3 Mục tiêu
Tìm được 1 thời khóa biểu thỏa mãn tất cả các ràng buộc ở trên
và cực tiểu số tiết trống trong 1 ngày của giáo viên và số ngày lên lớp trong 1 tuần của mọi giáo viên tham gia giảng dạy
Trang 11III Thiết kế giải thuật cho bài toán sắp xếp TKB
+ Sử dụng phương pháp chia để trị: việc sắp xếp thời khóa biểu nhiều ngày (N ngày) sẽ được đưa về bài toán sắp xếp lịch thời khóa biểu trên một ngày + Bài toán chia thành 2 bước:
- B1: xác định những tiết sẽ học tại mỗi lớp trong từng ngày
- B2: xác định lịch học của tất cả các lớp trong từng ngày
Trang 12Mô hình giải bài toán sắp xếp TKB
+ Bước 1:
- Thực hiện “Giải thuật di truyền (I)” cho tất cả giáo viên
- Thực hiện “Giải thuật di truyền (II)”
+ Bước 2:
- Thực hiện “Giải thuật di truyền (III)”
- Xuất kết quả
Trang 13III Thiết kế giải thuật cho bài toán sắp xếp TKB
III.1 Giải thuật di truyền (I):
Mục tiêu: tạo ra lịch giảng cho từng giáo viên
III.2 Giải thuật di truyền (II):
Mục tiêu: đưa bài toán sắp xếp thời khóa biểu N ngày về bài toán sắp lịch thời khóa biểu trên 1 ngày
III.3 Giải thuật di truyền (III):
Mục tiêu: sắp lịch phân công trong 1 ngày sao cho thỏa mãn RB2 (1 lớp không thể học 2 môn/1 tiết)
Trang 14III Thiết kế giải thuật cho bài toán sắp xếp TKB
• Với mỗi giải thuật di truyền ở trên, ta lần lượt sử dụng các toán tử lai ghép, đột biến và chọn lọc để cuối cùng chọn ra được những cá thể có độ thích nghi cao và đạt được mục tiêu đã đề ra cho từng giải thuật di truyền.
Trang 15Một số chức năng của chương trình
+ Tạo mới TKB
+ Chỉnh sửa DL ( thêm, sửa, xóa thông tin giáo viên, môn học)
+ Định nghĩa thời gian xếp TKB (số ngày làm việc trong tuần, số tiết học trong ngày)
+ Điều chỉnh các ràng buộc (thời gian bận, số ngày, tiết dạy trong tuần của giáo viên)
+ Xếp TKB (tự động theo những ràng buộc)
+ Xem TKB (TKB giảng viên, TKB lớp học)
Trang 16IV Công cụ lập trình
+ C#