Tải bản đầy đủ (.pptx) (16 trang)

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

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 (297.68 KB, 16 trang )

World’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
Nộ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
I. 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
Toá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.
Toá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.
Toá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.
II. Mô tả bài toán sắp xếp TKB
II.1. Các thông 'n của bài toán
II.2. Các ràng buộc
II.3. Mục 'êu của bài toán
II.1. Các thông *n 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
II.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
II.3. Mục *ê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 'ểu số 'ế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
III. 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
Mô 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ả
III. 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)
III. 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.
Mộ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)
IV. Công cụ lập trình
+ C#

×