0

Nghiên cứu sử dụng giải thuật di truyền lập thời khóa biểu cho trường trung học phổ thông

85 1 0
  • Nghiên cứu sử dụng giải thuật di truyền lập thời khóa biểu cho trường trung học phổ thông

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

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 12/05/2022, 10:58

I H C QU C GIA TP HCM I H C BÁCH KHOA TPHCM NGHIÊN C U S D NG GI I THU T DI TRUY N L P TH I KHĨA BI NG TRUNG H C PH THƠNG Chun ngành: K thu t công nghi p Mã s : 8520117 LU TH TP H CHÍ MINH, tháng 01 Cơng trì Cán b c hồn thành t i: i h c Bách Khoa ng d n khoa h c: - HCM Ng c Hi n, TS Nguy Cán b ch m nh n xét 1: TS Nguy n V ng Phúc Nguyên Cán b ch m nh n xét 2: TS Nguy n H u Th Lu n th cb ov t i ng Thành ph n H i i h c Bách Khoa - n th (Ghi rõ h , tên, h c hàm, h c v cùa h i HCM ngày m: ng ch m b o v lu n th Ch t ch: TS Lê Song Thanh Qu nh cB u y viên: Ng c Hi n Ph n bi n 1: TS Nguy n V ng Phúc Nguyên Ph n bi n 2: TS Nguy n H u Th Xác nh n cùa Ch t ch H sau lu CH T CH H ánh giá LV c s a ch a (n u có) NG TS Lê Song Thanh Qu nh ng khoa qu n lý chuyên ngành i - - NHI M V LU H tên h c viên: MSHV: 1970613 07/10/1996 nh Chuyên ngành: K thu t Công nghi p Mã s : 8520117 I TÀI Nghiên c u s d ng gi i thu t di truy n l p th i khóa bi ng trung h c ph thông Study of genetic algorithms for solving a high school timetabling problem NHI M V VÀ N I DUNG : M c tiêu c truy n ng d ng c xây d ng h th ng x p th i khóa bi u (TKB) cho ng trung h c ph thông (THPT) L y m a bàn qu n Bình Tân, TP HCM cơng tác giáo v m t gi i thu nhi m v t tài tìm hi u gi i thu t di ng h p c th t i m ng THPT kh o sát, phân tích v t h th ng l p l ch hoàn ch nh, t gi i toán x p TKB t là: NV1- Nghiên c th c hi n m c tiêu này, m c a toán x p TKB ng THPT, gi i pháp vi c xây d ng tri n khai h th ng; NV2- gi i thu t di truy n vào toán x p TKB TP HCM II NGÀY GIAO NHI M V : 15/08/2021 III NGÀY HOÀN THÀNH NHI M V : 30/12/2021 IV CÁN B Ng c Hi n, TS Nguy Tp HCM, ngày tháng Ng c Hi n ng d ng ng THPT; NV3- Tri n khai th c nghi m v i b d li u x p TKB t NG D N: xu t TS Nguy NG KHOA 21 ii L IC Tôi g i l i c n th y cô thu c b môn K thu t H Th ng Công Nghi p - - i h c Bách Khoa - i h c Qu c gia TP.HCM v i gi ng, giáo trình, báo, tài li u tham kh o Th y Cô cung c s truy c bi t t kinh nghi m quý báu c a Th y Cơ b mơn su t q trình h c t p giúp tơi tìm hi u gi i quy t v Th Ng c Hi n - B Môn K thu t H Th ng Công Nghi p - ng c thu n l i, i h c Bách Khoa - i h c Qu ng d n su t trình th c hi u ki n thu n l i c a Th y Tôi xin g i l i c v k thu t l p trình, tài, hồn thành lu n b n Nguy i h c Cơng ngh n tình quan tâm t o t t nghi p - Khoa Công ngh thông tin - ã cung c p nh ng ki n th c n n t tham kh o th c hi n lu n nh t y il ic u ki n cho kh o sát ph ng v n, cung c p thông tin c n thi tài h tr q trình thu th p d li u giúp tơi có th hồn thành lu Sau cùng, tơi xin g i l i c t nghi p i thân b ng h c v v t ch t l n tinh th n giúp tơi có th hoàn thành t t p rèn luy n t ng ng viên ng h c i h c Bách Khoa TP.HCM M t l n n a xin trân tr ng c Tp HCM, ngày 09 tháng 01 H c viên 22 iii TÓM T T LU Ngày nay, công ngh i s ng kinh t , xã h i c a nhi u qu c gia th gi i, m t ph n không th thi u xã h ngày hi i hóa Vì v y, vi c tin h c hóa vào m t s toàn phù h p v c ng d ng hoàn ng hi n Xu t phát t nhu c u r t c n thi c xây d ng m c ng d ng th c t , m i thao tác b p th i khóa bi u h p lý m thay th m t s công vi c c hi u qu cao, t n công s c m t nhi u th i gian Bài toán x p th i khóa bi c phân lo i thu c l p NP- b nghiên c u r ng rãi nhi h c, t ng ti p c a ràng bu c, t metaheuristic.v.v Lu ch toán c tiêu, gi i thu t tham lam, gi i thu t p tr ng ti p c n r t thông d th c công ng ti p c n metaheuristic b i gi i quy t tốn x p th i khóa bi u, c xu t s d ng gi i thu t di truy n gi i quy t toán x p th i khóa bi u d a b d li ct ng trung h c ph thông t i Vi t Nam Thách th c c a tốn x p th i khóa bi TP.HCM s bùng n t h p s i gian yêu c ch p nh a bàn ng l i gi i q l n, khơng gian tìm ki m l n, thu t tìm ki m ch y l i gi i ph i n m kho ng c Vi t vài ph n m m l p th i khóa bi u t ng ch c gi ng d y c a t ng Nghiên c u h t yêu c u th c t ng th c nghi cho th y gi i thu bi ng h c hi xu t m t s b d li u th c t K t qu th c nghi m xu t cho k t qu t t s ph n m m h tr x p th i khóa ng ph thơng hi n d a m t s ràng bu c c a toán iv ABSTRACT Nowadays, information technology has been playing an important role in the economic and social life of many countries around the world, and is an indispensable part of an increasingly modernized society Therefore, the computerization of some application areas is completely consistent with the current trend Stemming from that need, it is very necessary to build a program that arranges a reasonable schedule because it is applied in practice, the purpose is to replace some jobs that previously had to be manipulated by hand efficient, labor-intensive and time-consuming The scheduling problem is classified as NP-complete and has been widely researched for many years with approaches such as mathematical programming, constraint-based optimization, and multi-objective objective optimization, greedy algorithm, metaheuristic algorithm, etc This thesis focuses on the metaheuristic approach because this approach is very common to solve timed sorting problems, specifically the author proposes to use a genetic algorithm to solve the sorting problem The timetable is based on a data set that is unique to high schools in Vietnam The challenge of the current school scheduling problem in Ho Chi Minh City is the explosion of combinations due to the large number of solutions, the large search space, and the time required for the search algorithm The search results must be within the acceptable range In Vietnam, there are some good scheduling software, but they have not met all the actual requirements as well as the teaching organization of each school The research has built and tested the proposal on a number of real data sets Experimental results show that the proposed algorithm gives better results than some current software that supports scheduling for high schools based on some constraints of the problem v L u c a riêng Các s li u k t qu nghiên c u lu c công b b t k công trình khác M i s cho vi c th c hi n cho lu n lu c ch rõ ngu n g công b cho phép s d ng TP H c viên th c hi n cc m c vi M CL C NHI M V LU L IC i ii TÓM T T LU iii ABSTRACT iv L v DANH M C HÌNH NH viii DANH M C B NG BI U x DANH M C T VI T T T/THU T NG xi GI I THI U T NG QUAN V TÀI Gi i thi u chung nh v nghiên c u .2 M c tiêu nghiên c u ng ph m vi nghiên c u C u trúc lu LÝ THUY T VÀ PH N NGHIÊN C U lý thuy t nghiên c u liên quan Gi i thu t di truy n Các nghiên c u liên quan 15 n nghiên c u 19 PHÂN TÍCH VÀ THI T K H TH 22 ng nghiên c u 22 Th c tr ng 22 D li u vào c a toán 25 Thi t k h th ng x p th i khóa bi u .33 Bi u di n c u trúc NST 35 Kh i t o qu n th u 36 thích nghi c a cá th 40 Phép lai ghép 41 t bi n 43 Phép ch n l c 49 u ki n d ng trình ti n hóa 49 vii XÂY D NG TRUNG H C PH P TH I KHĨA BI U CHO THƠNG 50 ng th c nghi m 50 D li u th c nghi m 50 Bi ch Bi 50 phân rã ch 50 lu ng d li u (DFD) 51 K t qu th c nghi T ng quan v Ch 52 52 53 Th nghi m 59 K T LU N VÀ KI N NGH 61 K t qu tài 61 ng phát tri n, ki n ngh .62 TÀI LI U THAM KH O 63 PH L C 66 viii DANH M C HÌNH NH Hình 2.1 Mơ t c ti n hành c a gi i thu t di truy n Hình 2.2 S l a ch n NST t t nh t c Hình 2.3 t bi n 10 quy trình c a thu t tốn di truy n v ct n u ki n k t thúc 13 Hình 2.4 t ng th c th c hi n gi i quy t tốn 20 Hình 3.1 Th i khóa bi u l p 10C1 23 Hình 3.2 Th i khóa bi u l p 11B1 24 Hình 3.3 Th i khóa bi u l p 12A1 24 Hình 3.4 Thu t toán di truy n s p x p th i khóa bi u 34 Hình 3.5 C u trúc 3D c a m t NST r ng 36 c c a thu t toán kh i t o qu n th Hình 3.7 nh v ti u 39 c h c m t tu n c th cho t ng kh i 10, 11, 12 40 Hình 3.8 Quá trình phép lai ghép m ng nh t c a NST 42 c th c hi n thu t toán lai ghép m ng nh t c a NST 43 Hình 3.10 Ví d v toán t t bi i ch giáo viên) 44 c th c hi n thu i gen x lý vi ph m trùng l ch 45 Hình 3.12 Ví d v tốn t t bi Hình 3.13 Ví d khác v tốn t c th c hi n thu i v trí ti t h c) 46 t bi i v trí ti t h c) 46 i gen x lý vi ph m v s bu i h c 47 c th c hi n thu i gen cân b ng s ti t d y c a giáo viên 48 Hình 4.1 Bi phân rã ch a h th ng th i khóa bi u s xây d ng 50 ng c nh h th ng th i khóa bi u 51 58 Ch i khóa bi u Sau q trình ti n hóa di n hồn tồn, t khóa bi u hoàn ch c l i gi i t th a mãn ràng bu c t Xem th i khóa bi u theo l p: S d ng m t b th i l a ch n l p h c c n xem l ch Hình 4.11 Giao di n xem th i khóa bi u theo l p 59 Xem th i khóa bi u giáo viên: s d l a ch n giáo viên c n xem l ch Hình 4.12 Giao di n xem l ch day c a giáo viên T c ch y th nhi u l n m t b d li u th c t , k t qu cl yt c kh quan vi c gi i quy t ràng bu c c ng ràng bu c m m Qua th nghi m cho th y, tùy thu c vào h s thích nghi c a l i gi u cao hay th p mà trung bình sau 5000 t i 14000 th h ti n hóa v i th i gian th c hi n t t i phút có th cho l i gi nh t t ho c ch p c H n ch c a ng d ng m t l i gi gian lâu mà v h i t , có th q trình ti n hóa s khơng th k t thúc NST qu n th không th c l i gi i t n hóa qua r t nhi u th h v i th i t bi n thêm n thu c r t nhi u vào l i gi i tìm u 60 K t qu c: ng d ng x p th i khóa bi ng THPT l y d li u t th c t t c xây d ng d a gi i thu t di truy ng gi i quy t tr n v n ràng bu c sau: Ràng bu c c ng: M t giáo viên không d y nhi u t l p kho ng th i gian m t ti t h c di n M i l p h c ch có m t giáo viên m t ti t h c Các ti t h c ph i liên ti p nhau, khơng có ti t tr ng gi a ti t h c Các ti t c a m t môn h c ng t quãng Các ti t c a m t h c tr nh ng mơn h c có ti có nhi Các môn h c ph c t m t bu i sáng/chi u m b o s bu i h c m t tu n Các ti t c a môn h c ph mb os ng m t tu n h c Ràng bu c m m: Các mơn có nhi u ti t c c phân b u m t tu n h c S ti t d y gi a giáo viên m t tu n c n ph M t s giáo viên có nguy n v bu n c cân b ng c x p l ch d y vào m t 61 K T LU N VÀ KI N NGH K t qu tài D a nghiên c u, tìm hi u v c m c a gi i thu t di truy n ng d ng gi i quy t nh ng toán l p l ch, tác gi công ng d ng x p th i khóa bi ng th nghi m thành ng THPT v i nh ng k t qu c th sau: ng d ng v giao di n s px c l ch h c l ch d y c a giáo viên v i n, d s d ng Th i gian cho trình th c hi n x p th i khóa bi so v c rút ng u qu % Ti t ki m chi phí cho t ch c khơng ph i tr phí h c s d ng ng d ng c a bên th ba Gi m thi u th i gian công s c qu n lý nh h th ng qu d li u m b o vi c nh p d li u, qu n lý, tra c u, truy xu t d li c nhanh chóng, thu n ti n Tuy nhiên, h n ch v sót nh c ngu n l c nên tài v n m t s thi u nh: Các ràng bu c cho toán ch d ng l i t o thành m t th i khóa bi u m n, khơng q ph c t p n v i b d li u không l n, nên khơng c m t tiêu chí quan tr ng vi i thu t có kh thích nghi theo quy mô d li u c a gi i thu t d ng thu t gi i metaheuristic ph bi n khác (Tabu Search, Simulated Annealing, Harmony Search, Thu t gi gi i thu t xây d ng m t toán cho l i gi i t c k t h p 62 ng phát tri n, ki n ngh K t h p thu t gi i di truy n v i m t ho c nhi u gi i thu t tìm ki m khác, m r u qu th c hi n s k t h p so v i ch s d ng gi i thu t di truy n x p th i khóa bi u Thu th p thêm nhi u b d li u m i t i c p h ng h ti n hành ch y th c nghi li u c a l c h n ch , tác gi ch m i hoàn thành ch b n nh t, ch t m s d ng n i b th i gian t i, hy v ng toán s thêm ch ngành giáo d c TP.HCM ng h m công tác Trong c nghiên c nh thành s n ph m s d sung c 63 TÀI LI U THAM KH O [1] D de Werra, "An introduction to timetabling," European Journal of Operational Research, vol 19, no 2, pp 151-162, 1985/02/01/ 1985, doi: https://doi.org/10.1016/0377-2217(85)90167-5 [2] Q.-D Truong and T.-H Nguyen, "Gi i thu t x p th i khóa bi u ng d ng vào tốn qu n lý x p l ch thi k t thúc l p h c ph n t CanTho University Journal of Science, ih cC vol 43, 01/01 2016, doi: 10.22144/ctu.jvn.2016.254 [3] N T T M Khang, "Nghiên c u ng d ng gi i thu t Metaheuristic cho tốn x p th i khóa bi u môn h Khoa h i h c," Lu n án ti cT c gia TP H Chí Minh, 2014 [4] N B Phúc, "Thu t gi i Bees cho toán x p th i khoá bi u," lu chuyên ngành Khoa h ct cs, c gia TP H Chí Minh, 2011 [5] R Alkhatib, R Jazar, and M Golnaraghi, "Optimal design of passive linear suspension using genetic algorithm," Journal of Sound and Vibration, vol 275, pp 665-691, 08/01 2004, doi: 10.1016/j.jsv.2003.07.007 [6] timetabling problem," Hacettepe Journal of Mathematics and Statistics Volume, vol 36, pp 53-64, 01/01 2007 [7] T Baker and M Cirinei, "Brute-Force Determination of Multiprocessor Schedulability for Sets of Sporadic Hard-Deadline Tasks," in Principles of Distributed Systems, 11th International Conference, OPODIS 2007, Guadeloupe, French West Indies, 2007, pp 62-75, doi: 10.1007/978-3-540-77096-1_5 64 [8] B H Arabi, "Solving NP-complete Problems Using Genetic Algorithms," in 2016 UKSim-AMSS 18th International Conference on Computer Modelling and Simulation (UKSim), 6-8 April 2016 2016, pp 43-48, doi: 10.1109/UKSim.2016.65 [9] R E Febrita and W F Mahmudy, "Modified genetic algorithm for high school time-table scheduling with fuzzy time window," in 2017 International Conference on Sustainable Information Engineering and Technology (SIET), Batu City, Indonesia, 24-25 Nov 2017 2017, pp 88-92, doi: 10.1109/SIET.2017.8304115 [10] S Kaiafa and A P Chassiakos, "A Genetic Algorithm for Optimal Resourcedriven Project Scheduling," Procedia Engineering, vol 123, pp 260-267, 2015/01/01/ 2015, doi: https://doi.org/10.1016/j.proeng.2015.10.087 [11] M Kohshori and M Saniee Abadeh, "Hybrid Genetic Algorithms for University Course Timetabling," International Journal of Computer Science Issues, vol 9, 03/01 2012 [12] P Diaz-Gomez and D Hougen, "Initial Population for Genetic Algorithms: A Metric Approach," in Proceedings of the 2007 International Conference on Genetic and Evolutionary Methods, GEM 2007, Las Vegas, Nevada, USA, 2007, pp 43-49 [13] D Costa, "A tabu search algorithm for computing an operational timetable," European Journal of Operational Research, vol 76, no 1, pp 98-110, 1994 [14] R R Hill, "A Monte-Carlo study of genetic algorithm initial population generation methods," presented at the Proceedings of the 31st conference on Winter simulation: Simulation-a bridge to the future - Volume 1, Phoenix, Arizona, USA, 1999 https://doi.org/10.1145/324138.324430 [Online] Available: 65 [15] Z Wang, H Duan, and X Zhang, "An Improved Greedy Genetic Algorithm for Solving Travelling Salesman Problem," in 2009 Fifth International Conference on Natural Computation, 14-16 Aug 2009 2009, vol 5, pp 374-378, doi: 10.1109/ICNC.2009.504 [16] -based Genetic Algorithm for Constructing Higher Accuracy Decision Trees," in 9th International Conference on Data Science, Technology and Applications, Online Streaming, 2020, pp 328338, doi: 10.5220/0009893903280338 [17] A Hassanat, S Prasath, M Abbadi, S Abu-Qdari, and H Faris, "An Improved Genetic Algorithm with a New Initialization Mechanism Based on Regression Techniques," Information, vol 9, p 167, 07/07 2018, doi: 10.3390/info9070167 [18] M Chiarandini, L Di Gaspero, S Gualandi, and A Schaerf, "The balanced academic curriculum problem revisited," Journal of Heuristics, vol 18, no 1, pp 119-148, 2012/02/01 2012, doi: 10.1007/s10732-011-9158-2 [19] population strategy and self-adaptive member grouping," Computers & Structures, vol 86, no 11, pp 1204-1218, 2008/06/01/ 2008, doi: https://doi.org/10.1016/j.compstruc.2007.11.006 66 PH L C c s d ng Kh i t o qu n th u b ng hàm random, cách ghép ti t vào cho không vi ph m nhi u public void PhanLichMonHoc() { AppConstant c = new AppConstant(); ViTriTietHoc vt; int soTiet; ViTriNgauNhien rndTiet = new ViTriNgauNhien(); if (DSLop.Count > && DSMon.Count > 0) // Có L p có Mơn h c { foreach (LopHoc lop in DSLop.GetDanhSach()) { rndTiet.TronNgauNhien(); //Phân ng u nhiên môn h c vào ti t h c foreach (MonHoc mon in DSMon.GetDanhSach()) { bool check = false; if (lop.Khoi == 10 || lop.Khoi == 11) { if (mon.IDMon == || mon.IDMon == 11) { int thu; { Random rnd = new Random(); thu = rnd.Next(6); } while (lop.Thu[thu].Tiet[c.Tiet6].IDMon != 0); lop.Thu[thu].Tiet[c.Tiet6].IDMon = mon.IDMon; lop.Thu[thu].Tiet[c.Tiet6].TenMon = mon.Ten; lop.Thu[thu].Tiet[c.Tiet6].TietKep = mon.TietKep; lop.Thu[thu].Tiet[c.Tiet6].TietPhu = mon.TietPhu; lop.Thu[thu].Tiet[c.Tiet7].IDMon = mon.IDMon; lop.Thu[thu].Tiet[c.Tiet7].TenMon = mon.Ten; lop.Thu[thu].Tiet[c.Tiet7].TietKep = mon.TietKep; lop.Thu[thu].Tiet[c.Tiet7].TietPhu = mon.TietPhu; check = true; } } else { if (mon.IDMon == 11 || mon.IDMon == 16) { int thu; { Random rnd = new Random(); thu = rnd.Next(6); } while (lop.Thu[thu].Tiet[c.Tiet6].IDMon != 0); lop.Thu[thu].Tiet[c.Tiet6].IDMon = mon.IDMon; lop.Thu[thu].Tiet[c.Tiet6].TenMon = mon.Ten; lop.Thu[thu].Tiet[c.Tiet6].TietKep = mon.TietKep; lop.Thu[thu].Tiet[c.Tiet6].TietPhu = mon.TietPhu; lop.Thu[thu].Tiet[c.Tiet7].IDMon = mon.IDMon; 67 lop.Thu[thu].Tiet[c.Tiet7].TenMon = mon.Ten; lop.Thu[thu].Tiet[c.Tiet7].TietKep = mon.TietKep; lop.Thu[thu].Tiet[c.Tiet7].TietPhu = mon.TietPhu; check = true; } } if (!check) { soTiet = mon.GetSoTiet(lop.Khoi); for (int i = 0; i < soTiet; i++) { //Ch ch n nh ng ti t t nh { vt = rndTiet.GetNextViTri(); if (vt == null) break; } while (lop.Thu[vt.Thu].Tiet[vt.Tiet].Loai != LoaiTiet.BinhThuong); if (vt != null) { lop.Thu[vt.Thu].Tiet[vt.Tiet].IDMon = mon.IDMon; lop.Thu[vt.Thu].Tiet[vt.Tiet].TenMon = mon.Ten; lop.Thu[vt.Thu].Tiet[vt.Tiet].TietKep = mon.TietKep; lop.Thu[vt.Thu].Tiet[vt.Tiet].TietPhu = mon.TietPhu; } //else Ghi log l i khơng cịn ti phân mơn h c (s ti t môn h c l tu n) } } } } } }//PhanLichMonHoc public void GhepBuoi(Tiet tiet) { AppConstant cons = new AppConstant(); ViTriNgauNhien rndVT = new ViTriNgauNhien(); ViTriTietHoc vt; Tiet tmp = null, tietA = null, tietB = null; //bool buoiSang = tiet.Index >= cons.Tiet5 ? true : false; //Ch n m t v trí ti t h c b t k u ki ghép { vt = rndVT.GetNextViTri(); if (vt == null) break; //ko ch tmp = Thu[vt.Thu].Tiet[vt.Tiet]; //bool tmpBuoiSang = tmp.Index >= cons.Tiet5 ? true : false; //if (buoiSang != tmpBuoiSang) if (tmp.Loai == LoaiTiet.BinhThuong) if (tmp.IDMon == tiet.IDMon && tmp != tiet) { tietA = tmp; break; //ch n m t ti t b t k môn } } while (true); ti nh 68 //Ch n ti t khác bu i v trí if (tiet.Index == cons.Tiet1) tietB = Thu[tiet.Thu].Tiet[cons.Tiet2]; else if (tiet.Index == cons.Tiet7) tietB = Thu[tiet.Thu].Tiet[cons.Tiet6]; else if (tiet.Index == cons.Tiet5) tietB = Thu[tiet.Thu].Tiet[cons.Tiet4]; //else if (tiet.Index == cons.Tiet10) // tietB = Thu[tiet.Thu].Tiet[cons.Tiet9]; else if (Thu[tiet.Thu].Tiet[tiet.Index + 1].Loai == LoaiTiet.BinhThuong) tietB = Thu[tiet.Thu].Tiet[tiet.Index + 1]; else if (Thu[tiet.Thu].Tiet[tiet.Index - 1].Loai == LoaiTiet.BinhThuong) tietB = Thu[tiet.Thu].Tiet[tiet.Index - 1]; if (tietA != null && tietB != null) i n i dung (Môn, GV) { tietA.SwapNoiDungTiet(tietB); tietA.LoaiViPham = LoaiViPham.DangXuLy; tietB.LoaiViPham = LoaiViPham.DangXuLy; } } public void TachBuoi(Tiet tiet) { AppConstant cons = new AppConstant(); ViTriNgauNhien rndVT = new ViTriNgauNhien(); ViTriTietHoc vt; Tiet tmp = null, tietA = null; //Ch n m t v trí ti t h c b t k u ki tách { vt = rndVT.GetNextViTri(); if (vt == null) break; //ko ch tmp = Thu[vt.Thu].Tiet[vt.Tiet]; if (tmp.Loai == LoaiTiet.BinhThuong) if (tmp.Thu != tiet.Thu && tmp.IDMon != tiet.IDMon) { tietA = tmp; break; //ch n m t ti t b t k không vi ph m, không ph i ti t kép, khác th , khác môn } } while (true); if (tietA != null) i n i dung (Môn, GV) { tietA.SwapNoiDungTiet(tiet); tietA.LoaiViPham = LoaiViPham.DangXuLy; tiet.LoaiViPham = LoaiViPham.DangXuLy; } } Tính h s thích nghi 69 public float TinhDoThichNghi() { HeSoThichNghi = 0; //int tongTiet, tongTietViPham; TongTiet = 0; TongTietHopLe = 0; TongTietViPham = 0; if (DSLop.Count > && DSMon.Count > 0) // Có L p có Mơn h c { //Xóa h t vi ph tính l i foreach (LopHoc lop in DSLop.GetDanhSach()) { foreach (Thu thu in lop.Thu) foreach (Tiet tiet in thu.Tiet) tiet.LoaiViPham = LoaiViPham.KhongViPham; lop.TongTietHopLe = lop.TongTiet; lop.TongTietViPham = 0; } //Ki m tra thi u giáo viên foreach (LopHoc lop in DSLop.GetDanhSach()) foreach (Thu thu in lop.Thu) foreach (Tiet tiet in thu.Tiet.Take(5)) if (tiet.Loai == LoaiTiet.BinhThuong && tiet.IDGV == 0) tiet.LoaiViPham = LoaiViPham.ThieuGiaoVien; //Ki m tra trùng l ch giáo viên foreach (LopHoc lop in DSLop.GetDanhSach()) foreach (Thu thu in lop.Thu) foreach (Tiet tiet in thu.Tiet) if (tiet.Loai == LoaiTiet.BinhThuong && tiet.IDGV > 0) KiemTraTrungLich(tiet, lop); //Ki m tra vi ph m s bu i s ti t foreach (LopHoc lop in DSLop.GetDanhSach()) { foreach (MonHoc mon in DSMon.GetDanhSach()) { lop.ViPhamSoTiet(mon); lop.ViPhamSoBuoi(mon); lop.ViPhamTachTietKep(mon); } lop.TinhSoTietViPham(); TongTiet += lop.TongTiet; TongTietHopLe += lop.TongTietHopLe; TongTietViPham += lop.TongTietViPham; } } if (TongTiet > 0) HeSoThichNghi = ((float)(TongTiet - TongTietViPham)) / ((float)TongTiet); return HeSoThichNghi; } 70 Thu t bi n (x lý ti t vi ph m) if (tietB.IDGV != tiet.IDGV && tietB.IDMon != tiet.IDMon)//Khác giáo viên môn h n chuy n { if (!TrungLichGiaoVien(lop, tietB.Thu, tietB.Index, tiet.IDGV))//Không trùng l ch v trí m i { if (!TrungLichGiaoVien(lop, tiet.Thu, tiet.Index, tietB.IDGV))//Khơng trùng l ch v trí m i { tiet.SwapNoiDungTiet(tietB); tiet.LoaiViPham = LoaiViPham.DangXuLy; tietB.LoaiViPham = LoaiViPham.DangXuLy; break; } } /*else { //Thay thông tin giáo viên khác GVDayMonHoc day = lop.DSDayHoc.GetItemBangMaMon(tiet.IDMon); GVDayMonHoc dayNST = DSDayHoc.GetItemBangMaMonMaLop(tiet.IDMon, lop.IDLop); Random rnd = new Random(); int length = DSGiaoVien.GetDanhSach().Where(m => m.IDGV != tiet.IDGV && m.IDMon == tiet.IDMon).Count(); GiaoVien gv = DSGiaoVien.GetDanhSach().Where(m => m.IDGV != tiet.IDGV && m.IDMon == tiet.IDMon).ElementAt(rnd.Next(length)); GiaoVien gvCu = DSGiaoVien.GetDanhSach().FirstOrDefault(m => m.IDGV == tiet.IDGV); //day.IDLop = lop.IDLop; //day.IDMon = mon.IDMon; day.IDGV = gv.IDGV; dayNST.IDGV = gv.IDGV; //day.TenLop = lop.TenLop; //day.TenMon = mon.Ten; day.TenGV = gv.TenGV; dayNST.TenGV = gv.TenGV; //day.SoTiet = soTiet; //DSDayHoc.Add(day); //danh sách chung c a NST //lop.DSDayHoc.Add(day); //danh sách d y h c riêng c a l p lop.UpdateGVDayMonHoc(tiet.IDMon, gv); gvCu.SoTietDaDay -= day.SoTiet; gvCu.SoTietChuaDay += day.SoTiet; gv.SoTietDaDay += day.SoTiet; gv.SoTietChuaDay -= day.SoTiet; // Tiet tietMoi = tiet; tietMoi.IDGV = gv.IDGV; tietMoi.TenGV = gv.TenGV; tiet.SwapNoiDungTiet(tietMoi); tiet.LoaiViPham = LoaiViPham.DangXuLy; }*/ } } else if (tietB != tiet && tietB.Loai == LoaiTiet.BinhThuong && Math.Abs(chenhLechTruoc) == Math.Abs(chenhLech))//N ng h p l ng { if (tietB.IDGV != tiet.IDGV && tietB.IDMon != tiet.IDMon)//Khác giáo viên môn h chuy n n 71 if (!TrungLichGiaoVien(lop, tietB.Thu, tietB.Index, tiet.IDGV))//Khơng trùng l ch v trí m i { if (!TrungLichGiaoVien(lop, tiet.Thu, tiet.Index, tietB.IDGV))//Khơng trùng l ch v trí m i { tiet.SwapNoiDungTiet(tietB); tiet.LoaiViPham = LoaiViPham.DangXuLy; tietB.LoaiViPham = LoaiViPham.DangXuLy; break; } } } } } private bool TrungLichGiaoVien(LopHoc lopKT, int iThu, int iTiet, int IDGV) { foreach (LopHoc lop in DSLop.GetDanhSach()) { Tiet tiet = lop.Thu[iThu].Tiet[iTiet];//cùng th , ti t if (lop != lopKT) //&& lop.BuoiHoc == lopKT.BuoiHoc) // khác l p //if (lop.BuoiHoc == lopKT.BuoiHoc) // bu i h c if (tiet.Loai == LoaiTiet.BinhThuong) if (tiet.IDGV == IDGV)//cùng gv => trùng l ch return true; } return false; } 72 LÝ L CH TRÍCH NGANG I TÓM T T H Phái: N Ngày sinh: 07/10/1996 H Chí Minh A CH LIÊN L C a ch ng trú: 20 Tr n Bình Tr ng, Thành Ph t Nam n tho i: 0905 539 759 Email: lephdung09@gmail.com n Bình Tân, Thành Ph H Chí Minh a ch Chí Minh ng s H O i H c Qu c Gia Thành Ph H Chí Minh iH c Bách Khoa Th o: T h c, h T Nghi p ih c o: Chính quy nay, h c viên cao h c Mã s h c viên: 1970613 IV QUÁ TRÌNH CƠNG TÁC T Chun ngành: K tht Hóa Chun ngành: K Thu t Công ... 24 Th i khóa bi u l p 11B1 Hình 3.2 Th i khóa bi u l p 11B1 Th i khóa bi u l p 12A1 Hình 3.3 Th i khóa bi u l p 12A1 25 Nh n xét chung cho ví d th c t th i khóa bi u c a ba l mb s i di n cho ba... n, lu gi i thu t di truy ti p c n toán l p th i khóa bi u cho s d ng ng h c th i gian chi phí cho vi c l p th i khóa bi u n m kho ng ch p nh n c Gi i thu t di truy n Thu t toán di truy n m t mơ... u cho s d ng mơ hình gi i thu t di truy n ng trung h c ph thơng ch Hình 2.3, xây d ng ràng bu c cho toán u th c nghi m: Phân tích d li c thu th p, thi t k h th ng x p th i khóa bi u cho ng trung
- Xem thêm -

Xem thêm: Nghiên cứu sử dụng giải thuật di truyền lập thời khóa biểu cho trường trung học phổ thông ,