Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - OppyLock

#1
Get Help / Re: How to respect these constraints?
September 18, 2008, 04:05:33 AM
Quote
Quote
In each year there are several similar subjects.  Science subjects like Chemistry, Physics and General Science for example.  I'm looking to provide a balanced day so that in any day there is not too much emphasis on a particular theme.

Let us try to use some tricks:

Add a constraint min days between activities, for all activities of Chem, Phys and Gen. Sci. for a low level students set (just add each component activity - so if you have Phys(A1, A2) and Chem (A3, A4) - add A1, A2, A3 and A4). The min days should be 1, consecutive if same day of course false and weight from 10% to 95% (try with lower values firstly).

Also, you can add a constraint min gaps between activities, 1 gap, same activities as above.

Then, add these constraints for all students sets you need.

This is exactly what I need.  I'd never thuoght about using the min days between activities or min gaps between activities constraints with other than the same group of activities.  I learn something everytime I play with this program!

The other solutions will do whats required too.

Next problem ...

The timetable I'm creating is quite tight and it should be solvable.  FET fairly quickly solves subsets of the problem in about 15-20 minutes.  However when I give it the whole set to chew on it's a bit difficult to know whether it is actually solvable at all.  

With almost all the constraints in place in FET I let it do a run of 10 generations.  I limit these to 2 hours and it *might* solve 5-6 of them.  However I added some extra constraints 'min 2 gaps between activities' for a few bad cases that cropped up.  Now it won't solve any of 10 within 2 hours.

So ... how long is long enough to wait?
How can I tell if I've gone too far with constranits?
Does FET pop up an error once it's exausted all possibilities?
If FET can't detect an impossiblity, then how best to troubleshoot which constraint to change?  Unfortunately most of the ones I've put in are 'must' not 'want' constraints so somebody will not be happy.
When FET is successful it has often been sitting at ~210 of 280 activities placed for hours and then just jumps to the solution at the end.  Is this normal?
Admittedly all my constraints are at 100% as a perfect timetable would be perfect ;)  Is my best option to back off some constraints to 99% and live with the 1 or 2 bad schedulings?
#2
Get Help / How to respect these constraints?
September 15, 2008, 06:22:09 AM
I've got a data file with a few hundred activities in it that is getting close ... but not perfect.

What I'm after is a balanced timetable and I can't find a constraint to give FET the right hint about what to do.  FET is very capable of making everything fit according to the constraints, but the timetables still aren't good ones, because it can't be taught the unwritten constraints ... yet.

In each year there are several similar subjects.  Science subjects like Chemistry, Physics and General Science for example.  I'm looking to provide a balanced day so that in any day there is not too much emphasis on a particular theme.

Each year group isn't split into any subgroups ... they all do the same subjects at the same time.
The science subjects are all taught by different teachers and in different rooms.

I was going to do this by giving the subjects an activity tag of science and then limiting the amount of science with a 'max hours daily for student set+activity tag' ... but that doesn't exist.  Is there any way with the current rules to create such a constraint?
Another option would be 'Min gaps between activity tag' to force something else in between the science activities.
Or even 'Two subjects/activity tags must not be consecutive' could probably work.
I can't see any way of getting FET to work with that sort of constraint at all as it is.  Any ideas?

Another request that is being a bit tricky to put in is: 'An activity is not the last activity in a day'.  Currently I've put that activity with a specific teacher that isn't available late in the day.  This works OK, but is there a better way?  The fear is that if we provide an unsupervised activity late in the day then some students may just go home early.  Unfortunately not all years and days are the same length so the 'teacher not available' method is either ineffective or is too restrictive.

An observation:  FET is great with constraints that specify what must not occur, but is not so good with constraints that must occur.
For example: Religion is an activity that happens twice a week.  It can happen on any day and time, but one of those days must be Friday.
The only way I've been able to honour that request is by having two subjects for religion.  One is in a room that is only available on Friday and the other is available any day except Friday.  Again, is there a better way?

Thanks,
Oppylock
#3
Get Help / Re: Preferred Rooms Constraint
June 25, 2008, 07:36:43 AM
Thanks Liviu for the quick reply.

That answer seems logical and I'll have to give it a go in the next day or two.  I'd been fixated on getting 1 constraint to do the job, where I need several.

The application I'm putting FET too isn't actually a school timetable, it's an athletics timetable, but the analogy is the similar.  Hopefully the algorithm works the same too ;)

Subjects = Athletic events(100m sprint, High jump, etc)
Rooms = Athletics stations(Front straight, Main track, Long jump pit)
Students are broken into year levels.  
Activities tie the lot together.  
No teachers, as there is a manager for each year level, room and subject already and they stay where they are assigned and don't need any extra allocation by FET.

It's been quite difficult in the past to get a good 'tight', balanced timetable.  Each day there is always a group that is having to wait too long to start an event or takes too long to finish one.  

Once I get a meaningful solution I'll send you the file to take a look at.

I'm having to document how it works so that the next person to take on the task can 'just do it'.  Some of that doco may also prove helpful.
#4
Get Help / Preferred Rooms Constraint
June 25, 2008, 04:18:42 AM
It seems that the following is not possible:

* A school has two general purpose rooms, one large (Room A) and another small (Room B).
* Both rooms are capable of holding subject A, B, C & D.
* For various reasons it is preferred that Room A is used for subject A & B before Room B is used for those subjects.
* Likewise Room B is the preferred room for subject C.
* Subject D can use either, but will likely end up in Room B as Room A is in more demand.

The timetable is overloaded in such a way that occasionally subject A or B will need to use room B.  I just want to minimize those times.

Is there a sneaky way of handling this type of constraint?
Any plans to add a room weighting to the preferred rooms constraint?

This seems to be the only requirement that I can't find a way to work around.