I have a set of duties I must schedule employees for. The duties recur weekly over a two-month period. There are a number of constraints that define a good schedule. (See below for examples.) In the past, I've made the schedule by hand, but doing it by hand is time-consuming and virtually guarantees a buggy schedule.
I'm looking for software that will make the schedule for me. I've tried TaskJuggler, but I'm not sure whether it's even capable of doing what I want (the documentation is unhelpful and the folks on the mailing list merely tell me to read the documentation--which I've done without conclusive results).
Can anybody recommend something? I prefer something I can run on Linux, although I have access to Windows XP if absolutely necessary. Additionally, my budget is zero--or what I'm willing to spend out of pocket--as my employer has no intention of paying to automate this task.
Here's an example schedule. Note that since this one was handmade, it contains an error or two.
Here are some of my constraints:
- All scheduled duties must be able to be manually-specified.
- Each teacher must have exactly two weekends off. Some weekends are defined as mandatory working weekends; no teacher may have those weekends off. Other weekends may be mandatory off weekends; such weekends have no scheduled duties and count toward each teacher's two weekends off. Finally, there may be other weekends which have no assigned duties but nevertheless don't count toward teachers' two weekends off.
- Duties should be assigned as evenly as possible. This means that so far as possible, each teacher must have a given duty the same number of times, have each different duty an equal number of times, and have an equal weight of duties on a given weekend (see below for weighting duties). Where this is not possible, the surplus duties should be balanced between teachers. Ideally, surplus duties should be scheduled taking into account each teacher's preferred duties; thus, a teacher who prefers the children's story might get it an extra time instead of one who really doesn't like it.
- No teacher should have the same duty on consecutive weeks.
- No teacher may be scheduled on their weekend off.
- No teacher may have simultaneous duties.
- The major duties are TGIF and the sermon.
- No teacher should have another duty on the same day as they are scheduled for a major duty.
- No teacher should have more than one major duty per week.
- If possible, no teacher should have a major duty on consecutive weeks. This, however, is not a particularly high-priority constraint.