ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.msk
Class CallCenterSim

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterInfo
      extended by umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterEval
          extended by umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterSim
              extended by umontreal.iro.lecuyer.contactcenters.msk.AbstractCallCenterSim
                  extended by umontreal.iro.lecuyer.contactcenters.msk.CallCenterSim
All Implemented Interfaces:
ContactCenterEval, ContactCenterInfo, ContactCenterSim, ContactCenterSimWithObservations, ObservableContactCenterSim

public class CallCenterSim
extends AbstractCallCenterSim
implements ContactCenterSimWithObservations

Encapsulates all the components of the blend and multi-skill call center simulator, and provides methods to perform simulations and obtain results. This class uses the CallCenter class to implement a model, and a SimLogic implementation for the simulation logic. It also uses an implementation of CallCenterStatProbes for statistical collecting.

An object of this class is constructed using parameter objects usually read from XML files. The parameters of the model are stored into an instance of CallCenterParams, while the parameters of the experiment are encapsulated into an object of class SimParams. The classes CallCenterParamsConverter and SimParamsConverter can be used to read parameters from XML files.

After the simulator is constructed, it can be accessed in a standardized way through the ContactCenterEval interface, which defines methods to obtain global information about the call center, perform simulations, and retrieve matrices of statistics.

The CallCenterSim class also provides a main method accepting as arguments the name of the parameter files, performing a simulation, and showing results. This permits the simulator to be launched from the command-line.


Field Summary
 
Fields inherited from class umontreal.iro.lecuyer.contactcenters.msk.AbstractCallCenterSim
logger
 
Fields inherited from class umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterSim
autoResetStartStream, seqSampEachEval
 
Constructor Summary
CallCenterSim(CallCenterParams ccParams, SimParams simParams)
          Constructs a new call center simulator using call center parameters ccParams, and simulation parameters simParams.
CallCenterSim(CallCenterParams ccParams, SimParams simParams, RandomStreams streams)
          Constructs a new call center simulator using call center parameters ccParams, simulation parameters simParams, and random streams streams.
CallCenterSim(Simulator sim, CallCenterParams ccParams, SimParams simParams)
          Similar to CallCenterSim(CallCenterParams,SimParams), with the given simulator sim.
CallCenterSim(Simulator sim, CallCenterParams ccParams, SimParams simParams, RandomStreams streams)
          Similar to CallCenterSim(CallCenterParams,SimParams,RandomStreams), with the given simulator sim.
 
Method Summary
 double[] getObs(PerformanceMeasureType pm, int row, int column)
          Returns an array containing the observations for a performance measure of type pm, identified by row row and column column.
static void main(String[] args)
          Main method allowing to run this class from the command-line.
 int numberObs(PerformanceMeasureType pm, int row, int column)
          Returns the number of observations available for a performance measure of type pm, identified by row row and column column.
static CallCenterParams readCallCenterParams(String ccParamsFn)
           
static SimParams readSimParams(String simParamsFn)
           
