Hello,
I want to build an exam timetable using fet. The smallest unit of students will be groups of 20 (or a fixed number). Courses have exams, and each course belongs to a year or more, so I should define years aka Programs and Levels like First, Second, etc., and Groups with course names in this level and subgroups to be Group (1-20), Group (21-40), etc.
I will add an activity for each subgroup for all subgroups with no teacher and with a subject name that is the same as the group name that has this subgroup. (I am not sure if there is a better way here and in the above setup)
I want each year to have one or two max courses per day (exams) so I will add a constraint max activity tag per day for student 1 and assign tags based on years (activities of the year First takes First, and so on).
and maybe max 2 for some years if groups/courses are larger than exam days.
then I will add same starting day+time constraints for activities of the same subject so they are spread into rooms in the same period. The problem starts here (assuming all is good up till now):
Some rooms are big and can accommodate multiple student units aka 3 for 60 students and others are not, so how to handle this? I thought to add x dummy rooms where x is the number of groups a room can take at a time but this has a problem for me and it is that is doesn't enforce FET to fill the room if it places an activity in it.
If I go for this solution, and a course has 5 activities, with 5 rooms available (one of then has 2 copies so total 7 rooms), nothing can prevent it to schedule 2 (not the full capacity of 3) of them in Room A and one of is copies and 1 in B and 1 in C.
and I don't want to group students (e.g. one activity of 100 students) and enforce big location using tags without having to make multiple rooms because there could be multiple arrangements for each course that may be better that my enforced setup.
I also thought of making multiple dummy hours instead of dummy rooms to accommodate multiple activities per room, and then processing the raw output to make it look as intended but I don't know how to constrain it properly.
Thank you in advance for all of your insights!
I was thinking of the constraint activities min simultaneous in selected time slots, and you will enable "Allow empty slots". You might think of this when trying to use slots as rooms.
Maybe another approach would be a new constraint, probably only custom for you, that R1, R2, R3 must be either all occupied or none, and the implementation to be similar with activities min simultaneous in selected time slots.
Oh I think that is a genius idea to use this constraint in combination with the dummy hours.
But there comes three other problems, if there are multiple courses in the same hour, FET can mix the activities of subjects in different rooms e.g. nothing to enforce same subject in the room and its dummy intervals. This is also applicable if I use dummy rooms.
Also I can't use same starting time for activities of the same subject because of dummy hours (I need the course exam activities to be simultaneous)
Also in some cases there could be only a three-activity subject left for a day and needs to be placed in a big room of capacity 5 other than a smaller room because there would be a gap in the proctoring for that smaller room otherwise.
It is quite complicated I know to work around the multiple activities per room along with the other exam constraints :(
But I am still considering doing it with FET, I believe there is still a working workaround.
Please let me know if you have any insights and Thank you again for your time, Liviu 🙏
I am sorry, but for the moment I don't have other ideas. I will announce you if I will have.
I appreciate your reply, Liviu, thank you 🙏