TRƢỜNG ĐẠI ĐẠI HỌC ĐIỆN LỰ HỌC ĐIỆN LỰ C KHOA CÔNG NGHỆ NGHỆ THÔNG TIN --------------
BÀI TẬP LỚ N MÔN: PHÂN TÍCH THIẾT K Ế THUẬT TOÁN ĐỀ T ÀI : Giả Giải thuậ thuật di truyề truyền và ứ ng ng dụ dụng vào bài toán lậ lập lị lịch
ẫ ẫn : Gi ảng viên hướ ng ng d
THS. LÊ HOÀN
H ọ vàt vàt ên sin si n h vi ên :
LƢƠNG ĐỨ C NAM PHẠM PHẠM VĂN THÍCH NGUYỄN NGUYỄN SƠN TÙNG
ực h i ện : N hó hóm m th ự
NHÓM
L ớ p: p:
D5-CNTT
Hà Nộ Nội - 2013
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
MỤC LỤ LỤC LỜ I CẢM CẢM ƠN ......................... ....................................... ........................... .......................... .......................... ........................... ........................... .......................... ................. .... 4 LỜ I MỞI MỞI ĐẦU ĐẦU ......................... ....................................... ........................... .......................... ........................... ........................... .......................... .......................... ................. 5 CHƢƠNG 1: PHƢƠNG PHÁP “DI TRUYỀN” ........................... ........................................ .......................... .......................... ............. 6 1.1. Tìm hiểu chung: ......................... ....................................... ........................... .......................... ........................... ........................... ........................... ................. ... 6 1.2. Một số quá trình cơ bản: .......................... ....................................... .......................... ........................... ........................... .......................... ................. .... 6 1.2.1. Quá trình lai ghép (phép lai): ....................... .................................... .......................... ........................... ........................... ................... ...... 6 ...................................... .......................... ........................... ...................... ........ 6 1.2.2. Quá trình độ t biến (phép đột biến): ......................... 1.2.3. Quá trình sinh sản và chọn lọc (phép tái sinh và ch ọn lọc): ................................... ................................... 6
1.3. Phương pháp chung:............................... ............................................ .......................... .......................... ........................... ........................... ................... ...... 7 CHƢƠNG 2: BÀI TOÁN LẬP LẬ P LỊ LỊCH .......................... ....................................... ........................... ........................... ........................... ................. ... 9 2.1. Tìm hiểu chung .......................... ........................................ ........................... .......................... ........................... ........................... ........................... ................. ... 9 ...................................... ........................... ........................... ........................... ................. ... 9 2.2. Các đặ c tính của bài toán lậ p lịch ......................... 2.3. Bài toán lậ p lịch thờ i khóa biểu .......................... ....................................... .......................... ........................... ........................... ................... ...... 9 2.3.1. Giớ i thiệu bài toán ...................... ................................... ........................... ........................... .......................... .......................... ........................ ........... 9 2.3.2. Dữ liệu bài toán ............................ .......................................... ........................... .......................... .......................... ........................... ...................... ........ 9
CHƢƠNG 3: Ứ NG NG DỤ DỤNG GIẢ GIẢI THUẬ THUẬT DI TRUYỀ TRUYỀN VÀO BÀI TOÁN XẾ X ẾP LỊ LỊCH THỜ THỜ I KHÓA BIỂ BIỂU .......................... ........................................ ........................... .......................... .......................... ........................... ........................... ................. .... 10 ...................................... ........................... ........................... ........................... ................ 10 3.1. Giai đoạn 1: Xế p lịch học các lớ p ......................... 3.1.1 Chọn mô hình cá thể .......................... ....................................... .......................... ........................... ........................... .......................... ................. 10 3.1.2. Tạo quần thể ban đầu .......................... ....................................... ........................... ........................... .......................... .......................... ............. 12 chọn cá thể .......................... ....................................... .......................... ........................... ........................... ................. .... 13 3.1.3 Độ thích nghi – ch 3.1.4 Thuật toán lai ghép và độ t biến ......................... ....................................... ........................... ........................... .......................... ............ 13 Xế p lịch học cho toàn bộ cơ sở .......................... ....................................... .......................... ...................... ......... 14 3.2. Giai đoạn 2 – X 3.2.1. Chọn mô hình cá th ể ......................... ...................................... .......................... ........................... ........................... .......................... ................. 14 3.2.2. Tạo quần thể ban đầu .......................... ....................................... ........................... ........................... .......................... .......................... ............. 15 chọn cá thể ......................... ...................................... .......................... ........................... ........................... ................. .... 15 3.2.3. Độ thích nghi – ch 3.2.4. Thuật toán lai ghép và đột biến ......................... ....................................... ........................... ........................... ........................ .......... 15 3.2.5. Chọn điểm dừng của thuật toán ......................... ....................................... ........................... ........................... ........................ .......... 16
CHƢƠNG 6: KẾT KẾ T LUẬ LUẬN ......................... ...................................... ........................... ........................... .......................... .......................... ...................... ......... 18 Giảng viên: Thạc Sĩ Lê Hoàn
2
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch 6.1. K ết quả đạt đượ c .......................................................................................................... 18
6.2. Hướ ng phát triển .......................................................................................................... 18 Tài liệu tham khảo ................................................................................................................ 18
Giảng viên: Thạc Sĩ Lê Hoàn
3
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
LỜ I CẢM ƠN Chúng em xin đượ c gửi lờ i cảm ơn đến các thầy, cô giáo khoa Công Nghệ Thông Tin – trường Đại Học Điện Lực, đã tạo điề u kiện, giúp đỡ chúng em hoàn thành đồ án này. Chúng em xin chân thành cảm ơn thầ y giáo, Thạc Sĩ Lê Hoàn, người đã tậ n tình hướ ng dẫn, chỉ bảo cho chúng em trong quá trình h ọc tậ p và thực hiện đồ án. Trong thờ i gian đượ c học tậ p và th ực hành dướ i sự hướ ng dẫn của thầy, chúng em không những thu đượ c r ất nhiều kiến thức bổ ích, mà còn đượ c truyền sự say mê và thích thú đối vớ i bộ môn Phân tích thiết k ế thuật toán. Xin gửi lờ i cảm ơn chân thành đến gia đình, bè bạn, đã luôn là nguồn độ ng viên to lớn, giúp chúng em vượ t qua những khó khăn trong suốt quá trình học tậ p và thực hiện đồ án. Mặc dù đã rất cố gắng hoàn thiện đồ án v ớ i tất cả sự nỗ lực, tuy nhiên, do việc nghiên cứu và xây dựng đồ án trong thờ i gian có hạn, nên bài tậ p lớ n “Giải thuật di truyề n và ứ ng d ụng vào bài toán l ậ p l ịch” chắc chắn sẽ không tránh khỏi thiếu sót. Chúng em r ất mong nhận đượ c sự quan tâm, thông cảm và đóng góp ý kiế n của các thầy cô giáo và các b ạn để đồ án này ngày càng hoàn thi ện hơn. Một l ần n ữa, chúng em xin chân thành c ảm ơn và luôn mong nhận đượ c s ự đóng góp của tất cả mọi ngườ i.
Hà Nội, ngày 20 tháng 09 năm 2013 Sinh viên thực hiện:
Lương Đức Nam Phạm Văn Thích Nguyễn Sơn Tùng
Giảng viên: Thạc Sĩ Lê Hoàn
4
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
LỜ I MỞI ĐẦU
Giảng viên: Thạc Sĩ Lê Hoàn
5
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
CHƢƠNG 1: PHƢƠNG PHÁP “DI TRUYỀN” 1.1. Tìm hiểu chung: Genetic algorithms (GA) (giải thuật di truyền) là một giải thuật mô phỏng theo quá trình chọn lọc tự nhiên, là k ỹ thuật chung giúp giải quyết vấn đề bài toán bằng cách mô phỏng sự tiến hóa của con ngườ i hay của sinh vật nói chung (dựa trên thuyết tiến hóa muôn loài nói chung của Darwin) trong điều kiện quy định sẵn của môi trườ ng. Lấy ý tưở ng từ quá trình tiến hóa tự nhiên, xuất phát từ một lớ p các lờ i giải tiềm năng ban đầu, GA tiến hành tìm kiếm trên không gian lờ i giải bằng cách xây dựng l ớ p l ờ i gi ải m ớ i t ốt hơn (tối ưu hơn) lờ i gi ải cũ. Quá trình xây dự ng l ớ p l ờ i gi ải mới đượ c tiến hành dựa trên việc chọn l ọc, lai ghép, đột bi ến từ l ớ p lờ i gi ải ban đầu. Quần thể lờ i giải tr ải qua quá trình tiến hóa: ở mỗi thế hệ lại tái sinh các lờ i giải tươ ng đối tốt, trong khi các l ờ i giải “xấu” thì chết đi. Trong GA, một tậ p các biến của bài toán đưa ra đượ c mã hóa sang một chuỗi (hay một cấu trúc mã hóa khác) tương tự như một nhiễm s ắc thể trong tự nhiên. Mỗi chuỗi bao gồm một giải pháp có thể của bài toán. Giải thuật di truyền sử dụng các toán tử đượ c sinh ra bở i sự ch ọn l ọc t ự nhiên một quần thể các chuỗi nhị phân (hoặc các cấu trúc khác), mã hóa kho ảng tham số trên mỗi thế hệ, khảo sát các phạm vi khác nhau của không gian tham s ố, và định hướ ng tìm kiếm đối v ớ i khoảng mà là xác suất cao để tìm kiếm s ự thực hiện tốt hơn. Thuật toán di truyền gồm có bốn quy trình cơ bản là lai ghép, độ t biến, sinh sản và chọn lọc tự nhiên.
1.2. Một số quá trình cơ bản: 1.2.1. Quá trình lai ghép (phép lai): Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể cha-mẹ để hình thành nhiễm sắc thể mới mang đặc tính của cả cha lẫn mẹ.
1.2.2. Quá trình đột biến (phép đột biến): Quá trình tiến hóa đượ c gọi là quá trình độ t biến khi một hoặc một số tính tr ạng của con không đượ c thừa hưở ng từ hai chuỗi nhiễm sắc thể cha-mẹ. Phép đột biến xảy ra vớ i xác suất thấp hơn rất nhiều lần so vớ i xác suất xảy ra phép lai.
1.2.3. Quá trình sinh sản và chọn lọc (phép tái sinh và chọn lọc): Phép tái sinh: là quá trình các cá th ể đượ c sao chép dựa trên độ thích nghi của nó. Độ thích nghi là một hàm đượ c gán các giá tr ị th ực cho các cá thể trong quần th ể của nó. Phép chọn: là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt. Giảng viên: Thạc Sĩ Lê Hoàn
6
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
1.3. Phƣơng pháp chung: Để giải các bài toán áp d ụng giải thuật di truyền, ta làm các bướ c sau:
B1: Khở i tạo và mã hóa một quần thể ngẫu nhiên của NST. Đó gọi là “quần thể hiện tại”. B2: Đánh giá độ thích nghi của mỗi NST trong quần thể hiện tại. B3: Tạo ra thế hệ trung gian, thông qua chọn lựa suy diễn các NST trong quần thể hiện tại tùy theo độ thích nghi. Đó là cha mẹ của những thế hệ tiế p theo. B4: Áp dụng toán tử lai ghép và nghịch đảo đối v ớ i nh ững c ặ p ho ặc NST đơn trong thế hệ trung gian, qua đó sẽ sản sinh ra một thế hệ NST mới. Đó là quần thể hiện tại. Lặ p lại các bướ c 2-4 cho đến khi một giải pháp phù hợp đượ c tìm thấy.
Để hình dung dễ hơn các bước, ta có sơ đồ khái quát sau:
Giảng viên: Thạc Sĩ Lê Hoàn
7
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
Bắt đầu Khở i tạo quần thể
Mã hóa các biến
Đánh giá độ thích nghi Chọn lọc Lai ghép
Đột biến
Thỏa mãn điều kiện dừng
K ết quả K ết thúc Hình 1.1: Sơ đồ giải thuật di truyề n.
Giảng viên: Thạc Sĩ Lê Hoàn
8
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
CHƢƠNG 2: BÀI TOÁN LẬP LỊCH 2.1. Tìm hiểu chung Lậ p l ịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi t ối ưu để thực hiện một tậ p các hoạt động chịu tác động của một tậ p các ràng buộc cần phải đượ c thỏa mãn. Ngườ i lậ p lịch thườ ng cố gắng thử đến mức tối đa sự sử dụng các cá thể, máy móc và tối thiểu th ời gian đòi hỏi để hoàn thành toàn bộ quá trình nhằm sắ p x ế p lịch. Vì thế bài toán lậ p lịch là một vấn đề khá khó để giải quyết.
2.2. 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ụ 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: đánh giá độ tối ưu của lịch trình lờ i giải của bài toán.
2.3. Bài toán lập lịch thờ i khóa biểu 2.3.1. Giớ i thiệu bài toán Bài toán đặt ra vấn đề cần sắ p xế p thờ i khóa biểu cho một trường đại học v ớ i nhiều cơ sở khác nhau. Cần có sự sắ p xế p lịch học cho các lớ p tại các phòng ở mỗi địa điểm, sao cho phù hợ p lại vừa tiện dụng nhất. 2.3.2. Dữ liệu bài toán
Danh sách cơ sở . Danh sách khoa. Danh sách khóa học. Danh sách học phần học và các lớ p trong học k ỳ. Danh sách lớ p học. Danh sách giáo viên. Danh sách phòng học. 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 học 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 đó.
Giảng viên: Thạc Sĩ Lê Hoàn
9
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
CHƢƠNG 3: Ứ NG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TOÁN XẾP LỊCH THỜ I KHÓA BIỂU Vấn đề của bài toán khá phức t ạ p v ề mặt ràng buộc, nhưng phương pháp chia để tr ị vẫn là biện pháp hữu hiệu trong mọi vấn đề phức tạ p. Ở đây cũng vậ y, theo phân cấ p các ràng buộc mà ta giải quyết bài toán xế p thờ i khóa biểu này thành hai giai đoạn khác nhau:
Giai đoạn 1: nhằm giải quyết thành phần ràng buộc ở m ức l ớ p h ọc, v ớ i các vấn đề cơ bản phức tạ p c ủa những đối tượ ng liên quan tớ i việc học của lớ p. Khi đã có đượ c k ết quả cuối cùng là lịch học cho từng lớ p một cách hoàn chỉnh, chúng sẽ được dùng làm thông tin cho giai đoạ n sau. Giai đoạn 2: tổng hợ p lại các ràng buộc còn lại và đã được đơn giả n hóa trong giai đoạn trướ c. K ết quả của giai đoạn này chính là mục tiêu cuối cùng của bài toán. Đó là lịch học của các lớ p trong một cơ sở .
Cả hai giai đoạn tuy có mục tiêu và dữ liệu khác nhau, nhưng về cách giải quyết có tính tương tự nhau, nên không khác gì nhiều khi áp dụng vào mô hình giải thuật di truyền.
3.1. Giai đoạn 1: Xếp lịch học các lớ p 3.1.1 Chọn mô hình cá thể Lịch học của một lớ p có hai thành phần chính, bao gồm: các môn học và các giờ học trong tuần. Việc đặt ngẫu nhiên các môn học vớ i các giờ học s ẽ tạo thành một lịch học cho từng lớp. Như vậy một lớ p học tương ứng sẽ có nhiều lịch học khác nhau, do đó ta chọn mỗi lịch học làm cá thể trong giải thuật di truyền. Và trong hai thành phần đó, thì giờ h ọc là thành phần ổn định hơn về số lượ ng cũng như về giá tr ị của chúng, cho nên ta ch ọn môn học làm đơn vị nhiễm sắc thể (NST) trong cá thể. Vì đối vớ i môn học vi ệc làm NST là phù hợ p vớ i tính không ổn định c ủa nó: vớ i s ố lượ ng các môn phụ thuộc t ừng lớ p h ọc, cũng giống như số lượ ng NST trong cơ thể, có chiều dài không nhất thiết phải cố định hay bằng nhau. Ngoài ra chưa kể đến tính phức t ạ p c ủa môn học v ề s ố ti ết ph ải h ọc luôn bị thay đổi, trong khi giá tr ị các giờ học thì ngượ c lại, có thể xác định một cách rõ ràng và nhanh chóng.
Hình 3.1: Mô hình cá th ể trong l ịch l ớ p.
Giảng viên: Thạc Sĩ Lê Hoàn
10
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch Thay vì chọn ngẫu nhiên các môn h ọc vào tiết học như đã trình bày, chúng ta sẽ làm ngượ c lại: chọn ngẫu nhiên tiết học theo môn, vì chúng ta đã chọ n môn học làm đơn vị trong cá thể. Có nghĩa là, vớ i một cá thể của mô hình xế p lịch lớ p, ở bất k ỳ thời điểm nào, khi ta đặt NST đầu tiên như là môn thứ nhất, NST k ế tiế p sẽ là môn thứ hai, và cứ ti ế p tục cho các NST còn l ại… thì sau này, lúc nào cũng theo thứ t ự ấy mà lấy thông tin ra, sẽ không có gì thay đổi (ngoại tr ừ giá tr ị tiết học, nếu như sau này có xảy ra lai ghép hay độ t biến). Trong trườ ng hợ p một môn đượ c học nhiều lần trong tuần, sẽ gây khó khăn cho việc xế p chúng vào trong cá thể. Cách giải quyết vấn đề này r ất đơn giản, chỉ cần đưa chúng vào cá thể với NST tương ứng, chẳng khác gì một môn học bình thường khác. Lúc đọc thông tin, chúng ta nên chú ý một chút. 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 a có một lần học Môn b có hai lần học Môn c có một lần học Môn d có một lần học
Chúng ta sẽ phân bố các NST như sau:
Hình 3.2: S ự phân bố các NST.
Mỗi NST sẽ mang một giá tr ị nguyên. Đó chính là vị trí của tiết học bắt đầu của môn học. Phạm vi giá tr ị c ủa nó bắt đầu t ừ 0 - > 35 theo thứ tự các tiết h ọc trong tuần, được đánh dấu theo vị trí liên tục của các ngày, tương tự cấu trúc mảng một chiều. Các tiết học tiế p theo là giá tr ị liên tục k ế tiế p nhau tùy theo s ố lượ ng tiết học của môn mà ta đang lưu trữ . Giá tr ị các tiết học:
Hình 3.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. Giảng viên: Thạc Sĩ Lê Hoàn
11
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch 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 Phân bố các môn h ọc trên lịch học như sau:
Hình 3.4:S ự phân bố các môn học trên l ịch học.
Như ta đã nói phần trên, tương ứng mỗi cá thể là một lịch học th ực của lớ p. Vì vậy khi tạo cá thể, chúng ta vẫn phải đảm bảo sự đúng đắn về tính chất trong lịch học: phải đúng số tiết học, số môn học, không có sự chồng chéo lên nhau tại cùng thờ i điểm trong các môn. Để giải quyết việc này, chúng ta sử dụng một tham biến đánh dấu các tiết học đã lên lịch, để môn học sau không bị s ắ p trùng vào những v ị trí này, mà môn học sẽ được đưa vào vị trí khác. T ất nhiên, mỗi lịch học sẽ có sự sắ p xế p khác nhau. 3.1.2. Tạo quần thể ban đầu Trướ c khi tạo quần thể ban đầu trong phần này, chúng ta phải chuẩn bị sẵn về dữ liệu cho quá trình thực thi, từ lúc khở i tạo đến khi cho ra k ết quả, bao gồm đầy đủ thông tin của một lớp đang đượ c chọn. Tất cả như sau:
Các ràng buộc lớp, giáo viên đượ c phân công dạy.
Giảng viên: Thạc Sĩ Lê Hoàn
12
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
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 quy định đọc và ghi nhận NST. …
Giống như cá thể đượ c mô tả ở trên, hàng loạt các cá thể đượ c tạo ra và đượ c xem như quần thể ban đầu trong mô hình thuật giải di truyền của phần xế p lịch lớ p. Sau khi quần thể có đủ số lượng, bướ c tiếp theo là đánh giá quầ n thể, kiểm tra xem độ thích nghi tốt nhất hiện đang tồn tại của quần thể.
3.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:
Trướ c hết ta nói về giáo viên. Khi chọn phân công giảng dạy, chúng ta phải biết chắc r ằng giáo viên sẽ đó sẽ tr ống vào giờ đó, buổi đó của lớ p học. Hay nói cách khác, chúng ta phải kiểm tra ràng buộc ti ết học, mà đã tương ứ ng vớ i mỗi môn trong lịch học, xem xét các môn có th ể học giờ đó hay không. Kế tiế p là xét giờ học của lớ p. Do một quy định nào đó mà lớ p có thể học giờ này hay giờ kia, chẳng hạn như không học ba tiết đầu của ngày thứ hai,… Cuối cùng kiểm tra lại sự chồng chéo giờ lẫn nhau của các môn h ọc. Việc kiểm tra này nhất thiết phải làm, vì trong lúc lai ghép, độ t biến, có thể gây ra sai lệch. Cho nên tốt nhất ta phải kiểm tra chúng. Giống như lúc khởi động, ta dùng một biến chứa tất cả các giờ học ở các môn để giúp cho việc đánh giá. Tương tự các ràng buộc giáo viên và lớ p. Mỗi vấn đề sẽ có một biến lưu trữ giờ làm việc, để tránh các tiết học theo quy định mà ta đã ghi nhậ n cho một giáo viên hay lớ p học tương ứng.
Có nhiều cách để chọn một cá thể tốt. Chọn cách tính theo độ thích nghi cao nhất ho ặc th ấ p nh ất. Thông thường, ngườ i ta chọn cách tính tốt nh ất. Ở đây, chúng ta cũng chọn cách tính tốt nhất tức là xế p theo giá tr ị giảm dần của giá tr ị bị phạt theo độ thích nghi.
3.1.4 Thuật toán lai ghép và đột biến Về thuật toán lai ghép, ta dùng lai ghép đoạ n: lấy ngẫu nhiên một đoạn NST bên NST cha, số còn lại sẽ lấy ở NST mẹ.
Giảng viên: Thạc Sĩ Lê Hoàn
13
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch Còn thuật toán đột biến: chỉ việc hoán vị hai NST một cách ngẫu nhiên trong cá thể. Ta có th ể s ửa thông số xác suất về đột biến, lai ghép của chương trình trong lúc chạy thực thi. Phần này áp dụng thực thi cho tất cả các lớ p trong một cơ sở, tương ứng vớ i mỗi lớ p sẽ có một file lưu trữ tất cả các lịch lớ p mà có thể sử dụng, dướ i hình thức các NST trong quần thể. Ngoài mục đích xem xét kiểm tra, chúng ta còn đượ c dùng làm thông tin để chạy lịch cơ sở sau này.
3.2. Giai đoạn 2 – Xếp lịch học cho toàn bộ cơ sở 3.2.1. Chọ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ó trong cơ sở , nếu mỗi lớp đều có một lịch học rõ ràng thì có nghĩa là có lịch cơ sở . Dựa vào giai đoạn đầu, trên lớp đã cho ra hàng loạ t các lịch học, việc chọn ngẫu nhiên lịch học c ủa một l ớp thì không có gì khó khăn. Nhìn mô hình cá thể trong lịch l ớ p ta thấy lớ p h ọc trong cơ sở có tính chất như môn học trong lớ p, cho nên ta chọn lớ p học làm đơn vị của NST trong mô hình thuật toán di truyền trong xế p lịch cơ sở. Và tương tự , ta chọn lịch cơ sở làm cá thể.
Ở mỗi NST là một con số mang tính chất như một trong những chỉ số trong file lưu trữ thông tin cá th ể c ủa lịch l ớ p ( chỉ s ố một lịch học c ủa lớp). Như vậy phạm vi giá tr ị các NST s ẽ khác nhau, nhưng ta luôn xác định đượ c phạm vi đó một cách rõ ràng, chỉ cần đọc giá tr ị kích thướ c của file tương ứng của lớ p mà thôi.
Hình 3.5:Mô hình cá thể trong l ịch cơ sở .
Giống như trong lịch lớ p, cá thể lịch cơ sở cũng phải qua một giai đoạn kiểm tra ban đầu, để có thể ở mức đạt đượ c dạng đúng của một lịch cơ sở. Đó là việc đặt
Giảng viên: Thạc Sĩ Lê Hoàn
14
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch các lớ p kiểm tra phòng vớ i lớ p, có thể phù hợ p với cơ sở hay không về mặt kích thướ c hiện có. Nếu việc kiểm tra này không thực hiện được thì bài toán đến đây đã kế t thúc.
3.2.2. Tạo quần thể ban đầu Quần thể khởi đầu gồm những cá thể đượ c tạo ra như mô hình trên, nhưng thông tin các lớ p h ọc ph ải đượ c ch ọn cùng trong một bu ổi h ọc thuộc cơ sở , và có file lịch l ớp đầy đủ. Ở đây kích thướ c cá thể là s ố l ớ p hi ện có, cho nên dài hay ng ắn tùy theo cơ sở, cũng giố ng như lịch lớ p chiều dài đượ c tính theo số môn hiện có của lớ p. Công việc này sẽ tốn r ất nhiều thờ i gian, vì công việc đọc file để kiểm tra, nhưng quần thể sẽ cho ra k ết quả đúng nhất về mặt áp dụng bài toán vào thuật toán giải di truyền.
3.2.3. Độ thích nghi – chọn cá thể Giai đoạn hội tụ cá thể trong quần thể, trên cơ bản việc đánh giá cơ sở tùy theo số lớ p, số giờ học và s ố phòng học. Phòng học phải hợ p lý v ề sức chứa của nó đối vớ i lớ p học, thông thường ngườ i ta chọn phòng lớ n nhất cho lớp tương ứng lớ n nhất. Nhưng ở đây ta chọn phương pháp khác, lớ p và phòng sẽ đượ c xế p theo thứ tự lớ n dần. Cho nên khi xế p lịch, lớ p sẽ được đặt ở một phòng vừa nhất mà cơ sở đang có. Điều này tuy mất thời gian hơn nhưng thực tế thì nó sẽ hợp lý hơn. Về 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 một khi có lớ p nào vào học, đồng thờ i sau này đó cũng chính là lịch sử dụng các phòng.
Cũng đánh giá lại ràng buộc lịch giáo viên, nhưng lầ n này chỉ xét về mặt trùng giờ dạy ở các lớ p cùng một thời điểm. Tương tự , ta sẽ sử dụng một tham biến lịch dạy cho mỗi giáo viên, đề ghi nhận và tránh trườ ng hợ p trùng giờ này. Vớ i các lần kiềm tra tương ứ ng vớ i một giá tr ị thích nghi, cuối cùng tổng các giá tr ị này chính là độ thích nghi của cá thể. Công việc không khác gì trong lịch l ớ p, cá thể đượ c chọn là cá th ể tốt nhất, giá tr ị thích nghi đạt ở mức đỉnh là 0.
3.2.4. Thuật toán lai ghép và đột biến Sử dụng lại của phần xế p lịch lớ p, chọn cá thể theo độ thích nghi, lai ghép ngẫu nhiên đoạn và đột biến hoán vị điểm. Do giống nhau về mặt dữ liệu, và yêu c ầu và cấu trúc thuật toán cũng không khác nhau nhiề u, việc dùng lại này, sẽ không gây ảnh hưở ng gì trong quá trình thực hiện xế p lịch cơ sở . Một lần nữa nói về thờ i gian thực thi, sẽ mất nhiều thời gian hơn công việc xế p lịch lớ p, do số lượ ng và phạm vi ràng buộc khá lớ n và phải đọc d ữ li ệu trên các file. Nhưng về mặt hoạt động không khác nhau. Giảng viên: Thạc Sĩ Lê Hoàn
15
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
3.2.5. Chọn điểm dừ ng của 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ặc dù thế hệ vẫn phải đượ c chọn trướ c ngay 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ả.
Giảng viên: Thạc Sĩ Lê Hoàn
16
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
Giảng viên: Thạc Sĩ Lê Hoàn
17
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
CHƢƠNG 6: KẾT LUẬN 6.1. K ết quả đạt đƣợ c
6.2. Hƣớ ng phát triển
Giáo viên hƣớ ng dẫn
Sinh viên thự c hiện Lương Đức Nam Phạm Văn Thích Nguyễn Sơn Tùng
Tài liệu tham khảo
Giảng viên: Thạc Sĩ Lê Hoàn
18
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
Phân công công việc Lương Đức Nam
Phạm Văn Thích
Nguyễn Sơn Tùng
Giảng viên: Thạc Sĩ Lê Hoàn
19
Giải thuật di truyền và ứng dụng vào bài toán lậ p lịch
Nhận xét của giáo viên:……………………………………………………………...
………………………………………………………………………………………..……… ………………………………………………………………………………………..……… ……………………………………………………………………………………..………… ………………………………………………………………………………..……………… ………………………………………………………………………..……………………… …………………………………………………………………..…………………………… ………………………………………………………………..……………………………… …………………………………………………………..…………………………………… …………………………………………………..…………………………………………… ……………………………………………..………………………………………………… …………………………………………..…………………………………………………… ………………………………………………………………………….
Giảng viên: Thạc Sĩ Lê Hoàn
20