adding rooms to an already generated timetable

Started by chrischi, February 08, 2010, 12:22:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

#15
QuoteIs there a way to keep certain rooms empty as much as possible, because they should be only used if all the other rooms are occupied (like the meeting place under the tree :) )?


There is no direct solution. You can do that: suppose activity A can be in rooms R1, R2 and R3, and you would like it to be in R1 or R2. Then, add 2 preferred rooms constraints for A: 100% (R1, R2, R3) and 95% (R1, R2). In approximately 5% of cases the second constraint will be skipped. You can raise 95% to 97.5% or lower to 90% or play with it, so you get better timetables.

Let me know if I am mistaking (it is a long time since I didn't work with these constraints).

chrischi

I moved the executable fet to the location where the old fet executable still was lying (/usr/bin) so that I could start it with the old entry under the applications menu of ubuntu.

Now I tried it also this way twice and it took 37 s / 57 s. Yesterday after maybe around 2 minutes I thought it would never end because it had taken just a few seconds before. But probably it would have found the solution just then.


Liviu Lalescu

QuoteI moved the executable fet to the location where the old fet executable still was lying (/usr/bin) so that I could start it with the old entry under the applications menu of ubuntu.

Now I tried it also this way twice and it took 37 s / 57 s. Yesterday after maybe around 2 minutes I thought it would never end because it had taken just a few seconds before. But probably it would have found the solution just then.


Yes, that must be the answer.

I tried on my computer, it solves in about the same time as 5.9.1, average 10 seconds.

The new 5.12.3 seems much slower, or it depends on luck? Could you try more generations on your timetable and let me know?

chrischi

I just installed fet on my Eee PC and tested again. It took only an average of 27,4 s for each timetable. Probably my old Notebook is otherwise a bit slow.

when I followed the installation instruction in the readme file, the suggestion was to remove the -g flag from from QMAKE_CFLAGS_RELEASE section.
However in my g++.conf file the sections read as follows

QMAKE_CFLAGS_RELEASE    += -O2
QMAKE_CFLAGS_DEBUG      += -g

Because I didn't know if I should change it then I just left it but it seems to work fine.

Liviu Lalescu

QuoteI just installed fet on my Eee PC and tested again. It took only an average of 27,4 s for each timetable. Probably my old Notebook is otherwise a bit slow.

when I followed the installation instruction in the readme file, the suggestion was to remove the -g flag from from QMAKE_CFLAGS_RELEASE section.
However in my g++.conf file the sections read as follows

QMAKE_CFLAGS_RELEASE    += -O2
QMAKE_CFLAGS_DEBUG      += -g

Because I didn't know if I should change it then I just left it but it seems to work fine.

You don't need to change these flags. Only if QMAKE_CFLAGS_RELEASE contains -g, remove it.

chrischi

Hi,
I am still stuck with distributing the rooms to the already made and released timetable.

we have a number of different subgroups because of electives, of majoring tracks, of language tracks, and even smallgroup divisions should be still different (though I didn't manage to put them in yet).

First try I added to each activity 2 restraints, 95% for the rooms I would prefer for this activity, and 100% for all the possible rooms. (We have not enough rooms and want to use the shade place only if other rooms are occupied).

This is not ideal. I started anew and added tags to all the courses, mainly according to the groups and  the subgroups because I want the senior English e.g. not hop around but use a set of homerooms. But I added also some tags either because an activity is better in a certain room, or because one teacher allows for his small courses his office to be used.

Qestion1: Should I use for this rather the set of homerooms option with 95% for the smaller preferred set of rooms and 100% for all possible rooms?
Qestion 2: I don't want all the tags to appear in the timetable. is there an easy way to prevent this?
Question 3: The table gets stuck at a course that has only the restraint to be in the office of the teacher, which is not used else. I cannot find the mistake. (Id. 147)
Question 4: Does FET try so hard because in my case there are all the time constraints that I put so that the table would fit the already released time table? Would it therefore be better to somehow fix the times that the table finds without any constraints (to lock activities) so that it wouldn't work again on that issue but concentrate on the rooms?
Question 5: Is there an easier way to set all the available rooms at 100% so that what is available will be distributed? (Other than doing it for each activity tag, activity or student group) (I am not sure if I am clear with this. My problem was, that if non of the most preferred rooms are free (95% restrain), then no room at all appears on the timetable.

I hope this is not too much at a time and not too confusing...

Christoph

Liviu Lalescu

QuoteHi,
I am still stuck with distributing the rooms to the already made and released timetable.

we have a number of different subgroups because of electives, of majoring tracks, of language tracks, and even smallgroup divisions should be still different (though I didn't manage to put them in yet).

First try I added to each activity 2 restraints, 95% for the rooms I would prefer for this activity, and 100% for all the possible rooms. (We have not enough rooms and want to use the shade place only if other rooms are occupied).

This is not ideal. I started anew and added tags to all the courses, mainly according to the groups and  the subgroups because I want the senior English e.g. not hop around but use a set of homerooms. But I added also some tags either because an activity is better in a certain room, or because one teacher allows for his small courses his office to be used.

Qestion1: Should I use for this rather the set of homerooms option with 95% for the smaller preferred set of rooms and 100% for all possible rooms?
Qestion 2: I don't want all the tags to appear in the timetable. is there an easy way to prevent this?
Question 3: The table gets stuck at a course that has only the restraint to be in the office of the teacher, which is not used else. I cannot find the mistake. (Id. 147)
Question 4: Does FET try so hard because in my case there are all the time constraints that I put so that the table would fit the already released time table? Would it therefore be better to somehow fix the times that the table finds without any constraints (to lock activities) so that it wouldn't work again on that issue but concentrate on the rooms?
Question 5: Is there an easier way to set all the available rooms at 100% so that what is available will be distributed? (Other than doing it for each activity tag, activity or student group) (I am not sure if I am clear with this. My problem was, that if non of the most preferred rooms are free (95% restrain), then no room at all appears on the timetable.

I hope this is not too much at a time and not too confusing...

Christoph

1. Possibly yes.
2. Volker can answer. I think you can edit the css file to remove some activity tags.
3. Maybe the teacher is too constrained. Stop the generation after 81 activities have been placed, stop and see highest stage, to see if the timetable seems possible
4. If you fix an activity in time, and this place is good, then it is easier for FET. This activity is placed fast and never displaced.
5. No other way.

I saw you inputted a lot of activity tags. This is not necessary. You can use the same activity tag for an activity. You can also add more activity tags for an activity.

Volker Dirr

Quote
Qestion 2: I don't want all the tags to appear in the timetable. is there an easy way to prevent this?

Yes, by css.
fastest is by hiding them all, but you can also hide just special tags.
please read this:
http://www.timetabling.de/manual/FET-manual.en.html#id_55

Volker Dirr

#23
Quote
Question 3: The table gets stuck at a course that has only the restraint to be in the office of the teacher, which is not used else. I cannot find the mistake. (Id. 147)

The table you attached is solveable. i solved it. it just need some time.

about the room problem:
- you have very string limits to the teachers (not available times)
- please count the number of hours that will be placed into a room. as soon as you have filled the room(s) you shouldn't tag more activities with that room, because of course that will be impossible.

Volker Dirr

#24
Also your data constain at least 2 bugs:
activity 133 and 134 have two conflicting constraints.
once you said it should get only lap (100%, because of subject). and at the same time it should get room r4 (98%, because of activity tag SE). so you will always get a conflict!

i highly advice you to use only 100% constraint. searching bugs will be easier by that and you get better tables!
if you set room constraint SE to 100% FET will inform you about this bug, but sadly you set only 98%, so FET doesn't tell it to you.
i didn't check the whole table yet.
please try to do the two things i told you. if you still have problems please ask one more time.

chrischi

Thanks for the answers,
I got the room distribution a bit better but there are still a few problems.
I would like to answer or explain a bit what I did and why:
QuoteAlso your data constain at least 2 bugs:
activity 133 and 134 have two conflicting constraints.
once you said it should get only lap (100%, because of subject). and at the same time it should get room r4 (98%, because of activity tag SE). so you will always get a conflict!
I did this on purpose because I usually want Senior English in their homeroom, only when they have computer science they need to go to the lab. So I set 100 if the tag is lab and a bit less that in all other cases they will be in their home room.

I tried to get the rooms filled up according to how much I like a room to be used (see question 1 above) by putting the set of homerooms option with 95% for the smaller preferred set of rooms and 100% for all possible rooms
FET doesn't allow me to add two different restraints here.

But I got a quite good result by putting the rooms not available percentage to e.g. 98 % so FET will try to put an activity to this room only if the other rooms are not free (at least sort of).

My problem is: still a few activities are not distributed to rooms at all, although there are activity tags, and these tags have preferred rooms.
In one case it was because both of the preferred rooms were already filled, but in the other case one of the preferred rooms is still empty, and I have no idea why. What could I do?

I would really like that all the activities are distributed to rooms, so that at the end there wouldn't be a class standing outside because all rooms are filled.

Christoph

Volker Dirr

maybe publish your current file and tell us the id of the activity that get no room. we maybe will find the bug.

chrischi

Sorry I forgot to post my file!
Here it is.
I also forgot to mention that I now locked all activities in time, so that FET doesn't have to figure it out again, but can concentrate on rooms.

Volker Dirr

did you also tried it with 0% instead of 95%? please compare speed for table generating (many tables of course, maybe same seed) and results (using optimal/not optimal room). With my (old) dataset it doesn't make sence to use 95%, because 0% was as good, but faster. but that was maybe only a result of my dataset. i am instrested in yours. can you please test that with your file?

chrischi

you are amazingly fast!!
It was ID 112, but in between I tried to do it again, then the chapel wasn't empty any more and it also distributed more activities.