- 42 - XÂY DỰNGTHỜIKHOÁBIỂUBẰNGCÁCHKẾTHỢPPHƯƠNGPHÁPHEURISTICSVÀTƯƠNGTÁCNGƯỜIMÁY Nguyễn Việt Hùng Người hướng dẫn: PGS.TS. Nguyễn Văn Vỵ MSV: 0122197 Email: viet_hung234@yahoo.com Nguyễn Văn Tuân MSV:0122216 Email:mailto:blazeofglory_vn@yahoo.com 1. Giới thiệu Lập thờikhoábiểu là bài toán có ứng dụng thực tế cao và được nhiều người quan tâm trong vận trù học. Tuy vậy, nó thuộc loại bài toán NP-khó với nhiều loại ràng buộc phức tạp, nên khó giải bằng các thuật toán truyền thống. Đến nay, các thuật toán mô phỏng tự nhiên tỏ ra là phươngpháp hữu hiệu hơn cả nhưng vẫn bị hạn chế vì thời gian chạy chương trình khá lâu và không linh hoạt khi ta thay đổi các ràng buộc. Để giải quyết bài toán, chúng tôi đề xuất một cách giải quyết bài toán này bằngcáchkếthợpphươngphápHeuristicsvàtươngtácngười máy. Theo cách tiếp cận này, thờikhoábiểu sẽ được xây dựng theo cách đánh giá kinh nghiệm và tìm giải pháp qua thử nghiệm và rút tỉa khuyết điểm kếthợp với phươngpháp gắp thả. 2. Cơ sở lý thuyết PhươngphápHeuristics là phươngpháp giải quyết vấn đề bằngcách đánh giá kinh nghiệm và tìm giải pháp qua thử nghiệm và rút tỉa khuyết điểm. Phươngpháp này có một ưu điểm là thời gian chạy rất nhanh.Tuy nhiên nó có một nhược điểm là không khám phá được hết không gian trạng thái. Phươngpháp gắp thả là phươngpháp được users thực hiện bằng trực quan để giải quyết các tổ hợp ràng buộc mà khó giải được bằng thuật toán. Đây là một phươngpháp tuy đơn giản nhưng có thể giải quyết được những ràng buộc rất khó có thể giải quyết được bằng thuật toán thông thường. 3. Giới thiệu bài toán lập thờikhoábiểuvà các cách tiếp cận hiện nay 3.1. Các bài toán lập thờikhoá biểu: Bài toán lập thờikhoábiểu được chia làm 3 dạng chung được mô tả khác nhau: Bài toán lập thờikhoábiểu cho trường ph ổ thông, bài toán lập thờikhoábiểu cho trường đại học, bài toán xếp lịch thi. Trong luận văn này chỉ xét bài toán lập thờikhoábiểu cho trường đại học ở Việt Nam mà cụ thể là trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. 3.2. Các cách tiếp cận hiện nay Có rất nhiều thuật toán đươc đề xuất để giải gần đúng các bài toán NP- khó. Các thuật toán này tìm được lờ i giải gần tối ưu và là một trong những xu thế phát triển hiện nay đối với các bài toán chưa thể tìm ra lời giải tối ưu thực sự trong đó các thuật toán mô phỏng theo tự nhiên như thuật toán luyện kim, thuật toán di truyền, thuật toán hệ kiến …Trong đó thuật toán di truyền và thuật toán hệ kiến tỏ ra là phươngpháp khá hiệu quả. 4.Phương phápheuristics trong bài toán 4.1. Ý tưởng - 43 - Từ thực tế cho thấy, mỗi giảng viên trong một kì chỉ dạy một hoặc vài lớp, mỗi lớp chỉ giảng dạy một môn, cho nên tập nghiệm cho bài toán là rất lớn. Cho nên sử dụngphươngphápheuristicskếthợp với gắp thả sẽ tiết kiệm được rất nhiều thời gian và sẽ cho kết quả chấp nhận đuợc. Nhưng sử dụngphươngphápheuristics như thế nào cho đạt hiệu quả cao là vấn đề chính cuả bài toán này. a. Việc ưu tiên xếp theo thứ tự của giảng viên, giảng viên nào phải dạy nhiều ca nhất thì sẽ được ưu tiên xếp trước. Việc ưu tiên này sẽ làm cho việc sắp xếp các ca học sau sẽ dễ dàng hơn vì chúng có thể tráo đổi được nhiều vị trí hơn. b. Với mỗi giảng viên, sẽ cố gắng sắp xếp sao cho các ca giảng dạy của giảng viên đó liền nhau trong một ngày, và là nhiều nhất để giảm tổng số ngày phải dạy của giảng viên, và giảm khoảng thời gian trống giữa 2 ca của giảng viên đó. c. sau khi xây dựng được thờikhoá biểu, sẽ sử dụng thuật toán duyệt (càng nhiều bước càng tốt) để tối ưu thêm các ràng buộc: số ngày phải dạy của một giảng viên càng ít càng tốt, tổng số tiết trống giữa 2 ca trong một ngày là nhỏ nhất …. d. Trong mỗi bước, có thể kếthợp với kĩ thuật gắp thả để có được kết quả tốt hơn. Việc sử dụng những ý tưởng trên trông thì rất đơn giản, nhưng khi kếthợp với các ý tưởng nhỏ khác có thể giúp cho bài toán đạt được kết quả rất tốt. 4.2. Thử nghiệm vàkết quả Chúng tôi đã cài đặt và chạy thử nghiệm trên cơ sở dữ liệu của 3 năm gần đây trong trường Đại Học Công Nghệ. Kết quả đạt được là khá khả quan. Trong tổng số lớp của trường Công Nghệ, số giảng viên, và các môn học. Thời gian chạy của chương trình là < 1 giây, kết quả đạt được bước dầu là khá khả quan: tổng số tiết phải đợi trong một kì của tất cả các giảng viên ~ 4. 4.3. Đánh giá chung Chương trình đã chạy khá tốt với bài toán lập thờikhoábiểu cho trường ĐH Công Nghệ. Chương trình có thể chạy tốt trong bài toán mà có tập nghiệm lớn. Ràng buộc càng ít thì kết quả sẽ càng khả quan. Khi ràng buộc nhiều, kết quả s ẽ không được tốt như một số các phươngpháp khác. Bài toán này phụ thuộc nhiều vào các ràng buộc hơn là phụ thuộc vào kích cỡ của dữ liệu. 5.Kết luận Trong khoá luận này chúng tôi đã sử dụngphươngphápHeuristics để giải quyết bài toán lập thờikhoábiểu với bộ dữ liệu của trường Đại học công nghệ. Kết quả đạt được là khá khả quan với các ràng buộc chính vàthời gian chạy phụ thuộc chủ yếu vào số các ràng buộc và mục đích tối ưu của kết quả. Các hướng nghiên cứu tiếp theo của chương trình là làm sao cho chương trình có thể sắp xếp được thờikhoábiểu thoả mãn được nhiều ràng buộc hơn, trong đó nhằm thoả mãn được các nhu cầu của giảng viên (các nhu cầu chung và riêng). Tài liệu tham khảo [1] Đỗ Đức Đông, “ Thuật toán mô phỏng tự nhiên trong bài toán thờikhoábiểu cho trường đại học ”, Khoá luận tốt nghiệp đại học hệ chính quy, ngành Công nghệ thông tin, 2004. . - 42 - XÂY DỰNG THỜI KHOÁ BIỂU BẰNG CÁCH KẾT HỢP PHƯƠNG PHÁP HEURISTICS VÀ TƯƠNG TÁC NGƯỜI MÁY Nguyễn Việt Hùng Người hướng dẫn: PGS.TS phương pháp Heuristics và tương tác người máy. Theo cách tiếp cận này, thời khoá biểu sẽ được xây dựng theo cách đánh giá kinh nghiệm và tìm giải pháp qua