kẾt hỢp thuẬt giẢi di truyỀn phÂn nhÓm -...

22
BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀ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 TOÁ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 8 Người hướng dẫn khoa học: PGS. TS TRẦN ĐÌNH QUTÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI – 2010

Upload: buituong

Post on 05-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀ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 TOÁ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 8

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

Page 2: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP
Page 3: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 1 -

MỞ ĐẦU

1. Cơ sở khoa học và thực tiễn của đề tài: Bài toán lập thời khóa biểu luôn là một bài toán cổ điển thuộc lớp bài toán

tối ưu ràng buộc, khó. Từ lâu đã thu hút được sự quan tâm, nghiên cứu và phát triển của nhiều tổ chức giáo dục, các nhà khoa học bởi tính ứng dụng cao và độ phức tạp của nó. Các bài toán lập thời khóa biểu thường rất phong phú, đa dạng bởi các ràng buộc và yêu cẩu của từng tổ chức.

Trong nhiều thập niên qua đã có rất nhiều các phương pháp giải được đưa ra. Tuy nhiên, tính hiệu quả của lời giải cho lớp bài toán vẫn còn nhiều bàn cãi. Trong khi các thuật toán truyền thống tỏ ra kém hiệu quả thì các thuật toán mô phỏng tự nhiên lại tỏ ra là phương pháp hữu hiệu nhất để giải các bài toán này.

Những năm gần đây, đã có nhiều các phát triển phong phú của Thuật giải di truyền cổ điển về kiểu gen, kỹ thuật kết hợp tìm kiếm cục bộ và thuật toán di truyền. Chúng đem lại những Thuật giải mới khá mạnh và linh hoạt để giải quyết các 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 và tìm kiếm cục bộ cho bài toán xếp thời khóa biểu”, khóa luận mạnh dạn nghiên cứu và giới thiệu một phương pháp mới cho việc giải các bài toán xếp thời khóa biểu trong trường đại học. 2. Mục tiêu của luận văn

Bài toán xếp Thời khóa biểu đã từ lâu trở thành một bài toán nổi tiếng và thu hút được sự quan tâm của rất nhiều nhà nghiên cứu, nhiều chuyên gia trong các lĩnh vực liên quan. Sự "nổi tiếng" của bài toán này không chỉ được đo bởi độ phức tạp của vấn đề, mà còn ở tính thực tiễn, khả năng áp dụng rất cao trên thực tế. Do đó mục tiêu của luận văn là: Nghiên cứu kỹ thuật kết hợp thuật toán di truyền phân nhóm và tìm kiếm cục bộ cho bài toán sắp xếp thời khoá biểu. Luận văn sẽ xem xét áp dụng kỹ thuật này 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.

Page 4: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 2 -

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN XẾP THỜI KHÓA BIỂU VÀ

CÁC CÁCH TIẾP CẬN HIỆN NAY

Bài toán xếp Thời khóa biểu luôn là một bài toán khó, mang tính khoa học đồng thời tính thực tiễn cũng rất cao. Riêng đối với môi trường Việt Nam, từ lâu việc xếp thời khóa biểu đã trở thành một vấn đề có tính thời sự, một bài toán gây được sự chú ý, quan tâm của nhiều người.

Bài toán lập thời khóa biểu là một trường hợp riêng của bài toán lập lịch trong đó đưa ra một chuỗi các sự kiện (thông thường là các môn học, bài giảng hoặc các môn thi) và bao gồm các giáo viên và học viên trong một khoảng thời gian định trước và thỏa mãn một tập hợp các ràng buộc của từng loại thời khóa biểu khác nhau. Nói chung bài toán lập thời khóa biểu được chia làm 3 dạng chung được mô tả khác nhau: Bài toán lập thời khóa biểu cho trường phổ thông, bài toán lập thời khóa biểu cho trường đại học, bài 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 toán lập thời khóa biểu cho trường phổ thông hay bài toán phân chia

giáo viên, lớp học trong một tuần đối với tất cả các môn học của một trường học. Với ba tập hợp cho trước là tập giáo viên, tập lớp học và tập tiết học và một ma trận ràng buộc số bài giảng một giáo viên được phân công dạy một lớp. Bài toán yêu cầu phân chia các bài giảng vào các tiết sao cho không giáo viên hay lớp học nào có cùng một bài giảng trong cùng một thời gian và mỗi giáo viên đều có một số lượng nhất định các bài giảng với mỗ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 toán lập thời khóa biểu cho trường đại học là bài toán lập lịch cho các

