CHƯƠNG 1: BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU CHO TRƯỜNG THPT 1. Giới thiệu bài toán Bài toán sắp xếp thời khóa biểu ở trường THPT là một bài toán khó, sự phức tạp của bài toán này không chỉ ở vấn đề tìm ra một thời khóa biểu cho một lớp học thỏa các ràng buộc về thời gian, ràng buộc chuyên môn, quy định chung của ngành giáo dục mà còn là bài toán tìm ra thời khóa biểu tốt nhất, nhanh nhất mà lại đáp ứng đầy đủ nhất những yêu cầu nguyện vọng riêng của từng cá nhân mỗi giáo viên trong một trường. Xếp thời khóa biểu là vấn đề chính trong luận văn này. Bài toán đặt ra là vấn đề xếp thời khóa biểu cho một trường THPT, với nhiều lớp khác nhau, ở các cơ sở khác nhau.
Cần có sự sắp xếp lịch học cho các lớp tại các phòng ở mỗi địa điểm, sao cho vừa hợp lý lại vừa tiện dụng nhất. Bài toán đặt ra bao gồm tất cả các vấn đề có liên quan đến việc xếp thời khóa biểu ở một trường THPT, chẳng hạn như:việc tránh trùng giờ tại một phòng của các lớp; giáo viên sẽ dạy theo giờ quy định trong bảng phân công… .Thông thường, công việc này được làm bằng tay, thực hiện một cách thủ công và tất nhiên chúng ta luôn thực hiện được và luôn cho ra kết quả tương đối tốt, nhưng phải mất nhiều thời gian, thong thường hiệu trưởng và hiệu phó của các trường mất trung bình khoảng 1 tuần và ít nhất phải có kinh nghiệm xếp lịch nếu không sẽ không thể tránh khỏi những sai sót xảy ra, chẳng hạn như : chỗ này thừa phòng, chỗ khác lại thiếu, sai chỗ, sai giờ.Vấn đề của bài toán là ngoài việc thực hiện đúng, chính xác, còn phải tốt hơn, nhanh hơn và hiệu quả hơn công việc xếp lịch bằng tay mà chúng ta vẫn phải làm. Bài toán xếp thời khóa biểu trong trường học nói chung và trong trường THPT nói riêng 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 8 trong bài toán này như 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 khá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 Nhị phân đầ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.
Phát biểu bài toán Ngay khi vấn đề được đặt ra, chúng ta đã thấy là bài toán phải được giải quyết trên hai nền tảng cơ bản là nghiệp vụ và kỹ thuật. Muốn đọc hiểu được một thông tin của thời khóa biểu, yêu cầu dữ liệu phải được hiển thị đầy đủ, không thiếu sót, không bị sai lệch, phải phù hợp với nghiệp vụ đề ra. Phần kỹ thuật cũng vậy, phải xử lý tất cả những yêu cầu riêng biệt từ các đối tượng gửi đến, chúng được xem như là thành phần ràng buộc của bài toán, bắt buộc vấn đề phải thỏa mãn và đáp ứng hoàn toàn. Vì vậy ta sẽ phân tích bài toán trên hai thành phần đó.
Dữ liệu bài toán Như đã nói ở trên, thông tin sẽ phát sinh từ các đối tượng chính trong bài toán. Do đó, các dữ liệu luôn có mối liên hệ với nhau, phần lớn vì nhu cầu nghiệp vụ mà dữ liệu xuất hiện tương đối nhiều. Trong bài toán xếp thời khóa biểu của một trường THPT, cụ thể sẽ đòi hỏi các thông tin sau: Danh sách cơ sở. Danh sách lớp chuyên 9 Danh sách khóa học.
Danh sách môn học các lớp trong học kỳ. Danh sách lớp học. Danh sách giáo viên. Danh sách phòng học.
Danh sách môn học và số tiết học. Bảng phân công giáo viên giảng dạy tại các lớp. Bảng yêu cầu ràng buộc của giáo viên với lịch dạy. Bảng yêu cầu ràng buộc của lớp với lịch học.
Bảng yêu cầu ràng buộc của phòng với lịch sử dụng. Các ràng buộc Ràng buộc trên cơ bản vẫn là các yêu cầu từ phía đối tượng đặt ra, bắt buộc bài toán phải thỏa mãn đầy đủ tất cả, nhưng phần nghiệp vụ cũng mang lại một dạng ràng buộc cần thiết, nhằm tránh một số trường hợp, và giúp cho quá trình thực thi sẽ cho ra kết quả đúng. Điều quan trọng ở đây, là chúng ta phải làm sao liệt kê được đầy đủ các ràng buộc có thể có trong bài toán. Sau đây là thành phần các ràng buộc của bài toán.
Ràng buộc dữ liệu nhập vào Do yêu cầu riêng của các đối tượng đối với bài toán mà ràng buộc được nhập vào sau khi đã nhập đối tượng. Bao gồm các đối tượng và các yêu cầu sau: Đối tượng giáo viên: mỗi giáo viên có một lịch làm việc cá nhân riêng, do đó phải nhập bảng lịch này vào để bài toán phải chọn giờ rảnh ( theo bảng lịch của giáo viên ) trong việc xếp thời khóa biểu. Đối tượng lớp học: trong quá trình học tập trong tuần, theo một quy định chung nào đó mà các lớp phải học hay không học trong tại một thời điểm. Và những ngày giờ này sẽ được nhập vào làm dữ liệu ràng buộc cho bài toán.
10 Đối tượng phòng học: giống như lớp học lịch sử dụng các phòng có sự gián đoạn trong quá trình học tập, cho nên phải tránh không sử dụng trong khoảng thời gian chúng được nhập liệu vào bài toán. Đối tượng môn học: trong mỗi học kỳ đều có một số môn học xác định, mỗi môn học được phân công cho giáo viên dạy bộ môn đó đảm nhiệm. Ràng buộc nghiệp vụ – thời gian Không có lớp nào tại một thời điểm học nhiều môn. Giáo viên không dạy nhiều lớp cùng một lúc.
Phòng học chỉ một lớp đang học. Lớp học tránh những giờ theo quy định không được học đã được nhập vào. Giáo viên dạy theo các giờ rảnh mà đã được nhập. Các giờ không cho phép học, đã nhập vào các phòng, sẽ không có lớp nào được học.
Ràng buộc nghiệp vụ – chuyên môn Tổng số tiết học của các môn phải được đảm bảo đúng 15 tuần học ( thời gian quy định một học kỳ ). Một lần học trong tuần không vượt quá 4 tiết (quy định tùy theo các trường ). Một buổi học trong ngày có 5 tiết. Mỗi lớp chỉ học một buổi.
Những môn học yêu cầu có 1 buổi học 2 tiết xếp liền nhau Trong ngày thứ 2 của buổi sáng các lớp đều có tiết chào cờ ở tiết đầu, buổi chiều vào tiết cuối cùng của ngày thứ 2. Mỗi giáo viên được chọn 1 ngày nghỉ, ngoài ngày CN. Mỗi tổ chuyên môn có thể lựa chọn 1 tiết nghỉ dạy chung để làm việc riêng của tổ. 11 CHƯƠNG 2: GIẢI THUẬT DI TRUYỀN 1.
Lịch sử thuật giải di truyền Thuật giải di truyền (Gen Algorthm_GA) là kỹ thuật chung giúp giải quyết 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 Dawin) trong điều kiện quy định sẵn của môi trường. GA là một thuật giải và mục tiêu của GA không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu. Trước tiên, ý niệm về thuật giải di truyền đã được một số nhà sinh vật học đưa ra từ những năm 50-60, thế kỉ XX. Fraser là người tiên phong nêu lên sự tương đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về Genetic Algorithms.
Tuy nhiên, chính John Henry Holland mới là người triển khai ý tưởng và phương thức giải quyết vấn đề dựa theo sự tiến hóa của con người. Từ những bài giảng, bài báo của mình, ông đã đúc kết các ý tưởng vào trong cuốn sách đầu tay Adaptation in Natural and Artificial Systems, xuất bản năm 1975. Dựa trên lý thuyết cơ bản về GA của Holand, Keneth De Jong đã triển khai và chứng minh và những thành quả do ông thực hiện đã góp phần quan trọng trong việc tạo ra nền tảng toán học cho lý thuyết GA. Lần đầu tiên Holand nghiên cứu các thuật giải này, chúng hoàn toàn không có tên.
Do nguồn gốc của phương pháp này là từ các gen di truyền, Holand đã đặt tên cho nó là thuật giải di truyền. Các đặc điểm, đặc trưng Như chúng ta đã biết, tất cả các cơ thể sống bao gồm nhiều tế bào, trong mỗi tế bào có các tập hợp nhiễm sắc thể như nhau. Các nhiễm sắc thể là các chuỗi DNA (Deoxyribonucleotic Acid) hoạt động như một mô hình cho toàn bộ cơ thể. Một nhiễm sắc thể gồm các gen, những khối DNA.
Mỗi gen mã hóa một protein riêng biệt. Nói 12 một cách đơn giản, mỗi gen mã hóa một đặc điểm, ví dụ màu mắt. Những thiết lập có thể cho một đặc điểm (mắt xanh, mắt nâu) được gọi là các gen tương ứng (allele). Mỗi gen có một vị trí riêng trong nhiễm sắc thể được gọi là điểm (locus).
Toàn bộ tập hợp vật liệu di truyền (tất cả các nhiễm sắc thể) được gọi là bộ gen (genome). Một tập hợp riêng biệt của các gen trong bộ gen được gọi là kiểu gen (genotype). Kiểu gen với quá trình phát triển sau này của cơ sở sinh sản cho kiểu hình (phenotype) của cơ thể, các đặc điểm vật lý và trí tuệ, như màu mắt, trí thông minh… Các thuật giải di truyền là những kỹ thuật tối ưu dựa trên những khái niệm chọn lọc tự nhiên và di truyền. Trong cách tiếp cận này, lời giải của bài toán được trình bày như các gen trong nhiễm sắc thể.
Thuật giải di truyền mô tả một nhóm các lời giải có thể ứng cử (quần thể) trên bề mặt đáp ứng. Qua tiến hóa và chọn lọc tự nhiên các nhiễm sắc thể với độ thích nghi tốt hơn xuất hiện. Chọn lọc tự nhiên đảm bảo cho nhiễm sắc thể có độ thích nghi tốt nhất sẽ được truyền cho những quần thể tương lai.