Upload
jurgenwagemans
View
14
Download
0
Embed Size (px)
DESCRIPTION
A Simple Staffing Method for Multi Skill fing Method for Multi Skill
Citation preview
A Simple Staffing Method for Multi-Skill Call Centers
Auke Pot, Sandjai Bhulai & Ger KooleVrije Universiteit, De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Revised version
Abstract
In this paper, we study a simple method for staffing in multi-skill call centers. Themethod has short computation times and determines nearly optimal staffing levels.It is in both views competitive to other methods from the literature. Due to the fastand accurate performance of the method, many different scenarios can be analyzedas well as tactical or strategic decisions.
keywords: contact centers, multi-skill call centers, skill-based routing, staffing,workforce management.
1 Introduction
The call center industry is large and growing rapidly; there are millions of employees andhundreds to thousands of call centers world wide. More generally, we speak of customercontact centers, since telephony is not the only communication channel nowadays. Asubstantial number of contact centers can be classified as inbound centers, i.e., jobs areinitiated by customers. A property of this type of contact centers is that jobs arriverandomly over time and, as a consequence, the workload is hard to predict; additionalcomplexity is added by external factors such as, for instance, the weather. Due to thesecomplexities, the allocation of labor resources over time is a hard yet important problem.
It is important because an inadequately managed workforce can lead to low servicelevels, e.g., long waiting times, if there are not enough employees available. This can beavoided by scheduling a sufficiently large number of employees. However, it is undesiredto schedule too many employees because, besides service levels, contact centers also haveto meet economical objectives, in particular, minimizing costs due to employee salaries.Minimizing the number of employees is an important subject because labor is expensive;about eighty percent of operating costs in call centers are due to personnel (see Gans, Koole& Mandelbaum [GKM03]). Therefore, the cost reductions obtained with good staffingalgorithms can be substantial.
Note that optimal labor allocation in single-skill call centers is already a complex issue,since it should be studied by integrating shift scheduling as well. This, however, results in
1
intractable models, and therefore we study the staffing problem seperately from the shiftscheduling problem. In practice, obtaining good rosters requires several iterations betweenstaffing and scheduling. In these cases, it is important to have a staffing method with shortcomputation times.
Contribution
In this paper, we deal with the staffing problem of the labor allocation process. Our maincontribution is that we develop a staffing method to determine schedules in multi-skill callcenters such that a rough match between the predicted workload and labor capacity isrealized taking the randomness of the arrival process into account.
The staffing method has several appealing properties that make it competitive in com-parison to other methods in the literature: it is easy to implement, has short computationtimes, and yields nearly optimal staffing levels. Hence, the results of the method can there-fore be used for the scheduling problem. Due to the fast and accurate performance of themethod, many different scenarios can be analyzed as well as tactical or strategic decisions.For an application to the scheduling problem we refer to Bhulai, Koole & Pot [BKP06].
Literature
In call centers the staffing levels are typically determined as follows. The working day issplit into consecutive time intervals. Then, independence is assumed between the differentperiods as well as stationary behaviour in each period. Using standard formulas, like theErlang-C formula, the staffing level is determined for each time interval. (For literature onthe Erlang formula and the determination of staffing levels, we refer to Cooper [Coo81].)Most models from the literature have the limitation that assumptions are made (e.g.,exponential distributions) to derive closed-form expressions for the relation between servicelevel metrics and staffing levels. These closed-form expressions have the advantage thatcomputation times are short, however, the assumptions are unrealistic in practice.
The impact of assuming independence between the time intervals can be reduced.Thompson [Tho93] describes a method that corrects for the multi-period impact by meansof adjusting the arrival rate appropriately in each period. Green et al. [GKS01] proposethe lag-max algorithm that shifts the staffing levels forward in time. This results in servicelevels that are satisfied for almost all periods when taking transient effects into account.To obtain more accurate staffing levels for realistic situations call centers are often forcedto use simulation.
Koole, Pot & Talim [KPT03] present a heuristic to optimize the division of agentsamong different groups. The method in this paper is an extension of this heuristic, sincewe additionally take the costs of agents and the service-level conditions into account.
Chevalier and Van den Schrieck [CV05] consider overflow routing in multi-skill blockingsystems with randomization parameters. Examples with four different skills are provided,and an agent group is included for each possible set of skills. They describe a method to
2
optimize the staffing levels and randomization parameters by using the Branch-and-Boundalgorithm (see Land and Doig [LD60]).
Cezik & L’Ecuyer [CL06] describe a staffing method in the context of multi-skill callcenters. The method reduces the solution space by means of generating cuts. The com-putation time of this algorithm is relatively long because each cut requires the multi-skillcall center to be simulated multiple times and very accurately. Hence, they are not able tosolve the shift scheduling problem, but are only able to determine the staffing levels thatare constant over the day.
Outline
The paper is organized as follows. Section 2 defines the problem and introduces the notationthat will be used throughout the paper. The main contribution of the paper is in Section 3,presenting an efficient method for staffing in a multi-skill environment while meeting aservice level constraint. The performance of the staffing method is extensively evaluatednumerically in Section 4 and compared to the method of Cezik & L’Ecuyer [CL06]. Weshow that the method is fast and yields nearly optimal results. Finally, a summary of theresults is given in Section 5, which also discusses directions for future research.
2 Problem Formulation
Consider a call center that handles calls which require a skill from the setM := {1, 2, . . . ,M}.Calls of type m ∈ M arrive according to a Poisson process with rate λm. Every agent inthe call center belongs to an agent group from the set G = {1, 2, . . . , G}. The service ratesare skill and group dependent, denoted by rate µm,g for skill m ∈M and group g ∈ G. Weassume that a control policy π is given that defines the call-selection and agent-selectionrule. Call assignment occurs according to the agent-selection rule. If a call is not assignedto an agent group, it is queued, after which it is served according to the call-selection rule.
We define the service level as the percentage of arrivals that waits less than the ac-ceptable waiting time (AWT) in the queue. This service level is denoted by SLπ(s) whencontrol policy π is used, where s is a vector of length G denoting the staffing levels of thedifferent groups. The minimal requirement is denoted by α. In practice, call centers oftentake α = 80% and an AWT of 20 seconds. The objective is to calculate the number ofagents s that is required to meet the service-level constraint.
Note that the service-level constraints are only included to a limited extend. Servicelevels cannot be specified per job type. In our opinion, this is not a severe restriction.Schedules are most often generated at least a few weeks ahead of time based on predictions.Call centers often have to reschedule during the day when the real workload deviatesfrom the predictions. Thus, service levels often can be and need to be controlled duringoperations. In addition, service levels can also be controlled by means of optimizing therouting policies.
The staffing costs are denoted by K(s) and are determined by calculating the expected
3
costs of scheduling sg agents in group g. Mathematically,
K(s) :=∑g∈G
Kg(sg),
where Kg(sg) are the costs of scheduling sg agents. The objective function is given by
f(s) := −K(s).
The objective of finding optimal staffing levels can be translated into the following opti-mization problem
P1
{maxs∈ZG
+f(s)
s.t. SLπ(s) ≥ α,
with Z+ the set of non-negative integers.
3 Staffing Algorithm
In this section we present an efficient method to determine the staffing levels for eachagent group, based on P1. However, the problem P1 is intractable since the number ofdifferent agent configurations s is huge and hence suffers from the curse of dimensionality.Experiments show that there exists no simple ordering of states such that simplificationby local search would be possible. For this reason, we reformulate problem P1 as{
maxn∈Z+
(maxs∈ZG
+:se=n f(s))
s.t. SLπ(s) ≥ α.
Our solution approach is to solve the Lagrangian dual of this integer problem. Note that weare solving a discrete optimization problem so that there can be a duality gap. Moreover,the service level is only concave in the number of agents if the system is stable, assumingno abandonments occur, see Jagers & Van Doorn [JvD91]. Therefore, we should ignorestaffing vectors that yield unstable systems. However, in case of abandonments a problemcould arise, because the service level is not a concave function anymore. To this end, weformulate the algorithm in such a way that we only require weaker monotonicity properties.
For the formulation of the Lagrangian dual, we define
f(β, s) := β(SLπ(s)− α
)−K(s), (1)
andf (n)(β) := max
s∈ZG+:se=n
f(β, s).
Then, problem P1 becomes
P2{
maxn>Ln f (n),
4
wheref (n) := min
β∈Rf (n)(β),
and Ln denotes the smallest number of agents such that the service level constraint can besatisfied. The variable β is the Lagrange multiplier of the service level constraint, denotingthe sensitivity of K(s) for changes in α. Finally, in the remainder of this section we needto define SL(n),π(β), defined as
SL(n),π(β) := SLπ(arg max
s∈ZG+:se=n
f(β, s)).
We now present a simple heuristic for solving problem P2, and explain the heuristic indetail afterwards.
Staffing heuristic()1 Initialization: f ← 0, nL ← 0, nU ← M, βL ← 0, and βU ← M2 For all n (golden ratio search):3 Init: f (n)(β)← M and β ← βL + (βU − βL)/z4 While βU − βL > ε (bisection)5 Initialization: f (n)(β)← 0 and s∗ ← 0 and declare SL(n),π(β)6 For all s : se = n (local search)7 Calculate SLπ(s) and f(β, s)8 If f(β, s) > f (n)(β)9 s∗ ← s, f (n)(β)← f(β, s), and SL(n),π(β)← SLπ(s)
10 End if11 Next12 If f (n)(β) < f (n)
13 s∗∗ ← s∗ and f (n) ← f (n)(β)14 End if15 If SL(n),π(β) < α then βL ← β, else βU ← β End if16 β ← βL + (βU − βL)/z17 Next18 If f (n) > f then f ← f (n) and s∗∗∗ ← s∗∗ End if19 Update nL, nU , and n by using the golden ratio.20 Next
The heuristic consists of several parts. The initialization occurs in lines 1–5 and uses severalparameters: nL/nU is the lower/upper bound of the total number of agents, βL/βU is thelower/upper bound of β, and M is a large number, e.g., 104. In lines 6–11 the heuristic findsthe optimal agent configuration with respect to f(β, s) for a fixed Lagrange multiplier βand a fixed number of agents n = se. Lines 15–16 optimize the costs by varying β, whereaslines 18–19 vary n. Optimality with respect to β is tested in lines 12–14, which is alsochecked against optimality with respect to n in line 18. The result is stored in the variable
5
s∗∗∗, which is the final output of the algorithm. A few lines require additional explanation,which are given next.
Apply local searchIn the part where the optimal agent configuration is determined, lines 6–11, we mention alocal search algorithm that has not yet been defined. To this end, we define an orderingon the set {s : se = n} such that s1 < s2 iff f(β, s1) < f(β, s2). The local search algorithmworks well theoretically if there exists a path s1 = s1 < s2 < · · · < sp = s2 of length p suchthat si+1 = si− ea + eb, with a, b ∈ G and ei a vector with an 1 at index i, and 0 otherwise.In practice, it also performs well in all our experiments. In the local search algorithm, thenext state si+1 = si− ea + eb is the successor of si chosen such that f(β, si+1) is maximizedover all m, n ∈ G and f(β, si+1) > f(β, si).
Avoid simulationsWe use other performance evaluation methods than simulation to determine service levelsin the local search algorithm. The benefit is a considerable reduction of computationtimes. We refer to Section 3.1 for alternative methods that are based on blocking models.In general, a disadvantage of these methods is that the absolute values of the servicelevel approximations are not accurate. However, changes in service levels by adjustmentsto the sizes of the agent groups can be measured sufficiently accurate (see Section 3.2for a discussion). Hence, to make sure that the service level converges to α, we did anextension in line 15. To make this work, we need that SL(n),π(β) is a monotone increasingfunction in β. This is likely to hold, because if the Lagrange multiplier of the service-levelincreases, the service level has a higher weight in the objective function, so that it is likelyto increase. Thus, it enables us to optimize the Lagrange multiplier β such that the servicelevel approaches α, ensuring that the service level condition is met.
Assume monotonicityThe second part of the heuristic deals with the optimal value of β. The implementation isbased on the intuition that f (n)(β) is convex in β for fixed n. Indeed, when β increases,the service level becomes more relevant when determining s, resulting in a higher valueof f (n)(β) due to more conservative scheduling. The third part of the heuristic optimizesn and relies on concavity of f (n). Indeed by intuition, the service level is concave in n ifthe system is stable and the costs K(s) will typically be linear. Notice that n is not acontinuous variable such that results can be inaccurate. The variable n is optimized bythe golden ratio search (see Press et al. [PTVF02]). In line 19 we always increase nL ifthe service level can not be met, for example, if the system is not stable. This is checkedby taking β = M, and applying the local search algorithm from lines 6–10, such that theservice level is maximized.
6
3.1 Performance improvements
The algorithm as described in the previous section has long computation times because ofthe huge number of required simulations in line 6. This can be reduced significantly, whichis discussed in this section.
A straightforward technique to evaluate the system in each iteration is simulation, whichis often used in industry. However, this technique is very time-consuming. The calculationtimes can be reduced substantially by reducing the number of simulations. This can alsobe done by using methods from the literature that are based on a multi-skill blockingmodel, see, e.g., Franx et al. [FKP06] and Chevalier & Tabordon [CT03]. These methodsassume no queues and approximate the blocking probability of the system. Although theseassumptions are not made in our model, these methods from the literature are useful; earlierstudies show that when comparing two different staffing levels, the difference in blockingprobabilities accurately reflect the difference in service levels for the original system, seeKoole et al. [KPT03] for a first example, and Chevalier et al. [CST04] and Chevalier & Vanden Schrieck [CV05] for a method that integrates one of these methods in an optimizationalgorithm. Thus, these methods are useful for optimization purposes, and therefore used inall of our numerical examples. In particular, we used the HyperExponential Decompositionmethod from Franx et al. [FKP06] and the Hayward-Fredericks method [Fre80]. The resultsthat are reported in the tables are obtained by the Hayward-Fredericks method. We preferthis method above the HyperExponential Decomposition method because it is faster.
To support these methods of blocking models, the algorithm is adjusted as follows:
• replace in lines 6–11 SL by S̃L, denoting 1 minus the blocking probability instead ofthe probability of waiting less than 20 seconds,
• replace β by β̃ because the Lagrange multiplier has no longer the same meaning,
• redefine in Equation (1) f(β, s) = −K(s), and
• determine after line 11, SL(n),π(β) by simulation, and calculate f (n)(β).
Line 15 is of crucial importance because it ensures that the service level constraint is met.For that reason, the redefinition of f(β, s) is justified.
Another way to improve the performance is as follows. With the initialization it ispreferable to choose nL and nU as tight as possible. This increases the speed of thealgorithm. A formula such as the Erlang-C was helpful to calculate lower and upperbounds on the total number of agents. A lower bound is obtained by considering thesystem as a single-skill call center and taking the lowest service rate over all groups andskills. An upper bound is obtained by considering separate call centers for each job type.
Finally, we mention a number of technical notes to reduce the computation times
1. We take z = MAX(2.0, LOG(βU − βL)).
2. For each n the local search starts with the agents equally distributed among theagent groups. Every time that β is adjusted according to the bisection algorithm,the group sizes are not changed.
7
3. Before β is optimized for a certain n, we check if the best objective value that has beenfound so far, can be improved for that value of n by calculating an upper bound.Otherwise, β is not optimized and the golden ratio method continues directly bychoosing another value of n.
4. Each time the staffing vector is adjusted according to s ← s + ei − ej, we repeatthe same movement several times, as long as the objective improves and ej is greaterthan 0, with a maximum of 3 times.
3.2 Optimality of blocking models
To justify the usage of blocking models we validate this by performing numerical experi-ments. We compare two performance measures: the overall blocking probability in case ofno queues, and the fraction of customers that are served within 20 seconds waiting in thepresence of queues. The first measure is approximated by using the Hayward-Fredericksmethod and the second measure is approximated by means of simulation.
We consider an arbitrarily chosen model. There are 3 types of jobs, M = {1, 2, 3}.Jobs arrive with intensities λ1 = 1, λ2 = 1.5, and λ3 = 2. The groups are S1 = {1},S2 = {2}, S3 = {3}, S4 = {1, 2}, S5 = {2, 3}, and S6 = {1, 2, 3}. The routing policyis (1 : 1 → 4 → 6), (2 : 2 → 4 → 5 → 6), and (3 : 3 → 5 → 6). The service ratesare µ1,1 = 0.5, µ2,2 = 0.55, µ3,3 = 0.6, µ1,4 = 0.47, µ2,4 = 0.50, µ2,5 = 0.51, µ3,5 = 0.56,µ1,6 = 0.45, µ2,6 = 0.45, and µ3,6 = 0.52. The initial staffing levels are s1 = 2, s2 = 2,s3 = 2, s4 = 2, s5 = 2, and s6 = 2.
By means of experiments we measure and compare the relative differences of bothperformance measures when agents are moved from one group to another. Under theinitial staffing levels we obtain a service level of SLπ(s) = 0.7922 in case of queues, and a
service level of S̃Lπ(s) = 0.8896 in case of no queues. Table 1 shows the changes in the
service level when the staffing levels are adjusted. In more detail, it presents the absolutevalues of the two service levels on the left and the relative changes to the service levelscompared to the initial staffing levels on the right. The rows are ordered according to therelative differences associated to the queueing model. We conclude that the ordering ofthese differences for both models are roughly identical.
Next, we execute another experiment to compare the staffing levels of the two methodsthat result from optimization. A local-search method is applied to maximize the servicelevels with the same total number of agents, i.e., 12 persons. In case of queues, the optimalservice level is 84% and the corresponding staffing levels are (0, 0, 2, 4, 4, 2). Withoutqueues, we obtain a service level of 83% and the staffing vector (0, 0, 0, 2, 4, 6). This showsthat approximations by means of blocking probabilities yield nearly optimal staffing levels.However, this example also reveals that the optimal staffing vectors can differ betweenboth methods. In our opinion, the three most important observations of this experimentare:
• Blocking probabilities are less sensitive to adjustments of the staffing vector.
8
blocking waitings S̃L
π(s) ∆S̃L
π(s) SLπ(s) ∆SLπ(s)
(1, 2, 3, 2, 2, 2) 0.898 0.98% 0.832 5.05%(1, 2, 2, 2, 3, 2) 0.900 1.18% 0.830 4.78%(1, 2, 2, 2, 2, 3) 0.903 1.58% 0.828 4.54%(2, 1, 2, 2, 3, 2) 0.899 1.10% 0.823 3.90%(2, 1, 3, 2, 2, 2) 0.896 0.73% 0.821 3.66%(2, 2, 2, 1, 3, 2) 0.897 0.84% 0.820 3.58%(2, 1, 2, 2, 2, 3) 0.899 1.13% 0.818 3.35%(2, 2, 2, 1, 2, 3) 0.899 1.09% 0.817 3.24%(2, 2, 3, 1, 2, 2) 0.894 0.53% 0.816 3.11%(1, 2, 2, 3, 2, 2) 0.893 0.47% 0.811 2.49%(2, 2, 2, 2, 3, 1) 0.885 −0.45% 0.809 2.15%(2, 2, 3, 2, 2, 1) 0.884 −0.61% 0.803 1.41%(1, 3, 2, 2, 2, 2) 0.887 −0.19% 0.801 1.20%(2, 2, 3, 2, 1, 2) 0.887 −0.19% 0.798 0.81%(2, 3, 2, 1, 2, 2) 0.885 −0.50% 0.797 0.71%(2, 2, 1, 2, 3, 2) 0.888 −0.09% 0.794 0.25%(2, 2, 2, 2, 1, 3) 0.891 0.19% 0.793 0.14%(2, 1, 2, 3, 2, 2) 0.890 0.08% 0.792 0.04%(2, 2, 1, 2, 2, 3) 0.890 0.11% 0.788 −0.52%(3, 2, 2, 1, 2, 2) 0.878 −1.28% 0.758 −4.25%(2, 2, 2, 3, 2, 1) 0.872 −1.95% 0.755 −4.66%(3, 1, 2, 2, 2, 2) 0.877 −1.35% 0.747 −5.59%(2, 3, 2, 2, 2, 1) 0.868 −2.34% 0.745 −5.85%(2, 2, 2, 3, 1, 2) 0.873 −1.84% 0.739 −6.71%(2, 3, 2, 2, 1, 2) 0.870 −2.15% 0.736 −7.05%(2, 3, 1, 2, 2, 2) 0.868 −2.36% 0.735 −7.11%(2, 2, 1, 3, 2, 2) 0.871 −2.03% 0.725 −8.39%(3, 2, 2, 2, 2, 1) 0.862 −3.05% 0.723 −8.73%(3, 2, 2, 2, 1, 2) 0.862 −3.05% 0.701 −11.51%(3, 2, 1, 2, 2, 2) 0.861 −3.18% 0.699 −11.69%
Table 1: Relative differences
9
• The usage of blocking models yields solutions with relatively many generalists com-pared to delay models. This is intuitively clear because the service of a client inblocking models requires that an agent must be available upon arrival, which pleadsfor agents with many skills. In delay systems, however, customers can also be servedafter the arrival epoch because they can wait. Then, the higher service speed ofspecialists becomes more beneficial.
• The number of nearly optimal staffing vectors is huge and the vectors are diverse.This holds for both types of models. For example, the previous example gave twosolutions with almost the same service level.
A reason for the latter two observations is that we did not differentiate between the staffingcosts of the different agent groups. However, the staffing algorithm does differentiatebetween costs by means of the Lagrange multiplier. Hence, the difference in staffing vectorsbetween delay and blocking models becomes much smaller, which can be concluded from theexample in Section 4.3. Moreover, Section 4 provides numerical examples of all algorithmsof this paper. They allow us to conclude that the staffing algorithm works well and producesnearly optimal results in reasonable cases.
4 Numerical experiments
In this section, we provide numerical examples illustrating the method from Section 3. Theexamples use models having infinite waiting queues, customers having infinite patience forservice, and service according to a first-in-first-out service discipline per job type. Uponarrival, calls are assigned to employees according to overflow policies (see, e.g., Franx etal. [FKP06]), and in such a way that specialists have the highest priority, agents with 2skills the second-highest priority, and agents with 3 skills the third-highest priority. At aservice completion, among the queues with jobs for which the agent has the right skill, ajob from the longest queue is taken.
The computations were executed on a PC with a 2800 AMD Athlon processor. TheRAM usage for our method was always very low.
4.1 A Call Center with Two Skills
Consider a call center with 2 skills and 3 agent groups, i.e., G = 3 and M = {1, 2}. Thearrival rates are λ1 = 1.5 and λ2 = 2. A group of specialists is included for each call type,S1 = {1}, S2 = {2}, and additional flexibility is ensured by generalists, S3 = {1, 2}. Uponarrival the routing policy is (1 : 1→ 3) and (2 : 2→ 3). This means that calls of type 1 areassigned to agents of group 1, unless all type-1 agents are unavailable. In that case, agentgroup 3 is considered. The sequence for type 2 calls is interpreted similarly. The costs cg
of staffing an agent in the g-th group is 0.5 if g = 1, 0.7 if g = 2, and 0.9 in case g = 3.Specialists are more efficient than generalists, thus µ11 = 0.18, µ22 = 0.6, µ13 = 0.16, andµ23 = 0.5.
10
n16 17 18
β̃ s∗ SLπ β̃ s∗ SLπ β̃ s∗ SLπ
2.5e3 (6,4,6) 80% 2.5e3 (7,5,5) 87% 2.5e3 (8,5,5) 93%6.3e2 (7,4,5) 80% 6.3e2 (8,4,5) 88% 6.3e2 (9,4,5) 93%1.6e2 (7,4,5) 80% 1.6e2 (8,4,5) 88% 1.6e2 (9,4,5) 93%3.9e1 (9,5,2) 81% 3.9e1 (10,5,2) 87% 3.9e1 (10,6,2) 91%9.8e0 (11,5,0) 76% 9.8e0 (11,6,0) 84% 9.8e0 (12,6,0) 89%1.7e1 (10,6,0) 76% 2.4e0 (14,3,0) 41% 2.4e0 (15,3,0) 42%2.3e1 (10,6,0) 76% 4.3e0 (12,5,0) 81% 4.3e0 (13,5,0) 83%2.7e1 (10,6,0) 76% - - - - - -3.6e1 (9,5,2) 81% 6.7e0 (12,5,0) 81% 4.3e0 (13,5,0) 83%
9.8 9.5 10
Table 2: Output of the staffing algorithm (with 2 skills)
Table 2 summarizes the main results that are obtained by applying the algorithmto this example. The table consists of three columns for different numbers of agents n,determined by the optimization procedure. For each n it shows in each consecutive row theβ̃ obtained by bisection, together with the optimal staffing level obtained by local search,and the corresponding service level. The variable β̃ converges over the different rows tothe optimal value. The integer after the ’e’ in the column of β̃, say k, denotes that thevalue should be multiplied by 10k. The table only presents data of the first 9 iterations ofthe bisection algorithm because they show the most significant improvements.
The last two rows show the optimal outcomes, for each value of n; the first row presentsthe optimal β̃, SLπ, and s∗. The second row contains the staffing costs of the optimalvector. In addition, the staffing costs K(s∗) are 9.8, 9.5, and 10 for 16, 17, and 18 agents,respectively. Moreover, taking n = 19 yields as optimum K(s∗) = 10.5. The objectivevalue of 9.5 for n = 17 is the best solution found. It also appears to be optimal; no bettersolution was found by enumerating the whole search space and evaluating each staffingvector.
The algorithm requires simulating a few more than 17 different staffing vectors, takinga few seconds computation time each. Moreover, the optimization procedure performed bylocal search hardly takes any time.
4.2 A Call Center with Three Skills
By adding a skill to the set from the previous example the number of different skill setsincreases from 3 to 7. The skills of the agent groups are: S1 = {1}, S2 = {2}, S3 = {3},S4 = {1, 2}, S5 = {2, 3}, S6 = {1, 3}, and S7 = {1, 2, 3}. The routing is (1 : 1 → 4 →6 → 7), (2 : 2 → 4 → 5 → 7), and (3 : 3 → 5 → 6 → 7). Jobs arrive with rates
11
λ1 = λ2 = λ3 = 2 and the service rates µmg, denoting the service rate of agents from groupg working on call type m, are: µ11 = 0.3, µ22 = 0.4, µ33 = 0.5, µ14 = 0.27, µ24 = 0.36,µ25 = 0.36, µ35 = 0.45, µ16 = 0.27, µ36 = 0.45, µ17 = 0.24, µ27 = 0.32, and µ37 = 0.40.The costs of the agents are: c1 = 1.3, c2 = 1.4, c3 = 1.5, c4 = 1.4, c5 = 1.6, c6 = 1.5, andc7 = 1.6.
A summary of the execution of the algorithm is depicted in Table 3. The meaning ofthe content needs no further explanation because the structure of the table is similar toTable 2.
The table shows that no feasible solution is found when taking n = 21. Even for highvalues of β̃ the service level does not exceed 78%, while 80% is required. The best solutionis obtained by setting n = 22, which resulted in a service level of exactly 80% and staffingcosts of 30.6. Higher values of n yielded higher costs.
4.3 Comparison to Cutting Planes Methods
In this section we make a comparison to the method from Cezik & L’Ecuyer [CL06]. Weassume that their method yields nearly optimal results, such that we can use it as abenchmark to measure the accuracy of the Lagrange relaxation algorithm from Section 3.However, we are not able to compare the results of their paper because they differentiatebetween the importance of the different call types. Priorities between call types are incor-porated by the way that calls are selected when an agent finishes a call. Agents give thehighest priority to type 1, and the higher the index of the call type the lower the priority is.In contrast, no priorities are supported in our model. An agent serves the longest waitingcustomer. Hence, we composed other instances with this type of call selection policy.
A Call Center with Three Skills
We consider a call center with 3 skills. The agent groups are S1 = {1}, S2 = {2},S3 = {1, 2}, S4 = {1, 3}, S5 = {2, 3}, and S6 = {1, 2, 3}. The routing policy is (1 : 1 →3 → 4 → 6), (2 : 2 → 3 → 5 → 6), and (3 : 4 → 5 → 6). The instances are completelydescribed by Table 4, which contains all the other required parameters. The time unit isminutes and the period of the simulation runs in both methods is 160 hours.
The results are presented in Table 5. The service level is in all cases close to 80% witha deviation of 2%. We read from the table that the objective values of the 2 methods areclose to each other for each instance. In most cases the objective values are lower withthe Lagrange relaxation, as introduced in this paper. However, the service levels are alsoslightly lower in these cases. Hence, we conclude that the accuracy is comparable to thecutting planes method.
A Call Center with Five Skills
The examples in this section concern a call center with 5 job types. Its agent groups andagent selection policy are similar to the ones used in Cezik & L’Ecuyer [CL06], which is
12
n21
2223
24
β̃s∗
SL
πβ̃
s∗S
Lπ
β̃s∗
SL
πβ̃
s∗S
Lπ
2.5e
3(4
,3,2
,2,4
,2,4
)78
%2.
5e3
(4,3
,2,2
,3,2
,6)
86%
2.5e
3(5
,3,2
,1,4
,2,6
)91
%2.
5e3
(4,2
,1,3
,4,2
,8)
95%
4.4e
3(4
,3,2
,2,4
,2,4
)78
%6.
3e2
(4,3
,2,2
,3,2
,6)
86%
6.3e
2(5
,3,2
,2,3
,2,6
)91
%6.
3e2
(5,4
,2,2
,2,3
,6)
95%
5.8e
3(4
,3,2
,2,4
,2,4
)78
%1.
6e2
(5,4
,3,3
,1,2
,4)
86%
1.6e
2(5
,4,3
,4,1
,2,4
)91
%1.
6e2
(5,3
,3,4
,1,2
,6)
95%
6.8e
3(4
,3,2
,2,4
,2,4
)78
%3.
9e1
(6,5
,4,3
,0,2
,2)
85%
3.9e
1(6
,4,3
,4,0
,2,4
)91
%3.
9e1
(7,4
,4,5
,0,2
,2)
93%
7.6e
3(4
,3,2
,2,4
,2,4
)78
%9.
8e0
(9,5
,5,3
,0,0
,0)
75%
9.8e
0(1
0,6,
5,2,
0,0,
0)78
%9.
8e0
(10,
6,4,
2,0,
2,0)
85%
8.7e
3(4
,3,2
,2,4
,2,4
)78
%1.
7e1
(8,5
,4,3
,0,2
,0)
80%
1.7e
1(8
,4,4
,5,0
,2,0
)85
%2.
4e0
(19,
4,1,
0,0,
0,0)
34%
9.0e
3(4
,3,2
,2,4
,2,4
)78
%1.
2e1
(9,5
,5,3
,0,0
,0)
75%
1.2e
1(9
,6,4
,2,0
,2,0
)83
%4.
3e0
(14,
5,3,
2,0,
0,0)
57%
9.2e
3(4
,3,2
,2,4
,2,4
)78
%1.
3e1
(8,5
,4,3
,0,2
,0)
80%
1.0e
1(1
0,6,
5,2,
0,0,
0)78
%5.
6e0
(13,
5,4,
2,0,
0,0)
57%
9.4e
3(4
,3,2
,2,4
,2,4
)78
%1.
2e1
(9,5
,5,3
,0,0
,0)
75%
1.1e
1(9
,6,4
,2,0
,2,0
)83
%6.
7e0
(11,
6,5,
2,0,
0,0)
79%
9.6e
3(4
,3,2
,2,4
,2,4
)78
%1.
2e1
(8,5
,4,3
,0,2
,0)
80%
--
-7.
4e0
(11,
6,5,
2,0,
0,0)
79%
9.7e
3(4
,3,2
,2,4
,2,4
)78
%-
--
--
-8.
0e0
(11,
6,5,
2,0,
0,0)
79%
--
-1.
2e1
(8,5
,4,3
,0,2
,0)
80%
1.1e
1(9
,6,4
,2,0
,2,0
)83
%9.
8e0
(10,
6,4,
2,0,
2,0)
85%
31.0
30.6
31.9
33.2
Table 3: Output of the staffing algorithm (with 3 skills)
13
depicted in Table 6. In contrast, an agent serves the longest waiting customer at a servicecompletion.
The service rates are µm,g = 12 for all m and g. We require the overall service level tobe at least 80%.
The arrival rates per hour are presented in Table 7. We apply the algorithm fromSection 3. The staffing costs are (K1(st,1), K
2(st,2), . . .) = (0.908, 0.954, 0.908, 1, 1, 1, 1, 1, 1,0.954, 1, 1). Note that we add the subscript t to denote the dependency on the time period.Table 8 presents the staffing vectors that resulted from the staffing algorithm.
In order to evaluate the staffing algorithm more extensively, and to have more compar-isons to Cezik & L’Ecuyer [CL06], we consider staffing costs similar to theirs:
(K1(st,1),
K2(st,2), . . .)
= (1, 1, 1.1, 1.1, 1.1, 1.1, 1.2, 1.2, 1.2, 1.2, 1.3, 1.4). Table 9 presents the resultsof both algorithms. The content and structure of the table is similar to the previous ta-bles. The performance measures are the objective value, the CPU time, and the numberof simulations. We can read from the table that the accuracy and the computation timesare both superior compared to the cutting plane method.
5 Concluding remarks
In this paper we presented a method for staffing in multi-skill call centers. Two appealingadvantages are the short computation times and the high accuracy. Although our experi-ments deal with call centers having at most five skills, computations are still tractable forcall centers with more skills. Another advantage is that the method is easy to implement.The results of the method can therefore be used for the shift scheduling problem in orderto generate shifts and rosters.
AcknowledgmentsOur thanks go in first place to the referees, who gave us very useful comments and sug-gestions. Our thanks also go to Pierre L’Ecuyer, Eric Buist, Wyean Chan, and ThanosAvrimidis for letting us use their cutting planes code. Finally, we would like to thankMarco Bijvank for improving the readability of an earlier version of the manuscript.
References
[BKP06] S. Bhulai, G.M. Koole, and S.A. Pot, Simple methods for shift scheduling inmulti-skill call centers, Submitted, 2006.
[CL06] M.T. Cezik and P. L’Ecuyer, Staffing multi-skill call centers via linear program-ming and simulation, To appear in Management Science, 2006.
[Coo81] R.B. Cooper, Introduction to queueing theory, 2nd ed., North Holland, 1981.
14
[CST04] P. Chevalier, R.A. Shumsky, and N. Tabordon, Routing and staffing in large callcenters with specialized and fully flexible servers, Submitted to Manufacturingand Service Operations Management, 2004.
[CT03] P. Chevalier and N. Tabordon, Overflow analysis and cross-trained servers,International Journal of Production Economics 85 (2003), 47–60.
[CV05] P. Chevalier and J. Van den Schrieck, Optimizing the staffing and routing ofsmall size hierarchical call-centers, Working paper, 2005.
[FKP06] G.J. Franx, G.M. Koole, and S.A. Pot, Approximating multi-skill blocking sys-tems by hyperexponential decomposition, Performance Evaluation 63 (2006),799–824.
[Fre80] A. Fredericks, Congestion in blocking systems-a simple approximation technique,The Bell System Technical Journal 59 (1980), no. 6, 805–827.
[GKM03] N. Gans, G.M. Koole, and A. Mandelbaum, Telephone call centers: Tutorial,review, and research prospects, Manufacturing & Service Operations Manage-ment 5 (2003), 79–141.
[GKS01] L.V. Green, P.J. Kolesar, and J. Soares, Improving the SIPP approach forstaffing service systems that have cyclic demand, Operations Research 49(2001), 549–564.
[JvD91] A.A. Jagers and E.A. van Doorn, Convexity of functions which are generaliza-tions of the Erlang loss function and the Erlang delay function: Problem 90-8,SIAM Review 33 (1991), 281–282.
[KPT03] G.M. Koole, S.A. Pot, and J. Talim, Routing heuristics for multi-skill call cen-ters, Proceedings of the Winter Simulation Conference, 2003, pp. 1813–1816.
[LD60] A.H. Land and A.G. Doig, An automatic method for solving discrete program-ming problems, Econometrica 28 (1960), 497–520.
[PTVF02] W.H. Press, S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery, Numericalrecipes in C, Cambridge University Press, 2002.
[Tho93] G.M. Thompson, Accounting for the multi-period impact of service when de-termining employee requirements for labor scheduling, Journal of OperationsManagement 11 (1993), no. 3, 269–287.
15
para
met
ers
IDλ
1λ
2λ
3µ
11
µ22
µ31
µ32
µ41
µ43
µ52
µ53
µ61
µ62
µ63
c 1c 2
c 3c 4
c 5c 6
11.
01.
52.
00.
200.
180.
190.
170.
190.
160.
170.
160.
180.
160.
151.
01.
01.
11.
11.
11.
22
1.0
1.5
2.0
0.20
0.18
0.19
0.17
0.19
0.16
0.17
0.16
0.18
0.16
0.15
1.3
1.0
1.4
1.4
1.1
1.5
31.
01.
52.
00.
200.
180.
190.
170.
190.
160.
170.
160.
180.
160.
151.
01.
01.
11.
31.
31.
44
1.0
1.5
2.0
0.20
0.18
0.19
0.17
0.19
0.16
0.17
0.16
0.18
0.16
0.15
1.0
1.2
1.3
1.3
1.3
1.4
51.
01.
52.
00.
150.
180.
140.
170.
140.
160.
170.
160.
130.
160.
151.
01.
01.
11.
11.
11.
26
1.0
1.5
2.0
0.20
0.15
0.19
0.14
0.19
0.16
0.14
0.16
0.18
0.13
0.15
1.0
1.0
1.1
1.1
1.1
1.2
71.
01.
52.
00.
150.
150.
140.
140.
140.
160.
140.
160.
130.
130.
151.
01.
01.
11.
11.
11.
28
2.0
1.5
2.0
0.15
0.18
0.14
0.17
0.14
0.16
0.17
0.16
0.13
0.16
0.15
1.0
1.0
1.1
1.1
1.1
1.2
92.
01.
52.
00.
200.
150.
190.
140.
190.
160.
140.
160.
180.
130.
151.
01.
01.
11.
11.
11.
210
2.0
1.5
2.0
0.15
0.15
0.14
0.14
0.14
0.16
0.14
0.16
0.13
0.13
0.15
1.0
1.0
1.1
1.1
1.1
1.2
Table 4: Cases with 3 skills16
instance IDsg 1 2 3 4 5 6 7 8 9 10
Lagrange relaxation1 6 5 5 7 8 6 8 15 11 142 10 10 8 8 9 12 12 9 9 103 0 0 2 0 0 0 0 0 1 14 10 5 5 8 10 11 11 11 13 125 7 11 5 8 8 6 6 7 6 76 0 2 8 2 0 0 0 0 0 0
f 34.6 38.6 37.8 40.2 36.8 36.7 38.7 43.8 42.0 46.0CPU 3 3 3 4 2 2 3 4 3 2#sim 31 32 30 40 18 19 21 34 22 17
Cutting planesf 34.8 38.5 38.8 43.4 37.1 37.6 38.0 44.8 42.5 47.0
CPU 16 14 12 25 22 14 14 17 21 26#sim 50 44 38 50 56 32 45 43 55 44
Table 5: Results with 3 skills
agent group gm 01 02 03 04 05 06 07 08 09 10 11 121 x x x x x x x x x2 x x x x x x3 x x x x x x x x4 x x x5 x x x x x
Table 6: Skills and policy of the first example
time tm 1 2 3 4 5 6 7 8 9 10 11 12 13 141 440 440 440 440 440 440 440 440 440 440 440 440 440 4402 140 240 340 440 540 490 440 440 490 540 440 340 240 1403 440 340 440 340 440 340 440 340 440 340 440 340 440 3404 340 390 440 490 540 540 515 490 465 440 415 390 365 3405 340 365 390 415 440 465 490 515 540 515 490 465 440 415
Table 7: Arrival rates per hour of example with 5 skills
17
tim
et
g1
23
45
67
89
1011
1213
14Lag
rang
ere
laxa
tion
10
00
00
00
00
00
00
02
00
00
00
00
00
00
00
345
5059
7180
8175
7179
7275
6252
484
00
00
00
00
00
00
00
50
00
00
00
00
00
00
06
00
00
00
00
00
00
00
70
00
00
00
00
00
00
08
00
00
00
00
00
00
00
90
00
00
00
00
00
00
010
8479
9894
110
112
119
106
119
9811
094
9990
111
22
01
02
03
53
11
312
2118
2222
208
919
923
918
188
f14
3.0
148.
817
1.1
176.
219
8.6
188.
419
2.7
184.
619
7.3
188.
918
5.1
165.
016
0.7
140.
5C
PU
119
1215
913
1314
1115
1512
1411
#si
m41
3335
4523
3435
4029
4140
3644
39C
utti
ngpl
anes
f14
5.7
150.
217
3.2
177.
820
1.0
190.
619
6.2
187.
819
8.9
190.
318
6.8
167.
116
1.7
141.
8C
PU
130
189
141
205
206
147
131
257
155
167
278
162
105
95#
sim
8911
478
142
108
7663
103
7689
143
130
8788
Table 8: Staffing vectors of example with 5 skills
18
tim
et
g1
23
45
67
89
1011
1213
14Lag
rang
ere
laxa
tion
131
3130
3222
3025
2729
3031
2829
362
3121
3122
2419
2518
2820
3120
2828
36
416
117
1918
146
1622
1516
44
11
00
10
11
10
01
00
528
3437
4152
4345
4240
3734
3328
306
1021
2032
4431
2930
4137
2320
1311
70
00
01
00
00
00
00
08
2631
3133
4338
4245
4643
3839
3328
90
00
00
00
00
01
11
110
1917
1818
1722
2019
1919
1818
2315
110
00
00
00
00
00
00
012
00
00
00
00
00
00
00
f16
5.5
175.
620
0.1
207.
623
3.6
223.
322
6.7
217.
523
1.8
223.
421
7.3
193.
518
8.1
166.
3C
PU
1314
1213
1619
1517
1315
1712
1514
#si
m50
5037
3740
5040
4936
4146
3845
50C
utti
ngpl
anes
f16
8.9
177.
320
3.3
210.
123
6.7
225.
322
9.8
220.
423
4.3
226.
621
9.9
198.
219
0.3
167.
7C
PU
212
234
414
184
414
420
329
300
461
285
426
333
336
220
#si
m21
018
521
412
124
225
520
315
823
920
126
322
217
414
8
Table 9: Staffing vectors of example with 5 skills
19