Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển Tìm hiểu về giải thuật di truyền và ứng dụng vào bài toán sắp xếp thời khóa biển luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1TÌM HIỂU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI
TOÁN SẮP XẾP THỜI KHÓA BIỂU
LUẬN VĂN THẠC SĨ KỸ THUẬT
Hà Nội – Năm 2013
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN QUYẾT
TÊN ĐỀ TÀI LUẬN VĂN: TÌM HIỂU VỀ GIẢI THUẬT DI TRUYỀN VÀ
ỨNG DỤNG VÀO BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU
CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC :
Ts Vũ Tuyết Trinh
Hà Nội – Năm 2013
Trang 3LỜI CẢM ƠN
Trước tiên Tôi xin được gửi lời cảm ơn chân thành đến các thầy cô trường Đại Học Bách Khoa Hà Nội đã tận tình giảng dạy và truyền đạt nhưng kiến thức bổ ích cho chúng tôi trong suốt 2 năm qua Chúng tôi không chỉ được tiếp thu những kiến thức chuyên ngành mà còn được trang bị những phương pháp nghiên cứu và học tập hiệu quả nhất
Trinh, Cô đã tận tình hướng dẫn chỉ bảo cho tôi trong suốt thời gian thực hiện luận văn này
Tôi cũng xin gửi lời cảm ơn sâu sắc đến những người luôn bên cạnh cổ vũ, động viên, giúp đỡ tôi trong quá trình học tập và rèn luyện Gia đình và bạn bè luôn
là chỗ dựa tinh thần vững chắc, là động lực mạnh mẽ giúp tôi vượt qua những khó khăn để đạt được kết quả như ngày hôm nay
Tôi xin chân thành cảm ơn!
Hà Nội, ngày 20 tháng 4 năm 2013
Nguyễn Quyết
Trang 4M ỤC LỤC
CHƯƠNG I: ĐẶT VẤN ĐỀ 7
1.1 Lý do ch ọn đề tài 7
1.2 M ục đích và nội dung 8
1.3 Phương pháp nghiên cứu và ý nghĩa thực tiễn 8
CHƯƠNG II – THUẬT TOÁN DI TRUYỀN 10
2.1 T ổng quan về giải thuật di truyền 10
2.1.1 Gi ới thiệu 10
2.1.2 Các thao tác cơ bản 13
2.2 Các toán t ử di truyền 13
2.2.1 Kh ởi tạo quần thể 13
2.2.2 Đánh giá độ thích nghi 13
2.2.3 Toán t ử chọn lọc 13
2.2.4 Toán t ử lai ghép 15
2.2.5 Toán t ử đột biến 21
2.2.6 Điều kiện dừng 23
2.2.7 Các tham s ố của giải thuật di truyền 23
2.2.8 Ứng dụng của giải thuật di truyền 24
CHƯƠNG III - ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN X ẾP THỜI KHÓA BIỂU 25
3.1 Tìm hi ểu chung về bài toán lập lịch 25
3.1.1 Các thu ộc tính của bài toán lập lịch 25
3.1.2 Phân lo ại mô hình xếp thời khóa biểu 26
3.2 Bài toán x ếp thời khóa biểu cho Đại học và cao đẳng ở Việt Nam 28
3.2.1 Phân lo ại đơn vị xếp thời khóa biểu 28
3.2.2 Các đối tượng liên quan đến thời khóa biểu 29
3.2.3 Các đặc thù xếp thời khóa biểu 31
3.3 Bài toán th ời khóa biểu tại Đại học Chu Văn An 32
3.3.1 Gi ới thiệu bài toán xếp thời khóa biểu tại Đại học Chu Văn An 33
Trang 53.3.2 D ữ liệu bài toán 35
3.3.3 Ràng bu ộc của bài toán 35
3.4 Bi ểu diễn mô hình cá thể 36
3.4.1 Bi ểu diễn thời gian biểu 36
3.4.2 Bi ểu diễn mô hình cá thể 36
3.5 Kh ởi tạo quần thể và chỉnh sửa 38
3.6 Các ràng bu ộc của bài toán 41
3.7 Đánh giá độ thích nghi 42
3.8 Các toán t ử di truyền 42
3.8.1 Toán t ử chọn lọc 42
3.8.2 Toán t ử lai ghép 42
3.8.3 Toán t ử đột biến 43
3.9 Tính độ thích nghi của cá thể 44
3.9.1 Tính độ thích nghi của cá thể 44
3.9.2. Tính độ thích nghi dựa vào ràng buộc về nhóm lớp 44
3.9.3 Tính độ thích nghi dựa vào ràng buộc trùng giờ của giảng viên 45
3.9.4 Tính độ thích nghi dựa vào ràng buộc giờ bận của giảng viên 46
3.9.5 Tính độ thích nghi dựa vào ràng buộc sức chứa phòng 47
3.9.6 Tính độ thích nghi dựa vào ràng buộc số tiết học trên tuần 47
3.9.7. Tính độ thích nghi dựa vào ràng buộc số tiết học mỗi lần 48
3.9.8. Tính độ thích nghi dựa vào ràng buộc loại phòng 48
3.9.9 H ệ số phạt của các loại vi phạm ràng buộc 48
CHƯƠNG IV: CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG XẾP THỜI KHÓA BI ỂU CHO TRƯỜNG ĐẠI HỌC CHU VĂN AN 51
4.1 Các ch ức năng của hệ thống 51
4.1.1 Nh ập thông tin giảng viên 51
4.1.2 Nh ập danh sách lớp học phần 51
4.1.3 Nh ập danh sách các môn học 52
4.1.4 Nh ập danh sách các phòng học 53
4.1.5 Ch ức năng xếp phiếu giảng dạy 54
4.1.6 Cá th ể được khởi tạo từ các phiếu phân công giảng dạy 56
Trang 64.2 K ết quả thử nghiệm hệ thống xếp thời khóa biểu 56
4.2.1 K ịch bản thử nghiệm 56
CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 58
5.1 K ết luận 58
5.2 Hướng phát triển đề tài 58
TÀI LI ỆU THAM KHẢO 59
Trang 7DANH MỤC THUẬT NGỮ
Trang 8DANH MỤC HÌNH VẼ
vẽ
Tên hình
Trang 9CHƯƠNG I: ĐẶT VẤN ĐỀ
1.1 Lý do chọn đề tài
Trong cuộc sống, ta thường gặp các bài toán liên quan đến xếp lịch vận hành máy móc, xếp lịch biểu cho việc thực hiện một dự án, xếp lịch làm việc, xếp lịch thi đấu thể thao,… Đối với loại bài toán này cần phải tìm ra một phương án xếp lịch thỏa mãn tất cả các ràng buộc cũng như khai thác hiệu quả các nguồn tài nguyên hiện có, giảm thời gian và chi phí thực hiện
Bài toán xếp thời khóa biểu trong trường học là một ví dụ Xếp thời khóa biểu trong một trường Đại học phụ thuộc rất nhiều ràng buộc được đặt
ra trong bài toán này như ràng buộc về đối tượng tham gia(giảng viên, sinh viên, lớp học), 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, phòng có máy chiếu, loa đài, …), 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 phải xây dựng một thời khóa biểu thỏa mãn tối đa các ràng buộc trên đồng
Bài toán xếp thời khóa biểu thuộc lớp bài toán NP- đầ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 và 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ỉ, giải thuật di truyền…
Trong phạm vi luận văn này, chúng tôi quan tâm đến tìm hiểu giải thuật di truyền Phương pháp này có nhiều đặc điểm nổi trội như không đòi hỏi tri thức, tránh tối ưu cục bộ, thực hiện tốt với các bài toán có không gian tìm kiếm lời giải lớn và có thể áp dụng cho nhiều loại bài toán tối ưu khác nhau Trên thế giới hiện nay, giải thuật di truyền kết hợp với tin học được ứng dụng để giải quyết những bài toán tối ưu một cách rất hiệu quả
Trang 101.2 Mục đích và nội dung
Mục đích của luận văn là tìm hiểu giải thuật di truyền (Genetic Algorithm - GA) và áp dụng giải thuật vào giải quyết bài toán xếp thời khóa biểu cho trường Đại học Chu Văn An theo hình thức đào tạo tín chỉ
Để đạt được các mục tiêu trên, đề tài tập trung vào các nhiệm vụ cụ thể sau:
• Tìm hiểu giải thuật di truyền và ứng dụng của nó trong việc giải quyết hiểu quả các bài toán tối ưu
• Phân tích đặc điểm của bài toán xếp thời khóa biểu tại trường Đại học Chu Văn An theo học chế tín chỉ để từ đó đưa ra các giải pháp hợp lý trong việc xây dựng và phát triển hệ thống
• Ứng dụng giải thuật di truyền vào bài toán xếp thời khóa biểu
hệ tín chỉ cho Đại học Chu Văn An
• Phân tích đánh giá kết quả đạt được khi thực hiện hệ thống đối với các bộ dữ liệu thử nghiệm
1.3 Phương pháp nghiên cứu và ý nghĩa thực tiễn
• Phương pháp nghiên cứu lý thuyết
- Tổng hợp các tài liệu lý thuyết về giải thuật di truyền
học Chu Văn An sử dụng mô hình giải thuật di truyền
- Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan
• Phương pháp nghiên cứu thực nghiệm
quy trình xây dựng ứng dụng phần mềm
Văn An chỉ sử dụng giải thuật di truyền
An
Trang 11• Ý nghĩa thực tiễn
pháp áp dụng các quy luật của quá trình tiến hóa tự nhiên vào việc giải quyết các bài toán phức tạp mà các giải thuật trước đó không đáp ứng được
An chỉ sử dụng giải thuật di truyền là một vấn đề tuy không mới nhưng lại chưa được áp dụng hiệu quả trong thực tế
còn có thể được ứng dụng trong nhiều bài toán tối ưu khác Vì vậy kết quả nghiên cứu của đề tài sẽ tạo nền tảng và cơ sở để tiếp tục nghiên cứu về sau
ứng tốt như cầu của người dùng
- Hệ thống có thể chạy tốt với bộ dữ liệu thực tế tại các trường đại học giúp giảm đáng kể thời gian và công sức trong việc xếp thời khóa biểu
1.4 Bố cục luận văn
Phần tiếp theo của luận văn trình bày được tổ chức như sau:
C hương 2: Thuật toán di truyền Chương 3: Ứng dụng thuật toán di truyền vào bài toán xếp
thời khóa biểu
C hương 4: Cài đặt và thử nghiệm hệ thống xếp thời khóa biểu
cho trường Đại học Chu Văn An
Chương 5: Kết luận
Trang 12CHƯƠNG II – THUẬT TOÁN DI TRUYỀN 2.1 Tổng quan về giải thuật di truyền
2.1.1 Giới thiệu
Thuật giải di truyền do D.E Golbberg đề xuất, được L.Davis và Z Michaleviz phát triển Đây là thuật toán tiến hóa chính để tôi nghiên cứu trong đề tài này
Giải thuật di truyền, cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu Quan niệm này có thể được xem như một tiên đề đúng, không chứng minh được, nhưng phù hợp với thực tế khách quan Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế
hệ sau bao giờ cũng tốt hơn(phát triển hơn, hoàn thiện hơn) thế hệ trước Tiến hóa tự nhiên được duy trì nhờ hai quá trình cơ bản: Sinh sản và chọn lọc
tự nhiên Xuyên suốt quá trình tiến hóa tự nhiên, các thế hệ cũ Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại Cá thể nào không thích ứng được với môi trường sẽ bị đào thải Sự thay đổi môi trường là động lực thúc đẩy quá trình tiến hóa Ngược lại, tiến hóa cũng tác động trở lại góp phần làm thay đổi môi trường
Trong thuật giải di truyền người ta dùng thuật ngữ vay mượn của di truyền học như: cá thể, nhiễm sắc thể, gen, quần thể, độ thích nghi, chọn lọc, lai ghép, đột biến… Trong đó cá thể biểu diễn một lời giải, giải pháp của bài toán, không giống như trong tự nhiên cá thể có thể là có nhiều nhiễm sắc thể,
ở đây chúng ta quy ước mỗi cá thể chỉ có một nhiễm sắc thể Các nhiễm sắc thể là một có thể là một chuỗi tuyến tính , trong nhiễm sắc thể có thể có các đơn vị nhỏ hơn đó là gen Mỗi gen đại diện một thuộc tính, tính chất và có vị trí nhất định trong nhiễm sắc thể Quần thể là một tập hợp hữu hạn xác định các cá thể, trong thuật giải di truyền quần thể là một tập các lời giải, các phép toán chọn lọc, lai ghép, đột biến được thực hiện trên quần thể để tạo ra một
quần thể mới
Trang 13Một bài toán được giải bằng thuật giải di truyền thông thường phải qua các bước sau:
Biểu diễn lời giải của bài toán bằng chuỗi nhị phân, chuỗi ký tự,
số thập phân…
Khởi tạo quần thể ban đầu gồm N các thể một cách ngẫu nhiên
Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá các cá thể theo
độ thích nghi của chúng
Xác định xác suất lai tạo, xác suất đột biến,…
Xây dựng các phép toán lai tạo, chọn lọc, đột biến
Trang 14Lưu đồ thuật giải di truyền:
Hình 2.1 Sơ đồ khối mô tả thuật giải di truyền tổng quát
- Thay thế các cá thể kém thích nghi b ằng các cá thể con
Ch ọn lời giải tốt nhất từ cá thể
có độ thích nghi cao nhất
K ết thúc Đúng
Sai
Trang 152.1.2 Các thao tác cơ bản
2.2 Các toán tử di truyền
2.2.1 Khởi tạo quần thể
Tạo quần thể đầu tiên trong thuật giải, 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 đề bài toán mà có cách khởi động khác nhau Trước một bài toán áp dụng thuật giải di truyền, ta cần phải xác định rõ nhiễm sắc thể cho vấn đề,
và thông thường đó sẽ là kết quả cuối cùng Việc phân tích sẽ dựa trên kết quả là cơ bản nhất
2.2.2 Đánh giá độ thích nghi
Phép tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ thích nghi của nó Đánh giá độ thích nghi là một hàm gán một giá trị thực cho các cá thể trong quần thể Quá trình này có thể được mô phỏng như sau:
• Tính độ thích nghi của từng cá thể trong quần thể hiện hành Lập bảng cộng dồn các giá trị thích nghi(theo số thứ tự gán cho từng cá thể) Giả sử quần thể có n cá thể Gọi độ thích nghi của các thể thứ i là Fi, tổng cộng dồn thứ i là Fti, tổng độ thích nghi của toàn quần thể là Fm
thể của thế hệ mới
2.2.3 Toán tử chọn lọc
Trang 16Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của vấn đề Dựa trên mức độ thích nghi của cá thể, bao gồm những vướng mắc mà cá thể gặp phải Thông thường, đặt mỗi vấn đề nhỏ tương ứng với một giá trị điểm thích nghi, kết quả đánh giá gồm tổng số điểm đó Các thể tốt nhất sẽ tồn tại và tạo ra các cá thể con mới Có nhiều phương pháp để chọn lọc các nhiễm sắc thể tốt nhất
Theo thuyết tiến hóa của Darwin, nhiễm sắc thể tốt nhất sẽ tồn tại và tạo ra các cá thể con mới Có nhiều phương pháp để chọn ra các nhiễm sắc thể tốt nhất
Toán t ử chọn lọc Rolette(Roulette Wheel Selection)
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
Thuật giải chọn lọc Roulette như sau:
quần thể và gọi nó là tổng thích nghi (Total Fitness)
từ 0 đến tổng thích nghi
trước đó lớn hơn hay bằng n
Toán t ử chọn lọc cạnh tranh(Tournament Selection)
Chọn lọc cạnh tranh 2 (2- Tournament Selection) 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 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
Trang 17chết đi và bị loại ra khởi quần thể Quá trình này lặp lại đến hết
Toán t ử 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à cá thể tốt nhất sẽ có độ thích nghi N (N là số nhiễm sắc thể trong quần thể)
Toán t ử chọn lọc Elitism
Phương pháp Elitism cho phép sao chép những cá thể tốt sang quần thể mới Thành phần còn lại được chọn bởi phương pháp chọn lọc khác Để đánh giá nhiễm sắc thể có tốt hay không ta cần tạo ra một hàm đánh giá, hàm đánh giá này trả về cho ta giá trị là tổng của hàm thích nghi của tất cả các nhiễm sắc thể Sau khi được chọn một quần thể gồm n cá thể vừa được chọn ra từ Elitism và một phương pháp khác cá thể
2.2.4 Toán tử lai ghép
Phép lai là quá trình hình thành nhiễm sắc thể mới trên cơ sở nhiễm sắc thể cha mẹ, bằng cách ghép một hay nhiều đoạn gen của hai(hay nhiều) nhiễm sắc thể cha mẹ với nhau Phép lai nhằm nâng cao kết quả cá thể, do đó toán tử lai ghép sẽ tạo điều kiện cho tiến trình hội tụ nhanh hay chậm Còn tùy thuộc vào cách tổ chức và phân
bố các nhiễm sắc thể mà chúng ta có xác suất lai ghép nhanh hay
chậm Phép lai xảy ra với xác suất pc
Trang 18Có khá nhiều toán tử lai ghép và sau đây là một số phương pháp lai ghép thông dụng trong kỹ thuật di truyền:
Lai ghép d ựa trên vị trí (Position Based Crossover)
Đây là phương pháp lai ghép chúng tôi đề cập để giải
chọn một hay nhiều điểm trong nhiễm sắc thể làm các điểm lai tạo Khi đó các tham số giữa các điểm lai tạo được hoán vị cho nhau giữa hai nhiễm sắc thể cha mẹ
NST mẹ = [pm1, pm2, pm3,…,pmn] NST cha = [pc1, pc2, pc3,…,pcn] Chọn hai vị trí ngẫu nhiên là 2,5 ta có:
NSTcon1 = [pm1, pc2, pc3, pc4, pm5, pm6,…,pmn] NSTcon2 = [pc1, pm2, pm3, pm4, pm5, pc6,…,pcn]
Từ tổng quát trên ta có một số phương pháp lai ghép dựa trên vị trí
- Lai ghép đơn điểm: Chọn một số ngẫu nhiên
- Lai ghép hai điểm: Chọn hai điểm ngẫu nhiên
để lai tạo trong 2 nhiễm sắc thể cha mẹ, sau đó hoán vị các bits giữa 2 điểm đó
Ví dụ: Giả sử hai nhiễm sắc thể cha mẹ là chuỗi nhị phân có chiều dài là 14 như sau:
Trang 19- Phép lai t ạo đều: Đầu tiên tạo một mặt nạ gồm
các bít khởi tạo ngẫu nhiên ‘0’ và ‘1’ và số bít bằng số số bít của nhiễm sắc thể cha mẹ Nếu một bít trong mặt nạ bằng 0, thì tương ứng trong nhiễm sắc thể con 1 bằng bít tương ứng của nhiễm sắc thể cha và bít tương ứng trong nhiễm sắc thể con 2 bằng bít tương ứng của nhiễm sắc thể mẹ Nếu một bít trong mặt nạ bằng 1 thì thực hiện ngược lại
Trang 20Mặt nạ = […00000011111000…]
Do đó phép lai tạo đều được xem là dạng tổng quát của các phép lai tạo khác
Lai ghép ánh x ạ từng phần (PMX Partial Mapped Crossover)
Phép lai ánh xạ từng phần, hai chuỗi được sắp hàng và hai điểm lai được chọn ngẫu nhiên giống nhau dọc theo chiều dài của chuỗi Hai điểm lai cho một chọn lọc khớp được dùng
để tác động thông qua toán tử trao đổi vị trí – vị trí Mỗi con cháu chứa thông tin có thứ tự một cách từng phần được quyết định bởi cha mẹ của chúng PMX có thể được áp dụng cho các bài toán biểu diễn hoán vị
Ví dụ:
NST – Cha = [3 4 6 2 1 5]
NST – Mẹ = [4 1 5 3 2 6]
Chọn 2 vị trí lai tạo là 2,3 sau đó tráo đổi vị các bít giữa
2 vị trí này Chẳng hạn chuỗi K = 4,6, J=1,5 hoán đổi cho nhau, được kết quả sau:
Lai tạo tương xứng một phần (bước A)
NST – Con1A [3 1 5 2 1 5]
NST – Con2A [4 4 6 3 2 6]
Sau bước A, trong các NST – Con1A, NST – Con2A có một giá trị trùng nhau và một số giá trị bị mất đi Các giá trị lặp lại ở chuỗi NST – Con1A được thay thế bằng chuỗi con tương ứng ở NST – Con2A và lặp lại điều đó cho NST – Con2A, ta
có kết quả cuối cùng
Điểm lai tạo
Trang 21Lai tạo tương xứng một phần (bước B)
NST – Con1B [3 1 5 2 4 6]
NST – Con2B [1 4 6 3 2 5]
Lai ghép có tr ật tự (OX Order Crossover)
Lai ghép có trật tự (OX) bắt đầu theo cách tương tự như lai ghép ánh xạ từng phần, lai có trật tự áp dụng chuyển động trượt để lấp đầy các vị trí trống bên trái bằng cách chuyển các
vị trí ánh xạ Lai ghép ánh xạ từng phần hướng tới khía cạnh vị trí tuyệt đối trong khi lai ghép có trật tự hướng tới vị trí tương đối
Toán tử lai ghép có trật tự bao gồm các bước sau:
mẹ
con vào những vị trí tương ứng như trong cá thể cha mẹ
lúc này đã có trong chuỗi con Chuỗi còn lại chứa các ký hiệu
Trang 22Hoán vị các giá trị của X với các giá trị đầu chuỗi sao cho cuối cùng tất cả các giá trị X đều ở đầu chuỗi
Lai tạo thứ tự (bước 2)
NST – Con 1 [X X 5 3 1 4]
NST – Con 2 [X X 6 2 4 1]
Cuối cùng, các X được thay bằng J hoặc K, sao cho trong một nhiễm sắc thể các giá trị của nó không được trùng nhau
Lai tạo thứ tự (bước cuối)
NST – Con 1 [6 2 5 3 1 4]
NST – Con 2 [5 3 6 2 4 1]
Phương pháp lai ghép có trật tự có ưu điểm là bảo toàn
Nó cố gắng giữ nguyên thứ tự của các số nguyên giống như thể các nhiễm sắc thể được hoán đổi trong một vòng tròn Do đó [1
2 3 4] được xem giống như [2 3 4 1]
Lai ghép có chu trình (CX Cycle Crossover)
Lai ghép chu trình thực hiện tổ hợp dưới các ràng buộc
mà mỗi gen xuất phát từ cha hoặc mẹ Mỗi cá thể con được tạo dựa trên vị trí, giá trị của cha mẹ thứ nhất và cha mẹ thứ hai
Trang 23Bây giờ chuỗi NST – Con 1 có chứa hai số 4, do đó trao đổi số 4 thứ 2 (Vị trí số 2) cho chuỗi NST – Con2, ta được
Phép lai tạo vòng tròn (bước 2)
tính (LOX Linear Order Crossver)
2.2.5 Toán tử đột biến
Cũng giống như lai ghép, toán tử đột biến làm tăng nhanh quá trình hội tụ, nhưng tăng một cách đột ngột, cũng có khi sẽ không gây tác dụng gì một khi không thành công Không ai có thể đánh giá được phương pháp đột biến nào tốt hơn, dó đó có một vài phương pháp đơn giản, cũng có vài phương pháp khá phức tạp Người ta thường chọn
Trang 24 Đột biến đảo ngược (Inversion Mutation) Chọn hai vị trí nhẫ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
Ví dụ:
NST - Ban đầu = [9 3 8 5 7 1 6 4 2]
NST – Đột biến = [9 3 1 7 5 8 6 4 2]
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
Chọn ngẫu nhiên một gen và sau đó chèn nó vào vị trí ngẫu nhiên
Trang 25Trướ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
Một số điều kiện dừng thuật giải:
Kết thúc theo kết quả, tức khi giá trị thích nghi của cá thể trong quần thể có giá trị sau số nhỏ hơn một giá trị α cho trước, thì dừng thuật toán
Kết thúc dựa trên số thế hệ, một số vấn đề dựa vào số thế hệ trong quần thể Khi số lượng tiến hóa của quần thể đến một giới hạn cho phép thì thuật toán sẽ dừng, mà trong khi không quan tâm đến chất lượng của các thể trong quần thể như thế nào
Tính theo thời gian, phụ thuộc vào thời gian chạy chương trình được quy định trước và thuật toán dừng
Kết hợp nhiều phương pháp khác nhau, thuật giải cũng có thể
sử dụng kết hợp nhiều phương pháp khác nhau để giải quyết vấn đề
2.2.7 Các tham số của giải thuật di truyền
Xác suất lai ghép: là tham số cho biết tần suất thực hiện toán tử lai ghép Nếu không có lai ghép, cá thể con sẽ chính là bản sao của cá thể cha mẹ Nếu xác suất lai ghép bằng 100%, khi đó mọi cá thể con đều được tạo ra qua quá trình lai ghép Ta gọi xác suất lai ghép là Pc
Xác suất đột biến: là tham số cho biết tần suất đột biến của nhiễm sắc thể Nếu không có đột biến, thế hệ con được tạo ra ngay sau giai đoạn lai ghép mà không bị thay đổi Ngược lại, một hoặc một số phần của nhiễm sắc thể bị thay đổi Nếu xác suất đột biến là 100%,
Trang 26toàn bộ nhiễm sắc thể sẽ bị thay đổi Nếu tham số này bằng 0%, không có gì bị thay đổi Ta gọi xác suất đột biến là Pm
Kích thước quần thể là tham số cho biết có bao nhiêu cá thể trong một thế hệ của quần thể Nếu có quá ít cá thể, khả năng thực hiện lai ghép rất nhỏ và khi đó chỉ có một vùng tìm kiếm nhỏ mới được khảo sát Ngược lại, việc kích thước quần thể quá lớn cũng không tốt, do nó sẽ làm chậm quá trình giải bài toán và làm hao phí tài nguyên của máy tính Việc lựa chọn các tham số phù hợp sẽ tăng tính hiệu quả của bài toán Ta gọi kích thước quần thể là Popsize
2.2.8 Ứng dụng của giải thuật di truyền
Để ứng dụng giải thuật di truyền vào việc giải quyết một bài toán nào đó cần phải thực hiện một số công việc quan trọng sau:
sắc thể có thể chứa đựng một lời giải của bài toán
thể Đây là bước khó khăn và ảnh hưởng lớn đến tính hiệu quả của giải thuật
3 Lựa chọn các toán tử di truyền phù hợp, trong đó tập trung cho ba toán tử chính là chọn lọc, lai ghép và đột biến
thước quần thể, xác suất lai ghép, xác suất đột biến
5 Xác định điều kiện dừng cho quá trình tiến hóa
Trang 27CHƯƠNG III - ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI
TOÁN X ẾP THỜI KHÓA BIỂU 3.1 Tìm hiểu chung về bài toán lập lịch
Các bài toán lập lịch thường được biết đến là một lớp bài toán tối ưu khó vì có phải thỏa mãn đồng thời nhiều ràng buộc và hướng tới nhiều mục tiêu tối ưu Trở ngại lớn nhất khi giải quyết bài toán này là không gian tìm kiếm sinh ra thường rất lớn Giải thuật di truyền(Genetic Algorithm - GA) được coi là một giải pháp tốt nhất cho lớp bài toán này Giải thuật hoạt động trên nguyên tắc “cân đối” giữa việc khai thác những lời giải tốt và xem xét toàn bộ không gian tìm kiếm Chính nhờ đó, nó cho kết quả tốt hơn các thuật toán tối ưu khác như giải leo đồi, thuật giải mô phỏng quá trình luyện thép,
kỹ thuật tìm kiếm ngẫu nhiên GA mô phỏng quá trình kế thừa và đấu tranh sinh tồn trong tự nhiên để tìm ra lời giải cho bài toán Nó được hình thành trên quan điểm quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất: xuất phát từ cá thể ban đầu, trải qua quá trình biến đổi và đấu tranh sinh tồn, các
cá thể sinh ra thế hệ con cháu ngày một thích nghi hơn với môi trường sống, mang các đặc tính tốt của thế hệ sau còn các cá thể không thích nghi với môi trường sống sẽ bị đào thải
3.1.1 Các thuộc tính của bài toán lập lịch
Giải thuật di truyền có thể được mô tả một cách vắn tắt qua các bước như sau:
cá thể tương ứng với lời giải cho bài toán
thích nghi, tính độ thích nghi của mỗi cá thể trong quần thể
thể mới
Trang 28• Chọn lọc: dựa vào độ thích nghi xác định ở bước
2, chọn hai cá thể bố mẹ từ quần thể cũ Cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn
• Lai ghép: lai ghép hai cá thể bố mẹ để tạo ra một
cá thể mới với một xác suất lai ghép được chọn trước
• Đột biến: với một xác suất đột biến được chọn trước, biến đổi cá thể thành cá thể mới
• Chấp nhận: thay thế cá thể mới vào quần thể
4 Thay thế sử dụng quần thể mới cho quá trình tiếp theo của thuật toán
5 Thử nghiệm và đưa ra lời giải Vậy khi xây dựng giải thuật di truyền cho một bài toán cụ thể, các vấn đề chúng ta cần đặt ra là
• Mã hóa các nhiễm sắc thể
• Khởi tạo quần thể ban đầu
• Định nghĩa hàm đánh giá độ thích nghi của các
3.1.2 Phân loại mô hình xếp thời khóa biểu
tế có rất nhiều dạng thời khóa biểu khác nhau, rất đa dạng và tùy thuộc vào hoàn cảnh điều kiện của từng trường Có thể liệt kê ra đây một vài kiểu mẫu thời khóa biểu như sau:
3.1.2.1 Thời khóa biểu tuần
Là thời khóa biểu cho một tuần được dùng làm chuẩn cho tất
cả các tuần của học kỳ hoặc năm học Đa số các nhà trường của
Trang 29Việt Nam đều sử dụng khuôn mẫu này Đây cũng là mô hình thời khóa biểu của đa số phần mềm thời khóa biểu trên thế giới Trong luận văn này tôi xin đề cập chính là phương pháp xếp thời khóa biểu tuần
3.1.2.2 Thời khóa biểu học kỳ
Là mẫu khuôn dạng thời khóa biểu được biểu diễn chi tiết đến từng ngày trong suốt một học kỳ hoặc năm học Một số các trường đại học, cao đẳng tại Việt Nam, đặc biệt là các trường quân đội sử dụng khuôn dạng này của thời khóa biểu
3.1.2.3 Thời khóa biểu 2 tuần liên tục
Là mẫu dạng thời khóa biểu theo tuần nhưng phân biệt sự khác nhau giữa các tuần chẵn lẻ trong học kỳ Thời khóa biểu dạng này được áp dụng cho các loại trường có môn học, bài giảng được sắp xếp 2 tuần 1 lần trong học kỳ hoặc năm học Thời khóa biểu của một tuần chẵn lẻ có dạng giống như loại Thời khóa biểu tuần như đã mô tả ở trên
3.1.2.4 Thời khóa biểu (k) tuần/ học kỳ
Đây là loại thời khóa biểu khuôn dạng tuần tuy nhiên thời gian phân bổ cho thời khóa biểu được chia làm nhiều kỳ trong một học kỳ hoặc năm học Rất nhiều trường đại học, cao đẳng tại Việt
sắp xếp không dàn đều trong một học kỳ mà thường co giãn trong những khoảng thời gian nhỏ hơn Các trường đại học, cao đẳng với chương trình đào tạo đa dạng, kết hợp chặt chẽ giữa lý thuyết và thực tế thường hay sử dụng mô hình này
3.1.2.5 Thời khóa biểu cho mỗi tuần
Là loại thời khóa biểu mô hình tuần nhưng mỗi tuần lại có một thời khóa biểu riêng Như vậy ví dụ trong một học kỳ có 25 tuần thì mỗi lớp sẽ có đúng 25 thời khóa biểu Đây là mô hình rất
Trang 30phức tạp và về bản chất chính là mô hình thời khóa biểu học kỳ, điểm khác duy nhất là khuôn dạng in ra thời khóa biểu là Tuần
3.2 Bài toán xếp thời khóa biểu cho Đại học và cao đẳng ở Việt Nam
3.2.1 Phân loại đơn vị xếp thời khóa biểu
Phân loại theo các đối tượng trực tiếp liên quan đến dữ liệu thời khóa biểu Các đối tượng chính của Thời khóa biểu bao gồm:
Giáo viên: người trực tiếp giảng dạy theo các học phần môn học được qui định chặt chẽ về thời lượng, kiến thức và hình thức học
H ội trường: địa điểm học các môn học và bài giảng do giáo
viên đảm nhiệm
H ọc sinh: đối tượng học tập trực tiếp của giáo viên giảng
dạy Học sinh được phân công vào các lớp học Chính việc phân công lớp học theo các kiểu khác nhau tạo ra sự khác biệt cơ bản của mô hình Thời khóa biểu Trên thực tế tại Việt Nam cũng như thế giới có 2 loại lớp học sau đây:
Mô hình lớp học niên chế: Học sinh nhập học và các năm học được phân công cố định vào các lớp học được gọi là lớp niên chế
Mô hình lớp học tín chỉ: Học sinh được tự do đăng ký vào
biểu giảng dạy chi tiết Thông thường, sau khi thời khóa biểu của các lớp học này đã được lên kế hoạch thì học sinh mới căn cứ vào thời khóa biểu cụ thể để đăng ký học Cũng có thể xếp thời khóa biểu các lớp học tín chỉ sau khi học sinh đã đăng ký học Việc sắp xếp này phải đảm bảo sự không trùng giờ học của các sinh viên đã đăng ký Tuy nhiên cách làm này sẽ vô cùng phức tạp và trên thực