Main Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - infoo_


In the attached fet file I have 336 activities which fet successfully placed 335 activities.

The counter goes and come back but it never success, but I can't figure what can be problem.

I would like to suggest adding a constraint called "A teacher begins early (in a week)" or a similar name, meaning that a teacher can start teaching as soon as possible in the first allowed hour of the teacher's available times.

FET should alert when this constraint is not included in the teacher's available times.

This constraint would prevent a very common situation like this:

In an afternoon school, many teachers came from another school in the morning, and they can teach from 1 to 5 pm, but if FET found that can teach from 3 to 5 pm and teacher available time is 1 to 5 pm, then the time 1 to 3 pm would count as "gap" since the teacher does not prefer to have leisure time (again, it would count as "gap" like "max gaps per day" but in the beggining of the teacher's available times).

Maybe set a number like "A students set begins early (max beginnings at second hour)" constraint do using 0,1,2.. (always prefer 0). And % could be <=100% since it is not mandatory if FET fails to schedule as soon as possible. It depends on how hard can be the programming of the constraint.

This can also happen in the last hours of a morning school, when the teacher prefers to leave late (so reduce gaps between the school in afternoon) instead of start early (the last hours would count as "gaps" by the same reasoning).

What do you think?
Get Help / Re: How can we place all activities?
December 19, 2023, 02:24:36 PM
Hello Liviu

Quote from: Liviu Lalescu on February 15, 2023, 02:47:55 PMYes, exactly. It is documented somewhere (I think twice) in the help. A1, A2, ..., An, min 1 days between activities with 0%, FET won't place 3 activities (Ai, Aj, Ak) on the same day.

I don't understand why 0%. Shouldn't be 95%, 99% or even 100%?

In the case I picked A1 (duration=2), A2 (duration=1), A3 (duration=1) for constraint min 1 days 0%, please correct me:

In one day can occur:
- A1 yes
- A2 yes
- A3 yes
- A1,A2 no
- A1,A3 no
- A2,A3 yes (correct me here)
- A1,A2,A3 no

If I'm correct, what is the difference between setting 0%, 99% or 100%?

After 31 minutes (see image):

You cannot view this attachment.

I came up with this timetable (attached) and I am excited about the results!

Achievements of the current timetable:

1) Found that min days between acts was not possible if I didn't split an activity of duration=2 into two acts of duration=1 each one (and adding a new min days constraint)

2) Set Maximum gaps per day=1 on some teachers

Need your help in this problems of the current timetable (first is prioritary):

1) Caceres has 6 hours on a day with activity tag 5B, that's a lot. Maybe use: "Teacher CACERES for activity tag 5B has max 4 hours daily, WP:100%" or max 2

2) Rodriguez and Talarico has 4 gaps per week, try to reduce to 3 or 2

3) Same problem 1) with Arrizabalaga (has 6 hours on a day with activity tag 5C)

4) Set min hours daily=2 for Ferreyra

5) Set min hours daily=2 for Arrizabalaga

6) Set min hours daily=2 for Russo

7) Pasquali has 3 gaps on Miercoles, try to reduce 2 or 1

8 ) Try to minimize min days for Ferreyra, Accorinti and Arrizabalaga

9) Teacher _SIN ASIGNAR means that there are no teachers that can teach those subjects. So try preferred time slots on hours 7º 11:25-12:05, 8º 12:05-12:45, 7º 17:10-17:50 and 8º 17:50-18:30 (because acts has durations=1 or 2) so that groups has not free hours

If you can't help me with all of them, please consider tell me what acts are problematic so I take a look

It's a challenge but I think it can be done!

Thank for the kind help
Quote from: Volker Dirr on December 18, 2023, 08:49:54 PMNo need to wait. Only start generating the exact dataset and click on "view initial order of placing the activities" while generating. You can do that as soon as generating starts.

