Assigning multiple small rooms or one large room

Started by math, August 29, 2019, 09:18:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Volker Dirr

I don't understand. Can you give me an example file?

Liviu Lalescu

Maybe if the user wants to name three rooms R1, R2, and R3 as VR. I am not sure, I just gave a possibility.

Liviu Lalescu

OK, Volker, you win. I added a check box, 'Print virtual rooms in timetables', and by checking how the timetables look I decided to make it 'false' by default.

I added a new snapshot, please test it:

There remains the serious problem that a fixed timetable cannot store the real rooms for each activity scheduled in a virtual room. And in a new generation these real rooms might change. But I don't know how to solve it, because of the internal data structure  :(


In general I would agree with Volker. In most scenarios the virtual room is only relevant for internal purposes and does not need to be printed anywhere. However there might be scenarios where this is not the case.

In our university I book all required rooms on basis of the generated schedule. As I mentioned in my first posting, we can remove the rooms between three lecture rooms, making it a combined lecture hall. This hall then can be used for our large lectures that would not fit in any regular room. In fact I'm reserving the three rooms under their regular rooms, setting a flag that the walls need to be removed. However this could also happen in a different way, reserving the hall using the virtual room name.

So I like the idea of adding a checkbox to the FET configuration. And again I agree with Volker, this checkbox should be disbled by default.

Concerning the locking issue: I understood that only the virtual room is locked but not the real rooms representing the virtual room. So it might happen that - after locking time and space of all activities of a generated schedule - the real rooms change when generating the schedule again?

If this is the case, this would be a real problem. After I generated a schedule, I have to reserve all required rooms. At this, details of the lecture have to be specified for every room, i.e. name of lecture, name of teacher, ... It is quite usual that parts of the schedule have to be changed at a later point of time, so I remove the space/time locking of SOME activities, generating a schedule for that part again. It is absolutely essential that the other part remains unchanged. If not, I would need to check ALL activities (not only the activities that I unlocked) whether the activity has changed or not.

Moreover this would contradict the manual optimization of schedules. Here I often manually shift room allocations so that specific activities have rooms close to each other or that are particularly well suited for specific activities.

Liviu Lalescu

I will try to make activities retain also the real rooms if they are locked in a virtual room.

I released a new snapshot. This has not implemented this correctly, yet, and locked timetables might become impossible if using virtual timetables (as I wrote previously). I gave up that hack I made.

Liviu Lalescu

Good news: I finished the most difficult part of locking virtual rooms in real rooms, and it works!  :)

Now I have some more things to do, then checking, but I hope it will work. And it satisfies everybody: me, Volker, math, and other users (and the users of TiTiTo).

I will let you know of my progress.

Liviu Lalescu

I am not completely finished, but the difficult part is done. I did a lot of bug fixing and testing.

I have put the latest snapshot here:  (only the tar.bz2 for now, because math and Volker usually compile on their own).

It misses only one thing: to add/modify completely a constraint activity preferred room (if the room is virtual, the dialogs need to allow modifying the list of real rooms).

I am really happy with the results.

math, I would be interested in your feed-back (but you can wait for the finished snapshot, hopefully tomorrow). Try to crash FET, to make impossible timetables when it should be possible. Try your usual operation of locking/unlocking partially (only some activities).

Volker, maybe you could also test and check my code by random inspection.

My head hurts now, I need a longer break/sleep.


You should really take some time off. Are you counting the numbers you put into FET? :)

I'm looking forward testing the new version. Unfortunately tomorrow is fully booked, so it might take until Tuesday.

Thanks a lot again!

Liviu Lalescu


I have released a new snapshot. Still not ready yet, but I changed a bit the .fet XML file. If you have virtual rooms in your file, you either can manually edit the .fet XML file (ask me how), or input them again.

Same link: , again only tar.bz2.

Liviu Lalescu

I hope I am finished with the new code, correctly (the add/modify constraint activity preferred room dialogs - please check them). The same link:

I will now test some more, translate to Romanian and hopefully put a new snapshot for the translators to translate and for the users to test.

Liviu Lalescu

I corrected some minor things. The new version (including Windows executable) is on  (also on the old link).

Please test and let me know.


Hi Liviu!

Thanks for the new version. Yesterday evening I was testing the previous version for an hour or two, but did not find any problems. I was primarily focusing on the consistency of locked schedules, resp. partially unlocked schedules. Everything worked pretty fine, especially  locked real rooms of a virtual room did not change.

Today it's my wife's birthday, so I better should not spend my time with FET.  ;)

Liviu Lalescu

Thank you!

Happy Birthday to her! Have fun! See you tomorrow.  :)

Liviu Lalescu

I added a new snapshot, with minor updates:  . I am not sure which version were you using, but you might want to use this latest one.


Virtual rooms idea is great and working perfectly. I tried checking by considering 3 sets with one real room in each set.

Since, FET is picking one real room from each set to assign an activity to virtual room, I couldn't think about the practical application of having 2 or more real rooms in each set.