Main Menu
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 - GEA_user

#1
I understand your "sorry" better now.
Thanks for the suggestion to switch to French, but I think the forum will be easier to read if it stays in English.
Best regards,
#2
I'm not sure why you're sorry, but I'm the one who should be sorry. My text is automatically translated using an app (since my English is still pretty poor), so there might be some misunderstandings because of that.
In any case, thank you so much for your openness and responsiveness!
#3
It's up to you—I obviously don't know all the ins and outs of FET's internal coding.
I'm looking for alternatives that would be more acceptable to FET. Another idea might be to add a "Generate in a new instance" button in addition to the "Generate" button.
What do you think?
Best regards,
#4
I understand that too. Working for the sake of glory has never put food on the table.
Thanks for the TODO list.
Unfortunately, I'm tied to a French government agency that's very strict about external expenses.
Perhaps it would be easier to link multiple FET instances with a well-placed FET file reload button (for example, in the subwindow for generating timetables)?
#5
It is indeed possible to open two instances of FET on the same file, but the two instances are independent. Any changes (including saves) made in one instance will not be reflected in the other.
Currently, you must first close any child window of the second instance, then reload the FET file there so that the changes are visible, and then reopen the closed child window.
In other words, you can currently only have a single child window open on the same FET instance, whereas sometimes you might want to have several. And be able to generate a timetable in parallel.
Greetings,
#6
Hello,
I've noticed that to start generating a timetable, you have to open the dedicated window from the main window and then start the generation process.
Would it be possible for that dedicated window to operate independently of the main window?
The idea would be to be able to work on a FET file, save the file, start a generation, and continue working on the FET file at the same time (and perhaps not be able to save until the generation is finished). With timetable generations that take several minutes, this would save valuable time. It could also be used to simultaneously verify certain aspects of the selected constraints, as well as the teachers or students involved.
Greetings
#7
So that confirms what I thought—it's not possible at the moment.
Thanks for adding it to the TODO list. ;D
#8
Hello  :) ,
I'm encountering a problem in the same context that I don't know how to handle. I've attached a minimal file that illustrates my issue.
Let's say that teacher1 wants to have the same time slot every real week (except in exceptional cases) with the students1 group, and that Thursday in week2 is a holiday. Given that teacher2 teaches chemistry to the same group, students1, in two 3-hour blocks—either on Monday, Tuesday, or Thursday in week2.
My constraints are as follows:
teacher1's activities start at the same time (90% of the time(
minimum days between teacher1's activities is 5 (95% of the time)
maximum days between teacher1's activities is 25 (100% of the time)
The proposed percentages are to prevent FET from searching for a solution for too long.

The problem is that sometimes FET will propose a solution where Teacher1 has classes in the same time slot every actual week except week2 which is the expected behavior—but sometimes it may also propose a solution with classes on Tuesday in week1 and on Mondays in weeks 3 through 6.
To avoid this, I haven't found any other solution than to remove teacher1's activity in week 2 from the constraint "minimum days between teacher1 activities is 5 to 95%" and to add a constraint of the type "minimum days between teacher1's activities in week1 and week3 is 10."
However, I don't know in advance whether Teacher1 will have a problem with the holiday in week2; this is due to the scheduling of teacher2's class, which is constrained by the holiday.
In other words, I feel like I have to, by default, perform this adjustment for all activities in a given week whenever there's a specific issue like unavailable students or a holiday (which happens, in my case, every other week).
How can I use Terms mode to simulate a constraint like this: teacher1's activities are on the same real day (95% of time)?
Best regards,
#9
Hi,
I wasn't familiar with the "break" constraint; that's interesting.
Your idea of using constraints on sub-activities by specifying the index won't work in my case because there's no guarantee that the first sub-activity actually starts in week 1. For example, the chemistry activity with teacher3 is split into five sub-activities but doesn't start until week 3.
However, I will be able to use a CSV import that specifies a tag for each sub-activity indicating the actual week it applies to. It will then be possible to specify preferred time constraints that apply globally to all activities and are based solely on the actual week tags. I've checked, and this significantly reduces the number of constraints per course!

Thank you very much! :)  I'll look into this further for my imports and see how to automatically generate the correct tags.
#10
Good evening,
I've started testing the official mode and the Terms mode to better illustrate my problem using a basic example. I've attached the two FET files I created.
 There is a single group of students in a school with 3 teachers: teacher1 who teaches math, teacher 2, who teaches English, and teacher3 who teaches chemistry. There are 6 real weeks of 5 days each, and each day has 7 possible time slots.

teacher1 must teach a total of 8 math classes distributed as follows: 2 in the first real week, then one per real week, and finally 2 in the 6th real week. Over the 6 real weeks, there is the same time slot (same real day and same starting hour) for one class; the remaining two classes take place on other real days in real weeks 1 and 6.
Teacher2 must do exactly the same thing but with English classes,
and finally, Teacher3 must teach a total of 5 chemistry classes: three in week 3 and two in week 4; the time slots are not linked to one another.

