After 1 h 15 m I couldn't get a timetable, what's wrong?

Started by infoo_, January 17, 2023, 05:59:07 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

infoo_

Hello

So many thanks to Liviu for helping me designing the timetable!

After checking some details with the school (and thus adding some extra constraints :-\), now I think I have everything ready to generate the timetable.

I have looked at everything very carefully to check that there are no impossible situations, as well as enabling incorrect constraints, and I think that everything is fine.

I hit the Generate multiple timetables button, and... this happened:

Timetable no: 1 => (Thread 1) Simulation stopped. Maximum placed activities: 294 (at 42 m 46 s).
Timetable no: 4 => (Thread 4) Simulation stopped. Maximum placed activities: 294 (at 30 m 15 s).

Simulation interrupted!

On the disk there were saved all the highest-stage timetables (the highest number of activities reached is 294,
reached in 2 timetables).

The results were saved in the directory C:\Users\......-multi.

Total searching time was: 1h 15m 24s.

This file was automatically generated by FET 6.8.0 on 1/16/23 10:44 PM.


After 1h 15m 24s it can't generate any single table on 4 threads! That's so frustrating. :'(

That's why I need your help to understand why I can't generate the timetable with the requirements I need.

Some clarifications:

1) There is an exception for certain teachers to teach max 2 hours per day for an activity tag. Those are the teachers who teach Artes Visuales/Música. Artes Visuales/Música subject that has duration = 3 for every course can be teached on the same day, so that's why I added an extra constraint with max = 16 hours (also because it was annoying that it always appeared as a broken constraint). But this is NOT the case of Artes Visuales only, because it has duration = 4, so it must respect split 2-2.

2) There are some _Unassigned teachers. The teacher "Unassigned" is a teacher who resigned those hours, and the hours became vacant. That's why it doesn't have "a teacher's not available time" constraint. BUT, some teachers requested licenses for those hours. In other words, at some point they can return to teach those activities, so 2 things must happen: 1) That the substitutes who took those hours, have the restriction "a teacher's not available time", and 2) that said substitutes do not overlap with other subjects they teach, that is, we prevent a teacher from being in 2 activities at the same time. That's why some teachers are called "_Unassigned [Teacher's name]".

Important notes (extra constraints needed):

3) Teachers min hours daily must be = 2 with 100% or something like 99.999%, except for those who teach 1 hour per week to a course like Teacher E/Teacher N with subject "Talleres de Educación Socio Afectiva/Lectura y Comprensión de Textos". I couldn't find a way to achieve it. Some teachers would be angry if they go to school for only 1 period. I need this.

4) Teachers cannot have free periods > 2 per day (ideally max = 2 free periods daily). Or maybe "max free periods per week = 3 or 4". By "free period" I mean a period where a teacher is NOT teaching. I think it's called "gap".

5) Both "Subactivities with component number = 1" and = 2 constraints should be activated, to prevent subactivities to be between break times.

6) Try to generate a table in a reasonably fast time. I know there's a lot, but I prefer not to wait more than 1 hour if possible.

I hope you can really help me get a schedule that I set out to do and I'm not achieving. Even if it is to help me generate in a reasonable time (such as lowering %'s) and how it can be solved 3), I would be very satisfied.

If there is something that is not understood, you can ask me

@Liviu Lalescu I sent you the FET file by mail because it was too heavy to upload to the forum. Have you received it?

Thanks in advance

EDITED: Solved the upload issue by attaching it as rar.

Volker Dirr

I am not sure how many bugs you already entered. Sound like many and you should maybe better do variant b)

Variant a)
In normal case a timetable maker do only this:
Generate a single timetable. Have a look at the ordered activites while generating. Read activity 295. Then have a look at a unfinished timetable and think carefully why he can't place the activity. Think about teachers, students, subject, room and all constraints. In normal case there are many ways to fix bugs: lower constraints or change the activity planning.


Variant b)
If you have done (too) many changes since the last successful generated timetable:

1. You must check the activity planning and statistics. We can't do that.
2. You must deactivate all constraints with less then 100%.
3. You must deactivate also constraints 1. to 5. from your post above.
4. Check if you can generate a timetable.
5. a) if you generated a timetable, then go to step 6.
   b) if you didn't generated a timetable, then deactivate more constraints, check the statistics (maybe fix activity planning bug) and continue with step 4.
6. Add ONE constraint and try to generate. Continue with step 4.

Liviu Lalescu

#2
I tried much. Some previous files were possible. But when I added more constraints, it became too difficult. I attach my latest file, it reached 314/320 in a single generation from many (otherwise, lower), after ~1.5 hours.

You might want to lower the constraints and try some more.

You cannot have exceptions in FET, that's why I added for each teacher.

It would be best if you could use 100% constraints for activity tag max hours daily, and add only for the necessary teachers/students. The same for the subactivities/activities preferred starting times.

infoo_

#3
Hello

I really appreciate the effort you are putting to float the ship. That's nice!

I took your comments and generated a schedule that in my opinion was quite acceptable. I sent it to the school to review. If there's bad news, I'll probably come back to the thread to ask for more help, if you don't mind. Bad news, I need more help if possible: https://lalescu.ro/liviu/fet/forum/index.php?topic=5465.0

Thanks for the help!!

Edited

Liviu Lalescu