I found it. Thank you
Quote from: Volker Dirr on December 18, 2023, 06:07:24 PMJust start FET a second time and run the exact dataset with single generation. As soon as it generates view the initial order list. This order is also used for multi generation. As we know that 300 activities can be placed it mean that activity 301 is not able to be placed. So check out the ID of that activity. Then you need to locate the problem with the activity of that ID.

How do I re-run a timetable with activities partially placed? Should I copy the seeds and re-run with them, and wait the same time (say 30 minutes) to see the partially placed activities?

Also, how do I know which is activity 301? The list goes to 300

Sorry for my bad knowledge of using the program

When using "Generate multiple", where can I find the "Constraints related to the last activities in the list below" dialog box after it appears when stopping in "Generate new" button?

I want to see the problematic activities or constraints when using multiple generations.

Also a basic question:

"Here are the placed activities which lead to an inconsistency, in order from the first one to the last (the last one FET failed to schedule and the last ones are most likely impossible):"

No: 1, Id: ....
No: 2, Id: ....
No: 3, Id: ....

Where should I start to detect inconsistencies? The first (No: 1) or last (No: 3)?

Thank you!!
Get Help on Your Input File / Re: Generation stuck
December 17, 2023, 10:05:27 PM
I have managed to achieve the following timetable.

I would like to keep improving it, for example we can start by setting max days for FERREYRA = 3 instead of 4 that was generated by fet. It got stuck at 321 / 324 with 4 threads (in 3 threads at 2 m 25 s, 10 m 44 s and 8 m 15 s using latest official version of fet).
Get Help on Your Input File / Generation stuck
December 17, 2023, 07:32:26 PM

Please help, I have the attached FET file, I need to have constraints max gaps and min hours daily activated for each teacher.

Thank you for your kind help

Suppose we have an activity with 2 teachers, A and B.

Normally FET would try to place the activity on the intersection of teachers not available times, so both constraints are satisfied.

However, since B is substitute of A, A is not teaching at school (in some cases he is at school but teaching other subjects). So instead of taking into account both constraints, is there a way to tell FET to only consider teacher B not available times instead of A & B only applied to that activity?

I know I could create a new teacher like: Teacher A (Substitute Teacher B) and create a new constraint, but I would like to know if there is an easier way.

Maybe using tags? Another constraint?


We had a pretty decent timetable. Recently a teacher changed its available times, so we need to reestructurate some preferred starting times. The teacher only teachs in "Afternoon hours" (the last 8 periods of 16 total periods), so only "afternoon" activities should be moved.

Below there is a list of problems and each problem have its corresponding problematic FET file, and I have attached a rar with a working FET file (the generation takes around 1 min).

Each Problem is commented in the files with a comment "OP: Problem X" e.g. OP: Problem C-1

Problem A: Acts of Teacher A should have a set of preferred time slots on Martes, Miércoles and Jueves. It seems it placed on Viernes but we want to place on Jueves.

Problem B: Teacher B and Teacher M are the same, and both teachers didn't teach on Lunes afternoon. But now it seems one of them (B) should teach on Lunes afternoon. We want to place its activities everywhere except Lunes afternoon.

Problem C-1: Before it seems that min days between activities was broken:

id=118 (    1/5 - AM - MATEMÁTICA - 2C - 2C)
id=117 (    2/5 - AM - MATEMÁTICA - 2C - 2C)

Now I would like to know if we can solve this issue.

Problem C-2: Also, related to teacher AM, before he had gaps = 4 on Miércoles only. But now, every generation shows that he has gaps = 4 on Martes and gaps = 6 on Miércoles. The latter is very frustrating. Could we reduce to max gaps per day = 4 or 3?