bài giảng (lectures) vào từng khóa học với một số lượng phòng học và tiết học cho trước. Điểm khác biệt chính với bài toán lập thời khóa biểu trường phổ thông là đặc trưng của các khóa học ở trường đại học, các sinh viên tham dự khóa học, trong khi các lớp học ở trường phổ thông được tạo bởi tập hợp các học sinh và có thể coi như là một thực thể đơn. Ở các trường đại học, hai khóa học khác nhau có thể có trùng sinh viên tham dự và điều đó có thể tạo ra xung đột và sẽ không thể lập lịch được trong cùng một tiết học. Thêm vào đó, các giáo viên ở trường phổ thông luôn dạy nhiều hơn một lớp trong khi ở trường đại học

Page 5: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 3 -

một giáo sư thường chỉ dạy một khóa học hay một môn học trong một kỳ. Cuối cùng, với bài toán trường đại học kích cỡ các phòng học chiếm một vai trò quan trọng trong khi với bài toán trường phổ thông vấn đề này là không quan trọng bởi vì trong hầu hết các trường phổ thông mỗi lớp có một 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ự như bài toán lập thời khóa biểu cho trường đại

học nhưng ta cần phân biệt sự khác nhau giữa hai bài toán này. Bài toán lập lịch thi có những đặc điểm khác sau đây :

Chỉ có một kỳ thi cho mỗi một môn thi. Các điều kiện xung đột nói chung là hạn chế. Thực tế, chúng ta có thể

chấp nhận một sinh viên có thể bỏ qua một bài giảng do sự chồng chéo các môn học nhưng không có sinh viên nào được phép bỏ qua một kỳ thi.

Và một số ràng buộc khác nhau ví dụ hầu hết một sinh viên sẽ chỉ có một kỳ thi trong một ngày và không có nhiều quá các kỳ thi liên tiếp nhau với một sinh viên.

Số tiết của kỳ thi có thể khác nhau, ngược lại với bài toán lập thời khóa biểu cho trường đại học cái đó là cố định.

Có thể có nhiều hơn một kỳ thi trong một phòng nhưng lại không thể có nhiều bài giảng được diễn ra trong một phòng tại một thời điểm.

1.4 Các cách tiếp cận hiện nay Bài toán thời khóa biểu nói riêng và các bài toán tối ưu tổ hợp nói chung là

rất khó giải. Sự khó khăn của chúng được thể hiện ở độ phức tạp tính toán và với những bài toán thuộc lớp NP-khó như vậy thời gian để giải thường tăng theo hàm mũ của kích thước bài toán.

Như chúng ta đã biết, trong thuật toán “vét cạn” (tìm kiếm theo bề rộng hoặc theo độ sâu), về mặt nguyên tắc các phương pháp tìm được nghiệm của bài toán nếu bài toán có nghiệm, song trên thực tế những bài toán NP-khó không thể áp dụng được phương pháp này, vì ta phải phát triển một không gian trạng thái rất lớn, trước khi đi tới trạng thái đích, do những hạn chế về thời gian tính toán và dung lượng bộ nhớ, không cho phép chúng ta làm được điều đó.

Trong những năm gần đây việc kết hợp tìm kiếm cục bộ và thuật giải di truyền phân nhóm là một trong số các cách tiếp cận mới nhất. Trong chương 3 chúng ta sẽ tìm hiểu chi tiết thuật toán di truyền phân nhóm cho bài toán UCTP.

Page 6: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 4 -

CHƯƠNG 2 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 bộ

Tìm kiếm cục bộ dựa vào một ý tưởng tổng quát và đơn giản. Gọi P là một bài toán tối ưu tổ hợp cần giải, và s là lời giải hiện hành giả sử là một lời giải khả thi của P, và có hàm chi phí f(s). Miền lân cận N(s) được định nghĩa cho s, là tập những lời giải láng giềng khả thi s’ của s sao cho từ s ta có thể đạt tới s’ nhờ vào một bước chuyển m. Bước chuyển có tác dụng biến đổi s thành ra một lời giải láng giềng. Thao tác biến đổi này được lặp cho đến khi hội tụ về một lời giải tốt. Lời giải này là lời giải cận tối ưu, mà trong một số bài toán thực tế, không sai biệt gì 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 là MC đã được dùng khá phổ biến để giải hệ ràng buộc quá mức. Thuật giải MC chọn ngẫu nhiên một biến nào đó dính líu đến một ràng buộc bị vi phạm và rồi chọn một trị từ miền trị của biến này sao cho tối thiểu hoá số lượng những vị phạm ràng buộc có thể xảy ra. Vì Thuật giải MC thuần túy có thể không thoát ra được điểm tối ưu cục bộ, Thuật giải thường kết hợp với một chiến lược bước ra ngẫu nhiên (random walk). Với một biến nào đó được chọn, chiến lược bước ra ngẫu nhiên lấy ngẫu nhiên một trị từ miền trị của biến này với xác xuất p, và áp dụng theo Thuật giải MC với xác xuất 1- p. Giá trị của thông số p có ảnh hưởng lên hiệu quả của Thuật giải. Thuật giải này được gọi là MCRW 2.1.2 Thuật giải mô phỏng luyện kim (simulated annealing)

