Scheduling Physicians using Constraint Programming

The thesis demonstrates the suitability, flexibility and efficiency of applying constraint programming for an automatic generation of schedules for physicians. Constraint programming is about assigning values to a number of variables subject to constraints. In personnel scheduling, a variable represents a staff member at a certain time and these variables are assigned work tasks or shifts. Examples of constraints are that a limited number of doctors can do operation simultaneously and that there is a lowest number of appointments that must be scheduled each week. A real life problem from a Swedish clinic has been studied and a prototype software, without any optimisation, has been developed. Tests with random pre-assignments have been carried out for different variable orders. The clinic's constraints were formulated as two global constraints: count and logical constraints. The software successfully makes schedules for some instances, but to make it more dynamic, real life pre-assignments and constraints on individual doctors should be tested interactively, using an appropriate user interface.