BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHÓA BIỂU - Full 10 điểm

71 0 0
BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHÓA BIỂU - Full 10 điểm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN -----  ----- NGUYỄN THỊ THÚY KIỀU BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHÓA BIỂU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 04 năm 2017 LỜI CẢM ƠN Trên thực tế không có thành công nào mà không gắn liền với sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp từ người khác Thật vậy! Trong suốt thời gian thực hiện đề tài khóa luận của mình, tôi luôn nhận được sự quan tâm hướng dẫn, chỉ bảo tận tình từ Thầy giáo, Thạc sĩ Huỳnh Tấn Khải để có thể hoàn thành tốt luận văn này Tôi xin trân trọng gửi đến Thầy một lời cảm ơn sâu sắc! Tôi cũng xin chân thành cảm ơn quý Thầy, Cô khoa Công nghệ thông tin, trường Đại học Quảng Nam đã tận tình truyền đạt kiến thức cho tôi trong suốt bốn năm học tại trường Với vốn kiến thức được tiếp thu trong quá trình học tập không chỉ là nền tảng cho quá trình nghiên cứu đề tài này mà còn là hành trang quý báu để tôi bước vào đời một cách vững chắc và tự tin Tôi cũng thầm biết ơn sự ủng hộ của gia đình, bạn bè và những người thân yêu luôn là chỗ dựa tinh thần vững chắc cho tôi Cuối cùng, tôi xin kính chúc quý Thầy, Cô dồi dào sức khỏe và thành công trong sự nghiệp trồng người cao quý Trong quá trình thực hiện đề tài, khó tránh khỏi sai sót, rất mong quý Thầy, Cô bỏ qua Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, rất mong nhận được ý kiến đóng góp từ quý Thầy, Cô để tôi có thể học hỏi thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn bài báo cáo sắp tới Xin chân thành cảm ơn! Qu ả ng Nam, ngày 13 tháng 04 n ă m 2017 Sinh viên thực hiện Nguyễn Thị Thúy Kiều UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ----  ----- KHÓA LUẬN TỐT NGHIỆP Tên đề tài: BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHÓA BIỂU Sinh viên thực hiện: NGUYỄN THỊ THÙY KIỀU MSSV: 2113021017 CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn ThS HUỲNH TẤN KHẢI Quảng Nam, ngày 14 tháng 04 năm 2017 MỤC LỤC Phần 1 MỞ ĐẦU 1 1 1 Lí do chọn đề tài 1 1 2 Mục tiêu của đề tài 2 1 3 Đối tượng và phạm vi nghiên cứu 2 1 4 Phương pháp nghiên cứu 2 1 5 Đóng góp của đề tài 2 1 6 Cấu trúc của đề tài 3 Phần 2 NỘI DUNG NGHIÊN CỨU 4 Chương 1 CƠ SỞ LÝ THUYẾT 4 1 1 Giới thiệu bài toán tối ưu tổng quát và phân loại 4 1 1 1 Giới thiệu bài toán tối ưu tổng quát 4 1 1 2 Phân loại các bài toán tối ưu 5 1 2 Ứng dụng của lý thuyết tối ưu 7 1 2 1 Phương pháp mô hình hóa 7 1 2 2 Một số ứng dụng của lý thuyết tối ưu 7 1 3 Các phương pháp giải bài toán tối ưu đa mục tiêu 10 1 3 1 Phương pháp ràng buộc (Constraint method) 10 1 3 2 Phương pháp tổng trọng số 11 1 3 3 Phương pháp sử dụng giải thuật di truyền (Genetic Alogithm – GA) 13 1 4 Kết chương 22 Chương 2 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN 23 VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU 23 2 1 Tìm hiểu chung về bài toán lập thời khóa biểu 23 2 1 1 Mô tả bài toán lập thời khóa biểu 23 2 1 2 Các đối tượng của thời khóa biểu 24 2 1 3 Quy trình lập thời khóa biểu 25 2 2 Ứng dụng giải thuật di truyền vào bài toán lập thời khóa biểu 25 2 2 1 Giai đoạn 1: Xếp lịch học các lớp 26 2 2 2 Giai đoạn 2: Xếp lịch học cho toàn bộ cơ sở 33 2 3 Kết chương 36 Chương 3: XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHÓA BIỂU 37 3 1 Phân tích chức năng của hệ thống 37 3 1 1 Biểu đồ phân cấp chức năng (FDD) 37 3 1 2 Mô tả chi tiết chức năng 37 3 1 3 Danh sách các tác nhân 39 3 1 4 Biểu đồ ca sử dụng (USECASE - UC) 40 3 2 Xây dựng chức năng của hệ thống 41 3 2 1 Thu thập thông tin tài nguyên 41 3 2 2 Xây dựng chức năng 43 3 3 Một số giao diện hệ thống 46 3 3 1 Giao diện chính của hệ thống 46 3 3 2 Giao diện giới thiệu hệ thống 47 3 3 3 Giao diện các ràng buộc Giáo viên 48 3 3 4 Giao diện các ràng buộc Lớp học 48 3 3 5 Giao diện các ràng buộc chung về Khóa học 49 3 3 6 Giao diện in danh sách giáo viên 50 3 3 7 Giao diện trang in thời khóa biểu cho giáo viên 50 3 3 8 Giao diện thiết lập các ràng buộc cho Giáo viên 52 3 3 9 Giao diện thiết lập thông tin 52 3 3 10 Giao diện thiết lập tiết dạy được/ không được phép xếp thời khóa biểu 53 3 3 11 Giao diện xếp thời khóa biểu tự động 54 3 3 12 Giao diện trang in thời khóa biểu chính 54 Phần 3 KẾT LUẬN VÀ KIẾN NGHỊ 56 1 Kết luận 56 2 Kiến nghị 56 Phần 4 TÀI LIỆU THAM KHẢO 57 DANH MỤC HÌNH ẢNH Hình 1 1 - Các giả thiết của bài toán 10 Hình 1 2 - Kết quả (giải bằng thuật toán PRIM) 10 Hình 1 3 - Sơ đồ khối của giải thuật di truyền 17 Hình 1 4 - Toán tử Chéo hóa áp dụng cho chuỗi số nguyên hoán vị 18 Hình 1 5 - Toán tử chéo hóa áp dụng cho chuỗi nhị phân 18 Hình 1 6 - Toán tử Chéo hóa áp dụng cho chuỗi hoán vị 18 Hình 1 7 - Toán tử chéo hóa áp dụng cho chuỗi hoán vị 19 Hình 1 8 - Toán tử chéo hóa áp dụng cho chuỗi hoán vị 19 Hình 1 9 - Đột biến 2 gen gần nhau 20 Hình 1 10 - Đột biến 2 gen cách xa nhau 20 Hình 1 11 - Đột biến 3 gen cách xa nhau 20 Hình 1 12 - Đột biến đảo ngược chuỗi con 21 Hình 1 13 - Đột biến bằng cách dịch chuyển 21 Hình 2 1 - Quy trình lập thời khóa biểu 25 Hình 2 2 - Mô hình cá thể trong lịch lớp học 26 Hình 2 3 - Phân bổ các nhiễm sắc thể môn học 28 Hình 2 4 - Bảng phân bố các môn học trên lịch học 29 Hình 2 5 - Lai ghép tạo ra 2 cá thể con từ 2 nhiễm sắc thể cha – mẹ 31 Hình 2 6 - Xác suất xảy ra đối với phép đột biến 33 Hình 2 7 - Mô hình cá thể lịch cơ sở 34 Hình 3 1 - Biểu đồ phân cấp chức năng hệ thống lập thời khóa biểu 37 Hình 3 2 - Ký hiệu của ca sử dụng 41 Hình 3 3 - Biểu đồ ca sử dụng của hệ thống Lập thời khóa biểu 41 Hình 3 4 - Giao diện chính của hệ thống 47 Hình 3 5 - Giao diện giới thiệu hệ thống 48 Hình 3 6 - Giao diện ràng buộc chung cho Giáo viên 48 Hình 3 7 - Giao diện các ràng buộc chung cho Lớp học 49 Hình 3 8 - Giao diện các ràng buộc chung về Khóa học 50 Hình 3 9 - Giao diện in danh sách giáo viên 50 Hình 3 10 - Giao diện trang in thời khóa biểu cho giáo viên 51 Hình 3 11 - Giao diện thiết lập các ràng buộc cho Giáo viên 52 Hình 3 12 - Giao diện thiết lập thông tin 53 Hình 3 13 - Giao diện thiết lập tiết dạy được/ không được phép xếp thời khóa biểu 53 Hình 3 14 - Giao diện xếp TKB tự động 54 Hình 3 15 - Giao diện trang in thời khóa biểu chính 55 [Document title] GVHD: Th S Huỳnh Tấn Khải 1 Phần 1 MỞ ĐẦU 1 1 Lí do chọn đề tài Trong cuộc sống, ta thường bắt gặp các bài toán liên quan đến xếp lịch như xếp lịch công tác, xếp lịch giảng dạy, xếp lịch học cho học sinh - sinh viên, xếp lịch biểu cho các ca trực ở một bệnh viện, xếp lịch làm việc, xếp lịch vận hành máy móc,… Đối với loại bài toán này cần phải tìm ra một phương án xếp lịch thỏa mãn tất cả các ràng buộc cũng như khai thác hiệu quả các nguồn tài nguyên hiện có, giảm thời gian và chi phí thực hiện Bài toán xếp thời khóa biểu trong các trường học là một trong những bài toán như vậy Có rất nhiều các ràng buộc được đặt ra trong bài toán này như ràng buộc về đối tượng tham gia (giảng viên, lớp học, sinh viên), ràng buộc về tài nguyên phục vụ giảng dạy (phòng học lý thuyết, phòng thực hành,…), ràng buộc về thời gian (số tiết học, số lần học, số tiết mỗi lần học,…), ràng buộc về chuyên môn và rất nhiều các ràng buộc khác tùy thuộc vào từng trường Vấn đề đặt ra là cần xây dựng một thời khóa biểu thỏa mãn tất cả các ràng buộc trên đồng thời khai thác hiệu quả các nguồn tài nguyên phục vụ giảng dạy Thời khóa biểu của trường học là kế hoạch giảng dạy của giáo viên và học tập của học sinh - sinh viên Một bảng thời khóa biểu hợp lý giúp giáo viên thuận tiện khi lên lớp và người học thoải mái khi đăng ký môn học học tập Bài toán xếp thời khóa biểu là một bài toán không mới và đã có nhiều giải thuật được đưa ra để giải quyết như 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ỉ,… Tuy nhiên các giải thuật này thường không có tính tổng quát và chỉ áp dụng hiệu quả đối với các trường học có quy mô nhỏ, ít ràng buộc về mặt dữ liệu Vì vậy, việc đòi hỏi có một giải thuật chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn Ở Việt Nam hiện nay, các trường đại học đang dần chuyển sang hình thức đào tạo tín chỉ Mặc dầu hình thức đào tạo này có nhiều ưu điểm hơn so với đào tạo niên chế tuy nhiên việc xếp thời khóa biểu vẫn là một gánh nặng thực sự cho các trường, đặc biệt là các trường có quy mô đào tạo lớn Vả lại trên thị trường cũng chưa có sản phẩm phần mềm nào giải quyết hiệu quả bài toán trên Trong những năm gần đây, phương pháp tiếp cận di truyền đã thu hút rất nhiều sự chú ý trong các lĩnh vực nghiên cứu khác nhau trong đó có khoa học máy tính Phương pháp này có nhiều đặc điểm nổi trội như không đòi hỏi tri thức, tránh tối ưu cục bộ, thực hiện tốt với các bài toán có không gian lời giải lớn và có thể áp dụng cho [Document title] GVHD: Th S Huỳnh Tấn Khải 2 nhiều loại bài toán tối ưu khác nhau Trên thế giới, giải thuật di truyền kết hợp với tin học được ứng dụng để giải quyết những bài toán tối ưu một cách rất hiệu quả Vì vậy, việc nghiên cứu và ứng dụng giải thuật di truyền (Genetic Algorithm - GA) để giải quyết hiệu quả bài toán xếp thời khóa biểu nói trên là việc làm hết sức cần thiết Xuất phát từ những thực tế trên đây, tôi đã chọn đề tài “ Bài toán t ố i ư u đ a m ụ c tiêu và ứ ng d ụ ng xây d ự ng ch ươ ng trình l ậ p th ờ i khóa bi ể u ” cho bài khóa luận tốt nghiệp của mình; với mong muốn giúp mọi người có một cái nhìn toàn diện hơn về giải thuật GA cũng như những ứng dụng đa dạng của nó, đồng thời giúp người dùng có thêm một lựa chọn nữa trong việc tìm kiếm phần mềm hỗ trợ xây dựng lịch học, thời khóa biểu 1 2 Mục tiêu của đề tài Đề tài tập trung nghiên cứu và ứng dụng giải thuật di truyền vào bài toán xếp thời khóa biểu nhằm đưa ra phương án xếp thời khóa biểu thỏa mãn tất cả các ràng buộc đặt ra, đồng thời khai thác hiệu quả các nguồn lực đào tạo của nhà trường với thời gian ngắn nhất có thể 1 3 Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: Nghiên cứu các đặc điểm, đặc trưng của giải thuật di truyền, các thành phần cơ bản của giải thuật di truyền như khởi tạo quần thể ban đầu, đánh giá độ thích nghi của cá thể, các toán tử di truyền (chọn lọc, lai ghép, đột biến), điều kiện dừng - Phạm vi nghiên cứu: Ứng dụng giải thuật di truyền vào bài toán xếp thời khóa biểu cho trường học các cấp với các ràng buộc và những yêu cầu cơ bản đặt trước 1 4 Phương pháp nghiên cứu  Phương pháp nghiên cứu lý thuyết: - Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan - Tổng hợp các tài liệu lý thuyết về giải thuật di truyền - Thu thập thông tin, nghiên cứu thực trạng - Tham khảo sách, báo và các nguồn tài liệu từ Internet - Tham khảo ý kiến từ giảng viên hướng dẫn đề tài  Phương pháp nghiên cứu thực nghiệm: - Phân tích và 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 sử dụng giải thuật di truyền - Thử nghiệm hệ thống và đánh giá kết quả đạt được dựa trên bộ dữ liệu thử nghiệm ở một trường học 1 5 Đóng góp của đề tài [Document title] GVHD: Th S Huỳnh Tấn Khải 3 - Cung cấp một nền tảng ứng dụng bài toán tối ưu hóa đa mục tiêu Có thể nói đây là một ứng dụng thiết thực và có tính ứng dụng cao Ứng dụng của nó sẽ làm phong phú thêm cho kho ứng dụng lập thời khóa biểu, giúp người dùng có thêm nhiều lựa chọn và những trải nghiệm tốt nhất - Phần mềm này sẽ giúp cho người dùng lập thời khóa biểu một cách nhanh chóng và hiệu quả - Với đề tài này tôi mong muốn cung cấp một tài liệu tham khảo cho các bạn sinh viên trong khoa cũng như ngoài khoa khi tiếp cận và tìm hiểu về lĩnh vực nghiên cứu ứng dụng của bài toán tối ưu hóa đa mục tiêu và nhất là lĩnh vực mà tôi đang nghiên cứu 1 6 Cấu trúc của đề tài Cấu trúc của bài luận văn này bao gồm các phần: Lời cảm ơn, Mục lục, Phần mở đầu, Phần nội dung nghiên cứu, Phần kết luận và Phần tái liệu tham khảo Trong đó phần Nội dung nghiên cứu sẽ gồm các nội dung chính như sau: Chương 1: Cơ sở lý thuyết Chương này sẽ nghiên cứu trình bày các nội dung về cơ sở lý thuyết làm nền tảng cho các phần nghiên cứu tiếp theo của đề tài Chương 2: Ứng dụng của giải thuật di truyền vào bài toán lập thời khóa biểu Trong chương này chủ yếu tìm hiểu sâu sắc hơn về lý thuyết và thuật toán của giải thuật di truyền, sau đó phân tích ứng dụng của giải thuật đi truyền vào bài toán lập thời khóa biểu Chương 3: Xây dựng chương trình lập thời khóa biểu Chương cuối cùng trong phần Nội dung nghiên cứu này sẽ đi phân tích và xây dựng chức năng của hệ thống lập thời khóa biểu đồng thời giới thiệu một số giao diện chính của chương trình [Document title] GVHD: Th S Huỳnh Tấn Khải 4 Phần 2 NỘI DUNG NGHIÊN CỨU Chương 1 CƠ SỞ LÝ THUYẾT 1 1 Giới thiệu bài toán tối ưu tổng quát và phân loại 1 1 1 Giới thiệu bài toán tối ưu tổng quát a) Giới thiệu Lý thuyết tối ưu là một trong những lĩnh vực kinh điển của toán học có ảnh hưởng nhiều đến lĩnh vực kinh tế xã hội và khoa học công nghệ Phương án tối ưu là phương án khả thi và tốt nhất, tức là phương án làm cho hàm mục tiêu đạt kết quả nhỏ nhất ( min ) hoặc lớn nhất ( max ) và phải thỏa mãn các điều kiện, yêu cầu của bài toán (gọi là thỏa mãn các điều kiện ràng buộc) Trong mô hình toán học, mục tiêu của bài toán được biểu diễn bởi hàm: f ( x ) → min (hoặc f ( x ) → max) (1 1) với x là một biến số rời rạc hoặc một biến kiểu vector x = ( x 1 , x 2 ,…, x n ) Xét một cách tổng quát, chúng ta xem biến x là một biến vector, trường hợp x là biến số rời rạc tương ứng với vector chỉ có một thành phần Biến x tổng quát có dạng x = ( x 1 , x 2 ,…, x n ) thường có yêu cầu phải thỏa mãn một số điều kiện nào đó Tập hợp các điều kiện của các biến thì được gọi là điều kiện ràng buộc và được biểu diễn bởi miền D (miền ràng buộc): x ∈ D (1 2) Yêu cầu tổng quát của bài toán tối ưu là tìm bộ giá trị của x để thỏa mãn điều kiện ràng buộc (1 2) và làm cực tiểu/ cực đại hàm mục tiêu (1 1) x * (một bộ các giá trị cụ thể của ( x 1 , x 2 , … , x n )) thỏa mãn điều kiện (1 1) và (1 2) gọi là phương án tối ưu Nếu x chỉ thỏa mãn điều kiện (1 2) thì ta gọi x là phương án chấp nhận được hay là phương án b) Các ví dụ minh họa Ví dụ 1 1: Tìm x sao cho: f ( x ) = x 3 – 3 x +1 → max (1 3) với: x ∈ D = [-2,2; 1,8] (1 4) Bài gi ả i: ∈ ݔ∀ [-2,2; 1,8] là một phương án chấp nhận được ⟺ -2,2 ≤ x ≤ 1,8 Bài toán trên tương đương với bài toán tìm giá trị lớn nhất (GTLN) của hàm f ( x ) khi -2,2 ≤ x ≤ 1,8 Phương pháp tìm GTLN (đã học trong Giải tích 1) thực hiện như sau: [Document title] GVHD: Th S Huỳnh Tấn Khải 5  Tìm các cực trị của hàm f ( x ), tính các giá trị cực trị, tính các giá trị tại các đầu mút của miền D , sau đó so sánh để tìm ra giá trị lớn nhất (hay nhỏ nhất) Để tìm các điểm cực trị, ta tìm các giá trị của hàm f ( x ) ứng với các giá trị của x sao cho đạo hàm f ''''( x ) = 0 Tính f ( x ) tại các điểm dừng Tìm f (-2,2); f (1,8) Vậy f ''''( x ) = 3 x 2 - 3 = 0 ⟺ x = ± 1 f (1) = -1 f (-1) = 3 f (-2,2) = -3,048 f (1,8) = 1,432 Do đó: f max = 3 khi x * = -1 Ví dụ 1 2: Tìm phương án tối ưu của bài toán: Z = ܽඥ ଶ ݔ െ ଶ ݕ െ ଶ → max (1 5) Điều kiện ràng buộc được xác định từ điều kiện xác định (tập xác định) của hàm Z, tức là a 2 – x 2 – y 2 ≥ 0, hay miền ràng buộc của bài toán là: x 2 + y 2 ≤ a 2 (1 6) Tìm phương án tối ưu cho công thức (1 5) là bài toán tìm cực trị của hàm hai biến Ph ươ ng pháp gi ả i: Dùng phương pháp tìm cực trị hàm hai biến Tìm điểm dừng: ൜ ݔZ ൌ 0 ൌ൐ ݔൌ 0 ݕZ ൌ 0 ൌ൐ ݕൌ 0 → Có 1 điểm dừng M (0,0) Ta có: ܽඥ ଶ ݔ െ ଶ ݕ െ ଶ đạt giá trị lớn nhất khi ( ܽ ଶ ݔ െ ଶ ݕ െ ଶ ሻ đạt giá trị lớn nhất Ta lại có: ܽ ଶ ݔ െ ଶ ݕ െ ଶ = ܽ ଶ ݔሺ െ ଶ ݕ ൅ ଶ ) => Z đạt giá trị lớn nhất khi ݔ ଶ ݕ ൅ ଶ đạt giá trị nhỏ nhất và ݔ ଶ ݕ ൅ ଶ đạt giá trị nhỏ nhất khi x = y =0 Như vậy hàm Z đạt cực đại tại điểm M (0,0) => Phương án tối ưu ( x *, y *) = (0,0) và Z max = Z (0,0) = a (Bài toán t ố i ư u có th ể không có đ i ề u ki ệ n ràng bu ộ c, b ấ t k ỳ giá tr ị nào c ủ a x ho ặ c vector x c ũ ng là m ộ t ph ươ ng án ch ấ p nh ậ n đượ c V ậ y ch ỉ c ầ n tìm x b ấ t k ỳ sao cho f(x) → min (ho ặ c f(x) → max) là có th ể đ áp ứ ng đượ c yêu c ầ u c ủ a bài toán Có th ể đ i ề u ki ệ n ràng bu ộ c đượ c xác đị nh trong hàm m ụ c tiêu là mi ề n xác đị nh c ủ a hàm m ụ c tiêu) 1 1 2 Phân loại các bài toán tối ưu [Document title] GVHD: Th S Huỳnh Tấn Khải 6 Một trong những phương pháp thông dụng nhất để giải bài toán tối ưu đó là: Tính giá trị hàm mục tiêu f ( x ) trên tất cả các phương án, sau đó so sánh các giá trị tính được để tìm ra giá trị tối ưu và phương án tối ưu cho bài toán Thực hiện theo phương pháp trên gặp rất nhiều khó khăn ngay cả khi kích thước của bài toán (số biến n và số ràng buộc m ) là không lớn, bởi vì tập D thông thường gồm một số rất lớn các phần tử, trong nhiều trường hợp còn là không đếm được Vì vậy, người ta đã nghiên cứu về mặt lý thuyết để có thể tách ra từ bài toán tổng quát thành các lớp bài toán đơn giản hơn, dễ thực hiện hơn Các nghiên cứu lý thuyết đó thường là: - Nghiên cứu tính chất của các thành phần bài toán (hàm mục tiêu, các hàm ràng buộc, các biến số, các hệ số, …) - Các điều kiện tồn tại lời giải chấp nhận được - Các điều kiện cần và đủ của cực trị - Tính chất của các đối tượng nghiên cứu Bài toán tối ưu hay còn gọi là bài toán quy ho ạ ch Dựa vào tính chất của các thành phần bài toán và đối tượng nghiên cứu người ta phân loại các lớp bài toán tối ưu như sau:  Bài toán tối ưu tuyến tính: Là bài toán mà hàm mục tiêu và tất cả các ràng buộc đều có dạng tuyến tính Một cách khái quát: Hàm mục tiêu: f ( x ) → min (hoặc f ( x ) → max ) là một hàm tuyến tính Và tất cả các ràng buộc: g i ( x ), với i = ݉,1 cũng là một hàm tuyến tính  Bài toán tối ưu phi tuyến: Bài toán mà trong đó hàm mục tiêu hoặc ít nhất một điều kiện ràng buộc là phi tuyến (có chứa ít nhất một yếu tố phi tuyến – bậc 2, logic, mũ, …)  Bài toán tối ưu rời rạc: Khi biến hoặc giá trị hàm mục tiêu là rời rạc Chúng ta có thể chia bài toán tối ưu rời rạc thành hai dạng như sau:  Tối ưu nguyên (quy hoạch nguyên): Các biến hoặc các hàm mục tiêu nhận các giá trị nguyên  Tối ưu đồ thị: Là một dạng đặc biệt của bài toán tối ưu rời rạc, có các đỉnh là các điểm rời rạc Trong đồ thị, chúng ta kí hiệu tập đỉnh là: X = {A, B, C, D}, tập cạnh là E = { e 1 , e 2 , …, e 8 } hoặc biểu diễn tập cạnh thông qua tập đỉnh: E = {(A, D); (A, B); … } Bài toán tối ưu đồ thị trở thành bài toán tìm đường đi ngắn nhất của đồ thị thỏa mãn điều kiện nào đó [Document title] GVHD: Th S Huỳnh Tấn Khải 7  Bài toán quy hoạch động: Dạng bài toán này thường thì những kết quả của bước sau phụ thuộc vào kết quả của bước trước  Bài toán tối ưu đa mục tiêu: Bài toán mà trong đó có nhiều hàm mục tiêu cần phải tối ưu trên cùng một miền ràng buộc f i ( x ) → min (hoặc f i ( x ) → ( max )) với i = 1, 2, …, n ; x ∈ D Trong đó có nhiều hàm mục tiêu có thể đối lập nhau Khi giải bài toán này, chúng ta phải kết hợp hài hòa các lợi ích (giá trị) đạt được của hàm mục tiêu 1 2 Ứng dụng của lý thuyết tối ưu 1 2 1 Phương pháp mô hình hóa Trên thực tế, nhiều vấn đề ở các lĩnh vực kinh tế, khoa học - công nghệ và xã hội đều có thể giải quyết bằng phương pháp tối ưu toán học Bởi lẻ người ta luôn mong muốn tìm ra các sản phẩm tốt nhất mà vẫn tiết kiệm được thời gian, công sức, chi phí, đường đi, Điều quan trọng là từ thực tế, ta phải xây dựng được một mô hình toán học thích hợp Từ đó, chúng ta sử dụng các phương pháp tối ưu cùng với các công cụ thích hợp để cho ra lời giải tối ưu nhất Để làm được những điều này, chúng ta cần lưu ý các bước sau đây khi áp dụng phương pháp mô hình hóa: Bước 1: Khảo sát vấn đề thực tế, phát hiện vấn đề cần giải quyết bằng phương pháp tối ưu Bước 2: Phát biếu các điều kiện ràng buộc và hàm mục tiêu dưới dạng định tính Bước 3: Lựa chọn các biến đại diện cho các tham số và sau đó định lượng hóa các điều kiện ràng buộc và hàm mục tiêu Từ đó xây dựng mô hình định lượng và mô hình toán học (mô hình tối ưu) Bước 4: Thu thập số liệu và lựa chọn phương pháp toán học thích hợp để giải mô hình Bước 5: Xây dựng thuật toán và quy trình giải: Lựa chọn công cụ (giấy bút, máy tính) có thể lập trình cho bài toán ấy Bước 6: Đánh giá kết quả thu được: Nếu phương pháp vừa xây dựng là phù hợp thực tế thì nó cho kết quả tối ưu và điều này cũng chứng tỏ mô hình mà chúng ta xây dựng là đúng và hợp lý Nếu nó không phù hợp thực tế thì phải xem xét và điều chỉnh mô hình 1 2 2 Một số ứng dụng của lý thuyết tối ưu Ứng dụng của lý thuyết tối ưu vô cùng phong phú và đa dạng Tuy nhiên, tùy vào mỗi trường hợp cụ thể và tùy vào cách thức vận dụng sao cho hợp lý, hiệu quả thì ứng [Document title] GVHD: Th S Huỳnh Tấn Khải 8 dụng của lý thuyết tối ưu mới mang lại kết quả như mong muốn Ở đây, ta sẽ chỉ tiến hành xét một số ví dụ điển hình dẫn đến mô hình tối ưu [Document title] GVHD: Th S Huỳnh Tấn Khải 9 Ví dụ 1 3: Bài toán phân phối điện năng Có ba hộ gia đình cần được cung cấp điện từ hai nguồn điện cách xa nhau Giá thành truyền tải một đơn vị điện năng (hao tổn + chi phí bảo dưỡng đường dây, trạm) từ nguồn thứ i ( i = 1, 2) đến hộ thứ j ( j = 1, 2, 3) là C ij Khả năng cung cấp của mỗi nguồn điện bị giới hạn bởi trữ lượng của chúng là A 1 , A 2 Nhu cầu của các hộ tiêu thụ cần phải đáp ứng đủ là B 1 , B 2 , B 3 Hãy lập kế hoạch phân phối điện năng khả thi sao cho tổng chi phí truyền tải là nhỏ nhất L ờ i gi ả i: Mô hình toán học được lập như sau: Giả thiết: Điều kiện cân bằng thu-phát: ݑ݄ݐ ∑ = ݐá݄݌ ∑ Tức là: ∑ ܣ ௜ ଶ ௜ୀଵ = ∑ ܤ ௝ ଷ ௝ୀଵ Đặt biến x là lượng điện chuyển từ trạm cung cấp thứ i đến hộ tiêu thụ thứ j Ta có: x ≥ 0; i = 1, 2; j = 1, 2, 3 (điều kiện các biến không âm) Từ đó suy ra, tổng chi phí truyền tải: ∑ ∑ ܥ ௜௝ ݔ ௜௝ ଷ ௝ୀଵ ଶ ௜ୀଵ Vậy hàm mục tiêu sẽ là: f ( x ) = ∑ ∑ ܥ ௜௝ ݔ ௜௝ ଷ ௝ୀଵ ଶ ௜ୀଵ → min (1 7) Điều kiện ràng buộc: ە ۖ ۖ ۔ ۖ ۖ ۓ Tổng lượng điện từ trạm 1: 11ݔ൅ 12ݔ൅ 13ݔ൑ 1ܣ Tổng lượng điện từ trạm 2: 21ݔ൅ 22ݔ൅ 23ݔ 2ܣ ൑ Tổng lượng điện của hộ 1: 11ݔ൅ 21ݔൌ 1ܤ Tổng lượng điện của hộ 2: 12ݔ൅ 22ݔൌ 2ܤ Tổng lượng điện của hộ 3: 13ݔ൅ 23ݔൌ 3ܤ Điều kiện không âm của biến 23ݔ , , 12ݔ ,11ݔ :ݔ൒ 0 (1 8) Bài toán tối ưu tuyến tính chính là bài toán tìm các giá trị (1 7) để thỏa mãn các điều kiện (1 8) Ví dụ 1 4: Bài toán xây dựng hệ thống truyền tải điện Một huyện ( X 0 ) có 5 xã X 1 , X 2 , X 3 , X 4 , X 5 Huyện này cần xây dựng hệ thống truyền tải điện từ trung tâm huyện đến tất cả các xã Giữa hai địa điểm có thể thay đổi được đường dây với chi phí được cho trong Hình 1 1 Hãy lập các phương án xây dựng hệ thống điện có thể nối liền các xã vào huyện với tổng chi phí là nhỏ nhất [Document title] GVHD: Th S Huỳnh Tấn Khải 10 Hình 1 1 - Các gi ả thi ế t c ủ a bài toán Đây là một bài toán tối ưu trên đồ thị được giải bằng thuật toán PRIM, KRUSKAL Hình 1 2 - K ế t qu ả (gi ả i b ằ ng thu ậ t toán PRIM) Ta có : Sơ đồ đường dây cần xây dựng tối ưu như Hình 1 2, tổng chi phí đầu tư nhỏ nhất : f min = 15 1 3 Các phương pháp giải bài toán tối ưu đa mục tiêu 1 3 1 Phương pháp ràng buộc (Constraint method) a) Mô tả bài toán Cho bài toán đa mục tiêu với p mục tiêu, như sau: min { f 1 ( x ), f 2 ( x ),…, f p ( x )} (1 11) Sao cho: x ∈ R n Trong đó: x = ( x 1 , x 2 ,…, x n ) ∈ R n là không gian quyết định Ta chuyển bài toán trên thành nhiều bài toán ràng buộc đơn mục tiêu như sau: [Document title] GVHD: Th S Huỳnh Tấn Khải 11 f k ( x 1 , x 2 , x 3 ,…, x n ) ≥ L k ( k = 1, …, p ) (1 12) Công thức này là bài toán đơn mục tiêu Do đó có thể giải được bằng các phương pháp giải bài toán đơn mục tiêu Sau khi có các tối ưu cho từng hàm f k , chúng ta có thể tìm giá trị tối ưu nhất từ tập các giá trị tối ưu của các f k b) Thuật toán Bước 1: Xây dựng bảng thỏa hiệp - Giải lần lượt p bài toán đơn mục tiêu và các ràng buộc tương ứng Gọi nghiệm ứng với mục tiêu thứ k là: x k = ( ݔ ଵ ௞ , ݔ ଶ ௞ , …, ݔ ௡ ௞ ) với k = 1,…, p Sau đó tính giá trị của p hàm mục tiêu này đạt được tại các x k tương ứng, ta gọi là: f 1 ( ݔ ଵ ௞ ), f 2 ( ݔ ଶ ௞ ), …, f p ( ݔ ௣ ௞ ) - Sắp xếp p giá trị ứng với p mục tiêu vừa tính được ở trên vào bảng Ở đây, hàng ứng với các x 1 ,…, x k và cột là nhãn của mục tiêu B ả ng 1 1 Bảng thoả hiệp cho một bài toán với p hàm mục tiêu f 1 ( x k ) f 2 ( x k ) … f p ( x k ) x 1 f 1 ( x 1 ) f 2 ( x 1 ) … f p ( x 1 ) x 2 f 1 ( x 2 ) f 2 ( x 2 ) … f p ( x 2 ) … … … … … x k f 1 ( x k ) f 2 ( x k ) … f p ( x k ) - Tìm số lớn nhất và nhỏ nhất trong cột thứ k , lần lượt kí hiệu là M k , m k với k = 1, …, p Bước 2: Quy ước một bài toán quy hoạch đa mục tiêu được cho ở (1 11) tương ứng với bài toán ràng buộc của nó như ở (1 12) Bước 3: Chọn giá trị của L k trong đoạn [m k , M k ] bằng cách chia [m k ,M k ] ra r phần bằng nhau L k có thể nhận một trong r giá trị sau: L k = m k + ௧ ௥ିଵ (M k - m k ) , với: t = 0,1,… , r – 1 Bước 4: Ứng với mỗi giá trị của L k ta giải bài toán (1 12) và mỗi bài toán cho một nghiệm chấp nhận được Trong những nghiệm này ta chọn nghiệm tốt nhất 1 3 2 Phương pháp tổng trọng số a) Các khái niệm tối ưu Tối ưu Pareto : Một điểm x * ∈ X được gọi là một nghiệm tối ưu Pareto nếu không tồn tại một nghiệm x ≠ x * ∈ X mà x trội hơn x * Nghĩa là: f ( x ) < f ( x * ) Từ định nghĩa trên suy ra các tính chất sau: i) Nếu x * là nghiệm tối ưu Pareto thì ƒ( x ∗ ) gọi là điểm hữu hiệu [Document title] GVHD: Th S Huỳnh Tấn Khải 12 ii) Nếu x 1 , x 2 ∈ X và ƒ( x 1 ) ≤ ƒ( x 2 ) thì ta gọi x 1 trội hơn x 2 và ƒ( x 1 ) trội hơn ƒ ( x 2 ) iii) Tập tất cả các nghiệm tối ưu Pareto x * ∈ X và tập các điểm hữu hiệu y = ƒ( x * ) ∈ Y lần lượt ký hiệu là: X par và Y eff Nghiệm tối ưu Pareto chặt và yếu: Nghiệm x * ∈ X được gọi là một nghi ệ m t ố i ư u y ế u Pareto nếu không tồn tại một nghiệm x ∈ X sao cho: ƒ( x ) ≪ ƒ( x * ) Khi đó: Điểm y = ƒ( x * ) ∈ Y gọi là đ i ể m h ữ u hi ệ u y ế u Tập nghiệm tối ưu Pareto yếu và tập các điểm hữu hiệu yếu lần lượt ký hiệu là: ܺ ୵ି୮ୟ୰ và ܻ ୵ିୣ୤୤ Nghiệm x * ∈ X được gọi là một nghi ệ m t ố i ư u ch ặ t Pareto nếu không tồn tại một nghiệm x ∈ X và x ≠ x * sao cho: ƒ( x ) ≤ ƒ( x * ) Khi đó, tập nghiệm tối ưu Pareto chặt ký hiệu là: X s–par b) Mô tả bài toán Bài toán tối ưu nhiều mục tiêu dạng tổng quát được phát biểu như sau: min { f 1 ( x ), f 2 (x),…, f p ( x )} Sao cho: x ∈ R n Trong đó: x = ( x 1 , x 2, …, x n ) ∈ R n : là không gian nghiệm Ta chuyển bài toán trên thành bài toán tổng như sau: min f = w 1 f 1 ( x ) + w 2 f 2 ( x ) + ⋯ + w p f p ( x ) Sao cho: x ∈ R n Trong đó: w i ≥ 0, với: i = 1, 2,…, n và: ∑ iݓ ൌ 1 ௣ ௜ୀଵ Ứng với mỗi bộ trọng số w i ta sẽ tìm được một nghiệm tối ưu Pareto c) Ví dụ minh họa Ví dụ 1 5: Giải bài toán tối ưu hai hàm mục tiêu sau: ି݊݅݉ ସ ஸ ௫ଵ,௫ଶ ஸ ସ ݂ሼሼ ଵ ݔሺ ଵ ݔ , ଶ ݂,ሻ ଶ ݔሺ ଵ ݔ , ଶ ሻሽሽ với: ݂ ଵ ݔሺ ଵ ݔ , ଶ ሻ = 3 ݔ ଵ ଶ − 2x 1 x 2 + 4x 2 + ݔ ଶ ଶ ݂ ଶ ݔሺ ଵ ݔ , ଶ ሻ = ݔ ଵ ଶ − x 1 − x 1 x 2 + 0 5 ݔ ଶ ଶ Sau khi thực hiện các bước tính toán ta xác định được giá trị của mỗi hàm mục tiêu như sau: [Document title] GVHD: Th S Huỳnh Tấn Khải 13 B ả ng 1 2 Bảng các hàm mục tiêu w = ( w 1 , w 2 ) (0,1) (0 2, 0 8) (0 4, 0 6) (0 6, 0 4) (0 8, 0 2) (1,0 ݂ ଵ ݔሺ ଵ ݔ , ଶ ሻ ൎ 6 -2 2 -4 45 2 53 -0 76 -6 ݂ ଶ ݔሺ ଵ ݔ , ଶ ሻ ൎ - 0,5 0 11 0 3 1 97 -0 88 3 5 1 3 3 Phương pháp sử dụng giải thuật di truyền (Genetic Alogrithm – GA) a) Giới thiệu giải thuật Giải thuật di truyền (Genetic Algorithm - GA) được đề xuất bởi ý tưởng của John Holland vào những năm 1970 Lấy cảm hứng từ quá trình chọn lọc một cách ngẫu nhiên các cá thể thông qua sự tác động của môi trường tự nhiên Nếu cá thể nào có mức độ thích nghi cao với sự tác động này thì chúng sẽ tiếp tục sống sót, ngược lại chúng sẽ bị loại bỏ Ý tưởng này đã được áp dụng để giải quyết các bài toán tối ưu một mục tiêu bằng cách làm xấp xỉ các nghiệm thành biên Pareto từ một số nghiệm khởi tạo ban đầu Tuy nhiên từ thực tế số lượng hàm mục tiêu cần tối ưu tăng lên rất nhiều - ít nhất là hai mục tiêu và thường thì các mục tiêu này xung đột nhau như: Bài toán lựa chọn danh mục đầu tư tối ưu nhiều mục tiêu người ta cố gắng làm cực đại lợi nhuận thu được trong khi giảm thiểu rủi ro đến mức thấp nhất có thể hay bài toán trong sản xuất ta cố gắng làm cực tiểu số lượng nhân công nhưng giá trị sản lượng vẫn đạt cực đại Như vậy, việc tìm một phương án hay nghiệm thỏa mãn tất cả các mục tiêu đặt ra như trên xem ra rất lý tưởng, nhưng trên thực tế có rất ít bài toán tồn tại phương án lý tưởng này Do đó, ta chuyển sang tìm một phương án khả thi khác mà ta gọi là phương án thỏa hiệp Phương án thỏa hiệp sẽ thỏa mãn các mục tiêu đặt ra ở một mức độ có thể chấp nhận được Trên cơ sở này người ta cố gắng áp dụng thuật toán di truyền để giải quyết các loại bài toán này và thuật toán di truyền đa mục tiêu cũng xuất hiện trên cơ sở này Cho đến nay có rất nhiều thuật toán di truyền để giải bài toán tối ưu đa mục tiêu dựa trên cơ sở thuật toán di truyền đã ra đời, chẳng hạn như thuật toán MOGA, thuật toán NSGA, thuật toán NSGA II, Thông qua các thuật toán này ta có thể làm xấp xỉ được biên Pareto tốt nhất từ các nghiệm khởi tạo ban đầu Giải thuật di truyền (hay giải thuật tiến hóa nói chung) là một trong những phát triển quan trọng của những nhà nghiên cứu về tính toán ứng dụng cuối thế kỷ trước trong việc gi ả i x ấ p x ỉ các bài toán tối ưu toàn cục Việc khai thác nguyên lí tiến hóa như là một định hướng heuristics đã giúp cho giải thuật di truyền giải quyết hiệu quả các bài toán tối ưu (với các lời giải chấp nhận được) mà không cần sử dụng các điều kiện truyền thống (liên tục hay khả vi) như là điều kiện tiên quyết [Document title] GVHD: Th S Huỳnh Tấn Khải 14 Giải thuật di truyền là một giải thuật mô phỏng theo quá trình chọn lọc tự nhiên, là kỹ thuật chung giúp giải quyết các vấn đề bài toán bằng cách mô phỏng sự tiến hóa của con người hay của sinh vật nói chung (dựa trên thuyết tiến hóa muôn loài của Darwin) trong điều kiện qui định sẵn của môi trường Lấy ý tưởng từ quá trình tiến hoá tự nhiên, xuất phát từ một lớp các lời giải tiềm năng ban đầu, GA tiến hành tìm kiếm trên không gian lời giải bằng cách xây dựng lớp lời giải mới tốt hơn (tối ưu hơn) lời giải cũ Quá trình xây dựng lớp lời giải mới được tiến hành dựa trên 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 quá trình tiến hoá: Ở mỗi thế hệ lại tái sinh các lời giải tương đối tốt, trong khi các lời giải “xấu” thì chết đi Một trong những đặc tính quan trọng của giải thuật di truyền là làm việc theo qu ầ n th ể các gi ả i pháp Việc tìm kiếm bây giờ được thực hiện song song trên nhiều điểm (multipoints) Trong GA, một tập các biến của bài toán đưa ra được mã hóa sang một chuỗi (hay một cấu trúc mã hóa khác) tương tự như một nhiễm sắc thể trong tự nhiên Mỗi chuỗi bao gồm một giải pháp có thể của bài toán Giải thuật di truyền sử dụng các toán tử được sinh ra bởi sự chọc lọc tự nhiên một quần thể các chuỗi nhị phân (hoặc các cấu trúc khác), mã hóa khoảng tham số trên mỗi thế hệ, khảo sát các phạm vi khác nhau của không gian tham số và định hướng tìm kiếm đối với khoảng mà khoảng đó xác suất cao để tìm kiếm sự thực hiện tốt hơn b) Thuật toán di truyền Các bước trong thuật toán di truyền được trình bày cụ thể như sau: Bước 1:  Đặt t = 0  Tạo ngẫu nhiên N p > 1 cá thể để hình thành quần thể thứ nhất gọi là P t  Đánh giá độ thích nghi của nghiệm trong quần thể P t Bước 2: Chéo hóa – Dùng toán tử Chéo hóa để tạo quần thể con Q t như sau:  Chọn 2 nghiệm x và y trong quần thể P t dựa trên độ thích nghi  Sử dụng toán tử chéo hóa tạo nghiệm con và bổ sung nghiệm con này vào tập Q t Bước 3: Đột biến – Dùng toán tử đột biến để tạo sự biến đổi ở mỗi nghiệm x ∈ Q t với mức biến đổi cho trước Bước 4: Gán độ thích nghi cho mỗi cá thể trong quần thể x ∈ Q t dựa trên giá trị hàm mục tiêu và khả năng không chấp nhận được của nghiệm này [Document title] GVHD: Th S Huỳnh Tấn Khải 15 Bước 5: Lựa chọn N p cá thể từ Q t dựa trên độ thích nghi của chúng và đưa tất cả các nghiệm này vào tập P t+1 [Document title] GVHD: Th S Huỳnh Tấn Khải 16 Bước 6:  Dừng nếu điều kiện dừng thỏa mãn (ví dụ như: số lượng cá thể trong quần thể, số lượng thế hệ,…) và đưa ra quần thể hiện tại  Ngược lại: t = t + 1 và quay lại thực hiện bước 2 Sơ đồ khối của giải thuật di truyền được trình bày ở Hình 1 3 c) Chi tiết các bước trong giải thuật di truyền Quá trình l ự a ch ọ n Sự lựa chọn là một toán tử lựa chọn hai cá thể cha (được mã hóa bằng hai chuỗi nhị phân) nhằm mục đích tạo một cá thể mới mà ta gọi là cá thể con Trong toán tử lựa chọn, cá thể nào có độ thích nghi càng cao thì càng có nhiều cơ hội được chọn lựa với tư cách là cá thể cha Có hai cách thức để lựa chọn được cá thể cha: Một là lựa chọn ngẫu nhiên (hay còn được gọi là vòng quay roulette ), hai là lựa chọn dựa trên thứ hạn của mỗi cá thể  Lựa chọn ngẫu nhiên bằng cách sử dụng toán tử lựa chọn: Cho N p là số lượng cá thể trong quần thể P (hay còn gọi là kích thước quần thể) Mỗi nghiệm/ cá thể x i , i = {1, …, N p } được lựa chọn làm cá thể cha với khả năng là P s ( x i ) và được tính theo công thức sau: ܲ ௦ ( x i ) = ௙ሺೣ ೔ ሻ ∑ ௙ሺೣ ೔ ሻొ ೛ ౠసభ , với i = 1, 2,…, N p Trong đó, f ( x ) là độ thích nghi của nghiệm x  Lựa chọn dựa trên cơ sở thứ hạng của mỗi cá thể: Theo cách này thì các cá thể x i , với i = {1, …, N p } trong quần thể được sắp xếp theo thứ tự giảm dần dựa trên độ thích nghi của chúng Các cá thể sẽ được lựa chọn dựa trên thứ hạng của chúng [Document title] GVHD: Th S Huỳnh Tấn Khải 17 Hình 1 3 - S ơ đồ kh ố i c ủ a gi ả i thu ậ t di truy ề n Ví dụ 1 6: Bảng sau đây minh họa số lượng cá thể được chọn làm cá thể cha dựa trên phần trăm số lượng cá thể trong quần thể: B ả ng 1 3 Bảng lựa chọn cá thể cha dựa trên phần trăm số lượng cá thể trong quần thể Thứ hạng 1 2 … N p – 1 N p % của N p 20% 10% … 0 1% 0% Quá trình chéo hóa Toán tử chéo hóa dùng để tạo cá thể mới từ các cá thể cha đã được chọn Toán tử chéo hóa thường áp dụng trên cá thể cha – được mã hóa bằng các chuỗi nhị phân và chuỗi hoán vị Ta xét một vài toán tử chéo hóa sau: [Document title] GVHD: Th S Huỳnh Tấn Khải 18  Chéo hóa t ạ i m ộ t đ i ể m Chéo hóa tại một điểm là toán tử thường dùng nhất cho chuỗi nhị phân Toán tử này áp dụng trên các chuỗi cá thể cha đã được chọn lựa như sau: Điểm chéo hóa được lựa chọn ngẫu nhiên giữa hai chuỗi nằm trong hai cá thể cha nhằm tạo ra hai cá thể con mới bằng cách hoán đổi phần đầu tính từ điểm chéo hóa của mỗi chuỗi Hình 1 4 - Toán t ử Chéo hóa áp d ụ ng cho chu ỗ i s ố nguyên hoán v ị Hình 1 5 - Toán t ử chéo hóa áp d ụ ng cho chu ỗ i nh ị phân  Chéo hóa th ứ t ự t ạ i m ộ t đ i ể m Chọn một điểm chéo hóa tại một vị trí bất kỳ trong cá thể cha thứ I Sau đó thay các gen tính từ điểm bắt đầu chéo hóa bằng các gen của cá thể cha thứ II Từ đây ta được một cá thể con Hình 1 6 - Toán t ử Chéo hóa áp d ụ ng cho chu ỗ i hoán v ị [Document title] GVHD: Th S Huỳnh Tấn Khải 19  Chéo hóa th ứ t ự t ạ i hai đ i ể m Cá thể con được tạo thành như sau: Chọn hai điểm chéo hóa bất kỳ trong cá thể cha thứ I Sau đó thay thế các gen nằm giữa hai điểm chéo hóa này bằng các gen tương ứng của của cá thể cha thứ II Hình 1 7 - Toán t ử chéo hóa áp d ụ ng cho chu ỗ i hoán v ị  Chéo hóa b ằ ng cách c ố đị nh v ị trí c ủ a các gen Chọn và cố định vị trí một vài gen của cá thể cha thứ I Sau đó thay thế các gen còn lại trong cá thể cha thứ I này bởi các gen tương ứng của cá thể cha thứ II Hình 1 8 - Toán t ử chéo hóa áp d ụ ng cho chu ỗ i hoán v ị [Document title] GVHD: Th S Huỳnh Tấn Khải 20 Quá trình t ạ o độ t bi ế n Toán tử đột biến nhằm tạo sự biến đổi ở mỗi cá thể mà sau khi áp dụng toán tử Chéo hóa trên cá thể cha để tạo cá thể mới này Ta xét một số toán tử đột biến sau:  T ạ o độ t bi ế n hai gen g ầ n nhau Hai cá thể gần nhau thì được hoán vị cho nhau để tạo sự biến đổi hay đột biến Hình 1 9 - Độ t bi ế n 2 gen g ầ n nhau  T ạ o độ t bi ế n hai gen cách xa nhau Hai cá thể cách xa nhau thì được hoán vị cho nhau để tạo sự biến đổi Hình 1 10 - Độ t bi ế n 2 gen cách xa nhau  T ạ o độ t bi ế n ba gen cách xa nhau Ba cá thể cách xa nhau sẽ hoán vị cho nhau để tạo nên sự biến đổi Trong cách đột biến này có nhiều cá thể mới tạo thành một cách ngẫu nhiên Hình 1 11 - Độ t bi ế n 3 gen cách xa nhau  T ạ o độ t bi ế n b ằ ng cách đả o ng ượ c chu ỗ i con Chọn ngẫu nhiên một dãy con gồm các gen của một cá thể cha thông qua việc chọn hai gen tùy ý cách xa nhau Sau đó đảo ngược dãy gồm các gen này để tạo sự đột biến [Document title] GVHD: Th S Huỳnh Tấn Khải 21 Hình 1 12 - Độ t bi ế n đả o ng ượ c chu ỗ i con  T ạ o độ t bi ế n b ằ ng cách d ị ch chuy ể n Chọn ngẫu nhiên hai nhiễm sắc thể của một cá thể cha, sau đó chèn 1 gen vào vị trí của gen còn lại để tạo sự biến đổi Hình 1 13 - Độ t bi ế n b ằ ng cách d ị ch chuy ể n d) Công thức tính của giải thuật di truyền Độ thích nghi eval ( v i ) của mỗi nhiễm sắc thể v i ( i = 1, … kích thước quần thể) được tính bằng công thức sau: eval ( v i ) = ௙ ሺೡ ೔ ሻ ∑ ௙ ሺೡ ೔ ሻ ೖ೔೎೓೟೓ೠ೚೎೜ೠೌ೙೟೓೐ ೔సభ với ݂ ሺ௩ ೔ ሻ là hàm mục tiêu Công thức tìm tổng giá trị thích nghi của quần thể: F = ݁∑ ݈ܽݒ ሺ௩ ೔ ሻ ௞௜௖௛௧௛௨௢௖௤௨௔௡௧௛௘ ௜ୀଵ Tính xác xuất chọn P i cho mỗi nhiễm sắc thể v i : P i = ௘௩௔௟ ሺೡ ೔ ሻ ∑ ௘௩௔௟ ሺೡ ೔ ሻ ೖ೔೎೓೟೓ೠ೚೎೜ೠೌ೙೟೓೐ ೔సభ Tính xác suất tích luỹ p i cho mỗi nhiễm sắc thể P i : q i = ∑ ݌ ௜ ௜ ௝ୀଵ Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe rulet kích thước quần thể lần Mỗi lần chọn ra một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới theo cách sau: Phát sinh một số ngẫu nhiên r trong khoảng [0, 1] Nếu r < q 1 thì chọn nhiễm sắc thể v 1 , ngược lại chọn nhiễm sắc thể v i (2 ≤ i ≤ kích thước quần thể) sao cho q i-1 < r ≤ q i e) Nhận xét về giải thuật di truyền [Document title] GVHD: Th S Huỳnh Tấn Khải 22 Việc sử dụng hai toán tử Chéo hóa và Đột biến trong thuật toán di truyền có thể sẽ giúp cho thuật toán di truyền trở nên hiệu quả hơn trong quá trình tính toán kết quả và thời gian thực thi Nhưng vấn đề cần quan tâm đó là việc áp dụng toán tử nào trong các toán tử chéo hóa và đột biến sẽ ảnh hưởng đến tính hiệu quả về mặt toán học của thuật toán di truyền Trên đây là toàn bộ những nghiên cứu về giải thuật di truyền và ứng dụng của nó cũng như từng bước trong quá trình thực hiện thuật toán Xét một cách tổng quát thì giải thuật này có những nguyên tắc cơ bản sau đây mà khi thực hiện giải thuật cần lưu ý, đó là: Bước 1: Khởi tạo và mã hóa một quần thể ngẫu nhiên của nhiễm sắc thể (NST) Đó gọi là “quần thể hiện tại” Bước 2: Đánh giá độ thích nghi của mỗi NST trong quần thể hiện tại Bước 3: Tạo ra thế hệ trung gian, thông qua chọn lựa suy diễn các NST trong quần thể hiện tại tuỳ theo độ thích nghi Đó sẽ là cá thể cha - mẹ của những thế hệ tiếp theo Bước 4: Áp dụng toán tử lai ghép và nghịch đảo đối với những cặp hoặc NST đơn trong thế hệ trung gian, qua đó sẽ sản sinh ra một thế hệ NST mới Đó là quần thể hiện tại Lặp lại các bước từ bước 2 đến bước 4 cho đến khi một giải pháp phù hợp được tìm thấy 1 4 Kết chương Qua việc tìm hiểu tổng quan các phương pháp giải bài toán tối ưu đa mục tiêu ở trên cũng như các kết quả ứng dụng từ thực nghiệm cho thấy phương pháp di truyền tỏ ra hiệu quả, đơn giản, dễ cài đặt và dễ thực hiện hơn so với các phương pháp khác Thuật toán di truyền cũng đã được phát triển và sử dụng rộng rãi, do đó chúng ta có thể dễ dàng thừa kế và sử dụng lại cho nhiều mục đích khác nhau Vì vậy, trong đề tài này, tôi đã tìm hiểu sâu hơn về giải thuật di truyền cũng như lựa chọn giải thuật này để giải quyết bài toán ràng buộc đa mục tiêu mà cụ thể đó là bài toán lập thời khóa biểu [Document title] GVHD: Th S Huỳnh Tấn Khải 23 Chương 2 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU 2 1 Tìm hiểu chung về bài toán lập thời khóa biểu 2 1 1 Mô tả bài toán lập thời khóa biểu Một đơn vị trường học (tiểu học, trung học, trung học phổ thông, trung cấp, cao đẳng, đại học) muốn xây dựng một phần mềm sắp xếp thời khóa biểu cho các lớp học Mỗi trường có một số lớp, mỗi lớp có thể có số lượng học sinh - sinh viên khác nhau Các môn học được tuân theo một chương trình đào tạo được cấp trên phê duyệt (Bộ Giáo dục & Đào tạo đối với các trường phổ thông, Trưởng khoa đối với các trường đại học) về nội dung chuyên môn và số tiết cần thiết Bên cạnh đó, mỗi trường bao gồm số phòng học, sức chứa, chức năng và vị trí của từng phòng học khác nhau Việc xếp lịch học cho các lớp phải phù hợp với sức chứa của mỗi phòng học cũng như chức năng của phòng đó Đầu năm học, hội đồng nhà trường hay phòng đào tạo sẽ lập một bảng phân công giảng dạy gồm thầy/ cô nào, dạy lớp nào, môn nào Còn giáo vụ phải xếp lịch học và phòng học Dĩ nhiên một thầy/ cô có thể dạy nhiều môn và nhiều lớp khác nhau nhưng không ở cùng một thời điểm Do thời gian của giáo viên phụ thuộc rất nhiều vào thời gian công tác của họ tại trường, nên thời khóa biểu có thể lập và điều chỉnh theo từng tuần Giáo viên phải đề đạt yêu cầu của họ vào thứ năm hàng tuần để kịp làm lịch học cho tuần sau hoặc giáo viên có thể cung cấp các ràng buộc về lịch dạy hay thời gian rảnh của mình ngay từ đầu học kỳ Ngược lại, nếu số lượng giáo viên dạy các lớp không có gì thay đổi theo sự phân công ban đầu thì thời khóa biểu đó sẽ sử dụng xuyên suốt cả một học kỳ Trong thời khóa biểu sẽ chỉ ra thứ mấy, từ tiết nào đến tiết nào, ai dạy lớp nào, môn nào, ở phòng học nào Cuối mỗi tuần, giáo vụ sẽ căn cứ vào danh sách thống kê số giờ dạy của mỗi giáo viên để xác định số giờ đã dạy của mỗi môn Nếu môn nào của lớp nào dạy chưa đủ thời gian thì lập kế hoạch dạy bù Cũng căn cứ vào đó, hằng tháng nhà trường sẽ làm bảng thanh toán cho giáo viên trên cơ sở số giờ thực dạy Đôi khi cũng phải lập bảng thanh toán theo yêu cầu của giáo viên hay hiệu trưởng trong những trường hợp đặc biệt, ví dụ như giáo viên chấm dứt hợp đồng giảng dạy giữa tháng Ngoài việc quản lý và thanh toán giảng dạy, hệ thống phần mềm này còn phải đáp ứng được các thông tin về giáo viên, học sinh, môn học, các phòng học cơ hữu và các phòng học thuê mướn của trường [Document title] GVHD: Th S Huỳnh Tấn Khải 24 2 1 2 Các đối tượng của thời khóa biểu Bất kỳ một lịch học nào cũng có những đối tượng nhất định Trong thời khóa biểu này sẽ có các đối tượng sau: chương trình đào tạo, giáo viên – giảng viên, học sinh - sinh viên, phòng học, lớp học, khóa học, tiết học và giờ học Các đối tượng này sẽ được cụ thể hóa như sau: Chương trình đào tạo là cấp độ quản lý cao nhất trong chương trình, đó là phổ thông trung học và đại học Ví dụ về chương trình đào tạo như DH-CNTT-K13-1314- 01 (Chương trình đào tạo cho sinh viên đại học ngành công nghệ thông tin, khóa K13, năm học 2013-2014 của học kỳ 1), THCS-10A1-1415-02 (Chương trình đào tạo cho học sinh trung học cơ sở, lớp 10A1, năm học 2014-2015 của học kỳ 2), … Lớp học là t ậ p con của chương trình đào tạo, ví dụ như CNTT-K13 có 2 lớp là lớp CNTT-K13-01 và lớp CNTT-K13-02, … Giáo viên – giảng viên là những người trực tiếp giảng dạy tại các lớp và ta sẽ lưu thông tin về họ tên của giáo viên – giảng viên đó Học sinh – sinh viên là nhóm đối tượng theo học tại mỗi lớp, một lớp sẽ có số lượng học sinh – sinh viên giống hoặc khác nhau Phòng học cho biết sức chứa của mỗi phòng cũng như số lượng máy tính (nếu có) trong phòng đó Tiết học là thời gian bắt đầu và kết thúc của một môn học Ví dụ, từ 8:00 đến 8:45 học môn Toán, từ 8:45 đến 8:30 học môn Pháp luật, … Giờ học là khoảng thời gian mà tiết học diễn ra Ví dụ tiết thứ nhất bắt đầu từ 7:00 đến 7:45, tiết thứ hai bắt đầu từ 7:50 đến 8:35, … Khóa học thường được dùng ở các tường đại học và trong chương trình này, nó được sử dụng tương đương với Môn học Các ví dụ về khóa học như Toán, Chính trị, Văn học, … Khi định nghĩa một khóa học, ta phải cung cấp luôn các thông tin như số tiết học mỗi tuần của khóa học đó, số lượng sinh viên tham gia Nếu một khóa học được phụ trách bởi hai hoặc nhiều giáo viên thì ta phải tạo thành hai hoặc nhiều khóa học tương ứng Ví dụ môn Tin học căn bản cho chương trình đào tạo K09-CNTT- 0910-1 do hai giáo viên là A và B phụ trách, thì ta phải tạo thành hai khóa học (môn học) là THCB-A và THCB-B Việc phân chia này để chúng ta dễ xác định giờ dạy nào của giáo viên nào khi nhìn vào Thời khóa biểu [Document title] GVHD: Th S Huỳnh Tấn Khải 25 HS-SV đăng ký học 2 1 3 Quy trình lập thời khóa biểu Hình 2 1 - Quy trình l ậ p th ờ i khóa bi ể u 2 2 Ứng dụng giải thuật di truyền vào bài toán lập thời khóa biểu Trong mục này vận dụng các kiến thức về giải thuật di truyền để áp dụng vào bài toán lập thời khóa biểu Các ràng buộc của bài toán như ràng buộc giáo viên, ràng buộc phòng học, ràng buộc môn học,… là các vấn đề khá phức tạp Vì thế, cách tốt nhất là sử dụng một cách hiệu quả phương pháp chia để tr ị để giải quyết vấn đề phức tạp này Ở đây cũng vậy, theo phân cấp các ràng buộc, ta chia bài toán lập thời khóa biểu thành 2 giai đoạn khác nhau để giải quyết bài toán Giai đoạn 1, giải quyết thành phần ràng buộc ở mức lớp học, với các vấn đề cơ bản, phức tạp của những đối tượng liên quan tới việc học của lớp Khi đã có được kết quả cuối cùng là lịch học cho từng lớp một cách hoàn chỉnh, chúng sẽ được dùng làm thông tin cho giai đoạn sau Ở giai đoạn 2, tổng hợp các ràng buộc còn lại (đã được đơn giản hóa trong giai đoạn trước) Kết quả của giai đoạn này chính là mục tiêu cuối cùng của bài toán và đó là lịch học của các lớp cho một đơn vị trường học Cả hai giai đoạn tuy có mục tiêu và dữ liệu khác nhau, nhưng về cách giải quyết có tính tương tự nhau nên không khác gì nhiều khi áp dụng vào mô hình giải thuật di truyền Dự kiến kế hoạch mở lớp Danh sách HS-SV các lớp-ngành Các ràng buộc xếp TKB Xếp TKB tự động (sd giải thuật) HOẶC Xếp TKB thủ công (con người làm) Danh sách giáo viên Danh sách phòng học Lịch bận/rỗi Lớp học/ lớp học phần dự kiến [Document title] GVHD: Th S Huỳnh Tấn Khải 26 2 2 1 Giai đoạn 1: Xếp lịch học các lớp a) Chọn mô hình cá thể Lịch học của một lớp có hai thành phần chính, bao gồm: các môn học và các giờ học trong tuần Việc đặt ngẫu nhiên các môn học với các giờ học sẽ tạo thành một lịch học cho từng lớp Như vậy một lớp học tương ứng sẽ có nhiều lịch học khác nhau, do đó ta chọn mỗi lịch học làm cá thể trong giải thuật di truyền Trong hai thành phần đó thì các giờ học là thành phần ổn định hơn về số lượng cũng như về giá trị của chúng Thành phần môn học lại có tính không ổn định vì số lượng môn học phải phụ thuộc vào từng lớp học, cũng giống như số lượng nhiễm sắc thể trong cá thể, có chiều dài không nhất thiết phải cố định hay bằng nhau Do đó, chọn môn học làm đơn vị nhiễm sắc thể trong cá thể Ngoài ra, chưa kể đến tính phức tạp của môn học về số tiết phải học luôn bị thay đổi, trong khi giá trị các giờ học thì ngược lại, có thể xác định một cách rõ ràng và nhanh chóng Mô hình cá thể trong lịch của lớp học được cho như Hình 2 2 Trong đó, giá trị của phần tử môn học thứ i là chỉ số giờ (tiết học) thứ j Môn học 1 Môn học 2 ……… Môn học n Hình 2 2 - Mô hình cá th ể trong l ị ch l ớ p h ọ c Như đã trình bày ở trên, thay vì chọn ngẫu nhiên môn học vào các giờ học, ta sẽ làm ngược lại là chọn ngẫu nhiên giờ học theo môn, vì ta đã chọn môn học làm đơn vị nhiễm sắc thể trong cá thể (theo mô hình Hình 2 2) Điều này có nghĩa là, với một cá thể của mô hình xếp lịch lớp học, ở bất kỳ thời điểm nào, khi ta đặt nhiễm sắc thể đầu tiên là môn thứ nhất, nhiễm sắc thể kế tiếp sẽ là môn thứ hai và tiếp tục cho các nhiễm sắc thể còn lại Sau này, theo thứ tự đó sẽ lấy thông tin ra và không có gì thay đổi (ngoại trừ giá trị tiết học, nếu có xảy ra lai ghép hay đột biến) Trong trường hợp một môn được học nhiều lần trong tuần, do có nhiều tín chỉ/ học phần, nên sẽ gây khó khăn cho việc xếp chúng vào trong cá thể Cách giải quyết vấn đề này rất đơn giản, chỉ cần đưa chúng vào cá thể với nhiễm sắc thể tương ứng, chẳng khác gì một môn học bình thường khác Lúc đọc dữ liệu, chúng ta nên ghi nhận thêm thông tin về số tiết học của từng môn học Ví dụ 2 1: Giả sử ta có danh sách các môn học và số lần học trong một tuần như sau: - Môn học a có 1 lần học - Môn học b có 2 lần học [Document title] GVHD: Th S Huỳnh Tấn Khải 27 - Môn học c có 1 lần học [Document title] GVHD: Th S Huỳnh Tấn Khải 28 Chúng ta sẽ phân bổ các nhiễm sắc thể như sau: a b (lần 1) b (lần 2) c Hình 2 3 - Phân b ổ các nhi ễ m s ắ c th ể môn h ọ c Mỗi nhiễm sắc thể sẽ mang một giá trị số nguyên Đó chính là vị trí tiết học bắt đầu của môn học Phạm vi giá trị của nó từ 0 → 35 theo thứ tự các tiết học trong tuần, được đánh dấu theo vị trí liên tục của các ngày, tương tự cấu trúc mảng một chiều Các tiết học tiếp theo là giá trị liên tục kế tiếp nhau tùy theo số lượng tiết học của môn mà ta đang lưu trữ ( Xem Hình 2 4 bên d ướ i ) Như ta đã nói ở trên, tương ứng với mỗi cá thể là một lịch học thực của lớp Vì vậy, khi tạo cá thể, chúng ta vẫn phải đảm bảo sự đúng đắn về tính chất trong lịch học: Đủ số tiết học, số môn học, không có sự chồng chéo lên nhau tại cùng thời điểm trong các môn, … Để giải quyết việc này, chúng ta sử dụng một tham biến đánh dấu các tiết học đã lên lịch, để môn học sau sẽ không bị xếp trùng vào những vị trí này, mà môn học này sẽ được đưa vào vị trí khác Tất nhiên, với mỗi lịch học sẽ có sự sắp xếp khác nhau Ví dụ 2 2: Cách sắp xếp vị trí tiết học trong lịch học: - Môn học a tiết bắt đầu 0, số tiết cần học là 3 - Môn học b tiết bắt đầu 3, số tiết cần học là 2 - Môn học c tiết bắt đầu 12, số tiết cần học là 3 Phân bố các môn học trên lịch học như sau: [Document title] GVHD: Th S Huỳnh Tấn Khải 29 Thứ 2 Thứ 3 Thứ 4 …… Thứ 7 0 a(1) 6 12 c(1) 30 1 a(2) 7 13 c(2) 31 2 a(3) 8 14 c(3) 32 3 b(1) 9 15 33 4 b(2) 10 16 34 5 11 17 35 Hình 2 4 - B ả ng phân b ố các môn h ọ c trên l ị ch h ọ c b) Tạo quần thể ban đầu Quần thể là tập hợp tất cả các nhiễm sắc thể Ngoài việc lưu trữ danh sách các nhiễm sắc thể, quần thể còn chứa thêm các thông tin khác như kích thước quần thể, độ thích nghi của quần thể, … Quần thể ban đầu được khởi tạo trước khi thực hiện quá trình tiến hóa bằng cách gán cho các gen trong nhiễm sắc thể bởi các giá trị ngẫu nhiên Trong phần này, trước khi tạo quần thể ban đầu, chúng ta phải chuẩn bị sẵn về dữ liệu cho quá trình thực thi, từ lúc khởi tạo đến khi cho ra kết quả, bao gồm đầy đủ thông tin của một lớp đang được chọn, cụ th

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN - - NGUYỄN THỊ THÚY KIỀU BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHĨA BIỂU KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 04 năm 2017 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN LỜI CẢM ƠN  - Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp từ người khác Thật vậy! Trong suốt thời gian thực đề tài khóa luận mình, tơi ln nhận quan tâm hướng dẫn, bảo tận tình từ TKhầyHgĨiáoA, TLhạUc sẬĩ HNuỳTnhỐTTấn NKhGảiHđểIcỆóPthể hồn thành tốt luận văn Tơi xin trân trọng gửi đến Thầy lời cảm ơn sâu sắc! Tôi xin chân thành cảm ơn quý Thầy, Cô khoa Công nghệ thông tin, trường Đại học Quảng Nam tận tình truyền đạt kiến thức cho suốt bốn năm học trTưêờngđ.ềVtớài:vốn kiến thức tiếp thu q trình học tập khơng tảng cho trình nghiên cứu đề tài mà cịn hành trang q báu để tơi bước vào BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU VÀ ỨNG đời cách vững tự tin DỤNG XÂY DỰNG CHƯƠNG TRÌNH Tôi thầm biết ơn ủng hộ gia đình, bạn bè người thân yêu LẬP THỜI KHĨA BIỂU ln chỗ dựa tinh thần vững cho Cuối cùng, tơi xin kính chúc q Thầy, Cơ dồi sức khỏe thành công nghiệp trồng người cao quý Sinh viên thực hiện: Trong trình thựcNhGiệUn YđềỄtNài,TkHhóỊ tTráHnhÙkYhỏKi IsỀaiUsót, mong q Thầy, Cơ bỏ qua Đồng thời trình độ lýMluSậSnVcũ: n2g11n3hư02k1in0h17nghiệm thực tiễn cịn hạn chế nên báo cáo tránh khỏi thiếu sót, mong nhận ý kiến đóng góp CHUYÊN NGÀNH từ q Thầy, Cơ để tơi học hỏi thêm nhiều kinh nghiệm hoàn thành CÔNG NGHỆ THÔNG TIN tốt báo cáo tới KHÓA: 2013 – 2017 Xin chân thành cảm ơn! Cán hướng dẫn ThS HUỲNH TẤN KHẢI Quảng Nam, ngày 13 tháng 04 năm 2017 Sinh viên thực Nguyễn Thị Thúy Kiều Quảng Nam, ngày 14 tháng 04 năm 2017 MỤC LỤC Phần MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục tiêu đề tài .2 1.3 Đối tượng phạm vi nghiên cứu 1.4 Phương pháp nghiên cứu 1.5 Đóng góp đề tài 1.6 Cấu trúc đề tài Phần NỘI DUNG NGHIÊN CỨU Chương CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu toán tối ưu tổng quát phân loại 1.1.1 Giới thiệu toán tối ưu tổng quát 1.1.2 Phân loại toán tối ưu .5 1.2 Ứng dụng lý thuyết tối ưu 1.2.1 Phương pháp mơ hình hóa 1.2.2 Một số ứng dụng lý thuyết tối ưu 1.3 Các phương pháp giải toán tối ưu đa mục tiêu 10 1.3.1 Phương pháp ràng buộc (Constraint method) 10 1.3.2 Phương pháp tổng trọng số 11 1.3.3 Phương pháp sử dụng giải thuật di truyền (Genetic Alogithm – GA) 13 1.4 Kết chương 22 Chương ỨNG DỤNG GIẢI THUẬT DI TRUYỀN 23 VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU 23 2.1 Tìm hiểu chung tốn lập thời khóa biểu 23 2.1.1 Mơ tả tốn lập thời khóa biểu 23 2.1.2 Các đối tượng thời khóa biểu 24 2.1.3 Quy trình lập thời khóa biểu 25 2.2 Ứng dụng giải thuật di truyền vào tốn lập thời khóa biểu 25 2.2.1 Giai đoạn 1: Xếp lịch học lớp 26 2.2.2 Giai đoạn 2: Xếp lịch học cho toàn sở 33 2.3 Kết chương 36 Chương 3: XÂY DỰNG CHƯƠNG TRÌNH LẬP THỜI KHĨA BIỂU 37 3.1 Phân tích chức hệ thống 37 3.1.1 Biểu đồ phân cấp chức (FDD) 37 3.1.2 Mô tả chi tiết chức 37 3.1.3 Danh sách tác nhân 39 3.1.4 Biểu đồ ca sử dụng (USECASE - UC) 40 3.2 Xây dựng chức hệ thống 41 3.2.1 Thu thập thông tin tài nguyên 41 3.2.2 Xây dựng chức 43 3.3 Một số giao diện hệ thống 46 3.3.1 Giao diện hệ thống 46 3.3.2 Giao diện giới thiệu hệ thống 47 3.3.3 Giao diện ràng buộc Giáo viên 48 3.3.4 Giao diện ràng buộc Lớp học 48 3.3.5 Giao diện ràng buộc chung Khóa học 49 3.3.6 Giao diện in danh sách giáo viên 50 3.3.7 Giao diện trang in thời khóa biểu cho giáo viên 50 3.3.8 Giao diện thiết lập ràng buộc cho Giáo viên 52 3.3.9 Giao diện thiết lập thông tin 52 3.3.10 Giao diện thiết lập tiết dạy được/ khơng phép xếp thời khóa biểu 53 3.3.11 Giao diện xếp thời khóa biểu tự động 54 3.3.12 Giao diện trang in thời khóa biểu 54 Phần KẾT LUẬN VÀ KIẾN NGHỊ 56 Kết luận 56 Kiến nghị 56 Phần TÀI LIỆU THAM KHẢO 57 DANH MỤC HÌNH ẢNH Hình 1.1 - Các giả thiết toán 10 Hình 1.2 - Kết (giải thuật toán PRIM) 10 Hình 1.3 - Sơ đồ khối giải thuật di truyền 17 Hình 1.4 - Tốn tử Chéo hóa áp dụng cho chuỗi số ngun hốn vị 18 Hình 1.5 - Tốn tử chéo hóa áp dụng cho chuỗi nhị phân 18 Hình 1.6 - Tốn tử Chéo hóa áp dụng cho chuỗi hốn vị 18 Hình 1.7 - Tốn tử chéo hóa áp dụng cho chuỗi hốn vị 19 Hình 1.8 - Tốn tử chéo hóa áp dụng cho chuỗi hốn vị 19 Hình 1.9 - Đột biến gen gần 20 Hình 1.10 - Đột biến gen cách xa 20 Hình 1.11 - Đột biến gen cách xa 20 Hình 1.12 - Đột biến đảo ngược chuỗi 21 Hình 1.13 - Đột biến cách dịch chuyển 21 Hình 2.1 - Quy trình lập thời khóa biểu 25 Hình 2.2 - Mơ hình cá thể lịch lớp học 26 Hình 2.3 - Phân bổ nhiễm sắc thể môn học 28 Hình 2.4 - Bảng phân bố môn học lịch học 29 Hình 2.5 - Lai ghép tạo cá thể từ nhiễm sắc thể cha – mẹ 31 Hình 2.6 - Xác suất xảy phép đột biến 33 Hình 2.7 - Mơ hình cá thể lịch sở 34 Hình 3.1 - Biểu đồ phân cấp chức hệ thống lập thời khóa biểu 37 Hình 3.2 - Ký hiệu ca sử dụng 41 Hình 3.3 - Biểu đồ ca sử dụng hệ thống Lập thời khóa biểu 41 Hình 3.4 - Giao diện hệ thống 47 Hình 3.5 - Giao diện giới thiệu hệ thống 48 Hình 3.6 - Giao diện ràng buộc chung cho Giáo viên 48 Hình 3.7 - Giao diện ràng buộc chung cho Lớp học 49 Hình 3.8 - Giao diện ràng buộc chung Khóa học 50 Hình 3.9 - Giao diện in danh sách giáo viên 50 Hình 3.10 - Giao diện trang in thời khóa biểu cho giáo viên 51 Hình 3.11 - Giao diện thiết lập ràng buộc cho Giáo viên 52 Hình 3.12 - Giao diện thiết lập thơng tin 53 Hình 3.13 - Giao diện thiết lập tiết dạy được/ không phép xếp thời khóa biểu 53 Hình 3.14 - Giao diện xếp TKB tự động 54 Hình 3.15 - Giao diện trang in thời khóa biểu 55 [Document title] Phần MỞ ĐẦU 1.1 Lí chọn đề tài Trong sống, ta thường bắt gặp tốn liên quan đến xếp lịch xếp lịch cơng tác, xếp lịch giảng dạy, xếp lịch học cho học sinh - sinh viên, xếp lịch biểu cho ca trực bệnh viện, xếp lịch làm việc, xếp lịch vận hành máy móc,… Đố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 nguyên 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 tốn Có nhiều ràng buộc đặt toán ràng buộc đối tượng tham gia (giảng viên, lớp học, sinh viên), 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,…), ràng buộc thời gian (số tiết học, số lần học, số tiết lần học,…), 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 xây dựng thời khóa biểu thỏa mãn tất 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 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 - sinh viên Một bảng thời khóa biểu hợp lý giúp giáo viên thuận tiện lên lớp người học thoải mái đăng ký môn học học tập Bài tố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, 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ỉ,… 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ỏ, ràng buộc mặt liệu Vì vậy, việc địi hỏi có giải thuật chất lượng cao sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt cần thiết giải tốn có khơng gian tìm kiếm lớn Ở Việt Nam nay, trường đại học dần chuyển sang hình thức đào tạo tín Mặc dầu hình thức đào tạo có nhiều ưu điểm so với đào tạo niên chế nhiên việc xếp thời khóa biểu gánh nặng thực cho trường, đặc biệt trường có quy mơ đào tạo lớn Vả lại thị trường chưa có sản phẩm phần mềm giải hiệu toán Trong năm gần đây, phương pháp tiếp cận di truyền thu hút nhiều ý lĩnh vực nghiên cứu khác có khoa học máy tính 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 toán có khơng gian lời giải lớn áp dụng cho GVHD: Th.S Huỳnh Tấn Khải [Document title] nhiều loại toán tối ưu khác Trên giới, 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 Vì vậy, việc nghiên cứu ứng dụng giải thuật di truyền (Genetic Algorithm - GA) để giải hiệu tốn xếp thời khóa biểu nói việc làm cần thiết Xuất phát từ thực tế đây, chọn đề tài “Bài toán tối ưu đa mục tiêu ứng dụng xây dựng chương trình lập thời khóa biểu” cho khóa luận tốt nghiệp mình; với mong muốn giúp người có nhìn toàn diện giải thuật GA ứng dụng đa dạng nó, đồng thời giúp người dùng có thêm lựa chọn việc tìm kiếm phần mềm hỗ trợ xây dựng lịch học, thời khóa biểu 1.2 Mục tiêu đề tài Đề tài tập trung 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 nhằm đưa phương án xếp thời khóa biểu thỏa mãn tất ràng buộc đặt ra, đồng thời khai thác hiệu nguồn lực đào tạo nhà trường với thời gian ngắn 1.3 Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu: Nghiên cứu đặc điểm, đặc trưng giải thuật di truyền, thành phần giải thuật di truyền khởi tạo quần thể ban đầu, đánh giá độ thích nghi cá thể, toán tử di truyền (chọn lọc, lai ghép, đột biến), điều kiện dừng - Phạm vi nghiên cứu: Ứng dụng giải thuật di truyền vào toán xếp thời khóa biểu cho trường học cấp với ràng buộc yêu cầu đặt trước 1.4 Phương pháp nghiên cứu  Phương pháp nghiên cứu lý thuyết: - Nghiên cứu tài liệu, ngôn ngữ công nghệ liên quan - Tổng hợp tài liệu lý thuyết giải thuật di truyền - Thu thập thông tin, nghiên cứu thực trạng - Tham khảo sách, báo nguồn tài liệu từ Internet - Tham khảo ý kiến từ giảng viên hướng dẫn đề tài  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 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ử nghiệm trường học 1.5 Đóng góp đề tài GVHD: Th.S Huỳnh Tấn Khải [Document title] - Cung cấp tảng ứng dụng tốn tối ưu hóa đa mục tiêu Có thể nói ứng dụng thiết thực có tính ứng dụng cao Ứng dụng làm phong phú thêm cho kho ứng dụng lập thời khóa biểu, giúp người dùng có thêm nhiều lựa chọn trải nghiệm tốt - Phần mềm giúp cho người dùng lập thời khóa biểu cách nhanh chóng hiệu - Với đề tài mong muốn cung cấp tài liệu tham khảo cho bạn sinh viên khoa ngồi khoa tiếp cận tìm hiểu lĩnh vực nghiên cứu ứng dụng toán tối ưu hóa đa mục tiêu lĩnh vực mà nghiên cứu 1.6 Cấu trúc đề tài Cấu trúc luận văn bao gồm phần: Lời cảm ơn, Mục lục, Phần mở đầu, Phần nội dung nghiên cứu, Phần kết luận Phần tái liệu tham khảo Trong phần Nội dung nghiên cứu gồm nội dung sau: Chương 1: Cơ sở lý thuyết Chương nghiên cứu trình bày nội dung sở lý thuyết làm tảng cho phần nghiên cứu đề tài Chương 2: Ứng dụng giải thuật di truyền vào toán lập thời khóa biểu Trong chương chủ yếu tìm hiểu sâu sắc lý thuyết thuật toán giải thuật di truyền, sau phân tích ứng dụng giải thuật truyền vào tốn lập thời khóa biểu Chương 3: Xây dựng chương trình lập thời khóa biểu Chương cuối phần Nội dung nghiên cứu phân tích xây dựng chức hệ thống lập thời khóa biểu đồng thời giới thiệu số giao diện chương trình GVHD: Th.S Huỳnh Tấn Khải [Document title] Phần NỘI DUNG NGHIÊN CỨU Chương CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu toán tối ưu tổng quát phân loại 1.1.1 Giới thiệu toán tối ưu tổng quát a) Giới thiệu Lý thuyết tối ưu lĩnh vực kinh điển tốn học có ảnh hưởng nhiều đến lĩnh vực kinh tế xã hội khoa học công nghệ Phương án tối ưu phương án khả thi tốt nhất, tức phương án làm cho hàm mục tiêu đạt kết nhỏ (min) lớn (max) phải thỏa mãn điều kiện, yêu cầu toán (gọi thỏa mãn điều kiện ràng buộc) Trong mơ hình tốn học, mục tiêu toán biểu diễn hàm: f(x) → (hoặc f(x) → max) (1.1) với x biến số rời rạc biến kiểu vector x = (x1, x2,…, xn) Xét cách tổng quát, xem biến x biến vector, trường hợp x biến số rời rạc tương ứng với vector có thành phần Biến x tổng quát có dạng x = (x1, x2,…, xn) thường có yêu cầu phải thỏa mãn số điều kiện Tập hợp điều kiện biến gọi điều kiện ràng buộc biểu diễn miền D (miền ràng buộc): x ∈ D (1.2) Yêu cầu tổng quát toán tối ưu tìm giá trị x để thỏa mãn điều kiện ràng buộc (1.2) làm cực tiểu/ cực đại hàm mục tiêu (1.1) x* (một giá trị cụ thể (x1, x2,…, xn)) thỏa mãn điều kiện (1.1) (1.2) gọi phương án tối ưu Nếu x thỏa mãn điều kiện (1.2) ta gọi x phương án chấp nhận phương án b) Các ví dụ minh họa Ví dụ 1.1: Tìm x cho: f(x) = x3 – 3x +1 → max (1.3) với: x ∈ D = [-2,2; 1,8] (1.4) Bài giải: ∀ ∈ [-2,2; 1,8] phương án chấp nhận ⟺ -2,2 ≤ x ≤ 1,8 Bài tốn tương đương với tốn tìm giá trị lớn (GTLN) hàm f(x) -2,2 ≤ x ≤ 1,8 Phương pháp tìm GTLN (đã học Giải tích 1) thực sau: GVHD: Th.S Huỳnh Tấn Khải

Ngày đăng: 27/02/2024, 13:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan