Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
1,17 MB
File đính kèm
Luan van Cao hoc - Phan Van The.rar
(520 KB)
Nội dung
1 LỜI CẢM ƠN Trải qua thời gian 02 năm học tập nghiên cứu Trường Đại học Vinh, kết nghiên cứu luận văn thạc sĩ với đề tài “Nghiên cứu giải thuật di truyền cho tốn xếp thời khóa biểu Trường THPT” Đây kết q trình cố gắng khơng ngừng thân giúp đỡ, động viên khích lệ thầy cô, bạn bè, đồng nghiệp người thân Qua trang viết này, xin gửi lời cảm ơn tới người giúp đỡ thời gian học tập hoàn thành luận văn Xin chân thành cảm ơn Lãnh đạo Trường Đại học Vinh, Viện Kỹ thuật Công nghệ giúp đỡ, hỗ trợ để tơi hồn thành tốt cơng việc học tập nghiên cứu khoa học Tôi xin cảm ơn Lãnh đạo Trường THPT Quỳ Châu tạo điều kiện thời gian, cơng việc để tơi theo học hồn thành khóa học Đặc biệt em xin tỏ lòng kính trọng biết ơn sâu sắc thầy giáo TS Vũ Chí Cường trực tiếp tận tình hướng dẫn, đưa gợi ý, góp ý, chỉnh sửa cung cấp tài liệu thông tin khoa học cần thiết cho luận văn Cuối xin chân thành cảm ơn đồng nghiệp, gia đình bạn bè động viên, giúp đỡ tơi q trình học tập thực luận văn Nghệ An, ngày 10 tháng năm 2018 TÁC GIẢ Phan Văn Thế MỤC LỤC DANH MỤC CÁC BẢNG VÀ CÁC HÌNH Lý chọn đề tài Mục đích, nhiệm vụ nghiên cứu Phương pháp nghiên cứu Đóng góp luận văn Cấu trúc luận văn 1.3 Một số phần mềm xếp thời khóa biểu THPT 14 Hiện có phần mềm xếp thời khóa biểu THPT nhiều người biết đến, Phần mềm xếp thời khóa biểu SmartScheduler cơng ty Hồng Gia Phần mềm xếp thời khóa biểu cơng ty SchoolNet 14 Phần mềm xếp thời khóa biểu SmartScheduler sản phẩm dự thi Trí tuệ Việt Nam 2001 hai kỹ sư tin học Lê Hữu Sơn Hoàng Cường Theo tác giả, phần mềm có khả tự động xếp thời khoá biểu nhanh, phần mềm cung cấp khả soạn thảo thời khoá biểu tay nhằm đáp ứng yêu cầu tế nhị, sát hợp với đặc thù trường học 14 Phần mềm xếp thời khóa biểu cơng ty SchoolNet đời năm 1989, có 25 năm liên tục phát triển Phần mềm có nhiều tính phù hợp hỗ trợ hoàn toàn bảng mã phông chữ tiếng Việt, hỗ trợ mô hình thời khóa biểu, hỗ trợ ràng buộc cứng ràng buộc mềm, … 14 Theo đánh giá chung hai phần mềm có hiệu sử dụng để xếp thời khóa biểu cho trường THPT Tuy nhiên, phần mềm có phí phần mềm đóng mã nguồn nên khơng thể tìm hiểu hay cải tiến cho phù hợp với đặc điểm riêng nhà trường 15 15 3.2.3.1 Menu chương trình 54 54 3.2.3.1 Các Form nhập liệu 54 3.3.2.1 Thời khóa biểu lớp 58 Thực từ ngày 19 tháng 12 năm 2017 58 3.3.2.2 Thời khóa biểu giáo viên 59 Thực từ ngày 19 tháng 12 năm 2017 59 Bảng 3.11 Thời khóa biểu Giáo viên 60 KÉT LUẬN 61 Kết đạt 61 Hạn chế, hướng phát triển 61 DANH MỤC CÁC BẢNG VÀ CÁC HÌNH Hình 1.1 Quy trình xếp thời khóa biểu Hình 2.1: Thuật tốn di truyền Hình 2.2 Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xe Hình 3.1 Cấu trúc Nhiễm sắc thể Hình 3.2 Bảng CSDL Mơn học Hình 3.3 Bảng CSDL Lớp học Hình 3.4 Bảng CSDL Giáo viên Hình 3.5 Bảng CSDL Phân cơng giảng dạy Hình 3.6 Form chương trình xếp TKB Hình 3.7 Form nhập liệu Giáo viên Hình 3.8 Form nhập liệu Lớp học Hình 3.9 Form nhập liệu Phân cơng giảng dạy Hình 3.10 Form nhập liệu Các ràng buộc mềm Hình 3.11 Form tham số di truyền Hình 3.12 Form thao tác xếp TKB Hình 3.13 Biểu đồ so sánh giá trị thích nghi Bảng 1.1 Nội dung cơng việc xếp thời khóa biểu Bảng 3.1 Danh sách lớp học Bảng 3.2 Danh sách môn học Bảng 3.3 Danh sách Giáo viên Bảng 3.4 Bảng phân cơng giảng dạy Bảng 3.5 Ví dụ danh sách tiết học Bảng 3.6 Ví dụ phân phối tiết học Bảng 3.7 Ví dụ tiết cố định Bảng 3.8 Ví dụ thời khóa biểu lớp Bảng 3.9 Quy định tiết học thời khóa biếu Bảng 3.10 Thời khóa biểu lớp học Bảng 3.11 Thời khóa biểu Giáo viên MỞ ĐẦU Lý chọn đề tài Thời khóa biểu trường học kế hoạch giảng dạy giáo viên học tập học sinh Một bảng thời khóa biểu hợp lý giúp giáo viên thuận lợi, chủ động lên lớp giúp học sinh thoải mái học tập Việc lập hay xếp thời khóa biểu hoạt động quan trọng nhà trường phải ln ln hồn thành trước triển khai giảng dạy Lập thời khóa biểu phương pháp thủ công công việc nặng nề, tốn nhiều thời gian dễ vi phạm ràng buộc nghiệp vụ Do vậy, áp dụng phải trải qua vài lần điều chỉnh đạt yêu cầu Đã từ lâu, việc lập thời khóa biểu cho trường học tổng quát hóa thành toán, nhà nghiên cứu tìm phương pháp giải cơng cụ, thuật tốn tin học Các tốn xếp thời khóa biểu phong phú đa dạng ràng buộc yêu cầu đặc trưng trường học, chí mơn học Bởi lời giải tốn xếp thời khóa biểu thường giải pháp chấp nhận được, hay nói cách khác tốn xếp thời khóa biểu tốn tối ưu Trong khoảng 50 năm qua, thuật toán di truyền cải tiến - phát triển gọi chung thuật tốn tiến hóa thực tạo kết khả quan áp dụng giải toán tối ưu Thuật toán di truyền mơ tiến hóa tự nhiên sinh học với quan niệm tiến hóa tự nhiên sinh học q trình tối ưu Thuật tốn tỏ hiệu việc áp dụng giải toán tối ưu thực tế, tiêu biểu tốn lập thời khóa biểu trường học Ở Việt Nam có vài phần mềm lập thời khóa biểu tốt, chưa đáp ứng hết yêu cầu thực tế cách tổ chức giảng dạy trường Trường THPT Quỳ Châu, nơi tơi giảng dạy, chưa có phần mềm lập thời khóa biểu riêng để đáp ứng điều kiện cụ thể nhà trường Xuất phát từ vấn đề trên, đề tài “Nghiên cứu thuật toán di truyền cho tốn xếp thời khóa biểu Trường trung học phổ thông” lựa chọn làm luận văn tốt nghiệp Luận văn tập trung nghiên cứu thuật toán di truyền đồng thời giải toán thời khóa biểu mặt lý thuyết lẫn thực hành, xem thử nghiệm Do khả thời gian hạn chế, tơi hồn thành phần mềm mức nhất, tạm sử dụng nội trường nơi công tác Hy vọng thời gian tới, bổ sung thêm chức cho phần mềm hoàn chỉnh thành sản phẩm sử dụng ngành giáo dục nói chung Lịch sử vấn đề Thuật toán di truyền (tên tiếng Anh Genetic Algorithms, viết tắt GA) giáo sư J.H Holland công bố lần vào năm 1962 Thuật tốn di truyền hình thành dựa quan niệm “q trình tiến hóa tự nhiên q trình hồn hảo hợp lý nhất, tự q trình mang tính tối ưu” Từ đời nay, thuật toán di truyền nhiều nhà toán học, nhà tin học nghiên cứu vấn đề lý thuyết ứng dụng Thuật toán di truyền nhánh lớn lĩnh vực nghiên cứu thuật tốn tiến hóa (tên tiếng Anh Evolutionary Algorithms, viết tắt EAs) Thuật tốn di truyền nói riêng EAs nói chung mạnh thật việc giải tốn khó, tốn tối ưu số tối ưu tổ hợp Một ứng dụng kinh điển Thuật toán di truyền toán xếp thời khóa biểu Ở nước ta, thuật tốn di truyền ứng dụng nhận quan tâm nhiều nhà khoa học Đối với toán ứng dụng thuật tốn di truyền để xếp thời khóa biểu, có số tác giả nghiên cứu triển khai luận văn tốt nghiệp cao học thạc sĩ ngành công nghệ thông tin Tiêu biểu số kể đến: - Tính tốn tiến hóa ứng dụng lập thời khóa biểu trường trung học phổ thông ThS Trần Quốc Hưng Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội năm 2004 (xem [8]) - Ứng dụng giải thuật di truyền để xếp thời khóa biểu hệ tín cho trường đại học ThS Phạm Anh Tuấn Trường Đại học Đà Nẵng năm 2012 (xem [7]) - Giải thuật di truyền tốn lập thời khóa biểu ThS Đồng Văn Tuấn Trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Ngun năm 2014 (xem [4]) Trong cơng trình này, tốn xếp thời khóa biểu nghiên cứu giải Tuy nhiên dừng lại toán cụ thể đơn vị, trường mà chưa thể mở rộng cách tổng quát Đối tượng phạm vi nghiên cứu Tìm hiểu tốn lập lịch Tìm hiểu thuật tốn di truyền, ứng dụng thuật toán di truyền vào toán lập thời khóa biểu Xây dựng ứng dụng lập thời khóa biểu cho trường THPT nói chung Trường THPT Quỳ Châu nói riêng Mục đích, nhiệm vụ nghiên cứu Xây dựng phần mềm xếp thời khóa biểu Trường THPT Quỳ Châu thích nghi, linh hoạt, đáp ứng yêu cầu ràng buộc toán thực tế nhà trường Phần mềm hướng tới đáp ứng yêu cầu ràng buộc trường THPT nói chung Phương pháp nghiên cứu - Nghiên cứu, tìm hiểu tài liệu liên quan; - Phân tích thiết kế phần mềm; - Viết chương trình; - Thử nghiệm phân tích kết Đóng góp luận văn Luận văn bổ sung thêm tài liệu tham khảo lý thuyết thực nghiệm giải thuật di truyền Các kết nghiên cứu luận văn lần khẳng định tính ứng dụng hiệu thuật toán di truyền tốn tối ưu khó nói chung tốn thời khóa biểu nói riêng Phần mềm xếp thời khóa biểu nghiên cứu, xây dựng luận văn thỏa mãn điều kiện ràng buộc chung tốn xếp thời khóa biểu, phần mềm cho phép trường THPT nói chung Trường THPT Quỳ Châu nói riêng linh hoạt chủ động phương án khác việc xếp thời khóa biểu năm học: - Cho phép khai báo tiết cố định môn học - Cho phép khai báo thời gian bận giáo viên - Cho phép giảm thiểu số tiết trống - Cho phép đặt ràng buộc mềm + Mơn Tốn, mơn Văn có cặp tiết xếp liền + Mơn Thể dục, Quốc phòng khơng dạy tiết tiết + Môn phân tiết buổi khơng rời + Khơng phân tiết môn buổi + Hạn chế giáo viên không dạy tiết buổi Cấu trúc luận văn Báo cáo luận văn cấu trúc 03 chương Chương Bài toán xếp thời khóa biểu Mơ tả chung tốn thời khóa biểu số phần mềm xếp thời khóa biểu dành cho trường THPT Chương Giải thuật di truyền Mô tả lý thuyết giải thuật di truyền, trình bày số lĩnh vực ứng dụng giải thuật di truyền Chương Ứng dụng giải thuật di truyền cho toán thời khóa biểu Trường THPT Là nội dung luận văn chia làm phần Phần thứ trình bày thành phần thuật tốn di truyền mã hóa mơ tả cách cụ thể toán yêu cầu tốn xếp thời khóa biểu trường THPT Phần thứ phân tích thiết kế chương trình Phần thứ ba kết thực nghiệm đánh giá 10 Chương I BÀI TOÁN SẮP XẾP THỜI KHĨA BIỂU Bài tốn xếp Thời khóa biểu thuộc lớp Bài toán lập lịch, toán thú vị lớp toán tối ưu tính chất đa dạng mơ hình thời khóa biểu, có nhiều ràng buộc phức tạp tính chất thực tiễn Bài tốn thời khóa biểu thuộc loại tốn NP-khó, trường hợp riêng tốn lập lịch, đưa chuỗi kiện (các môn học, giảng môn thi) bao gồm giáo viên học sinh khoảng thời gian định trước, tập ràng buộc phải thỏa mãn loại thời khóa biểu khác Tập ràng buộc bao gồm khả tham dự học sinh, khả làm việc giáo viên, số lượng sức chứa phòng học yêu cầu kiện 1.1 Tổng quan toán lập lịch Bài toán lập lịch chọn chuỗi thao tác, đồng thời định thời gian bắt đầu/ kết thúc tài nguyên cần thiết cho thao tác Điều cần quan tâm yếu chi phí thời gian máy rỗi, lực lao động đơn đặt hàng cần hồn thành hạn Ý tưởng phương pháp mã hóa biểu diễn lịch phân cơng toán tử di truyền phải thực theo cách có ý nghĩa, giải mã phải tạo lời giải hợp lệ cho tốn Thủ tục giải mã mơ thao tác cơng việc theo cách mà máy tính sẵn sàng chọn lựa, thao tác cho phép từ danh sách ưu tiên lấy 49 'Tính giá trị thích nghi cho tồn Quần thể For hang2 = To n - ThichNghi(hang2) Prb.Value = hang2 Next Do While Thehe