Main Menu

Am I doing it right?

Started by Adele, January 03, 2021, 11:08:25 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Adele

I've been doing our school's timetable for about 2 years. I probably did 6 or so different timetables during the past year due to changes in lockdown, etc. So have some experience and idea of how the program works. Our setup is not that complicated, we're only a high school with 5 grades. Each grade has multiple classes, for example 8Blue, 8 Red, 8 Yellow, 9 Blue, etc.

The basic setup in our school works as follows. Students choose subjects based on a predefined list, so they can choose between Business, Economics and Computer Science or they choose Biology, Accounting, Geography, etc.

We only have one teacher per grade per subject, so grade 8 Biology is always Mr. X and grade 10 Biology is always Mr. Y, etc.

I set subjects up as, e.g. Grade 9 Key 1: Bus/Eco/Comp and Grade 9 Key 2: Bio/Acc/Geo, etc. I then allocate the teachers for those subjects and specify that it's the entire grade 9 group that has these subjects 4 periods a week.

Is this the right way to do it? Is there a better way? Out timetable is a bit more complicated now as we are growing, but it's really battling to build and I hardly have any constraints in, apart from one teacher that only works later during the day and the normal minimum days between activities and a very limited amount of fixed periods and one room that's not available on Tuesdays and Thursdays. Other than that there aren't constraints.

Firstly, is this the optimal way of doing things?

Secondly, how do I manage the rooms best? We have some teachers that share a class. Now in my circumstances above the biology might need to happen in the science lab, but the accounting teacher shares with the business teacher, so there it needs to be the business class. I couldn't get multiple rooms to work properly, so I've created another teacher called Venue: Business and just allocate that to all the business and accounting classes (with the actual business or accounting teacher too) so that they don't overlap. How else will I get it right? For now all Venue: Geo, Venue: Afr, Venue: DT and Venue: Eng periods are allocated to a single teacher only, Ive taken extra teachers away and still battling to build.

Thirdly, we have a test period and I don't care when the test period is or which teacher invigilates. I have a list of 15 teachers that can invigilate those periods, but as soon as I allocate teachers manually, the timetable really doesn't want to build. Is there a way that I can tell FET that these 15 periods (they are different times and not linked to each other at all) can be taken by any of these list of teachers?

Our school starts this coming week and I have no working solution. I've spent over 100 hours on this timetable and pulling my hair out right now. Any help will be appreciated.

I've attached my timetable. I think I'm so used to it now that I'm missing some basics.

I also attached a multiple generation of 5 minutes for my timetable. I can set it to one hour too, mostly it builds in either under 2 minutes or it doesn't. But as I said, many constraints haven't been implemented, just want to know if there's a better way of doing it, because when I add the constraints I want, it doesn't generate at all.

Liviu Lalescu

Hello,

I think you are doing it right. So, for (1) I think it is OK. The only thing  I can tell you: an activity with duration 2 or two activities constrained to be consecutive if same day cannot span over breaks. So maybe this is the problem. You might want to create a timetable without breaks and with less hours per day (with 3, in your case).

I attach three files, with min days weight 75%, 75%, and 50%, and with consecutive if same day true or false (a combination of these options). It seems to solve easier, but not always. So you might want to lower these constraints even more.

About (2), I made an example in these files I attached. See the last room, a virtual one.

About (3), I think you can use the constraint activities max simultaneous in selected time slots. Add all the activities of all the 15 teachers, select all the slots, max simultaneous = 14. The timetable will not contain the remaining teacher, but you can guess it by elimination.

Adele

Hi Liviu,

You've been extremely helpful, thank you. Your program have always worked very well for us. I will have a look at the virtual rooms and try play with the constraints a bit. Will also look at your solution for option 3.

Thank you so much!
Adele

Liviu Lalescu

I'm glad it works and that I could help, Adele!  :)

Liviu Lalescu

I am not sure I understood correctly the number of slots of supervising. By my approach in reply #1 you can select any slots, but you need to know exactly which slots need this supervision.

If you know that each teacher must have a one hour supervision, add 15 such activities (one hour activity for each teacher) and make them not overlapping. But maybe this is not what you intend.

The solution may be consisting in the special constraints activities min/max simultaneous in selected time slots or activities occupy min/max time slots from selection, but I am not sure.

Adele

Thank you Liviu,

