Re: [tablix-list] Specific (complex) timetabling requirement

From: Ramen Sen <jm_at_intnetsystems.com>
Date: Thu, 16 Jul 2009 00:46:28 +0100

Thank you, Tomaž,

>> Basically we have a number of events in different age categories
>> (Juvenile, Junior, Youth, Adult, Senior I, Senior II, Senior III), and
>> each one does "Ballroom", "Latin" and possibly "10 Dance". We have
>> various numbers of each event to give out - e.g. 9 "Adult Ballroom", 5
>> "Junior 10 Dance", etc, totally around 129 events for the year.
>>
>> These need to be timetabled at many different venues around the country.
>> Now the venues are only available on certain fixed weekends.
>
> Before you jump into writing new modules I suggest you first try using
> the existing school timetabling schema and see what kind of results you get.
>
> As you suggested, use 'room' and 'time' as variable resources: rooms =
> all your locations, time: 51 x 3 (or the maximum number of simultaneous
> events per location). You only need one constant resource type, so use
> both 'class' and 'teacher' as your age group (duplicate the list of
> resources and event assignments for both resource types, so the
> timetable will be constrained as if only one resource type was used)
>
> Start with only 'sametime.so' and 'timeplace.so' modules.

Yes, I tried... the problem is that venues are only available once or
maybe up to four times a year, and it puts them into venues that

>> I decided to split time into weekends (0-51) and I'll probably need
>> several timeslots because you can have more than one event at a venue on
>> the same day (though I need to specify a maximum per venue, which will
>> be different for each, as some are small and some are large). There are
>> also a lot of other parameters governing whether a venue is suitable for
>> certain events, but I won't go into those just now, I'll focus on the
>> basics first.
>>
>> So looking through examples, I thought I would need the venue as a
>> variable resource, and the age group (class) as a constant resource.
>>
>> However, I can't find any way to say that a venue (room?) is only
>> available in certain time-slots. There is the available.so module, but
>> is 1) when it's not available, and 2) it's not usable for variable
>> resources.
>
> I don't believe you can make such a constraint with the current set of
> modules directly, but there is a work-around: make fake events, assign
> them fake classes and teachers and use fixed.so module to fix them at
> time-location pairs that are never available.

I've tried what you suggested. It turns out I think I need thousands of
fake events... unless I've got this wrong?

Essentially 51 x 6 for each venue (room) (the other 51 weeks of the year
it's not available x the number of slots), and I have around 44
venues... = 13,464 fake events. This is obviously a non starter, so I
think I will have to write at least one module.

To help me learn (and because I will need it) I've already had a stab at
one that distributes events evenly across the year, and it seems to work
reasonably well - I based it on the code from perday.so, since it was
quite similar in function (and I learned a lot!)

Do you have any suggestions about which module might be close to what I
need or do you think it's easier to start from the begining?

>> Eventually I'll have to put in various capabilities (e.g. floor size),
>> various conflicts (e.g. cannot have "10 dance" on the same day as
>> "ballroom" or "latin" for a particular age group), requests from venues
>> for particular events, and many other constraints, but would like to get
>> it to use the specific days first.
>
> Some of these constraints can probably also be emulated with
> school-timetabling modules - but it may start get inefficient. The fake
> events workaround I mentioned above will give worse results than a
> specialized module.
>
> If things look promising with the workarounds I described above, you'll
> eventually want to write your own set of modules for scheduling dance
> events.

I'll let you know how I get on - and I'll probably have a few other
questions as I go along, if that's ok. Hopefully once I've got a set of
modules together they will also have generic application and I can
submit them for inclusion.

> Best regards
> Tomaž

I still think this software is fantastic, as it's providing a flexible
framework for what I want. And thanks again for your quick response.

regards,
Ramen
Received on Thu Jul 16 2009 - 01:46:51 CEST

This archive was generated by hypermail 2.2.0 : Thu Jul 16 2009 - 06:30:21 CEST