Mô phỏng luyện kim(SA) là một kỹ thuật tìm kiếm ngẫu nhiên (stochastic

search) mà tỏ ra rất hữu hiệu cho những bài toán tối ưu hóa qui mô lớn. Trong kỹ thuật này, nhiệt độ là biến được khởi tạo ở một giá trị cao và dần dần giảm dần xuống trong quá trình tìm kiếm. Tại những trị nhiệt độ cao, các bước chuyển được chấp nhận một cách ngẫu nhiên bất luận chúng là bước chuyển có cải thiện hàm chi phí của lời giải hay không. Khi nhiệt độ được giảm xuống, xác xuất để chấp nhận một lời giải có cải thiện sẽ tăng lên và xác xuất để chấp nhận một lời giải không cải thiện sẽ giảm xuống. Có một số cách thức giảm

Page 7: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 5 -

nhiệt độ dần xuống được dùng trong một Thuật giải SA, được gọi là 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 chính là nền tảng cơ sở của các kỹ thuật tìm kiếm cục bộ. Mặc dù đây là Thuật giải đơn giản nhưng lại nó lại rất mạnh và hiệu quả trong việc giải quyết các bài toán CSP lớn. Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ cơ chế “tu chỉnh lập”: ở mỗi bước của việc tìm kiếm, chúng ta sẽ chọn một bước chuyển mà nó cải thiện giá trị hàm mục tiêu để thực hiện.

Trong Thuật giải leo đồi, chỉ những bước chuyển cải thiện được hàm chi phí hoặc không làm cho hàm chi phí thay đổi mới được chọn vì vậy việc tìm kiếm sẽ liên tục bước lên vị trí cao hơn cho đến khi nó gặp điều kiện dừng. 2.1.4 Tìm kiếm Tabu (Tabu search) Tìm kiếm Tabu được đề xuất bởi Glover năm 1986 ([10]). Phương pháp dò tìm trong không gian lời giải bằng cách di chuyển từ một lời giải s tại lượt lặp t về một lời giải tốt nhất s’ trong tập con N* của miền lân cận N(s). Vì s’ không nhất thiết cải thiện chi phí của s, một cơ chế được đặt ra để ngăn chặn quá trình khỏi lặp vòng trên một chuỗi các lời giải. Một cách để tránh sự lặp vòng là cấm quá trình tìm kiếm quay về những lời giải đã gặp rồi, nhưng làm như vậy đòi hỏi phải lưu trữ khá nhiều thông tin. Thay vì làm thế, chỉ một vài thuộc tính của những lời giải đã gặp sẽ được lưu trong danh sách tabu (tabu list) và bất kỳ lời giải nào sở hữu những thuộc tính này sẽ không được xét đến trong θ? lần lặp. Cơ chế này thường được gọi là bộ nhớ ngắn hạn và θ? được gọi là kỳ hạn tabu. Tìm kiếm tabu được phát triển thành nhiều dạng cải tiến như tìm kiếm tabu thích nghi (reactive tabu search) ([1]) và tìm kiếm tabu với hai danh sách tabu: bộ nhớ ngắn hạn và bộ 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ỏ ra khá thành công trong một số những áp dụng. GA mượn ý tưởng trong quá trình tiến hóa của sinh vật. Ý tưởng chính của Thuật giải là duy trì một quần thể các lời giải ứng viên. Các lời giải ứng viên này sẽ được cho cơ hội riêng lẻ để sản sinh ra con cái tùy thuộc vào độ thích nghi (fitness) của chúng. Độ thích nghi được đo bằng một

Page 8: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 6 -

hàm mục tiêu. Thuật giải GA đã được á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 các bài toán tối ưu hóa có ràng buộc làm phát sinh nhiều vấn đề mà các nhà nghiên cứu phải quan tâm giải quyết. Một trong những vấn đề quan trọng là làm thế nào để đưa các ràng buộc vào các hàm thích nghi (fitness function) để điều khiển quá trình tìm kiếm một cách đóng đắn. 2.1.6 Kết luận

Sự thành công của bất kỳ Thuật giải tìmkiếm cục bộ nào nêu trên cũng tùy

thuộc vào các đặc điểm thi công, tức là tùy thuộc vào các tham số kỹ thuật đặc thù mà người sử dụng phải xác định khi áp dụng Thuật giải tìm kiếm cục bộ đó vào bài toán cụ thể. Quá trình thực nghiệm để xác định các thông số kỹ thuật của một Thuật giải tìm kiếm cục bộ nào đó khi áp dụng vào một bài toán cụ thể được gọi là quá trình điều chỉnh thông số (parametertuning).

