Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi

69 843 8
Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lục Mục lục .1 LỜI NÓI ĐẦU CHƯƠNG GIỚI THIỆU VỀ GAs 1.1 Tổng quát 1.2 Sơ lược Lịch sử phát triển .5 1.3 Sơ lược ưu nhược giải thuật di truyền 1.4 Sơ đồ tổng thể GAs .8 1.5 Các cách biểu diễn giải thuật di truyền .10 1.6 Hàm thích nghi 12 1.7 Các toán tử GAs 13 1.7.1 Chọn lọc 13 1.8 Lai ghép 16 1.8.1 Lai ghép điểm .17 1.8.2 Lai ghép điểm 17 1.8.3 Cắt nối 17 1.8.4 Lai ghép đồng lai ghép bán đồng 17 1.8.5 Lai ghép ánh xạ phần 18 1.8.6 Lai ghép thứ tự 19 1.8.7 Lai ghép thứ tự tuyến tính 19 1.8.8 Lai ghép vòng 19 1.8.9 Lai ghép tuyến tính mở rộng với số thực 20 1.9 Đột biến 21 1.9.1 Đột biến chèn (Insertion Mutation) 21 1.9.2 Đột biến thay (Displacement Mutation) 21 1.9.3 Đột biến đảo đoạn (Inversion Mutation) .22 1.9.4 Đột biến tương hỗ (Reciprocal Exchange Mutation) 22 1.9.5 Đột biến dịch chuyển (Shift Mutation) 22 1.9.6 Đột biến ngẫu nhiên (đột biến đều) 22 1.9.7 Đột biến không đồng (đột biến không đều) 22 1.10 Tái sinh .23 1.11 Các tham số giải thuật di truyền 23 1.11.1 Kích thước quần thể .23 1.11.2 Xác suất lai ghép 24 1.11.3 Xác suất đột biến 24 CHƯƠNG GIỚI THIỆU VỀ BÀI TOÁN LẬP LỊCH THI 25 2.1 Bài toán Lập Lịch Thi (LLT) .25 2.2 Các cách tiếp cho toán LLT Sơ lược lịch sử toán LLT 28 2.2.1 Cách tiếp cận tìm kiếm ngẫu nhiên tìm kiếm vét cạn 28 2.2.2 Các cách tiếp cận vận trù học .29 2.2.3 Cách tiếp cận sử dụng GAs 31 CHƯƠNG SỬ DỤNG GAs GIẢI QUYẾT BÀI TOÁN LLT .34 3.1 Phát biểu toán 34 3.2 Các loại ràng buộc .34 3.2.1 Ràng buộc cạnh 34 3.2.2 Các ràng buộc thứ tự 36 3.2.3 Các ràng buộc độ dàn trải kiện .37 3.2.4 Các qui định trước loại trừ .37 3.2.5 Các ràng buộc không gian .38 3.2.6 Ràng buộc cứng ràng buộc mềm 38 3.3 Mô hình GA tổng quát cho toán LLT 39 3.3.1 Cách biểu diễn toán 39 3.3.2 Giải ràng buộc 41 3.3.3 Khởi tạo .44 3.3.4 Tái sinh (Recombination) 44 3.3.5 Độ thích nghi .45 3.3.6 Đột biến thông minh 47 CHƯƠNG CÁC THỬ NGHIỆM CỦA GAs CHO EDAI 49 4.1 Giới thiệu toán LLT EDAI(1) 49 4.1.1 Mô tả toán cụ thể 50 4.1.2 Bài toán AI/CS MSc 51 4.1.3 Áp dụng GA cho toán Lập lịch thi EDAI 52 4.1.4 Khung làm việc cụ thể cho toán EDAI 55 4.1.5 Lượng giá 55 4.1.6 Các thử nghiệm 58 KẾT LUẬN .67 NHẬN XÉT CỦA GIÁO VIÊN 68 TÀI LIỆU THAM KHẢO 69 LỜI NÓI ĐẦU Xuất phát từ thực tế tồn nhiều toán chưa có phương pháp giải chấp nhận hay lời giải tối ưu, nhà nghiên cứu đề xuất phương pháp tính toán dựa quan sát trình tiến hoá tự nhiên Phương pháp tính toán gọi Tính toán tiến hóa (Evolutionary Computation) Tính toán tiến hóa có nhiều nhánh nhỏ khác nhau, kể tới ba lĩnh vực thu hút nhiều quan tâm nhà khoa học: Các chiến lược tiến hóa (Evolutionary Strategies), Lập trình tiến hóa (Genetic Programming) Giải thuật di truyền (Genetic Algorithms) Giải thuật di truyền thu hút nhiều ý năm gần Lớp giải thuật chứng minh có nhiều ưu điểm trội so với loại thuật toán khác đặc biệt áp dụng chúng vào lớp toán tối ưu - lớp toán khó có nhiều ứng dụng đời sống thực tiễn Lớp giải thuật mô trình tiến hóa tự nhiên có kế thừa, đấu tranh sinh tồn để cải tiến lời giải khảo sát không gian lời giải nhằm tìm kiếm lời giải tối ưu Giải thuật di truyền thích hợp hệ thống phức tạp mà phương pháp cổ điển làm việc không hiệu quả, hay chí tìm lời giải Chính ưu điểm bật GAs thúc đẩy em nghiên cứu lớp giải thuật thực đề tài: Giải thuật di truyền ứng dụng vào toán Lập Lịch Thi Đề tài gồm có chương: Chương 1: Giới thiệu Giải thuật di truyền Chương giới thiệu tổng quát GAs, sơ lược về trình phát triển phân tích sơ lược ưu, nhược GAs thành phần chi tiết GA Chương 2: Giới thiệu toán Lập Lịch Thi Chương giới thiệu chi tiết toán Lập lịch thi theo tín (module) Chương 3: Sử dụng GAs giải toán LLT Chương mô tả toán lập lịch thi chi tiết hướng giải toán sử dụng GAs Chương 4: Các thử nghiệm với GA cho toán AI/CS Chương giới thiệu kết mà nhà nghiên cứu trước thu Qua thấy ưu điểm GAs để giải toán tối ưu khó nói chung toán lập lịch thi nói riêng Thái Nguyên tháng 05 năm 2008 CHƯƠNG GIỚI THIỆU VỀ GAs 1.1 Tổng quát Từ lâu người làm tin học quen thuộc với công thức: Chương trình = giải thuật + cấu trúc liệu Trong giải thuật định nghĩa dãy hữu hạn bước mà chương trình bắt buộc phải thực để sinh kết mong muốn Trong thập niên gần đây, người ta bắt đầu quan tâm đến cách giải toán dựa qui luật tiến hóa tự nhiên (thường sử dụng toán lớn, phức tạp, đặc biệt toán tối ưu) Các chương trình gọi chương trình tiến hóa (Evolution Program - EP), chương trình có sử dụng giả thuật đặc biệt dựa nguyên lý tiến hóa tự nhiên Các nhà khoa học đưa công thức việc xây dựng chương trình: EP = Giải thuật di truyền + cấu trúc liệu Chương trình tiến hóa Rechenberg giới thiệu năm 1960 Evolution Strategies Ý tưởng ông sau nhiều nhà khoa học kế thừa phát triển Còn giải thuật di truyền (Genetic Algorithm - GAs) đời sau, xuất vào năm 1970 John Holland đề xuất Tác giả Holland đề mục tiêu: (1) Nâng cao hiểu biết trình thích nghi với tự nhiên (2) Thiết kế hệ thống nhân tạo có đặc tính tương tự với hệ thống tự nhiên GAs lớp giải thuật sử đụng để tìm kiếm lời giải tốt cho toán, đặc biệt toán khó, nhờ việc áp dụng nguyên lý thuyết tiến hóa khoa học máy tính GAs không tìm giải pháp tối ưu, đưa lời giải tương đối tốt điều kiện thời gian không gian cho phép GAs phương pháp tính toán thích hợp cho việc giải toán tìm kiếm tối ưu Trong lĩnh vực nghiên cứu GAs người ta thường sử dụng thuật ngữ vay mượn di truyền học như: cá thể, nhiễm sắc thể (NST), gen, quần thể, độ thích nghi, lai ghép, đột biến, tái sinh, v.v… Trong cá thể (individuals, genotypes, structure) biểu diễn lời giải toán (lời giải sai), giải thuật di truyền cá thể có NST, khác với cá thể tự nhiên nên cá thể gọi NST (Chromosome) Các NST chuỗi tuyến tính đơn vị nhỏ gen (Gene), gen biểu diễn cho đặc trưng có vị trí định NST Quần thể (population) tập hợp nhiều cá thể có số lượng hữu hạn xác định, GAs quần thể tập lời giải (có thể gồm có lời giải sai) Chọn lọc (selection), lai ghép (crosorver), đột biến (mutation), tái sinh (generation) phép toán thực quần thể để tạo quần thể Một toán giải giải thuật di truyền thông thường phải trải qua bước:  Biểu diễn di truyền cho lời giải toán: biểu diễn chuỗi nhị phân, số thập phân, ký tự……  Khởi tạo quần thể ban đầu gồm có N cá thể cách ngẫu nhiên  Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá lời giải theo độ thích nghi chúng  Xác định kích thước quần thể, xác suất lai, xác suất đột biến…  Xây dựng phép toán di truyền: lai ghép, đột biến, tái sinh, chọn lọc 1.2 Sơ lược Lịch sử phát triển Vào năm 1950 1960 số nhà khoa học nghiên hệ thống tiến hóa độc lập với ý tưởng tiến hóa sử dụng công cụ tối ưu hóa cho toán kỹ thuật Ý tưởng tất hệ thống liên quan tới quần thể lời giải cho toán cho trước, sử dụng toán tử bắt nguồn từ biến đổi gen lựa chọn tự nhiên Vào năm 1960, Rechenberg giới thiệu “các chiến lược tiến hóa”, phương pháp ông sử dụng để tối ưu hóa tham số thực cho thiết bị máy bay Ý tưởng tiếp tục phát triển sau Schwefel Lĩnh vực chiến lược tiến hóa lĩnh vực nghiên cứu quan tâm nhiều, phát triển độc lập với lĩnh vực giải thuật di truyền, gần lĩnh vực bắt đầu có tương tác rõ nét Owens Walsh (1966) phát triển “Lập trình tiến hóa” kỹ thuật lời giải cho toán cho trước biểu diễn dạng máy có trạng thái xác định, máy “tiến hóa” nhờ đột biến (biến đổi) ngẫu nhiên biểu đồ biến đổi trạng thái chúng chọn trạng thái tốt Các chiến lược tiến hóa, lập trình tiến hóa giải thuật di truyền tạo thành xương sống cho tính toán tiến hóa GAs phát minh John Holland năm 1960 phát triển Holland với sinh viên đồng nghiệp ông đại học Michigan Trong năm 1960 1970 Không giống chiến lược tiến hóa lập trình tiến hóa, mục tiêu ban đầu Holland thiết kế thuật toán để giải toán cụ thể, sau từ nghiên cứu tượng thích nghi xảy tự nhiên để phát triển phương pháp sử dụng thích nghi tự nhiên ông thấy chúng tích hợp máy tính Cuốn sách Holland xuất năm 1975: “Thích nghi tự nhiên hệ thống nhân tạo” giới thiệu giải thuật di truyền khái niệm tiến hóa sinh học đưa móng lý thuyết cho tính thích nghi GAs Giải thuật di truyền Holland phương pháp để di chuyển từ quần thể NST sang quần thể khác nhờ sử dụng kiểu lựa chọn tự nhiên với toán tử lai ghép, đột biến đảo ngược Mỗi NST gồm gen, gen thể alen cụ thể Toán tử lựa chọn chọn NST quần thể mà chúng cho phép sinh sản, nói chung NST thích nghi tốt tạo nhiều NST có độ thích nghi thấp Lai ghép trao đổi thành phần NST, tương đối giống trình lai ghép cá thể tự nhiên; đột biến ngẫu nhiên thay đổi giá trị alen số vị trí NST; đảo ngược trì thứ tự phần kề NST, xếp lại thứ tự mà gen đặt trước Việc đưa vào khái niệm quần thể Holland với khái niệm lai ghép, đảo ngược đột biến thực cách mạng Các chiến lược tiến hóa Rechenberg sử dụng quần thể với cá thể, cha/mẹ con, đột biến đảo ngược so với cha/mẹ; quần thể có nhiều cá thể có lai ghép không đề cập lúc đầu Lập trình tiến hóa tác giả Fogel, Owens Walsh tương tự sử dụng đột biến để tăng tính đa dạng Hơn Holland người cố gắng đặt tính toán tiến hóa tảng lý thuyết vững Cho tới gần tảng lý thuyết này, dựa khái niệm sơ đồ (schemas) sở cho hầu hết thành tựu lý thuyết sau GAs 1.3 Sơ lược ưu nhược giải thuật di truyền GAs ý nhiều mặt ứng dụng toán tối ưu phức tạp GAs ứng dụng nhiều lĩnh vực khác nhau: khoa học tự nhiên, khoa học xã hội, kinh tế - tài chính, giáo dục… Những ứng dụng chia sau:  Tìm mô hình tối ưu cho toán Đây xem mặt mạnh GAs, ứng dụng phổ biến như: tối ưu hàm số, tối ưu hóa sở liệu, tối ưu hóa học…  Chọn lựa nhóm hay thành phần tổ chức  Hoạch định lộ trình, qui trình Các ứng dụng phổ biến thuộc mảng như: điều khiển mạng lưới đèn giao thông, lập thời khóa biểu… GAs ứng dụng rộng rãi có nhiều ưu điểm bật:  GAs giải thuật mạnh giải thành công lượng lớn toán có độ phức tạp cao  Là phương pháp tìm kiếm tạo cân đối đáng kể việc khai thác vào khảo sát không gian tìm kiếm  GAs thực tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng, trì xử lý tập lời giải, thúc đẩy hình thành trao đổi thông tin hướng Điều giúp giảm khả gặp cực tiểu địa phương  Thích hợp cho toán tìm kiếm không gian lớn lại hạn chế thời gian chi phí Mặc dù GAs xuất thời gian gần có thành tựu bật lý thuyết ứng dụng Đặc biệt người ta kết hợp GAs giải thuật khác để tạo nên chế điều khiển tự động nhiều tầng, cho phép giải toán tối ưu phức tạp nhanh chóng với độ xác chấp nhận Bên cạnh ưu điểm bật GAs có nhiều hạn chế Nhược điểm lớn GAs tốc độ hội tụ chậm Sở dĩ có điều hiệu phép toán lai ghép đột biến Trong toán tử NST tạo hiệu Do mà trình tiến hóa quần thể bị chậm lại Sự hiệu phép toán vừa đề cập chúng xây dựng NST dựa yếu tố ngẫu nhiên không cần quan tâm tới hiệu chúng 1.4 Sơ đồ tổng thể GAs GAs mô tả tổng quát sau: Bắt đầu t = 0; Khởi tạo quần thể P(t); Tính giá trị thích nghi cho cá thể P(t); Khi (điều kiện dừng chưa thỏa) lặp: t = t+1; Chọn lọc P(t) từ P(t-1); Lai ghép P(t); Đột biến P(t); Tái sinh P(t); Dừng lặp Kết thúc Giải thích: t: biến đếm P(t): quần thể hệ (lần lặp) thứ t Quá trình hoạt động GAs biểu diễn lưu đồ đây: Begin Khởi tạo quần thể Tính giá trị thích nghi Kiểm tra dừng Chọn lọc Lai ghép Đột biến Tái sinh End 1.5 Các cách biểu diễn giải thuật di truyền Để giải giải toán GAs, trước hết phải tìm cách biểu diễn di truyền cho lời giải toán - biểu diễn NST Có nhiều phương pháp biểu diễn khác nhau, cần dựa vào nội dung, yêu cầu, tri thức toán yêu cầu đặt tốc độ, lưu trữ….để lựa chọn cách biểu diễn phù hợp Dưới cách biểu diễn NST thông dụng: 1.5.1.1 Biểu diễn chuỗi nhị phân Đây phương pháp phương pháp biểu diễn có tính truyền thống GAs Theo phương pháp này, gen NST mã hóa số lượng bit Một cá thể b biểu diễn b = b1, b2, …, bn với b j  {0, 1} n độ dài chuỗi Cách biểu diễn có nhược điểm độ xác không cao số bit dùng để biểu diễn nhỏ Muốn tăng độ xác phải tăng số lượng bit dùng để biểu diễn Tuy nhiên điều làm chậm thuật toán, tính xác không mong muốn 1.5.1.2 Biểu diễn số nguyên Trong số toán, phương pháp biểu diễn chuỗi nhị phân không phù hợp người ta sử dụng phương pháp Ví dụ với toán người du lịch, mã hóa thành phố chuỗi bit cần [logn2], n số thành phố cần Với n = 20, cần bit để mã hóa Khi có chuỗi bit không tương ứng với thành phố (10101), nói cách khác nằm không gian tìm kiếm Một phương pháp sử dụng thay thế, khắc phục nhược điểm dùng số nguyên Một véc tơ v = (i1, i2, …, in) biểu diễn đường đi, xuất phát từ i1 qua i2, …, đến in trở i1 số ii số nguyên Chúng ta thấy v hoán vị n thành phố không gian tìm kiếm 10 4.1.4 Khung làm việc cụ thể cho toán EDAI 4.1.4.1 Dữ liệu Sinh viên - Môn thi Dữ liệu sinh viên - môn thi đơn giản tập danh sách, danh sách tập môn thi mà sinh viên cụ thể phải tham gia Nó chứa tất thông tin tất môn thi sinh viên, sinh viên/dòng Một sinh viên cao học qui khoa AI CS tham gia môn thi Ngoài có nhiều sinh viên học nửa thời gian, sinh viên tham gia môn thi/ năm Những ràng buộc thông tin sinh viên - môn thi lưu file Một phần file liệu sinh viên - môn thi cho toán AI/CS MSc 1992/1993 cho dưới: Student1 : aied conc cvis ias isc Student2 : lisp prol dri1 kre2 mnes nlp Student3 : lisp prol kre1 kre2 mnis es1 mrthr cvis isc nlp … (dữ liệu đầy đủ file cho trước) Ví dụ student1 cần tham gia môn thi: aied, conc, cvis, ias isc Thông tin quan trọng cho toán LLT sử dụng để tính toán vi phạm ràng buộc xẩy 4.1.5 Lượng giá Với toán METP nói chung, hàm lượng giá phải nhận vào NST, với liệu sinh viên trả giá trị phạt cho NST Độ thích nghi NST dùng tỷ lệ nghịch giá trị phạt ( hay xác 1/(1+giá trị phạt) để tránh chia cho 0) Hàm lượng giá tập hàm riêng lẻ có trọng số, hàm phạt NST theo tiêu chuẩn vi phạm luật Trong METP mà thử nghiệm, thành phần hàm lượng giá hàm đếm số lượng thể vi phạm luật sau: Ràng buộc cứng:  Clash: sinh viên tham gia môn thi lúc 55 Ràng buộc mềm:  Consec_d: môn thi ngày (2 buổi khác nhau)  Consec: môn thi ngày (cùng buổi)  Three: môn thi ngày  Four: môn thi ngày  Slot: môn thi khoảng thời gian loại trừ  Large: nhiều môn thi khoảng thời gian tổng sức chứa cần lớn khả chứa phòng lớn Chất lượng tổng thể LT đánh giá hàm lượng giá Hàm lượng giá cộng tất vi phạm ràng buộc Mỗi ràng buộc có số tương ứng hay gọi giá phạt (panalty) Ví dụ, đụng độ (clash) có giá phạt 300, n đụng độ có giá phạt n×300 Các giá trị tuyệt đối giá phạt có ảnh hưởng tới việc chọn độ thích nghi, độ thích nghi tỷ lệ nghịch với + tổng có trọng số vi phạm đề cập trên; lựa chọn xếp hạng (rank) hay lựa chọn tournament vấn đề Các thay đổi giá phạt tương đối tạo khác biệt Trong thử nghiệm toán này, giá trị phạt tương đối chọn theo phán đoán trực giác độ quan trọng tương đối để thỏa mãn loại ràng buộc khác Các giá phạt ràng buộc lưu vào file sau: #define PEN_CLASH 300 #define PEN_FOUR 100 #define PEN_THREE 30 #define PEN_CONSEC 10 #define PEN_SLOT 10 #define PEN_LARGE #define PEN_CONSEC_D Một thể “Four” tương đương với hai thể Three, Four bị phạt Nói chung consec, consec_d, Three Four bị phạt tất Trong toán LLT có khoảng thời gian ngày khoảng thời gian không kề sát mặt thời gian Luôn có 30 phút không sử dụng khoảng 56 thời gian Điều có nghĩa lo lắng thời gian cho sinh viên di chuyển từ điểm thi tới điểm thi khác, thực tế môn thi diễn điểm thi thời gian di chuyển không đáng kể Việc phạt môn thi mà sinh viên phải thi liên tiếp nhằm mục đích cho sinh viên có nhiều thời gian chuẩn bị Điều khác với việc sinh viên phải thi môn thi ngày khoảng thời gian môn thi ngày lớn (thi môn đầu diễn vào khoảng thời gian đầu ngày, môn thứ diễn vào khoảng thời gian cuối ngày) Vì xét môn thi liên tiếp thay hai môn thi ngày Trong METP khác tập hàm thành phần trọng số lựa chọn kỹ lưỡng Ví dụ: thành phần xem xét việc môn thi diễn ngày việc tổ chức môn thi ngày vi phạm khác Nói chung hàm thích nghi cho METP, p NST, {c1, …., cn} tập hàm mà hàm lưu trức số thể vi phạm ràng buộc đó, {w1, …, wn} trọng số gán cho vi phạm này, hàm có dạng sau: n f ( p )  /(   w i c i ( p )) i 1 Sự lượng giá thường yếu điểm tính toán GAs Với toán METP, module đếm vi phạm ràng buộc đề cập trên, dễ thấy thời gian để lượng giá NST tăng tuyến tính với số lượng sinh viên, module ràng buộc; liên quan tới tính toán phụ thuộc loại phạt quan tâm Năm Số môn thi Số sinh viên Số ngày thi 1990/1991 38 47 1991/1992 44 93 1992/1993 44 84 1993/1994 59 200 Bảng 5.2: Thông tin toán Trong phần giới thiệu so sánh rõ ràng lịch thi thực lập chuyên gia LT sinh hệ thống 57 4.1.6 Các thử nghiệm 4.1.6.1 Các LT thực tế Bảng 5.2 liệt kê liệu thực thông tin toán lập lịch thi EDAI AI/CS MSc 90/91, 91/92, 92/93 MSc UG 93/94 Cột số môn thi biểu diễn số môn thi tổ chức năm cụ thể cột số sinh viên biểu diễn số sinh viên tham gia môn thi năm Thêm vào đó, cột số ngày thi số ngày nằm khoảng từ ngày đầu tới ngày cuối kỳ thi LT thực sử dụng năm người tổ chức khóa học xếp LT hai năm cuối sinh nhờ sử dụng GAs Kết tóm tắt bảng 5.3 Các LT sử dụng hai năm cuối rõ ràng tốt LT sử dụng hai năm trước Có nghĩa là, sử dụng GAs để sinh LT tiết kiệm thời gian công sức cho người tổ chức khóa học Và quan trọng hơn, công cho sinh viên sinh viên phải tham gia hai môn thi liên tiếp môn thi ngày Các LT sử dụng hai năm đầu kết nháp mà cần vài để tạo ra, sau chỉnh sửa lặp lặp lại tuần  LT thực năm 90/91: LT người tổ chức khóa học xếp cho AI/CS MSc 90/91 cho bảng 5.4 có tổng giá trị phạt 122 (consec_d = 4, consec = 11, three = 0, four = 0, large = 0) Nói cách khác, có lần vi phạm môn thi liên tiếp hai nửa ngày khác ngày 11 vi phạm môn thi liên tiếp nửa Năm Tổng phạt CONSEC_D CONSEC THREE FOUR LARGE 90/91 122 11 0 91/92 328 33 16 92/93 0 0 0 93/94 16 0 Bảng 5.3 Các giá trị phạt LT thực 58 09:30-11:00 1130-13:00 14:00-15:30 16:00-17:30 Its (6) Isc (16) Clg1 (3) Mnis (12) Asic (4) Cpin (2) Nnet (12) Cafr (5) Thứ Prol (30) Thứ Es (20) Spd (4) Ccomp (2) Lisp (35) Thứ Acar (13) Lng2 (3) Robs (5) Ds (11) Grph (5) Cad (1) Bsv (3) Nlp (14) Swl (21) Mthr (11) Algc (1) Lng1 (3) Thứ Os (8) Fprg (3) Cvis (8) Lr1 (35) Thứ Clg2 (3) Csys (4) Si (4) Db (4) Kri2 (26) Thứ Swt (12) Ias (10) Ccom (10) Aps (3) Bảng 5.4 LT tạo người 90/91  LT thực 91/92: LT người tạo cho toán AI/CS MSc 91/92 cho bảng 5.5 với tổng giá trị phạt 328 (consec_d = 33, consec = 16, three = 2, four = 0, large = 3) Nói cách khác có 33 lần vi phạm môn thi liên tiếp hai ngày khác ngày 16 vi phạm môn thi liên tiếp nửa Thêm vào có lần xẩy vi phạm môn thi ngày lần có vi phạm khoảng thời gian đông thí sinh 59 09:30-11:00 Thứ Thứ Thứ Cca (21) Cvis (21) Fsm1 (2) Ssc (14) Isc (21) Lng1 (11) Cp (1) Thứ Aied (20) Clg2 (11) Thứ Es (38) Sp2 (1) Thứ Thứ Swl (28) Essp (2) Aps (14) 1130-13:00 Kri1 (62) Ccomp (1) 14:00-15:30 Clg1 (11) Spd (5) 16:00-17:30 Mvis (26) Fprg (8) Cad (5) Lisp (61) Algc (8) Grph (15) Kri2 (53) Carf (10) Ccom (21) Ds (25) Db (21) Rs1 (1) Prol (49) Lng2 (2) Sp1 (1) Asic (6) Os (12) Cpin (7) Rs2 (1) Ias (12) Bsv (6) Nlp (21) Cc (11) Nnet (33) Mthr (24) Si (11) Bảng 5.5: LT người xếp năm 91/92  LT thực 92/93: LT bảng 5.6 sinh GAs với tổng giá trị phạt Nói cách khác, hoàn hảo với ràng buộc xét Thứ 09:30-11:00 Lisp (37) Ip2 (9) 1130-13:00 Cc (13) Os (17) Cad (29) Cafr (5) 14:00-15:30 Aied (28) Gis (6) Thứ Es1 (25) Thứ Kri1 (44) Thứ Swp (32) Cl2 (6) Isc (40) Thứ Cvis (26) Aps (11) Es2 (15) Thứ Cl1 (6) Ip1 (9) Ds (47) Ias (31) Thứ Kriw (34) Asic (17) Conc (57) Thứ Thứ Si (10) Nlp (15) Lfs1 (4) Cmc (18) Bảng 5.6: LT GAs tạo năm 92/93 60 16:00-17:30 Ci (5) Ssc (21) Prol (35) Ln2 (3) Bsv (9) Rs2 (9) Mvis (23) Ppc (16) Mthr (11) Db (14) Nnet (17) Gr (20) Ln1 (5) Cca (23) Rs1 (9) Com Fpls (6)  LT thực 93/94: LT sinh nhờ GAs cho bảng 5.7 với tổng giá trị phạt 16 (consec_d = 0, consec = 1, three = 0, four = large = 2) Tương tự có vi phạm môn thi diễn nửa ngày Và vi phạm khoảng thời gian có đông thí sinh 09:30-11:00 Thứ C4sp (40) 1130-13:00 Kri1 (47) 14:00-15:30 Os (12) 16:00-17:30 Lisp (40) Gí (2) Thứ Rs1 (8) Es2 (23) C4cg (61) Fpls (5) Cca (17) Swp (25) Cp1 (3) Lo1 (30) Cvis (28) Lp (30) Thứ Kri2 (43) Pl (6) Isc (36) Ds (46) Ci (10) Thứ Conc (29) Prol (51) Rs2 (8) Si (4) Tnl2 (3) Hci (54) Thứ Thứ Ip2 (9) Ca (12) Aied (23) Gr (11) Cafr (6) Nnet (17) Ln1 (1) Mvis (24) PPC (11) BSV (6) Ct (5) Es1 (34) Ppi (13) Aps (9) Smt (33) Thứ Cc (17) Asic (34) Ml (6) Ip1 (9) Mthr (22) Atnl (4) Thứ Pa (33) Cmc (11) Ias (25) Com (17) LO2 (16) Thứ Tnl1 (3) Cad (23) Db (19) Des (8) Cl1 (31) Inlp (13) Ssc (16) Bảng 5.7: LT GAs sinh cho bai toán MSc/ UG 93/ 94 Số ngoặc bảng số sinh viên tham gia môn thi 61 4.1.6.2 So sánh kết thử nghiệm với toán AI/CS MSc Trong phần xét kết số thí nghiệm với GAs sau mười lần chạy sử dụng cách lựa chọn: dựa độ thích nghi (FIT), dựa vào xếp hạng (RANK), hướng thời gian (SPAT) lựa chọn tournament (TOUR) toán AI/ CS MSc 90/91, 91/92, 92/93 toán MSc/UG 93/94 Ở sử dụng tái sinh dựa vào độ ổn định, việc sau thực chu kỳ tái sinh: với xác suất Pc hay cha mẹ chọn, áp dụng lai ghép, sinh với xác suất Pm, đột biến áp dụng với thu lại chèn vào quần thể thay cho cá thể có độ thích nghi nhỏ Sự kết hợp toán tử sử dụng lai ghép điểm (one- point 1-pt), điểm (two-point, 2-pt) lai ghép đồng (uniform UX) với đột biến ngẫu nhiên; lai ghép đồng với đột biến thông minh Tất phép lai ghép đảm bảo thu LT với khoảng thời gian hợp lý hệ thống loại trừ tất khoảng thời gian không hợp lý hệ khởi tạo Đột biến ngẫu nhiên sử dụng để chọn gen ngẫu nhiên thay đổi giá trị gen (khoảng thời gian) thành giá trị khác mà giá trị phù hợp với gen Nói cách khác đột biến thành giá trị mà không vi phạm ràng buộc cho file loại trừ Toán tử lai ghép thông minh gồm lai ghép VDM, SVDM, EFM, SEFM Tất kết thu sử dụng tỷ lệ lai ghép 0.8, giảm dần tới 0.6 tỉ lệ đột biến khởi tạo 0.003 tăng dần tới 0.02 Độ bias (sa số) lựa chọn dựa xếp hạng 1.5 kích thước lựa chọn dựa tounament độ dài lựa chọn dựa thời gian Thêm vào đó, kích thước quần thể 50 hệ sinh để thay cá thể tồi hệ trước sau 1000 lần lượng không cải thiện kết tốt tìm thấy chương trình hiểu thuật toán hội tụ dừng Nói cách khác, số lần lượng giá tối đa 10000 62 Số lần lượng giá tối thiểu thu LT hoàn hảo FIT RANK SPAT TOUR Thời gian tốt nhất/tồi 90/91 FIT RANK SPAT TOUR 1-pt 10/124 10/129 6/155 10/157 - - - - 2-pt 0(2)/60 0(1)/109 10/79 0(1)/50 4069 3616 - 4606 UX 10/107 10/134 0(2)/110 0(1)/80 - - 4468 3932 VDM 0(1)/55 0(4)/140 0(2)/84 0(4)/81 6618 3310 3084 2841 SVDM 10/50 0(4)/50 0(5)40 0(2)/50 - 3904 2899 2491 EFM 0(3)/20 0(4)/46 0(5)/39 0(4)/103 1244 1370 943 924 SEFM 0(3)/20 0(6)/40 0(4)/40 0(5)/40 1198 1500 729 1221 Giá trị trung bình/ Số lần lượng giá Độ lệch trung bình FIT RANK SPAT TOUR FIT RANK 1-pt 38.1 39.4 48.4 49.9 43.0/6412 50.5/5702 44.2/5716 67.7/4886 2-pt 23.6 35.9 22.3 15.9 31.2/6295 42.5/5754 41.2/5530 22.4/5835 UX 35.6 43.8 36.4 28.8 43.8/6181 45.1/5525 42.7/5860 34.5/4858 VDM 17.9 53.8 31.2 31.2 24.2/5530 39.9/5102 35.1/4831 25.2/4072 SVDM 13.2 16.4 13.3 14.5 18.0/5911 14.3/5291 10.0/4359 14.3/4489 EFM 8.3 17.2 12.6 34.5 10.5/2441 14.2/2442 8.9/2109 24.4/2046 SEFM 8.2 13.2 15.8 13.7 10.0/2361 11.0/1921 8.0/2485 SPAT 15.0/1887 TOUR Bảng 5.8: So sánh LT GA sinh cho toán 90/91 91/92 Thời gian tốt nhất/tồi Số lần lượng giá tối thiểu thu LT hoàn hảo FIT RANK SPAT TOUR FIT RANK SPAT TOUR 1-pt 13/239 39/253 43/119 62/203 - - - - 2-pt 26/140 39/182 49/103 26/226 - - - - UX 26/124 16/160 36/187 29/154 - - - - VDM 52/146 16/161 9/149 29/210 - - - - SVDM 23/84 10/80 20/79 23/83 - - - - EFM 16/119 6/98 19/92 19/138 - - - - SEFM 10/63 0(2)/43 10/69 0(1)/66 - 2220 - 1175 Giá trị trung bình/ Số lần lượng giá Độ lệch trung bình FIT RANK SPAT TOUR 1-pt 69.7 78.4 27.0 41.9 2-pt 34.7 40.3 16.7 UX 28.8 46.0 VDM 29.0 SVDM FIT RANK SPAT TOUR 104/7174 110.1/6961 72.9/6955 118.1/5228 65.9 73.4/7816 85.6/6862 72.2/6924 100.3/5914 53.6 36.7 57.8/7655 90.7/6316 116.9/5858 81.9/6230 45.8 43.7 49.8 79.0/7539 72.7/6122 67.0/6182 86.9/5290 20.6 41.6 14.7 22.0 52.2/8023 41.6/6819 47.8/6893 42.3/6177 EFM 33.3 33.5 23.9 41.5 50.4/4364 4632/3678 46.9/3626 65.6/4018 SEFM 18.4 16.7 18.8 20.4 29.7/3724 18.6/3429 34.7/2943 30.3/2852 Bảng 5.9: So sánh LT sinh GA cho toán LLT 91-92 63 92/93 Thời gian tốt nhất/tồi Số lần lượng giá tối thiểu thu LT hoàn hảo FIT RANK SPAT TOUR FIT RANK SPAT TOUR 1-pt 10/144 20/94 10/87 23/132 - - - - 2-pt 20/80 13/97 3/102 19/92 - - - - UX 16/99 9/89 16/116 16/106 - - - - VDM 0(1)/57 0(2)/100 6/59 0(1)/82 4715 4281 - 4141 SVDM 0(1)/50 10/66 0(1)/64 0(1)/49 4683 - 4493 4434 EFM 0(4)/23 0(3)/39 0(1)/46 0(3)/82 1405 1372 1595 1166 SEFM 0(3)/69 0(5)/23 0(3)/36 0(1)/30 1304 2072 1480 1356 Giá trị trung bình/ Số lần lượng giá Độ lệch trung bình FIT RANK SPAT TOUR FIT RANK SPAT TOUR 1-pt 45.9 22.1 21.4 31.9 62.7/6104 45.3/6004 51.6/5326 53.8/5648 2-pt 20.3 28.2 32.6 22.7 40.0/6273 42.4/6316 46.5/5696 40.6/51565 UX 30.0 25.6 29.5 17.3 53.7/5806 41.6/6088 44.3/5663 45.6/4811 VDM 22.7 32.2 14.7 15.5 31.8/5531 37.1/5105 37.2/4455 34.6/3965 SVDM 17.2 21.4 17.6 15.0 25.9/5430 39.6/5061 23.6/47690 27.6/5051 EFM 9.5 15.7 13.2 25.7 8.8/2980 17.0/2805 18.5/2531 22.7/2919 SEFM 21.9 9.8 12.8 9.0 16.9/2721 7.6/2676 15.2/2335 13.2/2413 Bảng 5.10: So sánh LT sinh GAs cho toán LLT 92-93 92/93 Thời gian tốt nhất/tồi Số lần lượng giá tối thiểu thu LT hoàn hảo FIT RANK SPAT TOUR FIT RANK SPAT TOUR 1-pt 25/118 25/279 29/182 42/217 - - - - 2-pt 42/209 52/169 52/245 55/149 - - - - UX 35/122 26/139 35/145 58/225 - - - - VDM 22/65 22/78 29/85 29/139 - - - - SVDM 16/82 35/102 19/159 29/79 - - - - EFM 29/92 28/205 22/292 34/132 - - - - SEFM 13/56 16/63 13/86 13/126 - - - - Giá trị trung bình/ Số lần lượng giá Độ lệch trung bình FIT RANK SPAT TOUR FIT RANK SPAT TOUR 1-pt 27.2 96.9 54.0 54.3 68.5/8259 118.3/7548 80.4/6622 95.2/6684 2-pt 57.2 42.4 60.2 35.4 89.6/7831 96.4/6703 92.3/6388 97.4/6419 UX 28.5 30.5 39.0 54.0 65.2/7308 76.9/7045 76.5/6469 107.4/5468 VDM 14.7 17.0 19.8 28.4 45.6/6403 49.7/6368 57.9/7293 67.5/5444 SVDM 17.5 22.4 40.0 14.6 45.5/7108 55.8/5999 53.7/5557 46.2/5183 EFM 21.5 49.8 79.2 31.1 56.0/4139 67.8/4605 84.2/4858 71.1/4119 SEFM 11.9 14.4 23.7 32.4 32.7/3993 37.8/3860 36.9/3121 46.2/3666 Bảng 5.11: So sánh LT sinh GAs cho toán LLT 92-93 64 Mỗi bảng 5.8, 5.9 5.10 chứa phần Phần phía trái cho biết kết tốt/ tồi sau mười lần chạy thử với cấu hình Ví dụ, bảng 5.8 cho thấy LT thu tốt nhờ sử dụng lựa chọn dựa vào thời gian lựa chọn SVDM có giá trị phạt 0, xuất vào số 10 lần chạy cấu hình kết tồi số 10 lần thử SPAT/SVDM có giá trị phạt 40 Ở phía phải bảng, thấy kết xuất nhanh sau 2899 lần lượng giá (các số ghi lại mà kết tốt tìm ra) Ở phần trái bảng độ lệch chuẩn giá trị phạt sau 10 lần thử SPAT/SVDM 13.3 Cuối cùng, phần phải điểm phạt trung bình 10 lần thử 20 số lần lượng giá trung bình để tìm kết tốt lần thử 4359, kết lời giải tối ưu lời giải mà cải thiện sau 1000 lần lượng giá liên tục hay đạt tới mức lượng giá tối đa 10000 lần Chúng ta thấy số nhận định sau (1) toán 93/94 toán khó nhất, toán 91/92 đứng thứ toán 90/91 toán dễ (2) lợi ích từ việc sử dụng GAs để xếp lịch rõ ràng Trong toán 90/ 91 91/92 (khi mà lịch thi ngưới xếp có sẵn để so sánh) kết tổng thể GA tốt nhiều so với người LT mà GAs sinh tốt nhiều so với LT người tạo Chúng ta nhận xét việc chọn toán tử phương thức lựa chọn Kết cuối tốt kết hợp lần thử này, số lượng LT tối ưu thu được, có lẽ việc kết hợp lựa chọn xếp hạng (rank-based selection) SEFM, rõ ràng việc chọn toán tử có ảnh hưởng lớn tới kết so với việc lựa chọn phương pháp lựa chọn Bằng cách đếm số lần thủ LT tối ưu tìm thấy (với tất toán) xếp hạng toán tử sau: SEFM(33), EFM(27), VDM(15), SVDM(14), 2-pt(4), UX(3) 1-pt Nhận xét mang tính chất tương đối cho thấy SEFM lựa chọn tốt nhất, tiếp EFM, VDM, SVDM Trong toán tử truyền thống không hiệu Một xếp hạng mang tính chất tương đối khác phương thức lựa chọn là: RANK(31), TOUR(24), SPAT(23) FIT(18) 65 Về mặt tốc độ, lựa chọn dựa tournament tìm tối ưu nhanh lựa chọn dựa độ thích nghi chậm Toán tử nhanh rõ ràng SEFM Mặc dù VDM SVDM rẻ nhiều mặt tính toán so với EFM SEFM EFM SEFM cho phép tăng tốc độ tính toán đáng kể giảm số lần lượng giá trước hội tụ (hay tìm thấy LT tối ưu sớm) Hơn SVDM cho kết tốt VDM SEFM tố EFM chất lượng trung bình lời giải thu số lần lượng giá cần thiết Ví dụ SVDM/ TOUR tốt VDM/TOUR SEFM/TOUR tốt EFM/TOUR toán 90/91 mặt chất lượng lời giải tốt 80% 85% theo Student’s t-test Đặc biệt SEFM tạo lời giải tối ưu lần toán 91/92 tất phương pháp khác tìm chí lời giải tối ưu 66 KẾT LUẬN Sau thực đề tài em nghiên cứu kiến thức lý thuyết Giải thuật di truyền hiểu cách cài đặt GAs cho toán Lập Lịch Thi Đề tài đặt tảng để em nghiên cứu sâu GAs ứng dụng toán thực tế khác, toán NP-khó NP-đầy đủ Đề tài em đạt thành công có giúp đỡ thầy cô bạn Em xin chân thành cảm ơn giúp đỡ thầy cô bạn, em xin đặc biệt chân thành cảm ơn cô giáo Th.S Đỗ Thị Tâm Do nhiều lý khách quan thời gian hoàn thành đề tài ngắn nên đề tài tránh khỏi nhiều hạn chế Trong thời gian tới em tiếp tục nghiên cứu để tiếp tục nghiên cứu sâu lĩnh vực để áp dụng vào giải toán thực tế Em mong nhận ý kiến đóng góp thầy cô bạn 67 NHẬN XÉT CỦA GIÁO VIÊN ……………………………………………………… Thái Nguyên, 10/05/2008 Giáo viên hướng dẫn Ths Đỗ Thị Tâm 68 TÀI LIỆU THAM KHẢO Trí tuệ nhân tạo - Lập trình tiến hóa - Nguyễn Đình Thúc chủ biên An Introduction to Genetic Algorithms - Melanie Mitchell Practical Genetic Algorithms - Randy L Haupt Sue Ellen Haupt Evolutionary Algorithms in Theory and Practice - Dr Thomas Back www.watt.com Genetic Algorithms in Timetabling and Scheduling - Dr Hsiao-Lan Fang A guide to Genetic Algorithms in TimeTabling - Emma Collingwood, Peter Ross and Dave Corne 69 [...]... lời giải bất kỳ là lời giải tốt; chúng không sử dụng công cụ đánh giá chất lượng nào ngoài các ràng buộc cứng Tuy nhiên có tồn tại những thuật toán chính xác cho bài toán LLT nhỏ ví dụ như thuật toán tô màu chính xác được giới thi u bởi tác giải Korman Thuật toán này có thể dùng cho những bài 28 toán LLT nhỏ Sau đó tác giải Cangalovie và Schreuder đề xuất một thuật toán tô màu để giải quyết bài toán. .. lời giải khả thi làm cha mẹ và áp dụng các toán tử đột biến hay lai ghép để kết hợp các bit của 2 cha mẹ để sinh ra một hay nhiều con Tập lời giải mới được đánh giá, và chu kỳ như vậy lặp lại cho tới khi lời giải thỏa mãn yêu cầu được tìm thấy 2.1 Bài toán Lập Lịch Thi (LLT) Một bài toán LLT là một dạng bài toán mà các sự kiện (môn thi) cần được sắp xếp vào một số khoảng thời gian (time slot) và tuân... như là một kỹ thuật chia để trị Để giải bài toán chúng ta cần chia nhỏ nó ra làm nhiều bài toán con độc lập Khi mà không biết bài toán con nào cần phải giải đầu tiên thì chúng ta giải tất cả các bài toán con và giữ kết quả thu được để sử dụng trong lần tiếp theo Với các bài toán LLT lớn thì cách tiếp cận này không hiệu quả Nhánh và cận: nhánh và cận (Branch and Bound) cũng là một kỹ thuật liệt kê không... biến trung bình là 0.001 và 0.399 cho tái sinh 24 CHƯƠNG 2 GIỚI THI U VỀ BÀI TOÁN LẬP LỊCH THI Như chúng ta đã biết, GAs là một nhóm phương pháp giải quyết bài toán nhờ sử dụng các thuật toán dựa theo quá trình tiến hóa theo lý thuyết tiến hóa của Darwin Trong GAs, kết quả của một tập lời giải khả thi cho bài toán (gọi là các NST) được đánh giá và sắp xếp, sau đó những lời giải mới được sinh ra bằng... pháp giải bài toán LLT lớn là rất rõ ràng, ví dụ như có e môn thi cần sắp xếp vào t khoảng thời gian khác nhau thì sẽ có te lời giải khả thi, mỗi lời giải có mức độ tối ưu khác nhau phụ thuộc vào các ràng buộc của bài toán Các phương pháp LLT thông thường quan tâm tới việc tìm thời gian biểu ngắn nhất thỏa mãn tất cả các ràng buộc, thường sử dụng thuật toán tô màu (graph-colouring algorithm) và ít... chia nhỏ bài toán lớn thành 2 hay nhiều bài toán con, và (tìm) cận là quá trình tính toán cận dưới của lời giải tối ưu của bài toán con đang giải Các thủ tục có thể biến đổi đa dạng phụ thuộc chủ yếu vào thủ tục tìm nhánh và việc sinh ra các cận Với những bài toán LLT lớn thì những cách tiếp cận này cũng không hiệu quả 29 2.2.2.2 Tìm kiếm heuristic Các luật heuristic nói chung: Vì hầu hết các bài toán. .. như là phân bổ khoảng thời gian và các phòng học đồng thời và một số điều chỉnh sự vi phạm theo xác suất và các toán tử đột biến không liên quan sự kiện được giới thi u trong các phần tiếp theo 33 CHƯƠNG 3 SỬ DỤNG GAs GIẢI QUYẾT BÀI TOÁN LLT 3.1 Phát biểu bài toán Bài toán LLT đơn giản nhất có thể xem như một bài toán xếp v sự kiện (môn thi) vào s khoảng thời gian (time slots) Tổng quan hơn ta có định... thuật ngữ trong luyện thép Có rất nhiều ứng dụng của SA trong lịch sử phát triển của vận trù học Ví dụ như ứng dụng của các tác giả Eglese và Rand; Dowsland, nhưng họ xem xét bài toán LLT là bài toán không có lời giải thỏa đáng vậy nên họ đã phá vỡ một số ràng buộc Tác giả Abramson áp dụng SA vào bài toán LLT sử dụng trên cả máy tuần tự và máy song song… 30 Tìm kiếm Tabu: Các dạng mới của tìm kiếm... Trong giải thuật di truyền, đột biến là một toán tử di truyền được dùng để duy trì tính đa dạng di truyền từ một thế hệ của một quần thể cho thế hệ tiếp sau Đột biến là sự biến đổi một hay nhiều gen của cá thể được chọn, nó tương tự như đột biến của sinh học Mục đích của sự đột biến trong giải thuật di truyền là để giải thuật tránh gặp cực tiểu địa phương hay là hội tụ cục bộ Cũng giống như lai ghép, toán. .. giờ quá tải và giờ quá nhàn rỗi Do vậy họ sử dụng các toán tử lọc (filtering operators) để giúp gải quyết những vấn đề này Họ nhận thấy rằng các tiếp cận của họ có thể thỏa mãn tất cả các ràng buộc cứng của bài toán LLT cho trường cấp 3, và làm tiền đề để tiến tới thỏa mãn các ràng buộc mềm Tác giải Davis giới thi u một các tiếp cận kết hợp giữa GAs và thuật toán tham ăn để giải các bài toán tô màu

Ngày đăng: 03/08/2016, 16:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan