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
MỤC LỤC MỞ ĐẦU I Lý chọn đề tài II Mục đích nhiệm vụ đề tài .1 i Mục đích đề tài .1 ii Nhiệm vụ cần thực .1 iii Công cụ xây dựng .1 III Bố cục luận văn CHƯƠNG CƠ SỞ LÝ THUYẾT .3 1.1 1.2 1.3 MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU 1.1.1 Tìm kiếm cục 1.1.2 Xung đột tối thiểu 1.1.3 Thuật giải mô luyện kim .3 1.1.4 Thuật giải leo đồi 1.1.5 Tìm kiếm Tabu .4 TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN .4 1.2.1 Lịch sử phát triển 1.2.2 Đặc điểm giải thuật di truyền 1.2.3 Cấu trúc thuật giải di truyền 1.2.4 Quá trình giải thuật di truyền .7 KẾT LUẬN .12 CHƯƠNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 13 2.1 2.2 2.3 2.4 KHẢO SÁT BÀI TOÁN 13 MÔ TẢ HỆ THỐNG .13 2.2.1 Quy trình nghiệp vụ .13 2.2.2 Phân tích thiết kế chức 15 XÂY DỰNG SƠ ĐỒ .17 2.3.1 Sơ đồ Use Case 17 2.3.2 Sơ đồ hoạt động 25 2.3.3 Sơ đồ 34 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 bảng sở liệu .37 2.5 KẾT LUẬN .39 CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 40 1.1 1.2 1.3 Ứ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 toán 41 3.1.4 Áp dụng thuật giải di truyền vào toán 41 KẾT QUẢ CHƯƠNG TRÌNH 59 3.1.5 Kết 59 3.1.6 Kết 61 3.1.7 Kết 61 KẾT LUẬN 63 i KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63 I Đánh giá kết đạt 63 II Ưu điểm .64 III Hạn chế 64 IV Hướng phát triển 64 TÀI LIỆU THAM KHẢO 66 [1] Nguyễn Đình Thúc Trí tuệ nhân tạo Lập trình tiến hóa Hà Nội: Nhà xuất Giáo Dục 66 [2] Lê Tiến Mẫu, 2012 Thuật giải di truyền ứng dụng lập thời khóa biểu theo học chế tín cho trường đại học Luận văn thạc sĩ kỹ thuật Đại Học Đà Nẵng 66 [3] Trần Nguyên Hương Bài giảng giải thuật di truyền 66 [4] Trang web : http://vi.wikipedia.org/wiki/ 66 [5] Trang web : http://diendan.congdongcviet.com/ 66 [6] Trang web : http://sinhvienit.net/ 66 [7] Trang web : http://www.vn-zoom.com .66 [8] Trang web : www.youtube.com 66 PHỤ LỤC .67 HƯỚNG DẪN SỬ DỤNG 67 I Các bước xây dựng thời khóa biểu .67 II Giao diện chương trình 67 DANH MỤC HÌNH VẼ HÌ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ÊN34 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Ả – LỚP 7/1 60 HÌNH 24: KẾT QUẢ – LỚP 8/1 60 HÌNH 25: KẾT QUẢ – LỚP 9/1 61 HÌNH 26: KẾT QUẢ – LỚP 9/1 61 HÌNH 27: KẾT QUẢ – LỚP 6/1 62 HÌNH 28: KẾT QUẢ – LỚP 7/1 62 HÌNH 29: KẾT QUẢ – LỚP 8/1 63 HÌNH 30: KẾT QUẢ – LỚP 9/1 63 HÌNH 31: CÁC BƯỚC XÂY DỰNG THỜI KHÓA BIỂU 67 HÌNH 32: GIAO DIỆN CHÍNH CHƯƠNG TRÌNH 68 HÌNH 33: THỰC ĐƠN DỮ LIỆU 68 HÌNH 34: THỰC ĐƠN XÂY DỰNG CƠ SỞ DỮ LIỆU 69 HÌNH 35: GIAO DIỆN THÔNG TIN CHUNG 69 HÌNH 36: GIAO DIỆN LỚP HỌC .70 HÌNH 37: GIAO DIỆN GIÁO VIÊN 71 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 71 HÌNH 39: THÔNG BÁO KHI TẢI TẬP TIN EXCEL THÀNH CÔNG 71 HÌNH 40: GIAO DIỆN CHIA GIÁO VIÊN VÀO NHÓM 72 HÌNH 41: GIAO DIỆN MÔN HỌC 73 HÌNH 42: GIAO DIỆN NHẤP SỐ TIẾT CHUẨN MÔN HỌC 74 HÌNH 43: GIAO DIỆN THÔNG BÁO LỖI KHI NHẬP GIÁ TRỊ KHÔNG ĐÚNG 74 HÌNH 44: GIAO DIỆN PHÂN CÔNG GIẢNG DẠY 75 HÌNH 45: GIAO DIỆN THÔNG BÁO KHI CHƯA NHẬP SỐ TIẾT CHUẨN 75 HÌNH 46: GIAO DIỆN THÔNG BÁO KHI KHÔNG NHẬP ĐẦY ĐỦ THÔNG TIN 75 HÌNH 47: THỐNG KÊ PHÂN CÔNG GIẢNG DẠY GIÁO VIÊN .76 HÌNH 48: GIAO DIỆN KIỂM TRA DỮ LIỆU 76 HÌNH 49: GIAO DIỆN THÔNG BÁO TẠO XONG CƠ SỞ DỮ LIỆU .77 HÌNH 50: GIAO DIỆN NHẬP TIẾT NGHỈ GIÁO VIÊN .77 HÌNH 51: THỰC ĐƠN XẾP THỜI KHÓA BIỂU 78 DANH MỤC BẢNG BIỂU BẢ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 .19 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ÁCH20 BẢNG 5: ĐẶC TẢ USE CASE XEM THÔNG TIN 21 BẢNG 6: ĐẶC TẢ USE CASE CẬP NHẬP .21 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 .22 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 23 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 24 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 MỞ ĐẦU I Lý chọn đề tài Vào đầu năm học việc xếp thời khóa biểu cho học sinh lịch phân công giáo viên giảng dạy lại tiến hành Thông qua buổi họp chuyên môn môn, môn học giáo viên phụ trách dạy lớp xác định, kết gửi lên ban giám hiệu nhà trường việc lên lịch cho toàn trường tiến hành Tại trường việc đa số làm thủ công, tốn nhiều thời gian công sức Tính phức tạp toán xếp Thời khóa biểu nằm quy định, ràng buộc môn học chặt chẽ, ràng buộc nghỉ không nghỉ giáo viên 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 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 công sức ban giám hiệu, giúp cho việc lập thời khóa biểu trở nên thuận tiện II Mục đích nhiệm vụ đề tài i Mục đích đề tài Tiết kiệm thời gian công sức việc xếp thời khóa biểu Ứng dụng giải thuật di truyền liệu đầu vào xếp thời khóa biểu Xuất file báo cáo thời khóa biểu theo mục đích người sử dụng ii Nhiệm vụ cần thực Tìm hiểu thuật toán di truyền (Genetic Algorithms) Phân tích toán, tìm hiểu cách xếp thời khóa biểu trường THCS Nguyễn Thái Bình Ứng dụng thuật toán di truyền để xếp thời khóa biểu iii 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 trình bày bối cảnh, mục đích nhiệm vụ đề tài Chương I: Cơ sở lý thuyết: Chương trình bày lý thuyết thuật toán GA Chương II: Phân tích thiết kế hệ thống: Chương trình bày phân tích 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 đánh giá kết Chương trình bày bước xây dựng thời khóa biểu việc áp dụng thuật toán di truyền kết chương trình Kết luận hương phát triển: Chương tổng kết kết đạt được, ưu khuyết điểm chương trình hướng phát triển Chương CƠ SỞ LÝ THUYẾT 1.1 MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU 1.1.1 Tìm kiếm cục Tìm kiếm cục dựa vào ý tưởng tổng quát đơn giản Gọi P toán tối ưu tổ hợp cần giải, s lời giải hành giả sử lời giải khả thi P, có hàm chi phí f(s) Miền lân cận N(s) định nghĩa cho s, tập lời giải láng giềng khả thi s’ s cho từ s ta đạt tới s’ nhờ vào bước chuyển m Bước chuyển có tác dụng biến đổi s thành lời giải láng giềng Thao tác biến đổi lặp hội tụ lời giải tốt Lời giải lời giải cận tối ưu, mà số toán thực tế, không sai biệt nhiều với lời giải tối ưu 1.1.2 Xung đột tối thiểu Thuật giải xung đột tối thiểu, viết tắt MC dùng phổ biến để giải hệ ràng buộc mức Thuật giải MC chọn ngẫu nhiên biến dính líu đến ràng buộc bị vi phạm chọn trị từ miền trị biến cho tối thiểu hoá số lượng vị phạm ràng buộc xảy Vì Thuật giải MC túy không thoát điểm tối ưu cục bộ, Thuật giải thường kết hợp với chiến lược bước ngẫu nhiên (random walk) Với biến chọn, chiến lược bước ngẫu nhiên lấy ngẫu nhiên trị từ miền trị biến với xác xuất p, áp dụng theo Thuật giải MC với xác xuất 1- p Giá trị thông số p có ảnh hưởng lên hiệu Thuật giải Thuật giải gọi MCRW 1.1.3 Thuật giải mô luyện kim Mô luyện kim(SA) kỹ thuật tìm kiếm ngẫu nhiên (stochastic search) mà tỏ hữu hiệu cho toán tối ưu hóa qui mô lớn Trong kỹ thuật này, nhiệt độ biến khởi tạo giá trị cao giảm dần xuống trình tìm kiếm Tại trị nhiệt độ cao, bước chuyển chấp nhận cách ngẫu nhiên chúng bước chuyển có cải thiện hàm chi phí lời giải hay không Khi nhiệt độ giảm xuống, xác xuất để chấp nhận lời giải có cải thiện tăng lên xác xuất để chấp nhận lời giải không cải thiện giảm xuống Có số cách thức giảm nhiệt độ dần xuống dùng Thuật giải SA, gọi 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 tảng sở kỹ thuật tìm kiếm cục Mặc dù Thuật giải đơn giản lại lại mạnh hiệu việc Tìm hiểu thuật toán di truyền 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 giải toán CSP lớn Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ chế “tu chỉnh lập”: bước việc tìm kiếm, chọn bước chuyển mà cải thiện giá trị hàm mục tiêu để thực Trong Thuật giải leo đồi, bước chuyển cải thiện hàm chi phí không làm cho hàm chi phí thay đổi chọn việc tìm kiếm liên tục bước lên vị trí cao gặp điều kiện dừng 1.1.5 Tìm kiếm Tabu Tìm kiếm Tabu đề xuất Glover năm 1986 Phương pháp dò tìm không gian lời giải cách di chuyển từ lời giải s lượt lặp t lời giải tốt s’ tập N* miền lân cận N(s) Vì s’ không thiết cải thiện chi phí s, chế đặt để ngăn chặn trình khỏi lặp vòng chuỗi lời giải Một cách để tránh lặp vòng cấm trình tìm kiếm quay lời giải gặp rồi, làm đòi hỏi phải lưu trữ nhiều thông tin Thay làm thế, vài thuộc tính lời giải gặp lưu danh sách tabu (tabu list) lời giải sở hữu thuộc tính không xét đến θ lần lặp Cơ chế thường gọi nhớ ngắn hạn θ gọi kỳ hạn tabu Tìm kiếm tabu phát triển thành nhiều dạng cải tiến tìm kiếm tabu thích nghi (reactive tabu search) tìm kiếm tabu với hai danh sách tabu: nhớ ngắn hạn nhớ dài hạn Như trình bày có nhiều phương pháp tiếp cận giải toán xếp lịch Trong luận văn em xin trình bày phương pháp áp dụng thuật toán di truyền để giải toán 1.2 TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN 1.2.1 Lịch sử phát triển Vào năm 1950 1960 số nhà khoa học nghiên cứu hệ thống tiến hóa độc lập với với ý tưởng tiến hóa sử dụng công cụ tối ưu hóa cho toán kỹ thuật Ý tưởng tất hệ thống liên quan tới quần thể lời giải cho toán cho trước, dử dụng toán tử bắt nguồn từ biến đổi gen lựa chọn tự nhiên Năm 1960, Rechenberg giới thiệu “các chiến lược tiến hóa”, phương pháp ông sử dụng để tối ưu hóa tham số thực cho thiết bị máy bay Ý tưởng tiếp tục phát triển sau Schwefel Lĩnh vực chiến lược tiến hóa lĩnh vực nghiên cứu quan tâm nhiều, phát triển độc lập với lĩnh vực giải thuật di truyền, gần lĩnh vực bắt đầu có tương tác rõ nét Owens Walsh (1966) phát triển “lập trình tiến hóa” kỹ thuật lời giải cho toán cho trước biểu diễn dạng máy có trạng thái xác định, máy “tiến hóa” nhờ đột biến (biến đổi) ngẫu nhiên biểu đồ biến đổi trạng thái chúng chọn trạng thái tốt Tìm hiểu thuật toán di truyền 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 Các chiến lược tiến hóa, lập trình tiến hóa giải thuật di truyền tạo thành xương sống cho tính tiến hóa GAs phát minh John Holland năm 1960 phát triển Holland với sinh viên đồng nghiệp ông đại học Michigan năm 1960 1970 Không giống chiến lược tiến hóa lập trình tiến hóa, mục tiêu ban đầu Holland thiết kế thuật toán để giải toán cụ thể, sau từ nghiên cứu tượng thích nghi xảy tự nhiên ông thấy chúng tích hợp máy tính Cuốn sách Holland xuất năm 1975: “Thích nghi tự nhiên hệ thống nhân tạo” giới thiệu giải thuật di truyền khái niệm tiến hóa sinh học đưa móng lý thuyeert cho tính thích nghi GAs Giải thuật di truyền Holland phương pháp để di chuyển từ quần thể NST sang quần thể khác nhờ sử dụng kiểu lựa chọn tự nhiên toán tử lai ghép, đột biến đảo ngược Mỗi NST gồm gen, gen biểu alen cụ thể Toán tử lựa chọn chọn NST quần thể mà chúng cho phép sinh sản, nói chung NST thích nghi tốt tạo nhiều NST có độ thích nghi thấp Việc đưa vào khái niệm quần thể Holland với khái niệm lai ghép, đảo ngược đột biến thực cách mạng.Các chiến lược tiến hóa Rechenberg sử dụng quần thể với thể, cha/mẹ con, ghép không đề cập lúc đầu Lần Holland nghiên cứu giải thuật này, chúng hoàn toàn tên Do nguồn gốc phương pháp từ gen di truyền, Holland đặt tên cho giải thuật di truyền 1.2.2 Đặc điểm giải thuật di truyền Thuật giải di truyền sử dụng thuật ngữ vay mượn di truyền học Ta nói cá thể (hay kiểu gen, cấu trúc) quần thể; cá thể gọi chuỗi hay nhiễm sắc thể Các nhiễn sắc thể tạo thành từ đơn vị - gen – biểu diễn chuỗi tuyến tính; gen kiểm soát đặc trưng Gen với đặc trưng định có vị trí định nhiễm sắc thể Mỗi kiểu (nhóm) gen (ta gọi nhiễm sắc thể) biểu diễn lời giải toán giải Một trình tiến hóa thực quần thể nhiễm sắc thể ương ứng với trình tìm kiếm lời giải không gian lời giải Tìm kiếm cần cân đối hai mục tiêu: khai thác lời giải tốt khảo sát không gian tìm kiếm Thuật giải di truyền (GA) phương pháp tìm kiếm độc lập miền, tạo cân đối đáng kể việc khai thác khảo sát không gian tìm kiếm Tìm hiểu thuật toán di truyền 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 II Ưu điểm - Với số lượng lớp (4 lớp) chương trình đưa kết tốt - Bước đầu giải ràng buộc: o RB1: Một lớp học môn tiết o RB2: Một giáo viên dạy lớp thời điểm o RB3: Tổng số tiết học môn/tuần không vượt số tiết quy định o RB4: Số tiết học môn/buổi không vượt số tiết quy định o RB5: Đảm bảo lịch bận giáo viên - III Ràng buộc giải triệt để Hạn chế - Với số lượng lớp lớn kết chương trình chưa tốt, chưa giải triệt để ràng buộc - Chỉ giải số ràng buộc - Do giải thuật di truyền mang tính chất ngẫu nhiên nên nhiều kết 100% - Lịch dạy giáo viên không hợp lý, chưa gộp tiết dạy vào số buổi nhằm tránh trường hợp giáo viên dạy tuần mà dạy tiết - Chưa hiệu chỉnh thời khóa biểu cho phù hợp sau xếp IV - Hướng phát triển Giải thêm ràng buôc: o Trong ngày lớp không học toàn môn tự nhiên môn xã hội o Trong tuần có buổi môn văn toán học hai tiết liền, tiết khác học vào buổi khác o Đảm bảo lịch nghỉ tiết dạy giáo viên Không có nhiều tiết trống tiết dạy o Giáo viên dạy vào tiết buổi sáng không dạy vào tiết buổi chiều - Khi lịch xếp chưa hợp lý người dùng điều chỉnh cho phù hợp, không cần phải xếp lại tất - Có thể hiệu chỉnh thời khóa biểu tay 64 Tìm hiểu thuật toán di truyền 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 - Xây dựng chương trình chạy web, sử dụng cho tất trường THCS 65 Tìm hiểu thuật toán di truyền 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 TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Thúc Trí tuệ nhân tạo Lập trình tiến hóa Hà Nội: Nhà xuất Giáo Dục [2] Lê Tiến Mẫu, 2012 Thuật giải di truyền ứng dụng lập thời khóa biểu theo học chế tín cho trường đại học Luận văn thạc sĩ kỹ thuật Đại Học Đà Nẵng [3] Trần Nguyên Hương Bài giảng giải thuật di truyền [4] Trang web : http://vi.wikipedia.org/wiki/ [5] Trang web : http://diendan.congdongcviet.com/ [6] Trang web : http://sinhvienit.net/ [7] Trang web : http://www.vn-zoom.com [8] Trang web : www.youtube.com 66 PHỤ LỤC HƯỚNG DẪN SỬ DỤNG I Các bước xây dựng thời khóa biểu Hình 31: Các bước xây dựng thời khóa biểu II Giao diện chương trình Trên thực đơn.Tiếp theo danh sách lớp danh sách giáo viên học kỳ tại, người dùng kích chọn lớp/giáo viên để xem thời khóa biểu Lớp lớp học buổi chiều nên thời khóa biểu hiển thị từ tiết đến tiết 10, lớp học buổi sáng nên thời khóa biểu hiển thị từ tiết đến tiết Tìm hiểu thuật toán di truyền 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 Hình 32: Giao diện chương trình Trước xếp thời khóa biểu người dùng phải xây dựng sở liệu Xây dựng sở liệu: có hai cách xây dựng sở liệu Cách 1: Xây dựng chung Bước 1: Chọn thực đơn liệu Hình 33: Thực đơn liệu Bước 2: Chọn thực đơn xây dựng sở liệu Tìm hiểu thuật toán di truyền 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 Hình 34: Thực đơn xây dựng sở liệu Bước 3: Nhập năm học học kỳ Nhấn nút Hình 35: Giao diện thông tin chung Bước 4: Nhập liệu lớp học nhấn nút Tại người dùng sửa, xóa liệu Người dùng nhấn nút khối bên cạnh combobox khối học để thay đổi liệu Tìm hiểu thuật toán di truyền 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 Để sang bước theo nhấn nút nhấn trở để quay lại giao diện thông tin chung Nhấn nút thoát để dừng việc tạo sở liệu Hình 36: Giao diện lớp học Bước 5: Xây dựng liệu giáo viên Nhập họ tên, tên viết tắt giáo viên nhấn nút thêm Hệ thống kiểm tra giáo viên có sở liệu chưa, tồn hệ thống báo lỗi cho người dùng Người dùng thêm giáo viên từ tập tin excel cách kích chọn vào ô lấy liệu từ excel kích chọn nút đường dẫn tập tin, tải thành công chương trình hiển thị thông báo người dùng kích vào combobox chọn trang hiển thị bấm nút tải tập tin để xem danh sách giáo viên có tập tin excel bấm nút lưu xuống sở liệu để lưu giáo viên, chương trình kiểm tra tồn giáo viên trước lưu xuống sở liệu Tìm hiểu thuật toán di truyền 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 Hình 37: Giao diện giáo viên Hình 38: Thống báo lỗi thêm giáo viên tồn sở liệu Hình 39: Thông báo tải tập tin excel thành công Sau thêm giáo viên tiến hành phân giáo viên vào nhóm môn Chọn nhóm giáo viên hiển thị danh sách giáo viên nhóm giáo viên Tìm hiểu thuật toán di truyền 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 nhóm Để thêm giáo viên vào nhóm người dùng chọn giáo viên sau nhấn nút , nhấn nút để đưa giáo viên khỏi nhóm Bên danh sách hiển thị tổng số giáo viên nhóm, nhóm Nhấn nút thoát để quay trở lại giao diện giáo viên Hình 40: Giao diện chia giáo viên vào nhóm Bước 6: Nhập liệu môn học Tại chứa danh sách môn học tất khối Để thêm môn học người dùng nhập thông tin cần thiết vào ô liệu hệ thống kiểm tra liệu trước lưu vào sở liệu, môn học tồn có thông báo cho người dùng Để sửa liệu người dùng chọn môn học, sửa thông tin ô nhập liệu nhấn nút sửa Hệ thống kiểm tra liệu trước lưu Tìm hiểu thuật toán di truyền 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 Hình 41: Giao diện môn học Bước 7: Nhập số tiết chuẩn môn học Theo quy định Bộ giáo dục chương trình học khối khác Người dùng chọn khối lớp nhập số tiết tối đa/tuần tiết tối đa/buổi Giao diện hiển thị danh sách tất môn học nhập Tùy theo chương trình khối nhập vào môn học tương ứng, môn không học để trống nhập Dữ liệu dùng làm điều kiện xếp thời khóa biểu Để sửa liệu người dùng sửa trực tiếp ô chứa liệu Nếu không nhập liệu mặc định Giá trị nhập vào phải từ – 9, khác hệ thống thông báo lỗi Để sang bước nhấn nút nhấn nút quay lại để trở giao diện trước Tìm hiểu thuật toán di truyền 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 Hình 42: Giao diện nhấp số tiết chuẩn môn học Hình 43: Giao diện thông báo lỗi nhập giá trị không Bước 8: Phân công giảng dạy Giao diện có hai tab lớp học giáo viên Nếu nhập liệu cho giáo viên người dùng chọn tab giáo viên, chọn giáo viên từ combobox giáo viên, chọn môn học, lớp học giáo viên giảng dạy Nhập số tiết/tuần giới hạn tiết/buổi môn học theo cách: cách kích chọn vào ô , hệ thống dựa vào tên lớp để lấy liệu bảng số tiết chuẩn nhập trước đó, môn học chưa nhập tiết chuẩn hệ thống thông Tìm hiểu thuật toán di truyền 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 báo người dùng kích chọn nút nhập số tiết chuẩn để kiểm tra nhập liệu tiết Cách người dùng bỏ chọn ô , nhập liệu vào hai ô số tiết giới hạn Sau nhập liệu đầy đủ người dùng bấm nút thêm để lưu liệu Trước lưu hệ thống kiểm tra thông tin nhập đầy đủ chưa, liệu tồn sở liệu chưa Nếu chưa hiển thị thông báo Hình 44: Giao diện phân công giảng dạy Hình 45: Giao diện thông báo chưa nhập số tiết chuẩn Hình 46: Giao diện thông báo không nhập đầy đủ thông tin Tìm hiểu thuật toán di truyền 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 trình có chức thống kê để người dùng theo dõi liệu nhập vào Hình 47: Thống kê phân công giảng dạy giáo viên Chức kiểm tra giúp người dùng kiểm tra liệu nhập vào Những nội dung kiểm tra là: kiểm tra lớp chưa có giáo viên chủ nhiệm, kiểm tra giáo viên chưa phân công giảng dạy, kiểm tra lớp chưa phân công giảng dạy, kiểm tra môn học chưa phân công giảng dạy Dựa vào nội dung người dùng chỉnh sửa lại Hình 48: Giao diện kiểm tra liệu Tới sở liệu xây dựng xong Tìm hiểu thuật toán di truyền 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 Hình 49: Giao diện thông báo tạo xong sở liệu Ngoài cách xây dựng chung người dùng có chọn thực đơn thực đơn liệu Sau xây dựng sở liệu xong, người dùng tiến hành cố định tiết nghỉ cho giáo viên (nếu cần) Hình 50: Giao diện nhập tiết nghỉ giáo viên Tìm hiểu thuật toán di truyền 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ức xếp thời khóa biểu Người dùng chọn thực đơn xếp, chọn xếp thời khóa biểu, hệ thống lấy liệu nhập để xếp thời khóa biểu Hình 51: Thực đơn xếp thời khóa biểu [...]... 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 25 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 Nhóm thêm/sửa/xóa dữ liệu: o Giáo viên o Nhóm giáo viên o Khối lớp o Lớp học o Môn học Nhóm in dữ liệu: o Thời khóa biểu trường/ lớp/giáo viên 26 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. .. sẽ hiển thị thời khó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ệu khi cần thiết 16 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 2.3 XÂY DỰNG SƠ ĐỒ 2.3.1 Sơ đồ Use Case Hình 1: Sơ đồ use case tổng quát 17 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 Hình 2:... các use case thuộc nhóm thêm dữ liệu 28 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 4 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 29 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 5 Sơ đồ hoạt động của các use case thuộc... công theo lớp Đinh Thị Lệ Thu – 11TLT 14 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 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ểu trườ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 đề... 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 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ên vào những tiết này 2.2.2.3 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ắp xế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ột thời khóa biểu thích hợp Nếu... chức năng xếp lịch cho đến khi có thời khóa biểu thỏa mãn 2.2.2.4 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ểu muố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áo viê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óa biểu giáo viên thì người dùng chọn giáo viên cần xem Chương trình sẽ... biểu trường THCS Nguyễn Thái Bình 1 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 27 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 3 Sơ đồ hoạt... trước Kết thúc theo thời gian : dựa vào số giờ quy định để kết thúc 1.3 KẾT LUẬN Chương 1 đã trình bày một số phương pháp giải quyết bài toán xếp thời khóa biểu, đi sâu vào việc tìm hiểu thuật toán di truyền như đặc điểm, cấu trúc và các quá trình chính trong thuật toán di truyền Những cơ sở lý thuyết này sẽ được áp dụng vào bài toán được trình bày ở chương 3 12 Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG... tính Mô tả 19 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 Tác nhân Hiệu phó Là ca sử dụng cho phép người dùng thêm một giáo viên vào Mô tả cơ sở dữ liệu Điều kiện trước Chương trình đang hiển thị danh sách 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.. .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 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 ... Nhóm xem 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 25 Tìm hiểu thuật toán di truyền 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 Nhóm thêm/sửa/xóa... Thu – 11TLT 14 Tìm hiểu thuật toán di truyền 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 Sau liệu chuẩn bị xong tiến hành xếp thời khóa biểu Thời khóa biểu xếp xong người... kích chọn vào buổi, thứ, tiết mà 15 Tìm hiểu thuật toán di truyền 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 giáo viên nghỉ Trong xếp thời khóa biểu chương trình không