Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
2,06 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐỒN BƯU CHÍNH VIỄN THƠNG VIỆT NAM HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG - TRƯƠNG VĂN HIẾU KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHĨM VÀ TÌM KIẾM CỤC BỘ CHO BÀI TỐN XẾP THỜI KHĨA BIỂU NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH MÃ SỐ: 60.48.15 Người hướng dẫn khoa học: PGS TS TRẦN ĐÌNH QUẾ TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI – 2010 -1- MỞ ĐẦU Cơ sở khoa học thực tiễn đề tài: Bài tốn lập thời khóa biểu ln toán cổ điển thuộc lớp toán tối ưu ràng buộc, khó Từ lâu thu hút quan tâm, nghiên cứu phát triển nhiều tổ chức giáo dục, nhà khoa học tính ứng dụng cao độ phức tạp Các tốn lập thời khóa biểu thường phong phú, đa dạng ràng buộc yêu cẩu tổ chức Trong nhiều thập niên qua có nhiều phương pháp giải đưa Tuy nhiên, tính hiệu lời giải cho lớp tốn cịn nhiều bàn cãi Trong thuật tốn truyền thống tỏ hiệu thuật tốn mơ tự nhiên lại tỏ phương pháp hữu hiệu để giải tốn Những năm gần đây, có nhiều phát triển phong phú Thuật giải di truyền cổ điển kiểu gen, kỹ thuật kết hợp tìm kiếm cục thuật toán di truyền Chúng đem lại Thuật giải mạnh linh hoạt để giải vấn đề mang tính tổ hợp Với đề tài ”Kết hợp Thuật giải di truyền phân nhóm tìm kiếm cục cho tốn xếp thời khóa biểu”, khóa luận mạnh dạn nghiên cứu giới thiệu phương pháp cho việc giải tốn xếp thời khóa biểu trường đại học Mục tiêu luận văn Bài tốn xếp Thời khóa biểu từ lâu trở thành toán tiếng thu hút quan tâm nhiều nhà nghiên cứu, nhiều chuyên gia lĩnh vực liên quan Sự "nổi tiếng" toán không đo độ phức tạp vấn đề, mà cịn tính thực tiễn, khả áp dụng cao thực tế Do mục tiêu luận văn là: Nghiên cứu kỹ thuật kết hợp thuật tốn di truyền phân nhóm tìm kiếm cục cho toán xếp thời khoá biểu Luận văn xem xét áp dụng kỹ thuật vào việc xây dựng chương trình xếp thời khóa biểu cho trường đại học -2- CHƯƠNG TỔNG QUAN VỀ BÀI TỐN XẾP THỜI KHĨA BIỂU VÀ CÁC CÁCH TIẾP CẬN HIỆN NAY Bài tốn xếp Thời khóa biểu ln tốn khó, mang tính khoa học đồng thời tính thực tiễn cao Riêng mơi trường Việt Nam, từ lâu việc xếp thời khóa biểu trở thành vấn đề có tính thời sự, toán gây ý, quan tâm nhiều người Bài tốn lập thời khóa biểu trường hợp riêng toán lập lịch đưa chuỗi kiện (thơng thường môn học, giảng môn thi) bao gồm giáo viên học viên khoảng thời gian định trước thỏa mãn tập hợp ràng buộc loại thời khóa biểu khác Nói chung tốn lập thời khóa biểu chia làm dạng chung mô tả khác nhau: Bài tốn lập thời khóa biểu cho trường phổ thơng, tốn lập thời khóa biểu cho trường đại học, toán xếp lịch thi 1.1 Bài toán lập thời khóa biểu cho trường phổ thơng Bài tốn lập thời khóa biểu cho trường phổ thơng hay toán phân chia giáo viên, lớp học tuần tất môn học trường học Với ba tập hợp cho trước tập giáo viên, tập lớp học tập tiết học ma trận ràng buộc số giảng giáo viên phân cơng dạy lớp Bài tốn u cầu phân chia giảng vào tiết cho khơng giáo viên hay lớp học có giảng thời gian giáo viên có số lượng định giảng với lớp học 1.2 Bài toán lập thời khóa biểu cho trường đại học ( University timetabling ) Bài tốn lập thời khóa biểu cho trường đại học toán lập lịch cho giảng (lectures) vào khóa học với số lượng phịng học tiết học cho trước Điểm khác biệt với tốn lập thời khóa biểu trường phổ thơng đặc trưng khóa học trường đại học, sinh viên tham dự khóa học, lớp học trường phổ thông tạo tập hợp học sinh coi thực thể đơn Ở trường đại học, hai khóa học khác có trùng sinh viên tham dự điều tạo xung đột lập lịch tiết học Thêm vào đó, giáo viên trường phổ thông dạy nhiều lớp trường đại học -3- giáo sư thường dạy khóa học hay mơn học kỳ Cuối cùng, với toán trường đại học kích cỡ phịng học chiếm vai trị quan trọng với tốn trường phổ thơng vấn đề khơng quan trọng hầu hết trường phổ thơng lớp có phịng học riêng 1.3 Bài toán xếp lịch thi (Examination timetabling) Bài toán lập lịch thi tương tự toán lập thời khóa biểu cho trường đại học ta cần phân biệt khác hai toán Bài tốn lập lịch thi có đặc điểm khác sau : Chỉ có kỳ thi cho môn thi Các điều kiện xung đột nói chung hạn chế Thực tế, chấp nhận sinh viên bỏ qua giảng chồng chéo môn học khơng có sinh viên phép bỏ qua kỳ thi Và số ràng buộc khác ví dụ hầu hết sinh viên có kỳ thi ngày khơng có nhiều kỳ thi liên tiếp với sinh viên Số tiết kỳ thi khác nhau, ngược lại với toán lập thời khóa biểu cho trường đại học cố định Có thể có nhiều kỳ thi phịng lại khơng thể có nhiều giảng diễn phòng thời điểm 1.4 Các cách tiếp cận Bài toán thời khóa biểu nói riêng tốn tối ưu tổ hợp nói chung khó giải Sự khó khăn chúng thể độ phức tạp tính tốn với tốn thuộc lớp NP-khó thời gian để giải thường tăng theo hàm mũ kích thước tốn Như biết, thuật tốn “vét cạn” (tìm kiếm theo bề rộng theo độ sâu), mặt nguyên tắc phương pháp tìm nghiệm tốn tốn có nghiệm, song thực tế tốn NP-khó khơng thể áp dụng phương pháp này, ta phải phát triển khơng gian trạng thái lớn, trước tới trạng thái đích, hạn chế thời gian tính tốn dung lượng nhớ, không cho phép làm điều Trong năm gần việc kết hợp tìm kiếm cục thuật giải di truyền phân nhóm số cách tiếp cận Trong chương tìm hiểu chi tiết thuật tốn di truyền phân nhóm cho tốn UCTP -4- CHƯƠNG TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP TÌM KIẾM CỤC BỘ, THUẬT GIẢI DI TRUYỀN 2.1 Tìm kiếm cục Tìm kiếm cục dựa vào ý tưởng tổng quát đơn giản Gọi P toán tối ưu tổ hợp cần giải, s lời giải hành giả sử lời giải khả thi P, có hàm chi phí f(s) Miền lân cận N(s) định nghĩa cho s, tập lời giải láng giềng khả thi s’ s cho từ s ta đạt tới s’ nhờ vào bước chuyển m Bước chuyển có tác dụng biến đổi s thành lời giải láng giềng Thao tác biến đổi lặp hội tụ lời giải tốt Lời giải lời giải cận tối ưu, mà số tốn thực tế, khơng sai biệt nhiều với lời giải tối ưu 2.1.1 Xung đột tối thiểu (Min-conflict) Thuật giải xung đột tối thiểu, viết tắt MC dùng phổ biến để giải hệ ràng buộc mức Thuật giải MC chọn ngẫu nhiên biến dính líu đến ràng buộc bị vi phạm chọn trị từ miền trị biến cho tối thiểu hố số lượng vị phạm ràng buộc xảy Vì Thuật giải MC túy khơng điểm tối ưu cục bộ, Thuật giải thường kết hợp với chiến lược bước ngẫu nhiên (random walk) Với biến chọn, chiến lược bước ngẫu nhiên lấy ngẫu nhiên trị từ miền trị biến với xác xuất p, áp dụng theo Thuật giải MC với xác xuất 1- p Giá trị thông số p có ảnh hưởng lên hiệu Thuật giải Thuật giải gọi MCRW 2.1.2 Thuật giải mô luyện kim (simulated annealing) Mô luyện kim(SA) kỹ thuật tìm kiếm ngẫu nhiên (stochastic search) mà tỏ hữu hiệu cho toán tối ưu hóa qui mơ lớn Trong kỹ thuật này, nhiệt độ biến khởi tạo giá trị cao giảm dần xuống trình tìm kiếm Tại trị nhiệt độ cao, bước chuyển chấp nhận cách ngẫu nhiên chúng bước chuyển có cải thiện hàm chi phí lời giải hay khơng Khi nhiệt độ giảm xuống, xác xuất để chấp nhận lời giải có cải thiện tăng lên xác xuất để chấp nhận lời giải không cải thiện giảm xuống Có số cách thức giảm -5- nhiệt độ dần xuống dùng Thuật giải SA, gọi lịch biểu làm nguội (cooling schedule) 2.1.3 Thuật giải leo đồi (Hill-climbing) Thuật giải leo đồi tảng sở kỹ thuật tìm kiếm cục Mặc dù Thuật giải đơn giản lại lại mạnh hiệu việc giải toán CSP lớn Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ chế “tu chỉnh lập”: bước việc tìm kiếm, chọn bước chuyển mà cải thiện giá trị hàm mục tiêu để thực Trong Thuật giải leo đồi, bước chuyển cải thiện hàm chi phí khơng làm cho hàm chi phí thay đổi chọn việc tìm kiếm liên tục bước lên vị trí cao gặp điều kiện dừng 2.1.4 Tìm kiếm Tabu (Tabu search) Tìm kiếm Tabu đề xuất Glover năm 1986 ([10]) Phương pháp dị tìm khơng gian lời giải cách di chuyển từ lời giải s lượt lặp t lời giải tốt s’ tập N* miền lân cận N(s) Vì s’ khơng thiết cải thiện chi phí s, chế đặt để ngăn chặn q trình khỏi lặp vịng chuỗi lời giải Một cách để tránh lặp vòng cấm trình tìm kiếm quay lời giải gặp rồi, làm đòi hỏi phải lưu trữ nhiều thơng tin Thay làm thế, vài thuộc tính lời giải gặp lưu danh sách tabu (tabu list) lời giải sở hữu thuộc tính khơng xét đến θ? lần lặp Cơ chế thường gọi nhớ ngắn hạn θ? gọi kỳ hạn tabu Tìm kiếm tabu phát triển thành nhiều dạng cải tiến tìm kiếm tabu thích nghi (reactive tabu search) ([1]) tìm kiếm tabu với hai danh sách tabu: nhớ ngắn hạn nhớ dài hạn ([32]) 2.1.5 Thuật giải di truyền (genetic algorithm) Thuật giải di truyền (GA) (Goldberg, 1989 [6]) tỏ thành công số áp dụng GA mượn ý tưởng q trình tiến hóa sinh vật Ý tưởng Thuật giải trì quần thể lời giải ứng viên Các lời giải ứng viên cho hội riêng lẻ để sản sinh tùy thuộc vào độ thích nghi (fitness) chúng Độ thích nghi đo -6- hàm mục tiêu Thuật giải GA áp dụng vào việc giải hệ ràng buộc ([3]) Việc dùng Thuật giải GA vào toán tối ưu hóa có ràng buộc làm phát sinh nhiều vấn đề mà nhà nghiên cứu phải quan tâm giải Một vấn đề quan trọng làm để đưa ràng buộc vào hàm thích nghi (fitness function) để điều khiển trình tìm kiếm cách đóng đắn 2.1.6 Kết luận Sự thành cơng Thuật giải tìmkiếm cục nêu tùy thuộc vào đặc điểm thi công, tức tùy thuộc vào tham số kỹ thuật đặc thù mà người sử dụng phải xác định áp dụng Thuật giải tìm kiếm cục vào tốn cụ thể Q trình thực nghiệm để xác định thông số kỹ thuật Thuật giải tìm kiếm cục áp dụng vào tốn cụ thể gọi q trình điều chỉnh thông số (parametertuning) -7- 2.2 Thuật giải di truyền 2.2.1 Các đặc điểm đặc trưng Giải thuật di truyền mô chọn lọc tự nhiên di truyền Trong tự nhiên, cá thể khỏe, có khả thích nghi với mơi trường tốt tồn phát triển hệ sau Mỗi cá thể có cấu trúc gen đặc trưng cho tính chất cá thể Trong q trình sinh sản, cá thể thừa hưởng phẩm chất cha mẹ, cấu trúc gen mang phần cấu trúc gen cha mẹ Ngoài ra, q trình tiến hóa, xảy tượng đột biến, cấu trúc gen cá thể chứa gen mà cha mẹ khơng có Trong giải thuật di truyền, cá thể mã hóa cấu trúc liệu mơ tả cấu trúc gen cá thể đó, ta gọi nhiễm sắc thể Mỗi nhiễm sắc thể tạo thành từ đơn vị gọi gen Giải thuật di truyền làm việc quần thể gồm nhiều cá thể Một quần thể ứng với giai đoạn phát triển gọi hệ Từ hệ tạo ra, giải thuật di truyền bắt chước chọn lọc tự nhiên di truyền để biến đổi hệ 2.2.2 Các thành phần giải thuật di truyền 2.2.2.1 Khởi tạo quần thể ban đầu Tạo quần thể giải thuật, 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.2.2 Đánh giá 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 Các cá thể cha mẹ chọn theo độ thích nghi chúng Nhiễm sắc thể tốt có hội cao để tham dự vào hệ - Chọn lọc xếp hạng (Rank Selection) Phương pháp hạng cá thể dựa độ thích nghi chúng Cá thể xấu có giá trị 1, 2, v.v…và cá thể tốt có độ thích nghi N (N số nhiễm sắc thể quần thể) - Chọn lọc cạnh tranh (Tournament Selection) Chọn lọc cạnh tranh (2-tournament selection) -8- Hai nhiễm sắc thể khác chọn ngẫu nhiên so sánh với nhiễm sắc thể tồn Nếu nhiễm sắc thể I1 không tốt nhiễm sắc thể I2 nghĩa là: f(I1) ≤ f(I2), nhiễm sắc thể I1 chết bị loại khỏi quần thể Quá trình lặp lại đến hết N nhiễm sắc thể lại Chọn lọc cạnh tranh (3-tournament selection) Giống trên, ba nhiễm sắc thể khác chọn ngẫu nhiên so sánh Nếu có f(I1) ≤ f(I2) f(I1) ≤ f(I3), nhiễm sắc thể I1 chết bị loại khỏi quần thể Quá trình lặp lại đến hết N nhiễm sắc thể lại 2.2.2.3 Tốn tử lai ghép: Tốn tử lai ghép có trật tự bao gồm bước sau: - Chọn ngẫu nhiên chuỗi từ cá thể cha mẹ (parent) - Đưa proto-child cách chép chuỗi vào vị trí tương ứng cá thể cha mẹ - Xoá tất ký hiệu từ cá thể cha mẹ thứ hai, lúc có chuỗi Chuỗi cịn lại chứa ký hiệu mà proto-child cần - Đặt ký hiệu vào vị trí khơng cố định proto-child từ trái sang phải theo trật tự chuỗi để tạo cá thể 2.2.2.4 Toán tử đột biến: - Đột biến đảo ngược(Inversion Mutation) Chọn hai vị trí ngẫu nhiên nhiễm sắc thể sau đó, nghịch đảo chuỗi hai vị trí - Đột biến thay (Displacement Mutation) Chọn ngẫu nhiên chuỗi chèn vào vị trí ngẫu nhiên Đột biến chèn xem trường hợp đặc biệt đột biến thay, đó, chuỗi chứa gen - Đột biến tương hỗ (Reciprocal Exchange Mutation) Chọn ngẫu nhiên hai vị trí sau hốn vị gen vị trí 2.2.2.5 Đột biến chuyển dịch (Shift Mutation) Trước tiên, chọn ngẫu nhiên gen, sau đó, dịch chuyển đến vị trí ngẫu nhiên bên phải bên trái vị trí gen -9- CHƯƠNG KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHĨM VÀ TÌM KIẾM CỤC BỘ CHO BÀI TỐN UCTP 3.1 Thuật giải di truyền phân nhóm Thuật tốn GGA, coi dạng đặc biệt thuật toán di truyền chuyên dùng cho vấn đề phân nhóm Falkenauer[2] định nghĩa tốn phân nhóm tốn có nhiệm vụ phân chia tập hợp đối tượng U thành tập hợp tập hợp (nhóm) ui U thỏa mãn: 3.1.1 Mã hóa Cấu tạo đoạn mã GGA gồm phần : phần đối tượng, phần nhóm Mỗi đối tượng có đoạn gen Đối tượng Phân cách Nhóm AABC:BAC Đối tượng Nhóm C Đối tượng Nhóm B Đối tượng Nhóm A Đối tượng Nhóm A Hình 1: Mã hóa gen Thuật giải di truyền phân nhóm Ví dụ [1,2,3,4,1,1,1,1,1] : [1,2,3,4] ta mã hóa theo cách khác sau: {{1, 5, 6, 7, 8, 9},{2},{3},{4}} - 10 - 3.1.2 Lai ghép Mục đích toán tử lai ghép chuyển cách hợp lý liên kết nhóm từ bố mẹ tới Tốn tử lai ghép làm việc trực tiếp với nhóm giám tiếp với đối tượng Toán tử lai ghép thực theo bước sau: 1> Chọn ngẫu nhiên điểm cắt nhóm bố mẹ, phân định ranh giới đoạn cắt 2> Sao chép nội dung đoạn cắt bố mẹ thứ tới vị trí cắt bố mẹ thứ Điều có nghĩa ta chép vài nhóm từ bố mẹ thứ tới bố mẹ thứ 3> Loại bỏ tất đối tượng xuất từ lần trở lên từ bố mẹ thứ 4> Các đối tượng nhóm bị tác động ( nhóm mà phần tử trùng bị loại bỏ) gán lại tuân theo luật heuristic 5> Lặp lại bước từ tới cho sinh với vai trò bố mẹ điểm lai ghép đảo ngược Điểm cắt Bước Chọn nhóm Bước Nhóm bị xóa Nhóm sửa Đối tượng bị xóa chèn lại Bước Bước Hình 2: Lai ghép 3.1.3 Đột biến Vai trị tốn tử đột biến thuật toán di truyền đảm bảo vài nhiễm sắc thể tạo gần tìm kiếm vùng khơng gian tìm kiếm - 11 - Cũng giống lai ghép, tốn tử đột biến làm việc trực tiếp với nhóm theo bước sau: 1> Tạo nhóm cho đối tượng trích từ nhiều nhóm tồn 2> Loại bỏ nhóm tồn cách di chuyển nội dung tới nhóm khác 3> Di chuyển nhiều đối tượng tới nhóm khác 4> Sắp xếp lại nhiều đối tượng nhóm 3.2 Kết hợp GGA tìm kiếm cục cho tốn UCTP 3.2.1 Dữ liệu toán Trong luận tơi khơng mong muốn làm để đáp ứng cho tất loại hình đào tạo, mà cố gắng giải dạng đơn giản đào tạo theo niên chế học đồng theo kỳ Điều có nghĩa tơi đơn giản lập thời khố biểu cho tuần sau nhân chúng lên Trong khuôn khổ thời gian luận cố gắng quan tâm đến vấn đề mô thuật toán mà chưa đến giai đoạn làm thật 3.2.2 Các yêu cầu toán (các ràng buộc) Khi lập thời khoá biểu phải đảm bảo yêu cầu sau (ràng buộc cứng): Không lớp học phải học thời điểm môn Các phịng đủ rộng để chứa hết số SV Không giáo viên phải dạy môn thời gian Tiếp đến xem xét đến ràng buộc mềm: Thời khoá biểu phải có khả chấp nhận ngày nghỉ định trước giáo viên 3.2.3 Các kiện Các kiện định nghĩa sau: Có nhóm lớp tham gia học (1 nhóm bao gồm lớp) Tham số đồng thời chứa thống số phụ tổng số Sinh Viên Tham gia kiện Có mơn học Có giáo viên dạy Sự kiện sảy thời điểm tuần (xác định ngày, tiết) Phòng học - 12 - 3.2.4 Trình bày giải pháp Trong tốn chúng tơi đề xuất sử dụng giải pháp giai đoạn: Giai đoạn : Tìm phương án khả thi cách sử dụng thuật giải di truyền phân nhóm để thỏa mãn ràng buộc cứng Giai đoạn : Giảm thiểu vi phạm ràng buộc mềm xuống mức thấp cách sử dụng phương pháp tìm kiếm cục 3.2.5 Giai đoạn sử dụng Thuật giải di truyền phân phóm Ở tập hợp kiện đóng vai trị tập hợp đối tượng để phân chia nhóm xác định tiết học Do giải pháp khả thi giải pháp mà tất kiện cần nhóm tới nhiều tiết học t (trong trường hợp t=60 (5 ngày 12 tiết ngày) Mỗi thời khoá biểu tương đương với ma trận M với hàng đại diện cho phòng học cột đại diện cho tiết học; M(a,b)=c kiện c chắn xảy phòng học a tiết học b có nhiếu kiện Mặt khác M(a,b) bỏ trống khơng có kiện xếp phòng học a tiết học b CONSTRUCT (tt, U) if (len(tt) < t) Open (t – len(tt)) new timeslots; Build (tt, U, 1, len(tt)); BUILD (tt, U, l, r) while ( tồn kiện U với vị trí tt nằm khoảng l r) Chọn kiện e U mà khả thi gán tt; Chọn vị trí chèn e vào; if (U =Φ) end; else Open [|U|/m] timeslots; Build (tt, U, r, len(tt)); Hình Lưu ý ràng buộc mềm không xem xét định nghĩa Ở sử dụng thủ tục Construct Buid với tham số: tt thời khóa biểu chưa hoàn chỉnh, U chứa danh sách kiện chưa xếp thời khóa biểu Sử dụng chương trình Buid, kiện lấy từ U ( tuân theo heristics định nghĩa bảng 1) chèn vào vị trí khả thi nằm khoảng l r thời khóa biểu Các kiện mà khơng có vị trí khả thi để chèn bỏ qua Cuối U rỗng - 13 - chứa kiện mà chèn vào đâu thời khóa biểu thời Số tiết học mở thêm tính dịng thủ tục Buid hình Thứ tự khởi tạo quẩn thể ban đầu thực sau: Thủ tục Construct gọi cho nhiễm sắc thể Ở bước thực hiện, kiện chọn tuân theo heuristic H1 với ưu tiên sau H3 Tiếp theo vị trí chọn cho kiện tuân theo heuristic H4 với ưu tiên sau H6 Việc sử dụng luật H1, H2 cho phép ưu tiên xếp kiện mà khó khả thi nhất, luật H4, H5 cho phép ưu tiên chọn vị trí khả thi Điều có nghĩa thời khóa biểu điền với nhiều kiện tiết học khả thi Luật H3, H6 ( chọn ngẫu nhiên) đảm bảo cho đủ ngẫu nhiên khởi tạo quần thể Heuristic H1 H2 H3 H4 H5 H6 Bảng Mô tả Chọn kiện có khả xếp vào thời khóa biểu Chọn kiện mà khả xung đột với kiện khác nhiều Chọn kiện ngẫu nhiên Chọn vị trí mà tồi kiện chưa đc xếp Chọn vị trí thời khóa biểu có nhiều kiện Chọn vị trí ngẫu nhiên Tốn tử di truyền Hình cho thấy chúng tơi thực việc tái kết hợp để xây dựng thời khoá biểu sử dụng bố mẹ P1 P2, chọn ngẫu nhiên điểm lai ghép a, b, c d - 14 a c b P1 d P2 (1) Điểm lựa chọn: Chọn thời khóa biểu p1 p2, chọn ngẫu nhiên điểm cắt a, b, c d + (2) Lai ghép: Copy tiết học nằm khoảng c d tới điểm a U (3) Xóa kiện trùng: Xóa tiết học mà nội dung chứa kiện trùng p1 Các kiện không trùng lặp nằm tiết học bị xóa đưa vào tập U (4) Xây dựng lại: Chèn lại kiện U sử dụng chương trình Buid Hình 6: Quá trình tái kết hợp Để thực TKB thứ hai chuyển đổi vai trò bố mẹ điểm lai ghép Điểm quan trọng toán tử lai ghép cho phép TKB tạo thừa kế tiết học xếp hoàn chỉnh TKB bố mẹ Trong trình tiến hành tái kết hợp, lưu ý bước2 (lai ghép), có kiện trùng TKB con, mà tạo khơng hợp lệ Để hiểu chỉnh lỗi chúng tơi tiến hành xóa kiện trùng từ tiết học p1 Cuối cùng, bước trình tái kết hợp kiện chưa xếp (sự kiện U) chèn lại sử dụng thủ tục BUID (hình 1) với heuristic H1 để định nghĩa thứ tự kiện chèn ( với ưu tiên sau sử dụng H2, H3) Các vị trí để chèn kiện sử dụng heuristic phần khởi tạo quần thể Toán tử đột biến mà sử dụng tuân theo biểu đồ đột biến GGA điển hình (mr tỷ lệ đột biến) : chuyển số tiết học khó xếp số tiết học lựa chọn ngẫu nhiên từ TKB nhập lại kiện vào tiết học có sử dụng biểu đồ Rebuild Cụ thể biểu đồ Rebuild lấy TKB tt rỗng phần tập hợp U kiện chưa xếp Sau gán cho tất u∈ phòng U học tiết học để tạo TKB hoàn chỉnh, mở tiết học cần thiết Lưu ý TKB ban đầu với U=E Để S ứng với tập hợp tiết học tt P ứng với tập hợp nơi tt , ví dụ P=RxS - 15 - Cuối cùng, GGA sử dụng toán tử đảo ngược, toán tử lựa chọn ngẫu nhiên hai tiết học TKB đổi thứ tự tất nội dung chúng Nâng cao chất lượng lời giải giai đoạn Sau sử dụng thuật tốn GGA chúng tơi tiếp tục sử dụng thủ tục HeuristicSearch để giảm thiểu kiện chưa xếp xuống mức nhỏ - 16 HeuristicSearch(tt,U,itLimit) V danh sách vị trí tt mà chưa có kiện đc gán i:=0; while (U and V and i