Help choosing FET version and something else.

Started by josemgs, May 29, 2020, 10:25:35 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

#30
1) data_and_timetable.fet is a fixed file (solution).

2) Could we consider that each FET hour is a real hour?

3) There is now a constraint for max occupied rows for subjects (with "MOR=x" in the subject's comments, as I said, because I am lazy now to implement the constraint properly). Would it be useful for your problem to add a second customization, "MAR=y", max activities in a row for a subject? So we'll add this with 8 for Math.

4) Referring to your question - how do the groups combine? The groups could combine just as they are on the FET rows? I am not sure I understand.

5) I am not sure I understand "a final timetable". Couldn't we just use (2) and (4) above?

6) Maybe we could stay a bit on this simple example? So I can understand better?

7) We could also add the opposite constraint to (3) - "mAR=z" - minimum activities in a row for a subject.

Please let me know if you are interested in an implementation of (3), and if needed (7) above.

josemgs

I think there is a little bit of confusion, sorry for that.

We have 20 students that have choosen their subjects. We have also how many groups we can form for this students (in this case 4: GA,GB,GC,GD). This is because we need to attach a reference Teacher for these groups. We desire they follow as much as posible all their subjects together. But we do know this is impossible for all the subjects. We also know how many hours per week for each subject is allowed and also how may subgroups we can build for them. For instance, we are allowed to form only one French subgroup, and 2 Literature subgroups but 4 Spanish subgroups.
I explain sometjhings and then I answer your questions.

These are the needed steps for me:

1) To distribute students in GA,GB,GC,GD in such a way they can visit all their subjects, and go together as much as possible. "A fortiori" some students must join another students from others groups to visit with them some subjects. (this is done with your modifications) Once the distribution is done there are usually  many ways to join students from different groups. This is why we have the next step

2) Define how to join students (links between FET rows and days). For instance we can have French students in GA,GC and GD. We have only one subgroup for French, so they have to go out of class at the same time. What are doing meanwhile the rest of the students from groups GA,GC,and GD? They visit the subjects in the same slot where French is (for instance , Maths, Biology and Literature). But these can occur in the first hour of the day or in the middle. This is not fix by the distribution in 1. What it fixes are the subjects that must run simultaneously. Perhaps French Teacher is not available on mondays in the morning... So, this is "only"  for forming groups, defining subgroups and establishing links between subgroups.
With this planning I go to the teachers and they choose which groups want to teach this year. They define their constraints and preferences and finally

3) I have to find a timetable in the usual way, respecting the constraints define in 1 and 2 apart from the usual constraints for teachers. I think this is easy with FET, because I define 5 days in a week, 6 hours in a day, the groups and subgroups and which groups and subjects have to run at the same time. I also include breaks and so on. In our example, for the sake of simplicity I have omitted these irrelevant details for problem in 1). As a matter of fact, and referring to our simplify example, Spanish is also unnecessary at this stage because must always ocuppy a complete slot with five students. We could design the partition of students into de 4 groups with only 7 slots and no Spanish at all.

I hope this can help. Let me know anything you don't understand, please.

Answers:

1) I don´t know why I don´t get a timetable when opening it in FET. It says I have to generate first.

2) No, FET hour are not real hours, only a trick to allocate subjects and to establish temporal relationships between students in the diferent groups and subjects. Specially simultaneity.

3) I am confortable with the comments trick "MOR=x". I believe I understand it. I'm not sure about the MAR=y second customization. I have to think of it. This would be useful perhaps if FET hours where real.... I'm not sure.

4) it is not always possible combine groups this way, because links propagate due to the limitation in number of groups for each subject. For instance we have to form only a group for students following French course.

5) Explained above, I hope.

6) Sure, probably we can make it more realistic, no more students nor subjects, but thinking in a final timetable with teachers and their avalaibility, etc...

Really I thank you.

Liviu Lalescu

#32
The fixed timetable (data_and_timetable.fet) has locking constraints (activity preferred starting time), but you need to generate it once (it will be instantaneous).

I modified my post above and added point (7), but you don't have to answer, I think I got it wrong.

Please allow me more time to read your post and think.

Liviu Lalescu

Please let me know: can't we consider that each FET timetable row (FET hour) is a simultaneity constraint for all the 20 activities/students that are on that row? This is what I meant with real-life slots. We can then say that Math must occupy at least 2 rows, or Math must have at most 8 activities per hour/row? We can control simultaneity with custom constraints in this way.

To make the final timetable, you will use the output of this first phase of FET-josemgs.

I am tired now, not sure if I understand correctly, but tomorrow I will see your answers.

josemgs

