Você está na página 1de 84

Universit de Montral

Simulation de centres de contacts


par
Eric Buist
Dpartement dinformatique et de recherche oprationnelle
Facult des arts et des sciences
Rapport pour la partie orale
de lexamen pr-doctoral
Aot, 2007
c _Eric Buist, 2007.
Universit de Montral
Facult des tudes suprieures
Cet examen pr-doctoral intitul:
Simulation de centres de contacts
prsent par:
Eric Buist
a t valu par un jury compos des personnes suivantes:
Fabian Bastin, prsident-rapporteur
Pierre Lcuyer, directeur de recherche
Pascal Vincent, membre du jury
Examen accept le: . . . . . . . . . . . . . . . . . . . . . . . . . .
TABLE DES MATIRES
TABLE DES MATIRES . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
CHAPITRE 1 : INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . 1
CHAPITRE 2 : LES CENTRES DE CONTACTS . . . . . . . . . . . . . . 4
2.1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Mesures de performance considres . . . . . . . . . . . . . . . . . . . 7
2.3 Outils danalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 lments de ContactCenters . . . . . . . . . . . . . . . . . . . . . . . 13
CHAPITRE 3 : AMLIORATION DU LOGICIEL DE SIMULATION . . 16
3.1 Politique de routage gnrique . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Amlioration de la exibilit du simulateur gnrique . . . . . . . . . . 18
3.3 Simplication de lentre des donnes . . . . . . . . . . . . . . . . . . 21
3.4 Importation de donnes depuis des sources diverses . . . . . . . . . . . 23
3.5 Exportation des rsultats vers des formats courants . . . . . . . . . . . 25
CHAPITRE 4 : AMLIORATION DE LA MODLISATION . . . . . . . 27
4.1 Absentisme des agents . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Non-adhrence des agents . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Simulation de recours . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 Gestion dautres types de contacts . . . . . . . . . . . . . . . . . . . . 31
CHAPITRE 5 : ANALYSE DE SENSIBILIT . . . . . . . . . . . . . . . . 33
5.1 Mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Analyse dun modle avec un type de contact et un groupe dagents . . 36
5.3 Un seul type de contact, plusieurs groupes dagents . . . . . . . . . . . 39
5.4 Plusieurs types de contacts . . . . . . . . . . . . . . . . . . . . . . . . 40
iv
CHAPITRE 6 : TECHNIQUES DAMLIORATION DE LEFFICACIT 41
6.1 Variables de contrle . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 Variables alatoires communes . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Variables antithtiques . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.4 Monte Carlo conditionnel . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.5 chantillonnage stratgique . . . . . . . . . . . . . . . . . . . . . . . . 49
6.6 Mthodes quasi-Monte Carlo randomises . . . . . . . . . . . . . . . . 50
6.7 Stratication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.8 Scission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.8.1 Priodes avec variance leve . . . . . . . . . . . . . . . . . . 55
6.8.2 Calcul de sous-gradients . . . . . . . . . . . . . . . . . . . . . 61
CHAPITRE 7 : OBJECTIFS DERECHERCHEPOURAMLIORERLEF-
FICACIT . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.1 Recherche de bonnes variables de contrle . . . . . . . . . . . . . . . . 64
7.2 Application de la stratication aux centres de contacts . . . . . . . . . . 65
7.3 Combinaison des variables de contrle avec la stratication . . . . . . . 66
7.4 Preuve que les variables alatoires communes rduisent la variance dune
diffrence dans des contextes spciques . . . . . . . . . . . . . . . . . 67
7.5 Application de Monte Carlo conditionnel lestimation de drives . . 69
7.6 Application de lchantillonnage stratgique . . . . . . . . . . . . . . . 70
7.7 Rduction de la dimension effective du problme pour quasi-Monte Carlo 71
7.8 Implantation efcace des techniques de scission . . . . . . . . . . . . . 71
CHAPITRE 8 : CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . 74
BIBLIOGRAPHIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
CHAPITRE 1
INTRODUCTION
Un centre de contacts est un ensemble de ressources formant une interface entre
un organisme et ses usagers. Plusieurs entreprises disposent dun tel centre pour offrir
des services leurs clients tandis que des organismes gouvernementaux en possdent
pour les services de renseignements, durgence, etc. Les centres de contacts revtent
une grande importance conomique, do le besoin de les analyser et den optimiser le
rendement.
Avec laccroissement de la complexit des systmes, la simulation devient progres-
sivement le seul outil capable de prendre tous les lments en compte, mais les outils
disponibles pour la simulation ne sont pas sufsamment performants pour effectuer des
analyses et de loptimisation efcacement. Pour simuler des centres de contacts plus fa-
cilement, nous avons alors, dans le cadre de notre projet de matrise, dvelopp la biblio-
thque ContactCenters qui permet de construire des simulateurs de centres de contacts
dans le langage de programmation Java. En utilisant cette bibliothque, nous avons ga-
lement construit divers exemples de simulateurs dont un logiciel permettant de simuler,
sans programmation Java, la plupart des centres dappels que nous avons eu traiter.
ContactCenters est dj plus rapide que tous les outils de simulation commerciaux que
nous connaissons, mais son utilisation pose des difcults aux gestionnaires et le logiciel
nest pas encore sufsamment performant pour effectuer de loptimisation efcacement.
Dans le cadre de ce projet de doctorat, nous souhaitons amliorer ContactCenters
sur quatre aspects : amliorer la conception et linterface utilisateur de ContactCenters,
mieux modliser les centres de contacts pour une simulation plus raliste, analyser la
sensibilit des modles aux changements de paramtres et amliorer lefcacit des si-
mulations.
Pour que ContactCenters intresse un grand nombre de chercheurs et de gestion-
2
naires, le logiciel doit tre trs exible et offrir une interface utilisateur conviviale. La
exibilit permet deffectuer divers types dexprimentations tandis que linterface uti-
lisateur sert lentre des donnes, lexcution des simulations et la sortie des rsultats.
Nous souhaitons pour cela dvelopper un simulateur gnrique exible, extensible avec
peu de programmation et compatible avec les formats de donnes les plus courants.
Plusieurs aspects tels que labsentisme et la non-adhrence des agents, les recours
des gestionnaires en cas de situation indsirable et les spcicits des tlcopies, des
courriers lectroniques et dautres types de contacts ne sont pas pris en compte dans
notre modle de simulation. Dcouvrir les dtails importants qui ne sont pas actuelle-
ment modliss est un grand d en raison de la difcult obtenir des donnes et la
complexit des centres de contacts.
Pour nous aider dans notre tche de modlisation, nous allons analyser la sensibilit
des principales mesures de performance aux changements de certains paramtres. Cela
nous permettra par exemple de savoir dans quelles situations il est important de bien
modliser les temps de patience, les temps de service, le comportement individuel des
agents, les dtails de la politique de routage, etc. Si des aspects peuvent tre ngligs dans
certains cas, cela nous permet de sauver du travail de modlisation et de simulation.
Nous souhaitons aussi augmenter lefcacit de notre outil sans ncessairement n-
gliger des aspects du modle, en rduisant la variance ou le travail de simulation. Dans
le premier cas, pour un temps de calcul identique ou lgrement suprieur, nous obte-
nons une variance beaucoup plus petite. Dans le second cas, nous obtenons une variance
identique ou lgrement plus grande pour un temps de calcul signicativement plus pe-
tit. Dans ce projet, nous allons en particulier tenter de combiner des techniques simples
telles que des variables alatoires communes et des variables de contrle. Nous allons
aussi exprimenter des techniques plus complexes telles que la stratication sur une
fonction de plusieurs moyennes, les mthodes quasi-Monte Carlo et la scission (appele
splitting en Anglais). Nous allons aussi explorer des combinaisons plus complexes telles
que la stratication avec les variables de contrle.
3
Le reste de ce document est organis de la faon suivante. Le chapitre suivant pr-
sente de faon plus dtaille le concept de centre de contacts ainsi que notre outil de
simulation. Nous y prsentons aussi de la notation qui sera utilise par la suite dans le
document. Le chapitre 3 rsume nos objectifs damlioration de la conception du logiciel
ContactCenters pour ce projet. Le chapitre 4 traite de nos objectifs relis la modlisa-
tion tandis que le chapitre 5 aborde lanalyse de sensibilit. Enn, le chapitre 6 fait un
survol des diffrentes techniques damlioration de lefcacit que nous prvoyons ex-
ploiter tandis que le chapitre 7 explique comment nous pensons appliquer ces techniques
notre problme.
CHAPITRE 2
LES CENTRES DE CONTACTS
Un centre de contacts [7, 24, 44] est un ensemble de ressources telles que des lignes
tlphoniques, des commutateurs, des routeurs, des employs et des ordinateurs servant
dinterface de communication entre un organisme et ses usagers. La communication peut
tre effectue via le tlphone, la tlcopie, le courrier lectronique, etc. Un centre de
contacts ne traitant que des appels tlphoniques est appel un centre dappels.
De tels centres doivent traiter un grand nombre de requtes de divers types, nces-
sitent une infrastructure technologique importante et emploient plusieurs prposs, do
un cot de gestion lev. Dun autre ct, la qualit du service offert affecte limage
de marque de lorganisme possdant un centre de contacts. Certains centres de contacts
qui effectuent de la vente distance peuvent mme devenir une source de revenus pour
une entreprise. Limportance conomique des centres de contacts a dj clairement t
dmontre [21]. Les gestionnaires doivent donc tablir un quilibre entre la rduction du
cot et la qualit du service en effectuant des analyses de sensibilit et de loptimisation.
Ce chapitre explique de faon plus dtaille en quoi consiste un centre de contacts et
quels genres de problmes ils posent. Nous y traitons galement des types doutils dispo-
nibles pour leur analyse pour ensuite nous concentrer sur notre solution, ContactCenters,
que nous souhaitons amliorer dans le cadre de ce projet.
2.1 Concepts de base
Un contact consiste en une requte de communication entre un usager et un orga-
nisme. Les contacts entrants sont gnrs par des usagers tentant dentrer en commu-
nication pour obtenir un service tel quune rservation ou du support technique. Les
contacts sortants sont initis de faon proactive par les employs ou, dans le cas des
appels tlphoniques, par un systme spcialis appel composeur. Ils permettent par
5
exemple la vente distance ainsi que le rappel de clients. Les centres capables de traiter
les deux types de contacts sont dits mixtes.
An de simplier le traitement, chaque contact est class selon un type reprsent
sous la forme dun entier k entre 0 et K1, o K est le nombre total de types de contacts
supports par un systme particulier. Un contact est entrant si son type k = 0, . . . , K
I
1
o K
I
K est le nombre de types de contacts entrants tandis quil est sortant si k =
K
I
, . . . , K1. Le type de contact peut tre dtermin en utilisant sa provenance (numro
de tlphone de lappelant, site Web utilis, etc.), les choix de lusager dans des menus,
etc. Il peut reprsenter la raison de la communication, limportance du client, etc.
Le service dun contact consiste en un traitement destin satisfaire la requte dun
usager. De nos jours, plusieurs requtes peuvent tre traites entirement par des sys-
tmes automatiss, mais parfois, un usager peut manifester le besoin ou le dsir de parler
un tre humain. Dans ce contexte, le service comprend la phase de traitement automa-
tique, le travail dun employ pendant la communication avec le client et le travail que
lemploy doit parfois effectuer aprs le dialogue.
Chaque employ, aussi appel agent, fait partie dun groupe i 0, . . . , I 1 dnis-
sant ses comptences. Il possde galement certaines particularits qui peuvent affecter
son efcacit et son horaire de travail. Au temps t de la journe, le groupe i contient
N
i
(t) membres dont N
B,i
(t) sont en train de servir des contacts et N
I,i
(t) sont inoccups.
Il se peut que N
i
(t) < N
B,i
(t) +N
I,i
(t) si N
G,i
(t) agents terminent leur quart de travail
(quittent le groupe) aprs avoir termin le service en cours. Parmi les agents inoccu-
ps, seuls N
F,i
(t) N
I,i
(t) sont connects et disponibles pour de nouveaux services. Le
nombre dagents N
i
(t) est souvent plus petit que le nombre plani en raison de retards,
de pauses prolonges, etc. La gure 2.1 prsente une vue schmatique de ces diffrentes
quantits. Nous pouvons galement dnir N(t), N
G
(t), N
B
(t), N
I
(t) et N
F
(t) comme les
quivalents des quantits prcdentes pour tous les groupes dagents du systme.
Pendant leurs quarts de travail, les agents sont enregistrs auprs dun routeur charg
dacheminer les nouveaux contacts vers des agents libres et daffecter des contacts en
6
Nombre plani
N
G,i
(t) N
i
(t)
N
B,i
(t) N
I,i
(t)
N
F,i
(t)
Figure 2.1 Vue schmatique des diffrentes quantits relies un groupe dagents
attente des agents devenus libres. Les rgles de routage peuvent tre trs complexes,
allant dune simple liste de groupes dagents spcique chaque type de contacts
une politique dynamique tenant compte de tout ltat du systme pour prendre chaque
dcision. videmment, le routeur est une composante centrale dans un centre de contacts.
Un usager peut tre servi par plusieurs agents avant dobtenir satisfaction. Par exemple,
un utilisateur prouvant des problmes techniques avec un logiciel pourrait parler dif-
frents techniciens (simultanment ou squentiellement) avant dobtenir une solution.
Un retour se produit lorsquun usager servi doit recontacter lorganisme pour obtenir un
nouveau service ou tenter de nouveau de satisfaire sa requte initiale.
Dans le cas de communications diffres comme les courriers lectroniques, le ser-
vice peut mme tre premptif, cest--dire quun agent peut interrompre une tche
consistant par exemple rpondre un message pour se charger dune tche plus prio-
ritaire comme traiter un appel tlphonique. Ainsi, en raison des retours et du service
premptif, les agents traitent parfois plusieurs usagers simultanment.
Un usager qui ne peut tre servi immdiatement doit attendre en le. Il peut devenir
impatient et dcider dabandonner, quittant le systme sans recevoir de service. Dans ce
cas, il peut tenter de recontacter le centre plus tard (on appelle cela retrial en Anglais)
ou abandonner bel et bien, selon limportance du service quil dsire recevoir. Certains
centres de contacts permettent galement de laisser un message dans le but dtre re-
contact ultrieurement. Cela forme des les dattente virtuelles [53] qui sont traites
diffremment des vritables les dattente puisque le service des contacts dans de telles
les est moins prioritaire que celui dappels tlphoniques en attente. Dans le cas dun
appel tlphonique, un usager arriv au moment o aucune ligne nest disponible peut
7
galement recevoir un signal occup et tre bloqu sans pouvoir attendre en le ou tre
servi.
An de simplier la modlisation et lestimation des paramtres des centres de contacts,
lhorizon considr (jour, semaine, mois, etc.) est habituellement divis en priodes de
quinze soixante minutes pendant lesquelles les paramtres du processus darrive, le
nombre dagents dans chaque groupe, les paramtres de la loi de probabilit pour les
dures de service, etc. demeurent constants. Parfois, des statistiques sont galement re-
cueillies pour chacune des priodes sparment.
Plus prcisment, le centre de contacts comprend P priodes dites principales re-
prsentant les heures douverture. Chaque priode principale p = 1, . . . , P correspond
lintervalle de temps [t
p1
, t
p
), o t
0
< < t
P
. Dans le cas frquent o chacune de
ces priodes a une dure xe d, t
p
= t
0
+ pd pour p = 1, . . . , P. Souvent, des contacts
arrivent et se mettent en le avant louverture du centre de contacts et le centre demeure
actif aprs la fermeture pour traiter les services en cours et vider les les dattente. Cest
pourquoi nous dnissons deux priodes additionnelles : la priode prliminaire [0, t
0
)
pendant laquelle le centre de contacts nest pas encore ouvert et la priode de ferme-
ture [t
P
, T] pendant laquelle aucune arrive ne se produit et les agents terminent leurs
services.
2.2 Mesures de performance considres
Les mesures de performance auxquelles sintressent les gestionnaires sont entre
autres le niveau de service, le taux dabandon, le temps de rponse moyen, le taux doc-
cupation des agents et le nombre dquivalents temps plein. Dans certains modles,
ils tentent galement dexaminer la distribution des contacts entre les groupes dagents.
Toutes ces mesures sont dnies sur un intervalle de temps constant [t
1
, t
2
] correspondant
une demi-heure, une journe, un mois, etc.
Soit S(t
1
, t
2
) le nombre de contacts servis dont le temps darrive se situe dans cet in-
8
tervalle [t
1
, t
2
] et soit L(t
1
, t
2
) le nombre dabandons pour les contacts arrivs pendant ce
mme intervalle. Ces deux quantits sont des variables alatoires suivant une loi de pro-
babilit inconnue en gnral. Pour analyser le comportement de telles variables, nous de-
vons dabord en recueillir un certain nombre dobservations sur lesquelles nous pouvons
ensuite calculer des statistiques. En particulier, la moyenne de plusieurs observations de
S(t
1
, t
2
) permet destimer lesprance note E[S(t
1
, t
2
)] correspondant la moyenne si
nous disposions dun nombre inni dobservations. Nous pouvons galement estimer la
variance de S(t
1
, t
2
) qui est note Var[S(t
1
, t
2
)].
Soit maintenant S
G
(s, t
1
, t
2
) le nombre de contacts qui ont t servis aprs avoir at-
tendu au plus s units de temps. En particulier, S
G
(0, t
1
, t
2
) correspond au nombre de
contacts servis ds leur arrive. Nous dnissons galement S
B
(s, t
1
, t
2
) = S(t
1
, t
2
)
S
G
(s, t
1
, t
2
) comme tant le nombre de contacts servis aprs avoir attendu plus de s units
de temps. Contrairement S
G
(s, t
1
, t
2
) et S
B
(s, t
1
, t
2
) qui sont des variables alatoires, s
est une constante correspondant un seuil aussi appel temps dattente acceptable. De
la mme faon, nous pouvons dnir L
G
(s, t
1
, t
2
) comme le nombre dabandons avant le
seuil et L
B
(s, t
1
, t
2
) = L(t
1
, t
2
) L
G
(s, t
1
, t
2
).
Le niveau de service sur lequel Bell Canada et le CRTC [18] se sont entendus est
S
G
(s, t
1
, t
2
)
S(t
1
, t
2
) +L
B
(s, t
1
, t
2
)
o [t
1
, t
2
] correspond un mois. Pour analyser cette nouvelle variable alatoire, nous
devons encore une fois calculer des statistiques sur un certain nombre dobservations. Il
est dusage dutiliser le rapport desprances
g
1
(s) =
E[S
G
(s, t
1
, t
2
)]
E[S(t
1
, t
2
) +L
B
(s, t
1
, t
2
)]
, (2.1)
car cela correspond au niveau de service long terme, sur un nombre inni de mois. De
plus, cette mesure ne dpend pas de la longueur de lhorizon si bien que nous pouvons
approximer le niveau de service mensuel en simulant des journes indpendantes au lieu
9
de mois entiers.
Dautres dnitions du niveau de service sont possibles, par exemple
g
2
(s) =
E[S
G
(s, t
1
, t
2
) +L
G
(s, t
1
, t
2
)]
E[S(t
1
, t
2
) +L(t
1
, t
2
)]
. (2.2)
Soit A(t
1
, t
2
) le nombre darrives pendant lintervalle considr. Si aucun contact
nest bloqu, A(t
1
, t
2
) = S(t
1
, t
2
) +L(t
1
, t
2
). Le taux dabandon long terme est alors
(t
1
, t
2
) =
E[L(t
1
, t
2
)]
E[A(t
1
, t
2
)]
(2.3)
Une variante de ce taux consiste remplacer L(t
1
, t
2
) par L
B
(s, t
1
, t
2
) pour omettre les
abandons se produisant trop rapidement et qui peuvent tre causs par des dfaillances
du systme ou une quantit invitable dusagers impatients.
Le temps de rponse moyen long terme est quant lui dni comme
w(t
1
, t
2
) =
E[W
S
(t
1
, t
2
)]
E[S(t
1
, t
2
)]
, (2.4)
o W
S
(t
1
, t
2
) est la somme des temps dattente pour tous les contacts servis arrivs pen-
dant lintervalle [t
1
, t
2
]. Toutes ces mesures peuvent tre aussi dnies pour un type de
contact k particulier en ne comptant que les contacts de ce type plutt que tous les
contacts.
Le taux doccupation des agents long terme est quant lui dni par
o(t
1
, t
2
) =
Nombre moyen dagents occups
Nombre moyen dagents connects
=
E

