3.2.1.1 Mã hóa cá thể
Phƣơng pháp mã hóa cá thể (tức Thời Khóa Biểu) sử dụng trong chƣơng trình đƣợc trình bày nhƣ sau: .
Các Môn đƣợc sắp xếp theo một thứ tự nhất định, thứ tự đó không thay đổi ở mỗi cá thể.
Gọi tổng số Môn học là n, mỗi Môn học có đầy đủ các thông tin: Thứ, Tiết học, Phòng học, Giảng viên. Mỗi môn là 1 gen tƣơng ứng với 1 hàng trong ma trận cá thể, một cá thể (Nhiễm sắc thể) có n gen tƣơng ứng với n Môn học.
Gen 1 Môn 1 Lớp Phòng học Thứ Tiết Gen 2 Môn 2 Lớp Phòng học Thứ Tiết
... ... ... ... ... ...
Gen n Môn n Lớp Phòng học Thứ Tiết Mỗi cá thể là một Thời Khóa Biểu của 1 kỳ học.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 39
Hình 12: Ma trận cá thể 3.2.1.2 Khởi tạo quần thể
Khởi tạo lần lƣợt từng Môn – gen trong ma trận cá thể theo phƣơng pháp ngẫu nhiên nhƣng phải kiểm tra ràng buộc.
Khi khởi tạo xong một gen trong ma trận cá thể ta sẽ kiểm tra tất cả các ràng buộc 1 lần, nếu các ràng buộc đều thỏa mãn thì sẽ khởi tạo tiếp tới khi đƣợc cá thể hoàn chỉnh, ngƣợc lại bị vi phạm sẽ sinh lại từ bƣớc đó.
a/ Kiểm tra ràng buộc
Kiểm tra ràng buộc liên quan tới phòng:
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 40
Bảng 10: Bảng kiểm tra ràng buộc về phòng
Một phòng sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày. Khi 1 Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Phòng, Tiết.
Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật 2 bit tƣơng ứng với tiết đó thành 1.
Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.
Kiểm tra ràng buộc liên quan tới giảng viên
Tạo bảng kiểm tra ràng buộc về Giảng Viên:
Bảng 11: Bảng kiểm tra ràng buộc về giảng viên
Một Giảng Viên sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày.
Khi sinh ra 1 Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Giảng Viên, Tiết. Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật 2 bit tƣơng ứng với tiết đó thành 1.
Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 41
Kiểm tra ràng buộc liên quan tới Lớp sinh viên
Tạo bảng kiểm tra ràng buộc về Lớp sinh viên:
Bảng 12: Bảng kiểm tra ràng buộc về lớp sinh viên
Một Lớp sinh viên sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày.
Khi một Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Lớp sinh viên, Tiết. Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật hai bit tƣơng ứng với tiết đó thành 1.
Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.
3.2.1.3 Xếp hạng đồng thời tính giá trị mục tiêu các cá thể trong quần thể
Mỗi cá thể trong quần thể luôn đƣợc đặc trƣng bởi thông số: số tiết trống của lớp sinh viên, và số phòng sử dụng.
Sau khi khởi tạo quần thể bao gồm các cá thể thỏa mãn ràng buộc, mỗi cá thể có một độ thích nghi nhất định trong quần thể. Công thức để tính độ thích nghi đó nhƣ sau:
F = a × + b×
Trong đó: a là hệ số thời gian trống của lớp sinh viên b là hệ số của phòng sử dụng
Mỗi cá thể có độ thích nghi là Fi, độ thích nghi của cá thể nào càng thấp thì xếp hạng càng cao. Hạng của mỗi cá thể sẽ đƣợc đánh theo thứ tự từ 1 tới N (1 là
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 42 cao nhất, N là thấp nhất, N là số cá thể trong quần thể). Tƣơng ứng với sự tăng dần của độ thích nghi. Độ thích nghi Fi cũng chính là hàm tính giá trị mục tiêu của mỗi cá thể, mục đích của giải thuật là tìm ra cá thể có giá trị F nhỏ nhất đồng nghĩa với việc tối ƣu đồng thời đƣơc ba mục tiêu: tiết trống của lớp sinh viên ít nhất và số phòng sử dụng là ít nhất.
3.2.1.4 Phương pháp chọn lọc
Chọn 30 cá thể có hạng cao nhất từ quần thể hiện tại để làm cha mẹ mang đi lai ghép.
3.2.1.5 Toán tử lai ghép a/ Lai ghép 1 điểm cắt
Ghép tất cả các cá thể trong 30 cá thể xếp hạng cao nhất thành cặp đem đi lai ghép, điểm cắt đƣợc chọn ngẫu nhiên trong các cặp lai đó.
Hình 13: Lai ghép 1 điểm cắt
Sau bƣớc lai ghép ra cá thể mới, sẽ thực hiện kiểm tra các ràng buộc cho cá thể này. Nếu cá thể mới không thỏa mãn các ràng buộc sẽ đƣợc bỏ đi khỏi quần thể.
b/ Lai ghép nhiều điểm cắt
Tƣơng tự nhƣ lai ghép một điểm cắt, chỉ khác điểm cắt trên hai cá thể cha mẹ không phải là một mà là hai điểm, hai điểm này sẽ đƣợc chọn ngẫu nhiên.
3.2.1.6 Toán tử đột biến
Chọn ra 10 cá thể có hạng cao nhất trong 30 cá thể đã chọn ở trên kiểm tra lớp sinh viên trong từng buổi của từng cá thể, tiến hành dồn tiết sao cho số tiết trống đó là nhỏ nhất.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 43 Sau bƣớc đột biến ra cá thể mới, sẽ thực hiện kiểm tra các ràng buộc cho cá thể này. Nếu cá thể mới không thỏa mãn các ràng buộc sẽ đƣợc bỏ đi khỏi quần thể.
3.2.1.7 Đấu tranh sinh tồn
Sau khi lai ghép và đột biến trên quần thể với N cá thể, ta sinh ra đƣợc p cá thể con mới. Từ tập N + p cá thể, ta chọn N cá thể tốt nhất đƣa vào quần thể mới để cho thế hệ tiếp theo.
3.2.1.8 Sơ đồ giải thuật di truyền
Hình 14: Sơ đồ giải thuật di truyền đề xuất