static void write(CallCenterParams ccParams, String outputFn)
           
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.msk.AbstractCallCenterSim
abort, addContactCenterSimListener, applyControlVariables, clearContactCenterSimListeners, createControlVariables, createModel, createSimLogic, disableControlVariables, enableControlVariables, eval, finishEvaluation, formatReport, getAgentGroupName, getAgentGroupProperties, getAgentGroupSegmentName, getAgentGroupSegmentProperties, getCallCenter, getCallCenterStatProbes, getCompletedSteps, getConfidenceInterval, getConfidenceLevel, getContactCenterSimListeners, getContactTypeName, getContactTypeProperties, getContactTypeSegmentName, getContactTypeSegmentProperties, getCpuTime, getDefaultUnit, getEvalOption, getEvalOptions, getInContactTypeSegmentName, getInContactTypeSegmentProperties, getMainPeriodName, getMainPeriodSegmentName, getMatrixOfAWTName, getMatrixOfFunctionOfMultipleMeansTallies, getMatrixOfStatProbes, getMatrixOfTallies, getMax, getMin, getModel, getNumAgentGroups, getNumAgentGroupSegments, getNumContactTypes, getNumContactTypeSegments, getNumInContactTypes, getNumInContactTypeSegments, getNumMainPeriods, getNumMainPeriodSegments, getNumMatricesOfAWT, getNumOutContactTypes, getNumOutContactTypeSegments, getNumWaitingQueues, getNumWaitingQueueSegments, getOutContactTypeSegmentName, getOutContactTypeSegmentProperties, getPerformanceMeasure, getPerformanceMeasures, getReportParams, getRequiredNewSteps, getSimLogic, getSimStoppingCondition, getVariance, getWaitingQueueName, getWaitingQueueProperties, getWaitingQueueSegmentName, getWaitingQueueSegmentProperties, hasEvalOption, init, initControlVariableSupport, initTimer, initTrace, isAborted, isUsingControlVariables, isVerbose, newSeeds, prepareEvaluation, removeContactCenterSimListener, reset, reset, resetNextSubstream, resetStartStream, resetStartSubstream, seemsUnstable, setConfidenceLevel, setEvalOption, setReportParams, setSimStoppingCondition, setVerbose
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterSim
formatStatistics, formatStatisticsExcel, formatStatisticsLaTeX, getAutoResetStartStream, getConfidenceInterval, getOneSimDone, getSeqSampEachEval, hasPerformanceMeasure, setAutoResetStartStream, setOneSimDone, setSeqSampEachEval
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterEval
getEvalInfo
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterInfo
getNumAgentGroupsWithSegments, getNumContactTypesWithSegments, getNumInContactTypesWithSegments, getNumMainPeriodsWithSegments, getNumOutContactTypesWithSegments, getNumWaitingQueuesWithSegments
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface umontreal.iro.lecuyer.contactcenters.app.ContactCenterSim
eval, getAutoResetStartStream, getCompletedSteps, getConfidenceInterval, getConfidenceLevel, getMatrixOfFunctionOfMultipleMeansTallies, getMatrixOfStatProbes, getMatrixOfTallies, getMax, getMin, getSeqSampEachEval, getVariance, newSeeds, resetNextSubstream, resetStartStream, resetStartSubstream, setAutoResetStartStream, setConfidenceLevel, setSeqSampEachEval
 
Methods inherited from interface umontreal.iro.lecuyer.contactcenters.app.ContactCenterEval
formatStatistics, formatStatisticsExcel, formatStatisticsLaTeX, getEvalInfo, getEvalOption, getEvalOptions, getPerformanceMeasure, getPerformanceMeasures, getReportParams, hasEvalOption, hasPerformanceMeasure, isVerbose, reset, seemsUnstable, setEvalOption, setReportParams, setVerbose
 
Methods inherited from interface umontreal.iro.lecuyer.contactcenters.app.ContactCenterInfo
getAgentGroupName, getAgentGroupProperties, getAgentGroupSegmentName, getAgentGroupSegmentProperties, getContactTypeName, getContactTypeProperties, getContactTypeSegmentName, getContactTypeSegmentProperties, getDefaultUnit, getInContactTypeSegmentName, getInContactTypeSegmentProperties, getMainPeriodName, getMainPeriodSegmentName, getMatrixOfAWTName, getNumAgentGroups, getNumAgentGroupSegments, getNumAgentGroupsWithSegments, getNumContactTypes, getNumContactTypeSegments, getNumContactTypesWithSegments, getNumInContactTypes, getNumInContactTypeSegments, getNumInContactTypesWithSegments, getNumMainPeriods, getNumMainPeriodSegments, getNumMainPeriodsWithSegments, getNumMatricesOfAWT, getNumOutContactTypes, getNumOutContactTypeSegments, getNumOutContactTypesWithSegments, getNumWaitingQueues, getNumWaitingQueueSegments, getNumWaitingQueuesWithSegments, getOutContactTypeSegmentName, getOutContactTypeSegmentProperties, getWaitingQueueName, getWaitingQueueProperties, getWaitingQueueSegmentName, getWaitingQueueSegmentProperties
 