Using the official mode, I tried a workaround by counting the real weeks as FET days (i.e., 6 FET days) and the real 7-hour days as FET hours (i.e., 7 × 5 = 35 FET hours, monday_08:00, monday_09:00, ... ,monday_17:00, tuesday_08:00, tuesday_09:00, ... , friday_16:00).
I ran into a problem right away with the constraints of the math class with teacher1: I don't know how to explain to FET that monday_15:00 and monday_16:00 are hours to be followed, but that monday_16:00 and tuesday_08:00 are not.

I tried two approaches for the 8 classes (math and therefore English):
for teacher1, I have two activities, one with 2 sub-activities for the two additional classes and the other with 6 sub-activities, with:
- 2 constraints to ensure the same time slot (starting hour and real day) for the second activity,
- 2 constraints to specify that the first activity must take place in real weeks 1 and 6,
- 2 constraints to specify that the first activity must have the same period (i.e., same real week) as the two corresponding sub-activities of the second activity,
- and finally, 2 constraints to specify that the preceding activities taking place in the same period must be at least 1 day apart.

For teacher2, I have a single activity broken down into 8 sub-activities, but for the rest, the constraints are similar, bringing the total to 8 again.
And 8 constraints for a "simple" course—I think that's a lot when I know I'm going to have to create 18 student groups, 80 teachers, and about 300 courses.

Ultimately, while the Terms mode seems useful in my case, it doesn't fundamentally change the situation, mainly because the idea behind the Terms mode is for FET to choose the right term to place the right activity, whereas in my case I already know which activity should take place during which term. Furthermore, the method of using a single activity rather than two seems more intuitive to me and would likely result in a more readable CSV import of all activities.
Finally, regardless of the version of FET used and whether activities are split into one or two, what I really missed were tags for the FET days (I'm thinking of tags named week1, week2, etc.) to create time constraints based on these tags that are simpler, fewer in number, and more readable than the constraints I used.

But maybe I just used the constraints incorrectly?


#11
Okay, I'll take a closer look at the documentation for Terms mode.
And if I don't use Terms but FET Official instead, is there any documentation on the topic I've been working on for multiple weeks?
Another question—I thought I understood this wasn't possible, but I'd rather ask explicitly to be sure:  :'(
Is it conceivable to import, at least partially, the constraints associated with a project into a CSV file (to more easily manage the volume of data in a suitable interface like a spreadsheet)?
And if not, are there any tips for handling this more effectively?

#12
Thanks for the fast answer,
I just realized how powerful comments are when combined with filters—it's really impressive!
Looking more closely at Terms mode, it seems like I'd need to set 16 periods for my 16 actual weeks; then add constraints like "1 max activities from a set in a term" and "1 min activities from a set in a term" to ensure exactly one activity per real week.
Have I understood this correctly?

I saw that this Terms mode came from this discussion thread: https://lalescu.ro/liviu/fet/forum/index.php?topic=4387.120.
Is there any other documentation I should look at for Terms so I can choose between FET Official and FET Terms?
#13
Hello Liviu,
It's with a touch of nostalgia that I'm returning to the task of designing a course schedule. The last time I used FET was over seven years ago! :o
While I may have forgotten a bit about FET, it has come a long way since then! :)

My needs haven't fundamentally changed:
- It's still a 16-real week university schedule.
- There are still two types of teachers: "regular" teachers and "external" teachers, with both types having activities spread over several weeks—sometimes keeping the same time slot, sometimes not. Some activities take place several times per real week in certain weeks and only once per real week in other weeks.

The custom version you designed for me back then helped me a lot, but today I don't know which of those features have been integrated into the official FET version.

In the README.GEA below:
2018-09-21
From Anthony Siaudeau:

TODO (too difficult for now) -> 1) Is there a possibility to have tags to constraints (for example to activate/inactivate a group of constraints with one click) ?

DONE -> 2) Is there a possibility to activate/inactivate activities with one click in the activities windows ?

Check boxes for active/inactive in the activities dialogs and in the all time/space constraints.

The dialogs of constraints of type:
   - max days per week for teacher
   - max gaps per day for a teacher
   - max gaps per week for a teacher
   - max span per day for a teacher
   - min hours daily for a teacher
   - max gaps per day for a students set
   - max gaps per week for a students set
are enhanced.


2018-11-25:

The modified dialogs are improved, by putting the last line with the "Close" button (as requested by Anthony Siaudeau).


2018-11-26:

There were introduced weights names for the constraints allowing less than 100.0% weight.
Warning: The locking constraints might work incorrectly if you give them weights names instead of a real number.



