ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.app
Interface ContactCenterSim

All Superinterfaces:
ContactCenterEval, ContactCenterInfo
All Known Subinterfaces:
ContactCenterSimWithObservations, ContactCenterSimWithObservationSets, ObservableContactCenterSim
All Known Implementing Classes:
AbstractCallCenterCTMCSim, AbstractCallCenterCTMCSimMP, AbstractCallCenterSim, AbstractContactCenterSim, BasicCallCenterCTMCSim, BasicCallCenterCTMCSimMP, CallCenterCTMCSimSplit, CallCenterSim, CallCenterSimRQMC, CallCenterSimStrat, ContactCenterSimResults, IntMCallCenterCTMCSim, MBatchMeansSim

public interface ContactCenterSim
extends ContactCenterEval

Represents a simulation-based evaluation system adapted for contact centers. Simulation uses some RandomStream instances to generate random values, schedules events, and generates samples of observations which are used to estimate performance measures. When simulation is used, the ContactCenterEval.getPerformanceMeasure(umontreal.iro.lecuyer.contactcenters.app.PerformanceMeasureType) method, defined in ContactCenterEval, returns matrices of averages. This interface extends the ContactCenterEval interface to provide methods for obtaining matrices of sample variances, minima, maxima, and confidence intervals. If, for a group of measures m, ContactCenterEval.getPerformanceMeasure(umontreal.iro.lecuyer.contactcenters.app.PerformanceMeasureType) returns an a×b matrix, each of the methods of this interface must return a matrix with the same dimensions if called with m.


Method Summary
 void eval()
          Performs a simulation to evaluate the performance measures.
 boolean getAutoResetStartStream()
          Determines if the random streams are automatically reset at the end of each evaluation.
 int getCompletedSteps()
          Returns the number of completed steps for the simulation.
 DoubleMatrix2D[] getConfidenceInterval(PerformanceMeasureType m, double level)
          Returns confidence intervals on the means or ratios of means, for the group of performance measures m, with confidence level level.
 double getConfidenceLevel()
          Returns the confidence level of the intervals output by ContactCenterEval.formatStatistics().
 MatrixOfFunctionOfMultipleMeansTallies<?> getMatrixOfFunctionOfMultipleMeansTallies(PerformanceMeasureType m)
          Returns the matrix of function of multiple means tallies used to manage observations for estimating the performance measures in group m.
 MatrixOfStatProbes<?> getMatrixOfStatProbes(PerformanceMeasureType m)
          Returns the matrix of statistical probes used to manage observations for estimating the performance measures in group m.
 MatrixOfTallies<?> getMatrixOfTallies(PerformanceMeasureType m)
          Returns the matrix of tallies used to manage observations for estimating the performance measures in group m.
 DoubleMatrix2D getMax(PerformanceMeasureType m)
          Returns a matrix of maximum values for the performance measure m.
 DoubleMatrix2D getMin(PerformanceMeasureType m)
          Returns a matrix of minimum values for the group of performance measures m.
 boolean getSeqSampEachEval()
          Determines if sequential sampling is done upon each call on eval().
 DoubleMatrix2D getVariance(PerformanceMeasureType m)
          Returns a matrix of sample variances for the group of performance measures m.
 void newSeeds()
          Changes the seeds of the random number generators used during the simulation.
 void resetNextSubstream()
          Calls RandomStream.resetNextSubstream() for all random streams used by the simulator.
 void resetStartStream()
          Calls RandomStream.resetStartStream() for all random streams used by the simulator.
 void resetStartSubstream()
          Calls RandomStream.resetStartSubstream() for all random streams used by the simulator.
 void setAutoResetStartStream(boolean r)
          Sets the automatic reset start stream indicator to r.
 void setConfidenceLevel(double level)
          Sets the level of confidence for the intervals output by ContactCenterEval.formatStatistics() to level.
 void setSeqSampEachEval(boolean seqSamp)
          Sets the indicator for sequential sampling on each eval to seqSamp.
 
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
 

Method Detail

eval

void eval()
Performs a simulation to evaluate the performance measures. Unless getAutoResetStartStream() returns false, if eval() is called multiple times without changing system parameters, ContactCenterEval.getPerformanceMeasure(PerformanceMeasureType) should return the same matrices of estimates after each call. This requires that random streams used for simulation be reset after each evaluation. Thus, before returning, this method should use RandomStream.resetStartSubstream() on all random streams in order to reset the seeds. It is also recommended to always use RandomStream.resetNextSubstream() for all random streams after any replication to improve synchronization of random streams.

Specified by:
eval in interface ContactCenterEval

newSeeds

void newSeeds()
Changes the seeds of the random number generators used during the simulation. When calling eval() multiple times to perform a simulation, the results should be identical for the same values of parameters. If one requires the simulation to be performed with new random seeds, the random streams need to be reset. This can be done by calling RandomStream.resetNextSubstream() method on each RandomStream object associated with the simulator, or by creating new random streams.


getVariance

DoubleMatrix2D getVariance(PerformanceMeasureType m)
Returns a matrix of sample variances for the group of performance measures m. If the group of performance measures is not supported, or the sample variance cannot be computed, this method throws a NoSuchElementException.

Parameters:
m - the queried group of performance measures.
Returns:
the matrix of sample variances.
Throws:
NoSuchElementException - if the given group of performance measures is not supported, or the sample variance cannot be computed.
IllegalStateException - if the values are not available.
NullPointerException - if m is null.

getMin

DoubleMatrix2D getMin(PerformanceMeasureType m)
Returns a matrix of minimum values for the group of performance measures m. If the group of measures defines no minimum (e.g., a ratio of expectations), or it is not supported, this method throws NoSuchElementException.

