042_Ứng dụng Framework và lập trình ràng buộc cho bài toán lập thời khoá biểu

2 758 3
042_Ứng dụng Framework và lập trình ràng buộc cho bài toán lập thời khoá biểu

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

Thông tin tài liệu

- 54 - ỨNG DỤNG FRAMEWORK LẬP TRÌNH RÀNG BUỘC CHO BÀI TOÁN LẬP THỜI KHÓA BIỂU Đỗ Huy Thịnh Người hướng dẫn: PGS.TS. Nguyễn Văn Vỵ MSV: 0220310 Email: dhthinh0350@yahoo.com 1. Mở đầu Bài toán lập thời khóa biểu từ lâu luôn thu hút được sự quan tâm của nhiều tổ chức giáo dục các nhà nghiên cứu bởi tính ứng dụng cao độ phức tạp. Các bài toán lập thời khóa biểu rất phong phú đa dạng bởi các ràng buộc yêu cầu của từng tổ chức. Bài toán đặc trưng bởi các ràng buộc các ràng buộc có thể được thêm vào với nhiều mức khác nhau. Rất nhiều chương trình đã được lập đưa vào sử dụng. Phần lớn các chương trình đó được phát triển dựa trên cơ sở một mô hình toán học chặt chẽ thuật toán xây dựng là dành riêng cho mô hình đó. Vì vậy khi áp dụng, nó chỉ thích hợp với một phạm vi hẹp mà ở đó bài toán đặt ra đúng với mô hình đã xây dựng. Ngay trong phạm vi đó, khi xuất hiện thêm một vài ràng buộc mới thì kết quả đã không hiệu quả, thậm chí không cho lời giải. Một vấn đề đặt ra là, cần phát triển một hệ thống thời khóa biểu có thể thích nghi được với nhiều lớp bài toán lập thời khóa biểu khác nhau về ràng buộc với sự cải biên sửa đổi không nhiều tiến hành là dễ dàng nhanh chóng. Chỉ có một hệ thống như vậy mới thực sự đáp ứng được yêu cầu thực tế cao hiệu quả. Khóa luận hướng đến giải quyết bài toán này dựa trên hai cơ sở sau: Tìm một thuật toán kiểu heuristic đủ đơn giản để giải bài toán. Do đó dễ cải tiến mỗi khi thêm ràng buộc Sử dụng hai công nghệ tiên tiến là Framework lập trình ràng buộc. Vì lớp bài toán thời khóa biểu có phần lõi chung, nên Framework trợ giúp thiết kế xây dựng ứng dụng cho lớp này dễ dàng thay đổi ràng buộc bổ sung. Còn lập trình ràng buộc trợ giúp việc lập trìnhràng buộc tiện lợi, nhanh chóng. 2. Bài toán lập thời khóa biểu Bài toán xếp thời khóa biểu là một trường hợp riêng của bài toán lập lịch trong đó đưa ra một chuỗi các sự kiện (thông thường là các môn học, bài giảng, môn thi) bao gồm các giáo viên học viên trong một khoảng thời gian định trước thoả mãn một tập hợp các ràng buộc của từng loại thời khoá biểu khác nhau. Các ràng buộc bao gồm khả năng học tập của học viên khả năng giảng dạy của giáo viên, số lượng sức chứa của phòng học, hạn định về thời gian yêu cầu đáp ứng của các sự kiện. Bài toán xếp Thời khóa biểu có thể phân loại theo loại khuôn dạng thời gian Thời khóa biểu: thời khóa biểu TUẦN, HỌC KỲ, nhiều TUẦN / HỌC KỲ, THÁNG, NĂM HỌC…. Hoặc phân loại theo đơn vị xếp Thời khóa biểu theo mô hình lớp học niên chế nay lớp học tìn chỉ. Trong khóa luận này chỉ xét bài toán lập thời khoá 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 ( có thể tổng quát cho các trường vẫn giảng dạy theo hệ lớp- môn- giáo viên giảng dạy). Bài toán được phát biểu như sau: Có một danh sách các lớp học học trong học kỳ, danh sách các môn học tương ứng cho từng lớp học danh sách giảng viên tương ứng với mỗi môn cho từng lớp. Giảng đường cho mỗi lớp đã được xếp trước. Một lời giải hay một thời khoá biểu chấp nhận được là tất cả các môn học được chia vào các tiết học trong một tuần thoả mãn điều kiện là một số ràng buộc chặt ( tại một thời điểm một lớp chỉ học một môn một giáo viên chỉ dạy tối đa một lớp….) một số ràng buộc mở rộng ( số buổi đến trường của giáo viên càng ít càng tốt, ngày nghỉ của lớp, giáo viên, số tiết chờ giảng trong ngày của giáo viên…). 3. Ngôn ngữ ràng buộc đối tượng OCL ( Object Constraint Language) là ngôn ngữ xây dựng mô hình phần mềm, được định nghĩa như một chuẩn thêm vào UML - 55 - cho phân tích thiết kế hướng đối tượng. Các biểu thức viết trong OCL phụ thuộc vào các kiểu ( lớp, giao diện,…) được định nghĩa trong các biểu đồ UML. Các biểu thức viết trong OCL thêm các thông tin quan trọng cho các mô hình hướng đối tượng. Các thông tin này thường không thể biểu diễn trong biểu đồ. Trong UML phiên bản 1.1 các thông tin này được giới hạn bởi các ràng buộc, mỗi ràng buộc được định nghĩa như một hạn chế về giá trị nhận được ( một hay nhiều) của một hệ thống hay mô hình hướng đối tượng. Trong UML phiên bản 2, một mô hình có thể chứa nhiều thông tin thêm hơn là chỉ có ràng buộc. Các công việc như: định nghĩa truy vấn, các giá trị tham chiếu, các quy tắc nghiệp vụ hay các điều kiện trạng thái được viết bằng các biểu thức trong một mô hình. OCL là ngôn ngữ chuẩn trong đó các biểu thức được viết một cách rõ ràng dễ hiểu. OCL là ngôn ngữ khai báo, định nghĩa kiểu, là ngôn ngữ biểu diễn cả truy vấn ràng buộc, dựa trên cơ sở toán học nhưng không có các ký hiệu toán học. OCL thêm các thông tin làm mô hình UML nhất quán, hoàn thiện rõ ràng. 4. Giới thiệu khung làm việc Trong những năm gần đây, sự cần thiết của sử dụng lại phần mềm ngày càng trở nên quan trọng. Hướng đối tượng làm tăng khả năng sử dụng mã bằng cách cung cấp thừa kế các giao diện chuẩn. Các thư viện lớp cung cấp các thành phần xây dựng sẵn có thể dùng lại được, nhưng việc sử dụng các thư viện lớp chủ yếu dẫn đến dùng lại mã nguồn chỉ một ít là dùng lại phân tích thiết kế. Để tăng khả năng sử dụng lại của phân tích thiết kế, các khung làm việc hướng đối tượng ra đời. Một khung làm việc hướng đối tượng là một tập các lớp cộng tác tạo thành một thiết kế có thể dùng lại được cho một lớp cụ thể phần mềm. Khung làm việc quyết định kiến trúc của các ứng dụng dùng nó bằng cách chia thiết kế thành các lớp trìu tượng định nghĩa các trách nhiệm, cộng tác luồng điều khiển giữa các lớp. Phát triển khung làm việc nhấn mạnh tới dùng lại thiết kế hơn là dùng lại mã nguồn. Các kỹ thuật hướng đối tượng như thừa kế, đa hình cho phép xây dựng các khung làm việc có thể thực thi bằng cách chia nhỏ nó thành các lớp, cắm thêm các thành phần mới, thể hiện các lớp qua các ngôn ngữ được xây dựng. 4. Xây dựng hệ thống cho bài toán lập Thời khóa biểu học kỳ Sau khi mô hình hóa, phân tích, thiết kế cài đặt hệ thống với một số bộ dữ liệu của trườn ĐHCN cho kết quả khá tốt: thời gian chạy khá nhanh ( bộ dữ liệu 20 lớp thời gian xếp <=1s) so với các chuơng trình dùng thuật toán vét cạn hay mô phỏng tự nhiên, kết quả về lịch dạy của các giáo viên dạy nhiều trong tuần là khá tối ư u. 5. Kết luận Khóa luận vận dụng các công nghệ PTTK hướng đối tượng lập trình ràng buộc xây dựng một hệ thống xếp thời khóa biểu thử nghiệm với việc thay đổi ràng buộc rất khả quan. Tốc độ giải nhanh, việc đưa ràng buộc vào đơn giản. Tuy nhiên do thời gian ngắn, việc thử nghiệm trên các ví dụ thực chưa nhiều. Việc thay đổi các ràng buộc chưa đủ mức khác biệt, mặc dù thiết kế hệ thống đủ tốt, nhưng chưa đạt đến một framework như mong muốn. Hướng phát triển đề tài tiếp tục nghiên cứu nâng cấp chương trình thành một framework hoàn thiện để mở rộng phạm vi ứng dụng. Tài liệu tham khảo - Tài liệu tham khảo tiếng Việt [1] Nguyễn Việt Hùng, Nguyễn Văn Tuân - Xây dựng thời khóa biểu bằng cách kết hợp phương pháp Heuristics tương tác người máy - Khóa luận tốt nghiệp đại học 2005, Đại học Công nghệ - ĐHQGHN. [2] Vũ Văn Thạch - Ứng dụng khung làm việc cho bài toán lập lịch - Khóa luận tốt nghiệp đại học 2005, Đại học Công nghệ - ĐHQGHN [3] PGS.TS. Nguyễn Văn Vỵ - Bài gi ảng Phân tích thiết kế hệ thống phần mềm theo hướng đối tượng - Bộ môn Công nghệ phần mềm, Đại học Công nghệ - ĐHQGHN, Hà Nội, 2004. 109 tr. - Tài liệu tham khảo tiếng Anh [4] Michael Boggs, Wendy Boggs - Mastering UML With Rational Rose 2002 - Sybex. [5] Desmond Francis D’Souza, Alan Cameron Wills - Objects, Components, and Frameworks with UML - Addison Wesley, 1999. [6] Anneke Kleppe, Jos Warmer - Object Constraint Languate, The: Getting Your Models Ready for MDA, Second Edition - Addision Wesley, 2003. . Các bài toán lập thời khóa biểu rất phong phú và đa dạng bởi các ràng buộc và yêu cầu của từng tổ chức. Bài toán đặc trưng bởi các ràng buộc và các ràng buộc. giải bài toán. Do đó dễ cải tiến mỗi khi thêm ràng buộc Sử dụng hai công nghệ tiên tiến là Framework và lập trình ràng buộc. Vì lớp bài toán thời khóa biểu

Ngày đăng: 06/10/2013, 19:20

Từ khóa liên quan

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

Tài liệu liên quan