Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
1,93 MB
Nội dung
Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒNG VĂN TUẤN GIẢI THUẬT DI TRUYỀN VÀ BÀI TỐN LẬP THỜI KHĨA BIỂU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN – 2014 i Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒNG VĂN TUẤN GIẢI THUẬT DI TRUYỀN VÀ BÀI TỐN LẬP THỜI KHĨA BIỂU Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Ngƣời hƣớng dẫn khoa học: GS.TS VŨ ĐỨC THI THÁI NGUYÊN – 2014 ii Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Luận văn thạc sỹ nghiên cứu thực hướng dẫn GS.TS Vũ Đức Thi Để hoàn thành luận văn này, tài liệu liệt kê, cam đoan không chép cơng trình thiết kế tốt nghiệp người khác Thái Nguyên, ngày 22 tháng 06 năm 2014 HỌC VIÊN Đồng Văn Tuấn iii Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Trước hết, vô biết ơn sâu sắc đến GS.TS: Vũ Đức Thi, người thầy trực tiếp dành nhiều thời gian tận tình hướng dẫn, cung cấp thông tin, tài liệu quý báu giúp đỡ hồn thành luận văn Sau tơi xin bày tỏ lòng biết ơn đến người thân, bạn bè, đồng nghiệp quan, người cổ vũ động viên tơi hồn thành luận văn tốt nghiệp Thái Nguyên, ngày 22 tháng 06 năm 2014 HỌC VIÊN Đồng Văn Tuấn iv Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI CAM ĐOAN iii LỜI CẢM ƠN iv MỤC LỤC v DANH MỤC CÁC CHỮ VIẾT TẮT vii DANH MỤC CÁC BẢNG viii DANH MỤC CÁC HÌNH ix MỞ ĐẦU CHƢƠNG I – TỔNG QUAN BÀI TOÁN LẬP LỊCH 1.1 Giới thiệu toán lập lịch 1.1.1 Tìm hiểu chung 1.1.2 Các thuộc tính toán lập lịch 1.1.3 Một số loại toán lập lịch 1.2 Bài tốn thời khóa biểu 1.2.1 Giới thiệu toán 1.2.2 Dữ liệu toán 1.2.3 Ràng buộc toán 11 CHƢƠNG II - GIẢI THUẬT DI TRUYỀN 12 2.1 Tổng quan giải thuật di truyền 12 2.1.1 Giới thiệu .12 2.1.2 Sự khác biệt giải thuật di truyền giải thuật khác 14 2.1.3 Tính chất giải thuật di truyền 15 2.2 Các thành phần giải thuật di truyền 16 2.2.1 Biểu diễn nhiễm sắc thể 16 2.2.2 Khởi tạo quần thể ban đầu 19 2.2.3 Đánh giá cá thể 20 2.2.4 Phương pháp chọn lọc 20 2.2.5 Phương pháp lai ghép 23 2.2.6 Toán tử đột biến 29 2.2.7 Điều kiện dừng giải thuật 30 v Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 2.2.8 Các tham số giải thuật di truyền 30 2.3 Ví dụ minh họa 31 2.3.1 Biểu diễn nhiễm sắc thể 32 2.3.2 Hàm thích nghi 33 2.3.3 Khởi tạo quần thể 33 2.3.4 Chọn lọc cá thể 35 2.3.5 Phương pháp lai ghép 36 2.3.6 Phương pháp đột biến 38 2.3.7 Các tham số sử dụng ví dụ điều kiện dừng 40 CHƢƠNG III - ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TỐN LẬP THỜI KHĨA BIỂU 41 3.1 Bài tốn thời khóa biểu theo học chế tín 41 3.1.1 Định nghĩa toán 42 3.1.2 Các ràng buộc toán 42 3.2 Phát biểu toán theo hƣớng tiếp cận giải thuật di truyền 43 3.3 Áp dụng giải thuật di truyền vào tốn thời khóa biểu 44 3.3.1 Biểu diễn nhiễm sắc thể 44 3.3.2 Khởi tạo quần thể 45 3.3.3 Lai ghép .46 3.3.4 Đột biến .49 3.3.5 Hàm đánh giá 52 3.4 Mô tả liệu đầu vào 59 3.5 Đánh giá kết thực 61 KẾT LUẬN 67 TÀI LIỆU THAM KHẢO 68 vi Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC CHỮ VIẾT TẮT BPX Lai ghép dựa vị trí GA Giải thuật di truyền LOX Lai ghép thứ tự tuyến tính NST Nhiễm sắc thể OX Lai ghép có trật tự PMX Lai ghép ánh xạ phần TSP Bài toán người du lịch vii Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 2.1 Các nhiễm sắc thể giá trị thích nghi 21 2.2 Ví dụ quần thể chọn 22 2.3 Chọn lọc nhiễm sắc thể (cá thể) 35 2.4 Kết chọn nhiễm sắc thể thực lai ghép 37 2.5 Vị trí gen bị đột biến 38 2.6 Các vị trí gen bị đột biến nhiễm sắc thể 38 3.1 Dữ liệu thời khoá biểu đầu vào nhỏ viii 61 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Quy trình quản lý đào tạo trường Đại học Cao đẳng 2.1 Sơ đồ khối mô tả giải thuật di truyền tổng quát 16 2.2 Ví dụ bánh xe trọng số 22 2.3 Ví dụ phương pháp lai ghép có chu trình 28 2.4 Đồ thị hàm số 32 3.1 Biểu diễn vòng lặp giải thuật di truyền toán thời khoá biểu 43 3.2 Biểu diễn nhiễm sắc thể (cá thể) toán 44 3.3 Kết ví dụ sau thực lai ghép 49 3.4 Ví dụ cá thể bị đột biến 51 3.5 Ví dụ vi phạm ràng buộc C2 54 3.6 Ví dụ vi phạm ràng buộc C5 58 3.7 Kết sau 200 cá thể 62 3.8 Kết sau 100 cá thể 62 3.9 Kết sau 150 cá thể 63 3.10 Ví dụ thời khố biểu 63 3.11 Chức thiết lập chương trình đào tạo 64 3.12 Chức thiết lập thơng tin phịng học 65 3.13 Chức thiết lập yêu cầu giáo viên ngày nghỉ 65 3.14 Chức lập thời khoá biểu 66 ix Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ MỞ ĐẦU Lý chọn đề tài Trong xu hướng phát triển xã hội ngày nay, có nhiều ngành khoa học đời Trong có số ngành khoa học đời sở phân lập từ ngành khoa học cổ điển, số ngành tích hợp ngành khoa học khác Giải thuật di truyền (GA) ngành khoa học đời từ tích hợp sinh học máy tính Giải thuật di truyền lấy ý tưởng từ q trình tiến hố tự nhiên, xuất phát từ lớp lời giải tiềm ban đầu, giải thuật di truyền tiến hành tìm kiếm khơng gian lời giải cách xây dựng lớp lời giải tương đối tốt, tốt Quá trình xây dựng lớp lời giải tiến hành dựa việc chọn lọc, lai ghép, đột biến từ lớp lời giải ban đầu Quần thể lời giải trải qua q trình tiến hố: hệ lại tái sinh lời giải tương đối tốt hệ lời giải ban đầu, lời giải “xấu” chết Bài tốn lập lịch định nghĩa tốn tìm kiếm chuỗi tối ưu để thực tập hoạt động chịu tác động tập ràng buộc cần phải thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sử dụng cá thể, máy móc tối thiểu thời gian địi hỏi để hồn thành tồn q trình nhằm xếp lịch tối ưu Vì tốn lập lịch vấn đề khó để giải Hiện có nhiều phương pháp tiếp cận để giải tốn này, như: trí tuệ nhân tạo, hệ chun gia, mạng Nơron, lập trình tính tốn, lập trình động, tìm kiếm nhánh đường biên, kỹ thuật mơ phỏng, tìm kiếm Tabu phương pháp nút cổ chai,… Nhưng đề tài tìm hiểu tiếp cận giải thuật di truyền cho lớp toán lập lịch cụ thể tốn lập thời khóa biểu học theo hệ tín cho trường đại học Số hóa Trung tâm Học liệu – Đại học Thái Nguyên T1 T12 T19 http://www.lrc-tnu.edu.vn/ T30 T45 P G1,M1,L1 G3,M2,L2 G3,M2,L2 G1,M1 ,L1 P G3,M2,L2 G2,M3,L3 G4 ,M4,L4 P G2,M3,L3 G4,M4,L4 G2,M3,L3 P G3,M4,L4 G3,M4,L4 Hình 3.5 Ví dụ vi phạm ràng buộc C2 Ví dụ hình 3.5, có hai cặp vi phạm ràng buộc C2 (T1, P2) (T1, P4) (T19, P1) (T19, P4) giáo viên G3 Như giá trị phạt thời khoá biểu Ràng buộc (C3), phịng học có sức chứa đặc điểm riêng phịng, xếp lớp học vào phòng cho đảm bảo chổ ngồi cho sinh viên Đối với yêu cầu, thời khố biểu phải thoả mãn sức chứa, phải kiểm tra thoả mãn ràng buộc Các bước thực kiểm tra sau: Bước 1: Với giá trị TKB[i,j], {i=1 m, j=1 h} Xác định lớp, lop TKB[i,j], lop=nhóm sinh viên Lấy khả chứa phòng học thứ i So sánh sĩ số lớp học phần (nhóm sinh viên) khả chứa phòng học thứ i Nếu sĩ số lớp lop học phần (nhóm sinh viên) > sức chứa phịng học thứ i tăng giá trị phạt Bước 2: Lặp bước 1, tất giá trị xét Bước 3: Trả kết quả, dừng thuật toán Thuật toán giả mã sau: Gọi tập S={s1, s2, s3, …, sm} tập biểu diễn khả chứa phòng (1 m) tập phòng {P}, giá trị si đại diện sức chứa cho phòng thứ i Và gọi hàm siso(l) cho biết sĩ số sinh viên lớp l 54 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Function Tính giá trị phạt ràng buộc C3 Input: Cá thể (TKB) Output: Giá trị phạt (số nguyên) Begin C3=0 For each TKB[i,j] lop //i=1 m, j=1 h TKB[i,j] // si {S} If (si < siso(lop)) then //Tăng giá trị phạt C = C3 + Endfor Return C3 //Trả số lượng ràng buộc bị vi phạm End Ràng buộc (C4), chương trình tương ứng với môn học môn quy định số tín chỉ, tín phân bố số tiết học tuần, thời khoá biểu phải xếp đầy đủ tiết học môn học theo tuần Yêu cầu xếp tiết học đảm bảo đủ số tiết cho môn học Các bước thực kiểm tra số lượng tiết học tuần môn thực sau: Gọi mảng số nguyên dem_tiet[] chứa số tiết học xếp lịch tương ứng với môn, giá trị mảng đại diện cho mơn học, ví dụ dem_tiet[1] đại diện cho môn học m1, dem_tiet[2] cho môn m2, … m1 ,m2 {M} Bước 1: Với giá trị TKB[i,j], {i=1 m, j=1 h} Xác định môn học, mk TKB[i,j], Đếm số lượng tiết học tương ứng môn(mk), lưu mảng dem_tiet[mk]= dem_tiet[mk]+1 Lặp lại bước 1, giá trị điều xét Bước 2: Với môn mi {M} ,i=1 t So sánh, số tiết quy định học môn mi > dem_tiet[mi] số tiết xếp lịch tăng giá trị phạt 55 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Lặp bước 2, môn điều xét Bước 3: Trả kết quả, dừng thuật toán Thuật toán giả mã sau: Gọi F={f1, f2, f3, …, ft} tập chứa số tiết học quy định môn học, giá trị fi đại diện cho môn học mi Function Tính giá trị phạt ràng buộc C4 Input: Cá thể (TKB) Output: Giá trị phạt (số nguyên) Begin C4=0 Khởi tạo mảng, dem_tiet[i]=0, // mi {M} ,( i t ) For each TKB[i,j] //i=1 m, j=1 h, mk TKB[i,j] dem_tiet[k]= dem_tiet[k]+1 Endfor For each mi {M} // i=1 t, t: số môn học if (dem_tiet[i]