Use case of doubling activities if it is scheduled in a day for some students

Started by Thanadol, March 11, 2026, 04:29:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Thanadol

In my school, high school students, not the whole school, will have special schedule on Wednesday. 1-hour subject on other day will be taught for 2 hours in Wednesday. This is because students will have some extracurricular activities for half a term. Doubling is to let student learn the full course using a shorter time.

For example, all high school student needs to learn Algebra for 2 hours a week. The activity can be scheduled either
  • 2 hours not in Wednesday
  • OR 1 hour not in Wednesday, 2 hours in Wednesday
  • OR 4 hours in Wednesday

You can see that, by the end of the term, different classes will learn this subject with the same total amount of time.

To add this as an activity, I just want to add this as 1+1 split hours with 95% weight for all high school students. I won't add the extra for Wednesday since it may or may not be there. In other words, for every high school subject, I want to add the activities as if the day is normal, but the program should double, or auto-create a duplicate (sub)activity, IF IT HAPPENS TO BE schedule on Wednesday.
 
The reason I want it to be really duplicated is just to let the program check other constraints. My school has elementary school with normal schedule, and rooms, buildings, AND TEACHERS are used together with high school. The workaround I found won't check the conflict. For example, if I manually block Wednesday afternoon time for high school to be unavailable, and tell all teachers and students to use afternoon schedule same as in the morning, there can easily be conflict across elementary and high school.

If you can think of anyway to use FET in this condition, please kindly discuss. Thank you so much.

Liviu Lalescu

Hello, Thanadol, and welcome to the forum!

I think the solution, improving your trick, is to use the recently added constraint teachers pair of mutually exclusive time slots. I assume only the teachers are problematic, and you need that if a teacher works Wednesday first hour in the morning, he cannot work Wednesday first hour in the afternoon. You can add this constraint for each pair of morning/afternoon hour on Wednesday. For instance, if you have 8 hours on Wednesday, 4 in the morning and 4 in the afternoon, add 4 constraints.

If there are further problems, let me know, and we might solve them. I am not sure I got perfectly your problem.

Thanadol

Hello and thank you so much. Actually, that is another option I have already observed. However, the constraints need to be checked for BOTH time slot. If I use the "mutually exclusive" way, I assumed that the program will check constraints for only one, but not the other, time slot.

It can still cause problem in teacher time aspect, and also space, such as,
  • Teacher may exceed limit for amount of class to teach per day or they may continuously teach for too long time (since the blank one isn't counted.)
  • Sudden room/building change may be occured (since the program doesn't know that the teacher is teaching, and doesn't know the space teacher will be using then.)
  • etc.

Not sure if I understand this constraint wrong.

Liviu Lalescu

You are welcome!

Yes, I think you are an advanced FET user, and the problems are as you said. Yes, I think you got the constraint right.

Did you think of doubling instead of halving? Let me explain:

1) Say you have ND (5?) days and NH hours per real day. Make 2*ND-1 FET days Monday1, Monday2, Tuesday1, Tuesday2, Wednesday, Thursday1, Thursday2, Friday1, Friday2. Make NH FET hours.

2) Add breaks in 2*ND-2 days without Wednesday, all afternoon (FET hours NH/2+1..NH).

3) For each pair (A1, A2) of doubled high-school activities, add a constraint activities occupy max sets of time slots from selection. The two activities can be either together on Wednesday, or together on Monday1 and Monday2, or together on Tuesday1 and Tuesday2, or together on Thursday1 and Thursday2, or together on Friday1 and Friday2. So, in this constraint, the first selected set of time slots is Wednesday, the second selected set of time slots is Monday1 and Monday2 both morning only, the third selected set is Tuesday1 and Tuesday2 both morning only, same Thursday (4th set of selected time slots) and Friday (5th set of selected time slots).

4) So that (A1, A2) are not both on Monday1: activities occupy max time slots from selection, select Monday1 morning only. Same for Monday2, Tuesday1, Tuesday2, Thursday1, Thursday2, Friday1, Friday2.

5) Ignore FET days ending in "2": Monday2, Tuesday2, Thursday2, Friday2.

Might work? (of course, a lot of inputting work.) Please let me know!