Point 1) does not appear to be implemented in the official FET version.
Point 2) regarding activate/inactivate appears to be implemented in the official FET version; it seems likely that the improvements to the mentioned constraints have been effective since then.
Point 2018-11-25 appears to be obsolete.
Point 2018-11-26 appears not to be implemented.

I don't know if anyone has since expressed a need for the two unintegrated points. Here's why I consider them interesting:
- The ability to tag some constraints allows for creating groups of constraints by priority level or by topic (for example, some constraints are created to address the issue of a holiday in real week or a real week with very few activities (typically the last of the 16 real weeks). Being able to filter these constraints using a tag would allow them to be disabled with a single click, enabling the generation of an initial schedule without worrying about them, and then reactivating them once a satisfactory initial schedule has been established.
- The ability to assign names to constraint weights follows a similar logic: the ability to manage increasingly stringent requirements on constraints with just a few clicks by increasing the weight of a specific group of constraints (though perhaps this is a misguided way of understanding constraint weights).


That said, I wonder if it might not be a good idea after all to use the official FET (which includes the old "FET for 120 days") perhaps in combination with mode Finland.

What had discouraged me from using it back then was the proliferation of activities and sub-activities, as well as the constraints associated with all my specific requirements (teachers with activities during the same time slots in real weeks and teachers with activities during different time slots, managing weeks with very few activities and weeks with holidays, etc.). I was afraid to dive in and end up with unsolvable schedules without really understanding what was causing the issues.
But perhaps it's easier today to import data via CSV, which makes the work less tedious since it's pre-processed using a more suitable spreadsheet-type program?

I look forward to hearing from you, :)
Best regards
#14
Hello,
Quote
Please forgive me for answering so late, I am preparing a new FET release and doing some changes. Also in the future please forgive me if I will answer slowly.
24 hours to have a response is widely acceptable, I don't forget it's me who need help not the reverse.  ;). And the fact that FET is a free software !
QuoteIndeed, for constraints is difficult. Unfortunately, it would be indeed difficult to add a list of tags (strings). If you really are interested into this, let me know. But I hope we won't need this.
I understand it's very difficult to add tags on constraints, I will work without.
QuoteFor activities, you can add activity tags to them and in the tags dialog activate/deactivate all the activities for this tag.
I know how to use tags for activate/deactivate activities with the same subactivities but since I didn't find an automatic way to import repartition weeks with different repartition subactivities I used tags to says "different week" and for this different week I deactivate step after step the subactivities whitch don't appear in this different week.
for example the teacher X have subject S1 with the group A for all the 16 weeks with 2+1+1 subactivities except week 12 with 2+1 and 13 with 2 and 14 with 1 and without in week 15 (total 54)
The teacher Y have the same subject S1 with the group B  for all the 16 weeks with 2+1+1 subactivities except week 14 without and except week 15 and 16 with 1 (same total 54)
And I have this kind of different repartition for all my activities (265 in total).

I will send you by email my files (not confidentials but not publics) with the repartition table, a sophisticated spreadsheet file, an FET files ( my "special week" and few weeks with specificies).

Thancks you for the time spent in my situation!




#15
Hi,
thancks you for your welcome, .. and for your software !
with "tags to constraints" I want to activate or inactivate a package of constraints, the currently buttons in all constraints need a treatment constraint after constraint with a lots of clicks in global.
My need with check box had the same philosophy : activate or inactivate a package of activities, some activities with subactivities and some without (2 hours per week for subsject S1 between week 1 to week 5 and 1 hour per week for subject S2 between week 2 to 10 for example)
I currently use the check box in the sub-activitie dialog window but it's longer that using the activitie dialog window with filter an "one-click"
I'm interrested by an import of fines subactivities from CSV files but I don't find explanantions for that. I know how to import a 4 hours activity splited in 2+1+1 hours subactivities but I don't know how to import this 4 hours/week activity splited in 2+1+1 and splited betwen weeks 1 to 5. Using the export possibility witch seem overwrite the subactivities repartition so I thought it was impossible.
The most important :
the 'max-150-days-per-week' version seems better and I saw the min+max days between components constraints and the same starting hour constraints are made exactly to allow the same position on a week but how to set these constraints automatically for all "my" activities (currently I have 265 activities with, for each, a split by week or not and a repartition in my 16 weeks). I didn't look in the .fet xml file.
I have an other reason not using this custom version , the gestion of "specials cases" like teacher T1 is not available on day 1 in week 3 or all students are not available on day 3 of the week 4 (witch impose sometime to shift the repartition week 1 to week 5 in week1 to week 6 except 4 for example).

Yours propositions for :
a better way to import your activities
We could make a program to write such a file
we could either make an import, or modify a bit the interface, so that you only add a constraint for the first week and FET will consider it for all the 16 weeks
Are very enticing for me.
Thancks you for your propositions and your reactivity !!