Tiểu luận Thuật toán và phương pháp giải quyết vấn đề ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN LẬP THỜI KHOÁ BIỂU CHO TRƯỜNG HỌC

16 700 1
Tiểu luận Thuật toán và phương pháp giải quyết vấn đề ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN LẬP THỜI KHOÁ BIỂU CHO TRƯỜNG HỌC

Đ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

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Bài thu hoạch THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ Đề tài ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN LẬP THỜI KHOÁ BIỂU CHO TRƯỜNG HỌC Giảng viên: PGS. TS Đỗ Văn Nhơn Học viên: Nguyễn Thành Quân MSHV: CH1301032 GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 1 MỤC LỤC GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 2 CHƯƠNG I TỔNG QUAN I.1 Lý do chọn đề tài. Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong xã hội năng động, ngày càng hiện đại hóa. Vì vậy, việc tin học hóa vào một số lĩnh vực ứng dụng là hoàn toàn có thể và phù hợp với xu hướng hiện nay. Xuất phát từ nhu cầu thực tế đó, việc xây dựng một chương trình sắp thời khóa biểu thực hành là rất cần thiết, nhằm thay thế một số công việc mà trước đó phải thao tác bằng tay trên giấy tờ đạt hiệu quả không cao, mất nhiều thời gian. Bài toán 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 tối ưu nhất. I.2 Mục tiêu của đề tài. Thông qua đề tài sẽ hiểu rõ hơn về bài toán lập lịch các các phương pháp tiếp cận giải bài toán lập lịch, qua đó có sự so sánh và đánh giá các thuật toán. Tìm hiểu sâu về thuật giải di truyền và ứng dụng vào bài toán thời khóa biểu nhằm có những cải tiến trong các bước của thuật giải di truyền với bài toán cụ thể như việc biểu diễn bài toán, cách chọn cá thể tốt, cách xây dựng hàm đánh giá, GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 3 CHƯƠNG II KIẾN THỨC NỀN TẢNG 2.1 Khái niệm Giải thuật di truyền (hay giải thuật tiến hóa nói chung) là một trong những phát triển quan trọng của những nhà nghiên cứu về tính toán ứng dụng cuối thế kỷ trước trong việc giải xấp xỉ các bài toán tối ưu toàn cục. Việc khai thác nguyên lí tiến hóa như là một định hướng heuristics đã giúp cho giải thuật di truyền giải quyết hiệu quả các bài toán tối ưu (với các lời giải chấp nhận được) mà không cần sử dụng các điều kiện truyền thống (liên tục hay khả vi) như là điều kiện tiên quyết. Một trong những đặc tính quan trọng của giải thuật di truyền là làm việc theo quần thể các giải pháp. Việc tìm kiếm bây giờ được thực hiện song song song trên nhiều điểm (multipoints). Tuy nhiên, đây không phải là là thuật toán tìm kiếm đa điểm đơn thuần vì các điểm có tương tác với nhau theo nguyên lí tiến hóa tự nhiên. Trong ngữ cảnh sử dụng giải thuật di truyền, người ta có thể dùng khái niệm “cá thể” tương đương với khái niệm “giải pháp”. 2.2 Các thành phần. Các bước cơ bản của giải thuật di truyền được mô tả như sau: • Bước 1: t=0; Khởi tạo P(t) = {x1,x2,. . . ,xN}, với N là tổng số lượng cá thể. • Bước 2: Tính giá trị các hàm mục tiêu cho P(t). • Bước 3: Tạo bể lai ghép MP = se{P(t)} với se là toán tử lựa chọn. • Bước 4: Xác định P’(t) = cr{MP}, với cr là toán tử lai ghép. • Bước 5: Xác định P”(t) = mu{P’(t)}, với mu là toán tử đột biến. • Bước 6: Tính giá trị các hàm mục tiêu cho P”(t) • Bước 7: Xác định P(t+1) = P”(t) và đặt t = t+1 • Bước 8: Quay lại Bước 3, nếu điều kiện dừng chưa thỏa mãn. Thuật toán di truyền gồm có bốn quy luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên như sau: 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ẹ. Phép lai này có thể mô tả như sau: Chọn ngẫu nhiên hai hay nhiều cá thể trong quần thể. Giả sử chuỗi nhiễm sắc thể của cha và mẹ đều có chiều dài là m. Tìm điểm lai bằng cách tạo ngẫu nhiên một con số GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 4 từ 1 đến m-1. Như vậy, điểm lai này sẽ chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm nhiễm sắc thể con là m1 và m2. Hai chuỗi nhiễm sắc thể con lúc này sẽ là m11+m22 và m21+m12. Đưa hai chuỗi nhiễm sắc thể con vào quần thể để tiếp tục tham gia quá trình tiến hóa 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. Phép đột biến có thể mô tả như sau: Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m Thay đổi giá trị của gen thứ k Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn) 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 tái sinh có thể mô phỏng như sau: Tính độ thích nghi của từng cá thể trong quần thể, lập bảng cộng dồn các giá trị thích nghi đó (theo thứ tự gán cho từng cá thể) ta được tổng độ thích nghi. Giả sử quần thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Ft.Tổng độ thích nghi là Fm Tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 đến Fm Chọn cá thể k đầu tiên thỏa mãn F ≥ Ft đưa vào quần thể của thế hệ mới. 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. Phép chọn được mô tả như sau: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất. GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 5 Cấu trúc thuật giải di truyền tổng quát Bắt đầu t =0; Khởi tạo P(t) Tính độ thích nghi cho các cá thể thuộc P(t); Khi (điều kiện dừng chưa thỏa) lặp t = t + 1; Chọn lọc P(t) Lai P(t) Đột biến P(t) Hết lặp GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 6 Kết thúc 2.3 Các công thức. - Tính độ thích nghi eval (vi) của mỗi nhiễm sắc thể v i (i =1 kích thước quần thể): trong đó f(vi là hàm mục tiêu) - Tìm tổng giá trị thích nghi của quần thể - F= - Tính xác suất chọn pi cho mỗi nhiễm sắc thể vi - Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe rulet kích thước quần thể lần. Mỗi lần chọn ra một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới theo cách sau: - Phát sinh một số ngẫu nhiên r trong khoảng [0, 1] .Nếu r < q1thì chọn nhiễm sắc thể v1, ngược lại chọn nhiễm sắc thể vi (2 ≤ i ≤ kích thước quần thể) sao cho qi-1 < r ≤ qi. GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 7 CHƯƠNG III BÀI TOÁN ỨNG DỤNG Ứng dụng của thuật giải di truyền trong việc lập thời khoá biểu cho trường học 3.1 Bài toán. Một tập các chương trình đào tạo: CT={CT1, CT2, …, CTl}. Mỗi chương trình gồm những môn học theo kế hoạch của một ngành học, cho một khóa học. Một tập các môn học: M={M1, M2, …, Mt}. Mỗi môn học gồm số tín chỉ, danh sách các chương trình học môn học đó. Một tập các nhóm sinh viên (Lớp học phần): SV={SV1, SV2, …, SVn}. Mỗi lớp học phần gồm môn học, giảng viên dạy, số sinh viên học (dự kiến hoặc chính thức). • Một tập các phòng học:P={P1, P2, …, Pm}. Mỗi phòng học có số chỗ ngồi. • Một tập các giảng viên: G={G1, G2, …, Gk}. • Một tập các tiết học trong tuần: T={T1, T2, …, Th} • Tập phân công giáo viên dạy: E={ (SVi, Mi, Gi)| SVi∈ SV, Mi∈M, Gi∈G 3.2 Các ràng buộc. Xếp lịch học cho các lớp vào các phòng học tại các thời điểm sao cho thỏa mãn các điều kiện sau: • (C1): Không có hai lớp học cùng một phòng tại một thời điểm. • (C2): Một giáo viên không dạy hai lớp tại cùng một thời điểm. • (C3): Xếp các lớp học vào các phòng học đảm bảo đủ chỗ ngồi cho sinh viên. • (C4): Xếp các tiết học đảm bảo đủ số tiết cho mỗi môn học. • (C5): Không xếp các môn học của cùng một chương trình đào tạo vào cùng một tiết học. Yêu cầu của bài toán tìm lời giải của bài toán sao cho thoả mãn tất cả các ràng buộc {C}. 3.3 Tiếp cận theo thuật giải di truyền. Bước 1: Biểu diễn nhiễm sắc thể Một thời khóa biểu được biểu diễn là ma trận X mxh , trong đó h, m là số các tiết học trong tuần và sốphòng học trong một cơ sở. Với mỗi giá trị của ma trận là một đối tượng sự kiện, mỗi sự kiện gồm có giảng viên, lớp học phần và môn học và đây cũng là một giá trị trong tập phân công giảng dạy đã được định nghĩa như trên. Với mỗi cách sắp xếp các gen vào nhiễm sắc thể cho ta một nhiễm sắc thể(cá thể) mới vào quần thể khởi tạo ban đầu. Khi khởi tạo quần thể phải khởi tạo tập dữ liệu dữ liệu ban đầu, bao GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 8 gồm tập các yêu cầu bài toán, khởi tạo tập phân công giảng dạy. Thuật toán khởi tạo quần thể. ProcedurePopulation() Input:N //Số lượng cá thể yêu cầu trong quần thể Output:Po //Quần thể các cá thể Begin While (i ≤ N) do P=Individual() //tạo một cá thể mới Po=Po ∪P //đặt cá thể mới vào quần thể i=i++ Endwhile End Trong đó, Individual() là hàm tạo ra cá thể mới, nó được thực hiện trên ý tưởng, với mỗi Tj trong tập T và với mỗi Pi trong tập P. Chọn ngẫu nhiên một sự kiện e thuộc tập sự kiện (tập phân công giảng dạy) đặt vào vị trí trống (Tj,Pi) và loại bỏ sự kiện e ra khỏi tập sự kiện. Thực hiện cho đến khi hết số sự kiện trong tập phân công hoặc các vị trí (Tj,Pi) đã xét hết. Thuật toán sinh cá thể cho quần thể Function Individual() Input: tập các phân công giảng dạy E={e1, e2, e3, … en}, {T}, {P}//n: số sự kiện Output:TKB //Thời khoá biểu (cá thể) Begin For each Tj ∈{T} do For each Pi ∈{P} do e ← {E} //lấy ngẫu nhiên một sự kiện e GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 9 TKB[Tj][Pi] = e //Đặt vào thời khoá biểu E <-{E} - e //Loại bỏ sự kiện e ra khỏi tập sự kiện Endfor Endfor ReturnTKB End Lai ghép Ý tưởng của phương pháp lai ghép, với mỗi giá trị của mặt nạ, nếu mặt nạcó giá trịlà 1 thì cá thể con sẽ nhận gen của cha (mẹ), ngược lại là gen của mẹ(cha). Các bước thực hiện như sau: Bước 1: Xét tuần tự mỗi giá trị g[i,j]∈M (M là ma trận nhị phân làm mặt nạ, i=1 h,j=1 m). Với mỗi giá trị g[i,j] kiểm tra: Nếu: g[i,j]=1 • Tìm gen x thuộc cá thể cha chưa được xét và không có trong cá thể con. Đặt x vào cá thể con. • Đánh dấu đã xét gen x trong cá thể cha. Ngược lại: Nếu g[i,j]=0 • Tìm gen x thuộc cá thể mẹ chưa được xét và không có trong cá thể con. Đặt x vào cá thể con. • Đánh dấu đã xét gen x trong cá thể mẹ. Bước 2. Lặp lại bước 1, cho đến khi các phần tử của mặt nạ M đã được xét. GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 10 [...]... tưởng giải quyết bài toán lập thời khoá biểu chạy được trên máy tính - Tìm hiểu ứng dụng thuật giải di truyền cho nhiều dạng bài toán lập lịch - Sắp thời khóa biểu theo nhiều mức độ ưu tiên hơn và thực hiện thêm 1 số tính nay để người dùng dễ quản lý Tài liệu tham khảo: [1] PGS.TS Đỗ Văn Nhơn, Algorithms and Problem solving methods [2] GS.TS Hoàng Kiếm, Lê Hoàng Thái, Thuật giải Di Truyền – Cách giải. .. xét (CT[k]=true) o Lặp lại cho đến khi xét hết các phòng Bước 2: Lặp lại bước 1, cho đến khi các tiết học đều xét Bước 3: Trả về kết quả, và dừng thuật toán GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 15 CHƯƠNG IV - KẾT LUẬN 4.1 Kết luận Tóm tắt một số kiến thức cơ bản về giải thuật di truyền Thực hiện giải quyết bài toán lập lịch theo hướng tiếp cận thuật giải di truyền 4.2 Hướng phát triển...Bước 3: Kết thúc thuật toán và trả về kết quả Đột biến: Trong bài toán, nhiễm sắc thể đại di n cho lời giải của bài toán và mỗi gen trong nhiễm sắc thể có một xác suất đột biến là p, ví dụ: p = 0.03 tức với 100 cá thể trong quần thể thì có 0.03*100 = 3 cá thể sẽ bị đột biến trong mỗi thế hệ, và quá trình đột biến được thực hiện bằng phương pháp đột biến tương hỗ bằng cách hoán... [ ]chứa số tiết học đã được xếp lịch tương ứng với từng môn, mỗi giá trị của mảng đại di n cho một môn học, ví dụ dem_tiet[1] đại di n cho môn học m1, dem_tiet[2] cho môn m2, …m1,m2 ∈ {M} Bước 1: Với mỗi giá trị TKB[i,j], {i=1 m, j=1 h} • • Xác định môn học, mk∈ TKB [i,j] Đếm số lượng tiết học tương ứng của môn(m k), và lưu trong mảng dem_tiet [mk]= dem_tiet[mk]+1 • Lặp lại bước 1, cho đến khi các... tiết học/ tuần, m: số phòng học) Hoán vị hai cặp gen của cá thể x tại hai vị trí (vt1, vt2) và( vt3, vt4) Bước 3: Lặp lại bước 2, cho đến khi hết số cá thể bị đột biến GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 11 Hàm đánh giá: Một thời khoá biểu chấp nhận được thì phải thoả mãn tất cả các ràng buộc, trong bài toán chúng ta định nghĩa tập các ràng buộc C = {C 1, C2, C3, C4, C5} Tương ứng, xây... Lặp lại bước 1, cho đến khi các tiết học đều xét Bước 3: Trả về kết quả, và kết thúc thuật toán Ràng buộc (C3), mỗi phòng học có sức chứa và đặc điểm riêng của phòng, vì vậy sắp xếp lớp học vào các phòng sao cho đảm bảo chỗ ngồi cho sinh viên Đối với yêu cầu, thì mỗi thời khoá biểu phải thoả mãn vềsức chứa, vì vậy phải kiểm tra sự thoả mãn của ràng buộc Các bước thực hiện kiểm tra như sau: Bước 1:... phòng học thứ i • So sánh sĩ số của nhóm sinh viên và khả năng chứa phòng học thứ i - Nếu sĩ số lớp học phần (nhóm sinh viên) > sức chứa của phòng học thứ i thì tăng giá trị phạt Bước 2: Lặp bước 1, cho đến khi tất cả các giá trị đều được xét Bước 3: Trả về kết quả, dừng thuật toán GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 13 Ràng buộc (C4), các bước thực hiện kiểm tra số lượng các tiết học. .. Với mỗi tiết học Ti ∈ {T}, (i=1 h) • • o o o Đánh dấu tất cả các giáo viên là chưa xét Với mỗi phòng học Pj ∈ {P} , (j=1 m) Lấy thông tin giáo viên tại phòng Pj (gv ∈ TKB[i,j]) Nếu gv đã được xét thì tăng giá trị phạt Ngược lại, đánh dấu gv là đã xét Lặp lại cho đến khi xét hết các phòng Bước 2: Lặp lại bước 1, cho đến khi các tiết học đều xét Bước 3: Trả về kết quả, và kết thúc thuật toán Ràng buộc... xét Bước 2: Với mỗi môn {M} mi∈ ,i=1 t • So sánh, nếu số tiết quy định học của môn mi>dem_tiet[mi] số tiết được xếp lịch thì tăng giá trị phạt • Lặp bước 2, cho đến khi các môn điều được xét Bước 3: Trả về kết quả, dừng thuật toán Ràng buộc (C5) Thời khoá biểu được phân yêu cầu các môn trong một chương trình đào tạo phải có thời gian học khác nhau (C5) Các bước thực hiện kiểm tra vi phạm của ràng buộc... lượng chương trình, mỗi giá trị của mảng đại di n cho một chương trình, ví dụ CT[1] đại di n cho CT1, CT[2] đại di n CT2, (CT1,CT2∈{CT}) Bước 1: Với mỗi tiết học Ti ∈ {T} , (i=1 h) • Đánh dấu tất cảcác chương trình là chưa xét (CT[k]=false, k=1 l) GVHD: PGS.TS Đỗ Văn Nhơn HV: Nguyễn Thành Quân Page 14 • Với mỗi phòng học Pj ∈ {P} , (j=1 m) o Lấy thông tin môn học (mon) tại phòng Pj (mon ∈TKB[i,j]) o Xác . ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Bài thu hoạch THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ Đề tài ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN LẬP THỜI KHOÁ BIỂU. đề tài sẽ hiểu rõ hơn về bài toán lập lịch các các phương pháp tiếp cận giải bài toán lập lịch, qua đó có sự so sánh và đánh giá các thuật toán. Tìm hiểu sâu về thuật giải di truyền và ứng dụng. thực hoá ý tưởng giải quyết bài toán lập thời khoá biểu chạy được trên máy tính. - Tìm hiểu ứng dụng thuật giải di truyền cho nhiều dạng bài toán lập lịch. - Sắp thời khóa biểu theo nhiều mức

Ngày đăng: 23/05/2015, 00:11

Từ khóa liên quan

Mục lục

  • CHƯƠNG I TỔNG QUAN

    • I.1 Lý do chọn đề tài.

    • I.2 Mục tiêu của đề tài.

    • CHƯƠNG II KIẾN THỨC NỀN TẢNG

      • 2.1 Khái niệm

      • 2.2 Các thành phần.

      • 2.3 Các công thức.

      • CHƯƠNG III BÀI TOÁN ỨNG DỤNG

        • 3.1 Bài toán.

        • 3.2 Các ràng buộc.

        • 3.3 Tiếp cận theo thuật giải di truyền.

        • CHƯƠNG IV KẾT LUẬN

          • 4.1 Kết luận .

          • 4.2 Hướng phát triển.

          • Tài liệu tham khảo:

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

  • Đang cập nhật ...

Tài liệu liên quan