The scenario is like this. I have 15 classes (by classes I mean student groups, i.e. 8 Blue, 8 R, 9 B, 9R, etc). Those classes each has a test period a week. The test periods are not at the same time, some are, like all grade 9s are together, all grade 10 classes together and all grade 11 and 12 classes together. Grade 8 is not at the same time. So it could be 4 grade 8 classes, all grade 9, all grade 10 and then grade 11 and 12 together, meaning it is 7 activities. Those 7 activities will take place in 15 different classrooms and need 15 teachers to supervise (obviously during the 7 different time slots).

I want those 7 activities to choose any one of the 15 teachers available - whatever suits FET best. The problem is that some teachers will need to invigilate 2 test periods and another only 1, so I want to give 10 teacher names and say I don't care who supervises which period, but these 5 should supervise 5 of the classes and these 5 should supervise 10 of the classes (at different times of course).

I hope that makes sense.

The reason I want to do it like that is because when I allocate my own set of teachers to each activity, my timetable does not want to generate.

Liviu Lalescu

I am not sure I understand the numbers in your third paragraph (7, 15, 2, 1, 10, 5, 5, 5, 10).

But I hope I have a solution for you: add 7 (or 10?) activities with duration 1, for each teacher, without students, call them activities A1-A7. Then add 7 (or 10?) activities with duration 1, for each students set, without teachers, call them activities A8-A14. Then use the magic constraint activities occupy max time slots from selection: activities A1-A14, selected slots = all slots, max occupied = 7.

Adele

I'm obviously not explaining myself well, so let me try it this way. I have 15 classes, let's call them class 1,2,3,4,5...up to 15. They have a test period sometime during the week, freely scheduled and can be at any time. Class 1,2,3.4 might be one activity with all those 4 classes together, but class 5 might be an activity on its own. So there are (in my scenario) 7 activities with the subject TEST as follows:
Class 1
Class 2
Class 3
Class 4
Class 5,6,7,8
Class 9,10,11
Class 12,13,14,15

Now I have 10 teachers who has to do supervision at those 15 classes, so let's call those teachers TeacherA to TeacherJ. Some of them would need to supervise a test twice, e.g.
TeacherA - 1 test period
TeacherB - 1 test period
TeacherC - 1 test period
TeacherD - 1 test period
TeacherE - 1 test period
TeacherF - 2 test periods
TeacherG - 2 test periods
TeacherH - 2 test periods
TeacherI - 2 test periods
TeacherJ - 2 test periods

How can I set it up so that any of the teachers (A to J) are allocated to the classes activities (1 to 7)? As soon as I go and manually do the following on the activity, my timetable doesn't want to build, so I wanted to know if there's a way that I can say "Take any of these 10 teachers and allocate them to these 7 activities, but some activites has more than one teacher required":
Class1 - TeacherA
Class2 - TeacherB
Class3 - TeacherC
Class4 - TeacherD
Class5,6,7,8 - Teacher E, TeacherF, TeacherG, TeacherH
Class9,10,11 - TeacherI, TeacherJ, TeacherF
Class12,13,14,15 - TeacherG, TeacherH, TeacherI, TeacherJ

Liviu Lalescu

#8
I tried to think with the official FET, but it seems impossible.

I created a file and a custom FET version for you: https://lalescu.ro/liviu/fet/download/custom/adele/

I customized the constraints activities max simultaneous in selected time slots. The "min" constraint would be too difficult and bug prone and useless to customize. So leave such constraints inactive, as in my liviu9.fet file.

Generate and see "All activities" timetable.

See how I do it in my liviu9.fet file and imitate me. See the "All time constraints" list (only the active ones). The constraint max simultaneous activities in selected time slots only considers the slots in which at least an activity has students.

Adele

Thank you Liviu, your feedback is greatly appreciated.

I have the following problem with the scenario above. Each class must have a teacher allocated and it doens't do it that way.

From what I can gather now is that Class 1 could have 2 teachers in that period, but class 2 has no teacher in that period. Is there a way to force a class and teacher to go together?

Liviu Lalescu

#10
I am sorry, but I do not understand. Maybe you forgot some constraints. I attach a typical timetable I obtained on my file. If you obtain a timetable on my file liviu9.fet with your problem, let me know, it is a bug.

You need to follow all the (active) constraints I added in my file.