HAL Id: hal-00783884
https://hal.archives-ouvertes.fr/hal-00783884
Submitted on 6 Feb 2013
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Tabu Search to Plan Schedules in a Multiskill Customer Contact Center
Florence Mendes, Corinne Lucet, Aziz Moukrim
To cite this version:
Florence Mendes, Corinne Lucet, Aziz Moukrim. Tabu Search to Plan Schedules in a Multiskill
Customer Contact Center. ICSSSM’06, Oct 2006, France. pp.1126-1131. �hal-00783884�
Tabu Search to Plan Schedules in a Multiskill Customer Contact Center ∗
F. Mendes 1 , C. Lucet 1 and A. Moukrim 2
1 LaRIA EA 2083, 5 rue du Moulin Neuf 80000 Amiens, France ((Florence.Mendes, Corinne.Lucet)@laria.u-picardie.fr)
2 HeuDiaSyC UMR CNRS 6599 UTC, BP 20529 60205 Compi`egne, France (Aziz.Moukrim@hds.utc.fr)
ABSTRACT
We have studied a realistic case of scheduling problem in a customer contact center, dealing with multiskill agents. Our model combines the last two steps of the standard approach by determining shifts and by assigning them to agents at the same time (scheduling and rostering). Moreover, we have considered realistic vacations, according to legal constraints and preferences of agents. We have envisioned entire weeks of work, with variable meal times and meal durations, without overtime. In this paper, we define the problem and describe a Tabu search based solution.
Keywords: Scheduling, Call Center, Tabu Search
1. INTRODUCTION
A call center handles by phone the customer contacts of several customer companies. If the call center uses also other means of communication such as email or post, it is called a customer contact center (CCC) or outsourcer. The main part of CCC’s operating costs is labor costs, so it is an important advantage to optimize these costs. We are in- terested in a particular scheduling problem in a customer contact center, dealing with several services and multiskill agents. First we define the kind of scheduling problem that we want to resolve and recall some general characteristics and solution methods proposed in literature. In the third section, we present our modeling and describe a greedy algorithm that provides a first solution. In section four, we describe the neighborhood of a solution and improve the first solution with an algorithm based on Tabu search.
Finally computational results obtained on real-world in- stances are discussed.
2. PREVIOUS WORK AND PROBLEM DESCRIPTION
The scheduling problem that is considered here consists in determining work schedules of CCC’s agents for a given time horizon. The main part of operating costs in CCC is due to personnel[3], so good scheduling algorithms can substantially reduce the costs. Scheduling problems are deeply studied in litterature, but there is often a gap be- tween models and the complexity of typical call centers design.
2.1. Previous work
A scheduling problem is generally decomposed into steps that are solved separately. Tien and Kamiyama [15] pro- posed three main stages to solve a scheduling problem, once the predictions of load are known. First step, named allocation, computes the number of agents needed for each period of the planning. It determines also the minimum number of agents to employ over the entire planning period.
Second step, named off day scheduling, consists in assign- ing off days to agents according to off day and work stretch constraints. Third step, named shift assignment, consists in assigning shifts to the schedule according to shift assign-
∗
1-4244-0451-7/06/$20.00 c 2006 IEEE
ment constraints and load predictions.
Ger Koole and al. [6] defined four standard steps that occur in many software packages: call volume estimation, calcu- lation of minimum number of agents, determining shifts, assigning agents to shifts.
The first set-covering formulation for shift scheduling problem has been developed by Dantzig [8]:
M in z =
m
X
j=1
C j X j
m
X
j=1
A ij X j ≥ B i , with i = 1, . . . , n and X j ≥ 0, X j integer,
where n corresponds to the number of time intervals dur- ing the planning horizon, m is the number of valid shifts, C j is the cost induced by the assignment of vacation j, A ij
equals 1 if interval i is a work period of shift j and 0 oth- erwise, B i is the number of required employees during the period i and X j is the number of employees assigned to vacation j. First line minimizes the number of agents to employ and second line ensures that the number of agents assigned is enough for each time interval. This model has been improved to take into account other constraints such as multiple breaks or multiskill capacities[13, 5, 4, 7].
Gartner and Miksch proposed a CSP [10], Fukunaga and al. combined a CSP with AI techniques [9]. Avramidis and l’Ecuyer [3] proposed Mathematical Programming formu- lation of the multiskill staffing and the multiskill schedul- ing problems.
Another interesting way to find good solutions to difficult problems is to apply metaheuristics such as methods based on local search. Local search has been used efficiently by Musliu and al. [11, 14] to design shifts in a single-skill call center. We have chosen to use a similar model. Details of problem modeling and a greedy algorithm to construct a feasible solution are given in the next paragraph of this paper.
We tackle the combined problem of designing and assign-
ing shifts and off days at the same time, as it has been done
for other scheduling problems.
2.2. Preliminary assumptions
In our problem, the number of available agents and terms of their employment contracts are fixed. As the center is a multiskill CCC, some agents have multiple skills, and can be assigned to several tasks on one single day of work. We suppose that each agent has at least one skill. The total length of the scheduling, named time horizon, is divided into weeks, days, and time intervals of the same length (typically 10 or 15 minutes).
We suppose that the first step of the scheduling, consist- ing in determining for each skill and each time interval the number of required agents to ensure a certain service level, has already been computed ([1][2]). This is done by using the standard Erlang formulae, raised by a percentage that is daily determined by taking into account average absen- teism for this kind of day or average load for similar days (the planner agent plays a part in this determination).
2.3. Problem constraints
Constraints of the problem can be divided into hard con- straints and soft constraints. Hard constraints contain le- gal regulations, due to work laws and collective bargain- ing agreements: work duration per day, per week, and per month for each agent, minimal and maximal working time before meal break, minimal and maximal length of lunch breaks, etc. Moreover, some of the agents’ individ- ual preferences that are contractually defined have to be enforced: it includes off day constraints, shift change con- straints and work stretch constraints. Hard constraints in- clude also some technical constraints: agents haven’t got the same skills and cannot be assigned to all tasks. Soft constraints include constraints that are relative to agents’
wellbeing by trying to take into account the equity between agents : for each agent, we watch the number of working schedules per week, the number of skills used per day, the average length of the meal period, etc. We assume that agents have 2 or 3 off days, according to their employment contract. No overtime is allowed, and the working time of an agent for one week is always the same.
2.4. Feasible scheduling solution
A vacation represents one day of work, for one agent. The solution of the scheduling problem is a schedule of the va- cations of each agent on a given planning horizon: weekly or monthly. The schedule indicates also the different skills that will be used by the agent during his working days. Af- ter scheduling, for each skill and each time period, we ob- tain the number of agents ideally necessary and the num- ber of agents effectively planned. A covering curve can be designed, showing excess and shortage intervals. Our main objective is to obtain at least minimal service levels for minimal costs, by using flexibility in task assignments.
Multiskill agents are scheduled for one or several skills dur- ing their day of work. Moreover, equity between agents has to be maintained, notably in assignment of the off days and in the average length of meal periods. These parameters are evaluated by measuring standard deviation with regard to average values over all agents.
3. PROBLEM MODELING AND CONSTRUCTION OF A FEASIBLE SOLUTION
In this section, we present our modeling of the CCC scheduling problem.We start with some definitions and de- scribe in next paragraph a simple algorithm to construct a feasible solution.
3.1. Problem modeling
We consider weeks (W 1 , ..., W N BW ), days (D 1 , ..., D 7 ) and time intervals (I 1 , ..., I N BI ) where N BW is the total number of weeks in the planning horizon and N BI is the number of time intervals during one day (24 hours). We are given (A 1 , ..., A N BA ) agents, (C 1 , ..., C N BC ) work con- tracts and (SK 1 , ..., SK N BSK ) different skills. To each agent corresponds one contract and a set of skills. Let an Activity be a set of tasks that requires certain skill for the agents. Activities are numbered from Act 1 to Act N BAct . We are given N BAct Charge curves such that, if Act is an Activity with inbound calls, then Ch(Act, W, D, I) is the number of agents ideally necessary at time interval I of the week W and the day D for Activity Act. We assume that for each other kind of Activity, the number of tasks that have to be done per day is known. Let a vacation type be defined by:
• earliest and latest start S min and S max,
• a length L,
• earliest and latest meal period start M min and M max,
• minimal and maximal length of meal period M L min and M L max
The vacation types are numbered from V T 1 to V T N BV T . An example of vacation types is given in table 1. A vaca- tion V W i,Dj,Ai = (V beg, V length, M beg, M length) represents one day of work, for one agent. V beg corre- sponds to the beginning interval of the vacation, V length corresponds to the length of the vacation, M beg is the first interval of meal break and M length its length. In the sim- ple skill case, to a vacation corresponds also the skill that will be used by the agent during the day. For a given week, all vacations of one agent must belong to the same vacation type. A valid vacation is a vacation that respects law con- straints and technical constraints. Let a shift for a week, a day, and an agent be defined by an interval of working time intervals and an Activity: s W,d,a,x = ([I beg , I end ], Act a ).
For a given week, each agent is assigned to X a shifts. Each vacation corresponds to a set of shifts (the sum of the length of shifts for a day and an agent equals the V length value of the vacation) and the intersection of shifts for one day and one agent is empty (an agent is assigned to at most one Activity during an interval). Shifts allow us to compute N BAct Presence curves such that P re(Act, W, D, I) = the number of agents assigned to the Activity Act during the time interval I of the week W and the day D.
undercover and overcover curves list for each activity ev-
ery period of shortage or excess of agents, by comparing
for each time interval the number of agents needed and the
number of agents assigned.
uc[Act, W, d, i] = Ch[Act, W, d, i] − P re[Act, W, d, i]
if Ch[Act, W, d, i] > P re[Act, W, d, i], 0 otherwise.
oc[Act, W, d, i] = P re[Act, W, d, i] − Ch[Act, W, d, i] if Ch[Act, W, d, i] < P re[Act, W, d, i], 0 otherwise.
A scheduling solution for a week W is made of the union of all shifts of all agents.
S W = [
a=A
1to A
NBA,d=1to7,x=1 to X
as W,d,a,x
In the scheduling solution, the sum of shortages, or Under- Cover(UC) has to be minimized.
U C(S W ) = X
Act=1toN BAct
X
d=1toN BD
X
i=1toN BI
uc[Act, W, d, i]
We use boolean variables Sof f to evaluate equity between agents. Sof f(A i , W j ) = 1 if agent A i works on Saturday for week W j , 0 otherwise. Let N S(A i , W j ) be the number of Saturdays-off for agent A i between week W 1 and week W j :
N S(A i , W j ) = X
k=1toj
Sof f(A i , W j )
Let N S(W j ) be the average number of Saturdays-off for all agents between weeks W 1 and W j . SE(S W
j) is the Saturday Equity parameter value for solution S W
j:
SE(S W
j) = P
i=1toN BA |N S(W j ) − N S(A i , W j )|
N BA ∗ j
Let N M (A i , W j ) be the number of meal breaks taken by agent A i between weeks W 1 and W j . Let DM (A i , W j ) be the average length of meal break taken by agent A i between weeks W 1 and W j . Let (DM (W j ) be the average length of meal break for all agents between weeks W 1 and W j . M E(S W
j) is the Meal Equity parameter value for solution S W
j:
M E(S W
j) = P
i=1toN BA |DM (W j ) − DM (A i , W j )|
N BA
Table 1: Example of vacation types
VT S min S max L M min M max ML min ML max
1 08:00 10:00 07:20 11:00 14:10 00:40 01:10
2 09:00 11:00 07:20 11:00 14:10 00:40 01:10
3 10:00 12:00 07:20 11:00 14:10 00:40 01:10
4 12:00 14:00 07:20 16:00 18:00 00:30 00:30
5 13:00 15:00 07:20 16:00 18:10 00:30 00:30
6 14:00 15:40 07:20 17:00 19:30 00:30 00:30
3.2. Priority algorithm to generate a scheduling solu- tion
A first solution to the scheduling problem is constructed with a greedy algorithm (see algorithm 1). This algorithm considers each week separately. We consider for each agent a number of working vacations according to his employ- ment contract. First, agents are randomly numbered, then vacations of agents are determined according to this order, agent by agent, for the entire week. For each agent, the va- cation type V T (Ai, W j) for the week and the off days are determined according to the maximal shortage of agents among all the skills of the agent. For each vacation and
each Activity that is in the skills of the agent, the sum of undercovers P
i uc[Act, W, d, i] for time intervals i corre- sponding to the vacation type V T is determined. Activity Act that involves the maximal sum of undercovers is cho- sen. Agent vacations (V beg,M beg,M length) are deter- mined successively according to priority rules, inspired by the heuristic [14] : a good shift starts when requirements increase and ends when requirements decrease. So, when evaluating different starting intervals for a vacation, the maximal value is given when working hours correspond to a load increasing of Activity Act. Finally, shifts of agents that have been constructed correspond to a scheduling so- lution S W and the UnderCover of the solution U C(S W ) is known.
Algorithm 1 Greedy algorithm
Input: agents contraints and charge courbes for week W Output: S W and U C S
WOrder agents from 1 to N BA
FOR each Activity, each Day,and each Interval DO uc[Act, W, D, I] = Ch[Act, W, D, I];
END FOR
FOR each agent A DO
Determine a vacation type V T Order days from D 1 to D 7
FOR D = D 1 to D N bV acations(A) DO Determine activity Act;
Determine V beg,M beg and M length;
V W,D,A = (V beg, V length, M beg, M length);
s W,D,A,1 = ([V beg, M beg], Act);
s W,D,A,2 = ([M beg + M length, V beg + V length + M length], Act);
FOR each time interval I of the vacation DO Compute uc(Act, W, D, I);
END FOR END FOR END FOR Compute U C S
W4. TABU SEARCH METHOD
The greedy algorithm produces non satisfying solutions. It assigns agents to only one Activity per day and does not bother about Equity constraints. Solutions involve Under- Cover on some Activities whereas some agents are in ex- cess on other Activities. We want to improve iteratively the quality of our scheduling solution, by choosing at each step a solution that is near from the current solution and that is of better quality : considering first the UnderCover value, and then the equity parameters (see algorithm 2).
The moves that are allowed when exploring the neighbor-
hood of the current solution are based on agents or activ-
ities. Some of these moves aim at improving the Under-
Cover value (U C), the others aim at improving equity val-
ues M E and SE. Four kinds of moves are used to gen-
erate the neighborhood : changing the starting interval of
a vacation for an agent, changing the Activity assigned to
an agent during a set of time intervals, swap all the vaca-
tions between two agents, swap one vacation between two
agents.
Algorithm 2 Evaluation of the neighbor solution Input: S and S 0 two neighbor solutions
Output: The best solution Best IF U C(S) < U C(S 0 ) THEN
Best = S ElSE
IF (U C(S) = U C(S 0 )and(SE(S) < SE (S 0 )) THEN
Best = S ElSE
IF (U C(S) = U C(S 0 ))and(SE(S) = SE(S 0 ))and(M E(S) < M E(S 0 )) THEN
Best = S ElSE
Best = S 0 END IF END IF END IF
4.1. Exploring the neighborhood
We don’t generate all the neighbors of a solution, because the entire neighborhood would be too large. Some con- ditions are common before applying any move : the new vacations obtained after the move must be valid vacations and correspond to the same vacation type as the initial va- cation. So, only the moves that allow to construct a feasi- ble scheduling solution are generated. At each step and for each move a set of agents is selected and moves are applied only to agents of this set. When no better solution is found after a number of iterations, the number of selected agents is increased.
Move Vacation: Moves M oveV acationLef t and M oveV acationRight consist in changing the starting interval of a vacation, without changing its length. This moves are applied when the starting or ending period of vacation shifts corresponds to a shortage of workers. The shifts are moved of one time interval in order to minimize undercover.
Selection of agents for an earlier beginning : Consider agent A i with vacation V W,D
j,A
i= (V beg, V length, M beg, M length). V end = V beg + V length and M end = M beg + M length.
Let S W 0 be the solution obtained by applying M oveV acationLef t to solution S W and agent A i . We obtain a new vacation V W,D 0
j