Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS nguyễn thái bình
Trang 1MỞ ĐẦU 1
I Lý do chọn đề tài 1
II Mục đích và nhiệm vụ đề tài 1
II.1 Mục đích của đề tài 1
II.2 Nhiệm vụ cần thực hiện 1
II.3 Công cụ xây dựng 1
III Bố cục luận văn 2
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3
1.1 MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU 3
1.1.1 Tìm kiếm cục bộ 3
1.1.2 Xung đột tối thiểu 3
1.1.3 Thuật giải mô phỏng luyện kim 3
1.1.4 Thuật giải leo đồi 4
1.1.5 Tìm kiếm Tabu 4
1.2 TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN 4
1.2.1 Lịch sử phát triển 4
1.2.2 Đặc điểm của giải thuật di truyền 5
1.2.3 Cấu trúc của một thuật giải di truyền 6
1.2.4 Quá trình chính trong giải thuật di truyền 7
1.3 KẾT LUẬN 12
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 13
2.1 KHẢO SÁT BÀI TOÁN 13
2.2 MÔ TẢ HỆ THỐNG 13
2.2.1 Quy trình nghiệp vụ 13
2.2.2 Phân tích và thiết kế chức năng 15
2.3 XÂY DỰNG SƠ ĐỒ 17
2.3.1 Sơ đồ Use Case 17
2.3.2 Sơ đồ hoạt động 26
2.3.3 Sơ đồ tuần tự 34
2.4 PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 37
2.4.1 Sơ đồ quan hệ 37
2.4.2 Danh sách các bảng cơ sở dữ liệu 37
2.5 KẾT LUẬN 39
CHƯƠNG 3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 40
3.1 ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO CHƯƠNG TRÌNH 40
3.1.1 Mô hình áp dụng 40
3.1.2 Dữ liệu 41
3.1.3 Ràng buộc của bài toán 41
3.1.4 Áp dụng thuật giải di truyền vào bài toán 42
3.2 KẾT QUẢ CHƯƠNG TRÌNH 60
3.2.1 Kết quả 1 60
3.2.2 Kết quả 2 62
3.2.3 Kết quả 3 62
i
Trang 2I Đánh giá kết quả đạt được 65
II Ưu điểm 65
III Hạn chế 65
IV Hướng phát triển 66
TÀI LIỆU THAM KHẢO 67
PHỤ LỤC 68
Trang 3Hình 1: Sơ đồ use case tổng quát 17
Hình 2: Sơ đồ use case quản lý giáo viên 18
Hình 3: Sơ đồ use case quản lý tiết chuẩn môn học 18
Hình 4: Sơ đồ use case phân công giáo viên giảng dạy 19
Hình 5: Sơ đồ hoạt động của use case nhóm xem thông tin 27
Hình 6: Sơ đồ hoạt động của các use case nhóm xem dữ liệu thời khóa biểu 27
Hình 7: Sơ đồ hoạt động của các use case thuộc nhóm thêm dữ liệu 28
Hình 8: Sơ đồ hoạt động của các use case thuộc nhóm sửa dữ liệu 29
Hình 9: Sơ đồ hoạt động của các use case thuộc nhóm xóa dữ liệu 30
Hình 10: Sơ đồ hoạt động của use case thêm phân công giảng dạy giáo viên 31
Hình 11: Sơ đồ hoạt động của use case cập nhập phân công giáo viên 32
Hình 12: Sơ đồ hoạt động của use case xếp thời khóa biểu 33
Hình 13: Sơ đồ hoạt động của use case In thời khóa biểu 33
Hình 14: Sơ đồ tuần tự của use case xem dữ liệu giáo viên 34
Hình 15: Sơ đồ tuần tự của use case thêm mới giáo viên 34
Hình 16: Sơ đồ tuần tự use case sửa giáo viên 35
Hình 17: Sơ đồ tuần tự của use case xóa giáo viên 35
Hình 18: Sơ đồ tuần tự của use case xem thời khóa biểu lớp 36
Hình 19: Sơ đồ tuần tự của use case phân nhóm giáo viên 36
Hình 20: Sơ đồ quan hệ giữa các bảng CSDL 37
Hình 21: Mô hình áp dụng giải thuật di truyền 40
Hình 22: Thời khóa biểu lớp 42
Hình 23: Kết quả 1 – Lớp 7/1 61
Hình 24: Kết quả 1 – Lớp 8/1 61
Hình 25: Kết quả 1 – Lớp 9/1 62
Hình 26: Kết quả 2 – Lớp 9/1 62
Hình 27: Kết quả 3 – Lớp 6/1 63
Hình 28: Kết quả 3 – Lớp 7/1 63
Hình 29: Kết quả 3 – Lớp 8/1 64
Hình 30: Kết quả 3 – Lớp 9/1 64
Hình 31: Các bước xây dựng thời khóa biểu 68
Hình 32: Giao diện chính chương trình 69
Hình 33: Thực đơn dữ liệu 69
Hình 34: Thực đơn xây dựng cơ sở dữ liệu 70
Hình 35: Giao diện thông tin chung 70
Hình 36: Giao diện lớp học 71
Hình 37: Giao diện giáo viên 72
Hình 38: Thống báo lỗi khi thêm giáo viên đã tồn tại trong cơ sở dữ liệu 72
Hình 39: Thông báo khi tải tập tin excel thành công 72
Hình 40: Giao diện chia giáo viên vào nhóm 73
Hình 41: Giao diện môn học 74
Hình 42: Giao diện nhấp số tiết chuẩn môn học 75
Hình 43: Giao diện thông báo lỗi khi nhập giá trị không đúng 75
Hình 44: Giao diện phân công giảng dạy 76
Hình 45: Giao diện thông báo khi chưa nhập số tiết chuẩn 76
Trang 4Hình 49: Giao diện thông báo tạo xong cơ sở dữ liệu 78 Hình 50: Giao diện nhập tiết nghỉ giáo viên 79 Hình 51: Thực đơn xếp thời khóa biểu 79
Trang 5Bảng 1: Đặc tả use case xem thông tin 19
Bảng 2: Đặc tả use case thêm mới giáo viên 20
Bảng 3: Đặc tả use case sửa thông tin 20
Bảng 4: Đặc tả use case xóa giáo viên khỏi danh sách 21
Bảng 5: Đặc tả use case xem thông tin 21
Bảng 6: Đặc tả use case Cập nhập 22
Bảng 7: Đặc tả use case xóa tiết chuẩn 22
Bảng 8: Đặc tả use case xem dữ liệu phân công 23
Bảng 9: Đặc tả use case Thêm phân công 23
Bảng 10: Đặc tả use case cập nhập phân công giáo viên giảng dạy 24
Bảng 11: Đặc tả use case xóa phân công giáo viên giảng dạy 24
Bảng 12: Đặc tả use case thống kê phân công giáo viên giảng dạy 25
Bảng 13: Đặc tả use case kiểm tra dữ liệu phân công giáo viên 25
Bảng 14: Bảng nhóm giáo viên 37
Bảng 15: Bảng môn học 37
Bảng 16: Bảng tiết nghỉ giáo viên 37
Bảng 17: Bảng giáo viên 38
Bảng 18: Bảng khối lớp 38
Bảng 19: Bảng khối_môn học 38
Bảng 20: Bảng lớp 38
Bảng 21: Bảng tiết nghỉ lớp học 38
Bảng 22: Bảng phân công 38
Bảng 23: Bảng thông tin chung 39
Bảng 24: Bảng thời khóa biểu 39
Trang 6Tính phức tạp của bài toán xếp Thời khóa biểu nằm ở các quy định, ràng buộcmôn học chặt chẽ, ràng buộc nghỉ và không nghỉ của các giáo viên hết sức phức tạp,
đa dạng
Vì vậy, em đã chọn đề tài “Tìm hiểu thuật toán di truyền và xây dựng chương
trình xếp thời khóa biểu trường THCS Nguyễn Thái Bình” làm đề tài tốt nghiệp,
nhằm tiết kiệm thời gian và công sức của ban giám hiệu, giúp cho việc lập thời khóabiểu trở nên thuận tiện hơn
II Mục đích và nhiệm vụ đề tài
II.1 Mục đích của đề tài
Tiết kiệm thời gian và công sức trong việc xếp thời khóa biểu
Ứng dụng giải thuật di truyền và dữ liệu đầu vào xếp thời khóa biểu
Xuất ra các file báo cáo về thời khóa biểu theo mục đích người sử dụng
II.2 Nhiệm vụ cần thực hiện
Tìm hiểu thuật toán di truyền (Genetic Algorithms)
Phân tích bài toán, tìm hiểu cách xếp thời khóa biểu ở trường THCSNguyễn Thái Bình
Ứng dụng thuật toán di truyền để xếp thời khóa biểu
II.3 Công cụ xây dựng
Visual studio 2010
SQL server 2008
III Bố cục luận văn
Mở đầu: Tổng quan đề tài: Chương này trình bày về bối cảnh, mục đích và
nhiệm vụ của đề tài
Trang 7Chương II: Phân tích thiết kế hệ thống: Chương này trình bày về phân tích và
thiết kế xây dựng chương trình xếp thời khóa biểu trường THCS Nguyễn Thái Bình
Chương III: Triển khai và đánh giá kết quả Chương này trình bày về các bước
xây dựng thời khóa biểu bằng việc áp dụng thuật toán di truyền và kết quả củachương trình
Kết luận và hương phát triển: Chương này tổng kết về những kết quả đạt được,
những ưu khuyết điểm của chương trình và hướng phát triển
2
Trang 81.1 MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU
1.1.2 Xung đột tối thiểu
Thuật giải xung đột tối thiểu, viết tắt là MC đã được dùng khá phổ biến để giải
hệ ràng buộc quá mức Thuật giải MC chọn ngẫu nhiên một biến nào đó dính líu đếnmột ràng buộc bị vi phạm và rồi chọn một trị từ miền trị của biến này sao cho tối thiểuhoá số lượng những vị phạm ràng buộc có thể xảy ra Vì Thuật giải MC thuần túy cóthể không thoát ra được điểm tối ưu cục bộ, Thuật giải thường kết hợp với một chiếnlược bước ra ngẫu nhiên (random walk) Với một biến nào đó được chọn, chiến lượcbước ra ngẫu nhiên lấy ngẫu nhiên một trị từ miền trị của biến này với xác xuất p, và
áp dụng theo Thuật giải MC với xác xuất 1- p Giá trị của thông số p có ảnh hưởnglên hiệu quả của Thuật giải Thuật giải này được gọi là MCRW
1.1.3 Thuật giải mô phỏng luyện kim
Mô phỏng luyện kim(SA) là một kỹ thuật tìm kiếm ngẫu nhiên (stochasticsearch) mà tỏ ra rất hữu hiệu cho những bài toán tối ưu hóa qui mô lớn Trong kỹthuật này, nhiệt độ là biến được khởi tạo ở một giá trị cao và dần dần giảm dần xuốngtrong quá trình tìm kiếm Tại những trị nhiệt độ cao, các bước chuyển được chấp nhậnmột cách ngẫu nhiên bất luận chúng là bước chuyển có cải thiện hàm chi phí của lờigiải hay không Khi nhiệt độ được giảm xuống, xác xuất để chấp nhận một lời giải cócải thiện sẽ tăng lên và xác xuất để chấp nhận một lời giải không cải thiện sẽ giảmxuống Có một số cách thức giảm nhiệt độ dần xuống được dùng trong một Thuật giải
SA, được gọi là lịch biểu làm nguội (cooling schedule)
1.1.4 Thuật giải leo đồi
Thuật giải leo đồi chính là nền tảng cơ sở của các kỹ thuật tìm kiếm cục bộ.Mặc dù đây là Thuật giải đơn giản nhưng lại nó lại rất mạnh và hiệu quả trong việc
Trang 9giải quyết các bài toán CSP lớn Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ cơchế “tu chỉnh lập”: ở mỗi bước của việc tìm kiếm, chúng ta sẽ chọn một bước chuyển
mà nó cải thiện giá trị hàm mục tiêu để thực hiện Trong Thuật giải leo đồi, chỉnhững bước chuyển cải thiện được hàm chi phí hoặc không làm cho hàm chi phí thayđổi mới được chọn vì vậy việc tìm kiếm sẽ liên tục bước lên vị trí cao hơn cho đến khi
nó gặp điều kiện dừng
1.1.5 Tìm kiếm Tabu
Tìm kiếm Tabu được đề xuất bởi Glover năm 1986 Phương pháp dò tìm trongkhông gian lời giải bằng cách di chuyển từ một lời giải s tại lượt lặp t về một lời giảitốt nhất s’ trong tập con N* của miền lân cận N(s) Vì s’ không nhất thiết cải thiện chiphí của s, một cơ chế được đặt ra để ngăn chặn quá trình khỏi lặp vòng trên một chuỗicác lời giải Một cách để tránh sự lặp vòng là cấm quá trình tìm kiếm quay về nhữnglời giải đã gặp rồi, nhưng làm như vậy đòi hỏi phải lưu trữ khá nhiều thông tin Thay
vì làm thế, chỉ một vài thuộc tính của những lời giải đã gặp sẽ được lưu trong danhsách tabu (tabu list) và bất kỳ lời giải nào sở hữu những thuộc tính này sẽ không đượcxét đến trong θ lần lặp Cơ chế này thường được gọi là bộ nhớ ngắn hạn và θ được gọi
là kỳ hạn tabu Tìm kiếm tabu được phát triển thành nhiều dạng cải tiến như tìm kiếmtabu thích nghi (reactive tabu search) và tìm kiếm tabu với hai danh sách tabu: bộ nhớngắn hạn và bộ nhớ dài hạn
Như đã trình bày ở trên chúng ta có rất nhiều phương pháp tiếp cận giải bài toánxếp lịch Trong luận văn này em xin trình bày phương pháp áp dụng thuật toán ditruyền để giải bài toán này
1.2 TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN
Năm 1960, Rechenberg giới thiệu “các chiến lược tiến hóa”, một phương phápđược ông sử dụng để tối ưu hóa các tham số thực cho các thiết bị như máy bay Ýtưởng này được tiếp tục phát triển sau đó bởi Schwefel Lĩnh vực các chiến lược tiếnhóa vẫn là một lĩnh vực nghiên cứu được quan tâm nhiều, hầu như phát triển độc lậpvới lĩnh vực giải thuật di truyền, nhưng gần đây 2 lĩnh vực này bắt đầu có sự tươngtác rõ nét hơn Owens và Walsh (1966) đã phát triển “lập trình tiến hóa” một kỹ thuậttrong đó các lời giải cho một bài toán cho trước được biểu diễn dưới dạng các máy có
4
Trang 10biểu đồ biến đổi trạng thái của chúng và chọn những trạng thái tốt nhất Các chiếnlược tiến hóa, lập trình tiến hóa và giải thuật di truyền cùng nhau tạo thành xươngsống cho tính tiến hóa.
GAs được phát minh bởi John Holland trong những năm 1960 và được phát triểnbởi Holland với các sinh viên và đồng nghiệp của ông ở đại học Michigan trongnhững năm 1960 và 1970 Không giống như các chiến lược tiến hóa và lập trình tiếnhóa, mục tiêu ban đầu của Holland là thiết kế các thuật toán để giải quyết những bàitoán cụ thể, nhưng sau đó từ những nghiên cứu hiện tượng thích nghi xảy ra trong tựnhiên và ông thấy rằng chúng có thể được tích hợp trong máy tính
Cuốn sách của Holland xuất bản năm 1975: “Thích nghi trong tự nhiên và các hệthống nhân tạo” giới thiệu giải thuật di truyền như là một khái niệm của tiến hóa sinhhọc và đưa ra một nền móng lý thuyeert cho tính thích nghi trong GAs Giải thuật ditruyền của Holland là một phương pháp để di chuyển từ một quần thể các NST sangmột quần thể khác nhờ sử dụng một kiểu lựa chọn tự nhiên cùng các toán tử lai ghép,đột biến và đảo ngược Mỗi NST gồm các gen, mỗi gen là một biểu hiện của một alen
cụ thể Toán tử lựa chọn chọn những NST trong quần thể mà chúng cho phép sinhsản, và nói chung các NST thích nghi tốt hơn tạo ra nhiều con hơn những NST có độthích nghi thấp hơn
Việc đưa vào khái niệm quần thể của Holland cùng với các khái niệm lai ghép,đảo ngược và đột biến thực sự là một cuộc cách mạng.Các chiến lược tiến hóa củaRechenberg sử dụng quần thể với 2 các thể, một cha/mẹ và một con, con ghép đãkhông được đề cập lúc đầu
Lần đầu tiên Holland nghiên cứu các giải thuật 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, Holland đã đặt têncho nó là giải thuật di truyền
1.2.2 Đặc điểm của giải thuật di truyền
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 Ta có thểnói về các cá thể (hay kiểu gen, cấu trúc) trong một quần thể; những cá thể này cũngcòn được gọi là các chuỗi hay các nhiễm sắc thể Các nhiễn sắc thể được tạo thành từcác đơn vị - các gen – biểu diễn trong một chuỗi tuyến tính; mỗi gen kiểm soát mộtđặc trưng Gen với những đặc trưng nhất định có vị trí nhất định trong nhiễm sắc thể.Mỗi kiểu (nhóm) gen (ta gọi là một nhiễm sắc thể) sẽ biểu diễn một lời giải củabài toán đang giải Một quá trình tiến hóa được thực hiện trên một quần thể các nhiễmsắc thể ương ứng với một quá trình tìm kiếm lời giải trong không gian lời giải Tìmkiếm đó cần cân đối hai mục tiêu: khai thác những lời giải tốt nhất và khảo sát không
Trang 11gian tìm kiếm Thuật giải di truyền (GA) là phương pháp tìm kiếm độc lập miền, tạođược sự cân đối đáng kể giữa việc khai thác và khảo sát không gian tìm kiếm.
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 quần thể các lời giải – tất cả những phương pháp khác chỉ
xử lý một điểm trong không gian tìm kiếm Quần thể trải qua tiến trình tiến hóa: ởmỗi thế hệ lại tái sinh các lời giải tương đối tốt, trong khi các lời giải tương đối xấuthì chết đi Để phân biệt các lời giải khác nhau, hàm mục tiêu được dùng đóng vai tròmôi trường
1.2.3 Cấu trúc của một thuật giải di truyền
Một thuật giải di truyền có cấu trúc đơn giản tương tự với cấu trúc của bất kỳchương trình tiến hóa nào Ở bước lặp t, thuật giải di truyền duy trì một quần thể cáclời giải (các nhiễm sắc thể, vectơ), P(t) = {x1t,… ,xnt} Mỗi lời giải xit được lượng giá
để biết độ thích nghi của nó Rồi một quần thể mới (lặp lần thứ t+1) được hình thànhbằng cách chọn giữ lại những cá thể thích nghi nhất Một số cá thể của quần thể nàytrải qua những biến đổi nhờ lai tạo (phép lai) và đột biến (phép đột biến), hình thànhnên những lời giải mới
Một thuật giải di truyền giải một bài toán cụ thể phải gồm 5 thành phần sau:
Một cấu trúc dữ liễu biểu diễn di truyền theo lời giải của bài toán: Đây làvấn đề cần giải quyết trước khi giải bài toán với GA Các phương pháp mãhóa thường được sử dụng:
o Mã hóa dạng chuỗi nhị phân: mỗi NST là một chuỗi bit 0 và 1
o Mã hóa thứ tự: mỗi nhiễm sắc thể là một chuỗi các số nguyên thể hiệnthứ tự phân bố lời giải của bài toán
o Mã hóa theo giá trị: mỗi nhiễm sắc thể là một chuỗi các giá trị có mốiquan hệ tương ứng với bài toán
o Mã hóa dạng cây: mỗi nhiễm sắc thể là một cây của nhóm đối tượngnào đó
Cách khởi tại quần thể ban đầu P(0): Tập lời giải ban đầu được khởi tạomột cách ngẫu nhiên từ không gian lời giải
Hàm đánh giá cá thể: đánh giá khả năng thích nghi của tập lời giải theo yêucầu bài toán
Các phép toán di truyền
Các tham số khác
6
Trang 12Nếu không lai ghép thì nhiễm sắc thể con sao chép nguyên vẹn nhiễmsắc thể cha mẹ Nếu có lai ghép thì nhiễm sắc thể con được xây dựng từnhững thành phần của nhiễm sắc thể cha mẹ.
o Xác suất đột biến Pm: là mức độ thường xuyên của việc đột biến mộtphần của nhiễm sắc thể Xác suất đột biến phải nhỏ, vì nếu xác suất nàycao sẽ làm tăng khả năng hội tụ
o Xác suất tái sinh Pr: cho biết tần suất thực hiện toán tử tái sinh
Kích thước quần thể: nếu kích thước quần thể quá nhỏ thì khả năng lai ghép sẽnhỏ và chỉ một phần nhỏ của tập tìm kiếm được xử lý Ngược lại, nếu kích thước quálớn thì tốc độ xử lý chậm Số lượng cá thể tối ưu phụ thuộc vào bài toán cụ thể vàphương pháp mã hóa cụ thể
1.2.4 Quá trình chính trong giải thuật di truyền
I.1 Quá trình lai ghép (Phép lai)
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ểcha – mẹ để tạo ra nhiễm sắc thể con có đặc tính mong muốn là tốt hơn thế hệ bố mẹ.Trong thuật toán di truyền có rất nhiều phương pháp lai như: Lai ghép một điểm, laighép đa điểm, lai ghép có trật tự, lai ghép dựa trên vị trí,…
Đư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
Ví dụ: cho 2 nhiễm sắc thể cha mẹ có độ dài là 9, điểm lai k=4
Cha: 110011000 Mẹ: 110011000
Con1: 110011000 Con2: 110001100
Trang 13Lai ghép đa điểm
Lai ghép đa điểm là sự mở rộng của lai ghép một điểm, chọn ngẫu nhiên k điểm
k1, k2,… ,kn từ cặp nhiễm sắc thể cha mẹ, sao cho 1≤ k1 ≤ k2 ≤….<n để tạo ra nhiễmsắc thể con
Ví dụ: cho 2 nhiễm sắc thể cha mẹ có độ dài 18, k = 3 tương ứng các điểm 3,7,13
Cha: 110 1000 110010 100010 Mẹ: 110 000011101 111100 Con1: 110 0000 110010 111100 Con2: 110 1000 11101 100010 Lai ghép ánh xạ từng phần
Lai ghép ánh xạ từng phần do Golberg và Lingde đề nghị, là phương pháp tạo racon mới bằng cách chọn một chuỗi con từ cha mẹ, đồng thời bảo toàn thứ tự và vị trícủa tối đa cá thể của cha mẹ kia Thuật toán gồm các bước sau:
Chọn hai điểm cắt nhau cùng với 1 chuỗi một cách ngẫu nhiên, chuỗi conđược định nghĩa bởi hai điểm cắt được gọi là ánh xạ từng phần
Trao đổi hai chuỗi con giữa hai điểm nhiễm sắc thể cha mẹ để tạo ra nhiễmsắc thể con
Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ
Tạo ra cá thể con bằng cách sao chép chuỗi con vào những vị trí tương ứngnhư trong cá thể cha mẹ
Tạo ra một trình tự bắt đầu từ điểm cắt của cha (mẹ) được chọn và xóa cácgen đã được chọn ở cha (mẹ)
Bổ sung các gen vào cá thể được chọn bắt đầu điểm cắt
Trang 14Trong quá trình lai ghép dựa trên vị trí một mặt nạ nhị phân được sinh ra có kíchthước sau đó trao đổi các gen liên quan giữa các cá thể cha mẹ dựa vào mặt nạ Vớimỗi giá trị của mặt nạ, nếu mặt nạ có giá trị 1 thì cá thể con sẽ nhận gen của cha,ngược lại là gen của mẹ Các bước thực hiện thuật toán như sau
Ví dụ : Cha : 9 5 2 1 6 3 8 7 4 Mẹ: 3 5 2 6 1 4 8 7 9
Mặt nạ M : 100010011Thực hiện lai ghép tạo ra cá thể con bằng cách, với mỗi giá trị tương ứng của mặt
nạ M, nếu m[i] = 1 thì cá thể con nhận gen của cha, ngược lại m[i] = 0 thì cá thể connhận gen của mẹ Trong quá trình thực hiện kết hợp với thuật toán sửa chữa để tránhxung đột Trong ví dụ ta thực hiện từng bước sau :
Giá trị m[1] = 1 tức gen đầu tiên của cá thể con X’ nhận gen của cá thể cha, nếutrong cá thể con chưa nhận gen đó : 9xxxxxxxx
Giá trị m[2] = 0 gen thứ 2 của cá thể con X’ nhận gen của cá thể mẹ, nếu rong cáthể con chưa tồn tại gen đó: 95xxxxxxx
Tương tự với các giá trị m[i], ta có cá thể con X’ 9 5 2 6 1 3 8 7 4
Lai ghép thứ tự tuyến tính
Lai ghép thứ tự tuysn tính được phát triển như một sửa đổi của lai ghép dựa trênthứ tự Lai ghép dựa trên thứ tự có khuynh hướng truyền những vị trí tương đối vớicác gen thay vì những vịt rí tuyệt đối Trong lai ghép thứ tự, nhiễm sắc thể được xemxét xoay vòng Thuật toán được mô tả như sau :
Chọn ngẫu nhiên chuỗi con từ hai cá thể cha, mẹ
Xóa các gen đã xuất hiện ở vùng chọn ở cá thẻ cha, mẹ và đánh dấu các vịtrí đó bằng ký tự x, ở cá thể
Dịch chuyển các ký tự x vào vùng chọn ở các cá thể cha, mẹ cho đến khichúng gặp miền giao nhau
Thay thế chuỗi chọn từ cá thể cha vào cá thể mẹ và ngược lại
I.2 Quá trình đột biến (Phép độ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ã ditruyền của cha – mẹ Phép đột biến cho phép đưa thêm các thông tin mới vào quần thểlàm cho chất liệu di truyền phong phú thêm Phép đột biến xảy ra với xác suất pm,nhỏ hơn rất nhiều so với xác suất lai pc
Đột biến thay thế: 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
Trang 15Đột biến chèn:
Chọn ngẫu nhiên một cá thể bất kỳ cha – mẹ trong quần thể
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ếnhóa tiếp theo
Đột biến chèn có thể xem như trường hợp đặc biệt của đột biến thay thế
Đột biến đảo ngược: chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể, sau đó
nghịch đảo chuỗi giữa hai vị trí này
Đột biến tương hỗ: chọn hai vị trí và sau đó hoán vị gen trên những vị trí này Đột biến chuyển dịch: chọn ngẫu nhiên một gen sau đó dịch chuyển nó đến một
vị trí ngẫu nhiên khác trong nhiễn sắc thể
I.3 Quá trình sinh sản (phép tái sinh)
Phép tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ thíchnghi 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ầnthể 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ộngdồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể) Giả sử quầnthể có n cá thể Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồng thứ I làFti, tổng độ thích nghi của toàn quần thể là Fm
Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm
Chọn cá thể thứ k đầu tiên thỏa F > Ftk đưa vào quần thể của thế hệ mới
I.4 Quá trình chọn lọc (phép chọn)
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 trongquần thể các cá thể tốt Cơ chế chọn lọc phải đảm bảo các cá thể có độ phù hợp tốthơn sẽ có xác suất được lựa chọn cao hơn Có nhiều phương pháp để chọn các nhiễmsắc thể tốt nhất: chọn lọc cạnh tranh, chọn lọc xếp hạng, bánh xe quay Ru-let (roulettewheel),…
Chọn lọc cạnh tranh (Tournament Selection): Trong sơ đồ chọn lọc cạnh tranh,
mỗi lần chọn lọc ta tiến hành chọn ngẫu nhiên t cá thể từ quần thể hiện tại Bản saocủa cá thể tốt nhất trong t cá thể kể trên được sao chép vào quần thể bố mẹ Tiến hành
n lần chọn như vậy ta thu được quần thể bố mẹ Giá trị t được gọi là kích cỡ cạnh
tranh.
10
Trang 16chúng Cá thể xấu nhất sẽ có giá trị 1, tiếp theo là 2,…và cá thể tốt nhất sẽ có độ thíchnghi n (n là số nhiễm sắc thể trong quần thể).
Chọn lọc bánh xe quay Ru-let (Roulette Wheel): Đối với tiến trình chọn lọc (quần
thể mới thỏa phân bố xác suất dựa trên độ thích nghi), ta dùng bánh xe quay Ru-letvới các rãnh được định kích thước theo độ thích nghi Ta xây dựng bánh xe Ru-létnhư sau (giả định rằng, các độ thích nghi đều dương, trong trường hợp ngược lại ta cóthể dùng một số phép biến đổi tương ứng để định lại tỷ lệ sao cho các độ thích nghiđều dương)
Tính độ thích nghi eval (vi) của mỗi nhiễm sắc thể vi (i=1….pop_size)
Tính tổng giá trị thích nghi toàn quần thể
Tính xác suất chọn pi của mỗi nhiễm sắc thể vi (i = 1…pop_size) :
pi = eval (vi) / F
Tính vị trí xác suất của qi của mỗi nhiễm sắc thể vi, (i=1…pop_size)
Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Ru_let pop_sizelần ; mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thểmới theo cách sau :
o Phát sinh ngẫu nhiên một số r trong đoạn [0…1]
o Nếu r < qi thì chọn nhiễm sắc thể đầu tiên vi; ngược lại thì chọn nhiễmsắc thể thứ I là vi (2 ≤ i ≤ pop_size) sao cho qi-1 < r ≤ qi
I.5 Giải thuật di truyền
Trang 17Tính giá trị vi phạm ràng buộc cho các cá thể R(t);
I.6 Điều kiện kết thúc lặp của GAs
Tùy thuộc điều kiện về tốc độ và tài nguyên máy tính mà có các cách kết thúcvấn đề khác nhau Một số trường hợp thông thường như sau :
Kết thúc theo kết quả : khi đạt đến mức giá trị yêu cầu thì dừng quá trìnhthực hiện
Kết thúc dựa vào số thế hệ : chọn trước số thế hệ, quá trình sẽ dừng ở số thế
12
Trang 182.1 KHẢO SÁT BÀI TOÁN
Tại trường THCS Nguyễn Thái Bình, khối 7 và khối 9 sẽ học buổi sáng, khối 6
và khối 8 học buổi chiều Các lớp sẽ học vào thứ 2, thứ 3, thứ 4, thứ 6 và thứ 7, thứ 5toàn trường được nghỉ
Mỗi buổi học có 5 tiết, tất cả các tiết đều được học
Môn thể dục sẽ được dạy trái buổi so với buổi học chính Riêng đối với khối 7 vàkhối 8 sẽ có thêm môn tin học được học trái buổi
Danh sách môn học – số tiết chuẩn mỗi môn sẽ căn cứ theo quyết định của bộ giáodục và đào tạo Trong bài toán này sẽ sử dụng những thông tin có trong “Quyết định số
1866 /QĐ-BGDĐT ngày 17/5/2012 của Bộ Giáo dục và Đào tạo về việc Ban hành Khung
kế hoạch thời gian năm học 2012-2013 của giáo dục mầm non, giáo dục phổ thông vàgiáo dục thường xuyên”
Cả năm học có 37 tuần thực học, trong đó: Học kỳ I: 19 tuần; Học kỳ II: 18 tuần(Học kỳ I có 01 tuần dự trữ)
Tiết học tối đa /tuần – tiết học tối đa/ buổi của các môn sẽ dựa vào số tiết chuẩncủa môn đó và số tuần học trong mỗi kỳ để chia hợp lý
Vào đầu mỗi học kỳ ở các tổ bộ môn sẽ tiến hành họp để phân công giảng dạylớp – môn học cho từng giáo viên, kể cả phân công chủ nhiệm Những giáo viên nào
có yêu cầu nghỉ 1 số tiết cố định trong tuần sẽ được xem xét Kết thúc cuộc họp danhsách phân công và danh sách tiết nghỉ giáo viên sẽ được đưa về cho thầy hiệu phó, làngười tổng hợp các danh sách ở tất cả bộ môn và tiến hành xếp thời khóa biểu
2.2 MÔ TẢ HỆ THỐNG
2.2.1 Quy trình nghiệp vụ
Trong lần sử dụng chương trình đầu tiên người dùng phải xây dựng cơ sở dữ liệuchung, những dữ liệu này sẽ được sử dụng trong suốt thời gian sau, những dữ liệu cầnnhập:
Dữ liệu lớp học:
o Khối lớp học
o Danh sách lớp học
Trang 19giảng dạy sẽ thuận tiện hơn.
o Danh sách giáo viên
o Danh sách nhóm giáo viên
o Chia giáo viên vào từng nhóm
Dữ liệu môn học:
o Danh sách môn học
o Số tiết chuẩn: tiết tối đa/tuần và tiết tối đa/buổi
Những lần sử dụng tiếp theo người dùng không cần nhập lại những thông tin đó,nhưng có thể sửa chữa để phù hợp Ngoài những dữ liệu trên, khi xếp thời khóa biểuvào mỗi học kỳ cần cập nhập những dữ liệu sau:
Năm học, học kỳ
Tiết nghỉ của giáo viên
Phân công giảng dạy: có thể phân công theo lớp hoặc theo giáo viên, thôngthường là phân công theo giáo viên
Sau khi nhập dữ liệu phân công giảng dạy, người dùng có thể thống kê và kiểmtra dữ liệu
Phân công theo lớp:
o Thống kê:
- Những môn mà lớp được học
- Tổng số tiết trên 1 tuần Những lớp cùng một khối số tiết trên mộttuần sẽ bằng nhau
o Những thông tin kiểm tra:
- Kiểm tra lớp chưa có giáo viên chủ nhiệm
- Kiểm tra giáo viên chưa được phân công giảng dạy
- Kiểm tra lớp chưa được phân công giảng dạy
- Kiểm tra môn học nào chưa được phân công cho lớp
Phân công theo giáo viên
o Thống kê
Trang 20- Lớp chủ nhiệm
- Những lớp giáo viên giảng dạy
- Tổng số tiết giáo viên dạy/tuần
o Những thông tin kiểm tra: Giống như phân công theo lớp
Sau khi dữ liệu đã được chuẩn bị xong có thể tiến hành xếp thời khóa biểu
Thời khóa biểu được xếp xong người dùng có thể xuất báo cáo thời khóa biểutrường – lớp – giáo viên
2.2.2 Phân tích và thiết kế chức năng
Qua quá trình phân tích những chức năng của đề tài, hệ thống sẽ gồm nhữngchức năng sau:
Nhập dữ liệu: dữ liệu về giáo viên, lớp học, môn học, khối lớp, phân cônglịch dạy cho giáo viên/lớp học,…
Nhập tiết nghỉ của giáo viên/lớp học
Sắp xếp thời khóa biểu
Xem và in thời khóa biểu
I.7 Chức năng nhập thông tin chung
Giáo viên: chương trình cho phép người dùng nhập trực tiếp trên giao diệnhoặc nhập giáo viên từ tập tin excel Những thông tin được nhập là họ têngiáo viên, tên viết tắt Tên viết tắt của giáo viên không được trùng nhau.Trước khi lưu dữ liệu chương trình sẽ kiểm tra tên viết tắt của giáo viên đó
đã tồn tại hay chưa, nếu đã tồn tại sẽ thông báo cho người dùng
Khi nhập dữ liệu từ tập tin excel chương trình sẽ kiểm tra giáo viên đã tồntại trong cơ sở dữ liệu hay chưa và chỉ nhập những giáo viên chưa có trong
cơ sở dữ liệu
Ngoài ra người dùng còn có thể chỉnh sửa, xóa những giáo viên khi cầnthiết
Nhóm giáo viên: Danh sách các tổ bộ môn trong trường
Sau khi giáo viên và nhóm giáo viên được nhập dữ liệu sẽ phân công giáoviên vào nhóm tương ứng
Thông tin về lớp, môn học, khối học
Trang 21 Tiết chuẩn môn học: gồm có khối lớp, môn học, tiết quy định (tiết tốiđa/tuần) và tiết giới hạn (tiết tối đa/buổi) theo quy định của Bộ giáo dục Dữliệu này được dùng khi phân công giảng dạy.
Phân công giảng dạy: phân công theo giáo viên, lớp học
I.8 Nhập tiết nghỉ giáo viên
Chức năng nhập tiết nghỉ giáo viên sẽ hiển thị danh sách những giáo viên trongđược phân công giảng dạy Chọn giáo viên và kích chọn vào những buổi, thứ, tiết màgiáo viên đó nghỉ Trong khi xếp thời khóa biểu chương trình sẽ không chia giáo viênvào những tiết này
I.9 Sắp xếp thời khóa biểu
Khi chọn sắp xếp thờ khóa biểu chương trình sẽ lấy dữ liệu đã nhập ở trên và sắpxếp một cách ngẫu nhiên nhằm thỏa mãn các ràng buộc của bài toán để cho ra mộtthời khóa biểu thích hợp Nếu người dùng chưa hài lòng họ có thể tiếp tục chọn chứcnăng xếp lịch cho đến khi có thời khóa biểu thỏa mãn
I.10 Xem và in thời khóa biểu
Sau khi sắp xếp xong thời khóa biểu thì người dùng có thể chọn thời khóa biểumuốn xem gồm thời khóa biểu toàn trường, thời khóa biểu lớp và thời khóa biểu giáoviên Với thời khóa biểu lớp thì người dùng cần phải chọn lớp cần xem Với thời khóabiểu giáo viên thì người dùng chọn giáo viên cần xem Chương trình sẽ hiển thị thờikhóa biểu tương ứng Đồng thời người dùng cũng có thể chọn chức năng in dữ liệukhi cần thiết
16
Trang 222.3 XÂY DỰNG SƠ ĐỒ
2.3.1 Sơ đồ Use Case
Hình 1: Sơ đồ use case tổng quát
Trang 23Hình 2: Sơ đồ use case quản lý giáo viên
Hình 3: Sơ đồ use case quản lý tiết chuẩn môn học
18
Trang 24Hình 4: Sơ đồ use case phân công giáo viên giảng dạy
1 Đặc tả use case quản lý giáo viên
Bảng 1: Đặc tả use case xem thông tin
- Dữ liệu đang hiển thị menu chính
- Có ít nhất 1 giáo viên đã được thêm vào danh sách
Các bước thực
hiện chính
1 Chọn “Dữ liệu” trên thanh menu
2 Chọn “Dữ liệu giáo viên”
3 Chọn “Danh sách giáo viên”
Kết quả mong
đợi
Hiển thị thành công danh sách giáo viên với những thông tin
đã liệt kê ở trên
Trường hợp lỗi
- Chương trình không kết nối được SQLServer
- Người dùng chưa thêm bất cứ ai vào danh sách giáo viên
Trang 25Bảng 2: Đặc tả use case thêm mới giáo viên
Thêm trực tiếp từ giao diện
1 Nhập tên giáo viên
2 Nhập tên viết tắt của giáo viên
3 Kích vào “Thêm mới”
4 Chương trình cập nhập lại danh sách giáo viênThêm giáo viên từ tập tin excel
1 Chọn checkbox “Lấy dữ liệu từ excel”
- Chương trình không kết nối được cơ sở dữ liệu
- Tên viết tắt của giáo viên đã tồn tại
- Tập tin excel tải không thành công
Bảng 3: Đặc tả use case sửa thông tin
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng thay đổi họ và tên, tên
viết tắt của giáo viên
1 Chọn giáo viên muốn sửa
2 Nhập lại họ và tên/tên viết tắt trên ô textbox
3 Kích chọn “Sửa”
4 Thông tin về giáo viên được cập nhập lại
Kết quả mong
đợi Sửa giáo viên thành công
Trường hợp lỗi - Chương trình không kết nối được cơ sở dữ liệu
- Ô textbox không có dữ liệu
20
Trang 26- Tên viết tắt của giáo viên đã tồn tại
- Người dùng kích chọn nhầm nút khác
Bảng 4: Đặc tả use case xóa giáo viên khỏi danh sách
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng xóa một giáo viên ra
khỏi cơ sở dữ liệu
5 Danh sách giáo viên được cập nhập lại
Kết quả mong đợi Xóa thành công
Trường hợp lỗi
- Chương trình không kết nối được cơ sở dữ liệu
- Người dùng kích chọn “No” khi cảnh báo hiển thị
- Người dùng kích chọn nhầm nút khác
- Danh sách giáo viên không được cập nhập lại
2 Đặc tả use case Quản lý tiết chuẩn
Bảng 5: Đặc tả use case xem thông tin
- Giao diện đang hiển thị menu chính
- Danh sách môn học đã được thêm dữ liệu
Các bước thực
hiện chính
1 Chọn “Dữ liệu” trên thanh menu
2 Chọn “Số tiết chuẩn của môn học”
3 Kích chọn combobox khối lớp muốn xem, mặc định làkhối 6
Trang 27Kết quả mong
đợi
Hiển thị thành công thông tin về số môn học – tiết chuẩn khi kích chọn khối
Trường hợp lỗi - Chương trình không kết nối được cơ sở dữ liệu
- Combobox khối lớp không hiển thị
Bảng 6: Đặc tả use case Cập nhập
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng cập nhập lại tiết quy
định và tiết giới hạn môn học ở các khối
đợi Cập nhập tiết quy định/tiết giới hạn thành công
Trường hợp lỗi - Chương trình không kết nối được cơ sở dữ liệu
- Người dùng không nhập tiết quy định/tiết giới hạn
Bảng 7: Đặc tả use case xóa tiết chuẩn
- Chương trình không kết nối được cơ sở dữ liệu
- Dữ liệu tiết quy định/tiết chuẩn môn học chưa tồn tại
- Người dùng không xóa dữ liệu
3 Đặc tả use case phân công giáo viên giảng dạy
Bảng 8: Đặc tả use case xem dữ liệu phân công
22
Trang 28- Dữ liệu đang hiển thị menu chính
- Có ít nhất 1 giáo viên đã được phân công
Các bước thực
hiện chính
1 Chọn “Dữ liệu” trên thanh menu
2 Chọn “Phân công giảng dạy”
3 Chọn tab “Giáo viên”
4 Chọn giáo viên muốn xem Mặc định là giáo viên đầu tiên trong combobox
Kết quả mong
đợi Hiển thị dữ liệu thành công
Trường hợp lỗi - Chương trình không kết nối được SQLServer
- Chưa có giáo viên nào được phân công giảng dạy
Bảng 9: Đặc tả use case Thêm phân công
1 Chọn tab giáo viên
2 Kích chọn combobox để chọn giáo viên
- Phân công cho giáo viên thành công
- Hiển thị thông tin mới thêm
Trường hợp lỗi
- Chương trình không kết nối được cơ sở dữ liệu
- Người dùng không kích chọn checkbox/không nhập sốtiêt và giới hạn
- Dữ liệu đã tồn tại
Bảng 10: Đặc tả use case cập nhập phân công giáo viên giảng dạy
Trang 29Thuộc tính Mô tả
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng cập nhập lại dữ liệu phân
công giảng dạy
1 Chọn tab giáo viên
2 Chọn ô dữ liệu muốn thay đổi
3 Thay đổi dữ liệu
- Người dùng xóa dữ liệu ở ô nhưng không nhập lại
Bảng 11: Đặc tả use case xóa phân công giáo viên giảng dạy
- Chương trình đang ở form “phân công giảng dạy”
- Tồn tại dữ liệu phân công giáo viên
Các bước thực
hiện chính
1 Chọn tab giáo viên
2 Chọn giáo viên muốn xóa phân công ở combobox
3 Chọn dữ liệu muôn xóa
- Chương trình không kết nối được cơ sở dữ liệu
- Người dùng không chọn dữ liệu muốn xóa
- Người dùng chọn “no” khi hộp thoại cảnh báo xuất hiện
- Thông tin không được cập nhập lại
Bảng 12: Đặc tả use case thống kê phân công giáo viên giảng dạy
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng thống kê phân công
24
Trang 30Trường hợp lỗi - Chương trình không kết nối được cơ sở dữ liệu
Bảng 13: Đặc tả use case kiểm tra dữ liệu phân công giáo viên
Tác nhân Hiệu phó
Mô tả Là ca sử dụng cho phép người dùng kiểm tra dữ liệu phân
công giảng dạy
Hiển thị thông tin Kiểm tra đúng/sai Nội dung kiểm tra gồm:
- Kiểm tra lớp nào chưa có giáo viên chủ nhiệm
- Kiểm tra giáo viên nào chưa được phân công giảng dạy
- Kiểm tra lớp nào chưa được phân công giảng dạy
- Kiểm tra môn học nào chưa được phân công cho lớp
Trường hợp lỗi - Chương trình không kết nối được cơ sở dữ liệu
2.3.2 Sơ đồ hoạt động
Vì cách thức hoạt động tương tự nhau nên một số use-case có thể được nhóm lại
và dùng chung một sơ đồ hoạt động Cụ thể, ta có thể tiến hành nhóm như sau:
Nhóm xem thông tin phần dữ liệu:
o Giáo viên, nhóm giáo viên
Trang 31o Khối lớp, lớp học
o Môn học, tiết chuẩn môn học
o Phân nhóm giáo viên
o Phân công giảng dạy
o Tiết nghỉ giáo viên, tiết nghỉ lớp học
Nhóm xem dữ liệu thời khóa biểu
o Thời khóa biểu lớp
o Thời khóa biểu giáo viên
Trang 321 Sơ đồ hoạt động của nhóm xem thông tin phần dữ liệu
Hình 5: Sơ đồ hoạt động của use case nhóm xem thông tin
2 Sơ đồ hoạt động của các use case nhóm xem dữ liệu thời khóa biểu
Hình 6: Sơ đồ hoạt động của các use case nhóm xem dữ liệu thời khóa biểu
Trang 333 Sơ đồ hoạt động của các use case nhóm thêm dữ liệu
Hình 7: Sơ đồ hoạt động của các use case thuộc nhóm thêm dữ liệu
28
Trang 344 Sơ đồ hoạt động của các use case nhóm sửa dữ liệu
Hình 8: Sơ đồ hoạt động của các use case thuộc nhóm sửa dữ liệu
Trang 355 Sơ đồ hoạt động của các use case thuộc nhóm xóa dữ liệu
Hình 9: Sơ đồ hoạt động của các use case thuộc nhóm xóa dữ liệu
30
Trang 366 Sơ đồ hoạt động của các use case còn lại
Hình 10: Sơ đồ hoạt động của use case thêm phân công giảng dạy giáo viên
Trang 37Hình 11: Sơ đồ hoạt động của use case cập nhập phân công giáo viên
32
Trang 38Hình 12: Sơ đồ hoạt động của use case xếp thời khóa biểu
Hình 13: Sơ đồ hoạt động của use case In thời khóa biểu
Trang 392.3.3 Sơ đồ tuần tự
Hình 14: Sơ đồ tuần tự của use case xem dữ liệu giáo viên
Hình 15: Sơ đồ tuần tự của use case thêm mới giáo viên
34
Trang 40Hình 16: Sơ đồ tuần tự use case sửa giáo viên
Hình 17: Sơ đồ tuần tự của use case xóa giáo viên