80 likes | 211 Views
Problem Modeling (2). Presented by: Amira Gamaleldin Marlien Edward Mounir Stino. Thursday, 20 July 2006. Agenda. Entity Relations Input Data Model Relations Model Constraints Model. Entity Relations. Input Data Model. Time
E N D
Problem Modeling (2) Presented by: Amira Gamaleldin Marlien Edward Mounir Stino Thursday, 20 July 2006
Agenda • Entity Relations • Input Data Model • Relations Model • Constraints Model
Input Data Model • Time time_unit(Day, Hour, Minute, Duration) Day: integer (1-60) Hour: integer (8-20) Minute: integer (0,15,30,45) Duration: integer (0,30,60,90,120,150,180,210,240,270,300) Example: time_unit(12,9,0,120) 12th day of exams, 9:00, 120 minutes duration • Course course(Course_id, Duration, Difficulty_rating, Student_count) Course_id: string (first 4 letters giving the faculty name, then the course number) Duration: integer (0,30,60,90,120,150,180,210,240,270,300) Diffuclty_rating: integer (1-3) “1 Student_count: integer (0 - 1000) Example: course(CSEN401, 120, 2, 250) course CSEN401 (course number 401, offered by CSEN faculty), 120minute exam, difficulty rating 2 and 250 students are registered in the course
Input Data Model (2) • Room room(Room_number,Building,Floor,Capacity,Invigilator_count,[Equipment]) Room_number: integer (1 -20) Building: string Floor: integer (0-5) Capacity: integer (0-250) Invigilator_count: integer (1-20) [Equipment]: [string] (beamer, speakers, computer, microphone) Example: room( 01,B2,3,12,1,[beamer,speakers] ) Room number 01, in building B2, 3rd floor, capacity of 12 students and 1 invigilator required, with a beamer and speakers. • Student Group student_group(Group_name, Group_count, Courses) Group_name: string Group_count: integer (1 - 1000) Courses: [string] of courseIDs Example: student_group(CSEN_6, 60, [CSEN601, CSEN602, CSEN603]) group CSEN_6 has 60 students taking CSEN601, CSEN602, CSEN603
Relations Model • The aim is to produce the required output of assigning exams (per student group) to rooms at specific time slots: Output: [Exam] “list of exams” where eachExam (Course, [Rooms], Time) • The assignment is done as follows: assign([Rooms], Course, [Assigned_rooms], Time) Rooms: list of all rooms Course: the course to be scheduled Assigned_rooms: list of assigned rooms Time:tuple of time-unit assignment (output)
Hard Constraints Model • No student can have more than one exam at the same time, and there should be a gap between exams on the same day. single_exam_check(Student_group, [Exam]) - where Exam (course, [Rooms], Time). check: all_different’(Exam_Time) check: For each pair of exam times: ExamTime1 + duration + Interval <= ExamTime2 - where Interval is a predefined gap value of 30 minutes. • Between exam sessions held in each room, there should be a gap between each exam and the following one, to give time for exam preparation procedures. room_time_gap(Room, [ExamsInRoom], Interval) check: For each pair of exam times: ExamTime1 + duration + Interval <= ExamTime2
Soft Constraints Model • Difficulty rating should be considered when scheduling exams on the same day. single_day_check(Student_group, [ReleventExams]) check: all_different’’([Day], [Difficulty_rating]) where: sum of difficulty rating determines the easiness of the exam combination; the higher the sum the easier the combination (e.g. 1+1 harder combination than 3+1 and harder than 3+3 combination) • Exams should be distributed amongst the minimum number of rooms. minimum_rooms(Exam) minimum length of [Rooms] • Closeness of rooms: close_to (Room1, Room2, Factor) Factorgives information about how far two rooms are from each other. • Student’s examination place should not change frequently. Achieved during labeling phase by assigning courses of the same group in the same room, otherwise it will assign them to another room. • Developing heuristics to be used also during the labeling phase: Using already existing traditions in the university.