ContactCenters
V. 0.9.9.

Package umontreal.iro.lecuyer.contactcenters.msk

Provides a generic simulator for multi-skill and blend call centers.

See:
          Description

Class Summary
AbstractCallCenterSim  
CallCenterParamsConverter  
CallCenterSim Encapsulates all the components of the blend and multi-skill call center simulator, and provides methods to perform simulations and obtain results.
CallCenterSimRQMC Extends the CallCenterSim class for randomized Quasi-Monte Carlo simulation.
CallCenterSimStrat Defines a call center simulator using stratified sampling.
CallCenterSimUtil  
CallTracer Observer sending any notified call to a contact trace facility.
Messages  
OldCallCenterParamsConverter  
ParameterEstimator Estimates the parameters of a call center model.
PeriodCovarianceEstimator  
 

Package umontreal.iro.lecuyer.contactcenters.msk Description

Provides a generic simulator for multi-skill and blend call centers. ContactCenters can be used directly to construct simulators for arbitrarily complex contact centers. See the examples.pdf document for examples of this. However, this requires programming and the resulting programs can become complex. This package provides a generic simulator adapted for call centers with multiple call types and agent groups, and using XML configuration files. It can be used for many simulation scenarios, and estimates a large set of performance measures.

This reference documentation covers all classes and methods in the simulator. It is targeted at developers who are using the tool in a program, or extending it. See the guidemsk.pdf document for a description of the model implemented by this simulator, and examples showing how to configure and use the tool from a user perspective.

The simulator implemented in this package is split into several components representing the model, the simulation logic, and the system managing statistics. The model regroups every entity of the call center, e.g., calls, agent groups, waiting queues, routers, etc. It also specifies how random numbers are generated throughout the simulation.

The simulation logic contains the necessary instructions to run the model in order to generate results. It defines the concept of a step and assigns statistical periods to calls. For a simulation with independent replications, each step corresponds to a replication while the statistical period is usually the period of arrival. For a simulation of a single period as it was infinite in the model, steps correspond to time intervals of a single long replication, and the statistical period is always 0.

The system managing statistics, on the other hand, is made of observers, and matrices of counters. Observers are registered to collect information about every call leaving the system, and the evolution of agent groups and waiting queues. All this information is used to update matrices of counters whose rows usually correspond to call types or agent groups, and columns, to periods. At the end of each simulation step, the values of the counters are added to matching matrices of statistical collectors. After the simulation is done, matrices of averages, sample variances, and other statistics can be obtained.

Figure 2 shows a UML diagram of the simulator's main classes. The model is implemented by classes in package umontreal.iro.lecuyer.contactcenters.msk.model, CallCenter being the main class. The simulation logics are implemented in package umontreal.iro.lecuyer.contactcenters.msk.simlogic with the SimLogic interface representing any simulation logic. The management of statistics is in package umontreal.iro.lecuyer.contactcenters.msk.stat. Matrices of counters are encapsulated in an object of CallCenterMeasureManager, while matrices of statistical probes are stored in an instance of a class implementing the CallCenterStatProbes. See the documentation of these packages for more information about these components and the classes.

Figure 2: UML diagram of the generic blend/multi-skill simulator
\begin{figure}\begin{center}
\begin{tikzpicture}[shape=rectangle,fill=gray!20,>=...
...(BatchMeansLogic) -- (SimLogic);
\end{tikzpicture}\end{center}\par\end{figure}

The simulator provides three packages in addition to the packages providing the implementation for the main components. The package umontreal.iro.lecuyer.contactcenters.msk.cv provides an implementation of control variates to reduce the variance in simulations. The package umontreal.iro.lecuyer.contactcenters.msk.spi provides interfaces used when integrating a custom arrival process, routing or dialing policy into the simulator. The package umontreal.iro.lecuyer.contactcenters.msk.conditions implement conditions that can be used by some routing and dialing policies.

The class CallCenterSim represents the simulator as a whole, and implements the interface ContactCenterSim, which provides methods to perform simulations and obtain statistics in a standardized way. It provides a main method that can be used to call the simulator from the command line. The simulator can also be called from Java code.


ContactCenters
V. 0.9.9.

To submit a bug or ask questions, send an e-mail to Richard Simard.