Đã từ lâu, việc lập thời khóa biểu cho các trường học đã được tổng quát hóa thành bài toán, các nhà nghiên cứu đã và đang tìm các phương pháp giả nó bằng các công cụ, thuật toán tin học. Các bài toán xếp thời khóa biểu rất phong phú và đa dạng bởi những ràng buộc và yêu cầu đặc trưng của từng trường học, thậm chí từng môn học. Bởi vậy lời giải của bài toán xếp thời khóa biểu thường là những giải pháp chấp nhận được, hay nói cách khác bài toán xếp thời khóa biểu là một bài toán tối ưu. Trong gần ba thập niên qua, thuật toán di truyền và các cải tiến phát triển của nó gọi chung là thuật toán tiến hóa đã thực sự tạo ra các kết quả rất khả quan khi áp dụng giải quyết các bài toán tối ưu. Thuật toán di truyền mô phỏng sự tiến hóa tự nhiên của sinh học với quan niệm sự tiến hóa tự nhiên của sinh học là một quá trình tối ưu. . Thuật toán trên tỏ ra rất hiệu quả trong việc áp dụng giải quyết các bài toán tối ưu trong thực tế, tiêu biểu là bài toán lập thời khóa biểu trường học, là một bài toán thú vị và có tính thực tiễn cao. Ở Việt Nam đó có một vài phần mềm lập thời khóa biểu khá tốt, nhưng chưa đáp ứng hết các yêu cầu thực tế cũng như cách tổ chức giảng dạy của từng trường. Ở Quỳ Châu, chưa có phần mềm lập thời khóa biểu riêng đáp ứng các điều kiện cụ thể của miền núi. Xuất phát từ những vấn đề trên, đề tài “Nghiên cứu thuật toán di truyền cho bài toán xếp thời khóa biểu trường Trung học phổ thông” được tôi lựa chọn làm khóa luận tốt nghiệp. Khóa luận tập trung nghiên cứu về thuật toán di truyền và đồng thời giải quyết bài toán thời khóa biểu về mặt lý thuyết lẫn xây dựng phần mềm, xem như một thử nghiệm đầu tiên. Do khả năng và thời gian hạn chế, tôi chỉ mới hoàn thành phần mềm ở mức cơ bản nhất, chỉ tạm sử dụng nội bộ trong trường nơi tôi công tác. Hy vọng trong thời gian tới, tôi sẽ bổ sung thêm chức năng cho phần mềm và hoàn chỉnh thành sản phẩm sử dụng được trong ngành giáo dục nói chung.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH PHAN VĂN THẾ ĐỀ CƯƠNG LUẬN VĂN THẠC SỸ Chuyên ngành: CÔNG NGHỆ THÔNG TIN Mã ngành: 60.48.02.01 NGHIÊN CỨU THUẬT TỐN DI TRUYỀN CHO BÀI TỐN XẾP THỜI KHĨA BIỂU TRƯỜNG THPT Người hướng dẫn: TS.VŨ CHÍ CƯỜNG Vinh, tháng 9/2017 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… Kết luận: Đồng ý cho bảo vệ Đề cương CHTS đợt tháng 12/2017 Vinh, ngày …… tháng …… năm 2017 GIÁO VIÊN HƯỚNG DẪN NHẬN XÉT CỦA HỘI ĐỒNG XÉT DUYỆT ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………………………… …………………………… ……………………………………………………… …………………………… ……………………………………………………… …………………………… ………………………………………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… ……………………………………………………….…………………………… Kết luận: Đồng ý/ không đồng ý cho tiếp tục triển khai đề tài CHTS để bảo vệ đợt tháng 5/2018 HỘI ĐỒNG XÉT DUYỆT Vinh, ngày …… tháng …… năm 2017 THƯ KÝ MỤC LỤC MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Mục tiêu nghiên cứu 10 Đối tượng phạm vi nghiên cứu 10 Ý nghĩa khoa học thực tiễn đề tài 10 4.1 Ý nghĩa khoa học 10 4.2 Ý nghĩa thực tiễn 10 Kết cấu luận văn (Giới thiệu tên chương luận văn) 10 Chương I - GIẢI THUẬT DI TRUYỀN 11 1.1 Tổng quan thuật toán di truyền 14 1.1.1 Giới thiệu 15 1.1.2 Sự khác biệt thuật toán di truyền thuật toán khác 15 1.1.3 Các tính chất thuật tốn di truyền 16 1.2 Các thành phần thuật toán di truyền 17 1.2.1 Biểu diễn nhiễm sắc thể 17 1.2.1.1 Biểu diễn nhị phân 18 1.2.1.2 Biểu diễn số thực 18 1.2.2 Khởi tạo quần thể ban đầu 18 1.2.3 Đánh giá cá thể 18 1.2.4 Các phép toán di truyền 19 1.2.4.1 Phương pháp chọn lọc 19 1.2.4.2 Phương pháp lai ghép 19 1.2.4.3 Phương pháp đột biến 20 1.2.5 Điều kiện dừng thuật toán 20 1.2.6 Các tham số thuật toán di truyền 20 1.3 Ví dụ minh họa 21 Chương II – BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU 11 2.1 Tổng quan toán lập lịch 11 2.1.1 Bài toán 11 2.1.2 Các thuộc tính 12 2.1.3 Một số toán lập lịch 12 2.2 Bài toán xếp thời khóa biểu 12 2.2.1 Bài toán 12 2.2.2 Dữ liệu đầu vào 13 2.2.3 Các ràng buộc 13 Chương III 22 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN LẬP THỜI KHĨA BIỂU 22 3.1 Phát biểu tốn 22 3.1.1 Biểu diễn nhiễm sắc thể 22 3.1.2 Khởi tạo quần thể 22 3.1.3 Các phép toán di truyền 23 3.1.3.1 Lai ghép Đột biến 23 3.1.3.2 Chọn lọc 23 3.1.3.3 Hàm đánh giá độ thích nghi 23 3.2 Phân tích thiết kế chương trình 23 3.2.1 Phân tích Mơ tả liệu đầu vào 23 3.2.2 Thiết kế chương trình 23 3.3 Thử nghiệm đánh giá kết 23 3.3.1 Số liệu thử nghiệm 23 3.3.2 Kết đánh giá 23 DANH MỤC CÁC TỪ VIẾT TẮT GA: Genetic Algorithms NST: Nhiễm sắc thể DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH Hình 1.1 Thuật tốn di truyền TÊN ĐỀ TÀI Nghiên cứu thuật toán di truyền cho tốn xếp thời khóa biểu Trường THPT Quỳ Châu NGHIÊN CỨU THUẬT TOÁN DI TRUYỀN CHO BÀI TỐN XẾP THỜI KHĨA BIỂU TRƯỜNG THPT MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu 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 Một bảng thời khóa biểu hợp lý giúp giáo viên thuận lợi, chủ động lên lớp giúp học sinh thoải mái học tập.Đã từ lâu, việc lập hay xếp thời khóa biểu hoạt động quan trọng nhà trường phải ln ln hồn thành trước triển khai giảng dạy Lập thời khóa biểu phương pháp thủ công công việc nặng nề, tốn nhiều thời gian dễ vi phạm ràng buộc nghiệp vụ Do vậy, áp dụng phải trải qua vài lần điều chỉnh đạt yêu cầu Đã từ lâu, việc lập thời khóa biểu cho trường học tổng qt hóa thành tốn, nhà nghiên cứu tìm phương pháp giả cơng cụ, thuật tốn tin học Các tốn xếp thời khóa biểu phong phú đa dạng ràng buộc yêu cầu đặc trưng trường học, chí mơn học Bởi lời giải tốn xếp thời khóa biểu thường giải pháp chấp nhận được, hay nói cách khác tốn xếp thời khóa biểu toán tối ưu Trong gần ba thập niên qua, thuật toán di truyền cải tiến - phát triển gọi chung thuật tốn tiến hóa thực tạo kết khả quan áp dụng giải toán tối ưu Thuật tốn di truyền mơ tiến hóa tự nhiên sinh học với quan niệm tiến hóa tự nhiên sinh học q trình tối ưu Thuật toán tỏ hiệu việc áp dụng giải toán tối ưu thực tế, tiêu biểu toán lập thời khóa biểu trường học, tốn thú vị có tính thực tiễn cao Ở Việt Nam có vài phần mềm lập thời khóa biểu tốt, chưa đáp ứng hết yêu cầu thực tế cách tổ chức giảng dạy trường Ở Quỳ Châu, chưa có phần mềm lập thời khóa biểu riêng đáp ứng điều kiện cụ thể miền núi Xuất phát từ vấn đề trên, đề tài “Nghiên cứu thuật toán di truyền cho tốn xếp thời khóa biểu trường Trung học phổ thơng” tơi lựa chọn làm khóa luận tốt nghiệp Khóa luận tập trung nghiên cứu thuật tốn di truyền đồng thời giải toán thời khóa biểu mặt lý thuyết lẫn xây dựng phần mềm, xem thử nghiệm Do khả thời gian hạn chế, hoàn thành phần mềm mức nhất, tạm sử dụng nội trường nơi công tác Hy vọng thời gian tới, bổ sung thêm chức cho phần mềm hoàn chỉnh thành sản phẩm sử dụng ngành giáo dục nói chung Mục tiêu nghiên cứu Nghiên cứu, tìm hiểu thuật tốn di truyền, sở tiếp cận để giải tốn thời khóa biểu cho Trường THPT Đối tượng phạm vi nghiên cứu Tìm hiểu toán lập lịch hướng giải truyền thống Tìm hiểu thuật tốn di truyền, ứng dụng thuật tốn di truyền vào tốn lập thời khóa biểu Xây dựng ứng dụng lập thời khóa biểu cho Trường THPT Ý nghĩa khoa học thực tiễn đề tài 4.1 Ý nghĩa khoa học Thông qua đề tài tác giả hiểu rõ toán lập lịch, phuơng pháp tiếp cận giải tốn lập lịch, qua có so sánh đánh giá thuật tốn Tìm hiểu sâu thuật toán di truyền ứng dụng vào toán thời khóa biểu Trường THPT nhằm có cải tiến buớc thuật toán di truyền với toán cụ thể việc biểu diễn toán, cách chọn cá thể tốt, cách xây dựng hàm đánh giá, 4.2 Ý nghĩa thực tiễn Bài tốn lập thời khóa biểu tốn có nhiều ứng dụng thực tế, đặc biệt truờng học Ứng dụng thuật tốn di truyền để giải tốn thời khóa biểu hướng hy vọng giải đuợc tốn thời khóa biểu Qua đề tài, tác giả xây dựng ứng dụng thực tế góp phần giảm thiểu thời gian nguồn lực cho việc lập thời khóa biểu cho Trường học Kết cấu luận văn (Giới thiệu tên chương luận văn) 10 Chương I BÀI TỐN SẮP XẾP THỜI KHĨA BIỂU Bài tốn xếp Thời khóa biểu thuộc lớp Bài tốn lập lịch Bài tốn xếp thời khóa biểu trường học toán thú vị lớp tốn tối ưu tính chất đa dạng mơ hình thời khóa biểu, có nhiều ràng buộc phức tạp tính chất thực tiễn Bài tốn thời khóa biểu thuộc loại tốn NP-khó, trường hợp riêng tốn lập lịch, đưa chuỗi kiện (các môn học, giảng môn thi) bao gồm giáo viên học sinh khoảng thời gian định trước, tập ràng buộc phải thỏa loại thời khóa biểu khác Tập ràng buộc bao gồm khả tham dự học sinh, khả làm việc giáo viên, số lượng sức chứa phòng học yêu cầu kiện 1.1 Tổng quan toán lập lịch Bài toán lập lịch chọn chuỗi thao tác đồng thời định thời gian bắt đầu/ kết thúc tài nguyên cần thiết cho thao tác Điều cần quan tâm yếu chi phí thời gian máy rỗi, lực lao động đơn đặt hàng cần hoàn thành hạn Ý tưởng phương pháp mã hóa biểu diễn lịch phân cơng tốn tử di truyền phải thực theo cách có ý nghĩa, giải mã phải tạo lời giải hợp lệ cho toán Thủ tục giải mã mô thao tác công việc theo cách mà máy tính sẵn sàng chọn lựa, thao tác cho phép từ danh sách ưu tiên lấy 1.1.1 Bài toá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 Vì tốn lập lịch vấn đề khó để giải Hiện có nhiều khả để phát triển kỹ thuật để giải toán Những kỹ thuật bao gồm: tiếp cận Trí tuệ nhân tạo hệ thống tri thức sở (knowledge-based systems), toán thoả mãn ràng buộc, hệ chuyên gia, mạng Nơron tiếp cận nghiên cứu hoạt động: lập trình tính tốn, lập trình động, tìm kiếm nhánh đường 11 biên, kỹ thuật mô phỏng, tìm kiếm Tabu phương pháp nút cổ chai 1.1.2 Các thuộc tính Tài ngun: nguồn liệu đầu vào toán Các tài nguyên phục hồi khơng Tác vụ: đánh giá qua tiêu chuẩn thực thời gian thực hiện, chi phí, mức tiêu thụ nguồn tài nguyên Ràng buộc: điều kiện cần thỏa mãn để tốn đưa lời giải tốt Mục tiêu: đánh giá độ tối ưu lịch trình lời giải tốn Khi mục tiêu thỏa mãn ràng buộc phải thỏa mãn 1.1.3 Một số toán lập lịch - Bài toán lập lịnh Job Shop - Bài tốn gia cơng - Bài tốn lịch trực - Lập lịch ưu tiên hạn - Bài toán xếp thời khóa biểu Trường học 1.2 Bài tốn xếp thời khóa biểu 1.2.1 Bài tốn Bài tốn xếp thời khóa biểu trường học nói chung xếp thời khóa biểu trường trung học phổ thơng nói riêng tốn khó Sự phức tạp tốn khơng vấn đề tìm mơt thời khóa biểu cho Trường học thỏa mãn ràng buộc thời gian, ràng buộc chuyên môn, quy định giáo dục mà vấn đề khó khăn ta phải tìm thời khóa biểu tốt thích hợp cho tất giáo viên, phải thỏa mãn điều kiện, yêu cầu thời gian, hạn chế số tiết trống ngày số ngày lên lớp giáo viên thời khóa biểu Việc xếp thời khóa biểu trường phổ thông luôn phải thực hiên trước học kỳ bắt đầu Trước học kỳ bắt đầu, nội dung môn học giáo viên phụ trách môn học lớp phải xác định thông qua họp chuyên môn, kết họp gửi cho ban giám hiệu nhà trường việc lên lịch cho tồn trường phó hiệu trưởng phụ trach chun mơn thư kí hội đồng trường đảm nhiệm Hiện nay, việc thời khóa biểu hầu hết trường phổ thông thực cách thủ công, phải dựa vào kinh 12 nghiệm thực tế làm Thơng thường việc xếp thời khóa biểu phải trung bình tuần Vậy tốn đặt vấn đề cần xếp thời khoá biếu cho trường THPT xếp lịch học cho lớp cho vừa phù hợp lại vừa tiện dụng 1.2.2 Dữ liệu đầu vào Danh sách khố học Danh sách mơn học Danh sách lớp học Danh sách giáo viên Bảng phân công giáo viên giáo dạy lớp Bảng yêu cầu ràng buộc giáo viên với lịch dạy Bảng yêu cầu ràng buộc lớp với lịch học 1.2.3 Các ràng buộc Ràng buộc cứng: Một giáo viên dạy lớp tiết Các lớp có mơn học tiết Một giáo viên dạy 30 tiết tuần Một giáo viên không dạy tiết/buổi Ràng buộc mềm: Tất học mơn dạy lớp phải dạy giáo viên Mỗi lớp học môn thời điểm Một lớp có mơn nhiều lần ngày Tất giáo viên có số lượng dạy 1.3 Một số Phần mềm xếp tời khóa biểu 1.2.1 Phần mềm xếp thừi khóa biểu SmartScheduler 1.2.2 Phần mềm xếp thừi khóa biểu cơng ty SchoolNet 13 Chương II THUẬT TỐN DI TRUYỀN Thuật toán di truyền lĩnh vực tin học thuật tốn thú vị, mô qui luật đấu tranh sinh tồn tự nhiên thuật tốn vơ hiệu loại toán tối ưu Trong nội dung chương này, tơi trình bày đặc điểm thuật toán di truyền Nhà bác học Charles Darwin nêu lý thuyết tiến hóa tự nhiên lồi vật Qua nhiều hệ, sinh vật phát triển dựa nguyên lý chọn lọc tự nhiên “lồi thích nghi tồn tại” Như ta thấy tự nhiên loài vật cạnh tranh nơi trú ẩn, thực phẩm, Các cá thể loài cạnh tranh để thu hút bạn tình mùa sinh sản Do cá thể thích nghi có hội tồn cá thể thích nghi phát triển cho nhiều Trong trình sinh sản tổ hợp đặc tính tốt từ tổ tiên, sau vài hệ loài tiến hóa tự nhiên thích nghi mơi trường phát triển Dựa tảng lý thuyết tiến hóa tự nhiên, năm 1975 Holland phát triển ý tưởng vào hệ thống nhân tạo, ơng áp dụng để tối ưu hóa vấn đề xây dựng thuật toán di truyền Hiện thuật toán di truyền xem công cụ mạnh mẽ để giải vấn đề tìm kiếm tối ưu hóa phức tạp thời gian biểu, lập kế hoạch mua sắm 2.1 Tổng quan thuật toán di truyền Thuật toán di truyền kỹ thuật khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho toán tối ưu tổ hợp (combinatorial optimization), phân ngành thuật tốn tiến hóa, vận dụng nguyên lý tiến hóa như: di truyền, đột biến, chọn lọc tự nhiên, trao đổi chéo (lai ghép) Nó sử dụng ngơn ngữ máy tính để mơ q trình tiến hố tập hợp đại diện trừu tượng (gọi nhiễm sắc thể), giải pháp (gọi cá thể) cho tốn tối ưu hóa vấn đề Tập hợp tiến triển theo hướng chọn lọc giải pháp tốt Thuật toán di truyền thuật tốn tiến hố, hình thành dựa quan niệm coi tiên đề phù hợp với thực tế khách quan Đó quan niệm “Q trình tiến hố tự nhiên q trình hồn hảo nhất, hợp lý tự 14 mang tính tối ưu” Q trình tiến hố thể tính tối ưu chỗ hệ sau tốt hệ trước 2.1.1 Giới thiệu Trong thuật toán di truyền người ta dùng thuật ngữ vay mượn di truyền học như: cá thể, nhiễm sắc thể, gen, quần thể, độ thích nghi, chọn lọc, lai ghép, đột biến, v.v Trong cá thể biểu diễn lời giải, giải pháp tốn Khơng giống tự nhiên cá thể có nhiều nhiễm sắc thể, quy ước cá thể có nhiễm sắc thể Các nhiễm sắc thể cá thể chuỗi tuyến tính, nhiễm sắc thể có đơn vị nhỏ gen Mỗi gen đại diện thuộc tính, tính chất có vị trí định nhiễm sắc thể Quần thể tập hợp hữu hạn xác định cá thể, thuật toán di truyền quần thể tập cá thể biểu diễn tập lời giải Các phép toán di truyền chọn lọc, lai ghép, đột biến thực quần thể để tạo quần thể Một toán giải thuật tốn di truyền thơng thường phải qua bước sau: > Biểu diễn lời giải toán (hay nhiễm sắc thể) chuỗi nhị phân, chuỗi ký tự, số thập phân, > Khởi tạo quần thể ban đầu gồm N cá thể cách ngẫu nhiên > Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá cá thể theo độ thích nghi chúng > Xác định xác suất lai ghép, xác suất đột biến, > Xây dựng phương pháp lai ghép, chọn lọc, đột biến 2.1.2 Sự khác biệt thuật toán di truyền thuật toán khác Khi dùng phương pháp truyền thống có số cách giải sau: - Phương pháp liệt kê - Phương pháp giải tích - Phương pháp tìm kiếm ngẫu nhiên Đặc trưng thuật toán di truyền so với phuong pháp truyền thống: Thuật toán di truyền làm việc với mã hố tập thơng số khơng làm việc với giá trị thơng số Thuật tốn di truyền tìm kiếm từ quần thể điểm khơng phải từ điểm 15 Thuật tốn di truyền sử dụng thông tin tiêu chuẩn tối ưu hàm mục tiêu không dùng thơng tin hỗ trợ khác Thuật tốn di truyền sử dụng luật chuyển đối mang tính xác suất khơng phải luật chuyển đổi mang tính xác định Thuật tốn di truyền thường khó cài đặt, áp dụng Tuy nhiên lúc cho lời giải xác Một số thuật tốn di truyền cung cấp lời giải tiềm cho toán xác định để nguời sử dụng lụa chọn [ ] 2.1.3 Các tính chất thuật tốn di truyền Thuật toán di truyền kỹ thuật chung, giúp giải vấn đề cách mô tiến hóa người hay sinh vật nói chung điều kiện qui định sẵn môi trường Mục tiêu thuật tốn di truyền khơng nhằm đưa lời giải xác tối ưu mà đưa lời giải tương đối tối ưu Một cá thể thuật toán di truyền biểu diễn giải pháp tốn Tuy nhiên, khơng giống với tự nhiên cá thể có nhiều nhiễm sắc thể (NST) mà để giới hạn thuật toán di truyền, ta quan niệm cá thể có NST Do đó, khái niệm cá thể NST thuật tốn di truyền coi tương đương Một NST tạo thành từ nhiều gen, gen có giá trị khác để quy định tình trạng Trong thuật tốn di truyền, gen coi phần tử chuỗi NST Một tập hợp cá thể có số đặc điểm gọi quần thể Trong thuật toán di truyền, ta quan niệm quần thể tập lời giải tốn 16 Hình 1.1: Thuật toán di truyền 2.2 Các thành phần thuật toán di truyền 2.2.1 Biểu diễn nhiễm sắc thể Để áp dụng giải toán thuật toán di truyền, thao tác quan trọng phải biết chọn cấu trúc liệu phù hợp Để giải toán thuật toán di truyền, ta thường chọn sử dụng loại cấu trúc liệu sau: Biểu diễn nhị phân, biểu diễn số thực cấu trúc Trong biểu diễn nhị phân biểu diễn số thực thường sử dụng nhiều 17 2.2.1.1 Biểu diễn nhị phân Quy tắc biểu diễn gen qua chuỗi nhị phân: Chọn chuỗi nhị phân ngắn đủ thể tất kiểu gen Để biểu diễn chuỗi nhị phân, ta thường dùng cách sau: Mảng byte, mảng bit biểu diễn mảng byte, mảng bit biểu diễn mảng INTEGER Mảng byte mảng bit sử dụng Đối với máy tính ngày nay, người ta thường dùng mảng integer để tối ưu truy xuất Vì tơi giới thiệu mảng integer VD: Nhiễm sắc thể x ta biểu diễn chuỗi 15 bit X=(010100110010101)2 2.2.1.2 Biểu diễn số thực Sau thuật toán di truyền cổ điển Holland cơng bố, chứng tỏ phương pháp tốt để giải toán tối ưu khó cải tiến phong phú để tăng hiệu ứng dụng Đối với tốn khó có miền chấp nhận lớn đòi hỏi sai số nhỏ độ dài nhiễm sắc thể theo phương pháp thuật toán di truyền cổ điển lớn, nên việc áp dụng thuật tốn di truyền khó khăn Do vậy, người ta cải tiến cách biểu diễn nhiễm sắc thể vector số thực để giải toán Trong cách biểu diễn này, người ta dùng vector số thực miền chấp nhận (thuộc tập M) làm nhiễm sắc thể thiết kế nhóm phương pháp di truyền cho thích hợp với cách biểu diễn mà giữ nguyên thủ tục thuật toán di truyền đặc tả 2.2.2 Khởi tạo quần thể ban đầu Tạo quần thể thuật tốn, nơi xuất phát q trình tiến hóa, bao gồm tất giá trị thô ban đầu Tùy theo vấn đề tốn mà có cách khởi tạo khác 2.2.3 Đánh giá cá thể Chắc chắn việc chọn cá thể thông qua kết quả, hay mục đích vấn đề Các cá thể tốt chọn lọc để đưa vào hệ sau Sự lựa chọn thực dựa vào độ thích nghi với mơi trường cá thể Có nhiều phương pháp để chọn nhiễm sắc thể tốt nhất, ví dụ: chọn lọc roulette wheel, chọn lọc xếp hàng, chọn lọc cạnh tranh, v.v… + Chọc lọc Roulette wheel + Chọn lọc xếp hạng (Rank Selection) 18 + Chọn lọc cạnh tranh (Tournament Selection) 2.2.4 Các phép toán di truyền Ở phần này, tìm hiểu phép toán di truyền phục vụ cho toán xếp TKB 2.2.4.1 Phương pháp chọn lọc Việc chọn lọc cá thể từ quần thể dựa vào độ thích nghi cá thể Các cá thể có độ thích nghi cao có nhiều khả chọn lựa (những cá thể khỏe mạnh có nhiều khả phối giống) Hàm thích nghi cần hàm thực dương, khơng tuyến tính, khơng liên tục, khơng khả vi Giả sử hệ thời P(t) gồm n cá thể {x[1], x[2], , x[n]} Số n gọi cỡ quần thể Với cá thể x[*], ta tính độ thích nghi f(x[*]) Tính tổng độ thích nghi tồn quần thể: F = f(x[1]) + f(x[2]) + + f(x[n]) Mỗi lần chọn lọc, ta thực hai bước sau: Bước 1: Sinh giá trị thích nghi ngẫu nhiên số thực q khoảng (0, F); Bước 2: x[k] cá thể chọn k số nhỏ cho tổng độ thích nghi k cá thể không nhỏ q, tức f(x[1])+f(x[2])+ +f(x[k]) >=q Rõ ràng với cách chọn này, cá thể có độ thích nghi cao (gây tổng lớn q) chọn Các cá thể có độ thích nghi cao có hay nhiều sao, cá thể có độ thích nghi thấp khơng có mặt hệ sau (nó bị chết đi) 2.2.4.2 Phương pháp lai ghép Trên cá thể chọn lọc (sau thực xong phương pháp chọn lọc), ta tiến hành lai ghép Với cỡ quần thể n, ta đưa xác suất lai ghép pc Xác suất đưa hy vọng có n*pc cá thể lai ghép Với cá thể, ta thực hai bước sau đây: Bước 1: Sinh xác suất lai ghép số thực r đoạn [0,1] Bước 2: Nếu r < pc cá thể chọn để lai ghép Từ cá thể chọn để lại ghép, ta cặp đôi chúng cách ngẫu nhiên Trong trường hợp nhiễm sắc thể chuỗi nhị phân có độ dài cố định, giả sử m, ta thực phép lai ghép sau: 19 Với cặp, sinh vị trí ngẫu nhiên làm điểm bắt đầu ghép số nguyên p đoạn [0, m-1] Tổng quát, giả sử có hai cặp nhiễm sắc thể hai cá thể chọn lai ghép: a = (a[1 ], , a[p], a[p+1], , a[m]) b = (b[1 ], , b[p], b[p+1], , b[m]) Cặp thay hai đoạn từ vị trí thứ p+1: a’ = (a[1 ], , a[p], b[p+1], , b[m]) b’ = (b[1], , b[p], a[p+1], , a[m]) 2.2.4.3 Phương pháp đột biến Ta thực đột biến cá thể sau lai ghép Đột biến thay đổi trạng thái số gen nhiễm sắc thể Một gen chịu xác suất đột biến pm Xác suất đột biến pm ta xác định xác suất thấp Tổng quát, với nhiễm sắc thể chuỗi nhị phân Với vị trí i nhiễm sắc thể: a = (a[1 ], , a[p], a[p+1], , a[m]) Ta sinh số thực ngẫu nhiên pi đoạn [0,1] Đột biến a biến thành a’ sau: a' = [a’[1], , a’[*], , a’[m]), đó: a’[*] = a[*] pi >= pm a’[*] = - a[*] pi < pm Sau trình chọn lọc, lai ghép, đột biến, hệ sinh Cơng việc lại thuật toán việc lặp lại bước 2.2.5 Điều kiện dừng thuật toán Một số điều kiện dừng thuật toán: Kết thúc theo kết quả, tức giá trị thích nghi cá thể quần thể có giá trị sai số nhỏ giá trị £ cho truớc, dừng thuật tốn Kết thúc dựa số hệ, số vấn đề dựa vào số hệ quần thể Khi số luợng tiến hoá quần thể đến giới hạn cho phép thuật tốn dừng, mà khơng quan tâm đến chất lượng cá thể quần thể Tính theo thời gian, phụ thuộc vào thời gian chạy chương trình quy định trước thuật toán dừng Kết hợp nhiều phương pháp khác nhau, thuật tốn sử dụng kết hợp nhiều phương pháp khác để giải vấn đề 2.2.6 Các tham số thuật toán di truyền - Kích thước quần thể: PopSize, số cá thể trì qua hệ tiến hóa thuật tốn di truyền 20 - Xác xuất đột biến: pm xác suất đột biến gen - Xác suất lai ghép: pc xác suất cá thể chọn cho phép lai ghép 2.3 Ví dụ minh họa 2.3.1 Biểu diễn nhiễm sắc thể 2.3.2 Hàm thích nghi 2.3.3 Khởi tạo quần thể 2.3.4 Chọn lọc cá thể 2.3.5 Phương pháp lai ghép 2.3.6 Phương pháp đột biến 2.3.7 Các tham số sử dụng ví dụ điều kiện dừng 21 Chương III ỨNG DỤNG THUẬT TOÁN DI TRUYỀN CHO BÀI TỐN LẬP THỜI KHĨA BIỂU 3.1 Phát biểu tốn Có danh sách giáo viên, danh sách khoảng thời gian, danh sách lớp Bài tốn cần tìm thời khóa biểu tối ưu (giáo viên - thời gian - lớp); hàm mục tiêu phải thỏa mục tiêu (các ràng buộc mềm) gồm: Có số xác định trước cho giáo viên lớp; Chỉ giáo viên lớp vào định; Một giáo viên dạy hai lớp lúc; Đối với lớp xếp thời khóa biểu vào khoảng thời gian, phải có giáo viên Ngồi có mục tiêu sư phạm trải số lớp nguyên tuần, mục tiêu thuộc cá nhân giáo viên hợp đồng dạy buổi chiều, mục tiêu tổ chức có giáo viên bổ sung sẵn sàng chỗ dạy tạm thời 3.1.1 Biểu diễn nhiễm sắc thể Biểu diễn nhiễm sắc thể tự nhiên cho toán biểu diễn ma trận: ma trận, hàng tương ứng với giáo viên, cột tương ứng với giờ, phần tử ma trận R lớp Các ràng buộc chủ yếu xử lý toán tử di truyền thuật toán sử dụng để loại bỏ trường hợp mà có nhiều giáo viên xuất lớp vào Lịch học lớp gồm thành phần chính, bao gồm: giáo viên, mơn học, tiết học tuần Việc đặt ngẫu nhiên môn học, giáo viên giảng dạy vào tiết học tạo thành thời khóa biểu lớp Như lớp học tương ứng có nhiều lịch học khác nhau, ta chọn lịch học làm cá thể thuật toán di truyền 3.1.2 Khởi tạo quần thể Trước tạo quần thể ban đầu phần này, phải chuẩn bị sẵn liệu cho trình thực thi, từ lúc khởi tạo đến cho kết quả, bao gồm đầy đủ thông tin lớp chọn Tất sau : Các ràng buộc lớp, giáo viên phân công dạy Các mơn học Tính tốn số tiết học tương ứng môn 22 Chọn qui định đọc ghi nhận nhiễm sắc thể Giống cá thể mô tả trên, hàng loạt cá thể tạo xem quần thể ban đầu mơ hình thuật tốn di truyền phần xếp lịch lớp Sau quần thể có đủ số lượng, bước đánh giá quần thể, kiểm tra xem độ thích nghi tốt tồn quần thể 3.1.3 Các phép toán di truyền 3.1.3.1 Lai ghép Đột biến 3.1.3.2 Chọn lọc 3.1.3.3 Hàm đánh giá độ thích nghi 3.2 Phân tích thiết kế chương trình 3.2.1 Phân tích Mơ tả liệu đầu vào Năm học Danh sách môn học lớp học học kỳ Danh sách lớp học Danh sách giáo viên Danh sách môn học số tiết Bảng phân công giáo viên giáo dạy lớp Bảng yêu cầu ràng buộc giáo viên với lịch dạy Bảng yêu cầu ràng buộc lớp với lịch học 3.2.2 Thiết kế chương trình Phần dùng ngơn ngữ phân tích UML Ngơn ngữ lập trình VB.Net để thiết kế chương trình minh họa, thử nghiệm 3.3 Thử nghiệm đánh giá kết 3.3.1 Số liệu thử nghiệm Phần trình bày bảng số liệu thử nghiệm chương trình với số liệu khởi tạo khác nhau, ràng buộc khác 3.3.2 Kết đánh giá 23 KẾT LUẬN TÀI LIỆU THAM KHẢO Tiếng Việt Bùi Việt Hà (2004), “Mơ hình tốn Thời khóa biểu Đại học, Cao đẳng Trung học chuyên nghiệp”, Tin học & Nhà trường Số 4(55)- 2004, tr 23-26 Hoàng Xuân Huấn, Nguyễn Việt Thắng (2001), “Một giải pháp tiến hóa cho tốn thời khóa biểu", Bài gửi đăng tạp chí Tin học Điều khiển học T.17 số năm 2001, tr 87-96 Hồng Kiếm, Lê Hồng Thới, Thuật tốn di truyền (2000), “Cách giải tự nhiên toán máy tính”, NXB Giáo dục Nguyễn Hữu Mùi (2000), “Phương pháp tính tốn tiến hóa ứng dụng để giải đa thức”, Luận văn Thạc sĩ Khoa học ĐHQG Hà Nội Nguyễn Đình Thúc (2001), Lập trình tiến hóa, NXB Giáo dục ĐHBK, ĐHDLHV Tp Hồ Chí Minh, ĐHQG Hà Nội (1999-2004), Một số luận văn thuật toán di truyền Tiếng Anh Jener Carr (May 30 2014), An Introduction to Genetic Algrithems Ceft R., A new genetic algorithm, Analysis of Applied Probability (3) (1996) pp 778-817 Colorny A., Dorigo M., and Manieggo V (1991), Genetic Algorithm and Highly Constrained Problems, the Timetable Case, Problem Solving from Nature, Springer-Velag, Lecture Notes in Computer Science, Vol 496, pp.5559 10 Davis L and Comombs S., Genetic Algorithms and Communication Link Speed Design Constraints and Operators, in [130] pp 257-260 11 Davis L and Comombs S., Genetic Algorithms Communication Link Speed Design Theorical Considerations, in [130], pp 252-256 Mạng Internet http://www.vnschool.net http://vi.wikipedia.org 24 PHỤ LỤC TIẾN ĐỘ THỰC HIỆN ĐỀ TÀI TT Các nội dung, công việc thực Xây dựng đề cương luận văn Tìm hiểu thuật tốn di truyền: + Biểu diễn NST cho toán + Khởi tạo quần thể ban đầu + Các phép toán di truyền: chọn lọc, lai ghép, đột biến + Các tham số: kích thước quần thể (PopSize), xác suất lai Pc, tốc độ đột biến Pm + Hàm đánh giá độ thích nghi Nghiên cứu tổng quan tốn thời khóa biểu phương pháp tiếp cận Nghiên cứu áp dụng thuật tốn di truyền vào tốn thời khóa biểu trường THPT Quỳ Châu Cài đặt toán thời khóa biểu ngơn ngữ VB.NET Hồn thiện Luận văn Thời gian (bắt đầu-kết thúc) 10/2017- 11/2017 Kết dự kiến Đề cương luận văn 11/2017-12/2017 Chương luận văn 12/2017 - 01/2018 Chương luận văn 01/2018 – 2/2018 Chương luận văn 02/2018 – 03/2018 03/2018 – 04/2018 Luận văn tốt nghiệp 25 ... Communication Link Speed Design Constraints and Operators, in [130] pp 257-260 11 Davis L and Comombs S., Genetic Algorithms Communication Link Speed Design Theorical Considerations, in [130], pp