#34
Quote from: Liviu Lalescu on June 04, 2020, 09:56:30 PM
Please let me know: can't we consider that each FET timetable row (FET hour) is a simultaneity constraint for all the 20 activities/students that are on that row? This is what I meant with real-life slots. We can then say that Math must occupy at least 2 rows, or Math must have at most 8 activities per hour/row? We can control simultaneity with custom constraints in this way.

I have studied josemgs-file-by-liviu-19_data_and_timetable and I think it is a good planning. I think you were right and as I said before I think slowlier... So yes, you can consider each FET row as a simultaneity constraint. I'm sorry. Some comments from you, because of my slowness lead me to think we were not in synchrony

Things that could probably  be improved:

a) English is taught at the same time for all four groups.
b) Some subjects in a row are scattered over all the 4 or 3 groups. This could be unavoidable but perhaps can be minimised.


Quote from: Liviu Lalescu on June 04, 2020, 08:37:26 PM
Please let me know if you are interested in an implementation of (3), and if needed (7) above.

I agree this two new customization constraints could be very useful

Liviu Lalescu

I just put the latest version on https://lalescu.ro/liviu/fet/download/custom/josemgs/

For (a), you can add MAR=11 for the comments of subject English. For (b), you can use a constraint activities occupy max time slots from selection: select all activities of that subject, select all slots, max occupied = you do a progressive approach. I used this in the example file provided in the archive above for Math and Physics. Please see the example file in the directory "examples".

So, as a conclusion:

1) Activities occupy max time slots from selection, will constrain the total number of slots (column x row) for that subject. You need a progressive approach on this.

2) Comments of subject contain "MOR=x" -> max occupied rows (max sessions for a subject? Is that correct? Maybe only correct for subjects with less students?).

3) "MAR=y" -> max activities in a row (I added for Maths and English in that example file).

4) "mAR=z" -> min activities in a row (I added for Literature and Applied Maths)

I hope these are all that are needed.

josemgs

Thank you very much. I've had a lot of work this morning, but in the evening I will try and let you know.




Liviu Lalescu

The "mAR=z" does not work as needed, I made many bugs in this part. Please allow me to correct them and put a new version. The other constraints seem to be OK.

Liviu Lalescu

I hope now it is correct: https://lalescu.ro/liviu/fet/download/custom/josemgs/  (get this latest version, josemgs4, please.)

Please inform me if it does not work as expected (crashes, locks, wrong results, impossible to finish timetables when they should be possible).

josemgs

Quote from: Liviu Lalescu on June 05, 2020, 12:18:48 PM
2) Comments of subject contain "MOR=x" -> max occupied rows (max sessions for a subject? Is that correct? Maybe only correct for subjects with less students?).

Yes, it is max sessions for a subject per week (or maximum groups of students you can form for that subject). It applies to all subjects, but perhaps unnecesary for subjects like Spanish in the example, that must follow all the students.

In the week-end I'll try with your latest version.

Thanks.

Liviu Lalescu

#40
Quote from: josemgs on June 05, 2020, 06:50:45 PM
Quote from: Liviu Lalescu on June 05, 2020, 12:18:48 PM
2) Comments of subject contain "MOR=x" -> max occupied rows (max sessions for a subject? Is that correct? Maybe only correct for subjects with less students?).

Yes, it is max sessions for a subject per week (or maximum groups of students you can form for that subject). It applies to all subjects, but perhaps unnecesary for subjects like Spanish in the example, that must follow all the students.

In the week-end I'll try with your latest version.

Thanks.

Be careful, in FET-josemgs "MOR" means literally max occupied rows (a row = a FET hour). So it might not be exactly what you need for activities with more students. We can talk about it if you have problems with it.

You are welcome!  :)

I added a special custom version information here: https://lalescu.ro/liviu/fet/custom.html  (it is number 4 for now). Let me know if you want any changes / have suggestions.

josemgs

I think I've found a little 'bug'. When a comment is added to a subject, like mAR=5, for instance, it remains there forever even if it is delete afterwards.

If you want to verify it I've found it in this way:

In the example-josemgs.fet
1) I added the following restrictions Spanish MAR=10, History mAR=3,  Latin mAR=3.
2) This in turn, seems to be impossible. Excecution stops after allocating 59 activities.
3) I deleted  Spanish MAR=10 and the run had exactly the same behaviour.
4) I quit after saving (with another filename and letting constraints for Latin and History) and  I restarted. I opened the new created file. Every thing was OK.

Liviu Lalescu

Great catch! You are a good collaborator!

Expect a quick fix in say about 30 minutes (to compile Windows and to check).

Liviu Lalescu


josemgs