My school's timetable is divided into 15 minutes modules. Classes are 30, 45, 60 or 75 minutes long. Class time don't completely fill out the timetable, so students has free time floating around. Often they would have a 15 minutes gap between lessons.
We would like to gather these 15 minutes around around lunch or break times. Like this:
Before:
Class 1
15 mins gap
Class 2
Break
Class 3
Lunch
Class 4
15 mings gap
Class 5
To become:
Class 1
Class 2
15 mins gap
Break
Class 3
Lunch
15 mings gap
Class 4
Class 5
Having a hard time figuring out how to achieve that.
Any idea?
Or can we have a constraint that say "min hours gap if not continuous between activities". Then, I can set the constraint to 2 hours. So activities will either have no gaps or min of 2 hours in between.
Hello, yush,
We developed the Mornings-Afternoons mode for similar requests. You might input 3 x n_real_days FET days, and impose max 0 gaps. I am not sure about min days between activities, if you use them. Also for this (min days between activities) we had a trick, before we made a proper min days constraints for the MA mode: input half_day_1, half_day_2, dummy_day, half_day_3, etc; we would add min days (which were half days) between activities = 2. So you might add more dummy days between the 1/3_days and use the official min days between activities, with min days = 3 or more.
Or make a custom mode for you, 1/3 days. Or try a custom constraint like in your last paragraph.
Where can I read more about how the morning-afternoon mode works?
In FET Help menu, m/a Morocco and Algeria. You have also some examples in the corresponding directories.
Also, the "no gap" constraint will not work for us. There will be necessary gap sometimes, but we just don't want the gap to be 15 minutes (1 FET hour).
So, is it possible to have a custom version with a "min gap if not consecutive constraint"? In other words gap=0 or gap>1, just not gap=1
Better yet, a "min gap if not consecutive in selected timeslots" constraint. This way, I can limit the constraints to take effect in specific time of the day. But if is too complicated, I would be super happy with just the simplier version mentioned above.
They are both research problems, but I am just hoping to work on something interesting like this. If it will come out nicely, we might add it also in the official FET.
But, unfortunately, I need to work on a contract (only if 100% successful), and my price might be considered too high. The reason is that FET is totally free software, and the only way to make a living is out of customizations or help.
I know you helped this project in the past, both with great suggestions and financially, and I thank you for that. I will consider this.
Hi Yush,
Is this in regular or block mode? We might be doing something similar if I am understanding you correctly. Can you share a .fet file or even a more detailed version of your first post with the timings or class lengths for each subject?
Happy to try and help a fellow FET user if possible.
Ed
See the attachment for a fet file that is already generated, so you can see the end result of what I am looking at. You will notice, especialy for "Year 3" students, they have a lot of 15 minutes gap (15 minutes = 1 FET hour). We want to be able to force those gap to be adjacent to lunch time as much as possible.
Thanks Yush. I see your timetable and have somewhat of an understanding (I think) of it.
Question: is the number of "break times" for each student or each group of students ("Year 3" for example) known before generation? Put differently, is there always the same number of gaps in each FET run for a particular year group?
If so, perhaps create a Break activity "bucket" that can only go in the slots around lunch. I'm thinking if FET has to slot this into the schedule too, it might push your current activities out of those slots and give you the results you desire.
Does that kind of make sense? Again, it probably depends on the input data you have available pre-FET.
Nice suggestion, Ed! However, Yush allows a gap two FET hours long in the middle of the active hours.
Ed, I have considered your solution already. As Liviu pointed out, we just want to avoid a small time gap. We have having those gaps now, and most students feel that it is wasted time. They want to have larger chunck of time.
Ed, I forgot to write that if it was possible with tricks, Yush would have done it :)
Yush is the person behind the FET advanced function "Remove redundant constraints"; otherwise, his initial old timetable would have not be possible. And I think also Yush suggested the "Group activities in initial order" function, with me I think, if I remember correctly.
All good. I like seeing complex problems and trying to think about creative ways to solve them. :D
Funny that you should mention the "Group activities in initial order" feature. I was sitting around waiting for a solution for my current run, which often lockup at the last 5 activities. I am talking it would get to the last 5 in matters of 2-3 minutes, then 20 minutes later, I am watching it like a dummy, waiting for that 5 supposedly simple activities to get placed. But by that point, everything else is so deeply connected, it is hard to find open spots for those otherwise very simple activities!
So your message came to the rescue! Yes, I did suggest that feature a long time ago, and I have completely forgotten about it!
I used that feature, group those 5 activities randomly with something that was placed earlier. Just like that, now I am consistently getting solutions in just a few minutes!
:)
At the indication of Volker, I would like to say that I got an offer for this feature, but it is too less for me. If more users would make offers, I would consider it.
We tried and did something, we are not sure yet if for yush's difficult file it works.
We added a new custom constraint, Students(Set)MaxSingleGapsInSelectedTimeSlots.
If it will work for yush's file, what do you think, should this constraint be added to the official (mainstream) FET? I am asking other FET users.
The link to this custom version: https://lalescu.ro/liviu/fet/download/custom/yush/
We decided to add the new constraints in the official FET: students (set)/teacher(s) max single gaps in selected time slots.
There is a snapshot: https://lalescu.ro/liviu/fet/download/test/
The new version FET-7.2.1 with these new constraints is just released. Thank to Yush for suggesting, testing, checking, and sponsoring!