Page 9: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 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ô phỏng sự chọn lọc tự nhiên và di truyền. Trong tự nhiên, các cá thể khỏe, có khả năng thích nghi với môi trường tốt sẽ được tồn tại và phát triển ở các thế hệ sau. Mỗi cá thể có cấu trúc gen đặc trưng cho tính chất của cá thể đó. Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất của cha mẹ, cấu trúc gen của nó mang một phần cấu trúc gen của cha mẹ. Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gen của cá thể con có thể chứa các gen mà cả cha mẹ đều không có. Trong giải thuật di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu mô tả cấu trúc gen của cá thể đó, ta gọi nó là nhiễm sắc thể. Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gen. Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Một quần thể ứng với một giai đoạn phát triển gọi là một thế hệ. Từ một thế hệ được tạo ra, giải thuật di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các thế hệ. 2.2.2 Các thành phần của 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ể đầu tiên trong giải thuật, là nơi xuất phát quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu. Tùy theo vấn đề của bài toán mà có cách khởi tạo khác nhau. 2.2.2.2 Đánh giá cá thể Có nhiều phương pháp để chọn các 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ẹ được chọn theo độ thích nghi của chúng. Nhiễm sắc thể tốt hơn có cơ hội cao hơn để tham dự vào thế hệ tiếp theo. - Chọn lọc xếp hạng (Rank Selection) Phương pháp này sẽ sắp hạng cá thể dựa trên độ thích nghi của chúng. Cá thể xấu nhất sẽ có giá trị 1, kế tiếp là 2, v.v…và cá thể tốt nhất sẽ có độ thích nghi N (N là số nhiễm sắc thể trong quần thể). - Chọn lọc cạnh tranh (Tournament Selection)

Chọn lọc cạnh tranh 2 (2-tournament selection)

Page 10: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 8 -

Hai nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhiễm sắc thể tồn tại. Nếu nhiễm sắc thể I1 không tốt hơn nhiễm sắc thể I2 nghĩa là: f(I1) ≤ f(I2), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể. Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại.

Chọn lọc cạnh tranh 3 (3-tournament selection) Giống như trên, ba nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh. Nếu chúng ta có f(I1) ≤ f(I2) và f(I1) ≤ f(I3), thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể. Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại. 2.2.2.3 Toán tử lai ghép: Toán tử lai ghép có trật tự bao gồm các bước sau: - Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ (parent). - Đưa ra một proto-child bằng cách sao chép chuỗi con vào những vị trí tương

ứng như trong cá thể cha mẹ. - Xoá tất cả các ký hiệu từ cá thể cha mẹ thứ hai, lúc này đã có trong chuỗi

con. Chuỗi còn lại chứa các ký hiệu mà proto-child cần. - Đặt các ký hiệu vào những vị trí không cố định của proto-child từ trái sang

phải theo trật tự của chuỗi để tạo ra cá thể con. 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 trong một nhiễm sắc thể và sau đó, nghịch đảo chuỗi giữa hai vị trí này. - Đột biến thay thế (Displacement Mutation) Chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí ngẫu nhiên. Đột biến chèn có thể được xem như trường hợp đặc biệt của đột biến thay, trong đó, chuỗi con chỉ chứa một gen. - Đột biến tương hỗ (Reciprocal Exchange Mutation) Chọn ngẫu nhiên hai vị trí và sau đó hoán vị gen trên những vị trí này. 2.2.2.5 Đột biến chuyển dịch (Shift Mutation) Trước tiên, chọn ngẫu nhiên một gen, sau đó, dịch chuyển nó đến một vị trí ngẫu nhiên bên phải hoặc bên trái vị trí của gen.

Page 11: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 9 -

CHƯƠNG 3 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 TOÁN UCTP 3.1 Thuật giải di truyền phân nhóm

Thuật toán GGA, có thể được coi là một dạng đặc biệt của thuật toán di truyền chuyên dùng cho các vấn đề phân nhóm. Falkenauer[2] định nghĩa bài toán phân nhóm là bài toán có nhiệm vụ phân chia một tập hợp các đối tượng U thành một tập hợp các tập hợp con (nhóm) ui của U thỏa mãn:

3.1.1 Mã hóa

Cấu tạo của đoạn mã GGA gồm 2 phần : phần 1 là đối tượng, phần 2 là nhóm. Mỗi đối tượng có một đoạn gen.

Hình 1: Mã hóa gen trong 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 có thể mã hóa theo cách khác như sau: {{1, 5, 6, 7, 8, 9},{2},{3},{4}}

Đối tượng 0 ở Nhóm A

Đối tượng 1 ở Nhóm A

Đối tượng 2 ở Nhóm B

Đối tượng 3 ở Nhóm C

AABC:BAC

Đối tượng Phân cách Nhóm

Page 12: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 10 -

3.1.2 Lai ghép

Mục đích của toán tử lai ghép là chuyển một cách hợp lý các liên kết nhóm từ bố mẹ tới con. Toán tử lai ghép làm việc trực tiếp với nhóm và giám tiếp với đối tượng.

