Hi all,
I'm currently trying FET because I need to make a timetable for an information evening with about 70 subjects. People have provided their choices (first, second and third) and I have three rounds; I preferably want everybody to get all their 2 (mandatory) or maybe 3 choices, if they provided a third one.
Some subjects have about 50 people that want to attend, others have just a few; but my question is, how can I tell FET to split the big groups in smaller chunks? I can't do it myself because who is in which group depends on what other subjects they want to attend.
Anybody know something? So basically I want to tell them which groups have which choices and then mix up the groups. Should I use subgroups for this or something?
Regards,
GLaDOS.
Maybe a way would be to have each individual student (groups in a year or subgroups in a group) and for each activity add only the interested students.
Or divide years according to categories, but you have maximum 3 categories and maximum 12,6,6 divisions per category.
Please let me know.
I tried to do that but then the groups with say 40 people don't get divided, correct? At least when I tried it that way it was stuck after the 6 biggest groups...
I think automatic division of year does not work for you.
I would advise you to make a year, "Y", and add as groups each student (person). Then, for each activity, add a students group (which is in fact a student = a person) if that students group attends that activity.
I had to work with other data so I exported it in a way I thought was best; first, I ordered by subject and checked which student attended that subject, and then made one line for that subject with as student set all the students attending. That ended up in large groups, so that didn't work.
Now I tried to make 3 activities per user, one for every subject he was attending, but that didn't work either because one teacher now has, for instance, 27 hours where there are only 3 available.
BTW I already added a year 'A' and for every person attending a student group with the number that student has.
Something else: with the first option I had it split into parts (so Split duration 1 and Total duration 3, when I thought 3 groups were necessary, for instance).
Split an activity: this is used usually for related activities which should be done in different days.
I meant to have an activity, into which to insert all students wanting to take that course. You can have more students sets per activity.
I'm not sure I understand you correctly. For instance, I now have activity 1 with 27 students, split in 2. When I try to generate a timetable I get this warning:
Cannot optimize for subgroup 1 Automatic Subgroup, because the number of hours for subgroup is 5 and you have only 1 days x 3 hours in a week.
For the small groups the number of hours is almost always 4.
The line I import as activity:
"Students Sets","Subject","Teachers","Activity Tags","Total Duration","Split Duration","Min Days","Weight","Consecutive"
1+2+3+4+5+8+16+22+37+72+96+108+110+113+123+131+145+165+168+173+206+245+248+254+259+264+267,1,1,,2,1+1,1,95,0
where 1 is both the lesson and the teacher
If a subgroup must work (has activities) of 5 hours, and the week has 3 hours, it is clear that the timetable is impossible. Each student can have a single activity at a single time slot.
The problem is the way I did it it every student should only have 3 hours tops, some 2, so I don't understand how FET get's the 5 to 7 hours...
if necessary I could provide my .FET file?
Yes, you can send your file, here (if public) or by email to me (if private).
I think you added some activities for the whole year. Please also check statistics for students.
It's just numbers so not really a need to keep it private. the act.txt file is the one I used to import the activities.
I saw your files.
For instance, student 267. He has 5 hours. 5 (sub)activities with duration 1. Why is that? You only have one day per week, with 3 hours in this day.
Good question - in the input file I only put 267 for 3 activities... so is my input file incorrect? :(
Quote from: glados on November 11, 2011, 09:44:16 PM
Good question - in the input file I only put 267 for 3 activities... so is my input file incorrect? :(
You put student 267 in 3 larger split activities, for instance:
1+2+3+4+5+8+16+22+37+72+96+108+110+113+123+131+145+165+168+173+206+245+248+254+259+264+267,1,1,,2,1+1,1,95,0
means that it is split into 1+1, and total duration is 2.
Hmm ok. But then, how should I input it in order for FET to split the groups automatically?
Quote from: glados on November 12, 2011, 09:02:29 AM
Hmm ok. But then, how should I input it in order for FET to split the groups automatically?
FET cannot split like you want. Each activity has specified students, and all of them are taking that activity at the same time slot.
A possibility would be to consider a separate activity for each student, and add a constraint so that the maximum activities overall from the same subject are only two. You can use the new constraint activities occupy max time slots for that (max 2 time slots, all activities with the same subject). Of course, these activities will have no teacher, otherwise the teacher would be forced to have more activities at a given time slot. You can add other activities with teachers and constrain them similarly with the students.
So there's no way to tell fet "I want those students to attend those subject but you go figure out in what groups"?
I modified my previous answer, I think it is possible using the tricks I wrote there.
FET was not designed for situations like yours, but it may be possible to handle even them, using the tricks I described or other tricks.
Hmm, thanks, seems to be working. However, is it true I can't get the rooms to be calculated in that case?
Quote from: glados on November 12, 2011, 11:00:08 AM
Hmm, thanks, seems to be working. However, is it true I can't get the rooms to be calculated in that case?
Add two additional activities to get you the scheduled rooms.
Thanks. I still have two questions:
- what did you mean by "You can add other activities with teachers and constrain them similarly with the students.", will it be possible to generate a timetable for the teachers this way, and how?
- isn't it true that a room can only hold 1 activity (so that it would be impossible to have the rooms scheduled as well), or does this not apply to semi-activities?
Edit: I now applied a space constraint for one activity and that made it impossible for FET because a room cannot have multiple activities :(
Quote from: glados on November 13, 2011, 04:55:53 PM
Thanks. I still have two questions:
- what did you mean by "You can add other activities with teachers and constrain them similarly with the students.", will it be possible to generate a timetable for the teachers this way, and how?
Say you have 1 subject (S1), 4 students (G1, G2, G3, G4), two teachers (T1, T2) and two rooms (R1, R2). Add activities: A1 (S1, G1), A2 (S1, G2), A3 (S1, G3), A4 (S1, G4), A5 (S1, T1), A6 (S1, T2), A7 (S1), A8 (S1) (A7 and A8 have no teachers and no students, A1...A6 have either a teacher or a students set). Constraint activities occupy 2 max time slots, A1...A8, all time slots. Not overlapping (A5, A6). Max simultaneous if necessary for (A1...A4), all time slots, max simultaneous: as you wish. 2 constraints same starting time: (A5, A7) and (A6, A8). Preferred room(s) for A7 and A8 as you wish.
Let me know if it is clear. I hope I am not mistaking.
Quote
- isn't it true that a room can only hold 1 activity (so that it would be impossible to have the rooms scheduled as well), or does this not apply to semi-activities?
True. But see my answer above.
Quote
Edit: I now applied a space constraint for one activity and that made it impossible for FET because a room cannot have multiple activities :(
Please see my answer above.
I now did it differently - added activities for every teacher (and removed that activity from one person). It works now, however, it doesn't schedule the rooms at the moment :(
And is there an easy way to see how many people attend a subject at a certain time?
Quote from: glados on November 13, 2011, 06:34:55 PM
And is there an easy way to see how many people attend a subject at a certain time?
Please see the HTML timetables (index.html in results) and let me know if activities timetable or subjects timetable suits your request.
Thanks you very much, it does. Any advice on how to schedule the rooms?
Quote from: glados on November 13, 2011, 07:19:19 PM
Thanks you very much, it does. Any advice on how to schedule the rooms?
Preferred room(s) only for activities A7 and A8 from my example. Use activity preferred room(s) or activity tag preferred rooms, and add the activity tag only to A7 and A8.
Edited to add: I mean activities A1...A6 should have no room(s) constraints, so FET will leave them in the generic unspecified room.
So without setting prefered rooms, I cannot schedule the rooms?
Quote from: glados on November 13, 2011, 09:28:15 PM
So without setting prefered rooms, I cannot schedule the rooms?
If an activity has no preferred room (or home room), it will get a generic unspecified room.
One more thing - is there a way to display the rooms on the individual timetables? Now they are only assigned to 1 activity/student, but I need them to be on every timetable...
I'm sorry, but I think this is not possible.
You are using FET in a nonstandard way, and situations like yours are not taken care of.