Trang 1 BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNHKHOA CÔNG NGHỆ THÔNG TINĐỒ ÁN CƠ SỞ TÌM HIỂU GIẢI THUẬT DI TRUYỀNĐỂ XẾP THỜI KHÓA BIỂU HỆ TÍN CHỈ Trang 2 Trường Đại học Ngu
TÌM HIỆU VỀ BÀI TOÁN LẬP THỜI KHÓA BIỂU
Tìm hiểu chung
Lập lịch là bài toán tìm kiếm chuỗi tối ưu cho một tập hợp các hoạt động với các ràng buộc cần thỏa mãn Người lập lịch cố gắng tối đa hóa việc sử dụng nguồn lực và tối thiểu hóa thời gian hoàn thành quy trình Tuy nhiên, bài toán này rất phức tạp và khó giải quyết Hiện nay, có nhiều phương pháp phát triển kỹ thuật để giải quyết vấn đề lập lịch, bao gồm các tiếp cận trí tuệ nhân tạo như hệ thống tri thức cơ sở, bài toán thỏa mãn ràng buộc, hệ chuyên gia, mạng nơron, cùng với các phương pháp nghiên cứu hoạt động như lập trình tính toán, lập trình động, tìm kiếm 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.
Các đặc tính của bài toán lập lịch
Tài nguyên: đó là các nguồn dữ liệu đầu vào của bài toán Các tài nguyên này có thể phục hồi hoặc không.
Tác vụ: được đánh giá qua các tiêu chuẩn thực hiện như thời gian thực hiện, chi phí, mức tiêu thụ nguồn tài nguyên
Ràng buộc: đây là những điều kiện cần thỏa mãn để bài toán có thể đưa ra lời giải tốt nhất
Mục tiêu của bài viết là đánh giá mức độ tối ưu của lịch trình giải quyết bài toán, đảm bảo rằng khi các mục tiêu được đáp ứng, các ràng buộc cũng phải được thực hiện đầy đủ.
Một số bước cơ bản để giải quyết bài toán lập thời khoá biếu
- Danh sách học phần học và các lớp trong học kỳ
- Danh sách môn học và số tiết
- 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 phòng đó
4 Một số bước cơ bản để giải quyết bài toán lập thời khoá biếu
Bước 1 Khởi tạo dữ liệu thời khóa biểu mới
Bước 2 Nhập, điều chỉnh dữ liệu gốc thời khóa biểu
Bước 3 Nhập, sửa, điều chỉnh các ràng buộc chính của thời khóa biểu
Các ràng buộc chính của thời khóa biểu đóng vai trò quan trọng trong việc định hình và khuôn dạng thời khóa biểu Đây là tập hợp các lệnh thiết yếu cho bài toán và phần mềm thời khóa biểu.
Bước 4 Nhập bảng Phân công giảng dạy (PCGD)
Bảng phân công giảng dạy, hay còn gọi là phân công chuyên môn, là dữ liệu quan trọng và phức tạp nhất trong mọi thời khóa biểu Bảng này xác định rõ ràng các phân công cụ thể, bao gồm giáo viên dạy lớp nào, môn học nào và số tiết dạy trong một tuần.
Bước 5 Chuẩn bị xếp thời khóa biểu
Bước 6 Xếp tự động TKB
Bước 7 Điều chỉnh, tinh chỉnh dữ liệu thời khóa biểu
Bước 8 Hoàn thiện thời khóa biểu (sử dụng RAD)
Bước 10 Tổng hợp, thống kê và truy vấn thông tin thời khóa biểu
TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN
Giới Thiệu
Khoa học xuất phát từ mong muốn của con người để hiểu và kiểm soát thế giới, dẫn đến việc xây dựng một kho tàng kiến thức phong phú Qua lịch sử, chúng ta đã có khả năng dự đoán nhiều hiện tượng như thời tiết, chuyển động của các hành tinh, và sự phát triển kinh tế Gần đây, chúng ta đã nhận thức được những giới hạn trong khả năng dự đoán của mình Đồng thời, chúng ta cũng phát triển các phương tiện phức tạp để kiểm soát nhiều khía cạnh của cuộc sống, nhưng vẫn phải đối mặt với những yếu tố không thể kiểm soát.
Sự ra đời của máy tính điện tử đã đánh dấu một bước ngoặt quan trọng trong lịch sử khoa học và công nghệ, mang lại khả năng tiên đoán và kiểm soát chất liệu một cách sâu sắc Cuộc cách mạng này không chỉ cải thiện khả năng xử lý thông tin mà còn dẫn đến những thành tựu vượt bậc, bao gồm việc phát triển các chương trình máy tính cho các dạng sinh vật thông minh mới và thậm chí là các hình thức sống mới.
Mục tiêu phát triển trí thông minh nhân tạo và sự sống nhân tạo đã bắt nguồn từ thời kỳ đầu của máy tính, với những nhà khoa học như Alan Turing, John von Neumann và Norbert Wiener Họ mong muốn tạo ra chương trình máy tính có khả năng tự sao chép và thích nghi, tương tự như sự sống Những người tiên phong trong lĩnh vực này không chỉ tập trung vào điện tử mà còn quan tâm đến sinh học và tâm lý học, lấy cảm hứng từ các hệ thống tự nhiên Các máy tính đầu tiên được sử dụng không chỉ cho tính toán quân sự mà còn để mô phỏng não bộ và học tập của con người Mặc dù hoạt động sinh học tính toán đã trải qua nhiều biến động, từ những năm 1980, lĩnh vực này đã phục hồi mạnh mẽ, dẫn đến sự phát triển của mạng nơ-ron, máy học và tính toán tiến hóa với các thuật toán di truyền nổi bật.
Giải thuật di truyền (GAs)
2.1Giải thuật di truyền (Gas)
GAs, hay Thuật toán di truyền, là một kỹ thuật trong khoa học máy tính dùng để tìm kiếm giải pháp tối ưu cho các bài toán tối ưu tổ hợp Là một phần của giải thuật tiến hóa, GAs áp dụng các nguyên lý như di truyền, đột biến, chọn lọc tự nhiên và trao đổi chéo Phương pháp này sử dụng ngôn ngữ máy tính để mô phỏng quá trình tiến hóa của một tập hợp các đại diện trừu tượng, gọi là nhiễm sắc thể, đại diện cho các giải pháp khả thi, hay còn gọi là cá thể, cho bài toán tối ưu hóa Tập hợp này sẽ tiến triển qua việc chọn lọc các giải pháp tốt hơn.
GAs và các thuật toán tiến hóa được phát triển dựa trên quan niệm rằng "quá trình tiến hóa tự nhiên là hoàn hảo và tối ưu" Quan điểm này nhấn mạnh rằng mỗi thế hệ mới đều cải thiện hơn so với thế hệ trước, thể hiện tính tối ưu trong quá trình tiến hóa.
Ngày nay, GAs (thuật toán di truyền) đóng vai trò ngày càng quan trọng trong lĩnh vực tối ưu hóa Đây là một lĩnh vực với nhiều bài toán thú vị và ứng dụng thực tiễn phong phú, nhưng thường gặp khó khăn và thiếu các phương pháp hiệu quả để giải quyết.
2.2Các tính chất của giải thuật di truyền
GAs, hay Thuật toán di truyền, là một kỹ thuật mạnh mẽ mô phỏng quá trình tiến hóa tự nhiên của con người và sinh vật, dựa trên lý thuyết tiến hóa của Darwin Kỹ thuật này hoạt động trong các điều kiện môi trường đã được xác định trước, với mục tiêu tìm kiếm giải pháp tương đối tối ưu cho các vấn đề phức tạp, thay vì chỉ tập trung vào lời giải chính xác tối ưu.
Trong thuật toán di truyền (GAs), mỗi cá thể đại diện cho một giải pháp cho bài toán Khác với tự nhiên, nơi một cá thể có thể mang nhiều nhiễm sắc thể (NST), trong GAs, mỗi cá thể được giới hạn chỉ với một NST Do đó, khái niệm cá thể và NST trong GAs được coi là tương đương.
Một NST bao gồm nhiều gen, mỗi gen mang những giá trị khác nhau để xác định một trạng thái nhất định Trong GAs, gen được xem như một phần tử trong chuỗi NST.
Quần thể là một tập hợp các cá thể có chung những đặc điểm nhất định Trong lĩnh vực giải di truyền, quần thể được hiểu là tập hợp các lời giải cho một bài toán cụ thể.
2.3So sánh GAs với kỹ thuật tối ưu khác
Hoạt động của thuật toán di truyền (GAs) là mô phỏng quá trình tiến hóa và chọn lọc tự nhiên qua máy tính, bắt đầu từ một quần thể ngẫu nhiên Để tối ưu hóa, cần sử dụng hàm lượng giá hoặc hàm thích nghi nhằm chọn lọc cá thể tốt và loại bỏ cá thể kém GAs khác biệt so với các phương pháp tối ưu hóa khác nhờ vào khả năng mô phỏng tiến hóa tự nhiên.
GAs làm việc với bộ mã của biến chứ không phải làm việc trực tiếp trên biến
Hầu hết các kỹ thuật tối ưu truyền thống chỉ tìm kiếm từ một đỉnh duy nhất, trong khi các thuật toán di truyền (GAs) hoạt động trên một tập hợp các đỉnh, tức là nhiều điểm tối ưu Điều này mang lại lợi thế cho GAs, giúp tăng cường khả năng tiếp cận tối ưu toàn cục và giảm thiểu nguy cơ hội tụ sớm vào các điểm tối ưu cục bộ.
GAs đánh giá hàm mục tiêu nhằm hỗ trợ quá trình tìm kiếm, cho phép ứng dụng vào mọi bài toán tối ưu, bất kể là bài toán liên tục hay rời rạc.
GAs thuộc lớp các thuật toán xác suất, các thao tác cơ bản của GAs dựa trên khả năng tích hợp ngẫu nhiên trong quá trình xử lý
2.4Cơ chế thực hiện của giải thuật di truyền
Bước đầu tiên trong quá trình tìm kiếm giải pháp cho vấn đề là khởi tạo quần thể, tức là tạo ra một số lượng lớn các cá thể hữu hạn Tiếp theo, một hàm thích nghi được sử dụng để xác định giá trị độ thích nghi, phản ánh "độ tốt" của mỗi cá thể Do sự phát sinh ngẫu nhiên, độ tốt của giải pháp trong quần thể là không xác định Hãy tưởng tượng một máy tính giải quyết bài toán như việc leo đồi: 100 người leo đầu tiên có thể không tìm thấy đỉnh cao nhất, do đó cần có thêm 100 người khác tiếp tục leo Tuy nhiên, có thể trong nhóm mới này không ai leo cao hơn nhóm trước Do đó, cần giữ lại những người leo cao nhất cho các thế hệ sau, và quá trình này tiếp tục cho đến khi một cá nhân đạt đỉnh cao nhất hoặc hết thời gian cho phép Nếu hết thời gian, cá nhân leo cao nhất trong tất cả các thế hệ sẽ được chọn Để cải thiện tính thích nghi của quần thể, cần tạo ra quần thể mới thông qua hai thao tác trên thế hệ hiện tại nhằm tạo ra một thế hệ có độ thích nghi tốt hơn.
Quá trình sao chép nguyên mẫu từ thế hệ trước sang thế hệ sau thông qua phép tái sinh và chọn lọc là bước đầu tiên Thao tác này đảm bảo rằng độ thích nghi của thế hệ sau luôn được cải thiện hoặc ít nhất là duy trì ở mức tương đương với thế hệ trước.
Trong quy trình tạo ra các cá thể mới, có hai phương pháp chính: phép lai ghép và phép đột biến Phép lai ghép kết hợp gen của hai cá thể ưu tú từ thế hệ trước theo một quy tắc nhất định, nhằm tạo ra hai cá thể mới Trong khi đó, phép đột biến liên quan đến việc thay đổi ngẫu nhiên một hoặc nhiều thành phần gen của cá thể ở thế hệ trước, dẫn đến sự xuất hiện của một cá thể hoàn toàn mới ở thế hệ sau.
Phép đột biến có thể làm xáo trộn và làm mất đi tính thích nghi cao của cá thể được chọn
2.5Các bước cơ bản của thuật giải di truyền
- Bước 1: khởi tạo một quần thể ban đầu gồm các chuỗi nhiễm sắc thể
- Bước 2: xác định giá trị mục tiêu cho từng nhiễm sắc thể tương ứng
- Bước 3: tạo các nhiễm sắc thể mới dựa trên các toán tử di truyền
- Bước 4: loại bớt các nhiễm sắc thể có độ thíc nghi thấp
- Bước 5: xác định hàm mục tiêu cho các nhiễm sắc thể mới và đưa vào quần thể
- Bước 6: kiểm tra thỏa mãn điều kiện dừng nếu điều kiện đúng , lấy ra nhiễm sắc thể tốt nhất, giải thuật dừng lại: ngược lại, quay về bước 3
CÁC PHÉP TOÁN TRONG GIẢI THUẬT DI TRUYỀN
Tạo quần thể ban đầu
Quần thể ban đầu bao gồm N cá thể T1, T2, ,TN, mỗi cá thể đại diện cho một lời giải của bài toán, cụ thể là một thời khóa biểu toàn trường Mỗi cá thể được cấu thành từ nhiều gen, với các gen được khởi tạo ngẫu nhiên từ tập hợp các phân công đã cho, đảm bảo rằng các ràng buộc cứng của bài toán được thỏa mãn.
Chất lượng cá thể trong quần thể khởi tạo ngẫu nhiên thường thấp hơn so với cá thể được tạo ra bằng các phương pháp heuristic Tuy nhiên, nhờ vào sự đa dạng của các cá thể trong quần thể ngẫu nhiên, giải thuật di truyền có thể đạt được chất lượng lời giải tốt hơn sau quá trình tiến hóa.
Độ thích nghi của cá thể
Độ thích nghi của mỗi cá thể trong thời khóa biểu được xác định qua giá trị của hàm mục tiêu; giá trị này càng nhỏ thì chất lượng của cá thể thời khóa biểu càng cao.
Điều kiện dừng
Thường các giải thuật di truyền chọn các điều kiện dừng sau đây:
1 lời giải tốt nhất tìm được của bài toán không được cải thiện sau một số lần lặp định trước
2 số lần lặp của giải thuật đạt đến một giá trị định trước
3 giải thuật chạy hết một lượng thời gian định trước.
Trong bài toán xếp thời khóa biểu trường phổ thông đang xét, chúng tôi chọn điều kiện dừng đầu tiên.
Các toán tử di truyền
Toán tử sinh sản: gồm 2 quá trình là quá trình sinh sản( phép tái sinh) và quá trình chọn lọc (phép chọn)
Phép tái sinh là quá trình sao chép các nhiễm sắc thể dựa trên độ thích nghi của chúng Độ thích nghi được xác định bằng một hàm, gán giá trị thực cho mỗi nhiễm sắc thể trong quần thể.
Phép chọn là quá trình lựa chọn các nhiễm sắc thể có độ thích nghi cao từ quần thể hiện tại nhằm đưa vào quần thể ở thế hệ tiếp theo.
Toán tử đột biến là hiện tượng khi nhiễm sắc thể con có những đặc tính không xuất hiện trong nhiễm sắc thể của cha mẹ Xác suất xảy ra toán tử đột biến (p) thường nhỏ hơn nhiều so với xác suất lai ghép (p), do trong tự nhiên, đột biến gen xảy ra ít hơn.
Toán tử lai ghép là phương pháp tạo ra nhiễm sắc thể con mới từ cặp nhiễm sắc thể cha - mẹ bằng cách ghép các đoạn gen trong nhiễm sắc thể của cha và mẹ Quá trình này được thực hiện với một xác suất p nhất định.
ỨNG DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ XẾP THỜI KHÓA BIỂU HỆ TÍN CHỈ
Giai đoạn 1 - xếp lịch học các lớp
1.1Chọn mô hình cá thể
Lịch học của một lớp bao gồm hai thành phần chính: các môn học và giờ học trong tuần Việc kết hợp ngẫu nhiên các môn học với giờ học tạo ra nhiều lịch học khác nhau cho từng lớp Trong quá trình áp dụng thuật giải di truyền, các lịch học được xem như cá thể, với môn học là đơn vị nhiễm sắc thể do tính không ổn định của nó Số lượng môn học có thể thay đổi tùy theo từng lớp, tương tự như số lượng nhiễm sắc thể trong cá thể Đồng thời, tính phức tạp của môn học với số tiết học biến động, trong khi giờ học lại có thể xác định rõ ràng và nhanh chóng.
Hình 1 Mô hình cá thể trong lịch lớp
Thay vì chọn ngẫu nhiên môn học trong từng tiết học, chúng ta sẽ chọn ngẫu nhiên tiết học theo môn học, với môn học là đơn vị chính trong mô hình xếp lịch lớp Điều này có nghĩa là, với mỗi cá thể của mô hình, khi xác định môn học đầu tiên, các môn học tiếp theo sẽ được sắp xếp theo thứ tự cố định Nếu một môn học được học nhiều lần trong tuần, chúng ta có thể đơn giản đưa chúng vào cá thể với nhiễm sắc thể tương ứng, giống như các môn học khác Khi đọc thông tin, cần chú ý để đảm bảo tính chính xác trong việc xếp lịch.
Ví dụ: Giả sử có danh sách 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.
- Môn học d có 1 lần học.
Hình 2 Mô tả phân bổ nhiễm sắc thể
Mỗi nhiễm sắc thể đại diện cho một giá trị số nguyên, biểu thị vị trí bắt đầu của môn học trong lịch học Giá trị này dao động từ 0 đến 35, tương ứng với thứ tự các tiết học trong tuần, được sắp xếp theo vị trí liên tục của các ngày, giống như cấu trúc mảng một chiều Các tiết học tiếp theo sẽ có giá trị liên tiếp tùy thuộc vào số lượng tiết học của môn học đang được lưu trữ.
Hình 3 Giá trị các tiết học
Ví dụ: về cách 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 8 số tiết cần học là 4
Môn học d tiết bắt đầu 12 số tiết cần học là 3
Hình 4 Phân bố các môn học trên lịch học
Mỗi cá thể trong hệ thống tương ứng với một lịch học thực tế của lớp, do đó cần đảm bảo tính chính xác về số tiết học, số môn học và không có sự chồng chéo thời gian giữa các môn Để giải quyết vấn đề này, chúng ta sử dụng một tham biến để đánh dấu các tiết học đã được lên lịch, nhằm tránh việc sắp xếp môn học mới vào những thời điểm đã có lịch Mỗi lịch học sẽ có sự sắp xếp riêng biệt và khác nhau.
1.2Tạo quần thể ban đầu
Trước khi bắt đầu tạo quần thể ban đầu, cần chuẩn bị dữ liệu đầy đủ cho quá trình thực thi, từ khởi tạo đến khi có kết quả, bao gồm thông tin chi tiết về lớp được chọn.
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ể.
Trong mô hình thuật giải di truyền cho phần xếp lịch lớp, quần thể ban đầu được tạo ra từ nhiều cá thể giống như đã mô tả Khi quần thể đạt đủ kích thước, bước tiếp theo là đánh giá quần thể để xác định độ thích nghi tốt nhất hiện có.
1.3Độ thích nghi - chọn cá thể Đây là phần giải quyết các yêu cầu đưa ra cho bài toán, chủ yếu vẫn xem xét trên các thành phần ràng buộc Tương ứng với mỗi loại ràng buộc, chúng ta sẽ gán cho chúng một giá trị thích nghi nào đó, mà một khi cá thể đi qua, các ràng buộc được lắp đặt vào, và sẽ cho ra giá trị thích nghi cụ thể cho cá thể đó, kết thúc công việc tính độ thích nghi Nghe rất đơn giản nhưng thực chất đây là vấn đề khó nhất, quan trọng nhất của bài toán Chi tiết cụ thể như sau:
Khi phân công giảng dạy, điều quan trọng là đảm bảo giáo viên có thời gian trống vào giờ, môn và buổi học cụ thể Cần kiểm tra lịch học để xác định các môn học có thể diễn ra vào thời điểm đó Bên cạnh đó, cũng cần xem xét giờ học của lớp, vì có thể có quy định về việc lớp không học vào những tiết nhất định, chẳng hạn như không học ba tiết đầu vào thứ Hai.
Cuối cùng, cần kiểm tra sự chồng chéo giữa các giờ học của các môn học, vì việc này rất quan trọng để tránh sai lệch trong quá trình lai ghép và đột biến Để đảm bảo tính chính xác, nên sử dụng một biến tổng hợp chứa tất cả giờ học của các môn, giúp việc đánh giá trở nên dễ dàng hơn.
Mỗi vấn đề trong hệ thống giáo dục sẽ có một biến lưu trữ giờ làm việc, nhằm tránh trùng lặp các tiết học đã được ghi nhận cho giáo viên hoặc lớp học tương ứng Điều này giúp đảm bảo rằng các ràng buộc giữa giáo viên và lớp học được thực hiện một cách hiệu quả và chính xác.
Để chọn một cá thể tốt, có nhiều phương pháp khác nhau, trong đó thường ưu tiên cách tính theo độ thích nghi cao nhất Chúng ta sẽ áp dụng phương pháp này bằng cách xếp hạng các cá thể dựa trên giá trị giảm dần của mức phạt liên quan đến độ thích nghi.
1.4Thuật toán lai ghép và đột biến
Thuật toán lai ghép sử dụng phương pháp chọn ngẫu nhiên một đoạn nhiễm sắc thể từ nhiễm sắc thể cha và phần còn lại từ nhiễm sắc thể mẹ Trong khi đó, thuật toán đột biến thực hiện việc hoán vị hai nhiễm sắc thể một cách ngẫu nhiên trong cá thể Người dùng có thể điều chỉnh các tham số xác suất liên quan đến đột biến và lai ghép trong quá trình thực thi Phương pháp này được áp dụng cho tất cả các lớp trong một cơ sở, với mỗi lớp tương ứng có một file lưu trữ các lịch lớp dưới dạng nhiễm sắc thể trong quần thể Ngoài việc phục vụ cho việc kiểm tra, chúng còn cung cấp thông tin cần thiết để xây dựng lịch cơ sở trong tương lai.
Giai đoạn 2 - xếp lịch học cho toàn bộ cơ sở
2.1Chọn mô hình cá thể
Lịch học tại cơ sở bao gồm tất cả các lịch học của các lớp hiện có, với mỗi lớp có một lịch học rõ ràng, tạo thành lịch cơ sở Dựa trên giai đoạn đầu, mỗi lớp đã phát sinh nhiều lịch học, giúp việc chọn ngẫu nhiên lịch học trở nên dễ dàng Mô hình cá thể trong lịch lớp cho thấy lớp học tại cơ sở tương tự như môn học trong lớp, do đó, lớp học được chọn làm đơn vị nhiễm sắc thể trong thuật toán di truyền cho việc xếp lịch Tương tự, lịch cơ sở được coi là cá thể, với mỗi nhiễm sắc thể đại diện cho một chỉ số trong file lưu trữ thông tin lịch học của lớp Phạm vi giá trị của các nhiễm sắc thể có sự khác biệt, nhưng luôn có thể xác định rõ ràng thông qua kích thước file tương ứng của lớp.
Mô hình cá thể trong lịch cơ sở:
Hình 5 Mô hình cá thể trong lịch cơ sở
Cá thể lịch cơ sở cần trải qua giai đoạn kiểm tra ban đầu để đảm bảo đạt yêu cầu về kích thước và phù hợp với cơ sở Việc này không chỉ đơn thuần là chọn phòng cho lớp học, mà là kiểm tra sự tương thích giữa phòng và lớp học để xác định tính khả thi Nếu không thực hiện được kiểm tra này, quá trình lập lịch sẽ không thể tiếp tục.
2.2Tạo quần thể ban đầu
Quần thể khởi đầu bao gồm các cá thể được tạo ra theo mô hình nhất định, với thông tin lớp học được chọn trong cùng một buổi học thuộc cơ sở và có file lịch lớp đầy đủ Kích thước cá thể tương ứng với số lớp hiện có, vì vậy độ dài hay ngắn phụ thuộc vào cơ sở, tương tự như lịch lớp được tính theo số môn học của lớp Quá trình này tốn nhiều thời gian do cần đọc file để kiểm tra, nhưng quần thể sẽ mang lại kết quả chính xác nhất cho việc áp dụng bài toán vào thuật giải di truyền.
2.3Độ thích nghi - chọn cá thể
Trong giai đoạn hội tụ cá thể trong quần thể, việc đánh giá cơ sở hạ tầng dựa vào số lớp, số giờ học và số phòng học là rất quan trọng Thay vì chọn phòng lớn nhất cho lớp học lớn nhất, chúng ta sẽ sắp xếp lớp và phòng theo thứ tự tăng dần Điều này giúp đảm bảo rằng mỗi lớp được xếp vào phòng có sức chứa phù hợp nhất, mặc dù phương pháp này có thể tốn thời gian hơn Để giải quyết vấn đề trùng phòng học giữa các lớp, chúng ta sẽ sử dụng một tham biến để ghi nhận tất cả các giờ học của từng phòng, từ đó tạo ra lịch sử sử dụng các phòng học một cách hiệu quả.
Trong việc đánh giá ràng buộc lịch giáo viên, chúng ta chỉ xem xét sự trùng lặp giờ dạy ở các lớp diễn ra cùng một thời điểm Mỗi giáo viên sẽ có một tham biến lịch dạy riêng để ghi nhận và ngăn chặn tình trạng trùng giờ Qua các lần kiểm tra với giá trị thích nghi tương ứng, tổng các giá trị này sẽ xác định độ thích nghi của cá thể Quá trình này tương tự như trong lịch lớp, nơi cá thể được chọn là cá thể tốt nhất với giá trị thích nghi đạt đỉnh là 0.
2.4Thuật toán lai ghép và đột biến
Việc tái sử dụng phần xếp lịch lớp thông qua việc chọn cá thể dựa trên độ thích nghi, lai ghép ngẫu nhiên và đột biến hoán vị điểm không ảnh hưởng đến quá trình thực hiện xếp lịch cơ sở Mặc dù thời gian thực thi có thể lâu hơn do số lượng và phạm vi ràng buộc lớn cùng với việc đọc dữ liệu từ các file, nhưng hoạt động thực tế vẫn tương tự như xếp lịch lớp.
2.5Chọn điểm dừng thuật toán Đã được nói ở trong từng giai đoạn của các phần áp dụng thuật giải di truyền vào bài toán, điểm dừng thuật toán dựa trên độ thích nghi của nó Một số bài toán chọn điểm dừng theo số thế hệ, hoặc dựa trên tính tương đối của kết quả, nhưng với bài toán này cần có một kết thúc tuyệt đối tốt nhất, mặt dù số thế hệ vẫn phải được chọn trước nthuật giải di truyềny từ đầu Vì tính chất yêu cầu trong bài toán này là không bị sai lệch Nếu trong quá trình thực thi qua các giai đoạn, chỉ cần một kết quả không đạt đến điểm dừng, xem như bài toán sẽ không có kết quả.
Quy trình sắp xếp thời khóa biểu
Hình 6 Quy trình sắp xếp thời khóa biểu đề xuất
Biểu diễn mô hình cá thể
Mỗi NST dùng để chứa một phương án xếp thời khóa biểu.
Hình 7 Biểu diễn một nhiễm sắc thể
Mỗi lịch biểu (NST) có thể được hình dung như một cấu trúc ba chiều, trong đó chiều thứ nhất thể hiện các tiết học trong ngày, chiều thứ hai đại diện cho các ngày trong tuần, và chiều thứ ba chỉ ra các phòng học.
Hình 8 Cấu trúc của một nhiễm sắc thể
Mô hình quần thể
Quần thể là tập hợp các nhiễm sắc thể (NST) không chỉ lưu trữ danh sách NST mà còn chứa thông tin quan trọng khác như kích thước và độ thích nghi của quần thể.
Khởi tạo quần thể
Trước khi thực hiện quá trình tiến hóa cần phải khởi tạo quần thể bằng cách gán cho các gen trong NST bởi các giá trị ngẫu nhiên.
Phân nhóm lớp học phần
Hình 9 Mô tả đoạn lệnh phân lớp học phần
Xếp TKB hệ tín chỉ theo yêu cầu của SV
8.1Yêu cầu của sinh viên trong bài toán xếp TKB hệ tín chỉ
Trong đào tạo theo tín chỉ, sinh viên đóng vai trò trung tâm trong quá trình học tập Hình thức này cho phép sinh viên chủ động lựa chọn chương trình học phù hợp với điều kiện và năng lực cá nhân, bên cạnh các yếu tố cơ bản như giảng viên, phòng học và chuyên môn.
Số lượng sinh viên đông đảo với các yêu cầu thời khóa biểu khác nhau khiến việc đáp ứng nhu cầu cho tất cả trở nên khó khăn Do đó, việc thỏa mãn tối đa các yêu cầu trong điều kiện cho phép là điều khả thi hơn.
- Đầu mỗi học kỳ, nhà trường lập danh sách các lớp học phần dự kiến mở, phân công GV giảng dạy rồi cho sinh viên đăng ký học.
- Dựa vào số liệu đăng ký học ta sẽ phân thành các nhóm. Mỗi nhóm là tập hợp các sinh viên đăng ký các lớp học phần giống nhau.
Kết hợp các nhóm học phần một cách hợp lý để đảm bảo không có lớp học phần nào bị trùng lặp, đồng thời tổng số lớp học phần phải tương ứng với số lượng lớp cần thiết cho việc xếp thời khóa biểu.
- Chọn phương án kết hợp các nhóm sao cho tổng số sinh viên đăng ký học được thỏa mãn yêu cầu là lớn nhất.
- Áp dụng giải thuật di truyền ủể xếp thời khúa biểu cho các nhóm lớp được chọn ở trên.
Tính độ thích nghi của cá thể
Đánh giá độ thích nghi của cá thể dựa vào số lần vi phạm các ràng buộc Đầu tiên, tính toán độ thích nghi cho từng ràng buộc, sau đó cộng tổng các độ thích nghi lại để có được độ thích nghi tổng thể của cá thể Để nâng cao hiệu quả của giải thuật, cần nhân số lần vi phạm với trọng số thích hợp tùy thuộc vào từng loại ràng buộc.
Hình 10 Mô tả đoạn lệnh tính độ thích nghi của cá thể
Để thuận lợi cho việc đăng ký học của sinh viên, các nhóm lớp thường được tạo ra Các lớp trong cùng một nhóm sẽ không trùng lịch học, giúp sinh viên dễ dàng lựa chọn thời gian học phù hợp.
Hình 11 Mô tả đoạn lệnh rang buộc về nhóm lớp
ràng buộc trùng giờ GV
Vi phạm ràng buộc trùng giờ giảng viên xảy ra khi một giảng viên được phân công giảng dạy nhiều hơn một lớp tại một thời điểm.
Hình 12 Mô tả đoạn lệnh rang buộc trùng giờ giáo viên
ràng buộc giờ bận của GV
Khi xếp thời khóa biểu mỗi giảng viên có thể có những tiết không thể lên lớp vì lý do riêng hoặc bận sinh hoạt chuyên môn.
Hình 13 Mô tả đoạn lệnh giờ bận của GV
ràng buộc sức chứa phòng
Vi phạm sức chứa của phòng xảy ra khi một lớp được xếp lịch học tại phòng có sức chứa nhỏ hơn số lượng sinh viên của lớp đó.
Hình 14 Mô tả đoạn lệnh ràng buộc sức chứa phòng
ràng buộc giờ bận của phòng
Tương tự như giảng viên, mỗi phòng học cũng có những tiết bận không thể sử dụng được
ràng buộc số tiết trong tuần Để đảm bảo tiến độ, đối với các lớp học phần thì tổng số tiết trong tuần phải đúng với quy định
Hình 15 Mô tả đoạn lệnh ràng buộc số tiết trong tuần
ràng buộc số lần học
Dựa vào số tiết học hàng tuần của mỗi lớp và đặc thù của từng học phần, quy định số lần học tối thiểu và tối đa được thiết lập.
Hình 16 Mô tả đoạn lệnh số lần học
ràng buộc số tiết học mỗi lần
Khi xếp lịch học, cần đảm bảo mỗi buổi có từ 2 tiết trở lên, trừ những lớp học đặc thù như thực hành hoặc thí nghiệm, có thể yêu cầu số tiết nhiều hơn.
Tùy theo tính chất của học phần mà mỗi lớp sẽ yêu cầu một loại phòng khác nhau như lý thuyết, thực hành, thí nghiệm,…
Ràng buộc số buổi lên lớp của GV
Hầu hết giảng viên đều mong muốn giảm thiểu số buổi lên lớp trong khi vẫn đảm bảo đủ số tiết giảng dạy Đây là một yêu cầu hợp lý, do đó, cần đưa tiêu chí này vào đánh giá mức độ thích nghi của từng cá nhân.
Ràng buộc khoảng cách di chuyển của giảng viên
Trong các trường có khuôn viên rộng lớn, giảng viên thường phải di chuyển giữa nhiều phòng học để giảng dạy các lớp khác nhau Khoảng thời gian nghỉ giữa các tiết học không đủ để giảng viên di chuyển, điều này có thể ảnh hưởng tiêu cực đến sức khỏe của họ Do đó, việc giảm thiểu khoảng cách di chuyển của giảng viên trong quá trình giảng dạy là rất cần thiết.
Trọng số của các loại vi phạm ràng buộc
Trong các loại ràng buộc, mỗi loại ràng buộc có một tính chất riêng.
Có hai loại vi phạm ràng buộc: một loại thường xuyên xảy ra và một loại ít xảy ra hơn Vi phạm dễ phát hiện và vi phạm khó phát hiện cũng có sự khác biệt Nếu không phân loại các ràng buộc này một cách hợp lý, hệ thống sẽ gặp khó khăn trong việc xác định vi phạm nào cần được xử lý trước và vi phạm nào nên xử lý sau Điều này có thể dẫn đến việc không tìm ra được phương án xếp thời khóa biểu phù hợp với yêu cầu.
Nguyên tắc 1: Ràng buộc nào cần đạt được trước thì đặt trọng số thấp, ràng buộc nào cần đạt được sau thì đặt trọng số cao.
Nguyên tắc 2: Ràng buộc nào khó đạt được hơn thì đặt trọng số thấp, dễ đạt được hơn thì đặt trọng số cao.
Nguyên tắc 3 cho rằng ràng buộc mềm cần được đặt trọng số cao hơn ràng buộc cứng Điều này là bởi vì ràng buộc mềm là những yêu cầu bổ sung; nếu được thực hiện sẽ mang lại lợi ích, nhưng nếu không, vẫn có thể chấp nhận được.
Tham Số Của Giải Thuật Di Truyền
Trong luận văn này, tôi đã chọn các tham số cho thuật toán di truyền với pc = 0.5, pm = 0.015 và kích thước quần thể (popsize) là 50 lớp Mỗi thế hệ, kích thước quần thể tăng khoảng 0.02%.