t
2
t
1
N
B
(t) dt

t
2
t
1
(N
B
(t) +N
F
(t))dt
. (2.5)
De faon semblable, nous pouvons dnir le nombre moyen dagents membres dun
groupe comme

N(t
1
, t
2
) =
E

t
2
t
1
N(t) dt

t
2
t
1
. (2.6)
10
Soit

N(h, t
1
, t
2
) =

N(t
1
, t
2
)
t
2
t
1
h
(2.7)
le nombre dquivalents temps plein (full-time equivalents ou FTE en Anglais) si
chaque agent a un quart de travail de dure h pendant lintervalle [t
1
, t
2
]. Le taux doccu-
pation et le nombre dagents moyens peuvent aussi tre dnis pour un groupe dagents i
particulier en ne comptant que les agents de ce groupe plutt que tous les agents.
Soit maintenant S
k,i
(t
1
, t
2
) le nombre de contacts de type k servis par des agents du
groupe i et soit S
k
(t
1
, t
2
) le nombre de contacts de type k servis par nimporte quel agent.
Pour chaque paire (k, i), nous pouvons estimer
s
k,i
(t
1
, t
2
) =
E[S
k,i
(t
1
, t
2
)]
E[S
k
(t
1
, t
2
)]
, (2.8)
la fraction long terme des contacts de type k servis par des agents du groupe i. Dans
certains modles o K = I, nous souhaitons favoriser le service des contacts de type k
par des agents du groupe k, mais les contacts peuvent dborder vers dautres groupes en
cas de surcharge du groupe primaire. Dans ce contexte, les gestionnaires sintressent
particulirement s
k,k
(t
1
, t
2
) qui est appel call match en Anglais.
Du ct des contacts sortants, les gestionnaires sintressent surtout au taux de mis-
match observ, cest--dire la proportion dusagers rejoints un moment o aucun agent
nest disponible pour les servir par rapport au nombre total dusagers rejoints. Ils exa-
minent aussi le nombre dusagers rejoints et limpact des contacts sortants sur le niveau
de service des contacts entrants.
2.3 Outils danalyse
Les gestionnaires de centres de contacts dsirent analyser de tels systmes et en
augmenter le rendement an de rduire les cots et augmenter la qualit du service.
Pour cela, ils doivent considrer divers scnarios pour effectuer des analyses de sensibi-
11
lit. Ils sont galement amens rsoudre des problmes doptimisation, la plupart du
temps sans disposer doutils logiciels adquats. Un problme courant consiste trouver
le nombre appropri dagents pour que le niveau de service soit de 80% avec un temps
dattente acceptable de 20 secondes.
Avec les premiers centres ne traitant quun seul type dappel tlphonique, des for-
mules analytiques fondes sur la thorie des les dattente taient utilises pour effectuer
lanalyse sous des hypothses simplicatrices fortes. Par exemple, le modle Erlang C,
couramment utilis, considre que les arrives suivent un processus de Poisson, que les
temps de service sont indpendants et suivent la loi exponentielle et quaucun abandon
nest autoris, ce qui est plutt irraliste. De plus, ces formules considrent habituelle-
ment que le centre dappels fonctionne dans des conditions identiques depuis un temps
inni, ce qui ne prend pas en compte la non-stationnarit, cest--dire la variation par
rapport au temps des paramtres du centre. En ralit, les conditions changent rguli-
rement et nous souhaitons estimer la performance sur un horizon ni, par exemple une
journe ou un mois. Les arrives ne suivent pas toujours le processus de Poisson [5] et
les temps de service ne sont pas toujours exponentiels. De plus, il est la plupart du temps
trop coteux de former tous les employs pour servir tous les contacts, mme si cela
pourrait augmenter la qualit de service en thorie [51]. Ainsi, bien que les centres de
contacts sont encore modliss par un systme de les dattente, seule la simulation peut
fournir des valuations prcises tenant compte de toute la complexit. Malheureusement,
faute doutils adquats, plusieurs gestionnaires de centres dappels emploient encore les
formules analytiques mme lorsque leurs hypothses ne sont pas vries.
Loptimisation, quant elle, demande dvaluer la performance du centre de contacts
plusieurs fois avec des paramtres diffrents. Ceci est possible avec des formules analy-
tiques, mais si la simulation est mise en uvre, il est ncessaire deffectuer des milliers,
voire des millions de rplications pour aboutir un rsultat prcis. Il est alors impor-
tant, pour y parvenir, de disposer doutils trs rapides. Loptimisation vise en premier
lieu le nombre dagents par intervalle de temps (aussi appel stafng en Anglais [4]),
12
la construction dhoraires pour les agents [6], mais elle stend galement au niveau du
routage [33].
Pour donner une ide du temps pris par la simulation pendant loptimisation, pre-
nons par exemple la technique dcrite dans [6]. Celle-ci rsout un programme linaire
correspondant une version simplie du problme daffectation des quarts de travail
aux agents qui tente de minimiser le cot tout en satisfaisant les contraintes de niveau de
service. La technique utilise ensuite la simulation pour valuer la ralisabilit de la so-
lution et ajoute des coupes au programme linaire simpli en utilisant le sous-gradient
du niveau de service par rapport au vecteur daffectation des agents. Ce processus de
coupe est rpt jusqu obtenir une solution ralisable. Si cette mthode est applique
sur un centre dappels avec 20 types dappels, 35 groupes dagents et 52 priodes, avec
seulement 300 rplications pour le test de ralisabilit et 20 rplications pour chaque
composante de sous-gradient, il faut malgr tout 300+203552 =36 700 rplications
par itration. Avec ces paramtres, loptimisation a exig cinq heures de temps de calcul.
Un centre de contacts peut bien entendu tre modlis grce un logiciel de simu-
lation gnrique, mais cette tche ncessite un norme travail de conception et mme de
programmation. Il existe heureusement des logiciels spcialiss qui supportent la simula-
tion de la plupart des centres de contacts daujourdhui. Arena Contact Center Edition de
Rockwell [47] et ccProphet de NovaSim [46] sont des exemples de tels logiciels. Toute-
fois, de nouveaux cas qui ntaient pas prvus initialement peuvent survenir nimporte
quel moment et savrer difciles traiter sans recourir des mcanismes de bas niveau
qui dpendent du logiciel choisi et qui peuvent ncessiter la mise jour vers une version
plus complte (et plus coteuse) du produit. Les logiciels commerciaux sont galement
forms dun grand nombre de couches superposes, interconnectes et difciles sparer
qui peuvent diminuer la performance.
13
2.4 lments de ContactCenters
De notre ct, nous avons dvelopp la bibliothque ContactCenters [11, 12, 13] an
Java. Ce langage est puissant, largement utilis et trs bien support. Nous avons em-
ploy la bibliothque SSJ [32, 35, 40] comme systme de simulation en Java pour la
gnration des nombres alatoires, la gestion de la liste dvnements et la collecte sta-
tistique. Grce lhritage, les classes de ContactCenters peuvent facilement tre ten-
dues sans les rcrire en entier. Un simulateur peut tirer parti de Java pour accder un
grand nombre de bibliothques doptimisation, danalyse statistique, ainsi qu des outils
de construction dinterfaces graphiques. Grce aux optimisations des rcentes machines
virtuelles Java, un simulateur crit en Java sexcute beaucoup plus rapidement quun
modle conu grce aux outils commerciaux les plus utiliss et fonds sur un langage
compltement interprt et peu rpandu.
ContactCenters est forme de composantes indpendantes qui sont relies entre elles
au moment de construire un programme simulant un modle prcis et dtaill de centre
de contacts. Un tel programme peut galement intgrer des techniques damlioration
de lefcacit. Ces composantes reprsentent les contacts (appels, tlcopies, etc.), les
processus darrive, le composeur dappels sortants, les groupes dagents, les dattente
et le routeur. Chaque contact est reprsent par une entit, cest--dire un objet, avec son
propre ensemble dattributs prdnis que lutilisateur peut tendre si ncessaire. Les
sources de contacts (processus darrive et composeur) construisent de tels contacts et
les envoient au routeur qui se charge de mettre les contacts en service auprs dagents
ou les insrer dans des les dattente pour les traiter plus tard. Le routeur peut quant
lui signaler les contacts sortants du centre un systme de collecte statistique.
Le programmeur peut facilement construire un observateur et lenregistrer auprs de
ces composantes pour, par exemple, connatre les contacts qui sont crs, ceux qui sortent
du systme, suivre ltat des agents, etc. En fait, tout le couplage entre les composantes
du systme est effectu laide dobservateurs [23], ce qui permet un maximum de
14
exibilit. De cette faon, les composantes peuvent tre testes, amliores et remplaces
indpendamment des autres.
Par contre, crire un programme Java pour simuler un centre de contacts peut tre
long et nest pas la porte de tous les gestionnaires. Un tel programme doit aussi r-
pondre un certain nombre de normes pour pouvoir interagir de faon gnrale avec
dautres programmes tels quun optimiseur. Il est alors important de disposer dun simu-
lateur prcompil le plus gnral possible permettant de traiter les cas les plus courants
et dinteragir facilement avec dautres outils. En utilisant les composantes de Contact-
Centers, nous avons construit un tel simulateur qui permet, en utilisant des chiers de
conguration dans le format XML [54], de traiter la plupart des centres dappels cou-
rants.
Ce simulateur se restreint un modle particulier mais assez gnral de centre dap-
pels mixte supportant K
I
types dappels entrants et K
O
types sortants, avec I groupes
dagents et P priodes principales de dure xe. La plupart des paramtres sont spcis
seulement pour les priodes principales. Pendant la priode prliminaire, aucun agent
nest en service et pour les autres paramtres, les valeurs de la premire priode princi-
pale sont utilises. Pendant la priode de fermeture, les paramtres de la dernire priode
principale sont employs.
Lusager peut employer nimporte quelle loi de probabilit de SSJ pour les dures
de patience et les dures de service, mais il doit choisir les processus darrive, les po-
litiques de composition dappels sortants et la politique de routage parmi des listes de
politiques prdnies. Il peut par contre paramtrer les diffrents processus avec des
valeurs numriques.
Le simulateur calcule diffrentes statistiques comme le nombre dappels produits,
servis, bloqus ou ayant abandonn. Ces statistiques sont utilises entre autres pour es-
timer les mesures de performance de la section 2.2. Chaque statistique est calcule pour
chaque priode p ainsi que pour tout lhorizon. Chaque vnement relatif un appel
est compt dans la priode de son arrive et non dans celle o lvnement se produit.
15
Ceci est ncessaire pour viter dintroduire un biais dans les estimateurs de rapports
desprances. Par exemple, si plusieurs appels arrivaient pendant la priode p et taient
servis pendant la priode p +1, la valeur du niveau de service dans la priode p +1
pourrait dpasser 100% si tous les vnements taient compts dans la priode o ils se
produisent.
La simulation peut tre effectue de faon stationnaire pour une seule priode de
dure supposment innie dans le modle, en utilisant la mthode des moyennes par lots
pour obtenir des intervalles de conance, ou pour tout lhorizon, avec un nombre donn
de rplications indpendantes. Dans le cas stationnaire (horizon inni), le simulateur est
initialis avec les paramtres pour une priode et ces paramtres demeurent xes tout au
long de lexprience. Dans le cas non stationnaire (horizon ni), les paramtres peuvent
changer dune priode lautre. Simuler sur horizon inni ne semble pas naturel pour des
centres de contacts, mais il peut savrer utile de le faire pour comparer les rsultats de
simulation avec des approximations considrant souvent le systme comme stationnaire.
CHAPITRE 3
AMLIORATION DU LOGICIEL DE SIMULATION
Pour rendre ContactCenters accessible au plus grand nombre possible de chercheurs
et de gestionnaires, nous devons faire face deux ensembles de besoins distincts et par-
fois contradictoires. Dun ct, les chercheurs aimeraient disposer dun outil trs exible
leur permettant dexprimenter de nouveaux modles avec un minimum de travail de
programmation tandis que de lautre, les gestionnaires de centres de contacts ont be-
soin dun outil trs simple dutilisation se fondant sur un modle raliste de centre de
contacts, ne ncessitant aucune programmation et masquant mme les aspects les plus
complexes du processus de simulation. Malheureusement, la exibilit peut facilement
rduire la simplicit dutilisation et les aspects complexes masquer aux gestionnaires
peuvent tre ncessaires pour les chercheurs. Nous disposons dj dun outil exible
permettant dexprimenter divers scnarios, mais plusieurs chercheurs prouvent de la
difcult crire des programmes en Java. Nous esprons rsoudre ces problmes en
ajoutant des couches logicielles au-dessus de la bibliothque plutt que la reconcevoir
compltement. Nous aimerions en particulier faciliter limplantation de nouvelles po-
litiques de routage, accrotre la exibilit de notre simulateur gnrique prcompil et
amliorer linteroprabilit du mme simulateur avec dautres applications.
3.1 Politique de routage gnrique
Nous avons constat suite des requtes des gestionnaires de Bell Canada que lim-
plantation de nouvelles politiques de routage est relativement long et les risques derreurs
sont nombreux. Des aspects tels que les dlais de dbordement, lattente dans plusieurs
les et les les dattente virtuelles, qui sont utiliss dans les routeurs de certains centres
de contacts, sont actuellement difciles mettre en place avec ContactCenters. Nous
disposons certes dune politique relativement gnrale prenant plusieurs de ces aspects
17
en charge, mais il est difcile de ltendre pour y ajouter de nouveaux aspects.
Pour le moment, ContactCenters offre deux niveaux de complexit pour les poli-
tiques de routage : utiliser une politique existante, prdnie, et la paramtrer selon ses
besoins ou encore implanter sa propre politique sous la forme dune classe Java, possi-
blement partir dune politique existante. Nous allons offrir un niveau intermdiaire en
dveloppant une politique de routage gnrique qui permettra lusager de construire
des scripts de routage un peu comme sous Arena Contact Center Edition de Rockwell.
De tels scripts de haut niveau seront forms par linterconnexion de nuds du genre
Mettre le contact en le auprs du groupe dagents 1 , Attendre dix secondes , etc.
Le script de routage rsultant sera beaucoup plus simple et concis quune politique de
routage implante directement avec ContactCenters.
Chaque nud pourra recevoir de nouveaux contacts et disposera dun certain nombre
de sorties. Trois niveaux de complexit seront disponibles pour dnir un nud : utili-
ser un nud prdni et le paramtrer, construire un nud sous la forme dun script
interconnectant dautres nuds plus simples ou crire une classe Java pour implanter le
comportement du nud. Il sera en effet relativement simple de construire de nouveaux
nuds pour, par exemple, dnir des nouvelles politiques de distribution des contacts
entre diffrentes les dattente, acheminer des contacts de faon conditionnelle, etc.
Les nuds prdnis et ajouts par lutilisateur pourront par la suite tre intercon-
nects de faon statique, laide dune classe Java, ou de faon dynamique, en utilisant
un chier de conguration. En fait, le script de routage pourrait se trouver dans le mme
chier XML qui contient les paramtres du modle pour le simulateur gnrique (voir
section 3.3). Pendant la conception de cette nouvelle politique de routage, nous garde-
rons lesprit quune interface graphique pourrait tre construite pour aider le gestion-
naire crer les scripts. Limplantation dune telle interface sort du cadre de ce projet,
mais nous pourrions superviser un tudiant dans cette tche.
La difcult principale pour concevoir cette politique est de dnir les nuds de base
et les interconnexions possibles. Nous devons pour cela trouver un cadre englobant les
18
politiques de routage les plus courantes en nous inspirant de logiciels de simulation tels
quArena Contact Center Edition et de routeurs commerciaux. Larchitecture choisie doit
permettre de construire une politique de routage de faon intuitive, le plus souvent sans
programmation Java, tout en ne rduisant pas la performance de faon trop importante.
3.2 Amlioration de la exibilit du simulateur gnrique
Comme nous lavons abord la section 2.4, nous avons utilis les composantes de
ContactCenters pour construire un simulateur gnrique qui peut tre utilis sans com-
piler de programme Java, simplement en crivant des chiers de conguration dans le
format XML. Notre premire version de ce simulateur tait contenue dans une seule
classe qui est vite devenue immense et difcile grer. Ce problme sest manifest
pour la premire fois lorsque nous avons tent dajouter au simulateur des techniques de
rduction de la variance. Au cours de lanne 2006, nous avons construit une deuxime
version du simulateur forme de plusieurs classes. Il reste encore un important travail
de documentation et de reconception an de rendre ce simulateur extensible via un sys-
tme de composantes enchables, par exemple pour ajouter de nouvelles politiques de
routage, de nouvelles statistiques, etc., sans recompiler le simulateur. Ceci permettrait
entre autres dexprimenter de nouvelles techniques tout en bnciant de toute linfra-
structure existante pour effectuer la simulation, produire les rapports statistiques, etc.
Ajouter une fonctionnalit au simulateur gnrique est beaucoup plus simple et avanta-
geux qucrire un tout nouveau programme pour traiter un cas particulier. videmment,
certains cas complexes pourraient exiger la construction dun tout nouveau programme,
utilisant directement les composantes de ContactCenters.
Pour implanter des composantes enchables, appeles plug-ins en Anglais, nous
avons besoin dinterfaces ou de classes abstraites reprsentant chaque type de compo-
sante ainsi que dun mcanisme pour construire les composantes partir des paramtres
stocks dans un chier de conguration. Le mcanisme choisi doit permettre denregis-
19
trer de nouvelles composantes sans recompiler le simulateur et devrait idalement fournir
sur demande la liste des composantes enregistres, par exemple pour permettre leur s-
lection dans une interface graphique. Par exemple, un gnrateur de nombres alatoires,
un objet capable de construire et congurer un routeur et un objet capable dajouter ou
retirer une statistique prcise du simulateur sont des types de composantes possibles.
La rexion, qui permet de se rfrer des classes ou des mthodes sans connatre
leur nom lors de la compilation, est un exemple de mcanisme permettant de crer les
composantes.
Plusieurs autres lments peuvent encore tre ajouts au simulateur gnrique, no-
tamment les les dattente virtuelles, le regroupement des types de contacts et des groupes
dagents en segments pour afcher un rapport simpli pour des centres de contacts com-
plexes, le calcul de statistiques relatives la fois aux types de contacts et aux groupes
dagents ainsi que des mcanismes simpliant limplantation de politiques de routage ou
de composition dappels sortants prenant en compte des statistiques cumulatives. Nous
souhaitons galement y incorporer les techniques de rduction de la variance (voir cha-
pitres 6 et 7) sappliquant dans un contexte gnral de faon rendre ces techniques
facilement utilisables. Nous ajouterons aussi des options pour les nouveaux aspects de
modlisation lis labsentisme et la non-adhrence des agents ainsi qu la simula-
tion des recours (voir chapitre 4). Chacune de ces extensions, prise individuellement, ne
pose pas de grandes difcults pour limplantation, mais leur combinaison complique
beaucoup le programme et pourrait en rduire sa performance.
Contrairement aux classes de base de ContactCenters qui sont faiblement couples, le
simulateur gnrique est form de classes qui interagissent mutuellement. Ainsi, plus le
simulateur grossit, plus il devient difcile grer et plus il devient important de trouver
des faons de bien modulariser ses composantes. Il devient ainsi important et difcile
de trouver la bonne architecture non pas seulement pour la bibliothque ContactCenters
mais aussi pour le simulateur prcompil qui lutilise. Cest pourquoi la conception de
ContactCenters est une contribution pour ce projet de doctorat.
20
Il peut ainsi devenir ncessaire de construire plusieurs simulateurs gnriques adap-
ts diffrentes tches. Par exemple, nous pourrions dvelopper un simulateur utilisant
des compteurs au lieu de modliser chaque contact comme un objet indpendant. Cela
ne nous permettrait pas de recueillir directement les temps dattente des contacts, qui
sont utiliss pour estimer le niveau de service, mais le temps dattente global peut tre
estim partir de la taille de la le par la loi de Little. Le simulateur permettrait aussi
destimer la probabilit dattente avec laquelle nous pourrions estimer le niveau de ser-
vice. Un tel simulateur pourrait tre beaucoup plus rapide que le simulateur gnrique
actuel et pourrait remplacer avantageusement les formules dapproximation utilises lors
de loptimisation.
Une autre avenue est de disposer dun simulateur avec des composantes adaptes
diffrentes tches. Nous avons dj deux catgories de groupes dagents, lune traitant
les agents individuels comme des objets et lautre ne grant que des compteurs indiquant
le nombre dagents occups et libres. Notre logiciel dnit aussi deux sortes de les
dattente, lune implante sous la forme dune liste et lautre sous la forme dun ensemble
tri pour les les priorits multiples. Ce concept pourrait tre appliqu dautres parties
du systme telles que le systme de collecte statistique. En particulier, si nous simulons
un modle complexe sur un horizon trs long divis en priodes trs courtes, par exemple
un mois spar en intervalles de cinq minutes, avoir un compteur statistique pour chaque
type de contact et chaque priode pourrait tre trop coteux en mmoire. Nous pourrions
alors ajouter une version plus simple du collecteur statistique actuel qui recueillerait des
observations pour des priodes plus longues et permettre lutilisateur de choisir entre
les deux versions.
Nous pouvons galement penser appliquer la programmation oriente aspects [28]
pour modulariser le simulateur. Ce nouveau paradigme introduit le concept daspect qui
consiste en un ensemble de fragments de code appels advice et se greffant des endroits
du programme appels points de jointure (ou join points en Anglais). Un aspect sert
dnir un comportement couvrant plusieurs endroits dans le programme, par exemple
21
la journalisation dvnements, le traitement derreurs, un aspect de modlisation tel
que les recours qui ncessiteraient dtre pris en compte plusieurs endroits pendant la
simulation, etc. Nous pourrions mettre en uvre la programmation oriente aspects en
utilisant loutil AspectJ [2] qui ajoute ce concept Java.
3.3 Simplication de lentre des donnes
Le problme principal du simulateur gnrique rside sans aucun doute dans sa com-
plexit dutilisation. crire un chier XML est certes plus simple que rdiger un pro-
gramme Java, mais cela pose malgr tout des difcults. Mme avec un diteur spcialis
qui permet dviter les erreurs de syntaxe et bon nombre derreurs grammaticales, les -
chiers de paramtres demeurent malgr tout contre-intuitifs. De plus, le programme doit
tre dmarr depuis la ligne de commande, une tche laquelle la plupart des utilisateurs
ne sont plus accoutums de nos jours.
Lidal serait de disposer dune interface graphique permettant la fois de dnir les
paramtres du simulateur, dexcuter des simulations et dexaminer les rsultats. Cette
interface pourrait aussi donner accs aux formules dapproximation les plus courantes,
aux algorithmes doptimisation existants, etc., qui ont dj t implants par un autre
tudiant. Cette interface est en cours de dveloppement par un stagiaire que nous super-
visons durant lt 2007.
La premire tape pour simplier lentre des paramtres consiste construire un
Schma XML [49] pour contraindre la structure dun chier de paramtres. Un schma
indique quels lments sont autoriss dans un chier de paramtres, quels attributs sont
permis pour chaque lment et quelles structures hirarchiques peuvent tre construites.
Cela permet de valider les chiers de paramtres de faon plus robuste et normalise
quun programme crit manuellement pour traiter chaque paramtre sparment. Un
schma permet aussi des diteurs XML tels que <oXygen/> [43] et XMLSpy [1]
de guider lutilisateur dans la construction ou la modication dun chier de paramtres
22
et de valider eux-mmes le chier, sans dmarrer pour cela le simulateur. Un schma
peut aussi contenir de la documentation pour chaque lment et attribut spci. Par
contre, nos premires tentatives pour aboutir un schma nous ont men la ncessit
de modier le format actuel des chiers de paramtres.
Le schma choisi doit englober toutes les fonctionnalits actuelles du simulateur g-
nrique tout en laissant place lajout de nouvelles fonctions. Idalement, un chier de
conguration XML valid par ce schma devrait permettre de dmarrer le simulateur
sans erreur, mais ceci est impossible en raison de contraintes impliquant plusieurs l-
ments qui ne peuvent pas tre dcrites par le schma. Le format des chiers spci par
le schma ne doit pas tre trop verbeux puisque les chiers pourront toujours tre dits
manuellement. Il est galement crucial que le nouveau format soit ne change pas profon-
dment par la suite puisque plusieurs composantes telles que le simulateur, les logiciels
doptimisation, une interface graphique pour diter les paramtres, etc., en dpendront.
Nous avons dvelopp un tel schma durant lt 2007 et avons adapt le simula-
teur pour lutiliser. Pour cela, nous avons remplac notre propre systme de lecture de
paramtres par Java Architecture for XML Binding (JAXB, [50]) version 2, un outil de
liaison XML intgr Java 6 mais aussi disponible en option sous Java 5. JAXB permet
de transformer un document XML suivant un schma dtermin en une hirarchie dob-
jets et inversement de produire un document XML depuis des objets. La validation via
un schma XML peut tre effectue lors de ces deux oprations. Les classes utilises par
JAXB peuvent tre crites manuellement ou gnres par le compilateur XJC partir
du schma XML. Nous avons opt pour la seconde stratgie an de simplier lajout de
paramtres ; il suft alors de modier le schma et de redmarrer le compilateur XJC.
Nous avons ensuite d crire des mthodes de support pour convertir les objets les
plus complexes reprsentant des tableaux bidimensionnels et des lois de probabilit vers
des objets compatibles avec ContactCenters. Cette tche accomplie, il nous a fallu adap-
ter le simulateur pour utiliser la nouvelle hirarchie dobjets de paramtres. Nous avons
par la mme occasion modi son architecture en prvision des composantes enchables
23
que nous avons abordes la section prcdente.
Nous avons galement crit des programmes pour convertir les chiers de lancien
format vers le nouveau, car nous disposions de certains gros chiers dans lancien format
quil aurait t long de convertir manuellement. Pour accomplir cette tche, nous avons
rdig une feuille de style dans le langage XSL Transformations (XSLT, [15]) ainsi quun
programme Java utilisant cette feuille de style pour la conversion. Le langage XSLT
permet de dnir des rgles indiquant comment procder pour gnrer un arbre XML
rsultant partir dun chier XML source. Le langage XPath [16] est utilis par XSLT
pour dterminer lensemble des lments et des attributs du chier source sur lequel
chaque rgle du chier XSLT sapplique ainsi que pour calculer des valeurs produites en
sortie. Par contre, XSLT ne permettait pas de traiter les lments les plus complexes de
notre schma si bien que nous avons t forcs de ltendre par des fonctions dextension.
Une telle fonction est crite dans un langage de programmation tel que Java et peut tre
appele pendant lapplication de rgles pour produire du contenu.
Cette migration vers le nouveau format, qui est elle aussi une contribution pour ce
projet de doctorat, est peu prs nie. Il nous reste des tests effectuer ainsi que la
documentation du simulateur mettre jour.
Le nouveau format de chiers demeure malgr tout complexe et il arrive souvent que
les gens nutilisent quun sous-ensemble de ses possibilits. Dans ce cas, il serait envi-
sageable de crer des formats plus simples mais plus limits et de convertir les chiers
vers le format du simulateur, en utilisant XSLT.
3.4 Importation de donnes depuis des sources diverses
Le simulateur doit pouvoir interagir avec dautres applications couramment utili-
ses dans lindustrie tout en demeurant portable. En particulier, nous aimerions pouvoir
importer des donnes depuis des sources externes telles des chiers ou des bases de don-
nes. Bien que cela nous semble pour le moment irraliste en raison de la diversit des
24
formats des donnes, lidal serait que le simulateur puisse recueillir lui-mme les don-
nes dont il a besoin auprs des dispositifs chargs de la collecte des informations dans
les centres dappels.
Pour le moment, les paramtres du modle doivent tre entrs la main en utili-
sant un diteur de texte ou un diteur XML. Ceci nest pas trs convivial et propice aux
erreurs. Linterface graphique en cours de dveloppement par un stagiaire durant lt
2007 pourrait allger signicativement ce problme en autorisant le transfert dinforma-
tions depuis des logiciels tels que des tableurs, mais cela risque de ne pas sufre sil est
ncessaire de simuler plusieurs scnarios avec des paramtres diffrents.
Java permet sans difcult de lire des chiers textuels et dispose de bibliothques in-
tgres pour accder des bases de donnes. Des bibliothques existent galement pour
lire des chiers au format Microsoft Excel. Nous pouvons ainsi crire des programmes
Java important des donnes de diffrentes sources sans perdre la portabilit. Par contre,
ces programmes risquent de devenir complexes ou de devoir tre personnaliss pour
chaque utilisation.
Nous avons alors explor la possibilit dtendre le format XML de nos chiers de
paramtres pour permettre lutilisateur de remplacer les donnes par des instructions
indiquant o se trouve linformation. Mais cela complique beaucoup le schma XML,
car le type de plusieurs lments passe du simple tableau une structure complexe. De
mme, lire les donnes depuis des sources externes, en particulier des bases de donnes,
peut tre long tandis quil nest pas ncessaire de le faire chaque simulation si les don-
nes ne changent qu des moments xes. Cest pourquoi il nous semble plus judicieux
de procder comme suit. Au lieu de construire un chier XML destin directement au
simulateur, lutilisateur crirait un gabarit contenant des paramtres et des instructions
indiquant o recueillir les donnes manquantes. Il utiliserait ensuite un programme pour
transformer ce gabarit en vritable chier de paramtres. videmment, un tel gabarit
pourrait tre utilis pour plusieurs expriences diffrentes, par exemple dans une appli-
cation qui mettrait les donns jour quotidiennement partir de bases de donnes. Le
25
langage XSLT (voir section 3.3), dot de quelques fonctions dextension, pourrait servir
crire de tels gabarits. Une autre possibilit consisterait tendre les logiciels tels que
des tableurs pour produire directement des chiers XML exploitables par le simulateur.
3.5 Exportation des rsultats vers des formats courants
la n de notre projet de matrise, en 2005, nous disposions dun simulateur gn-
rique afchant les rsultats sous une forme textuelle. Un programme Java pouvait aussi
tre rdig pour appeler le simulateur et recueillir les rsultats pour les analyser ou les
formater de faon personnalise. Ceci est toujours possible, mais analyser des rsultats
partir de la sortie textuelle est fastidieux tandis qucrire un programme Java pour traiter
les rsultats nest pas la porte de touss les gestionnaires de centres de contacts. De
mme, il nous semblait utile de pouvoir exporter les rsultats dans le format L
A
T
E
X pour
pouvoir les intgrer des documents destins ce systme. Pour rsoudre ces problmes,
le simulateur doit pouvoir exporter les rsultats de faon les rendre utilisables par des
logiciels courants tels que Microsoft Excel et L
A
T
E
X, ce que nous avons dj implant au
dbut de lanne 2007.
Il est galement intressant de pouvoir importer les rsultats produits par le simula-
teur an, par exemple, de permettre une interface graphique de rafcher des rsultats
sauvegards sans refaire la simulation. Cette importation est aussi cruciale pour per-
mettre la rdaction de programmes automatisant la gnration de tableaux synthtiques
partir de plusieurs scnarios. Par contre, analyser un chier de sortie dans le format
textuel ou Excel peut tre difcile et propice aux erreurs. Cest pourquoi il est possible
dexporter les rsultats vers un chier XML rutilisable par un programme Java. Pour ce
faire, un programme peut crer un objet de rsultats partir dun chier XML suivant
le schma appropri et en exploiter son contenu de la mme faon quil accderait aux
rsultats produits par un simulateur. Nous avons crit le schma pour ce nouveau type
de chier au cours de lt 2007, mais il nous reste encore adapter les classes actuelles
26
pour le prendre en charge.
CHAPITRE 4
AMLIORATION DE LA MODLISATION
Les gestionnaires chez Bell Canada ont remarqu que les niveaux de service et les
taux doccupation des agents obtenus par nos simulations ne correspondaient pas tou-
jours la ralit. Plus prcisment, prenons un modle dnissant un seul type dappel
et un groupe dagents, avec un processus darrive de Poisson et des temps de patience
et de service exponentiels.. Si nous utilisons les taux darrives, les dures de service
moyennes et le nombre dagents pour chaque priode correspondant la ralit, nous
obtenons la plupart du temps un niveau de service beaucoup trop lev, par exemple 92%
des appels servis aprs avoir attendu moins de 20 secondes au lieu du 80% escompt.
Par contre, si nous essayons de rduire le nombre dagents jusqu atteindre le niveau de
service souhait, nous obtenons un taux doccupation plus lev que celui observ dans
la ralit, par exemple 93% au lieu de 80%. Cela trahit une modlisation incomplte du
centre dappels qui est due au manque de donnes et de certaines informations notre
disposition pour effectuer la modlisation.
An de corriger ce manque, nous devons trouver le ou les aspects importants tenir
compte dans le modle en effectuant une analyse de sensibilit. Ceci semble principale-
ment d labsentisme des agents, leur non-adhrence et aux interventions manuelles
des gestionnaires. Dautres facteurs tels que le processus darrive des appels, la loi de
probabilit des temps de service, etc., pourraient aussi entrer en jeu, Par exemple, dans
le modle prcdent, nous avons tent de remplacer le processus darrive par un pro-
cessus de Poisson doublement stochastique dont les taux suivaient une loi gamma. Avec
ce processus appel Poisson-gamma, il nous a fallu mettre 10% plus dagents pour avoir
80% de niveau de service, mais nous avons obtenu un taux doccupation de 80% au lieu
de 93%. Pour que ContactCenters soit un outil utile au sein de lindustrie, il est crucial
quil soit en mesure de traiter des systmes correspondant des centres dappels rels.
28
Grce la collaboration des gens de Bell Canada dans le cadre dune bourse inci-
dence industrielle du CRSNG, nous esprons rendre ContactCenters plus adquat pour
les gestionnaires. En particulier, nous pourrons adapter le logiciel en fonction de leur fa-
on de voir les choses et faire en sorte que tous les aspects importants pour eux sont pris
en compte pour simuler des modles ralistes. Nous essaierons de modliser et simuler
divers centres dappels de Bell Canada dans le cadre de ce projet. Nous esprons que
cela nous permettra ventuellement de dcouvrir les aspects manquants pour obtenir des
modles ralistes. Grer la complexit des centres dappels rels est un d important,
car de multiples phnomnes dont limpact nest pas toujours quantiable et signicatif
peuvent se produire. Par exemple, dans certains centres, le systme de collecte de don-
nes ne comptabilise pas bien certains vnements comme le temps pass par un agent
rappeler des clients. Dans dautres, le nombre de types dappels est trs lev et les
agents dun mme groupe ne partagent pas ncessairement les mmes aptitudes. Les
routeurs utiliss sont produits par diverses entreprises et leur fonctionnement nest pas
connu de tous les gestionnaires. Par consquent, aucun standard nest utilis pour dcrire
les politiques de routage, mme de faon gnrale. Tous ces facteurs rendent difcile la
collecte de donnes et mme dinformations pour la modlisation. Nous tenterons mal-
gr tout dobtenir des informations et de les utiliser pour amliorer notre modle. Nous
esprons que nos contributions dans ce domaine inciteront les gestionnaires rassembler
davantage de donnes.
4.1 Absentisme des agents
Jusqu prsent, le nombre dagents dans chaque groupe et chaque intervalle de
temps tait une constante donne par lutilisateur ou dtermine par un programme dop-
timisation. En ralit, ce nombre peut varier de jour en jour puisquil peut arriver quun
ou plusieurs agents ne se prsentent pas leur poste. Ce phnomne dabsentisme fait
en sorte que le nombre dagents est une variable alatoire qui pourrait changer dune
29
rplication lautre dune simulation.
Le modle courant pour labsentisme est de rduire le nombre dagents par un fac-
teur x, ce qui permet en quelque sorte de rduire lefcacit des agents ; il faut alors
prvoir davantage dagents pour obtenir une mme qualit de service.
Pour modliser labsentisme de faon plus raliste, nous allons faire en sorte que
chaque agent soit prsent avec une certaine probabilit. Dans notre modle le plus simple,
le nombre dagents de groupe i durant la priode p suivra une loi binomiale. Nous ten-
terons ensuite de considrer la corrlation entre les priodes en faisant en sorte que le
nombre dagents du groupe i suive une loi multinomiale. Nous allons ensuite considrer
un cas plus raliste o nous disposons de lhoraire de travail des agents ; chaque agent
sera alors prsent avec une certaine probabilit, indpendamment des autres agents. Nous
tenterons ensuite de modliser la dpendance quil existe sans doute en ralit entre les
agents.
4.2 Non-adhrence des agents
Un autre aspect important que nous ne modlisons pas encore bien est la non-adhrence
des agents, cest--dire que les agents prsents ne suivent pas leurs horaires de travail
la lettre, par exemple en prenant des pauses imprvues. Ainsi, lhoraire de chaque agent
est lui aussi stochastique.
Le modle courant pour la non-adhrence est le mme que pour labsentisme : r-
duire le nombre dagents par un facteur x. Pour traiter la non-adhrence de faon plus
raliste, nous avons dcid en premier lieu dexaminer le comportement du modle si les
agents peuvent se dbrancher pendant un certain temps aprs avoir servi des contacts.
Dans ce modle, si un agent termine un service, il peut se dbrancher avec une certaine
probabilit. Il reste alors inactif pendant une dure exponentielle. Nous avons dcouvert
que ces dconnexions avaient un impact important sur le niveau de service et sur le taux
doccupation des agents en testant avec diverses probabilits et dures moyennes de d-
30
connexion. Mais il fallait souvent xer une probabilit ou une dure de dbranchement
trop leves pour obtenir le niveau de service et le taux doccupation correspondants la
ralit ; le modle semblait irraliste aux yeux des gestionnaires de Bell. Ceci semble d
au fait que notre modle est trop simpliste. Par exemple, les paramtres de dconnexion
pourraient varier dans le temps et mme dpendre de ltat du systme. En particulier,
la probabilit dune pause non planie pourrait augmenter en cas dengorgement du
systme. La dconnexion pourrait aussi survenir sous dautres conditions quune n de
service, par exemple si lagent est en ligne depuis une dure alatoire.
Nous aimerions trouver des modles plus ralistes pour la non-adhrence. Si nous
disposions de donnes adquates, nous pourrions tester plus fond le modle prcdent.
Mme en labsence de donnes quantitatives, nous pouvons malgr tout obtenir des in-
formations qualitatives et exprimenter partir de cela. En particulier, nous avons appris
que dans certains centres dappels, chaque agent avait droit un maximum de vingt
minutes de non-adhrence. Une solution possible consisterait alors considrer chaque
agent individuellement et retirer ces vingt minutes, rparties de faon alatoire, de son
temps de branchement.
Nous envisageons aussi de faire varier lefcacit des agents en fonction de lheure
de la journe et dautres paramtres du systme. Par exemple, en n de journes, les
agents fatigus pourraient tre plus lents servir des contacts. Le temps de service pour-
rait aussi augmenter lorsque les agents deviennent trop occups.
4.3 Simulation de recours
Les gestionnaires peuvent parfois intervenir pour faire face des situations inaccep-
tables, par exemple si le niveau de service diminue de faon importante ou si les agents
ne sont pas sufsamment occups. Ces situations peuvent tre corriges en modiant les
paramtres du composeur dappels sortants ou du routeur, en appelant des agents addi-
tionnels, en demandant aux agents en ligne sils veulent prendre un cong pour la jour-
31
ne, en modiant la planication dactivits telles que des runions, des formations, etc.
En raison de ces recours, certains paramtres qui taient constants jusque-l deviennent
alatoires et en corrlation avec dautres facteurs tels que le nombre darrives.
Par exemple, chez Bell Canada, nous avons travaill sur le cas dun centre dap-
pels comportant plusieurs groupes dagents, chaque groupe disposant de sa propre le
dattente et correspondant un fournisseur externe. Un appel arriv tait envoy un
fournisseur avec une certaine probabilit et demeurait li ce dernier pour la dure de
son sjour dans le centre. Les gestionnaires peuvent intervenir sur ces probabilits de fa-
on manuelle an dquilibrer le niveau de service pour chaque fournisseur. On appelle
cela vendor service level management (VSLM) en Anglais. Nous avons tent dlabo-
rer une heuristique pour reproduire ces interventions manuelles, ce qui sest avr assez
difcile.
Modliser ces interventions manuelles est difcile, car les gestionnaires utilisent plu-
sieurs facteurs qui ne sont pas tous considrs lors de la simulation et nappliquent pas
toujours une mthode rigoureuse pour prendre leurs dcisions. Parfois, modliser ces
interventions apporte une contribution ngligeable la prcision, surtout si lhorizon de
simulation se restreint une journe typique, mais cela peut devenir important surtout
si nous modlisons les vnements imprvus comme les pannes ou si nous simulons sur
un horizon plus long. Dcouvrir la nature de ces interventions manuelles et dterminer
quelles interventions sont importantes simuler est une direction de recherche promet-
teuse dans laquelle nous pourrions apporter des contributions.
4.4 Gestion dautres types de contacts
ContactCenters doit aussi pouvoir prendre en charge dautres types de communica-
tions que les appels tlphoniques, par exemple les tlcopies et la messagerie instan-
tane. priori, rien ne semble empcher un programmeur de construire un simulateur
traitant ce type de contacts.
32
La difcult rside dans la faon de modliser un tel centre de contacts : comment
faut-il effectuer le routage, quelle est la limite sur le nombre de communications quun
agent peut traiter, un agent peut-il traiter un appel tlphonique et de la messagerie ins-
tantane en mme temps, etc. ? La construction de modles pour les centres de contacts
prenant plusieurs types de communication en charge semble nouvelle et laisse donc place
linnovation. Nous allons construire des exemples de simulateurs pour modliser ce
genre de centres, en utilisant toutes les donnes que nous pourrons obtenir leur sujet.
Cela pourrait soulever des difcults qui nous permettraient ensuite de dcider sil est
ncessaire dajouter de nouvelles fonctionnalits ContactCenters pour faciliter lim-
plantation.
CHAPITRE 5
ANALYSE DE SENSIBILIT
Comme nous lavons abord dans le chapitre prcdent, le taux doccupation des
agents obtenu par nos simulations tait souvent trop lev par rapport celui de la ralit.
Dans notre modle, les agents sont donc trop efcaces si bien que nous avons propos
des faons de rduire leur efcacit, directement par labsentisme et la non-adhrence
ou indirectement en induisant de la variabilit dans le modle.
Puisque rassembler des donnes pour construire un modle est long et coteux et que
chaque dtail inclus dans le modle rduit la vitesse de simulation, il est judicieux de ne
modliser que ce qui est ncessaire pour atteindre notre objectif. Dans cette optique,
nous souhaitons effectuer une analyse de sensibilit de modles dans diverses conditions
pour dterminer les aspects qui sont importants et ceux qui peuvent tre ngligs. Une
telle analyse consiste faire varier certains paramtres dun modle et dobserver le
comportement des rsultats en fonction de cette variation. Ceci nous est possible, car
nous disposons dun simulateur trs exible avec lequel nous pouvons faire plusieurs
exprimentations. La difcult de cette partie du projet ne consiste donc pas obtenir
des rsultats mais plutt les interprter et dcider sur quelles variables nous allons
agir pendant les expriences.
Nous souhaitons en premier lieu dterminer les faons les plus efcaces daugmen-
ter la variabilit dans le but de rduire lefcacit des agents simuls. Nous voulons
aussi savoir sil est ncessaire de connatre avec prcision les lois de probabilit pour les
temps de patience et les temps de service des contacts. Nous allons galement exami-
ner limpact de certaines simplications du modle de simulation comme lutilisation de
compteurs au lieu dobjets, lagrgation de types de contacts et de groupes dagents, etc.
Comme nous allons le dcouvrir dans les prochaines sections de ce chapitre, il existe
un nombre inni dexprimentations que nous pourrions effectuer. Nous allons donc
34
nous limiter des modles simples pour lesquels nous pourrons interprter les rsultats.
Nous esprons que nos dcouvertes sappliqueront aussi des modles plus complexes.
Dans ce chapitre, nous allons expliquer comment nous prvoyons effectuer cette ana-
lyse de sensibilit, sur quels genres de modles et pour quelles mesures de performance.
Nous allons prsenter un seul exemple de modle, mais nous prvoyons exprimenter
sur diffrents modles inspirs dexercices de simulation faits chez Bell Canada dans le
cadre de ce projet. En particulier, nous aimerions analyser des exemples avec plusieurs
types de contacts qui ne peuvent pas tre servis par tous les agents.
5.1 Mthodologie
Soit Run paramtre que nous souhaitons faire varier et soit () (une constante)
la mesure de performance qui nous intresse, en fonction de . Comme dans le chapitre
suivant, () peut tre une fonction de plusieurs esprances. Nous simulons le systme
n fois, indpendamment, pour calculer un estimateur
n
() (une variable alatoire) de
() pour diffrentes valeurs de . Par exemple, pourrait correspondre au temps de
service moyen des contacts et (), au niveau de service avec ce paramtre .
Nous allons perturber en lui ajoutant une constante R et estimer la diffrence
= ( +) ()
avec lestimateur

