Tabu Search for Solving Personnel Scheduling Problem Amol C. Adamuthe Rajankumar S. Bichkar Presenter: Aaron Leonard CS 6385 Nov 9, 2016
Personnel scheduling problem Special case of Constraint Satisfaction Problem Assign tasks to employees Without violating constraints And getting the “best” assignment
Personnel scheduling problem Known number of tasks in advance Time effort required Half day, full day, week, … Person effort required One person, two person, … Priority Dependency on other tasks
Personnel scheduling problem Known set of employee personnel Skillset What can/can't they do? How well can they do it? Especially compared to their coworkers Work schedule
Hard scheduling constraints Must be satisfied, or the schedule is worthless Task effort Each task should have required number of personnel Work schedule regulations Each person should not work more than possible to schedule them Or when they can’t be scheduled Skillset Task should be assigned to person with ability to do it
Soft scheduling constraints OK not to satisfy, but solution is considered worse than if they had been Task should be assigned to person with best skillset for the task Or if not the best, then the 2nd best Or if not the 2nd best, then the 3rd best...
Our personnel scheduling problem Schedule a lab for one week of tasks Tasks 7 tasks Each takes whole week Each requires 1 or 2 people Employees 14 employees Each employee available any given day May work maximum of 16, 24, or 40 hours depending on employee We know the skillsets of each History of hours they work on each task. More hours => bettter skill
Our personnel scheduling problem Skillsets:
Our personnel scheduling problem Tasks 5 tasks require 1 person 2 tasks require 2 persons
Tabu search Applied to any optimization problem Neighborhood search algorithm Start from an initial position Search for best neighbor position Continue until convergence, or run out of time Keep list of “tabu” neighborhood moves, to prevent returning to previous solutions Allow search to proceed in non optimal direction, when it can help avoid local optima Helps “push” the solution out of local optima
Applying tabu search Search space Any schedule We'll see how to restrict searching to partially feasible schedules
Applying tabu search Neighborhood structure Given a schedule, how to find neighbors? Swapping: Take two task assignments, and swap them If person 1 has task A, person 2 has task B in first schedule Person 1 has task B, person 2 has task A in second schedule Neighborhood is all new schedules that we can form by 1 or 2 swaps.
Applying tabu search Initial position Conventionally, pick a random schedule Instead, we start from partially feasible schedule Pick a schedule where work effort constraints are satisfied Just randomly assign people to each task until that’s done Neighborhood search won’t let this constraint become violated
Applying tabu search Tabu list What is tabu? Swapping Tabu tenure length List of size 15, FIFO behavior
Applying tabu search Objective function Weighted sum of constraint violations H is a hard constraint violated by the solution Whether the person is assigned too much work Whether the person is assigned a task they aren't qualified for S is a soft constraint violated by the solution Whether the person is assigned a task they aren't the best at The weight for hard constraint violations should be much larger than soft constraint Concrete numbers aren't specified in the paper
Applying tabu search Aspiration criteria Should we sometimes allow tabu moves? Allow a tabu move, if objective function value is higher than the current known maximum Since the new solution hasn’t been seen and is better Probabilistic neighborhood evaluation Only evaluate a random subset of the neighborhood, to save time
Results Tabu will find some optimal schedule Is it globally optimal? Search tree is gigantic, 9^70 distinct nodes We cannot exhaustively search Is it good? Compare to solutions found using other algorithms Yes
Evaluating schedule Enumerating skillset score Employee has experience with 5 tasks 32 hrs, 36 hrs, 48 hrs, 64 hrs, 68 hrs Value for task is the rank of time spent on that task If employee is assigned that task in the schedule In order, they receive values 1, 2, 3, 4, 5 If a schedule assigns that task, add the value to schedule’s score Compute and sum for all employees
Evaluating schedule Weighted skillset score Take variation of hours into account Should be more precise Employee has experience with 5 tasks 32 hrs, 36 hrs, 48 hrs, 64 hrs, 68 hrs Value for task is the fraction of time spent on that task, compared to total hours worked in skillset In order, they receive values 0.129, 0.145, 0.194, 0.258, 0.274 If a schedule assigns that task, add the value to schedule’s score Compute and sum for all employees
Schedule quality
Convergence time
Generalizing Does it generalize? We only tried a single problem instance so far What happens if we try with different employee skillsets? 5 “simple” skillsets Tabu gives better results in less time 5 “complex” skillsets Tabu is only better in two instances
Generalizing 6 “simple” skillsets Tabu gives better results in less time
Generalizing 4 “complex” skillsets Tabu is only better in two instances
Conclusion Defined the personnel scheduling problem as an optimization problem Solved it using tabu search Compared the solution to prior results, and found it to be Better Less time to converge Compared prior results for new solution instances Tabu still better at simple instances Tabu only better in 2 of 4 of complex instances