Constructor Detail

CallCenterSim

public CallCenterSim(CallCenterParams ccParams,
                     SimParams simParams)
              throws CallCenterCreationException
Constructs a new call center simulator using call center parameters ccParams, and simulation parameters simParams.

This calls AbstractCallCenterSim.createModel(umontreal.iro.lecuyer.simevents.Simulator, umontreal.iro.lecuyer.contactcenters.msk.params.CallCenterParams, umontreal.iro.lecuyer.contactcenters.msk.model.RandomStreams) to create the model, AbstractCallCenterSim.createSimLogic(umontreal.iro.lecuyer.contactcenters.msk.model.CallCenter, umontreal.iro.lecuyer.contactcenters.app.params.SimParams) to create the simulation logic.

Parameters:
ccParams - the call center parameters.
simParams - the simulation parameters.
Throws:
CallCenterCreationException

CallCenterSim

public CallCenterSim(CallCenterParams ccParams,
                     SimParams simParams,
                     RandomStreams streams)
              throws CallCenterCreationException
Constructs a new call center simulator using call center parameters ccParams, simulation parameters simParams, and random streams streams.

This calls AbstractCallCenterSim.createModel(umontreal.iro.lecuyer.simevents.Simulator, umontreal.iro.lecuyer.contactcenters.msk.params.CallCenterParams, umontreal.iro.lecuyer.contactcenters.msk.model.RandomStreams) to create the model, AbstractCallCenterSim.createSimLogic(umontreal.iro.lecuyer.contactcenters.msk.model.CallCenter, umontreal.iro.lecuyer.contactcenters.app.params.SimParams) to create the simulation logic.

Parameters:
ccParams - the call center parameters.
simParams - the simulation parameters.
streams - the random streams used by the simulator.
Throws:
CallCenterCreationException

CallCenterSim

public CallCenterSim(Simulator sim,
                     CallCenterParams ccParams,
                     SimParams simParams,
                     RandomStreams streams)
              throws CallCenterCreationException
Similar to CallCenterSim(CallCenterParams,SimParams,RandomStreams), with the given simulator sim.

Throws:
CallCenterCreationException

CallCenterSim

public CallCenterSim(Simulator sim,
                     CallCenterParams ccParams,
                     SimParams simParams)
              throws CallCenterCreationException
Similar to CallCenterSim(CallCenterParams,SimParams), with the given simulator sim.

Throws:
CallCenterCreationException
Method Detail

getObs

public double[] getObs(PerformanceMeasureType pm,
                       int row,
                       int column)
Description copied from interface: ContactCenterSimWithObservations
Returns an array containing the observations for a performance measure of type pm, identified by row row and column column. If the observations are not available for the given performance measure, this method throws a NoSuchElementException.

Specified by:
getObs in interface ContactCenterSimWithObservations
Parameters:
pm - the type of performance measure.
row - the row of the performance measure.
column - the column of the performance measure.
Returns:
the array of observations.

numberObs

public int numberObs(PerformanceMeasureType pm,
                     int row,
                     int column)
Description copied from interface: ContactCenterSimWithObservations
Returns the number of observations available for a performance measure of type pm, identified by row row and column column. If the number of observations is not available for the given performance measure, this method throws a NoSuchElementException.

Specified by:
numberObs in interface ContactCenterSimWithObservations
Parameters:
pm - the type of performance measure.
row - the row of the performance measure.
column - the column of the performance measure.
Returns:
the number of observations.

readCallCenterParams

public static CallCenterParams readCallCenterParams(String ccParamsFn)

readSimParams

public static SimParams readSimParams(String simParamsFn)

write

public static void write(CallCenterParams ccParams,
                         String outputFn)

main

public static void main(String[] args)
Main method allowing to run this class from the command-line. The needed command-line arguments are the name of an XML file containing the non-stationary simulation parameters (root element mskccparams), and the name of a second XML file containing the simulation parameters (root elements batchsimparams or repsimparams).

Parameters:
args - the command-line arguments.

ContactCenters
V. 0.9.9.

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