Toán tử lai ghép được thực hiện theo 5 bước sau: 1> Chọn ngẫu nhiên 2 điểm cắt trên nhóm của 2 bố mẹ, phân định ranh giới của

đoạn cắt 2> Sao chép nội dung của đoạn cắt trên bố mẹ thứ 2 tới vị trí cắt đầu tiên trên bố

mẹ thứ 1. Điều này có nghĩa là ta đã sao chép một vài nhóm từ bố mẹ thứ 2 tới bố mẹ thứ 1

3> Loại bỏ tất cả các đối tượng xuất hiện từ 2 lần trở lên từ bố mẹ thứ 1 4> Các đối tượng trong các nhóm đã bị tác động ( nhóm mà các phần tử trùng

đã bị loại bỏ) được gán lại tuân theo một luật heuristic 5> Lặp lại các bước từ 2 tới 4 cho con mới được sinh ra với vai trò của bố mẹ và

các điểm lai ghép được đảo ngược

Hình 2: Lai ghép

3.1.3 Đột biến

Vai trò của toán tử đột biến ở thuật toán di truyền đảm bảo rằng một vài nhiễm sắc thể con được tạo ra gần đây sẽ được tìm kiếm trên vùng mới của không gian tìm kiếm.

Điểm cắt

Chọn nhóm

Bước 1

Bước 2

Nhóm bị xóa Nhóm sửa

Bước 3 Bước 4

Đối tượng 2 bị xóa và chèn lại

Page 13: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 11 -

Cũng giống như lai ghép, toán tử đột biến làm việc trực tiếp với nhóm theo các bước sau: 1> Tạo nhóm ra mới cho các đối tượng được trích ra từ một hoặc nhiều nhóm

đã tồn tại 2> Loại bỏ nhóm đã tồn tại bằng cách di chuyển nội dung của nó tới các nhóm

khác 3> Di chuyển một hoặc nhiều đối tượng tới các nhóm khác 4> Sắp xếp lại một hoặc nhiều đối tượng giữa các nhóm 3.2 Kết hợp GGA và tìm kiếm cục bộ cho bài toán UCTP 3.2.1 Dữ liệu của bài toán

Trong bài luận này tôi không mong muốn làm để có thể đáp ứng cho tất cả các loại hình đào tạo, vì vậy mà tôi sẽ cố gắng giải quyết dạng đơn giản nhất đó là đào tạo theo niên chế và học đồng đều theo kỳ. Điều đó có nghĩa rằng tôi sẽ chỉ đơn giản đó là lập thời khoá biểu cho 1 tuần sau đó sẽ nhân chúng lên

Trong khuôn khổ thời gian của một bài luận tôi chỉ cố gắng quan tâm đến vấn đề mô phỏng thuật toán mà chưa đến giai đoạn làm thật. 3.2.2 Các yêu cầu của bài toán (các ràng buộc)

Khi lập thời khoá biểu chúng ta phải đảm bảo các yêu cầu sau (ràng buộc cứng):

Không lớp học nào phải học cùng một thời điểm 2 môn Các phòng là đủ rộng để có thể chứa hết số SV Không giáo viên nào phải dạy 2 môn trong cùng thời gian Tiếp đến chúng ta sẽ xem xét đến các ràng buộc mềm: Thời khoá biểu phải có khả năng chấp nhận các ngày nghỉ định trước của

các giáo viên. 3.2.3 Các sự kiện

Các sự kiện được định nghĩa như sau: Có 1 nhóm các lớp tham gia học (1 nhóm có thể chỉ bao gồm 1 lớp).

Tham số này đồng thời cũng chứa các thống số phụ đó là tổng số Sinh Viên Tham gia sự kiện

Có 1 môn học Có 1 giáo viên dạy Sự kiện sảy ra trong 1 thời điểm trong tuần (xác định bởi ngày, tiết) Phòng học

Page 14: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 12 -

3.2.4 Trình bày giải pháp Trong bài toán này chúng tôi đề xuất sử dụng giải pháp 2 giai đoạn:

Giai đoạn 1 : Tìm ra phương án khả thi bằng cách sử dụng thuật giải di truyền phân nhóm để thỏa mãn các ràng buộc cứng

Giai đoạn 2 : Giảm thiểu các vi phạm ràng buộc mềm xuống mức thấp nhất có thể bằng cách sử dụng phương pháp tìm kiếm cục bộ

3.2.5 Giai đoạn 1 sử dụng Thuật giải di truyền phân phóm Ở đây tập hợp các sự kiện đóng vai trò là tập hợp các đối tượng để phân chia

