Bài toán lập lịch Bài toán lập lịch Bài toán lập lịch luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
TRẦN THỊ THÙY LINH BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRẦN THỊ THÙY LINH CƠNG NGHỆ THƠNG TIN BÀI TỐN LẬP LỊCH LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN 2011B Hà Nội – Năm 2013 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN THỊ THÙY LINH BÀI TỐN LẬP LỊCH Chun ngành : Cơng nghệ thơng tin LUẬN VĂN THẠC SĨ KỸ THUẬT CƠNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC : TS Lê Văn Hưng Hà Nội – Năm 2013 MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nhiệm vụ nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Bố cục luận văn CHƯƠNG 1: BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU CHO TRƯỜNG THPT Giới thiệu toán Phát biểu toán 2.1 Dữ liệu toán 2.2 Các ràng buộc 10 2.2.1 Ràng buộc liệu nhập vào 10 2.2.2 Ràng buộc nghiệp vụ – thời gian 11 2.2.3 Ràng buộc nghiệp vụ – chuyên môn 11 CHƯƠNG 2: GIẢI THUẬT DI TRUYỀN 12 Lịch sử thuật giải di truyền 12 Các đặc điểm, đặc trưng 12 Các thành phần thuật giải di truyền 16 3.1 Khởi động quần thể ban đầu 16 3.2 Đánh giá cá thể 16 3.2.1 Chọn lọc Roulette (Roulette Wheel Selection) 17 3.2.2 Chọn lọc xếp hạng (Rank Selection) 17 3.2.3 Chọn lọc cạnh tranh (Tournament Selection) 17 3.3 Toán tử lai ghép 18 3.3.1 Lai ghép ánh xạ phần (PMX-Partial-Mapped Crossover) 18 3.3.2 Lai ghép có trật tự (OX-Order Crossover) [40] 19 3.3.3 Lai ghép dựa vị trí (Position-Based Crossover) (Scott Robert Ladd [1996, 29]) 20 3.3.4 Lai ghép dựa thứ tự (Order-Base Crossover) 21 3.3.5 Lai ghép có chu trình (CX -Cycle Crossover) [1997, 10] 22 3.3.6 Lai ghép thứ tự tuyến tính (LOX- Linear Order Crossover) 23 3.4 Toán tử đột biến 24 3.4.1 Đột biến đảo ngược (Inversion Mutation) 25 3.4.2 Đột biến chèn (Insertion Mutation) 25 3.4.3 Đột biến thay (Displacement Mutation) 25 3.4.4 Đột biến tương hỗ Exchange Mutation (Reciprocal ) 25 3.4.5 Đột biến chuyển dịch (Shift Mutation) 26 3.5 Điều kiện kết thúc 26 Thư viện Galib 26 4.1 Giới thiệu thư viện 26 4.2 Mơ hình tốn TSP thuật giải di truyền 28 4.2.1 Giới thiệu 28 4.2.2 Thiết kế toán 28 4.2.2.1 Độ thích nghi chọn cá thể 29 4.2.2.2 Lai ghép, đột biến 29 4.2.2.3 Khởi động kích thước quần thể 31 4.2.3 Thư viện Galib toán TSP 33 4.2.4 Nhận xét 42 CHƯƠNG 3: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TỐN XẾP THỜI KHĨA BIỂU 43 Giai đoạn – xếp lịch học lớp 43 1.1 Chọn mơ hình cá thể 43 1.2 Tạo quần thể ban đầu 46 1.3 Độ thích nghi – chọn cá thể 46 1.4 Thuật toán lai ghép & đột biến 47 Giai đoạn – xếp lịch học cho toàn sở 48 2.1 Chọn mơ hình cá thể 48 2.2 Tạo quần thể ban đầu 49 2.3 Độ thích nghi – chọn cá thể 50 2.4 Thuật toán lai ghép & đột biến 50 Chọn điểm dừng thuật toán 50 CHƯƠNG 4: XÂY DỰNG PHẦN MỀM 52 Xác định yêu cầu toán 52 1.1 Các đối tượng sử dụng 52 1.2 Mối quan hệ đối tượng 52 1.3 Các ràng buộc đối tượng 53 1.4 Các yêu cầu chức 53 1.4.1 Chức lưu trữ 53 1.4.2 Chức tra cứu 54 1.4.3 Chức tính tốn 54 1.4.4 Chức chiết xuất 54 1.4.5 Các yêu cầu phi chức 54 Mơ hình phân tích 55 2.1 Sơ đồ lớp 55 2.2 Danh sách đối tượng mối quan hệ 55 2.2.1 Danh sách đối tượng 55 2.2.2 Các quan hệ đối tượng 55 2.3 Các chi tiết 56 2.3.1 Đối tượng giáo viên 56 2.3.2 Đối tượng lớp học 56 2.3.3 Đối tượng môn học 56 2.3.4 Đối tượng phòng học 56 2.3.5 Quan hệ Lịch Lớp Học 56 2.3.6 Quan hệ Lịch Cơ Sở 57 2.3.7 Quan hệ lịch học 57 2.3.8 Quan hệ Xếp Lịch Dạy 57 2.3.9 Quan hệ Xếp Lịch Phòng 57 2.4 Các ràng buộc 57 2.5 Các hành động đối tượng 57 Mơ hình thiết kế 59 3.1 Thiết kế liệu 59 3.1.1 Sơ đồ logic 59 3.1.2 Danh sách thành phần 59 3.1.3 Chi tiết thành phần 60 3.1.4 Các ràng buộc 64 3.2 Thiết kế giao diện 65 3.2.1 Sơ đồ hình 65 3.2.2 Danh sách hình 66 3.2.3 Mô tả chi tiết 66 3.2.3.1 Giới thiệu cơng cụ menu 66 3.2.3.2 Màn hình 67 3.2.3.3 Màn hình liệu sở 67 3.2.3.4 Màn hình liệu phòng học 68 3.2.3.5 Màn hình liệu Lớp chuyên 69 3.2.3.6 Màn hình liệu mơn học 69 3.2.3.7 Màn hình liệu giáo viên 70 3.2.3.8 Màn hình liệu khóa học 70 3.2.3.9 Màn hình liệu lớp học 71 CHƯƠNG 5: KẾT QUẢ THỬ NGHIỆM 72 Trường hợp bị ràng buộc 72 Ràng buộc mức lớp học 72 Ràng buộc mức sở 72 Ràng buộc mức lớp học & sở 72 Kết chạy thử nghiệm chương trình 72 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 75 Kết luận 75 Hướng phát triển 75 TÀI LIỆU THAM KHẢO 77 3 MỞ ĐẦU Lý chọn đề tài Ngày nay, công nghệ thông tin đóng vai trị quan trọng đời sống kinh tế, xã hội nhiều quốc gia giới, phần thiếu xã hội động, ngày đại hóa Việc tin học hóa số lĩnh vực ứng dụng hồn tồn phù hợp với xu hướng Trong sống hàng ngày ta thường gặp toán liên quan đến xếp lịch xếp lịch vận hành máy móc, xếp lịch biểu cho việc thực dự án, xếp lịch làm việc quan cá nhân cô thư ký xếp lịch biểu hàng ngày cho giám đốc, anh công nhân kỹ thuật hoạch định kế hoạch vận hành máy móc với chi phí thời gian thấp mà đảm bảo suất, chất lượng, … Bài toán lập lịch mà cụ thể tốn xếp thời khóa biểu cho trường trung học phổ thông (THPT) tốn khó Sự phức tạp tốn khơng vấn đề tìm thời khóa biểu cho lớp học thỏa mãn ràng buộc thời gian, chuyên môn, qui định Bộ Giáo dục Đào tạo, mà phải tìm thời khóa biểu tốt cho giáo viên (thỏa yêu cầu riêng thời gian) Vì vậy, việc xếp thời khóa biểu tay tốn nhiều công sức thường không tối ưu Trong trường hợp dùng phần mềm, nhiều việc xếp tự động khó thực cho tồn thời khóa biểu khơng tìm lời giải tối ưu Bài toán xếp thời khóa biểu tốn khơng có nhiều giải thuật đưa để giải giải thuật nhánh cận, leo đồi, luyện thép, tô màu đồ thị, xấp xỉ … Tuy nhiên, giải thuật thường khơng có tính tổng qt áp dụng hiệu trường học có quy mơ nhỏ Trong năm gần đây, cách tiếp cận di truyền thu hút nhiều ý lĩnh vực nghiên cứu khác nhau, có khoa học máy tính Cách tiếp cận có nhiều đặc điểm trội khơng địi hỏi tri thức, tránh tối ưu cục bộ, hoạt động tốt cho tốn có khơng gian lời giải lớn áp dụng cho nhiều loại toán tối ưu khác Hiện nay, giải thuật di truyền ứng dụng có hiệu cho nhiều toán tối ưu Do vậy, việc nghiên cứu ứng dụng giải thuật di truyền cho toán xếp thời khóa biểu nhằm tìm thời khóa biểu tốt cho giáo viên, khai thác hiệu nguồn tài nguyên phục vụ giảng dạy cần thiết mang ý nghĩa thực tiễn Mục tiêu nhiệm vụ nghiên cứu Mục tiêu luận văn nghiên cứu ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu cho trường THPT nhằm đưa phương án xếp thời khóa biểu thỏa mãn ràng buộc khai thác hiệu nguồn lực đào tạo nhà trường Để hoàn thành mục tiêu trên, luận văn tập trung thực nhiệm vụ sau đây: - Nghiên cứu toán xếp thời khóa biểu trường THPT, đặc điểm ràng buộc cần thỏa mãn - Tìm hiểu đặc điểm, đặc trưng giải thuật di truyền, bước khởi động quần thể ban đầu, toán tử di truyền (chọn lọc, lai ghép, đột biến), cách đánh giá độ thích nghi, điều kiện dừng … - Ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu trường THPT để tìm phương án thỏa mãn tốt ràng buộc - Phân tích đánh giá kết phần mềm cài đặt với liệu thử đơn giản - Triển khai thực nghiệm với liệu xếp thời khóa biểu trường THPT chuyên Nguyễn Huệ Đối tượng phạm vi nghiên cứu Đối tượng phạm vi nghiên cứu luận văn bao gồm: Nghiên cứu tốn xếp thời khóa biểu cho trường THPT với đặc điểm ràng buộc cần thỏa mãn; nghiên cứu tìm hiểu giải thuật di truyền ứng dụng việc giải toán tối ưu; ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu trường THPT chuyên Nguyễn Huệ, Hà Nội với ràng buộc yêu cầu Phương pháp nghiên cứu Phương pháp nghiên cứu luận văn bao gồm: nghiên cứu lý thuyết giải thuật di truyền ứng dụng tốn tối ưu; nghiên cứu thực nghiệm ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu trường THPT; phân tích đánh giá kết thực nghiệm Bố cục luận văn Nội dung luận văn chia thành chương sau: Chương 1: Trình bày tốn xếp thời khóa biểu cho trường THPT Chương 2: Trình bày chi tiết giải thuật di truyền ứng dụng tốn tối ưu thư viện GALIB dùng để phát triển phần mềm sử dụng giải thuật di truyền Chương 3: Trình bày phương thức ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu cho trường THPT Chương 4: Trình bày bước tiến hành xây dựng phần mềm xếp thời khóa biểu cho trường THPT Chương 5: Phân tích đánh giá kết thử nghiệm phần mềm Chương 6: Nêu kết luận hướng phát triển luận văn CHƯƠNG 1: BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU CHO TRƯỜNG THPT Giới thiệu tốn Bài tốn xếp thời khóa biểu trường THPT tốn khó, phức tạp tốn khơng vấn đề tìm thời khóa biểu cho lớp học thỏa ràng buộc thời gian, ràng buộc chuyên môn, quy định chung ngành giáo dục mà tốn tìm thời khóa biểu tốt nhất, nhanh mà lại đáp ứng đầy đủ yêu cầu nguyện vọng riêng cá nhân giáo viên trường Xếp thời khóa biểu vấn đề luận văn Bài tốn đặt vấn đề xếp thời khóa biểu cho trường THPT, với nhiều lớp khác nhau, sở khác Cần có xếp lịch học cho lớp phòng địa điểm, cho vừa hợp lý lại vừa tiện dụng Bài toán đặt bao gồm tất vấn đề có liên quan đến việc xếp thời khóa biểu trường THPT, chẳng hạn như:việc tránh trùng phòng lớp; giáo viên dạy theo quy định bảng phân công… Thông thường, công việc làm tay, thực cách thủ công tất nhiên thực cho kết tương đối tốt, phải nhiều thời gian, thong thường hiệu trưởng hiệu phó trường trung bình khoảng tuần phải có kinh nghiệm xếp lịch không tránh khỏi sai sót xảy ra, chẳng hạn : chỗ thừa phòng, chỗ khác lại thiếu, sai chỗ, sai Vấn đề tốn ngồi việc thực đúng, xác, cịn phải tốt hơn, nhanh hiệu công việc xếp lịch tay mà phải làm Bài tốn xếp thời khóa biểu trường học nói chung trường THPT nói riêng tốn Có nhiều ràng buộc đặt 3.2.2 Danh sách hình STT Màn hình Mơ tả Màn hình Chứa chức chương trình Dữ liệu sở Truy xuất thông tin sở Dữ liệu phịng học Truy xuất thơng tin phịng học Dữ liệu lớp chun Truy xuất thơng tin lớp chuyên Dữ liệu môn học Truy xuất thông tin môn học Dữ liệu giáo viên Truy xuất thơng tin giáo viên Dữ liệu khóa học Truy xuất thơng tin khóa học Dữ liệu lớp học Truy xuất thông tin lớp học Dữ liệu phân công Truy xuất thông tin phân công 10 Ràng buộc giáo viên Thơng tin ràng buộc gíao viên 11 Ràng buộc lớp học Thông tin ràng buộc lớp học 12 Ràng buộc phịng học Thơng tin ràng buộc phòng học 13 Xếp lịch lớp học Xem thực thi xếp lịch lớp 14 Xếp lịch sở Xem thực thi xếp lịch sở 15 Xếp lịch phòng học Xem lịch phòng 16 Xếp lịch giáo viên Xem lịch giáo viên 17 Xuất file Excel Chuyển liệu kết dạng file Excel 18 Thực thi xếp lịch Thực thi thuật giải di truyền để xếp lịch 3.2.3 Mô tả chi tiết 3.2.3.1 Giới thiệu cơng cụ menu -Các menu chính-Thanh phân mục chức năng-Thanh cơng cụ- 66 3.2.3.2 Màn hình Danh sách biến cố STT Biến cố Phương thức Tạo Chọn mục liệu / tạo Khi người dùng cần tạo liệu Mô tả menu sở liệu hồn tồn Click biểu tượng tạo cho chương trình công cụ Mở liệu Chọn mục liệu / mở menu Click biểu tượng mở liệu công cụ Người dùng muốn xem lại liệu có sẳn muốn thực thi chức liệu Lưu liệu Chọn mục liệu / lưu menu Click biểu tượng lưu liệu công cụ Khi người dùng muốn lưu lại liệu trước kết thúc muốn cập nhật toàn liệu mở Xem giúp trợ Chọn mục thông tin / Người dùng muốn xin hiểu hướng dẫn rõ thêm chương trình Gõ phím F1 bàn phím Chọn mục Click chuột Khi người sử dụng muốn chọn chức theo mục chinh chương trình : Dữ liệu Ràng buộc Xếp lịch Hiển thị Click chuột Người dùng cần truy xuất hình Chọn theo mục từ menu hình chức chức hình liệu sở 3.2.3.3 Màn hình liệu sở 67 Danh sách biến cố STT Biến cố Phương thức Thêm Gõ phím Insert sở Mơ tả Người dùng thêm Chhọn mục soạn thảo thông tin sở / thêm Chọn biểu tượng thêm Xóa sở Gõ phím delete Người dùng muốn xóa Chọn mục soạn thảo / thơng tin có sẳn sở liệu xóa Chọn biểu tượng xóa Sửa đổi thơng Click vào thông tin Người dùng cập nhật lại tin sở cần sửa thông tin sở 3.2.3.4 Màn hình liệu phịng học Danh sách biến cố STT Biến cố Thêm Phương thức Mơ tả Gõ phím Insert Người dùng thêm phịng Chhọn mục soạn thảo / thơng tin phòng học học thêm Chọn biểu tượng thêm Xóa Gõ phím delete phịng học Người dùng muốn xóa Chọn mục soạn thảo / xóa thơng tin có sẳn phịng Chọn biểu tượng xóa học liệu Sửa đổi Click vào thông tin cần Người dùng cập nhật lại thơng tin sửa thơng tin phịng học phịng học 68 3.2.3.5 Màn hình liệu Lớp chuyên Danh sách biến cố STT Biến cố Phương thức Thêm Gõ phím Insert Lớp Chhọn mục soạn thảo / thông tin lớp chuyên chuyên Mô tả Người dùng thêm thêm Chọn biểu tượng thêm Xóa Gõ phím delete Lớp chuyên Người dùng muốn xóa Chọn mục soạn thảo / xóa Chọn biểu tượng xóa thơng tin có sẳn liệu Lớp chuyên Sửa đổi Click vào thông tin cần Người dùng cập nhật lại thông tin sửa thông tin Lớp chuyên Lớp chun 3.2.3.6 Màn hình liệu mơn học Danh sách biến cố STT Biến cố Phương thức Mô tả Thêm mơn Gõ phím Insert Người dùng thêm học Chọn mục soạn thảo / thông tin môn học thêm Chọn biểu tượng thêm Xóa mơn học Gõ phím delete Chọn mục soạn thảo / xóa Chọn biểu tượng xóa Sửa đổi thơng tin mơn Click vào thông tin học cần sửa 69 Người dùng muốn xóa thơng tin có sẳn liệu môn học Người dùng cập nhật lại thông tin mơn học 3.2.3.7 Màn hình liệu giáo viên Danh sách biến cố STT Biến cố Phương thức Mô tả Thêm giáo viên Gõ phím Insert Người dùng thêm Chọn mục soạn thảo / thông tin thêm giáo viên Chọn biểu tượng thêm Xóa giáo viên Gõ phím delete Người dùng muốn Chọn mục soạn thảo / xóa thơng tin xóa có sẳn Chọn biểu tượng xóa liệu giáo viên Sửa đổi thông tin giáo Click vào thông tin cần Người dùng cập viên sửa nhật lại thông tin giáo viên 3.2.3.8 Màn hình liệu khóa học Danh sách biến cố STT Biến cố Phương thức Thêm khóa Gõ phím Insert học Chọn mục soạn thảo / thêm Chọn biểu tượng thêm Xóa khóa học Gõ phím delete Chọn mục soạn thảo / xóa Chọn biểu tượng xóa Sửa đổi thơng tin khóa Click vào thông tin học cần sửa 70 Mô tả Người dùng thêm thơng tin khóa học Người dùng muốn xóa thơng tin có sẳn liệu khóa học Người dùng cập nhật lại thơng tin khóa học 3.2.3.9 Màn hình liệu lớp học Danh sách biến cố STT Biến cố Phương thức Mô tả Thêm lớp học Gõ phím Insert Người dùng thêm Chọn mục soạn thảo / thông tin thêm lớp học Chọn biểu tượng thêm Xóa lớp học Gõ phím delete Người dùng muốn Chọn mục soạn thảo / xóa thơng tin có xóa sẳn liệu lớp Chọn biểu tượng xóa học Sửa đổi thông tin lớp Click vào thông tin Người dùng cập nhật học cần sửa lại thông tin lớp học 71 CHƯƠNG 5: KẾT QUẢ THỬ NGHIỆM Trường hợp khơng có bị ràng buộc Đối với trường hợp này, thử nghiệm chương trình, khơng có ràng buộc liệu tất nhiên kết đạt tốt thực thi với tốc độ nhanh Từ lúc khởi động quần thể độ thích nghi ln đạt giá trị 0, giá trị tốt toán, ngoại trừ xếp lịch sở có ràng buộc phát sinh : giáo viên dạy trùng lớp Tuy nhiên sau vài hệ, độ thích nghi đạt mức Ràng buộc mức lớp học Cấp độ tùy thuộc vào số lượng ràng buộc lớp Nếu bị ràng buộc lớn tổng số học lớp tuần, chắn khơng có kết lịch lớp Do độ khó khăn cơng việc tăng dần theo số ràng buộc Thực tế phạm vi ràng buộc cho kết tốt bị giới hạn so với lý thuyết Phải thực thi qua nhiều hệ, phải khởi động lại quần thể ban đầu để thi hành lại Khi cho kết Ràng buộc mức sở Giai đoạn độc lập hồn tồn với cơng việc xếp lịch lớp, mặt ngun tắc giống hồn tồn Ngay từ đầu ràng buộc chưa có, phải chạy vài hệ độ thích nghi đạt trạng thái tốt Khi có ràng buộc, việc thực thi chậm hơn, phải qua nhiều hệ quần thể Cũng có lúc khơng đạt đuọc ràng buộc q lớn Ràng buộc mức lớp học & sở Như nói trên, độc lập giai đoạn xếp lịch, ràng buộc tự giải giai đoạn Nếu hai có ràng buộc tổng hợp ràng buộc giai đoạn Kết chạy thử nghiệm chương trình 72 Thời khóa biểu cho tồn trường: Thời khố biểu cho giáo viên : 73 Thời khoá biểu cho lớp học: Thời khố biểu phịng học : 74 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Qua q trình thực luận văn, tơi nghiên cứu nắm vững giải thuật di truyền, biết cách vận dụng giải thuật di truyền vào tốn lập lịch, khơng tìm lời giải cho tốn lập thời khóa biểu mà tơi cịn tìm lời giải cho toán lập lịch làm việc cá nhân, lập lịch công tác cho công ty,… Sau lần thực thi với liệu trên, với cấp độ “khó” khác nhau, bao gồm tất giới hạn ràng buộc đối tượng Cuối tạo sản phẩm phần mềm giải vấn đề sau: - Hệ thống đáp ứng tốt tất ràng buộc nêu luận văn, bao gồm ràng buộc cứng mềm - Hệ thống chạy ổn định, giao diện đẹp, thân thiện dễ sử dụng - Kết xếp thời khóa biểu trình bày đa dạng bao gồm thời khóa biểu lớp, giáo viên - Xếp lịch giảng dạy, lịch học nhà trường cách xác, nhanh chóng, cải thiện phương pháp xếp lịch tay không hiệu quả, lại nhiều thời gian Hướng phát triển - Do yêu cầu tốn xếp thời khóa biểu thực tế đa dạng, trường lại có yêu cầu riêng, hệ thống đáp ứng giải yêu cầu nêu Vì cần phải tích hợp them ràng buộc khác cho đầy đủ để người sử dụng dễ dàng lựa chọn ràng buộc theo nhu cầu - Thơng tin kết thời khóa biểu chưa tổng quát lắm, thơng tin u cầu linh hoạt mà chương trình đáp ứng dạng kiểm tra, thử nghiệm 75 - Chương trình cần mở rộng thêm kích thước liệu trường hợp ràng buộc để kết đánh giá ứng dụng thuật giải di truyền vào việc xếp thời khóa biểu trường THPT cách thật xác - Ngồi tốn xếp thời khóa biểu, giải thuật di truyền cịn ứng dụng nhiều tốn tối ưu khác Vì việc nghiên cứu ứng dụng giải thuật di truyền tạo tảng sở để tiếp tục nghiên cứu việc xây dựng hệ thống lập lịch khác hướng phát triển đề tài 76 TÀI LIỆU THAM KHẢO (1) David A.Coley: An Instroduction to Genetic Algorithm (2) GAlib : A C++ Library for Genetic Algorithm Components (Matthew Wall) (3) Melanie Mitchell, An Introduction to Genetic Algorithms (4) Nguyễn Tấn Trần Minh Khang -Thuật Toán Di Truyền Luận Văn Thạc Sĩ , trường Đại Học Khoa Học Tự Nhiên (5) Hoàng Kiếm, Lê Hoàng Thái (2000), Thuật giải Di Truyền – Cách giải tự nhiên tốn máy tính, Nhà xuất giáo dục (6) TS Nguyễn Đình Thức: Lập trình tiến hóa (7) Đinh Mạnh Tường Nguyễn Hồng Cương, Giáo trình trí tuệ nhân tạo khoa Cơng nghệ thơng tin, đại học Quốc Gia Hà Nội (.pdf) 77 MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nhiệm vụ nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Bố cục luận văn CHƯƠNG 1: BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU CHO TRƯỜNG THPT Giới thiệu toán Phát biểu toán 2.1 Dữ liệu toán 2.2 Các ràng buộc 10 2.2.1 Ràng buộc liệu nhập vào 10 2.2.2 Ràng buộc nghiệp vụ – thời gian 11 2.2.3 Ràng buộc nghiệp vụ – chuyên môn 11 CHƯƠNG 2: GIẢI THUẬT DI TRUYỀN 12 Lịch sử thuật giải di truyền 12 Các đặc điểm, đặc trưng 12 Các thành phần thuật giải di truyền 16 3.1 Khởi động quần thể ban đầu 16 3.2 Đánh giá cá thể 16 3.2.1 Chọn lọc Roulette (Roulette Wheel Selection) 17 3.2.2 Chọn lọc xếp hạng (Rank Selection) 17 3.2.3 Chọn lọc cạnh tranh (Tournament Selection) 17 3.3 Toán tử lai ghép 18 3.3.1 Lai ghép ánh xạ phần (PMX-Partial-Mapped Crossover) 18 3.3.2 Lai ghép có trật tự (OX-Order Crossover) [40] 19 3.3.3 Lai ghép dựa vị trí (Position-Based Crossover) (Scott Robert Ladd [1996, 29]) 20 3.3.4 Lai ghép dựa thứ tự (Order-Base Crossover) 21 3.3.5 Lai ghép có chu trình (CX -Cycle Crossover) [1997, 10] 22 3.3.6 Lai ghép thứ tự tuyến tính (LOX- Linear Order Crossover) 23 3.4 Toán tử đột biến 24 3.4.1 Đột biến đảo ngược (Inversion Mutation) 25 3.4.2 Đột biến chèn (Insertion Mutation) 25 3.4.3 Đột biến thay (Displacement Mutation) 25 3.4.4 Đột biến tương hỗ Exchange Mutation (Reciprocal ) 25 3.4.5 Đột biến chuyển dịch (Shift Mutation) 26 3.5 Điều kiện kết thúc 26 Thư viện Galib 26 4.1 Giới thiệu thư viện 26 4.2 Mơ hình tốn TSP thuật giải di truyền 28 4.2.1 Giới thiệu 28 4.2.2 Thiết kế toán 28 78 4.2.2.1 Độ thích nghi chọn cá thể 29 4.2.2.2 Lai ghép, đột biến 29 4.2.2.3 Khởi động kích thước quần thể 31 4.2.3 Thư viện Galib toán TSP 33 4.2.4 Nhận xét 42 CHƯƠNG 3: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TỐN XẾP THỜI KHĨA BIỂU 43 Giai đoạn – xếp lịch học lớp 43 1.1 Chọn mơ hình cá thể 43 1.2 Tạo quần thể ban đầu 46 1.3 Độ thích nghi – chọn cá thể 46 1.4 Thuật toán lai ghép & đột biến 47 Giai đoạn – xếp lịch học cho toàn sở 48 2.1 Chọn mơ hình cá thể 48 2.2 Tạo quần thể ban đầu 49 2.3 Độ thích nghi – chọn cá thể 50 2.4 Thuật toán lai ghép & đột biến 50 Chọn điểm dừng thuật toán 50 CHƯƠNG 4: XÂY DỰNG PHẦN MỀM 52 Xác định yêu cầu toán 52 1.1 Các đối tượng sử dụng 52 1.2 Mối quan hệ đối tượng 52 1.3 Các ràng buộc đối tượng 53 1.4 Các yêu cầu chức 53 1.4.1 Chức lưu trữ 53 1.4.2 Chức tra cứu 54 1.4.3 Chức tính tốn 54 1.4.4 Chức chiết xuất 54 1.4.5 Các yêu cầu phi chức 54 Mơ hình phân tích 55 2.1 Sơ đồ lớp 55 2.2 Danh sách đối tượng mối quan hệ 55 2.2.1 Danh sách đối tượng 55 2.2.2 Các quan hệ đối tượng 55 2.3 Các chi tiết 56 2.3.1 Đối tượng giáo viên 56 2.3.2 Đối tượng lớp học 56 2.3.3 Đối tượng môn học 56 2.3.4 Đối tượng phòng học 56 2.3.5 Quan hệ Lịch Lớp Học 56 2.3.6 Quan hệ Lịch Cơ Sở 57 2.3.7 Quan hệ lịch học 57 2.3.8 Quan hệ Xếp Lịch Dạy 57 2.3.9 Quan hệ Xếp Lịch Phòng 57 2.4 Các ràng buộc 57 79 2.5 Các hành động đối tượng 57 Mơ hình thiết kế 59 3.1 Thiết kế liệu 59 3.1.1 Sơ đồ logic 59 3.1.2 Danh sách thành phần 59 3.1.3 Chi tiết thành phần 60 3.1.4 Các ràng buộc 64 3.2 Thiết kế giao diện 65 3.2.1 Sơ đồ hình 65 3.2.2 Danh sách hình 66 3.2.3 Mô tả chi tiết 66 3.2.3.1 Giới thiệu cơng cụ menu 66 3.2.3.2 Màn hình 67 3.2.3.3 Màn hình liệu sở 67 3.2.3.4 Màn hình liệu phòng học 68 3.2.3.5 Màn hình liệu Lớp chuyên 69 3.2.3.6 Màn hình liệu mơn học 69 3.2.3.7 Màn hình liệu giáo viên 70 3.2.3.8 Màn hình liệu khóa học 70 3.2.3.9 Màn hình liệu lớp học 71 CHƯƠNG 5: KẾT QUẢ THỬ NGHIỆM 72 Trường hợp bị ràng buộc 72 Ràng buộc mức lớp học 72 Ràng buộc mức sở 72 Ràng buộc mức lớp học & sở 72 Kết chạy thử nghiệm chương trình 72 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 75 Kết luận 75 Hướng phát triển 75 TÀI LIỆU THAM KHẢO 77 80 ... TRẦN THỊ THÙY LINH BÀI TOÁN LẬP LỊCH Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC : TS Lê Văn Hưng Hà Nội – Năm 2013 MỤC... kết thử nghiệm phần mềm Chương 6: Nêu kết luận hướng phát triển luận văn CHƯƠNG 1: BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU CHO TRƯỜNG THPT Giới thiệu toán Bài toán xếp thời khóa biểu trường THPT tốn khó,... sống hàng ngày ta thường gặp toán liên quan đến xếp lịch xếp lịch vận hành máy móc, xếp lịch biểu cho việc thực dự án, xếp lịch làm việc quan cá nhân cô thư ký xếp lịch biểu hàng ngày cho giám