Hello!
Considering: http://lalescu.ro/liviu/fet/forum/index.php?topic=1053.msg6104#msg6104 , by JonathanBlock, and additional email discussions with Yush Yuen (forum user yush), this is a good thing to consider next in FET (maybe FET 6.v.v?). At least we need to talk about it.
So, we have three dimensions: students, teachers and rooms. We want fourth dimension, similar to rooms (different from students and teachers, meaning that an activity is allocated to a single fourth dimension item, and allocation is decided by FET, not by the user).
I thought about many things, and this is what comes out as a nice thing to me, just now:
Define levels for rooms. Each room has a level, 1, 2 (or even more?) specified by the user.
The default number of levels is 1. If the user wants more, he needs to activate them. As it is dangerous to play with them, as the timetable might be impossible.
And the routines for space allocation simply get a level for room.
Please join the discussion! :-)
I am not sure, please tell me: what JonathanBlock and yush suggest is done with this, I mean they need fourth dimension to be similar to rooms, in that a single 4-th dimension item can hold a single activity at a certain time slot? Or they need the 4-th dimension item to hold more activities? (more complicated - maybe too difficult for me).
This will complicate a bit FET for the user (the interface will be a bit more complicated), but hopefully if we limit default level to 1 things are under control.
Additional thoughts: the fourth dimension will have constraints similar to rooms. Do you need constraints similar to teachers or students for the fourth dimension items? This would be more complicated - maybe too difficult for me.
Of course i understand that idea. Of course it sound like a usefull thing, but there are too many problems if you add that feature. Just compare http://lalescu.ro/liviu/fet/forum/index.php?topic=1053.msg6104#msg6104 .
How to solve all that problems? JonathanBlock didn't answer that questions. (And i don't know yushs request/arguments). If there is no solution for that problems there is also no need for that feature.
Quote from: Liviu Lalescu on April 30, 2012, 11:39:24 AM
the fourth dimension will have constraints similar to rooms. Do you need constraints similar to teachers or students for the fourth dimension items? This would be more complicated - maybe too difficult for me.
In my opinion instead of a useless fourth dimension you might think about doing the rooms like the students and teachers. (several roomS for a single activity.)
Because that will simplify entering datasets for all schools that work with elective lines.
My original suggestion was to allow the program to automatically assign a teacher from a group of available teacher to a set of similar classes. For example, we have 3 teachers who will teach year 7 Math where there are 5 classes. It doesn't matter in anyway who is teaching which class. Currently, I will have to statically assign T1 to 7A, T2 to 7B and 7E, T3 to 7C and 7D (or in any order). The thing is, it is possible that one of the grouping may yield an easier timetable. In most cases, it may not matter. But in my case, where a timetable takes more then 3 hours (on an intel i5) (out of 10s of generations) to get to 99%. Any edge is welcomed.
The new "max-room" constraint (when it works right) allows just that for room allocation.
So, I suggested to just duplicate all the features of room, and add it as another layer.
In fact, student - teacher - room can be thought of as "resources" that coincide for any give activity. There is no reason why they should be any different from each other.
Now, let's say if I have other "resources" such as a piece of lab equipment, to be shared by a few classes. I will be able to fact that into the timetable if there is a "4th dimension".
To make the program really generic (may be more flexible and powerful), we can call everything resources. Have preset resource title for teacher, student and room. Then allow users to add as many different kind of resources as they wish. So the program be come nth dimension... nice, but probably more confusing that it is worth.
Yes, but the constraints cannot be generic; they have to be highly optimized for the exact situation.