Hello, everyone.
It is possible to set a parameter to suppress gaps count between periods?
I mean, if both the last morning class and the first afternoon class are vacant, fet will count them as a double gap.
Meanwhile, my country's (Brazil) labor laws doesn't count them as "payable" gaps.
That said, when I set a weekly maximum gaps as, say, 7 gaps, fet will erroneously (for my case) count them, leaving less room to accommodate the activities on the other open windows.
There comes a picture to illustrate my case.
Any recommendation to fix this?
My best wishes,
Victor
Hello, Victor,
I am not sure I understand correctly. Would you like to consider on such a day as having zero gaps? Maybe there are two solutions:
1) Use the Mornings-Afternoons mode. Please read the help for it.
or
2) A customization.
Hello, Liviu.
I would like to use a constraint to define the maximum number of gaps per morning and the maximum number of gaps per afternoon, without considering empty windows between morning and afternoon, such as the red painted windows in the image.
Hello, Victor,
I think you could use the Mornings-Afternoons mode. Please see its Help. You have in this mode many kinds of gaps constraints for teachers and not so many kinds of gaps constraints for students.
The idea is that you double the real number of days per week into 2*n FET half-days, and add max gaps per day/week constraints. In addition you have also teachers max 0 gaps per afternoon, max gaps which consider real days, and max gaps per morning+afternoon, and for students max gaps which consider real days.
Hello, Liviu.
That can be really helpful.
My best wishes,
Victor
Great! Let us know if you succeed.
Hello, Liviu.
In my case, I have restrictions on tag exchanges between periods. If I use the first option, creating separate days for morning and afternoon, would it still be possible to create these gaps? Because I believe this restriction only works within the same day.
Hi, Victor,
Do you mean constraint teachers/students min gaps between ordered pair of activity tags or between activity tag? You are unfortunately right, in this case.
A customization to modify these constraints might be possible.
Hello, Liviu.
That's right, here we have 4 buildings, and each teacher can move between them during the day, but they need a gap to have enough time to reach the other build.
Are you sure these new constraints are important? And that there are not needed other constraints?
I thought about it and it might be a good idea to add some new constraints in the official FET.
Why do you use tags constraints and not buildings constraints? I could add the constraints teachers/students min gaps between building changes per real day.
But if you want constraints for tags, I could also add the constraints teachers/students min gaps between ordered pair of activity tags.
Please let me know your opinion.
I would also like to have your file to check the new constraints, if I implement them.
Hello, Liviu.
In the current scenario, each building has classes for both the school and the course, and the initial class schedules have a 15 minutes difference between them. Therefore, for a teacher to go from the school to the course, even if they are in the same building, it is necessary to add a gap. That's why I use the gap by tags.
Yes, I can send you the file. Would email be the best way to do it?
Hello, Victor,
Please send the file in any way you prefer. Email is fine.
I could add the constraints teachers/students min gaps between building changes per real day in the official FET. But you say that these are not useful, because you already use buildings for other constraints?
Then, I thought about it, it is not very nice to add tags constraints in the official FET - it would be a bit weird.
So, I think I will make a customization just for you, so that the min gaps tags constraint is modified.
I am having a bit of hard time understanding exactly your words - what is school and course?
Hello, Liviu.
If I divide the days into two periods, morning and afternoon, would it be possible to direct the gap between tags to the chosen days? Because when it's different days, for example, Monday and Tuesday, these gaps don't need to be respected.
The institution offers classes for elementary and high school, which are referred to as "school", and classes for students who have already graduated from high school and are taking exams to enter college, referred to as "course".
Hello, Victor,
Do you mean between Monday morning and Monday afternoon you need to have at least one gap between the tags, but between Monday afternoon and Tuesday morning there is no need for the gap between tags? So, in FET Mornings-Afternoons mode, between the first half-day and second half-day yes and between the second half-day and third half-day no?
I think as a customization we can add what you need. Please send me your file attached here if it is not private or by email if it is private, so I can make an impression on it. Then, if the above paragraph is true I'll try it and let you know. You can find my email address on my homepage or on the FET page contacts section.
I prefer a customization for now, but if it is good we can add it also to the official FET.
Hello, Liviu.
That's correct, a gap between tags is required between morning and afternoon of the same day, and it's not necessary between different days.
I have sent the FET file to your email.
Also, I was thinking, in case this possibility doesn't work well, would it be possible to create a tag to assign the maximum number of gaps within a single building by defining an interval of hours?
Hello, Victor,
Max gaps between single building - I think it is impossible.
File received. But unfortunately I think it is wrong - you did not understand correctly the Mornings-Afternoons approach. It is more complicated in your case - maybe you need to make 3*6 FET days per week and I am not sure Mornings-Afternoons will work. Maybe an Official mode with 3*6 FET days per week will work. I also don't understand why you added the subjects like that, and the activities, not split as subactivities.
Also, a FET day should have only 6 hours.
Hello, Liviu.
I made the modification so that it includes mornings and afternoons as days and removed the part about evenings, which will not be included in this phase of the planning, resulting in 2*6 days.
I created a Python system to fetch spreadsheets on the network and automatically generate activities and constraints. This method of declaring subjects was used to identify which spreadsheet the activity was assigned to, and some activities that could be subactivities are not categorized as such because they come from different spreadsheets.
I sent you a new version of the FET via email, please check if it makes sense.
Thank you very much for the feedback.
Hi, Victor,
It seems OK.
I see that this file solves much faster than your previous file. I will now try to make you the customization of teacher min gaps between ordered pair of activity tags, so that it will take care also from FET day 1 to FET day 2, 3-4, 5-6, 7-8, 9-10, and 11-12.
Hello, Liviu.
Thank you very much for the support. I look forward to hearing back from you.
I will write you hopefully soon, Victor! :)
Hello, Victor,
I found some possible problems in your file. They allow me to work, but I am not sure they are OK for you. Also they might be the reason why your new file solves so easily/fast: I think you need to update the constraints teacher/students set not available times. Also, please check if you need to update the constraints max days between activities (I think not, they care about real days).
Hello, Liviu.
One of the reasons why this version is faster is that I removed the Max days per week for a teacher.
The constraint for teacher/students set not available times is not complete, but at the moment, I don't think it makes it easier to conduct tests.
Max days between activities constraints are okay.
Hello, Victor,
OK then, I will work on your current file. I am confident it is possible in a short time, stay tuned.
Hello, Victor,
I think I did it correctly. Please get the custom version from here: https://lalescu.ro/liviu/fet/download/custom/victorcapel/
Please let me know.
Hello, Liviu.
That sounds good. I will perform more detailed tests and let you know.
Thank you so much!
Hello, Victor,
I have a personal request, if I may: (only) if my work proves useful, please consider recommending your institution financial help for FET. It is the only way this project gets funded.
You are welcome, and also thank you!
Hello, Liviu.
Don't worry, I will recommend financial assistance; moreover, I will promote your project here in Brazil.
FET proves to be a brilliant tool, congratulations on the project!
Hello, Victor,
Thank you for the appreciation and kind intentions!
Hi Liviu,
Thank you very much for the development of FET and all the support.
We sent 2 donations, one of 200 and another of 300 euros, sorry for the delay, but the the bureaucratic process within the company took a bit of time.
I work together with Erick Nimtz, who has already made a donation to you and introduced me to the software.
Thanks again! =]
Hello, Victor,
Oh, this is very kind of you! I will announce you when I receive it, and I will add it then on the donations page.
Hello Victor,
I just examined the TODO file. I saw that for your question there is this item (with my words): Add the constraints teachers/students min gaps between building changes per real day and/or the constraints teachers/students min gaps between ordered pair of activity tags per real day.
As I see above, I made for you a custom version with a new feature. I am thinking of implementing some new constraints in the official FET. Which of them would interest you? One (which?) or both, or maybe none?
Will you help me test, if I do them?
Hello Liviu,
In my point of view both constraints could be include in official FET, but it needs to be a separate option, because in the version you created for me, when you set the restriction for min gaps between tags, it automatically generates the constraints per real day; In my case, that is what I needed, but It is a specific case.
Another suggestion, You could create a constraint that set the max gaps between building changes per real day and the constraints teachers/students min gaps between ordered pair of activity tags per real day.
This way, we can set a closed interval for swaps, avoiding a too long gap between morning and afternoon classes, and preventing the teacher from having idle periods.
What is your opinion?
I could help you with the test, for sure!
Dear Victor,
Do you mean max gaps between ordered?
I meant adding new constraints, with "per real day" instead of "per day".
I thought about it. I am not sure how useful they would be to other users. But I'll consider them for addition, maybe in some new version.
Unfortunately, max gaps is impossible to implement perfectly. There were also other users requesting this, but I couldn't do it.
I could try for you some coding tricks or coding it not perfectly, if it works on your file, for these max gaps.
Oh... just crossed my mind: you have teachers/students max gaps per real day. Isn't this working?
Dear Liviu,
That's right!
I think it makes a lot of sense to have this option of a max gap between tags per real day, especially for buildings with long distances.
It's sad not being able to add a max gaps between gaps.
No, I have max gaps per day and per week.
Hmm, Victor, I am not sure I understand correctly. In the Mornings-Afternoons mode you have the constraints teachers/students max gaps per real day, you only need to enable it from Settings.
But if this does not work, if you show me an example of old timetable I could try to make a further customization to try to simulate max gaps between ordered pair of activity tag (implemented as a nasty hack, but it might work).
I am not sure I understand correctly, you just want max gaps per real day or max gaps between ordered pair of activity tags per real day?
Quote from: victorcapel on August 11, 2023, 08:12:50 PMWe sent 2 donations, one of 200 and another of 300 euros, sorry for the delay, but the the bureaucratic process within the company took a bit of time.
Hi, Victor,
I am sorry, but these donations still did not reach me. Could you check, please?
Quote from: Liviu Lalescu on August 23, 2023, 10:22:27 AMHmm, Victor, I am not sure I understand correctly. In the Mornings-Afternoons mode you have the constraints teachers/students max gaps per real day, you only need to enable it from Settings.
But if this does not work, if you show me an example of old timetable I could try to make a further customization to try to simulate max gaps between ordered pair of activity tag (implemented as a nasty hack, but it might work).
I am not sure I understand correctly, you just want max gaps per real day or max gaps between ordered pair of activity tags per real day?
Sorry for the misunderstanding.
In my version of FET, it's working perfectly.
In my version, when the max gaps between ordered pairs of activity tags are added, it's automatically added for real days.
Quote from: Liviu Lalescu on August 25, 2023, 09:19:59 PMQuote from: victorcapel on August 11, 2023, 08:12:50 PMWe sent 2 donations, one of 200 and another of 300 euros, sorry for the delay, but the the bureaucratic process within the company took a bit of time.
Hi, Victor,
I am sorry, but these donations still did not reach me. Could you check, please?
Hi, Liviu.
I will send you the receipts I received from the company by email.
Quote from: victorcapel on August 29, 2023, 12:17:33 PMHi, Liviu.
I will send you the receipts I received from the company by email.
Thank you! We'll talk by email about this.
Hi Liviu,
I'm having issues with an error in FET, do you know what it might be?
Hi, Victor,
Are you working with your custom version? I suppose so.
In a ConstraintTeacherMinGapsBetweenOrderedPairOfActivityTags you have an inexistent second activity tag.
Please let me know.
Hi, Liviu.
Yes, I'm working with my custom version.
I will check my activities tag.
Thank you!
Dear Victor,
In recent versions of FET (the current version is FET-6.18.1, and the feature was introduced in FET-6.17.0), there is a constraint of type teacher(s)/students (set) max building changes per real day in hourly interval. I hope this solves your problem, without the need for a customization, so that you can always use the latest version of the official FET.
Indeed, suppose you have hours in a FET (half) day: 8, 9, 10, 11. Then you can add max 0 building changes in real day interval: [11 morning, 9 afternoon).
Please let me know what you think.
I attach a very small sample file.
Dear Liviu.
I tried to use the new version, but the problem is that I need a minimum interval, without specifying a start and end interval.
So, between the tags col-ar-m and col-vl-t, I need a minimum interval of 3 for morning, afternoon and between morning and afternoon.
Hello, Victor,
Could you send me your input file, as a reminder for me?
I think, as I remember when I wrote you the above things, that my trick is useful if you want at least 1 FET hour gap between building/room changes between morning and afternoon of the same day.
If you want min 3 FET hour gaps between building/room changes between morning and afternoon of the same day, I think the trick won't work :(
If you want, I could update your custom version to the latest FET.
Hello again, Victor,
I just saw your old file. Hmm... indeed, you need more gaps.
Please tell me: is this constraint really useful for you and maybe for other Brazilian institutions? If so, I could add new constraints: teacher(s)/students (set) min gaps between activity tag / ordered pair of activity tags per real day.
I could start working right now, please let me know.
Hi Liviu.
It May be useful for other Brazilian institutions in Mornings and afternoons mode!
If you make it I can use the new version.
Thank you for letting me know, Victor!
I will add new constraints in the official FET, the future version 6.19.0. The constraints will be: teacher(s)/students (set) min gaps between activity tag/ordered pair of activity tags per real day. So, overall, 8 new constraints. Do you have better suggestions for the names/functionality of these new constraints?
I will begin work now or a bit later today. I will let you know when ready. I hope in maximum 2 days we will have a working snapshot for you to test. But I think that the official release will need to wait for Qt-6.7.0 (announced on 26 March 2024).
Thank you, I appreciate it.
I believe it's a good name for these constraints.
Agreed, Thank you for letting me know, Liviu!
I did the most difficult part, the important part of the engine. Tomorrow evening it might be ready. I will let you know, and I hope you will help me with testing, the sooner the better.
Dear Victor,
It is done. See the Snapshots section here on the forum, or: https://lalescu.ro/liviu/fet/download/test/
Please test and let me know.
Dear Liviu.
I will test today!
Dear Liviu.
It works well.
let me know if you need anything else.
Thank you for the report, dear Victor! Nothing else is needed.
I hope you will like the many improvements added in the interface since your version (you can read the News / ChangeLog). And you will always benefit from the latest version.
Some really cool stuff came in that will work for some teachers, I appreciate all the support, Liviu. ;D
You are welcome, Victor!
Could you please remind me / explain to me more detailed, for your file, you needed teacher(s) min gaps between building changes per real day and you used the trick with tags? Or the constraints for tags ensure more than this?
I am interested if maybe other teachers/you would need rather teacher(s) min gaps between building changes per real day constraint(s).
You definitely used this interesting trick, and I am not exactly sure I understand it. I would like to understand it completely.
PS: I saw some constraints with min gaps = 0. These are useless.
Hi, Liviu.
Many schools have high school and college preparatory courses in the same building with a few minutes difference in Brazil, so the min gaps between buildings do not solve these issue.
Thank you for informing me, Victor!
Hi Liviu.
I have a question: shouldn't the constraint 'min gaps between an ordered pair of activity tags per real day for a teacher' only work between the morning and the afternoon? I noticed that it also works throughout the day.
Hello, Victor,
Indeed, per real day means that FET will consider for instance Monday=Monday morning+Monday afternoon, and check the constraint min gaps between order pair of activity tags for this whole Monday. This is how all the FET constraints for the Mornings-Afternoons mode for real days work. Think for instance of max hours daily per real day, or max gaps per real day. I cannot make, logically, this constraint (min gaps), to consider only from start=morning and end=afternoon.
I hope this is not a problem for you; otherwise, maybe a customization is possible, or we need to talk about the official FET modification, but I hope not. But your custom version worked OK before I added this new constraint in FET, isn't it?
Please let me know.
Hello, Liviu.
In my point of view, we could modify the constraint of a real day to be just between morning and afternoon. This way, we could manage the gaps within the day (morning or afternoon) and between morning and afternoon.
Dear Victor,
I have doubts I understand correctly your suggestion:
1) You need this change because your situation is incorrectly handled, meaning FET will constrain the timetable more than it is needed? Or it is just a cosmetic suggestion you are making?
2) I think we cannot make the official FET consider "per real day" for this constraint to consider "between morning and afternoon". If it is really needed (see 1), I could think of maybe a new constraint, teacher(s)/students (set) min gaps between ordered pair of activity tags between morning and afternoon. But the name is long, I doubt other users would need it, and I think and hope it is not really needed (see 1).
Or a customization, just for you.
Dear Liviu,
1- Yes, FET will constrain the timetable more than it is needed; In my case the gap between activity tags is lower between morning and afternoon.
2- Could be a just a customization for me.
Dear Victor,
I deeply apologize for this problem. I think you lost much time until you discovered this problem. You assumed FET to be more intelligent than it is.
I will make you a customization, so that min gaps per real day will consider in fact from morning to afternoon only. I hope it is possible in the code. I am not home and on my usual computer. I will arrive home on Sunday evening, most probably. If it is urgent, I can try it tomorrow, but this computer takes 1 hour for a full compilation, and the internet is slower. Do you compile FET from sources? I could modify the file generate.cpp and email it to you, in this case.
The most elegant solution would be to add new constraints in the official FET: teacher(s)/students (set) min gaps between activity tag/ordered pair of activity tags between morning and afternoon. If any institutions are interested into a sponsorship contract for this new feature, I will try it. Otherwise, I will add this in the TODO list.
Dear Liviu,
Don't apologize, I was the one who didn't notice this issue. It's not urgent, it just helps with scheduling because it allows for some exchanges that currently aren't possible due to a larger minimum gap being counted.
This solution seems very good to me: 'teacher(s)/students (set) min gaps between activity tag/ordered pair of activity tags between morning and afternoon.'
Sorry, but I didn't understand this part: 'If any institutions are interested in a sponsorship contract for this new feature, I will try it. Otherwise, I will add this to the TODO list.'
I will request another donation here for this new help. I don't know if this is what you were talking about. :D
Dear Victor,
I will check tomorrow the code, or on Monday, and do the customization for you probably on Monday or a bit later. The constraints of type min gaps per real day will consider only from morning to afternoon. I think it is an easy change, and this is a bug fix/small feature change for you, absolutely free. It will be a customization for you.
The most elegant way would be to modify the official FET to include these 2*2*2=8 new constraints in the Mornings-Afternoons mode. This is probably simple, but long and tedious work. If other users/entities reading this post consider FET deserves a sponsorship contract for this or for other features, please feel free to contact me. I don't know if it's appropriate to talk about price publicly, but I can do this if it is.
Anyway, these 8 constraints will be added in the official FET TODO list.
Dear Liviu,
OK! Thanks for your help Liviu.
Dear Victor,
After a good night rest and thoughts, I decided to add these 8 new constraints to the official FET. I will begin work now, maybe in a few days I will be ready. I then will need to ask the 4 active translators for their help, and hopefully release FET-6.20.0.
Hello, Victor,
The engine (the most difficult and critical part) is done (compiles, but I cannot test until I also add the interface part).
Maybe on Monday I'll do the interface.
I am ready with the snapshot with these new constraints. I hope to release in a few days. See the forum snapshots announcements section or download directly (from now), from the usual test location: https://lalescu.ro/liviu/fet/download/test/ . I hope you can test before I release.
Thank you for the suggestion!
Dear, Liviu.
I will take the test now and get back to you shortly. Thank you very much for your effort and speed.
You are welcome! Thank you, too! :)
Dear, Liviu.
I ran several tests, and everything seems fine!
Thank you for the report, dear Victor! So, you checked and the timetable is no longer constrained more than necessary? I mean you found timetables with say min 4 gaps per day and min 3 gaps between morning and afternoon?
Exactly that, Liviu.
Great! :)
Feature added in the just released new version, FET-6.20.0.
Thanks, Liviu!
You are welcome! Thank you, too! :)
Dear, Liviu.
I have a question: Is it possible to add new constraint for max gaps between an ordered pair of activity tags for a teacher?
Dear Victor,
It is a research problem. It might be possible, but I am not sure that it can be efficiently implemented in FET. We could try for the beginning a custom version and if I like the implementation and the efficiency I might add it into the official FET.
Did you see the new announced snapshot FET-6.21.0-snap, which adds a real view for the timetables in the Mornings-Afternoons mode? I intend to release the official FET-6.21.0 tomorrow afternoon.
Dear, Liviu.
I imagine it could reduce performance, and it could also be a constraint for the max gaps between ordered buildings. I don't know if this could be better.
Yes, a real view for the timetables in the Mornings-Afternoons mode will help me a lot!
Dear Victor,
Quote from: victorcapel on June 04, 2024, 02:51:27 PMDear, Liviu.
I imagine it could reduce performance, and it could also be a constraint for the max gaps between ordered buildings. I don't know if this could be better.
Max gaps between building changes is very complicated/impossible.
For tags, it might work, but it is a research problem. It is a kind of difference between max hours daily and min hours daily; min is more difficult to implement in FET and less efficient regarding speed, but it works. Also, it is like the difference between max hours continuously and min hours continuously; max is easy and done, min is difficult and not done (might be impossible/not feasible).
QuoteYes, a real view for the timetables in the Mornings-Afternoons mode will help me a lot!
I am glad! :)
Dear, Liviu.
I got it, thanks!
I will think of your suggestion, max gaps between an ordered pair of activity tags for a teacher. If I will have free time and the courage, I might give it a try as a custom version, if you really need it. But I don't promise.
Until then, I'll add it in the TODO.
Please tell me: in the Mornings-Afternoons mode, and for a day, for a real day, and between morning and afternoon, like the "min" constraint?
It is ok!
I just need for a day the constraint max gaps between an ordered pair of activity tags for a teacher.
So for the Mornings-Afternoons mode, for a FET (half) day?
Also, can on a single day be a single tag present, or there must be both tags present?
That is it!
Could have both or just one, if have both tags it needs to have a max in a half day.
OK, I will write this in the TODO file. Hmm... difficult... :)
Hi Liviu, I have a question. Is there any constraint I can use to prevent the overlapping of free windows.
Context: For each subject, I have a group of teachers, and I would like their free periods not to overlap. This way, I always have at least one teacher available in case of an emergency.
Hello, Victor,
Maybe constraints activities max simultaneous in selected time slots. Add for each subject all the activities, select all slots, max simultaneous = n_teachers-1.
Or maybe a constraint activities occupy min time slots from selection, select all the activities of a subject, all slots, min occupied = a corresponding value.
Quote from: victorcapel on December 06, 2024, 01:08:16 PMHi Liviu, I have a question. Is there any constraint I can use to prevent the overlapping of free windows.
Context: For each subject, I have a group of teachers, and I would like their free periods not to overlap. This way, I always have at least one teacher available in case of an emergency.
Could you provide us with some further information? For example, how many teachers should be taken into account for these non overlapping gaps? How many free periods (gaps) should each teacher have? For example maximum 2 gaps per week & one per day each one of them? How many of these gaps should be counted into the "non overlapping gaps"? One per week? Two? How many teachers should be available simultaneously at least/at most? If you need to solve exactly your problem, most likely you might need to use some tricks...
Vangelis.