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 - darkwindow


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.

Recently Teacher BF restricted its available times, so I need to work with this change but the generation takes too long. I waited for ~28 minutes and it stucks around 309/325 319/323 activities.

The FET file is attached.

Can someone try with more threads, please? Or instead, flexibilize some constraints but give me warnings about what constraints were modified.

In the meantime I am trying without success.

Teacher Q must have max gaps per day = 0 or 1 (in the file is set 1).

Thank you!

EDIT: Teacher BF restricted even more than I thought. I upload the updated FET file while I am generating. I also deactivated

X - Teacher min hours daily, WP:100%, T:Teacher BF, mH:2, AED:yes
X - Teacher max gaps per day, WP:100%, T:Teacher BF, MG:2

so we can play a little more. But it would be great if those restrictions are activated again. Also we can temporally remove min days between activities of this teacher, but it should be necessary to keep them activated.
Quote from: Liviu Lalescu on February 23, 2023, 07:08:32 AMJust go to advanced lock/unlock, and unlock all in time (or in time and space). It will remove all not permanently locked constraints.

I will try. Thank you!
General Stuff / Re: Como subir archivos
February 22, 2023, 11:51:04 PM

In Spanish:

Si te refieres a subir los archivos FET a Google Drive, simplemente búscalos en tu computadora y arrastra o desde Google Drive selecciona los archivos FET que quieres alojar en la nube.

Para eso debes buscar el archivo cuya extensión sea ".fet".

In English:

If by "drive" you mean upload FET files to Google Drive, then you can simply find them on your computer and drag to or from Google Drive pick the FET files you want to store on the cloud.

To achieve this, first you need to find the file whose extension is ".fet".
Sorry, I didn't mean permanently lock activities.

As a side note, I don't know what are these for. I read the help but I didn't understand what are permanently lock activities. :(

I mean finding a way to delete "activity preferred starting times" at once, without using "enter/return" key.
Hi Volker

Quote from: Volker Dirr on February 22, 2023, 10:12:04 PMa) Go to FET -> Data -> Timeconstraint -> Activities -> Preffered times -> activity preferred starting times"
There filter the activities that you want to delete. Then select the first activity with the mouse, press one time with the mouse button on remove, but then don't use the mouse anymore. Only hold down the "enter/return" key until all activities are deleted (can still need some time if there are many)

Actually I do this, but it is tedious. As I said I need to do it ~600 times for unused preferred starting times constraints.

That's why I ask if there is a better shortcut.

Everytime I want to upload a FET file into the forum, I want to delete unnecessary "activity preferred starting times" constraints that were from past files for size purposes.

I can do Remove + Enter every time, but it is not as fast as I would expect (my file has ~300 unused activities plus files with past generations it can have ~600 unused activities).

I need to know how to delete them when the constraints are and are not deactivated more quickly.

I tried searching inside the XML FET file and deleting some <tags>, but I don't quite understand what tags I should remove.

I seemed to see that they were in different positions in the code, so I'm sure that I can delete something wrong.

Thank you!
Ok, so we can remove "Activity preferred room" if new changes are required.

Quote from: Liviu Lalescu on February 21, 2023, 04:24:53 PMNo, they are not redundant. They are part of the solution. If you remove them (activity preferred room), and the preferred rooms for the subjects are 100%, FET will place them similarly in the same rooms. Probably the performance is not increased.

I mean "Activity preferred room" is created after FET successfully generated a timetable, like "Activity has a preferred starting time", isn't it?

If yes, then we can consider delete them/deactivate them like when we work with a timetable with new constraints, we need to deactivate (maybe all) "Activity has a preferred starting time" constraints.

It is a question for future timetables, not for this one.
With respect to rooms, I see that in our files we have "Activity preferred room" activated constraints.

In my school, it is not necessary to know which room is assigned to which teacher. Since we have "Subject preferred rooms", can we delete "Activity preferred room" constraints since I guess they are redundant? And this would increase performance?
Sorry I read wrong -- you found a solution with Teacher AQ MG = 0, I read Teacher Q MG = 0 (where the generation is stuck). Now I understand ;D