Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
729,06 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÀI THU HOẠCH MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ Đề tài: Tìm hiểu về giải thuật di truyền và áp dụng vào bài toán sắp xếp thời khóa biểu trong trường đại học Giảng viên hướng dẫn: PGS.TS. Đỗ Văn Nhơn Học viên thực hiện: Lê Bảo Trung MSHV: CH1301112 TP Hồ Chí Minh, tháng 10 năm 2014 MỤC LỤC Page | 2 Chương 1: GIỚI THIỆU Trong cuộc sống ta thường gặp các bài toán liên quan đến xếp lịch như xếp lịch vận hành máy móc, xếp lịch biểu cho việc thực hiện một dự án, xếp lịch làm việc, xếp lịch thi đấu thể thao,… Đố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 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), 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. Bài toán xếp thời khóa biểu thuộc lớp các bài toán NP-đầy đủ vì vậy có thể không tìm ra được lời giải tối ưu. Đây 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. Hiện nay, 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 nhiều loại bài toán tối ưu khác nhau. Vì vậy, giải thuật di truyền được kết hợp với tin học nhằm giải quyết những bài toán tối ưu một cách rất hiệu quả. Page | 3 Nội dung bài thu hoạch sau sẽ trình bày việc nghiên cứu lý thuyết về thuật giải di truyền (Genetic Algorithm - GA), cách thức xây dựng một thuật giải di truyền, từ đó phân tích được ưu nhược điểm và đồng thời áp 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 nói chung với một số rành buộc phức tạp bám sát thực tế. Chương 2: CƠ SỞ LÝ THUYẾT 1. Giải thuật di truyền 1.1 Khái niệm Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization). Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận dụng các nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự nhiên, và trao đổi chéo. Giải thuật di truyền dựa trên cơ chế của chọn lọc tiến hoá trong tự nhiên: “Trong mọi thế hệ, một tập mới các sinh vật được tạo ra bằng cách lai ghép những nhân tố thích nghi nhất với môi trường của những sinh vật trong thế hệ cũ cùng với sự xuất hiện đột biến ngẫu nhiên của các cá thể trong thế hệ mới”. Vận dụng cơ chế đó, giải thuật di truyền được bắt đầu với một quần thể ngẫu nhiên có n chuỗi , rồi sao chép các chuỗi theo khuynh hướng đến cái tốt, ghép cặp và đổi các chuỗi con thành phần, thỉnh thoảng làm đột biến giá trị bit để có số đo tốt. Mục tiêu của giải thuật di truyền không nhằm đưa ra lời giải chính xác tối lưu mà là đưa ra lời giải tương đối tối ưu. 1.2 Đặc điểm của giải thuật di truyền Ý tưởng của giải thuật di truyền là mô phỏng theo cơ chế của quá trình chọn lọc và di truyền tự nhiên. Từ tập các lời giải có thể có ban đầu, thông qua nhiều bước tiến hóa Page | 4 để hình thành các tập lời giải mới với những lời giải tốt hơn, cuối cùng sẽ tìm được lời giải gần tối ưu nhất. Một số thuật ngữ thuật giải di truyền được lấy từ di truyền học: - Một tập hợp các lời giải được gọi là một Lớp hay Quần thể (population). - Mỗi lời giải được biểu diễn bởi một Nhiễm sắc thể hay Cá thể (chormosome). - Nhiễm sắc thể được tạo thành từ các gien. Một quá trình tiến hóa được thực hiện trên một quần thể tương đương với sự tìm kiếm trên không gian các lời giải có thể của bài toán. Quá trình tìm kiếm này luôn đòi hỏi sự cân bằng giữa hai mục tiêu: - Khai thác lời giải tốt nhất - Xem xét toàn bộ không gian tìm kiếm Giải thuật di truyền thực hiện tìm kiếm lời giải theo nhiều hướng bằng cách duy trì tập hợp các lời giải có thể và khuyến khích hình thành và trao đổi thông tin giữa các hướng. Tập lời giải phải trải qua nhiều bước tiến hóa, tại mỗi thế hệ, một tập mới các cá thể được tạo ra có chứa các phần của những cá thể thích nghi nhất trong thế hệ cũ, đồng thời khai thác một các hiện quả để tìm kiếm mới với mục đích tìm kiếm những cá thể mới nhằm cải thiện lời giải qua từng thế hệ. Như vậy, các đặc trưng được đánh giá tốt sẽ có cơ hội phát triển và các tính chất xấu sẽ được loại bỏ. 1.3 Quá trình thực hiện giải thuật di truyền Giải thuật di truyền được trình bày một các tổng quát như sau: PROCEDURE GeneticAlgorithm; Page | 5 BEGIN T:=0; Khởi tạo lớp P(t); Đánh giá lớp P(t); While not (Điều_kiện_kết_thúc) do Begin t:=t+1; Chọn lọc P(t) từ P(t-1); Kết hợp các cá thể của P(t); Đánh giá lớp P(t); end; END; Trong đó: - Tập hợp các lời giải ban đầu được khởi tạo ngẫu nhiên. - Quá trình tiến hóa diễn ra trong vòng lặp while, trong vòng lặp thứ t, giải thuật di truyền xác định tập các nhiễm sắc thể (các lời giải) P(t) = { x1t,x2t,…,xnt} bằng các chọn lựa các nhiễm sắc thể thích nghi hơn từ P(t-1). Mỗi nhiễm sắc thể xit được đánh giá để xác định độ thích nghi của nó và một số thành viên của P(t) lại được tái sản xuất nhờ các toán tử lai ghép và đột biến. Sơ đồ sau minh họa hoạt động của giải thuật di truyền: Page | 6 Sơ đồ hoạt động của thuật giải di truyền Khi áp dụng giải thuật di truyền để giải quyết một bài toán cụ thể, cần làm rõ các vấn đề sau: 1) Chọn cách biểu diễn di truyền nào đối với những lời giải có thể của bài toán? 2) Tạo tập lời giải ban đầu như thế nào? 3) Xác định hàm đánh giá để đánh giá mức độ thích nghi của các cá thể 4) Xác định toán tử di truyền để sản sinh con cháu 5) Xác định giá trị các tham số mà giải thuật di truyền sử dụng như kích thước tập lời giải, xác suất áp dụng các toán tử di truyền,… Để giải quyết vấn đề bài toán bằng giải thuật di truyền, chúng ta cần thực hiện 7 bước quan trọng sau: Page | 7 Bước 1: Chọn mô hình cho giải pháp của vấn đề, chọn một số đặc trưng cho toàn bộ các giải pháp (quần thể) có thể có cho vấn đề. Bước 2: Chỉ định cho mỗi giải pháp (cá thể) một ký hiệu. Ký hiệu có thể là một dãy các số 0, 1 thuộc hệ nhị phân, hay dãy các số thập phân, dãy các chữ hay hỗn hợp của số và chữ. Ký hiệu đơn giản nhất và thường dùng nhất là số nhị phân. Bước 3: Tìm hàm số thích nghi cho vấn đề và tính hệ số thích nghi cho từng giải pháp (lời giải). Bước 4: Dựa trên hệ số thích nghi của các giải pháp để thực hiện sự tạo sinh (reproduction) và biến hóa các giải pháp. Các phương thức biến hóa bao gồm: lai ghép (crossover), đột biến (mutation). Bước 5: Tính các hệ số thích nghi cho các giải pháp mới và loại bỏ những giải pháp kém nhất để chỉ còn giữ lại một số nhất định của giải pháp. Bước 6: Nếu chưa tìm được giải pháp tối ưu hay tương đối khá nhất hay chưa hết kỳ hạn ấn định, trở lại bước 4 để tìm giải pháp mới. Bước 7: Tìm được giải pháp tối ưu hoặc nếu thời gian cho phép đã chấm dứt thì kết thúc giải thuật và báo cáo kết quả tìm được. 1.4 Biểu diễn lời giải của giải thuật di truyền Biểu diễn lời giải là vấn đề đầu tiên được quan tâm tới khi bắt tay vào giải quyết một bài toán bằng giải thuật di truyền. Việc lựa chọn các biểu diễn lời giải như thế nào phụ thuộc vào từng lớp bài toán thậm chí vào từng bài toán cụ thể. Người ta có những cách biểu diễn lời giải của giải thuật di truyền phổ biến như sau: 1) Biểu diễn nhị phân: Trong biểu diễn nhị phân, mỗi nhiễm sắc thể (lời giải) là một chuỗi các bit 0 hoặc 1: Chẳng hạn: Page | 8 NST A: 101100101100101011100101 NST B: 111111100000110000011111 Ví dụ: Bài toán “Xếp ba lô” được phát biểu :” cho một tập các đồ vật, mỗi đồ vật có giá trị và kích thước xác định, cho biết sức chứa của balo. Hãy chọn cách xếp các đồ vật vào balo sao cho tổng giá trị của các đồ vật là cao nhất”. Biểu diễn mỗi lời giải của bài toán trên bằng một chuỗi nhị phân, ở đó mỗi bit 0 hoạc 1 ứng với một đồ vật không được chọn hoặc được chọn. Như vậy, bài toán được phát biểu lại như sau: “ cho một tập các khối lượng W[i], tập các giá trị P[i] và sức chứa C. Tìm một vector nhị phân x=< x1,x2,…,xn > thỏa mãn: 2) Biểu diễn hoán vị (Permutation encoding) Biểu diễn lời giải theo phương pháp hoán vị được sử dụng trong bài toán mà thứ tự các thành phần của lời giải quyết định mức độ phù hợp của lời giải, điển hình như bài toán “người du lịch”. Với cách biểu diễn thứ tự, cách sắp xếp của các gian khác nhau cho ta các nhiễm sắc thể khác nhau, mỗi nhiễm sắc thể là một chuỗi số nguyên diễn tả quan hệ tiếp nối. Lời giải được biểu diễn bằng một vecto số nguyên v=(i1,i2,…,in), với mỗi v là một hoán vị của tập thứ tự. Vd: NST A: ( 1 5 3 2 6 4 7 9 8 ) NST B: ( 8 5 6 7 2 3 1 4 9 ) 3) Biểu diễn giá trị (Value Encoding) Thường dùng trong các bài toán mà cách biểu diễn chuỗi nhị phân là khó thực hiện như miền xác định của các thành phần lời giải khá lớn với độ chính xác yêu cầu cao, miền xắc định không rõ ràng, hay các bài toán mà việc biểu diễn nhị phân là “không tự nhiên”. Page | 9 Trong biểu diễn giá trị, mỗi cá thể là một chuỗi các giá trị liên quan đến bài toán, các giá trị có thể là số thực, số nguyên, ký tự hay đối tượng phức tạp khác. Vd: NST A: (0.1229 2.92343.0012, 0.3567, 4.3828) NST B (AJUHNEOLDOGSGLLIKUFSEJHJH) 4) Biểu diễn dạng cây (tree encoding) Các biểu diễn lời giải dùng cấu trúc cây được dùng chủ yếu trong các chương trình tiến hóa, trong biểu diễn biểu thức, hay lập các chương trình di truyền học. Với cách biểu diễn này, mỗi cá thể là một cây các đối tượng. 1.5 Định nghĩa các toán tử di truyền Trong thuật giải di truyền, các cá thể mới liên tục được sinh ra trong quá trình tiến hoá nhờ sự lai ghép ở thế hệ cha -mẹ. Một cá thể mới có thể mang những tính trạng của cha-mẹ (di truyền), cũng có thể mang những tính trạng hoàn toàn mới (đột biến). Di truyền và đột biến là hai cơ chế có vai trò quan trọng như nhau trong tiến trình tiến hoá, dù rằng đột biến xảy ra với xác xuất nhỏ hơn rất nhiều so với hiện tượng di truyền. Các thuật toán tiến hoá, tuy có những điểm khác biệt, nhưng đều mô phỏng ba toán tử cơ bản: Chọn lọc, lai ghép, đột biến. 1) Toán tử chọn lọc: • Toán tử chọn lọc tỷ lệ : Được sử dụng thường xuyên nhất trong giải thuật di truyền Xác suất lựa chọn của mỗi cá thể tỷ lệ thuận với giá trị độ thích hợp của nó, được tính theo công thức: Pi = f (vi) /F (i = 1 pop-size – kích cỡ của quần thể) gọi là xác suất chọn cho mỗi nhiễm sắc thể vi. Trong đó: - f (vi) là hàm thích nghi của mỗi cá thể vi. - F là tổng của các giá trị thích nghi của quần thể. Việc chọn lọc cá thể nào phụ thuộc vào vị trí xác suất qi của mỗi nhiễm sắc thể vi được tính như sau: Page | 10 [...]... nhánh và đường biên, kỹ thuật mô phỏng, tìm kiếm Tabu và phương pháp nút cổ chai, một số phương pháp giải quyết bài toán xếp thời khóa biểu gồm các hướng tiếp cận truyền thống và hiện nay như: - Giải thuật vét cạn Giải thuật tô màu đồ thị Giải thuật leo đồi Phương pháp luyện kim Giải thuật tối ưu đàn kiến Giải thuật di truyền Trong chương tiếp theo, bài thu hoạch sẽ trình bày một cách cụ thể quá trình và. .. của giải thuật di truyền là ở tính song song của nó, giải thuật di truyền trong không giai tìm kiếm với nhiều cá thể hơn ( với với kiểu di truyền hơn là kiểu hình), vì vậy thuật toán này ít bị rơi vào các lời giải tối ưu cực bộ như những phương pháp khác Thuật toán di truyền cũng dễ thực hiện, chúng ta chỉ phải biểu diễn NST mới để giải quyết các bài toán khác nhau và nếu bài toán nào đó có phương pháp. .. bài toán đó mà thôi Nhược điểm Khuyết điểm của thuật giải du truyền là ở thời gian tính toán của nó, có thể là chậm hơn so với các phương pháp khác, nhưng với tốc độ của các máy vi tính hiện nay thì đó cũng không phải là một vấn đề nghiêm trọng Page | 14 Sự khác biệt của giải thuật di truyền so với các giải thuật khác: Giải thuật di truyền khác với những sự tối ưu hóa thông thường và những giải thuật. .. chương tiếp theo, bài thu hoạch sẽ trình bày một cách cụ thể quá trình và cách thức xây dựng giải thuật di truyền nhằm giải quyết bài toán xắp thời khóa biểu Page | 16 Chương 3: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TOÁN XẾP THỜI KHÓA BIỂU 1 Phát biểu bài toán 1.1 Khảo sát tìm hiểu vấn đề Bài toán đặt ra vấn đề cần sắp xếp thời khoá biếu cho một trường đại học với nhiều cơ sở khác nhau Cần có sự sắp... lý.Vì thế bài toán xếp thời khóa biểu là một vấn đề rất khó để giải quyết Hiện nay có nhiều khả năng để phát triển các kỹ thuật hiện tại để giải quyết bài toán này Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệ nhân tạo như hệ thống tri thức cơ sở (knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạng Nơron và các tiếp cận của các Nghiên cứu hoạt động: lập trình tính toán, lập trình... thời khóa biểu - Hạn chế: o Do giải thuật di truyền mang tính chất ngẫu nhiên nên đôi khi kết quả đạt được - không phải là 100% o Giải thuật Di Truyền có thể giải quyết bài toán tối ưu bất kỳ (cực tiểu hóa hàm mục tiêu) với n biến vào Tuy nhiên, với số lượng biến vào khá nhiều, các giá trị hàm mục tiêu đạt được thường không gần với kết quả tối ưu thực sự Để khắc phục vấn đề này, có thể tăng số lượng... tảng phần cứng và công nghệ khác nhau Page | 25 Giao diện chính của chương trình: Danh sách sinh viên Page | 26 Danh sách phòng học: Page | 27 Kết quả sắp thời khóa biểu dựa trên danh sách phòng thi và số lượng sinh viên đăng ký: Chương 5: KẾT LUẬN Kết quả đạt được: o Tìm hiểu cơ sở lý thuyết và cách thức xây dựng thuật giải di truyền o Áp dụng được giải thuật di truyền để giải quyết bài toán sắp thời... hiểu và áp dụng thuật giải di truyền vào bài toán xắp thời khóa biểu nên cần đơn giản hóa một số chi tiết, thành phần và điều kiện thực tế để thuận tiện cho việc thực hiện, xây dựng và kiểm thử kết quả Do đó, bài toán lập lịch được giới hạn với các thành phần dữ liệu và các ràng buộc như sau: Dữ liệu bài toán: Danh sách cơ sở Danh sách khoa Danh sách khoá học Page | 17 Danh sách học phần học và. .. có nhiều chứng 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, như một môn học bình thường khác Như vậy, với mỗi phương án sắp xếp thời khóa biểu được mô hình hóa như là 1 NST trong giải thuật di truyền, với mỗi NST có thể xem là một mảng 3 chiều: Chiều thứ nhất biểu diễn các tiết... chọn Tất cả như sau : • Các ràng buộc lớp, giáo viên được phân công dạy • Các môn học và số chứng chỉ từng môn • Tính toán số tiết học tương ứng các môn • Chọn qui định đọc và ghi nhận nhiễm sắc thể • … Giống như cá thể được mô tả như trên, hàng loạt các cá thể được tạo ra và được xem như quần thể ban đầu trong mô hình thuật giải di truyền của phần xếp lịch lớp Sau Page | 21 khi quần thể có đủ số lượng, . CÔNG NGHỆ THÔNG TIN BÀI THU HOẠCH MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ Đề tài: Tìm hiểu về giải thuật di truyền và áp dụng vào bài toán sắp xếp thời khóa biểu trong trường. giải thuật và báo cáo kết quả tìm được. 1.4 Biểu diễn lời giải của giải thuật di truyền Biểu diễn lời giải là vấn đề đầu tiên được quan tâm tới khi bắt tay vào giải quyết một bài toán bằng 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