The task of producing Mars Science Laboratory (MSL) personnel schedules is daunting. Through automation, the labor and number of mistakes made are reduced when compared to the manual process. This software not only allows for common constraints to be expressed, but also for these to be gracefully descoped in case a solution cannot be found, thus making this unique in the personnel scheduling arena.
The primary improvement is the ability to gracefully retract constraints to achieve a schedule. Also, this is directly integrated into Excel, allowing for easier modification and utilization of the schedule.
Leveraging previous work on scheduling personnel for space mission operations, ASPEN (Activity Scheduling and Planning Environment) was adapted to the domain of scheduling personnel for operations of MSL. Skills indicate for what function the person is qualified to be scheduled. Off days are specific days that a person cannot be scheduled, e.g., vacation. Day-of-the-week constraints document which days of the week a person can be scheduled.
Shift-weighting is used to weight more demanding days more heavily when counting shifts. Duty cycle constraints limit the total number of shifts someone can be scheduled over a given period. There are three basic types of periods: shifts, days, and weeks.
For all of these constraints, the ability exists to descope to less restrictive constraints in a prescribed order should one fail to find a suitable schedule. Thus, for any individual, a collection of similar constraints is possible, each labeled with a descope level. Hard constraints (without descope annotation) can be associated as well.
Scheduling begins with the lowest descope level, and then attempts to find a schedule using squeaky-wheel optimization (SWO). Should SWO fail, then the descope level is increased, until either only hard constraints remain or a schedule is discovered. If only some of the tasks have been successfully assigned, the schedule with the lowest descope level with the most assigned tasks is returned.
The overall architecture of the system is simple. The schedule and constraints are part of an Excel spreadsheet. A macro saves the appropriate worksheet out as a comma-separated value (CSV) file and invokes the scheduler. The scheduler performs the necessary scheduling and then saves its results out as another CSV file. The macro then loads the newly created CSV file and copies the appropriate values into the worksheet.