suggestions for multiple weeks timetable (not the 120 days custom version)

Started by GEA_user, June 21, 2018, 01:24:16 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GEA_user

Hello  :) ,
I'm encountering a problem in the same context that I don't know how to handle. I've attached a minimal file that illustrates my issue.
Let's say that teacher1 wants to have the same time slot every real week (except in exceptional cases) with the students1 group, and that Thursday in week2 is a holiday. Given that teacher2 teaches chemistry to the same group, students1, in two 3-hour blocks—either on Monday, Tuesday, or Thursday in week2.
My constraints are as follows:
teacher1's activities start at the same time (90% of the time(
minimum days between teacher1's activities is 5 (95% of the time)
maximum days between teacher1's activities is 25 (100% of the time)
The proposed percentages are to prevent FET from searching for a solution for too long.

The problem is that sometimes FET will propose a solution where Teacher1 has classes in the same time slot every actual week except week2 which is the expected behavior—but sometimes it may also propose a solution with classes on Tuesday in week1 and on Mondays in weeks 3 through 6.
To avoid this, I haven't found any other solution than to remove teacher1's activity in week 2 from the constraint "minimum days between teacher1 activities is 5 to 95%" and to add a constraint of the type "minimum days between teacher1's activities in week1 and week3 is 10."
However, I don't know in advance whether Teacher1 will have a problem with the holiday in week2; this is due to the scheduling of teacher2's class, which is constrained by the holiday.
In other words, I feel like I have to, by default, perform this adjustment for all activities in a given week whenever there's a specific issue like unavailable students or a holiday (which happens, in my case, every other week).
How can I use Terms mode to simulate a constraint like this: teacher1's activities are on the same real day (95% of time)?
Best regards,

Liviu Lalescu

Hello!  :)

I think new development would be needed for this, in maybe a new constraint to do this: specify in the constraint a set of n activities, and say that at least n-1 of them must be on the same real day and at the same hour, in the Terms mode.

I'll write this suggestion in the list of suggestions, the TODO list.

GEA_user

So that confirms what I thought—it's not possible at the moment.
Thanks for adding it to the TODO list. ;D

Liviu Lalescu


GEA_user

Hello,
I'm still encountering questions, in the same context, about the best way to handle constraints (again provided in the attachment):

In the case of teacher1: this is a teacher who has one activity each real week with students1 and students2. This teacher will therefore be occupied for 2 hours per real week. He would like his activity slots to be the same each real week, but not necessarily with the same students at the same times.
Currently, I handle this by creating a fictitious activity for teacher1 with no learners, then splitting it into 6 sub-activities (one per real week); I impose the following constraints:
– must begin or end teacher1's' day
– Minimum number of days=5 between two sub-activities
– Maximum number of days=25 between two sub-activities
– Activities must have the same starting hour

Finally, I specify:
 – Maximum days per week=6 for Teacher1 (to ensure the real activities occur on the same actual days as the fictitious activity);
 – Maximum gaps per day=0 for Teacher1 (to ensure that the real activities are scheduled right next to the fake activities)

This works, but I have to do this for all 80 of my teachers, so I'd like to know if there's a more efficient way to set these constraints.

Also, I didn't understand the conceptual difference when, for example, modeling a class that takes place three times per real week over two real weeks.
Is it better to create a single activity divided into six sub-activities with the tags week1/week1/week1/week4/week4/week4, or to create two different activities (with the tags week1/week4) with three sub-activities each?
I must have missed some threads discussing the nuances of activities and sub-activities.
Thank you for your feedback.

Liviu Lalescu

Hello,

Your first problem: indeed, it is difficult, there is no such constraint in FET. You must devise difficult tricks, and yours might be good. I will add a TODO item for new constraints for this.

About your second question: the two methods are equivalent in efficiency. It is only a matter of taste.

I'm sorry I cannot answer more thoroughly, but I am a bit tired.

GEA_user

Quote from: Liviu Lalescu on July 02, 2026, 05:49:44 AMHello,

Your first problem: indeed, it is difficult, there is no such constraint in FET. You must devise difficult tricks, and yours might be good. I will add a TODO item for new constraints for this.
Thanks for the response and the add to TODO list.
I've tried to do this on a broad scale rather than on a teacher-by-teacher basis, particularly by using tags, but so far without success.

Quote from: Liviu Lalescu on July 02, 2026, 05:49:44 AMAbout your second question: the two methods are equivalent in efficiency. It is only a matter of taste.
So I have a related question:
Currently, I first have to create an activity in the Activities menu and then edit its sub-activities in the sub-activities menu, which led me to think there was a conceptual difference between activities and sub-activities.
You seem to be saying that there isn't.
So why isn't it possible in FET to create or add sub-activities directly in the FET sub-activities menu?

Liviu Lalescu

Quote from: GEA_user on July 02, 2026, 10:46:02 AMSo why isn't it possible in FET to create or add sub-activities directly in the FET sub-activities menu?

Activity = subactivity  :)

When we made FET, we only had the activities dialog. Then some users needed individually modified subactivities. So we made the subactivities dialog, but the base was the activities dialog.

Interface is a very weak point of mine. I prefer to concentrate on the main parts: generation and constraints - the minimum necessary to find a timetable. I am not an artist, I am austere.  :)

Maybe also see: https://lalescu.ro/liviu/fet/forum/index.php?topic=6838.0

GEA_user

Quote from: Liviu Lalescu on July 02, 2026, 10:54:41 AMActivity = subactivity  :)
Ok I understand,
The fact is that when importing large numbers of activities spanning several actual weeks—as I do—it's much easier to import, for example, a single activity labeled 1+1+1+1+1+1 with the tags week1|week2|week3|week4|week5|week6 rather than six separate activities, each with the tag week xxx.
I'll see how I can "automatically" modify my import file to use the second method instead.
In any case, thanks for everything.

Liviu Lalescu