n
=
n
( +)
n
().
La constante peut dpendre de . Nous pouvons aussi nous intresser la diffrence
relative

REL
=
( +) ()
()
.
Nous utiliserons les variables alatoires communes (voir section 6.2) pour rduire la
variance sur la diffrence estime. Dans ce cas, pour que les deux systmes compars
35
ne diffrent pas trop, il faut que soit prs de 0. Toute autre technique que nous allons
dvelopper pour calculer des sous-gradients dans le but de faire de loptimisation (voir
en particulier la section 6.8.2) pourrait tre rutilise pour notre analyse de sensibilit.
Nous prvoyons tester si perturber affecte signicativement la mesure de perfor-
mance et, dans certains cas, trouver une perturbation affectant la performance jusqu un
certain point. Nous pourrions pour cela appliquer des tests dhypothses, mais ces der-
niers ne nous fourniraient que des rponses qualitatives : soit la diffrence teste serait
signicative, soit le test ne permettrait pas de dcider. Pour avoir une ide de limpor-
tance de la diffrence , nous calculerons plutt un intervalle de conance [I
1
, I
2
] de
niveau 1 sur pour lestimateur

n
. Ici, I
1
et I
2
sont des variables alatoires et nous
allons supposer que P[I
1
I
2
] 1. Si I
1
I
2
, nous pouvons alors considrer
que = avec un niveau de conance de 1. Par exemple, si nous voulions savoir si,
en multipliant le temps de service moyen par un certain facteur , le niveau de service
se trouve perturb de 5% avec probabilit 95%, nous xerions et 5%.
Pour notre analyse de sensibilit, nous allons nous concentrer sur les mesures de
performance souvent considres par les gestionnaires de Bell Canada : le niveau de
service g
1
(s, t
1
, t
2
), le taux dabandon (t
1
, t
2
), le temps de rponse moyen w(t
1
, t
2
) et le
taux doccupation des agents o(t
1
, t
2
). Dans le cas dun modle o K > 1 et I > 1, nous
pouvons aussi examiner s
k,i
(t
1
, t
2
), le nombre de contacts de type k servis par des agents
du groupe i. En gnral, les gestionnaires souhaitent quilibrer les performances entre
types de contacts et groupes dagents. Dans certains cas, ils veulent aussi quilibrer la
performance lintrieur dintervalles de temps de lhorizon, par exemple dans chaque
demi-heure de la journe. Si K >1, nous pouvons donc examiner le niveau de service, le
taux dabandon et le temps de rponse moyen pour chaque type de contact et pour I > 1,
nous pouvons tudier le taux doccupation et le nombre dquivalents temps plein pour
chaque groupe dagents. Ces mesures ont t dnies la section 2.2.
Le comportement du systme pourrait varier en fonction de la charge de travail des
agents qui peut tre mesure par leur taux doccupation. Nous nous attendons ce que
36
la sensibilit des mesures de qualit de service soit plus faible dans les cas extrmes o
le trac est trs bas ou trs lev et allons vrier cela empiriquement. Cest pourquoi
nous allons faire varier les taux darrive pendant les tests.
Parfois, les gestionnaires sintressent aussi la sensibilit du nombre dquivalents
temps plein ncessaires pour obtenir un niveau de service x, par exemple 80% en
20 secondes. Dans ce contexte, nous pouvons tenter dajuster les agents pour avoir le
bon niveau de service aprs chaque changement de paramtre et examiner le nombre
dagents requis en plus des autres mesures de performance. Mais ceci ne peut tre test
efcacement quen utilisant des programmes doptimisation rapides dont le dveloppe-
ment sort du cadre de ce projet de doctorat. Par contre, un autre tudiant est en train de
raliser un projet de doctorat sur ce sujet si bien que nous pourrions utiliser son travail
pour notre analyse. Mme sans logiciel doptimisation, nous pouvons tenter de trouver
le bon nombre dagents par essai et erreur pour des modles simples.
5.2 Analyse dun modle avec un type de contact et un groupe dagents
Cet exemple, tir du guide dutilisation de SSJ [32] et utilis dans [36], dnit un
seul type de contact, un seul groupe dagents mais P = 13 priodes principales dune
heure. Les contacts arrivent selon un processus de Poisson un taux alatoire B
p
du-
rant la priode p. Les taux de base
p
sont dterministes tandis que B est une variable
alatoire dont la loi de probabilit est gamma avec paramtres (
0
,
0
). Gnre au d-
but de chaque jour, la variable B a une moyenne de 1, une variance de 1/
0
et reprsente
le facteur dachalandage du systme [5]. Si B > 1, le taux darrive des contacts est
plus lev que dhabitude. Si B < 1, il est infrieur la moyenne. Ce processus permet
daugmenter la variance du nombre darrives A puisque
Var[A] = Var[E[A [ B]] +E[Var[A [ B]] = a
2
Var[B] +a,
o a =E[A].
37
Les contacts ne pouvant tre servis immdiatement sont mis dans une le de type
FIFO (First in First Out ou premier arriv, premier servi) et abandonnent aprs un cer-
tain temps de patience. Les temps de patience sont i.i.d. et sont gnrs de la faon sui-
vante : avec probabilit , le temps de patience est 0, cest--dire que le contact concern
abandonne immdiatement sil ne peut pas tre servi ds son arrive. Avec probabilit
1, le temps de patience est exponentiel de moyenne 1/. Les temps de service sont
exponentiels avec moyenne 1/.
Pendant la priode p, N
p
agents sont disponibles pour servir des contacts. Si, la
n de la priode p, le nombre dagents occups est plus grand que N
p+1
, les services en
cours sont complts et de nouveaux contacts ne sont accepts que lorsque le nombre
dagents occups devient infrieur N
p+1
. Pendant la priode prliminaire, aucun agent
nest disponible tandis que N
P+1
= N
P
. Le tableau 5.I prsente les paramtres avec les-
quels nous prvoyons tester cet exemple. Avec ces paramtres, le nombre total espr
darrives est 1 660.
Changement des lois de probabilit. Si les dures de service sont plus courtes, le taux
doccupation des agents diminue, mais le niveau de service augmente. Si nous souhaitons
faire diminuer le taux doccupation tout en gardant le mme niveau de service, nous
pouvons tenter dutiliser une loi de probabilit autre dexponentielle pour les temps de
service an den augmenter la variabilit. Par exemple, la loi gamma gnralise la loi
Tableau 5.I Paramtres de lexemple avec un type de contact et un groupe dagents
p 0 1 2 3 4 5 6 7 8 9 10 11 12
N
p
4 6 8 8 8 7 8 8 6 6 4 4 4

p
100/h 150/h 150/h 180/h 200/h 150/h 150/h 150/h 120/h 100/h 80/h 70/h 60/h
Priodes Treize priodes dune heure

0
pour B 10
Probabilit dabandon immdiat 0,1
Temps de patience moyen 16min40s
Temps de service moyen 1min40s
38
exponentielle et permet de xer la variance en plus de la moyenne.
Si les dures de patience sont rduites, le nombre dabandons augmente, ce qui libre
des agents tout en diminuant le niveau de service. Nous pouvons aussi essayer de changer
la loi de probabilit des temps de patience an den augmenter la variance comme avec
les temps de service. videmment, la sensibilit au temps de patience dpend beaucoup
du taux dabandon dans le modle. Si ce taux est petit, les changements auront peu
dimpact.
Le processus darrive est bien entendu une importante source de variabilit dans
le modle si bien quil vaut la peine dessayer de le perturber lui aussi. Faire varier la
variance du facteur dachalandage est dj une faon de changer le processus darrive.
Nous pourrions aussi tester avec des processus totalement diffrents comme le processus
de Poisson sans facteur doccupation B, le processus Poisson-gamma pour lequel le taux
darrive dans chaque priode est une variable alatoire de loi gamma, etc.
Paramtres des agents. videmment, tout changement dans les paramtres des agents
peut affecter leur taux doccupation si bien que nous allons tenter de faire varier ces
paramtres. Nous pouvons dabord faire varier le nombre dagents en multipliant N
p
par
un facteur et en arrondissant le rsultat. Cela permettrait dvaluer la performance en
fonction du nombre dquivalents temps plein. Ceci a pour but de dterminer quel
point il faut changer le nombre dagents pour obtenir la performance souhaite.
Nous allons galement essayer de faire varier la probabilit de dconnexion des
agents aprs chaque service ainsi que la dure moyenne de la dconnexion pour tester
plus fond notre modle de la non-adhrence dvelopp la section 4.2.
Nous allons nalement comparer le comportement du systme o un groupe dagents
est implant avec des compteurs avec un systme quivalent dans lequel un groupe
dagents reprsente chaque agent comme un objet individuel. La diffrence apparat
lorsque N
i
(t) < N
B,i
(t) dans un groupe i et que tous les agents terminent leurs services
en cours avant de quitter. Dans un groupe implant avec des compteurs, aucun nouveau
39
contact nest accept tant que N
i
(t) < N
B,i
(t). Par contre, si chaque agent est un objet in-
dpendant, certains agents sont marqus pour quitter le systme la n de leurs services
et il se peut quun agent non marqu termine son service avant un agent marqu. Dans
ce cas, des nouveaux contacts pourraient tre accepts mme si N
i
(t) < N
B,i
(t).
5.3 Un seul type de contact, plusieurs groupes dagents
Nous allons tester des modles dnissant un type de contact mais plusieurs groupes
dagents. Bien entendu, si aucune distinction nest faite entre les agents, par exemple en
xant un temps de service diffrent selon le groupe dagents ou en ajustant la politique
de routage, cela quivaut navoir quun groupe dagents. Nous allons nous limiter ici
des politiques couramment utilises, car le nombre de politiques possibles est beaucoup
trop grand pour que nous puissions toutes les tester.
La premire rgle de routage qui nous vient lesprit consiste choisir lagent avec
le plus long temps dinactivit, ce qui ntablit aucune distinction entre les agents si
les dures de service ne dpendent pas deux. Nous devrions alors observer un taux
doccupation quilibr pour les agents. Mais il se peut quen ralit, les taux ne soient pas
quilibrs, do une diffrence du taux global. Nous pouvons alors tenter de reproduire
cela en faisant varier les dures de service en fonction du groupe dagents.
Une autre faon dtablir la distinction est demployer une politique avec dborde-
ments : choisir un agent dans un premier groupe puis opter pour un agent dans un se-
cond si tous les agents du premier sont occups et ainsi de suite. Nous allons considrer
que lordre de consultation des agents est xe. Pour diminuer le taux doccupation des
agents dun groupe, nous pouvons tenter de rduire le nombre de contacts envoys vers
ce groupe en imposant un dlai minimal dattente aux contacts. Plus le dlai de dbor-
dement pour un groupe i est lev, plus les contacts doivent attendre longtemps avant
de pouvoir tre servis par les agents de ce groupe. Le taux doccupation des agents du
groupe i devrait alors diminuer tandis que celui des agents des groupes prcdant i dans
40
la liste de dbordement devrait augmenter.
5.4 Plusieurs types de contacts
Pour un maximum defcacit, il vaut mieux que tous les agents soient forms pour
servir tous les contacts. En ralit, un agent ne peut servir quun nombre restreint de
types de contacts. Cela peut rduire son taux doccupation tant donn que sa charge
de travail se voit ainsi rduite. Pour modliser un centre de contacts de faon raliste, il
semble donc important de xer des paramtres appropris pour chaque type de contact
et chaque groupe dagents.
Par contre, plus il y a de types de contacts et de groupes dagents, plus le systme
devient complexe. Nous nous demandons alors sil est possible dagrger certains types
de contacts et groupes dagents pour sauver du travail de modlisation. Pour examiner
cela, nous allons comparer certains modles complexes inspirs de centres dappels chez
Bell Canada avec des versions simplies agrgeant certains lments. Nous esprons
montrer empiriquement que dans certains cas, agrger est avantageux.
CHAPITRE 6
TECHNIQUES DAMLIORATION DE LEFFICACIT
Il existe un trs grand nombre de techniques pour rduire la variance [10, 22, 25, 30,
34] dans les simulations. Par contre, la plupart de ces mthodes doivent tre personnali-
ses pour les adapter lapplication donne et il est parfois difcile de les utiliser pour
un systme complexe. Une autre avenue consiste combiner plusieurs techniques, ce qui
fait souvent surgir des problmes insouponns. De telles combinaisons ont t tudies
dans [8, 9] pour certains cas particuliers.
Dans ce chapitre, nous allons prsenter diverses techniques permettant damliorer
lefcacit en rduisant la variance de faon gnrale. Les techniques prsentes ici sont
relativement connues et sont dcrites dans [34] et les rfrences bibliographiques qui
sy trouvent. Nous prsentons ici les techniques dans un contexte gnral avec quelques
exemples relatifs aux centres de contacts. Dans le chapitre suivant, nous exposerons plus
en dtails comment nous souhaitons tenter dexploiter ces techniques pour la simulation
de centres de contacts.
La plupart de ces techniques visent rduire la variance asymptotique dune fonction
de plusieurs moyennes. Soit pour cela X = (X
1
, . . . , X
d
) = (X
i
)
d
i=1
un vecteur alatoire
obtenu par simulation. Ce vecteur peut par exemple contenir le nombre de contacts ser-
vis, le nombre dabandons, etc. Nous nous intressons lesprance de ce vecteur, note
=E[X]. Soit maintenant g : R
d
R une fonction continue et drivable dans le voisi-
nage de . La constante = g() est estime par
n
= g(
n
), o
n
est un estimateur
asymptotiquement sans biais de , cest--dire que E[
n
] si n . Nous allons
galement supposer que
n
, o dnote la convergence en loi de probabilit. Cela
signie que quand n , la rpartition de
n
tend vers une loi discrte gnrant avec
probabilit 1.
En gnral,
n
est un estimateur biais de , moins que g() soit une fonction
42
linaire. Un cas important de fonction linaire est g() =
i
, cest--dire une composante
individuelle de .
Lexpression de Var[g(X)] est habituellement inconnue, mais nous pouvons obtenir
une expression relativement simple pour la variance asymptotique de
n
, cest--dire la
variance quand n . Nous allons utiliser cette variance asymptotique comme approxi-
mation de la variance en supposant que n est grand. Pour cela, le thorme de Taylor [48]
indique que si X est prs de ,
g(X) = g() +(g())
t
(X) g() +(g())
t
(X) (6.1)
o R
d
se trouve sur le segment reliant et Xet g() est le gradient de g() valu
. Si nous supposons que le gradient est continu dans le voisinage de et que la fonction
est value
n
avec
n
quand n , alors si bien que g() g().
Nous pouvons alors supposer que lapproximation (6.1) devient exacte la limite, ce qui
nous donne une expression pour la variance.

2
def
= lim
n
nVar[g(
n
)] = lim
n
nVar[g() +(g())
t
(
n
)]
= lim
n
nVar[(g())
t

n
] = lim
n
n(g())
t
Cov[
n
]g()
= (g())
t

XX
g()
o
XX
= Cov[X] = nCov[
n
] est une matrice de covariances de d d dnie positive.
De plus,
2
Var[g(X)] si X est prs de , ce qui est vri avec
n
quand n est grand.
Si g() est linaire, le dveloppement en srie de Taylor correspond la fonction et
lapproximation devient exacte si bien que
2
= nVar[
n
] = Var[g(X)]. En pratique,
2
est estim en remplaant par
n
et
XX
par la matrice de covariances empiriques note

XX,n
.
Souvent, la fonction considre est un rapport de deux moyennes. Soit dans ce cas
43
X = (X
1
, X
2
), = (
1
,
2
),

XX
=


2
1

12

12

2
2

2
1
= Var[X
1
],
2
2
= Var[X
2
] et
12
= Cov[X
1
, X
2
]. Nous avons g() =
1
/
2
et le gra-
dient est g(
1
,
2
) = (1/
2
,
1
/
2
2
)
t
. La variance, quant elle, est

2
= (
2
1
+
2
2

2
2
12
)/
2
2
. (6.2)
Pour rduire cette variance, il faut, daprs cette formule, rduire la variance au numra-
teur et au dnominateur ou augmenter la covariance entre les deux termes.
Nous souhaitons en gnral augmenter lefcacit de
n
dnie par
Eff[
n
] =
1
MSE[
n
]C[
n
]
(6.3)
o
MSE[
n
] = [
n
] +Var[
n
]
est lerreur quadratique moyenne,
[
n
] =E[
n
]
est son biais et C[
n
] est son cot de calcul moyen par lordinateur. Selon cette dnition,
nous pouvons accrotre lefcacit dun estimateur en rduisant son biais, sa variance ou
son temps de calcul. Dans ce chapitre, nous allons nous concentrer sur la rduction de
variance.
44
6.1 Variables de contrle
Pour rduire la variance telle que dnie prcdemment, nous pouvons tenter duti-
liser une ou plusieurs variables de contrle linaires. Cette technique consiste ajouter
une somme pondre de variables alatoires desprance nulle lestimateur qui nous
intresse. Elle est tudie pour le cas dune seule variable alatoire dans [26, 29] tandis
que le cas dune fonction de plusieurs moyennes, que nous dcrivons ici, est prsent
dans [25, 27].
Soit CR
q
un vecteur alatoire dont c =E[C] est connue et calculable efcacement.
Soit c
n
un estimateur asymptotiquement sans biais de c. Lestimateur avec variables de
contrle, qui remplace simplement g(X) par une autre fonction, est alors

c,n
= h(
n
, c
n
) = g(
n
)
t
( c
n
c) (6.4)
o R
q
est un vecteur colonne de coefcients dterminer. Cet estimateur
c,n
, sans
biais si g() est linaire, est une gnralisation de lestimateur plus connu sappliquant
sur un simple scalaire.
Soit

2
c
def
= lim
n
nVar[
c,n
] = (h(, c))
t

c
h(, c),
o h(, c) =

g()

et
c
= Cov

X
C


XX

XC

CX

CC

.
Ici,
XX
=Cov[X] est une matrice de d d,
CC
=Cov[C] est de dimensions qq tandis
que
t
XC
=
CX
= Cov[C, X] est de dimensions qd. Nous allons considrer que toutes
45
ces matrices sont dnies positives. Alors,

2
c
=
2
2
t

CX
g() +
t

CC
. (6.5)
Selon le choix du vecteur , la variance asymptotique peut tre rduite ou augmente.
Avec = 0,
2
c
=
2
(aucun changement de la variance). La valeur de minimisant la
variance asymptotique est donne par

= (
CC
)
1

CX
g(). (6.6)
Avec ce vecteur optimal, la variance devient

2
c
= (1R
2
CX
)
2
(6.7)
o
R
2
CX
=
(g())
t

t
CX
(
CC
)
1

CX
g()

2
est le coefcient de dtermination (ou le carr de la corrlation multiple) de g(X) et C.
Si
CC
est dnie positive, ce que nous avons suppos,
2
c

2
.
En pratique, et
CX
sont inconnues et remplaces par leurs quivalents empiriques

n
et

CX,n
estims soit par des expriences pilotes, soit avec les observations em-
ployes pour calculer
c,n
. Mme si
CC
est parfois connue, lestimer elle aussi ajoute un
contrle non linaire lestimateur et rduit davantage la variance [34, 45]. Le vecteur
de constantes estim est alors

n
= (

CC,n
)
1

CX,n
g(
n
). (6.8)
Si les matrices sont estimes avec les observations utilises pour estimer , cela ajoute
du biais lestimateur
c,n
, mais ce biais est ngligeable si n est trs grand.
Comme nous laborderons la section 7.1, notre objectif de recherche par rapport
46
cette technique consiste trouver de bonnes variables de contrle rduisant efcacement
la variance.
6.2 Variables alatoires communes
Nous souhaitons parfois comparer deux ou plusieurs congurations similaires, ne
diffrant par exemple que par un paramtre . Soit alors X() la valeur de X condition-
nelle , () = E[X()] le vecteur de mesures de performance conditionnel , et
() = g(()) le rsultat de la fonction de plusieurs esprances qui nous intresse.
Nous souhaitons estimer la diffrence
= (
2
) (
1
)
pour
1
<
2
et =
2

1
. Soit pour cela
n
(, U) = g(
n
(, U)) un estimateur de
(), o
n
(, U) est un estimateur asymptotiquement sans biais de () utilisant une
squence de variables alatoires uniformes U. La diffrence est estime par

n
=
n
(
2
, U
2
)
n
(
1
, U
1
)
et sa variance est
Var[

n
] = Var[
n
(
1
, U
1
)] +Var[
n
(
2
, U
2
)] 2Cov[
n
(
1
, U
1
),
n
(
2
, U
2
)].
Si les deux systmes sont simuls indpendamment, U
1
et U
2
sont indpendants si bien
que la covariance entre les deux estimateurs est nulle et la variance devient
Var[

n
] = Var[
n
(
1
, U
1
)] +Var[
n
(
2
, U
2
)] 2Var[
n
(
1
, U
1
)]
si
1
est assez prs de
2
.
Pour rduire cette variance, nous pouvons utiliser les variables alatoires communes
47
[10, 41] en xant U
1
=U
2
. Pour ce faire, les deux systmes sont simuls avec les mmes
nombres alatoires, en veillant le plus possible utiliser les mmes nombres aux mmes
endroits. Dans le cas de bon nombre de modles, cela suft pour induire une corrlation
positive entre
n
(
1
, U
1
) et
n
(
2
, U
2
) qui rduit Var[

n
].
Il peut tre intressant de combiner cette technique simple avec dautres techniques
telles que les variables de contrle et la stratication. La synchronisation, cest--dire
utiliser les nombres alatoires aux mmes endroits, nest galement pas toujours facile,
car elle peut tre effectue de plusieurs faons dans un modle complexe.
Nous nous intressons galement des diffrences lorsque est trs petit, par exemple
pour estimer une drive par la mthode des diffrences nies

n
( +, U
2
)
n
(, U
1
)

.
Sans variables alatoires communes, la variance dun tel estimateur est approximative-
ment 2Var[
n
(, U)]/
2
et tend vers linni si 0. Par contre, si nous utilisons les
variables alatoires communes, nous obtenons souvent un estimateur utilisable dont la
variance est borne. Dans certains cas, il est mme possible de prouver lexistence dune
telle borne sur la variance en fonction de , ce que nous allons tenter de faire dans cer-
tains contextes spciques (voir section 7.4).
6.3 Variables antithtiques
La mthode des variables antithtiques, qui ressemble aux variables alatoires com-
munes, consiste quant elle calculer lestimateur

AV,n
(U) =

n
(U) +
n
(1U)
2
48
o
n
(U) = g(
n
(U)) et
n
(U) est un estimateur de utilisant une squence U de
variables alatoires. La variance de cet estimateur est
Var[
AV,n
(U)] =
1
4
(Var[
n
(U)] +Var[
n
(1U)] +2Cov[
n
(U),
n
(1U)])
=
Var[
n
] +Cov[
n
(U),
n
(1U)]
2
< Var[
n
]
si
Cov[
n
(U),
n
(1U)] < 0.
Pour que la technique fonctionne, il doit ainsi exister une corrlation ngative entre

n
(U) et
n
(1U). Intuitivement, les vnements dsastreux pendant la simulation cal-
culant
n
(U) doivent tre compenss par des vnements heureux dans la simulation
pour
n
(1U).
Lapplication de cette technique est trs simple, mais il peut tre intressant de tenter
de la combiner avec dautres techniques telles que les variables de contrle ou la stra-
tication. Nous devons galement faire face aux mmes problmes de synchronisation
quavec les variables alatoires communes.
6.4 Monte Carlo conditionnel
La mthode Monte Carlo conditionnel remplace un estimateur X par une esprance
conditionnelle
X
CMC
=E[X [ Y].
La variance de cet estimateur est
Var[X
CMC
] = Var[X] E[Var[X [ Y]] Var[X].
49
Cela signie que plus la variance conditionnelle de X tant donn Y est leve, plus la
technique rduit la variance. En dautres mots, moins Y contient dinformations pour
calculer X, plus la variance est rduite. La variable alatoire Y pourrait tre remplace
par un vecteur sans changer lexpression de Var[X
CMC
]. Nous pouvons aussi appliquer
cette technique pour remplacer un vecteur X par une esprance conditionnelle E[X [ Y],
mais aucune expression nest disponible pour la matrice de covariances rsultante.
Comme nous le verrons la section 7.5, nous allons tenter de combiner cette tech-
nique aux variables alatoires communes pour estimer des drives.
6.5 chantillonnage stratgique
Lchantillonnage stratgique consiste remplacer la fonction de densit de lesti-
mateur an de nous concentrer sur les endroits o la variance est la plus leve. Sup-
posons que le vecteur X a une densit conjointe donne par (X) et que nous voulons
calculer g(X). Pour appliquer la mthode, nous gnrons X par rapport la densit f (X)
au lieu de la densit (X) et calculons lestimateur
X
IS
= g(X)
(X)
f (X)
= g(X)L(X),
o
L(X)
def
=
(X)
f (X)
est appel le rapport de vraisemblance. Malheureusement, la densit de X est souvent
trop complexe pour tre calcule directement. Dans certains cas, nous pouvons rcrire
g(X) comme h(Y) o Y = (Y
1
, . . . ,Y
d
) est un vecteur de variables alatoires indpen-
dantes entre elles. La densit
i
(Y
i
) est alors remplace par f
i
(Y
i
) et le rapport de vrai-
semblance devient
L(Y) =

1
(Y
1
)
d
(Y
d
)
f
1
(Y
1
) f
d
(Y
d
)
.
50
La difcult de cette technique consiste trouver un bon changement de densit qui
rduit effectivement la variance borne par
Var[X
IS
] Var[X] si L(Y) .
Une faon de dmontrer que la variance est rduite consiste alors prouver que le rapport
de vraisemblance ne peut pas excder 1 si X
IS
,= 0.
Nous pourrions tenter dappliquer cette technique pour estimer la probabilit que le
niveau de service sur une longue priode soit infrieur un seuil (voir section 7.6).
6.6 Mthodes quasi-Monte Carlo randomises
Les mthodes quasi-Monte Carlo consistent remplacer les variables alatoires sui-
vant la loi uniforme par des variables dterministes distribues de faon plus uniforme
que des variables alatoires. Le rsultat de la simulation peut tre considr comme
une fonction (U) dun point U sur lhypercube [0, 1)
t
, avec =E[ (U)]. La mthode
Monte Carlo gnre n points sur lhypercube de faon alatoire et uniforme pour ensuite
calculer n copies de (U
i
). Dans les mthodes quasi-Monte Carlo [31, 39], les n valeurs
alatoires sont remplaces par un ensemble de points dterministe construit de faon
tre trs uniformment distribu sur lhypercube.
Mais la variance ainsi obtenue est nulle si bien quil devient difcile destimer ler-
reur destimation. Pour rsoudre ce problme, il suft de randomiser lensemble de
points laide dune mthode qui conserve la grande uniformit des points et qui fait
en sorte que chaque point est distribu sur lhypercube [0, 1)
t
selon la loi uniforme. Si
nous gnrons m randomisations dun mme ensemble de n points, nous obtenons m
copies indpendantes de lestimateur

RQMC,i
=
1
n
n

j=1
(U
i, j
)
51
o U
i, j
est le point j de la randomisation i. Avec ces randomisations, nous pouvons
calculer une moyenne globale

RQMC
=
1
m
m

i=1

RQMC,i
=
1
mn
m

i=1
n

j=1
(U
i, j
)
et la matrice de covariances empiriques estimant Cov[
RQMC,i
]. Il existe de nombreuses
faons de construire un ensemble de points, notamment les rgles de rseaux, les rseaux
digitaux, etc., ainsi que plusieurs techniques de randomisation.
Cette mthode fonctionne bien seulement lorsque la dimension du problme est pe-
tite. Pour appliquer cette mthode un problme complexe comme la simulation dun
centre de contacts, il nous faut par consquent rduire la dimension effective du pro-
blme (voir section 7.7).
6.7 Stratication
Cette technique, qui existe dj depuis quelques annes [17], consiste subdivi-
ser lchantillon servant estimer une moyenne en plusieurs strates dans lesquelles la
variance est rduite. Nous la gnralisons ici pour le cas dune fonction de plusieurs
moyennes, ce qui est innovateur. Nous allons aussi traiter le cas o nous strations par
rapport une variable alatoire continue.
Soit S une variable alatoire ayant une grande corrlation avec X ou, mieux encore,
avec g(X). En supposant que S est discrte sur un support ni 1, . . . , m et a une fonction
de masse p
s
=P[S = s], nous pouvons utiliser la probabilit totale pour rcrire comme
=E[X] =
m

s=1
p
s

s
avec
s
=E[X [ S = s]
lesprance de X tant donn que S = s. La stratication consiste estimer
s
de fa-
on indpendante pour chaque valeur de S = s, appele strate, pour ensuite obtenir une
estimation de .
52
Supposons maintenant que nous strations par rapport un vecteur alatoire U
[0, 1)
t
dont les lments peuvent tre utiliss pour gnrer des variables alatoires de la
simulation. Nous pouvons dans ce cas diviser lhypercube en m sous-cubes, avec p
s
le
volume du sous-cube s. Pour chantillonner dans la strate s, il suft alors de gnrer U
uniformment dans le sous-cube s, de xer S = s et dutiliser U pour la simulation.
Soit n
s
le nombre dobservations disponibles pour S = s et
n =
m

s=1
n
s
le nombre total dobservations. Soit X
s, j
R
d
lobservation j dans la strate s, pour j =
1, . . . , n
s
et s = 1, . . . , m. Lestimateur strati de est alors

X
strat,n,m
=
m

s=1
p
s

s
o
s
=
1
n
s
n
s

j=1
X
s, j
(6.9)
est un estimateur de
s
. Soit
strat
def
= nCov[

X
strat,n,m
] la matrice de covariances de les-
timateur strati et
s
= Cov[X [ S = s] la matrice des covariances conditionnelles la
strate s. Alors,

strat
= n
m

s=1
p
2
s

s
n
s
. (6.10)
Nous avons dni
strat
de cette faon an quelle soit comparable avec
XX
.
Pour estimer g() avec la stratication, nous calculons
strat,n,m
=g(

X
strat,n,m
), cest-
-dire la fonction avec lestimateur strati (6.9). La variance asymptotique de cet esti-
mateur est

2
strat
def
= lim
n
nVar[g(

X
strat,n,m
)] (6.11)
= (g())
t

strat
g() (6.12)
= n
m

s=1
p
2
s
(g())
t

s
g()
n
s
53
= n
m

s=1
p
2
s

2
s
n
s
o

2
s
def
= (g())
t

s
g()
est la contribution de la strate s la variance globale. Avec cette dnition, si g() =
i
,

2
strat
= Var[X
i
],
2
s
= Var[X
i
[ S = s] = Var[X
s, j
] et nous retrouvons la formule habituelle
pour la variance dun estimateur strati [17].
En supposant quil est possible de gnrer X conditionnellement S = s pour un
s choisi, nous pouvons ajuster les valeurs de n
s
avant la simulation. Il existe pour cela
plusieurs mcanismes dallocation. En particulier, lallocation proportionnelle xe n
s
=
np
s
. La variance devient

stratp
def
= n
m

s=1
p
2
s

s
np
s
=
m

s=1
p
s

s
,
2
stratp
= n
m

s=1
p
2
s

2
s
np
s
=
m

s=1
p
s

2
s
. (6.13)
Nous pouvons galement rechercher lallocation optimale visant minimiser
2
strat
.
En utilisant un Lagrangien pour traiter la contrainte n =
m
s=1
n
s
, nous obtenons
n
s
=
np
s

s

avec =
m

s=1
p
s

s
. (6.14)
La variance avec cette allocation est

2
strato
= n
m

s=1
p
2
s

2
s
np
s

s
=
m

s=1
p
s

s
=
2
. (6.15)
Les valeurs de
2
s
, inconnues au dpart, doivent tre estimes par des expriences
pilotes avant de pouvoir estimer les valeurs de n
s
optimales. Chaque valeur de n
s
obtenue
est ensuite arrondie lentier le plus prs et xe 2 si elle est infrieure ce nombre.
54
La matrice de covariances peut tre dcompose comme suit.
Cov[X]
= E[Cov[X [ S]] +Cov[E[X [ S]]
=
m

s=1
p
s

s
+
m

s=1
p
s
(
s
)(
s
)
t
(6.16)
=
stratp
+
m

s=1
p
s
(
s
)(
s
)
t
.
En remplaant
XX
par (6.16) dans lexpression de
2
, nous pouvons dcomposer la
variance asymptotique de la faon suivante.

2
= (g())
t

XX
g()
=
m

s=1
p
s
(g())
t

s
g() +
m

s=1
p
s
(g())
t
(
s
)(
s
)
t
g()
=
m

s=1
p
s

2
s
+
m

s=1
p
s
(g())
t
(
s
)(
s
)
t
g()
=
2
stratp
+
m

s=1
p
s
(g())
t
(
s
)(
s
)
t
g() (6.17)
=
2
strato
+
m

s=1
p
s
(
s
)
2
+
m

s=1
p
s
(g())
t
(
s
)(
s
)
t
g(). (6.18)
Cette dcomposition montre que lallocation proportionnelle limine la variance cause
par la diffrence entre les moyennes dans les strates. Lallocation optimale, quant elle,
limine aussi la diffrence de variances entre les strates. De plus, si g() =
i
, nous
retrouvons la dcomposition habituelle prsente dans [17].
Nous allons discuter de lapplication de cette technique la section 7.2 et de sa
combinaison avec les variables de contrle la section 7.3.
55
6.8 Scission
Il arrive que le nombre ncessaire de rplications soit lev en raison dune priode
de lhorizon dans laquelle la variance est trs leve. Simuler plusieurs rplications est
alors coteux inutilement pour les priodes dans lesquelles la variance est faible. Si nous
comparons plusieurs congurations, il se peut aussi que le comportement du systme
simul ne diffre pas beaucoup dune valeur lautre des paramtres tests. Dans ce cas
galement, du travail de simulation est fait inutilement.
Pour rduire le travail de simulation dans ces deux situations, nous pouvons appli-
quer la scission (splitting en Anglais) de la faon suivante : un certain point pendant la
simulation, une rplication est duplique et chaque copie est simule en parallle, ind-
pendamment. Chacune de ces copies peut tre scinde son tour, ce qui produit un arbre
de simulation. Inversement, si un moment donn, plusieurs rplications partagent un
tat identique, les copies peuvent tre tues an dlaguer larbre et dviter du travail in-
utile. Cette technique a par exemple t applique des chanes de Markov pour estimer
la probabilit dvnements rares [20, 38] ainsi qu des cas o des dcisions binaires
pouvaient tre prises des moments alatoires pendant la simulation [42]. Nous allons
lappliquer ici un systme dont ltat est beaucoup trop complexe pour tre analys
comme une chane de Markov et o les dcisions conditionnant la scission ne sont pas
binaires. Ces deux applications sont nouvelles et prometteuses. Nous traiterons de nos
objectifs de recherche par rapport ces mthodes dans la section 7.8 du chapitre suivant.
6.8.1 Priodes avec variance leve
Nous allons supposer que nous simulons le modle sur un horizon ni de dure T
et divis en P priodes principales. La valeur de T et la dure des priodes peuvent
tre alatoires, mais P est xe. Soit alors Y = (Y
1
, . . . ,Y
p
) un vecteur alatoire avec
une composante par priode. Soit
YY
= Cov[Y] la matrice de covariances de Y et soit

2
p
= Var[Y
p
] la variance pour la priode p. Nous allons supposer que la variance dif-
56
fre fortement entre les priodes et que les covariances sont petites. La valeur globale
couvrant tout lhorizon est donne par
Y =
P

p=1
w
p
Y
p
o w
p
est la pondration associe la priode p ; souvent w
p
= 1.
Nous voulons effectuer davantage de rplications dans les priodes p pour lesquelles

2
p
est leve. Pour cela, nous allons scinder et fusionner uniquement en dbut de p-
riodes.
La section suivante propose une mthode pour effectuer la simulation avec scission.
Nous tudions ensuite le comportement de la variance lorsque le nombre de rplications
peut diffrer dune priode lautre. Nous proposons nalement une technique pour xer
le nombre de rplications parallles par priode.
6.8.1.1 Simulation dune rplication avec scission
Soit n = (n
1
, . . . , n
P
) le nombre de rplications parallles pour chacune des P p-
riodes, que nous allons considrer xe pour le moment. Sans scission, nous aurions
n
1
= = n
P
. Soit maintenant G
p
la loi de probabilit caractrisant ltat du systme
au dbut de la priode p. Pour chaque priode p = 1, . . . , P, nous voudrions idalement
gnrer un tat depuis cette distribution G
p
, simuler la priode en partant de cet tat et
rpter ce processus n
p
fois. Malheureusement, nous ne connaissons pas la distribution
G
p
si bien que nous devons lapproximer de la faon suivante.
Supposons que ltat du systme au dbut de la priode 1 est dterministe ou que
nous connaissons G
1
. Ceci est une hypothse raisonnable puisque le systme est souvent
vide au dbut de cette priode. Nous pouvons alors dmarrer n
1
rplications parallles et
indpendantes partir du dbut de la priode 1 et les terminer au dbut de la priode 2.
Cela nous fournit n
1
tats naux qui sont utiliss pour approximer G
2
.
De faon gnrale, la n de la priode p 1, pour p > 1, nous disposons dun
57
chantillon de n
p1
tats naux permettant destimer G
p
. Pour gnrer un tat de dbut
pour la priode p, nous choisissons simplement un tat de n de la priode p1 et le clo-
nons ; ce processus est rpt n
p
fois pour obtenir ltat initial de toutes les rplications
parallles ncessaires. Chaque rplication peut alors tre simule indpendamment. La
mme technique est utilise pour chacune des priodes simuler.
Il existe plusieurs algorithmes pour effectuer le choix des tats initiaux de la p-
riode p > 1 partir des tats naux de la priode p 1. Dans la scission xe, chacune
des n
p1
rplications, pour p > 1, est scinde c
p
fois, do n
p
= c
p
n
p1
si c
p
est un
entier. Si c
p
nest pas entier, nous pouvons, pour chaque rplication parallle, faire c
p
|
copies ainsi quune copie additionnelle avec probabilit c
p
c
p
|. Si 0 <c
p
<1, chaque
rplication parallle est tue avec probabilit c
p
.
Puisque nous avons x n
p
, nous allons plutt utiliser la stratgie effort xe qui
consiste choisir n
p
tats initiaux pour la priode p parmi lensemble des n
p1
tats
naux pour la priode p1. Pour ce faire, nous pouvons utiliser les stratgies daffecta-
tion alatoire ou xe [20]. Laffectation alatoire choisit n
p
tats initiaux avec remplace-
ment parmi les n
p1
tats naux. Laffectation xe choisit quant elle d
p
=n
p
mod n
p1
tats naux parmi les n
p1
tats disponibles, cette fois-ci sans remplacement, et les clone
c
p
+1 fois, o c
p
= n
p
/n
p1
|. Les autres tats sont clons c
p
fois. Laffectation xe
quivaut un chantillonnage strati des tats naux.
6.8.1.2 Variance obtenue
la n du processus de simulation, nous disposons, pour p = 1, . . . , P, de n
p
obser-
vations Y
1,p
, . . . ,Y
n
p
,p
. Si ltat au dbut de la priode 1 est dterministe, les observations
Y
j,1
sont indpendantes entre elles puisquelles partagent ce mme tat. Les observa-
tions Y
j,p
provenant de la scission de la rplication parallle j
/
partagent galement un
mme tat initial et sont donc indpendantes conditionnellement cet tat du dbut de
la priode p, mais sans ce conditionnement, deux observations quelconques sont gn-
ralement dpendantes.
58
Malgr la dpendance des observations, nous pouvons calculer une moyenne

Y
p
=
1
n
p
n
p

j=1
Y
j,p
pour la priode p. Nous pouvons alors obtenir une moyenne globale

Y =
P

p=1
w
p

Y
p
.
La variance de cette moyenne est difcile estimer, car
Var[

Y] = Var

p=1
w
p

Y
p

=
P

p
1
=1
P

p
2
=1
w
p
1
w
p
2
Cov[

Y
p
1
,

Y
p
2
]
o
Cov[

Y
p
1
,

Y
p
2
] = Cov

1
n
p
1
n
p
1

j=1
Y
j,p
1
,
1
n
p
2
n
p
2

j=1
Y
j,p
2

=
1
n
p
1
n
p
2
n
p
1

j
1
=1
n
p
2

j
2
=1
Cov[Y
j
1
,p
1
,Y
j
2
,p
2
]
o Cov[Y
j
1
,p
1
,Y
j
2
,p
2
] est la covariance entre lobservation j
1
recueillie durant la p-
riode p
1
et lobservation j
2
obtenue durant la priode p
2
. Cette dernire somme com-
porte beaucoup trop de termes, surtout si n
p
est grand. Pour estimer Var[

Y], nous pouvons


tenter de ngliger les dpendances entre rplications parallles, cest--dire considrer
que Cov[Y
j
1
,p
1
,Y
j
2
,p
2
] = 0 si j
1
,= j
2
. Ceci est raisonnable seulement si les priodes sont
longues. Supposons dabord que n
p
1
= n
p
2
= n. Si les observations Y
1,p
1
, . . . ,Y
n,p
1
sont
indpendantes et identiquement distribues (i.i.d.) et les observations Y
1,p
2
, . . . ,Y
n,p
2
sont
aussi i.i.d.,
Cov[

Y
p
1
,

Y
p
2
]
1
n
2
n

j=1
Cov[Y
j,p
1
,Y
j,p
2
] =

p
1
,p
2
n
.
Si n
p
1
,= n
p
2
, nous prenons de faon heuristique les n = minn
p
1
, n
p
2
premires ob-
59
servations pour p
1
et p
2
, ce qui semble raisonnable si les observations sont i.i.d. Nous
obtenons ainsi lapproximation
Cov[

Y
p
1
,

Y
p
2
]
1
n
p
1
n
p
2
minn
p
1
,n
p
2

j=1
Cov[Y
j,p
1
,Y
j,p
2
] =

p
1
,p
2
maxn
p
1
, n
p
2

.
Selon cette dernire quation, la mthode rduit la covariance entre deux priodes quel-
conque par un facteur dpendant du nombre de rplications parallles. Si p = p
1
= p
2
,
nous obtenons bel et bien
Var[

Y
p
] =
2
p
/n
p
.
La variance globale, avec cette approximation, est
Var[

Y]
P

p
1
=1
P

p
2
=1
w
p
1
w
p
2

p
1
,p
2
maxn
p
1
, n
p
2

. (6.19)
Une autre faon destimer la variance consiste rpter lexprience complte plu-
sieurs fois. chaque macro-rplication, nous obtenons alors une moyenne

Y
p
locale,
une moyenne

Y globale et les moyennes sont indpendantes entre les macro-rplications.
Nous pouvons alors estimer les variances et les covariances de faon habituelle. Cette
mthode permettra dvaluer si notre approximation prcdente de la variance donne
de bons rsultats. Par contre, pour un mme budget de simulation, cette mthode nous
oblige rduire les valeurs de n
p
, ce qui rduit la prcision de lestimation des lois G
p
.
6.8.1.3 Ajustement optimal des valeurs de n
p
Nous souhaitons minimiser la variance donne par (6.19) sous la contrainte que

P
p=1
n
p
= n. Pour ce faire, nous considrons dabord que n
p
R et nous convertissons
lquation en incorporant la contrainte sous la forme dun Lagrangien
P

p=1
w
2
p

2
p
n
p
+2
P1

p
1
=1
P

p
2
=p
1
+1
w
p
1
w
p
2

p
1
,p
2
maxn
p
1
, n
p
2

n
P

p=1
n
p

. (6.20)
60
Cette fonction est discontinue et non drivable partout o n
p
1
,=n
p
2
pour p
1
,= p
2
. Mme
sans ces discontinuits, cette drive, qui doit tenir compte dun maximum, est trop
complexe pour quil soit possible de trouver une expression analytique pour n
p
.
De faon trs heuristique, nous pouvons par contre ngliger les covariances entre
les priodes pour obtenir une expression pour les n
p
. La fonction minimiser, avec le
Lagrangien, devient
P

p=1
w
2
p

2
p
n
p

n
P

p=1
n
p

. (6.21)
La drive partielle de cette expression par rapport n
p
est

w
2
p

2
p
n
2
p
+.
En mettant ces drives partielles 0, nous obtenons
=
w
2
p

2
p
n
2
p
p = 1, . . . , P,
do
n
p
=
w
p

si bien que n
p
w
p

p
. En drivant (6.21) par rapport et en mettant cette drive 0,
nous obtenons
n =
P

p=1
n
p
.
Alors,
n =
P

p=1
w
p

si bien que
=

=
1
n
P

p=1
w
p

p
.
Ainsi, n
p
= w
p

p
/ , o est une constante de normalisation faisant en sorte que la
61
somme des n
p
donne n. Nous constatons alors que trouver les valeurs optimales de n
p
est trs semblable lallocation optimale dans le cas de la stratication, que nous avons
dcrite la section 6.7.
Puisque nous ne connaissons pas les variances
2
p
en pratique, il nous faut les estimer
par un certain nombre dexpriences pilotes.
6.8.2 Calcul de sous-gradients
Les sous-gradients peuvent tre utiliss en optimisation pour gnrer des coupes dans
le but dapproximer les contraintes de niveaux de service, qui sont non linaires et sto-
chastiques, avec des contraintes linaires [3, 6, 14]. Un sous-gradient peut aussi servir
guider une recherche par voisinage vers un optimum local. Soit (N) (abus de notation)
o N est une matrice de I P avec I correspondant au nombre de paramtres par priode
et P, au nombre de priodes principales formant lhorizon de simulation. Par exemple, I
pourrait correspondre au nombre de groupes dagents dans un centre de contacts.
Le sous-gradient que nous allons considrer se dnit comme une matrice de I P
dont llment S
i,p
est donn par
S
i,p
=
g((N+
i,p
e
i,p
)) g((N))

i,p
.
Ici, e
i,p
est une matrice de I P dont llment (i, p) est 1 et tous les autres lments
sont 0. Dans le cas dun centre de contacts, cela correspond ajouter un agent dans le
groupe i durant la priode p. Dans le cas o llment (i, p) de N est une valeur entire,

i,p
doit tre entier lui aussi. Sinon,
i,p
peut tre prs de 0 an dapproximer la drive
partielle par la mthode des diffrences nies. Souvent,
i,p
= pour un sous-gradient.
La faon classique de calculer un tel sous-gradient est de simuler n rplications pour
(N) et n autres rplications pour chaque valeur de (N+
i,p
e
i,p
), ce qui ncessite
nIP rplications au total. Utiliser les variables alatoires communes permet de rduire
la variance sur les composantes du sous-gradient, mais le temps de calcul nen demeure
62
pas moins trs lev. Nous pouvons alors penser viter de refaire des calculs coteux
en stockant les variables alatoires gnres dans un cache. Bien entendu, un tel cache
peut augmenter la vitesse mais au dtriment de lutilisation de la mmoire.
Idalement, nous aimerions utiliser la scission pour obtenir un estimateur fonctionnel
(N) pour toute valeur de N, mais le domaine de N est habituellement inni. Mme si
chaque lment de N est born par U, cela nous laisse I PU valeurs possibles de N.
Heureusement, il nest habituellement pas ncessaire de disposer de toutes ces valeurs
de (N) ; certaines valeurs particulires comme celles pour les sous-gradients sufsent.
Nous allons donc dvelopper une mthode de scission pour estimer un nombre N
relativement petit de valeurs (N
/
) simultanment, par exemple toutes les IP valeurs de
(N+
i,p
e
i,p
) pour i = 1, . . . , I et p = 1, . . . , P. Notre mthode simule toujours une r-
plication dite mre avec la matrice de paramtres de base xe N. certains moments
pendant la simulation, le comportement du systme dpend de la valeur de N. Un point
de scission est un moment partir duquel le comportement diffre si N est remplac par
N
/
. Par exemple, si N correspond au nombre dagents dans un centre de contacts, les
dcisions prises par le routeur sont affectes par N. Lorsquun point de scission est ren-
contr, modier le nombre dagents dans un groupe pour une priode donne va affecter
comment le prochain contact sera trait par le routeur.
Lorsquun tel point de scission est rencontr, il se cre au plus N rplications lles.
Par contre, une rplication lle, avec paramtres N
/
, est produite seulement si une rpli-
cation avec paramtres N
/
nest pas dj en cours de simulation.
partir du moment o une premire rplication lle est cre, le systme sarrte
intervalles rguliers pour comparer ltat des rplications lles avec la rplication mre.
Si deux tats sont identiques, la rplication lle est tue et la simulation se poursuit. Par
contre, des compteurs statistiques doivent tre maintenus pour chaque rplication lle, y
compris celles qui ont t tues, car en gnral, la valeur de ces compteurs dpend de la
trajectoire suivie par toute la rplication. Tout ce processus de scission et de fusion peut
tre rpt plusieurs fois, indpendamment, an daccrotre la prcision destimation.
63
Dans le cas dun sous-gradient pour un centre de contacts, une dcision peut engen-
drer au plus I rplications lles, cest--dire une par groupe dagents. Il est galement
possible domettre les comparaisons dtats en considrant que la transformation de N
N+
i,p
e
i,p
est locale la priode p. En effet, aucune scission na lieu avant cette priode
tandis que la comparaison de ltat peut ne dbuter qu la priode p +1. la limite,
les rplications lles peuvent tre tues arbitrairement la n de la priode p+q, avec
q > 1, l o le changement de N na quun effet minime.
CHAPITRE 7
OBJECTIFS DE RECHERCHE POUR AMLIORER LEFFICACIT
7.1 Recherche de bonnes variables de contrle
Bien que les variables de contrle, que nous avons dcrites de faon gnrale la sec-
tion 6.1, soient trs connues en simulation, il nest pas toujours simple de les appliquer
pour un modle gnral estimant plusieurs mesures de performance. Dans ce contexte,
deux stratgies sont possibles : appliquer plusieurs variables de contrle tous les esti-
mateurs calculs ou appliquer des variables de contrle diffrentes chaque estimateur.
La premire stratgie favorise la simplicit dimplantation au dtriment du cot de cal-
cul tandis que la seconde, pour laquelle nous avons opt, maximise la rduction de la
variance.
Dans le cas de lestimation du niveau de service, la premire variable de contrle
que nous avons teste dans [36] est le nombre darrives. Pour un estimateur concernant
les contacts de type k arrivs pendant la priode p, nous utilisons le nombre A
k,p
dar-
rives de type k pendant la priode p comme variable de contrle an de maximiser la
corrlation entre la variable de contrle et la mesure teste.
Nous aimerions videmment trouver dautres variables de contrle qui fonctionnent
bien. Par exemple, nous pourrions essayer de remplacer le nombre darrives par une
mesure de dispersion (burstyness en Anglais) telle que la variance du nombre darrives
pendant les priodes. Dans le cas o le modle ne diffre pas trop de celui impos par
une approximation telle quErlang C ou Erlang A, une autre possibilit consiste uti-
liser comme variable de contrle le rsultat de cette approximation. Puisquil faut alors
simuler les deux systmes, la rduction de variance doit tre importante pour compenser
le cot de calcul plus lev.
65
Parfois, une variable alatoire Y peut tre dcompose sous la forme
Y =
P

p=1
w
p
Y
p
.
Par exemple, Y
p
peut tre le nombre de contacts servis pendant une priode p de la
journe et Y, le nombre total de contacts servis. Nous pouvons alors appliquer une va-
riable de contrle A sur Y globalement ou encore appliquer une variable A
p
sur chaque
composante Y
p
. Les variables A et A
p
peuvent par exemple correspondre au nombre total
darrives et au nombre darrives durant la priode p, respectivement. Il est possible que
la corrlation entre Y
p
et A
p
, pour p = 1, . . . , P, soit suprieure la corrlation entre Y et
A si bien quappliquer P variables de contrle au lieu dune seule pourrait intuitivement
rduire davantage la variance. Par contre, minimiser la variance sur chaque composante
sparment, en trouvant une constante
p
optimale pour chaque valeur Y
p
, ne minimise
pas ncessairement la variance sur Y en raison de la corrlation entre les valeurs de Y
p
.
Nous aimerions traiter ce problme en estimant les constantes simultanment pour toutes
les priodes. Le vecteur
1
, . . . ,
P
pourrait tre estim par recherche locale partir du
vecteur obtenu en trouvant la constante optimale pour chaque composante sparment
ou en considrant Y comme une fonction linaire de plusieurs moyennes sur laquelle
nous appliquerions P variables de contrle. Si cette technique ne fonctionne pas quand P
est grand, nous pouvons approximer le vecteur
1
, . . . ,
P
en ngligeant les corrlations
dordre lev. Nous voudrions gnraliser cette ide plusieurs variables de contrle et
une fonction de plusieurs moyennes.
7.2 Application de la stratication aux centres de contacts
Nous voulons appliquer la stratication, dcrite dans un contexte gnral la sec-
tion 6.7, aux centres de contacts. Supposons pour cela que les arrives des contacts
suivent un processus de Poisson doublement stochastique dont le taux darrive au temps t
est B(t), o B est une variable alatoire de moyenne 1 qui reprsente le facteur dacha-
66
landage de la journe. Ce genre de processus darrives est prsent et justi dans [52]
et [5]. Nous pouvons stratier sur B puisquil contribue beaucoup la variance des me-
sures de performance. Nous pouvons utiliser lallocation proportionnelle ou optimale,
car il est facile de xer B avant de dmarrer la simulation. Pour stratier sur le facteur B
qui est une variable alatoire continue, nous utilisons un vecteur U= (U) de dimension 1
et xons B = F
1
B
(U) et p
s
= 1/m. Ici, F
1
B
(U) est la fonction de rpartition inverse de
B.
Dans larticle [36] que nous avons soumis en mars 2006 et qui est une contribution
pour ce projet de doctorat, nous avons appliqu cette technique pour estimer E[S
G
(s, t
1
, t
2
)+
L
G
(s, t
1
, t
2
)], le nombre total de clients ayant attendu moins de s units de temps avant
dtre servis ou dabandonner durant une journe. Pour aller plus loin, nous avons gn-
ralis la stratication pour des fonctions de plusieurs moyennes la section 6.7, ce qui
est une contribution additionnelle pour ce projet. Nous voudrions tester empiriquement
lestimateur g(

X
strat,n,m
) que nous avons propos dans le cas du niveau de service (2.1)
et du temps de rponse (2.4), qui sont des rapports de deux esprances.
Nous allons aussi tenter de construire dautres exemples pour lesquels nous pouvons
stratier sur une autre variable que B. Par exemple, le nombre dagents pourrait tre
une variable alatoire (voir section 4.1) xe pour la journe sur laquelle nous pourrions
stratier. Les variables de stratication choisies doivent rduire la variance efcacement
tout en correspondant des concepts sappliquant aux centres de contacts rels.
7.3 Combinaison des variables de contrle avec la stratication
Combiner la stratication et les variables de contrle nest pas simple, car les constantes
pour les variables de contrle dpendent de la variable sur laquelle nous strations. Pour
estimer une seule esprance avec une seule variable de contrle, la mthode de combinai-
son consiste remplacer chaque observation j = 1, . . . , n
s
de chaque strate s = 1, . . . , m,
note X
s, j
, par X
c,s, j
= X
s, j
b
s, j
(A
s, j
e
s, j
), o A
s, j
est la valeur de la variable de
67
contrle correspondant lobservation X
s, j
. La valeur de e
s, j
peut tre une constante glo-
bale a = E[A], une constante spcique la strate a
s
= E[A
s, j
] ou encore une constante
spcique lobservation a(U
s, j
) = E[A [ B = F
1
B
(U
s, j
)]. Quant b
s, j
, nous pouvons
employer une constante globale , une constante par strate
s
ou encore une constante
(U
s, j
) dpendant de U
s, j
, la valeur utilise pour gnrer B.
Nous avons dcouvert quutiliser une constante diffrente pour chaque strate peut
produire de meilleurs rsultats que xer une constante pour chaque valeur de B. Ce
rsultat est surprenant, car la seconde mthode utilisant davantage dinformations que la
premire devrait intuitivement donner les meilleurs rsultats. Il peut sexpliquer par le
fait que dans la dcomposition Var[X [ S = s] =E[Var[X [ B]] +Var[E[X [ B]], la seconde
mthode ne rduit que lesprance de la variance tandis que la premire rduit les deux
termes de la dcomposition. Ce problme est examin dans [37] que nous avons soumis
en mars 2007 et qui reprsente une contribution lavancement de ce projet.
Nous aimerions trouver un exemple raliste pour lequel il est mieux de faire varier la
constante en fonction de la variable de stratication continue que xer une constante
par strate. Nous allons aussi construire dautres exemples combinant stratication et va-
riables de contrle utilisant dautres variables que le nombre darrives A ainsi que des
fonctions de plusieurs moyennes. Cela va peut-tre mettre au jour de nouveaux pro-
blmes.
7.4 Preuve que les variables alatoires communes rduisent la variance dune dif-
frence dans des contextes spciques
Comme nous lavons vu dans la section 6.2, il est possible dutiliser les variables
alatoires communes pour estimer des drives. Cela revient estimer des diffrences
avec un trs petit. Dans ces cas-l, nous pouvons parfois dmontrer que la variance est
rduite en thorie par un facteur dpendant de . En particulier, dans lexemple utilis
dans [36] et dcrit la section 5.2, nous pouvons multiplier les temps de service par
68
1, o est trs petit. De cette faon, la forme de la rpartition des temps de service
demeure constante, mais la moyenne dpend de . Cela permet danalyser la sensibilit
du systme une variation de temps de service pour par exemple permetter des ges-
tionnaires de centres de contacts de tester si cela vaut la peine de former les agents pour
les rendre plus efcaces et ainsi diminuer les temps de service.
Dans [36], nous avons dmontr que pour cet exemple, la variance de la diffrence
du nombre de contacts ayant attendu moins de s units de temps tait dans O(
1
)
pour > 0. Pour ce mme modle, nous avons aussi russi montrer que la variance de
la diffrence du nombre dabandons tait elle aussi dans O(
1
). Ceci reprsente dj
une contribution dans le cadre de notre projet de thse.
Pour aller plus loin, nous aimerions dmontrer que cette convergence a lieu pour
dautres mesures de performance telles que le temps dattente, le taux doccupation, etc.
Nous aimerions galement prouver cette convergence si les mesures de performance va-
riaient en fonction dautres paramtres tels que le temps de patience ou le paramtre

0
du facteur dachalandage qui suit la loi gamma(
0
,
0
) pour cet exemple. Nous ai-
merions construire ces preuves de convergence avec le moins dhypothses possible au
sujet du centre de contacts et idalement montrer que la variance de la diffrence est
dans O(
2
) dans certains cas puisque cela nous assurerait que la variance sur la drive
ne dpend pas de .
Pour dmonter cette convergence, il existe des thormes qui sappliquent pour X =
(X) et qui sont prsents dans [34]. Soit f (, U) la valeur de X pour et U xs et
= f ( +, U
2
) f (, U
1
). Dabord, si f (, U) est continue en et non drivable (par
rapport ) seulement pour un nombre ni de valeurs de et si la drive est borne
par une variable alatoire dont le second moment est ni [41], alors Var[] = O(
2
).
Sans cette condition, dmontrer la borne devient plus complexe. Selon le thorme 6.5
prsent dans [34], il faut dabord borner la probabilit que
2
excde une variable ala-
toire qui ne dpend pas de . Ensuite, lingalit de Holder permet daboutir une borne
si certains moments dordre suprieur 2 de sont borns. Une borne peut aussi tre
69
dmontre lorsque est born avec probabilit 1.
La plupart des fonctions qui nous intressent dans les centres de contacts sont dis-
continues, car elles rsultent de sommes de fonctions indicatrices. Par exemple, dans
le cas du niveau de service pour un centre de contacts, un seul contact supplmentaire
servi aprs avoir attendu moins de s units de temps peut faire varier la proportion dun
facteur important, surtout si le nombre darrives est petit. Cela empche lapplication
du thorme nonc dans [41] tandis quappliquer le thorme 6.5 de [34] exige de bor-
ner des probabilits, ce qui nest pas toujours facile. Tenter de prouver la rduction de
variance pour des modles de centres de contacts pourrait nous permettre de dvelopper
des corollaires partir du thorme 6.5 qui seraient plus faciles appliquer.
7.5 Application de Monte Carlo conditionnel lestimation de drives
Estimer la drive dune mesure de performance par rapport un paramtre du mo-
dle est souvent difcile dans le cas dun centre de contacts, car comme nous lavons vu
la section prcdente, plusieurs mesures sont discontinues. Dans ce cas, mme avec les
variables alatoires communes, lestimateur nest pas toujours stable. Par contre, dans
certains modles, il est possible dappliquer Monte Carlo conditionnel (voir section 6.4)
pour rendre la fonction qui nous intresse continue, ce qui amliore la prcision.
Par exemple, dans un centre de contacts, au moment o un contact sort du systme,
nous connaissons son temps dattente et savons sil excde ou non le seuil s pour le
niveau de service. Une faon dappliquer la technique Monte Carlo conditionnel serait
de dterminer, larrive du contact, sa probabilit dtre servi en moins de s units de
temps.
Nous allons dabord tenter de calculer ou au moins destimer cette probabilit. Nous
aimerions aussi trouver une expression pour la probabilit dabandon pour un contact
nouvellement arriv. Nous allons ensuite combiner cette application de la technique
Monte Carlo conditionnel avec les variables alatoires communes pour estimer une d-
70
rive par rapport divers paramtres tels que le temps de service, les taux darrive,
etc.
7.6 Application de lchantillonnage stratgique pour estimer la probabilit que
le niveau de service soit infrieur un seuil
Bell Canada doit obtenir un niveau de service mensuel de 80%. Pendant le mois, le
niveau de service quotidien ou horaire peut tre sous le seuil ou au-dessus de ce dernier,
mais si le niveau mensuel est au-dessous du seuil la n du mois, lentreprise doit payer
une importante amende.
Lchantillonnage stratgique (voir section 6.5) est souvent utilis pour estimer la
probabilit dvnements rares. Nous pourrions alors lappliquer pour estimer la pro-
babilit que le niveau de service mensuel soit infrieur 80%. Cela implique dabord
et avant tout de simuler un mois entier. Cela ne pose aucun problme technique au ni-
veau du logiciel, mais il est important de disposer de donnes ralistes pour tout le mois
simul. De plus, sur une priode aussi longue, il est primordial de simuler les recours
quont les gestionnaires en cas de baisse du niveau de service.
Si nous parvenons modliser un mois de faon raliste, il nous reste encore trouver
un changement de densit permettant de rduire la variance. Ce changement pourrait par
exemple augmenter la probabilit que le niveau de service soit infrieur au seuil. Il reste
ensuite dmontrer que ce changement rduit bel et bien la variance.
Si le modle trait correspond une chane de Markov, ce qui est le cas pour une
simulation vnements discrets, il existe un changement de densit permettant dabou-
tir une variance nulle. Par contre, la nouvelle densit est trs complexe. Larticle [19]
expose une technique que nous pourrions tenter dappliquer pour approximer cette fonc-
tion de densit idale. Nous pourrions galement nous inspirer des techniques de preuve
de cet article pour dmontrer que notre nouvelle densit est efcace pour rduire la va-
riance.
71
7.7 Rduction de la dimension effective du problme pour quasi-Monte Carlo
Comme nous lavons mentionn la section 6.6, les mthodes quasi-Monte Carlo
randomises fonctionnent bien en faible dimension, mais elles deviennent moins ef-
caces si la dimension est leve. Pour simuler un centre de contacts, il nous faut malheu-
reusement beaucoup de variables alatoires, do une dimension trs leve.
La premire tape pour rduire la dimension est de nappliquer la mthode que sur
une fraction des variables alatoires utilises pour la simulation, les autres variables tant
gnres de faon alatoire comme avec une simulation classique. Nous devons dans
ce cas dterminer sur quelles variables la mthode sera applique, notre premier choix
tant le nombre darrives. En effet, lorsque ce nombre est x, il reste peu de variabilit
dans le modle. Avec P priodes principales, la dimension du problme est alors P.
Nous allons tenter de rduire cette dimension encore plus en gnrant dabord le nombre
darrives pour toute la journe. Conditionnellement ce nombre, nous gnrerions le
nombre darrives pendant les P/2 premires priodes et les P/2 priodes suivantes.
Ensuite, nous pourrions obtenir le nombre darrives dans les P/4 premires priodes et
ainsi de suite.
7.8 Implantation efcace des techniques de scission
Durant lt 2007, nous avons ajout les lments ncessaires pour effectuer des
rplications en parallle SSJ, la bibliothque de simulation utilise par ContactCenters.
Cela va nous permettre dimplanter efcacement les mthodes de scission prsentes
la section 6.8. Dans le cas de la scission visant rduire la variance dans les priodes
achalandes (voir section 6.8.1), nous allons tester la mthode telle que prsente, avec
une valeur assez leve de n pour bien approximer les distributions G
p
et ainsi rduire
leffet de la dpendance des rplications parallles entre elles.
Nous allons ensuite tester la validit de lapproximation (6.19) de Var[

Y], qui n-
glige la dpendance entre les rplications parallles, en la comparant avec le rsultat si
72
nous rptons lexprience plusieurs fois. Nous allons galement tenter damliorer cette
approximation en utilisant la dcomposition Var[Y
p
] =E[Var[Y
p
[ G
p
]] +Var[E[Y
p
[ G
p
]].
Pour ce qui est de lajustement du nombre de rplications par priode, nous avons
trouv une mthode qui permet dobtenir une approximation ne tenant pas compte de la
corrlation entre les priodes. Mais les vecteurs n produits par cette mthode ne sont pas
optimaux si la corrlation entre les priodes est leve. Nous aimerions dvelopper des
variantes de cette technique qui tiendraient compte, peut-tre partiellement, de cette cor-
rlation. Nous allons tester ces nouvelles techniques et les comparer avec celle que nous
avons propose dans ce document. Dans certains modles, nous pourrions galement es-
timer les n
p
sans exprience pilote, ce qui permettrait de rduire le cot de simulation.
Par exemple, pour estimer le niveau de service dans un centre de contacts, nous pou-
vons utiliser une approximation telle que Erlang A. Le nombre de contacts servis ayant
attendu moins de s units de temps peut ensuite tre considr comme une variable ala-
toire binomiale dont la variance est connue. Cela nous donne une (grossire) estimation
de lcart-type qui peut tre utilise pour trouver des valeurs de n
p
. Nous allons tester de
telles heuristiques et comparer les solutions obtenues avec les solutions optimales.
La scission adaptative est une alternative intressante qui viterait davoir xer
les valeurs de n
p
. Avec cette mthode, une scission a lieu lorsque le systme devient
achaland, par exemple si la taille de la le dpasse un certain seuil, et une rplication
parallle peut tre tue si le systme simul devient presque vide. Les points de scission
et de fusion ne correspondent pas ncessairement, dans ce cas, avec le dbut des priodes.
Pour ce qui est de la scission pour lestimation des sous-gradients, le problme prin-
cipal rside dans la fusion des rplications lles avec la rplication mre. Il faut, pour
dterminer si une fusion est ncessaire, comparer ltat du systme avec plusieurs tats
sauvegards. Ceci peut tre acclr en utilisant une fonction de hachage qui calcule un
nombre partir dun tat, mais le calcul rpt de cette fonction risque de ralentir le sys-
tme. Nous allons dabord tester sil est possible de nous en sortir sans comparer ltat.
Pour ce faire, une rplication lle cre la priode p pourrait tre tue arbitrairement
73
seulement la n de la priode p +q, avec q > 1, o limpact dun changement dun
paramtre concernant la priode p seulement serait minime.
Nous allons galement tenter dutiliser la fusion en ajustant la frquence laquelle
les comparaisons dtats se produisent. Plus la frquence de comparaison est leve, plus
le cot en temps de calcul pour les comparaisons est lev mais plus les fusions se pro-
duisent tt, pargnant des calculs inutiles. Par contre, plus la frquence de comparaison
est basse, plus la fusion risque de se produire de faon tardive, entranant davantage de
calculs inutiles. Nous voudrions galement amliorer la technique pour permettre des
rplications lles de se scinder elles aussi et de fusionner entre elles.
CHAPITRE 8
CONCLUSION
Les centres de contacts contemporains sont des systmes trs complexes si bien que
seule la simulation permet de les modliser avec prcision. Les rsultats obtenus en simu-
lant de tels centres sont souvent contre-intuitifs et trs intressants. Un logiciel exible
pour simuler de tels centres est dj une contribution importante lavancement des
connaissances. Il permettra en effet deffectuer de nombreuses exprimentations pour
tudier divers scnarios dans les centres de contacts et constitue une base fondamentale
pour tout logiciel doptimisation de centres de contacts utilisant la simulation.
Un simulateur gnrique exible permettra dexprimenter de nouveaux lments
avec peu de programmation. Linteraction avec dautres logiciels facilitera lentre des
donnes et lanalyse des rsultats.
Les extensions que nous apporterons notre modle de centre de contacts rendront
ContactCenters plus utile puisquil simulera un modle plus raliste. Cela nous permettra
galement de dcouvrir des aspects de modlisation qui nont jamais t traits aupara-
vant par la simulation et les formules analytiques.
Grce lanalyse de sensibilit dtaille que nous pourrons effectuer laide de notre
logiciel, nous pourrons avoir une meilleure ide des aspects sur lesquels nous devons
nous concentrer pendant la modlisation. Les rsultats de cette analyse et leur interpr-
tation nous permettront de dgager des observations sur le comportement de centres de
contacts.
Pour amliorer lefcacit de ContactCenters, nous sommes appels dvelopper
des techniques de rduction de la variance. Nous esprons que plusieurs des techniques
que nous dvelopperons au cours de ce projet pourront tre rutilises pour dautres
systmes que les centres de contacts.
BIBLIOGRAPHIE
[1] Altova. XMLSpy XML editor for modeling, editing, transforming, & debug-
ging XML technologies, 2007. Voir http://www.altova.com/products/
xmlspy/xml_editor.html.
[2] AspectJ. The AspectJ project at Eclipse.org, 2006. Disponible sur http://www.
aspectj.org.
[3] J. Atlason, M. A. Epelman et S. G. Henderson. Call center stafng with simulation
and cutting plane methods. Annals of Operations Research, 127:333358, 2004.
[4] A. N. Avramidis, W. Chan et P. LEcuyer. Stafng multi-skill call centers via search
methods and a performance approximation. Soumis, rvis en mai 2007, 2006.
[5] A. N. Avramidis, A. Deslauriers et P. LEcuyer. Modeling daily arrivals to a tele-
phone call center. Management Science, 50(7):896908, 2004.
[6] A. N. Avramidis, M. Gendreau, P. LEcuyer et O. Pisacane. Simulation-based op-
timization of agent scheduling in multiskill call centers. Dans Proceedings of the
2007 Industrial Simulation Conference. Eurosis, 2007.
[7] A. N. Avramidis et P. LEcuyer. Modeling and simulation of call centers. Dans Pro-
ceedings of the 2005 Winter Simulation Conference, pages 144152. IEEE Press,
2005.
[8] A. N. Avramidis et J. R. Wilson. Integrated variance reduction strategies for simu-
lation. Operations Research, 44:327346, 1996.
[9] T. E. Booth et S. P. Pederson. Unbiased combinations of nonanalog Monte Carlo
techniques and fair games. Nuclear Science and Engineering, 110:254261, 1992.
[10] P. Bratley, B. L. Fox et L. E. Schrage. A Guide to Simulation. Springer-Verlag,
New York, seconde dition, 1987.
76
[11] E. Buist. Conception et implantation dune bibliothque pour la simulation de
centres de contacts. Mmoire de matrise, Dpartement dInformatique et de Re-
cherche Oprationnelle, Universit de Montral, aot 2005.
[12] E. Buist et P. LEcuyer. ContactCenters : A Java Library for Simulating
Contact Centers, 2005. Manuel de lutilisateur disponible sur http://www.
ericbuist.com/contactcenters.
[13] E. Buist et P. LEcuyer. A Java library for simulating contact centers. Dans Pro-
ceedings of the 2005 Winter Simulation Conference, pages 556565. IEEE Press,
2005.
[14] M. T. Cezik et P. LEcuyer. Stafng multiskill call centers via linear programming
and simulation. Management Science, 53, 2007. paratre.
[15] J. Clark. XSL transformations (XSLT), novembre 1999. Voir http://www.w3.
org/TR/xslt.
[16] J. Clark et S. DeRose. XML path language (XPath), novembre 1999. Voir http:
//www.w3.org/TR/xpath.
[17] W. G. Cochran. Sampling Techniques. John Wiley and Sons, New York, seconde
dition, 1977.
[18] CRTC. Final standards for quality of service indicators for use in telephone com-
pany regulation and other related matters, 2000. Canadian Radio-Television and
Telecommunications Commission, Dcision CRTC 2000-24. Voir http://www.
crtc.gc.ca/archive/ENG/Decisions/2000/DT2000-24.htm.
[19] P.-T. de Boer, P. LEcuyer, G. Rubino et B. Tufn. Estimating the probability of a
rare event over a nite horizon. Dans Proceedings of the 2007 Winter Simulation
Conference. IEEE Press, 2007. paratre.
77
[20] V. Demers, P. LEcuyer et B. Tufn. A combination of randomized quasi-monte
carlo with splitting for rare-event simulation. Dans Proceedings of the 2005 Euro-
pean Simulation and Modeling Conference, pages 2532, Ghent, Belgium, 2005.
EUROSIS.
[21] A. Deslauriers. Modlisation et simulation dun centre dappels tlphoniques dans
un environnement mixte. Mmoire de matrise, Dpartement dInformatique et de
Recherche Oprationnelle, Universit de Montral, fvrier 2003.
[22] G. S. Fishman. Monte Carlo : Concepts, Algorithms, and Applications. Springer
Series in Operations Research. Springer-Verlag, New York, 1996.
[23] E. Gamma, R. Helm, R. Johnson et J. Vlissides. Design Patterns : Elements of
Reusable Object-Oriented Software. Addison-Wesley, Reading, Mass., seconde
dition, 1998.
[24] N. Gans, G. Koole et A. Mandelbaum. Telephone call centers : Tutorial, review,
and research prospects. Manufacturing and Service Operations Management, 5:
79141, 2003.
[25] P. W. Glynn. Efciency improvement techniques. Annals of Operations Research,
53:175197, 1994.
[26] P. W. Glynn et R. Szechtman. Some new perspectives on the method of control
variates. Dans K.-T. Fang, F. J. Hickernell et H. Niederreiter, diteurs, Monte
Carlo and Quasi-Monte Carlo Methods 2000, pages 2749, Berlin, 2002. Springer-
Verlag.
[27] P. W. Glynn et W. Whitt. Indirect estimation via L = w. Operations Research,
37:82103, 1989.
78
[28] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M. Loing-
tier et J. Irwin. Aspect-oriented programming. Dans Proceedings of ECCOP 97,
juin 1997.
[29] S. S. Lavenberg et P. D. Welch. A perspective on the use of control variables to
increase the efciency of Monte Carlo simulations. Management Science, 27:322
335, 1981.
[30] A. M. Law et W. D. Kelton. Simulation Modeling and Analysis. McGraw-Hill,
New York, troisime dition, 2000.
[31] P. LEcuyer. Polynomial integration lattices. Dans H. Niederreiter, diteur, Monte
Carlo and Quasi-Monte Carlo Methods 2002, pages 7398, Berlin, 2004. Springer-
Verlag.
[32] P. LEcuyer. SSJ : A Java Library for Stochastic Simulation, 2004. Manual de
lutilisateur, disponible sur http://www.iro.umontreal.ca/~lecuyer.
[33] P. LEcuyer. Modeling and optimization problems in contact centers. Dans Procee-
dings of the Third International Conference on Quantitative Evaluation of Systems
(QEST2006), pages 145154, University of California, Riversdale, 2006. IEEE
Computing Society.
[34] P. LEcuyer. Stochastic Simulation. 2006. Notes pour un cours gradu en simula-
tion.
[35] P. LEcuyer et E. Buist. Simulation in Java with SSJ. Dans Proceedings of the 2005
Winter Simulation Conference, pages 611620. IEEE Press, 2005.
[36] P. LEcuyer et E. Buist. Variance reduction in the simulation of call centers. Dans
Proceedings of the 2006 Winter Simulation Conference, pages 604613. IEEE
Press, 2006.
79
[37] P. LEcuyer et E. Buist. On the interaction between stratication and control va-
riates, with illustrations in a call center simulation. Soumis, 2007.
[38] P. LEcuyer, V. Demers et B. Tufn. Splitting for rare-event simulation. Dans Pro-
ceedings of the 2006 Winter Simulation Conference, pages 137148. IEEE Press,
2006.
[39] P. LEcuyer et C. Lemieux. Variance reduction via lattice rules. Management
Science, 46(9):12141235, 2000.
[40] P. LEcuyer, L. Meliani et J. Vaucher. SSJ : A framework for stochastic simulation
in Java. Dans E. Ycesan, C.-H. Chen, J. L. Snowdon et J. M. Charnes, diteurs,
Proceedings of the 2002 Winter Simulation Conference, pages 234242, 2002.
[41] P. LEcuyer et G. Perron. On the convergence rates of IPA and FDC derivative
estimators. Operations Research, 42(4):643656, 1994.
[42] P. LEcuyer et F. Vzquez-Abad. Functional estimation with respect to a threshold
parameter via dynamic split-and-merge. Discrete Event Dynamic Systems : Theory
and Applications, 7(1):6992, 1997.
[43] SyncRO Soft Ltd. <oXygen/> XML editor & XSLT debugger, 2007. Voir http:
//www.oxygenxml.com.
[44] V. Mehrotra et J. Fama. Call center simulation modeling : Methods, challenges,
and opportunities. Dans Proceedings of the 2003 Winter Simulation Conference,
pages 135143. IEEE Press, 2003.
[45] B. L. Nelson. Control-variate remedies. Operations Research, 38:974992, 1990.
[46] NovaSim. ccProphet simulate your call centers performance, 2003. Voir
http://www.novasim.com/CCProphet/.
80
[47] Rockwell Automation, Inc. Arena simulation, 2005. Voir http://www.
arenasimulation.com.
[48] R. J. Sering. Approximation Theorems for Mathematical Statistics. Wiley, New
York, 1980.
[49] C. M. Sperberg-McQueen et H. Thompson. W3C XML Schema, avril 2000. Voir
http://www.w3.org/XML/Schema.
[50] Sun Microsystems, Inc. The Java Architecture for XML Binding (JAXB) 2.1, d-
cembre 2006. Disponible sur http://jcp.org/en/jsr/detail?id=222.
[51] R. B. Wallace et W. Whitt. A stafng algorithm for call centers with skill-based
routing. Manufacturing and Service Operations Management, 7(4):276294, 2005.
[52] W. Whitt. Dynamic stafng in a telephone call center aiming to immediately ans-
wer all calls. Operations Research Letters, 24:205212, 1999.
[53] Wikipedia. Virtual queue, avril 2007. Voir http://en.wikipedia.org/
wiki/Virtual_queue.
[54] F. Yergeau, T. Bray, J. Paoli, C. M. Sperberg-McQueen et E. Maler. Extensible
Markup Language (XML) 1.0. W3C Recommendation, troisime dition, fvrier
2004. Aussi disponible sur http://www.w3.org/TR/REC-xml.

Você também pode gostar