Upload
mariah-lee
View
212
Download
0
Embed Size (px)
Citation preview
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
S tudents tudentID
Room
room _num berfloor
bu ild ingcapac ity
invig ila tor_countequ ipm ent
S tudent_Group
group_nam egroup_count
Tim e_s lo t
s tart_ tim e_datedura tion
Course
courseIDdifficu lty_ra tings tudent_countcourse_hours
duringreg is teredass igned
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
Coursecourse(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) “1Student_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: stringGroup_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 each Exam (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) Factor gives 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.