Problem D: Teacher BA usually have max gaps per day = 3, every week usually he has 8 gaps (I'm not counting the gap of the morning, since we should keep morning locked). Could we reduce to max gaps per day = 2 or something like max gaps per week = 7 or 6?

Problem E (should be solved after Problem A or Problem B): We would like to have Teacher AN teaching Matemática in 2C and Teacher AM teaching Matemática in 3C. But it seems impossible when I generate.

Each FET file is a separated problem file. We wish to achieve at least one satisfactory file, and then try to solve multiple problems in one FET file by combining several problems into one and try to generate a FET file. For example, Problem A was solved; then try to add Problem B into Problem A FET file and generate.

Important: Some constraints related to preferred starting time are activated. They are the "morning" activities. All my attempts were with this constraints activated since the teacher's available times change was only of "afternoon" activities, so there is no need to move activities of the morning. But, if you find that some problem is solved by deactivating some acts preferred starting times of the "morning", please let me know. I should ask for permission if we move some activity of the morning.

Can someone try to solve at least one problem with more threads, please? I tried ~5 minutes each generation but I couldn't solve any of the above issues.

All you have to do is open each Problem file, generate and see if it is completed. Then try to 1) Combine two problems into one and try to finish it, 2) if 1) is impossible, you can disable activities preferred starting times of the "morning" hours (not recommended, but possible if strictly necessary).

Thank you!!
Quote from: Liviu Lalescu on February 26, 2023, 10:36:27 PMUsually, I check the constraints of the teacher at the activity of which it stops (in our last case, id 59, teacher X, activity number 290/325). Unfortunately, this seems not to be the problem.

I did the same! I even raised its available times to the hour 4 of afternoon (instead of hour 3, because FET always placed its activity there), without success. Note: This was for testing, we cannot increase teacher available times.

Quote from: Liviu Lalescu on February 26, 2023, 10:36:27 PMI begin then to hunt constraints. For instance, I made all the constraints min days between activities 0% and the max placed activity remained 289/325. Note that there are some constraints which alter the initial order. These are preferred times and not available - the other, as I remember, keep the order.

I don't understand what do you mean by "Note that there are some constraints which alter the initial order"

Quote from: Liviu Lalescu on February 26, 2023, 10:36:27 PMThere might be a problem with 2C and 3C and 1C availability. Maybe on a day you have 2 free slots and on another day 2 free slots, and an activity which can be placed on 2 days as 3 hours on a day and 1 hour on the other day.

If I understood you correctly, the free slots on a course can occur in last 1 or 2 hours of a day (this was one of my first requirements).

This gives me space to ask another question: Would it be better to split activities of duration = 2 into two of duration = 1 each? I remember that I have done it in the past, but the generation was worst -- FET hardly placed any activity!

I remember you told me that this is because of FET placement activities algorithm. But if the solution for this particular problem involves splitting acts of duration = 2... then we might not finish the generation because of FET placement activities algorithm!

That sounds bad. But maybe we can start guessing what activities can be splitted into duration = 1, although, as I just say, it is not the best solution.
Hello Liviu

Yes, from what I understood the only change to the file is swapping teachers on 2C and 3C of Matemática. And of course deactivate last time constraint since it would be unncessary.

Please see fixed FET file. Now it stops at 289/325.

Do you have any trick to figure out what constraints should be relaxed? Because I would do it by trial and success, but this can cause that some flexible constraints actually can be more restrictive.

Please see attached FET file with data and timetable. That is the last achieved timetable.

However, the school told me that soonly there will be a swap between Teachers AM and AN on courses 2C and 3C.

So in order to make this working, they told me that on Martes on hours 1º and 2º (of afternoon) it can't be teached Matemática because of teachers AM and AN not available times.

So I created the following constraint (it is last on the unordered time constraints list):

Time constraint
Activities with:
Activity tag=2C

If you deactivate it, you will get a complete timetable.

So I tried to deactivate all acts preferring starting times, but it seems impossible.

What would you propose to solve this issue? Please let me know what changes you made to the file.

Thank you!

ADDED: The person in charge of doing the timetable told me that he could not solve this. If he can't by hand, I guess we can't by computer :)
After 36 minutes it was generated. But I think I deactivated some "important" constraint.