Parameters:
m - the queried group of performance measures.
Returns:
the matrix of minima.
Throws:
NoSuchElementException - if the given group of performance measures is not supported, or the minima cannot be computed.
IllegalStateException - if the values are not available.
NullPointerException - if m is null.

getMax

DoubleMatrix2D getMax(PerformanceMeasureType m)
Returns a matrix of maximum values for the performance measure m. If the group of measures defines no maximum (e.g., a ratio of expectations), or if it is not supported, this method throws NoSuchElementException.

Parameters:
m - the queried group of performance measures.
Returns:
the matrix of maxima.
Throws:
NoSuchElementException - if the given group of performance measures is not supported, or the maxima cannot be computed.
IllegalStateException - if the values are not available.
NullPointerException - if m is null.

getConfidenceInterval

DoubleMatrix2D[] getConfidenceInterval(PerformanceMeasureType m,
                                       double level)
Returns confidence intervals on the means or ratios of means, for the group of performance measures m, with confidence level level. This must return an array of two matrices, the first containing the lower bound values and the second, the upper bound values. For an unbounded confidence interval, one of the two matrices can be null. For each element of the performance measure matrix, a confidence interval whose desired coverage probability is level must be computed, independently of the other elements in the matrix. As a result, the coverage probability of all computed intervals will be smaller than level. The way each interval is computed is implementation-specific.

Parameters:
m - the queried group of performance measures.
level - desired probability that, for a given performance measure, the (random) confidence interval covers the true mean (a constant).
Returns:
an array of two matrices containing lower and upper bounds of the confidence intervals.
Throws:
NoSuchElementException - if the given group of performance measures is not supported or the confidence interval cannot be computed.
IllegalStateException - if the values are not available.
NullPointerException - if m is null.

getConfidenceLevel

double getConfidenceLevel()
Returns the confidence level of the intervals output by ContactCenterEval.formatStatistics(). The initial confidence level is implementation-specific, and usually set by a constructor.

Returns:
the level of confidence for the intervals.

setConfidenceLevel

void setConfidenceLevel(double level)
Sets the level of confidence for the intervals output by ContactCenterEval.formatStatistics() to level.

Parameters:
level - the level of confidence of the intervals.
Throws:
IllegalArgumentException - if level is smaller than or equal to 0, or greater than or equal to 1.

getMatrixOfStatProbes

MatrixOfStatProbes<?> getMatrixOfStatProbes(PerformanceMeasureType m)
Returns the matrix of statistical probes used to manage observations for estimating the performance measures in group m. The particular subclass of the statistical probe matrix depends on the performance measure type only. For averages, this method must return a MatrixOfTallies object. For functions of multiple averages, e.g., ratios of averages, this must return a MatrixOfFunctionOfMultipleMeansTallies.

Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of statistical probes.

getMatrixOfTallies

MatrixOfTallies<?> getMatrixOfTallies(PerformanceMeasureType m)
Returns the matrix of tallies used to manage observations for estimating the performance measures in group m. This matrix is available only for performance measures corresponding to expectations, not functions of expectations.

Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of tallies.

getMatrixOfFunctionOfMultipleMeansTallies

MatrixOfFunctionOfMultipleMeansTallies<?> getMatrixOfFunctionOfMultipleMeansTallies(PerformanceMeasureType m)
Returns the matrix of function of multiple means tallies used to manage observations for estimating the performance measures in group m. This matrix is available only for performance measures corresponding functions of expectations.

Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of function of multiple means tallies.

getCompletedSteps

int getCompletedSteps()
Returns the number of completed steps for the simulation. When using independent replications, a step corresponds to a replication. When using batch means for stationary simulation, this corresponds to the number of terminated batches.

Returns:
the number of completed steps.

getAutoResetStartStream

boolean getAutoResetStartStream()
Determines if the random streams are automatically reset at the end of each evaluation. By default, a simulator calls RandomStream.resetStartStream() on each RandomStream object he has created for eval() to use the same seeds if called multiple times. If this option is set to false, the streams are not reset automatically, and eval() always returns different results when called multiple times. However, RandomStream.resetNextSubstream() should still be called for all random streams after each replication.

Returns:
true if streams are reset automatically, false otherwise.

setAutoResetStartStream

void setAutoResetStartStream(boolean r)
Sets the automatic reset start stream indicator to r.

Parameters:
r - the new value of the indicator.
See Also:
getAutoResetStartStream()

getSeqSampEachEval

boolean getSeqSampEachEval()
Determines if sequential sampling is done upon each call on eval(). If the implemented simulator uses sequential sampling, the number of steps (replications or batches) simulated is random. By default, the first call to eval() determines the number of simulated steps while each subsequent call to eval() simulates the exact same number of steps, without reapplying sequential sampling. Turning this flag on changes this behavior, forcing the simulator to perform sequential sampling upon every call to eval().

Returns:
the value of the indicator.

setSeqSampEachEval

void setSeqSampEachEval(boolean seqSamp)
Sets the indicator for sequential sampling on each eval to seqSamp.

Parameters:
seqSamp - the new value of the indicator.

resetStartStream

void resetStartStream()
Calls RandomStream.resetStartStream() for all random streams used by the simulator.


resetStartSubstream

void resetStartSubstream()
Calls RandomStream.resetStartSubstream() for all random streams used by the simulator.


resetNextSubstream

void resetNextSubstream()
Calls RandomStream.resetNextSubstream() for all random streams used by the simulator.


ContactCenters
V. 0.9.9.

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