Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển 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
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI NGUYỄN QUYẾT NGUYỄN QUYẾT CÔNG NGHỆ THÔNG TIN TÌM HIỂU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU LUẬN VĂN THẠC SĨ KỸ THUẬT KHOÁ 2011A 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 - NGUYỄN QUYẾT TÊN ĐỀ TÀI LUẬN VĂN: TÌM HIỂU VỀ GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU CƠNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC : Ts Vũ Tuyết Trinh Hà Nội – Năm 2013 LỜI CẢM ƠN Trước tiên Tôi xin gửi lời cảm ơn chân thành đến thầy cô trường Đại Học Bách Khoa Hà Nội tận tình giảng dạy truyền đạt kiến thức bổ ích cho suốt năm qua Chúng không tiếp thu kiến thức chuyên ngành mà trang bị phương pháp nghiên cứu học tập hiệu Đặc biệt Tôi xin bày tỏ lòng biết ơn sâu sắc đến TS Vũ Tuyết Trinh, Cơ tận tình hướng dẫn bảo cho suốt thời gian thực luận văn Tôi xin gửi lời cảm ơn sâu sắc đến người bên cạnh cổ vũ, động viên, giúp đỡ tơi q trình học tập rèn luyện Gia đình bạn bè ln chỗ dựa tinh thần vững chắc, động lực mạnh mẽ giúp tơi vượt qua khó khăn để đạt kết ngày hôm Tôi xin chân thành cảm ơn! Hà Nội, ngày 20 tháng năm 2013 HỌC VIÊN Nguyễn Quyết MỤC LỤC CHƯƠNG I: ĐẶT VẤN ĐỀ .7 1.1 Lý chọn đề tài 1.2 Mục đích nội dung 1.3 Phương pháp nghiên cứu ý nghĩa thực tiễn CHƯƠNG II – THUẬT TOÁN DI TRUYỀN .10 2.1 Tổng quan giải thuật di truyền 10 2.1.1 Giới thiệu .10 2.1.2 Các thao tác .13 2.2 Các toán tử di truyền .13 2.2.1 Khởi tạo quần thể .13 2.2.2 Đánh giá độ thích nghi 13 2.2.3 Toán tử chọn lọc 13 2.2.4 Toán tử lai ghép 15 2.2.5 Toán tử đột biến 21 2.2.6 Điều kiện dừng 23 2.2.7 Các tham số giải thuật di truyền 23 2.2.8 Ứng dụng giải thuật di truyền 24 CHƯƠNG III - ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN XẾP THỜI KHÓA BIỂU 25 3.1 Tìm hiểu chung toán lập lịch 25 3.1.1 Các thuộc tính tốn lập lịch 25 3.1.2 Phân loại mơ hình xếp thời khóa biểu 26 3.2 Bài tốn xếp thời khóa biểu cho Đại học cao đẳng Việt Nam .28 3.2.1 Phân loại đơn vị xếp thời khóa biểu 28 3.2.2 Các đối tượng liên quan đến thời khóa biểu 29 3.2.3 Các đặc thù xếp thời khóa biểu 31 3.3 Bài toán thời khóa biểu Đại học Chu Văn An 32 3.3.1 Giới thiệu toán xếp thời khóa biểu Đại học Chu Văn An 33 3.3.2 Dữ liệu toán 35 3.3.3 Ràng buộc toán 35 3.4 Biểu diễn mơ hình cá thể 36 3.4.1 Biểu diễn thời gian biểu 36 3.4.2 Biểu diễn mơ hình cá thể 36 3.5 Khởi tạo quần thể chỉnh sửa 38 3.6 Các ràng buộc toán 41 3.7 Đánh giá độ thích nghi 42 3.8 Các toán tử di truyền .42 3.8.1 Toán tử chọn lọc 42 3.8.2 Toán tử lai ghép 42 3.8.3 Toán tử đột biến 43 3.9 Tính độ thích nghi cá thể 44 3.9.1 Tính độ thích nghi cá thể 44 3.9.2 Tính độ thích nghi dựa vào ràng buộc nhóm lớp 44 3.9.3 Tính độ thích nghi dựa vào ràng buộc trùng giảng viên 45 3.9.4 Tính độ thích nghi dựa vào ràng buộc bận giảng viên 46 3.9.5 Tính độ thích nghi dựa vào ràng buộc sức chứa phịng 47 3.9.6 Tính độ thích nghi dựa vào ràng buộc số tiết học tuần 47 3.9.7 Tính độ thích nghi dựa vào ràng buộc số tiết học lần 48 3.9.8 Tính độ thích nghi dựa vào ràng buộc loại phịng 48 3.9.9 Hệ số phạt loại vi phạm ràng buộc 48 CHƯƠNG IV: CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG XẾP THỜI KHÓA BIỂU CHO TRƯỜNG ĐẠI HỌC CHU VĂN AN .51 4.1 Các chức hệ thống .51 4.1.1 Nhập thông tin giảng viên 51 4.1.2 Nhập danh sách lớp học phần 51 4.1.3 Nhập danh sách môn học .52 4.1.4 Nhập danh sách phòng học 53 4.1.5 Chức xếp phiếu giảng dạy 54 4.1.6 Cá thể khởi tạo từ phiếu phân công giảng dạy 56 4.2 Kết thử nghiệm hệ thống xếp thời khóa biểu 56 4.2.1 Kịch thử nghiệm 56 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 58 5.1 Kết luận 58 5.2 Hướng phát triển đề tài .58 TÀI LIỆU THAM KHẢO 59 DANH MỤC THUẬT NGỮ STT Từ viết tắt Ý nghĩa GA Giải thuật di truyền(Genetic Algorithm) NST Nhiễm sắc thể DANH MỤC HÌNH VẼ STT Hình Tên hình vẽ Hình: 2.1 Sơ đồ khối mô tả giải thuật di truyền tổng qt Hình: 3.1 Quy trình xếp thời khóa biểu trường Đại học Chu Văn An Hình: 3.2 Biểu diễn nhiễm sắc thể Hình: 3.3 Cấu trúc nhiễm sắc thể Hình: 3.4 Sơ đồ khởi tạo chỉnh quần thể Hình: 4.1 Giao diện nhập thông tin thời gian bận giảng viên Hình: 4.2 Giao diện nhập thơng tin lớp học phần Hình: 4.3 Giao diện nhập thơng tin mơn học Hình: 4.4 Giao diện nhập thơng tin phịng học 10 Hình: 4.5 Giao diện nhập thơng tin phiếu giảng dạy 11 Hình: 4.6 Giao diện phương án xếp thời khóa biểu CHƯƠNG I: ĐẶT VẤN ĐỀ 1.1 Lý chọn đề tài Trong sống, ta thường gặp tốn liên quan đến 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, xếp lịch thi đấu thể thao,… Đối với loại tốn cần phải tìm phương án xếp lịch thỏa mãn tất ràng buộc khai thác hiệu nguồn tài ngun có, giảm thời gian chi phí thực Bài tốn xếp thời khóa biểu trường học ví dụ Xếp thời khóa biểu trường Đại học phụ thuộc nhiều ràng buộc đặt toán ràng buộc đối tượng tham gia(giảng viên, sinh viên, lớp học), ràng buộc tài nguyên phục vụ giảng dạy(phòng học lý thuyết, phịng thực hành, phịng có máy chiếu, loa đài, …), ràng buộc thời gian(số tiết học, số lần học, số tiết lần,…), ràng buộc chuyên môn nhiều ràng buôc khác tùy thuộc vào trường Vấn đề đặt cần phải xây dựng thời khóa biểu thỏa mãn tối đa ràng buộc đồng thời khai thác hiệu nguồn tài nguyên phục vụ giảng dạy Bài toán xếp thời khóa biểu thuộc lớp tốn NP- đầy đủ khơng tìm lời giải tối ưu Đây tốn khơng có nhiều giải thuật đưa để giải giải thuật nhánh cận giải thuật leo đồi, giải thuật luyện thép, giải thuật tô mầu đồ thị, giải thuật xấp xỉ, giải thuật di truyền… Trong phạm vi luận văn này, quan tâm đến tìm hiểu giải thuật di truyền Phương pháp có nhiều đặc điểm trội khơng địi hỏi tri thức, tránh tối ưu cục bộ, thực tốt với tốn có khơng gian tìm kiếm lời giải lớn áp dụng cho nhiều loại toán tối ưu khác Trên giới nay, giải thuật di truyền kết hợp với tin học ứng dụng để giải toán tối ưu cách hiệu 1.2 Mục đích nội dung Mục đích luận văn tìm hiểu giải thuật di truyền (Genetic Algorithm - GA) áp dụng giải thuật vào giải toán xếp thời khóa biểu cho trường Đại học Chu Văn An theo hình thức đào tạo tín Để đạt mục tiêu trên, đề tài tập trung vào nhiệm vụ cụ thể sau: • Tìm hiểu giải thuật di truyền ứng dụng việc giải hiểu tốn tối ưu • Phân tích đặc điểm tốn xếp thời khóa biểu trường Đại học Chu Văn An theo học chế tín để từ đưa giải pháp hợp lý việc xây dựng phát triển hệ thống • Ứng dụng giải thuật di truyền vào tốn xếp thời khóa biểu hệ tín cho Đại học Chu Văn An • Phân tích đánh giá kết đạt thực hệ thống liệu thử nghiệm 1.3 Phương pháp nghiên cứu ý nghĩa thực tiễn • Phương pháp nghiên cứu lý thuyết - Tổng hợp tài liệu lý thuyết giải thuật di truyền - Biểu diễn tốn xếp thời khóa biểu cho trường Đại học Chu Văn An sử dụng mơ hình giải thuật di truyền - Nghiên cứu tài liệu, ngôn ngữ công nghệ liên quan • Phương pháp nghiên cứu thực nghiệm - Phân tích thiết kế hệ thống xếp thời khóa biểu theo quy trình xây dựng ứng dụng phần mềm - Xây dựng hệ thống xếp thời khóa biểu cho Đại học Chu Văn An sử dụng giải thuật di truyền - Thử nghiệm hệ thống đánh giá kết đạt dựa liệu thử liệu thực tế trường Đại học Chu Văn An Function ĐộThíchNghi_RBNL(Cathe) Begin For each nhóm: Begin For each ngày, tiết học: Begin C=0 {Khởi tạo biến đếm số lần đặt lịch nhóm} For each phịng: Begin Lop = Cathe[Phịng, ngày, tiết] If(lop∈ nhóm) then C= C+1 End If(C>1) Then Count = Count + (C-1) End End Return Count * HS_Phạt End 3.9.3 Tính độ thích nghi dựa vào ràng buộc trùng giảng viên Vi phạm ràng buộc trùng giảng viên xảy giảng viên phân công giảng dạy nhiều lớp thời điểm Function ĐộThíchNghi_TGGV(Cathe) Begin Count = {Biến đếm số lần vi phạm ràng buộc} For each GV: Begin For each ngày, tiết học: 45 Begin C=0 {Khởi tạo biến đếm số lần đặt lịch GV} For each phòng: Begin Lớp = Cathe[Phòng,ngày,tiết] If(Giảng_dạy(lớp) = GV ) Then C=C+1 End If (C>1) Then Count = Count + (C-1) End End Return Count * HS_Phạt End 3.9.4 Tính độ thích nghi dựa vào ràng buộc bận giảng viên Khi xếp thời khóa biểu giảng viên có tiết khơng thể lên lớp lý riêng bận sinh hoạt chun mơn Function ĐộThíchNghi_GBGV(Cathe) Begin Count = {Biến đếm số lần vi phạm ràng buộc} For each phòng: Begin For each ngày, tiết học: Begin Lớp = Cathe[Phòng, ngày, tiết] GV = Giảng_dạy(lớp) If (GV_bận_giờ(GV, ngày, tiết)) Then Count + 46 End End Return Count* HS_Phạt End 3.9.5 Tính độ thích nghi dựa vào ràng buộc sức chứa phòng Vi phạm sức chứa phòng xảy lớp xếp lịch học phịng có sức chứa nhỏ số lượng sinh viên lớp Function ĐộThíchNghi_RSCP(Cathe) Begin Count = {Biến đếm số lần vi phạm ràng buộc} For each phòng: Begin For each ngày, tiết học: Begin Lớp = Cathe[Phòng, ngày, tiết] If(Số_SV(lớp)>Số_Chỗ_Ngồi(Phòng)) Then Count = Count + End End Return Count * HS_Phạt End 3.9.6 Tính độ thích nghi dựa vào ràng buộc số tiết học tuần Để đảm bảo tiến độ, lớp học phần tổng số tiết tuần phải với quy định Function ĐộThíchNghi_RSTT(Cathe) (Cathe) 47 Begin Count = {Biểu diễn số lần vi phạm ràng buộc} For each lớp: Begin C = {Biến đếm số tiết tuần} For each phòng Begin For each ngày, tiết học: Begin If(lớp = Cathe[phòng, ngày, tiết]) Then C= C+1 End End Count = Count + Abs(Số tiết quy định - C) End Return Count * HS_Phạt End 3.9.7 Tính độ thích nghi dựa vào ràng buộc số tiết học lần Thông thường lần xếp lịch phải đảm bảo số tiết từ trở lên, ngoại trừ lớp học phần đặc thù đòi hỏi thời gian nhiều thực hành, thí nghiệm số tiết học lần nhiều 3.9.8 Tính độ thích nghi dựa vào ràng buộc loại phịng Tùy theo tính chất học phần mà lớp yêu cầu loại phòng khác lý thuyết, thực hành, thí nghiệm,… 3.9.9 Hệ số phạt loại vi phạm ràng buộc 48 Trong loại ràng buộc, loại ràng buộc có tính chất riêng Có loại dễ đạt có loại khó đạt Vì vậy, xem xét ràng buộc cách bình đẳng chắn hệ thống không xác định vi phạm cần xử lý trước vi phạm cần xử lý sau, điều dẫn đến việc khơng tìm phương án xếp thời khóa biểu thỏa mãn yêu cầu Nguyên tắc 1: Ràng buộc cần đạt trước đặt hệ số phạt cao, ràng buộc cần đạt dược sau đặt hệ số phạt thấp Nguyên tắc 2: Ràng buộc khó đạt đặt hệ số phạt cao, dễ đạt đặt hệ số phạt thấp Nguyên tắc 3: Ràng buộc mềm nên đặt hệ số phạt thấp so với ràng buộc cứng Vì ràng buộc mềm ràng buộc thêm, đạt tốt cịn khơng chấp nhận Hiện tại, tập trung vào kiểm tra ràng buộc cứng Với ràng buộc định nghĩa chiến lược kiểm tra trình bầy Cụ thể, ràng buộc kiểm tra: • Ràng buộc loại phịng khơng đáp ứng u cầu (Sức chứa phịng, khơng có dụng cụ, thiết bị cần thiết…), hệ số phạt • Giáo viên xếp hai lần thời điểm, hệ số phạt • Giáo viên khơng thể dậy vào thời gian (ràng buộc thời gian bận giáo viên), hệ số phạt • Có hai giảng đường thuộc nhóm lớp học thời điểm, hệ số phạt 49 • Thời lượng dậy lần khơng khơng đủ nhiều quy định hệ số phạt 50 CHƯƠNG IV: CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG XẾP THỜI KHÓA BIỂU CHO TRƯỜNG ĐẠI HỌC CHU VĂN AN 4.1 Các chức hệ thống 4.1.1 Nhập thông tin giảng viên Chức cho phép người sử dụng để: - Nhập thông tin cá nhân giảng viên ghi nhằm gợi nhớ thơng tin giảng viên cho người sử dụng dễ dàng - Nhập thời gian bận giảng v iên - Sửa xóa thơng tin giảng viên - Cấu hình lại thời gian bận giảng viên Hình 4.1: Giao diện chức nhập thông tin giảng viên 4.1.2 Nhập danh sách lớp học phần 51 Chức cho phép người sử dụng để : - Nhập thông tin lớp học phần - Sửa, xóa thơng tin lớp học phần Hình 4.2: Giao diện nhập thơng tin lớp học phần 4.1.3 Nhập danh sách môn học Chức cho phép người sử dụng để : - Nhập thơng tin mơn học - Sửa, xóa thơng tin mơn học 52 Hình 4.3: Giao diện nhập thơng tin mơn học 4.1.4 Nhập danh sách phịng học Chức cho phép người sử dụng để : - Nhập thơng tin phịng học - Sửa, xóa thơng tin phịng học - Sửa chữa cấu hình loại phịng học để nâng cao tính khả thi thời khóa biểu ràng buộc loại phịng học phù hợp cho mơn học 53 Hình 4.4: Giao diện nhập thơng tin phịng học 4.1.5 Chức xếp phiếu giảng dạy Để website xếp thời khóa biểu hiệu trình bầy phát biểu tốn Website cho phép người sử dụng cấu hình phiếu giảng dậy Một phiếu giảng dậy bao gồm: - Mã phiếu giảng dậy - Thông tin giảng viên - Thông tin môn học - Thông tin lớp học - Số tiết dậy Dựa vào giải thuật xếp phiếu vào thời gian cụ thể để đảm bảo tính khả thi thời khóa biểu 54 Hình 4.5: Giao diện nhập thơng tin phiếu giảng dạy 55 4.1.6 Cá thể khởi tạo từ phiếu phân công giảng dạy Từ thông tin giáo viên, phịng học, lớp học, mơn học… thuật tốn khởi tạo chỉnh sửa quần thể ta sinh cá thể, cá thể tương đương với phương án xếp thời khóa biểu Hình 4.6: Một phương án xếp thời khóa biểu 4.2 Kết thử nghiệm hệ thống xếp thời khóa biểu 4.2.1 Kịch thử nghiệm 4.2.1.1 Dữ liệu đầu vào Dữ liệu thử nghiệm đầu vào gồm có giảng viên, nhóm lớp học, 15 phiếu giảng dậy (tổng số tiết cần xếp 47 tiết học), số phòng học (trong có phịng máy tính) 4.2.1.2 Các ràng buộc Các ràng buộc sử dụng đầy đủ ràng buộc trình bầy trên(gồm ràng buộc phòng học, sức chứa, trùng giảng viên, bận giảng viên…) 4.2.1.3 Các tham số 56 Trong trình chạy thử nghiệm chương trình xếp thời khóa biểu chúng tơi xác định tham số kết ổn định sau: Kích thước quần thể 24, xác xuất lai ghép 0.5, xác xuất đột biến 0.04 57 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 5.1 Kết luận Qua q trình thực luận văn, tơi có kiến thức đầy đủ giải thuật di truyền, biết cách vận dụng giải thuật di truyền vào việc giải số toán tối ưu, đặc biệt tốn tối ưu có khơng gian tìm kiếm lớn - Luận văn đề xuất phương pháp thuật giải di truyền vào tốn xếp thời khóa biểu - Phát biểu toán theo hướng tiếp cận thuật giải di truyền - Tìm hiểu cài đặt thuật toán, xây dựng hàm đánh giá cho ràng buộc phải thỏa mãn 5.2 Hướng phát triển đề tài Hiện tơi phát triển chương trình ứng dụng hoàn chỉnh dựa vào kết nghiên cứu để xây dựng hệ thống hồn chỉnh ứng dụng tốt cho Đại học Chu Văn An 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ảng viên, sinh viên nhóm sinh viên Dữ liệu thời khóa biểu xuất sang kiểu liệu Micrisoft Excel, Mirosoft Word có nhiều phương án tra cứu web cho Sinh viên giáo viên Tiếp tục hồn thiện hàm đánh giá độ thích nghi để tùy theo thời điểm trường tự điều chỉnh hệ số phạt cho phù hợp 58 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 Nhà xuất giáo dục 2001 [2] Đinh Mạnh Tường Trí tuệ nhân tạo Nhà xuất khoa học kỹ thuật 2002 [3] David A Coley An Introduction to Genetic Algorithms for Scientists and Engineers [4] Đ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) [5] R Feldman and M.C Golumbic Optimization algorithms for student scheduling via constraint satisfiability, The Computer Journal1990 [6]Marco Chiarandini, An Effective Hybrid Algorithm for University Course Timetabling 59 ... truyền 23 2.2.8 Ứng dụng giải thuật di truyền 24 CHƯƠNG III - ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN XẾP THỜI KHÓA BIỂU 25 3.1 Tìm hiểu chung toán lập lịch 25... kể thời gian công sức việc xếp thời khóa biểu 1.4 Bố cục luận văn Phần luận văn trình bày tổ chức sau: Chương 2: Thuật toán di truyền Chương 3: Ứng dụng thuật toán di truyền vào tốn xếp thời khóa. .. dạy Bài toán xếp thời khóa biểu thuộc lớp tốn NP- đầy đủ khơng tìm lời giải tối ưu Đây tốn khơng có nhiều giải thuật đưa để giải giải thuật nhánh cận giải thuật leo đồi, giải thuật luyện thép, giải