|
From: | Alex Morelli |
Subject: | [Help-glpk] Event Scheduling Question |
Date: | Mon, 15 Aug 2011 19:37:32 +1000 |
I am trying to construct a program of events for a little athletics centre. Children in their respective agegroups/genders compete in selected events over a season of 16 weeks (i.e. COMPETITIONDAY = 16).
I have the following variables:
var eventstart{d in COMPETITIONDAY, (agegroup,eventid) in EVENTGROUPS}, >=competitondaystarttime[d], <=competitondayfinishtime[d];
var eventfinish{d in COMPETITIONDAY,(agegroup,eventid) in EVENTGROUPS}, <=competitondayfinishtime[d];
var event{d in COMPETITIONDAY,(agegroup,eventid) in EVENTGROUPS}, binary;
I need to ensure that events can't be scheduled simultaneously - i.e. an agegroup cannot be at 2 events at the same time. There are no particular precedence constraints or due date requirements. I am trying to maximize the number of events conducted for each agegroup across the season where each competition day is of a fixed duration. There are numerous other constraints regarding access to resources at the centre (i.e. the sprint track, the discus, etc.)
I am having a lot of trouble trying to work how to avoid conflicts. The following constraint is obviously incorrect for multiple reasons (i.e. strict inequality and invalid type due to trying to compare variables - as far as I understand).
s.t. ev{d in COMPETITIONDAY, (agegroup,eventid) in EVENTGROUPS}: eventstart[d,agegroup,eventid] > {agegroup1 in ATHLETES: agegroup1<>agegroup} eventstart[d,agegroup1,eventid];
What I am trying to say here is that there can only be one agegroup undertaking a specific event during the time of that event.
I would appreciate any assistance or pointers to general formulations for this type of problem.
I acknowledge that this help forum may not be the most appropriate place for such a question and if so, would be grateful for any suggestions.
Regards, Alex
[Prev in Thread] | Current Thread | [Next in Thread] |