và các nhóm được xác định bởi tiết học. Do đó một giải pháp khả thi là giải pháp mà tất cả các sự kiện cần được nhóm tới nhiều nhất các tiết học t (trong trường hợp này t=60 (5 ngày và 12 tiết một ngày)

Mỗi thời khoá biểu tương đương với một ma trận M với các hàng đại diện cho các phòng học và các cột đại diện cho các tiết học; do đó nếu M(a,b)=c thì sự kiện c chắc chắn xảy ra trong phòng học a và tiết học b và có nhiếu nhất một sự kiện. Mặt khác nếu M(a,b) bỏ trống thì không có sự kiện nào được sắp xếp trong phòng học a và tiết học b.

Lưu ý rằng các ràng buộc mềm không được xem xét trong định nghĩa này.

Ở đây chúng ta sử dụng 2 thủ tục Construct và Buid với các tham số: tt là thời khóa biểu chưa hoàn chỉnh, U chứa danh sách các sự kiện chưa được sắp xếp trên thời khóa biểu. Sử dụng chương trình con Buid, từng sự kiện một được lấy từ U ( tuân theo các heristics được định nghĩa ở bảng 1) và chèn vào các vị trí khả thi nằm trong khoảng l và r ở trên thời khóa biểu. Các sự kiện mà không có vị trí khả thi để chèn thì được bỏ qua. Cuối cùng là U sẽ bằng rỗng hoặc là

CONSTRUCT (tt, U). 1. if (len(tt) < t) 2. Open (t – len(tt)) new timeslots; 3. Build (tt, U, 1, len(tt)); BUILD (tt, U, l, r). 1. while ( tồn tại sự kiện ở trong U với vị trí ở tt nằm

trong khoảng l và r) 2. Chọn sự kiện e ở trong U mà khả thi gán ở tt; 3. Chọn một vị trí và chèn e vào; 4. if (U =Φ) end; 5. else 6. Open mới [|U|/m] timeslots; 7. Build (tt, U, r, len(tt));

Hình 1

Page 15: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 13 -

nó chỉ chứa các sự kiện mà không thể chèn vào bất cứ đâu trên thời khóa biểu hiện thời. Số tiết học mới được mở thêm sẽ được tính ở dòng 6 của thủ tục Buid trong hình 1.

Thứ tự khởi tạo quẩn thể ban đầu được thực hiện như sau: Thủ tục Construct được gọi cho mỗi nhiễm sắc thể. Ở mỗi bước thực hiện, sự kiện được chọn sẽ tuân theo heuristic H1 với ưu tiên sau đó bởi H3. Tiếp theo một vị trí được chọn cho mỗi sự kiện sẽ tuân theo heuristic H4 với ưu tiên sau đó là H6. Việc sử dụng luật H1, H2 cho phép chúng ta ưu tiên sắp xếp các sự kiện mà khó khả thi nhất, luật H4, H5 cho phép chúng ta ưu tiên chọn những vị trí kém khả thi nhất. Điều đó có nghĩa là thời khóa biểu sẽ được điền với nhiều nhất các sự kiện và tiết học khả thi trên đó. Luật H3, H6 ( chọn ngẫu nhiên) đảm bảo cho chúng ta đủ sự ngẫu nhiên khi khởi tạo quần thể.

Heuristic Mô tả H1 Chọn sự kiện có khả năng sắp xếp vào thời khóa biểu hiện tại là H2 Chọn sự kiện mà khả năng xung đột với các sự kiện khác là nhiều H3 Chọn một sự kiện ngẫu nhiên H4 Chọn vị trí mà tồi nhất trong các sự kiện chưa đc sắp xếp H5 Chọn vị trí trên thời khóa biểu có nhiều nhất các sự kiện H6 Chọn vị trí ngẫu nhiên

Bảng 1

Toán tử di truyền Hình 6 cho thấy chúng tôi thực hiện việc tái kết hợp như thế nào để xây

dựng thời khoá biểu con đầu tiên sử dụng bố mẹ P1 và P2, chọn ngẫu nhiên các điểm lai ghép a, b, c và d.

Page 16: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 14 -

Để thực hiện TKB con thứ hai chúng ta chuyển đổi vai trò của bố mẹ và các điểm lai ghép. Điểm quan trọng ở đây là toán tử lai ghép cho phép TKB con tạo ra thừa kế những tiết học đã được sắp xếp hoàn chỉnh trên TKB của cả bố và mẹ.

Trong quá trình tiến hành tái kết hợp, chúng ta lưu ý rằng ở bước2 (lai ghép), sẽ có các sự kiện trùng ở TKB con, vì vậy mà nó tạo ra sự không hợp lệ. Để hiểu chỉnh lỗi này chúng tôi sẽ tiến hành xóa các sự kiện trùng từ tiết học ở p1. Cuối cùng, ở bước 4 của quá trình tái kết hợp các sự kiện chưa được sắp xếp (sự kiện trong U) sẽ lần lượt được chèn lại sử dụng thủ tục BUID (hình 1) với heuristic H1 để định nghĩa thứ tự các sự kiện được chèn ( với ưu tiên sau đó sử dụng H2, H3).

Các vị trí để chèn các sự kiện sử dụng heuristic như ở phần khởi tạo quần thể. Toán tử đột biến mà chúng tôi sử dụng tuân theo một biểu đồ đột biến GGA điển hình (mr là tỷ lệ đột biến) : chuyển một số tiết học khó sắp xếp trong số các tiết học được lựa chọn ngẫu nhiên từ một TKB và nhập lại các sự kiện vào trong các tiết học có sử dụng biểu đồ Rebuild.

Cụ thể là biểu đồ Rebuild lấy một TKB tt rỗng hoặc từng phần và một tập hợp U các sự kiện chưa được sắp x ∈ếp. Sau đó nó gán cho tất cả u U một phòng học và tiết học để tạo ra một TKB hoàn chỉnh, mở ra các tiết học mới cần thiết. Lưu ý rằng TKB ban đầu với U=E. Để S ứng với tập hợp các tiết học trong tt và P ứng với tập hợp các nơi trong tt , ví dụ P=RxS

a

b

P1

c d

P2

(1) Điểm lựa chọn: Chọn 2 thời khóa biểu p1 và p2, chọn ngẫu nhiên 4 điểm cắt a, b, c và d

(2) Lai ghép: Copy các tiết học nằm trong khoảng c và d tới điểm a

(3) Xóa các sự kiện trùng: Xóa các tiết học mà nội dung chứa các sự kiện trùng ở p1. Các sự kiện không trùng lặp nằm trong các tiết học bị xóa được đưa vào tập U

(4) Xây dựng lại: Chèn lại các sự kiện trong U sử dụng chương trình con Buid

U +

Hình 6: Quá trình tái kết hợp

Page 17: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 15 -

Cuối cùng, ở trong GGA chúng tôi cũng sử dụng toán tử đảo ngược, toán tử này lựa chọn ngẫu nhiên hai tiết học trong TKB và đổi thứ tự tất cả các nội dung giữa chúng. Nâng cao chất lượng lời giải ở giai đoạn 1

Sau khi sử dụng thuật toán GGA chúng tôi tiếp tục sử dụng thủ tục HeuristicSearch để giảm thiểu các sự kiện chưa được sắp xếp xuống mức nhỏ nhất có thể.

Page 18: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 16 -

HeuristicSearch(tt,U,itLimit) 1. V là danh sách các vị trí ở tt mà chưa có sự kiện

đc gán 2. i:=0; 3. while (U and V and i<itLimit) 4. foreach (u U and v V) 5. if (u có thể gán tới v ở trên tt) 6. Gán u tới vị trí v ở trên tt; 7. Xóa u khỏi danh sách U và v khỏi

danh sách V; 8. if (U and V ) 9. repeat 10. Chọn ngẫu nhiên một sự kiện e ở trên tt và

v V; 11. if ( sự kiện e có thể dịch chuyển tới vị trí

v khả thi ở trên tt) 12. Di chuyển e tới vị trí v; 13. Cập nhật lại danh sách V; 14. i:=i+1;

15. until (i itLimit or e đã được di chuyển tới v)

Ở đây chúng tôi sử dụng thủ tục HeuristicSearch với các tham số như sau: U

chứa danh sách các sự kiện chưa được sắp xếp trên thời khóa biểu tt. V chứa danh sách các vị trí mà chưa sử dụng trên tt. itLimit là giới hạn số lần lặp. 3.2.6 Giai đoạn 2 sử dụng thuật giải tìm kiếm cục bộ

Ở đây thuật toán tìm kiếm cục bộ chúng tôi sử dụng là TabuSearch được mô tả như sau:

TabuSearch(tt,U) 1. U chứa danh sách các sự kiện vi phạm các ràng buộc

mềm; 2. while (U ) 3. foreach (u U){ 4. Chọn S là lân cận của u; 5. Di chuyển=false; 6. i= f(u)+ f(S); (f(u) là hàm xác định các

vi phạm ràng buộc mềm tại u); 7. While (not Di chuyển){

Page 19: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 17 - 8. if (S không ở trong danh sách Tabu

List){ 9. Thử đổi hoán đổi vị trí giữa u và

S ; 10. j=f(u) + f(S) ;( Tính lại các

vi phạm ràng buộc sau khi hoán đổi); 11. Đưa S vào danh sách Tabu

List; 12. Di chuyển=true; 13. if ( j<i) { 14. Chập nhận di chuyển hoặc

hoán đổi u sang vị trí mới của S ; 15. u=S;} 16. else Khôi phục lại vị trí của

u; 17. } 18. Di chuyển sang điểm lân cận tiếp

theo; 19. }

20. }

3.2.7 Đánh giá tiêu chuẩn và hàm tính độ thích nghi Khi xem kết quả cuối cùng của thuật toán, dường như là hợp lý khi cho rằng

điều cuối cùng mà chúng ta quan tâm là khoảng cách của TKB tới tính khả thi nếu quả thực không tìm ra tính khả thi.

Do đó chúng tôi sử dụng một biện pháp ý nghĩa hơn, chúng tôi tính toán bằng cách thực hiện theo các bước sau đây.

t đại diện cho số tiết mục tiêu và s đại diện cho số tiết hiện tại đang được sử dụng trong một TKB: Tính số lượng t’ tiết học phụ đang được sử dụng bởi TKB (trong đó t '= s - t) Xác định t’ với những ít nhất sự kiện ở trên nó Tổng số các sự kiện ở mỗi t ' 3.3 Kết quả Thực nghiệm và đánh giá

Trong bài luận văn này vì thời gian có hạn nên tôi chỉ đánh giá thực nghiệm trên

thuật toán di truyền phân nhóm ở giai đoạn 1 ( chỉ bao gồm các ràng buộc cứng). Tôi đã tạo ra các trường hợp thử nghiệm được chia thành 3 loại: nhỏ , vừa và

lớn. Với nỗ lực sử dụng GGA để sắp xếp tất cả các sự kiện một cách khả thi. Với tất

Page 20: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 18 -

cả các trường hợp, thuật toán này có thể sắp xếp 97% các sự kiện (và đôi khi là nhiều hơn).

Số sự kiện Số phòng Nhỏ 200 5 Vừa 400 10 Lớn 1000 25

Đối với lược đồ tiến hoá, một quần thể khởi tạo ban đầu với kích cỡ 50 được sử

dụng: ở mỗi bước hai mẫu bố mẹ được lựa chọn sử dụng lựa chọn xếp hạng . Sau

đó hai con được tạo ra với sự tái kết hợp.

Sau đó các mẫu này được đột biến và nhập trở lại quần thể, lần lượt đối với

nhiễm sắc thể kém phù hợp nhất. Nếu có nhiều hơn 1 nhiễm sắc thể kém phù hợp

nhất thì chúng tôi chọn giữa chúng một cách ngẫu nhiên. Cũng ở mỗi bước, các

nhiễm sắc thể ir cũng được chọn ngẫu nhiên và áp dụng sự đảo ngược. Đây là kết

quả cuối cùng của thuật toán.

Hình 8: Minh họa chương trình xếp thời khóa biểu sử dụng thuật toán GGA

Các tiết học (Nhóm)

Các phòng học

Dung lượng phòng

Các sự kiện ( Lớp học Giáo viên Môn học Số SV)

Page 21: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 19 -

Các thí nghiệm tới chúng tôi cố gắng tìm ra một bài toán mà chúng tôi coi là

mối quan tâm đặc biệt với thuật toán này – các kết quả mà toán tử tái kết hợp có

trên số các nhiễm sắc thể mới mà có thể được tạo ra trong giới hạn thời gian, và

các tác dụng toán tử tái kết hợp có trên sự di chuyển trong không gian tìm

kiếm. Tất cả đều thừa nhận rằng mục tiêu chung của sự tái kết hợp là để giúp

việc tìm kiếm bằng cách cho phép các khối xây dựng hữu ích từ vô số các khối

bố mẹ được kết hợp lại thành khối con mới, khác và phù hợp hơn.

Page 22: KẾT HỢP THUẬT GIẢI DI TRUYỀN PHÂN NHÓM - Postdlib.ptit.edu.vn/bitstream/123456789/941/1/TTLV Truong van Hieu.pdf · - 4 - CHƯƠNG 2 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP

- 20 -

KẾT LUẬN

Trong bài luận văn này tôi sử dụng thuật giải di truyền phân nhóm kết hợp

với tìm kiếm cục bộ với hai giai đoạn khác nhau như là một giải pháp mới cho

việc giải bài toán xếp thời khóa biểu.

Giai đoạn thứ nhất sử dụng thuật giải di truyền gom nhóm để tìm ra tính khả

thi. Giai đoạn thứ hai sử dụng thuật toán tìm kiếm cục bộ để xử lý các ràng

buộc mềm. Kết quả của thuật toán GGA mà chúng tôi áp dụng cho thấy tốc độ

giải nhanh, luôn cho các kết quả khả quan (trên 97%). Tuy nhiên do thời gian

ngắn, nên việc thử nghiệm trên các bộ số liệu chưa được nhiều và đa dạng, số

lượng ràng buộc còn hạn chế. Việc cài đặt và thực hiện thuật toán mới dừng ở

giai đoạn thứ nhất. Do đó Hướng nghiên cứu trong tương lai của tôi:

Cài đặt và thực hiện thuật toán ở giai đoạn thứ hai

Thử nghiệm trên nhiều bộ số liệu khác để hoàn thiện hệ thống và đưa vào

ứng dụng thực tế.

Tiếp tục nghiên cứu, nâng cao chất lượng lời giải hơn nữa.