ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.app
Class ContactCenterSimResults

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.app.ContactCenterEvalResults
      extended by umontreal.iro.lecuyer.contactcenters.app.ContactCenterSimResults
All Implemented Interfaces:
ContactCenterEval, ContactCenterInfo, ContactCenterSim

public class ContactCenterSimResults
extends ContactCenterEvalResults
implements ContactCenterSim

Extends ContactCenterEvalResults to store additional information related to the simulation of a call center.


Constructor Summary
ContactCenterSimResults(ContactCenterSim sim)
          Constructs a new contact center results container by getting simulation results from the simulator sim, and compoting confidence intervals with level level.
ContactCenterSimResults(ContactCenterSimResultsParams ccp)
          Constructs a new object containing results read from the parameter object ccp.
 
Method Summary
 void check()
           
 ContactCenterSimResultsParams createParams()
          Creates a parameter object that can be marshalled using JAXB from this object, and copies its evaluation results..
 String formatStatistics()
          Formats information about every performance measure after ContactCenterEval.eval() is called.
 boolean formatStatisticsExcel(WritableWorkbook wb)
          Constructs and returns an JExcel API workbook containing the results of the evaluation, and appends the contents of the generated report to the workbook wb.
 String formatStatisticsLaTeX()
          Formats and returns a statistical report that can be included into a LATEX document.
 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 ContactCenterSim.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.
 void writeParams(ContactCenterEvalResultsParams ccp)
          Fills ccp with parameters stored in this object.
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.app.ContactCenterEvalResults
createFromEval, createFromParams, createFromParams, eval, getAgentGroupName, getAgentGroupProperties, getAgentGroupSegmentName, getAgentGroupSegmentProperties, getContactTypeName, getContactTypeProperties, getContactTypeSegmentName, getContactTypeSegmentProperties, getDefaultUnit, getEvalInfo, getEvalOption, getEvalOptions, 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, getPerformanceMeasure, getPerformanceMeasures, getPerformanceMeasureType, getReportParams, getWaitingQueueName, getWaitingQueueProperties, getWaitingQueueSegmentName, getWaitingQueueSegmentProperties, hasEvalOption, hasPerformanceMeasure, isVerbose, reset, seemsUnstable, setEvalOption, setReportParams, setVerbose
 
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
 
Methods inherited from interface umontreal.iro.lecuyer.contactcenters.app.ContactCenterEval
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

ContactCenterSimResults

public ContactCenterSimResults(ContactCenterSimResultsParams ccp)
Constructs a new object containing results read from the parameter object ccp. It is not recommended to use this constructor directly; one should use the ContactCenterEvalResults.createFromParams(ContactCenterEvalResultsParams) method to create instances of this class.

Parameters:
ccp - the contact centers results.

ContactCenterSimResults

public ContactCenterSimResults(ContactCenterSim sim)
Constructs a new contact center results container by getting simulation results from the simulator sim, and compoting confidence intervals with level level.

Parameters:
sim - the contact center simulator.
Method Detail

writeParams

public void writeParams(ContactCenterEvalResultsParams ccp)
Description copied from class: ContactCenterEvalResults
Fills ccp with parameters stored in this object. This method is rarely used directly; one should call ContactCenterEvalResults.createParams() instead.

Overrides:
writeParams in class ContactCenterEvalResults
Parameters:
ccp - the output parameter object.

getAutoResetStartStream

public boolean getAutoResetStartStream()
Description copied from interface: ContactCenterSim
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 ContactCenterSim.eval() to use the same seeds if called multiple times. If this option is set to false, the streams are not reset automatically, and ContactCenterSim.eval() always returns different results when called multiple times. However, RandomStream.resetNextSubstream() should still be called for all random streams after each replication.

Specified by:
getAutoResetStartStream in interface ContactCenterSim
Returns:
true if streams are reset automatically, false otherwise.

getSeqSampEachEval

public boolean getSeqSampEachEval()
Description copied from interface: ContactCenterSim
Determines if sequential sampling is done upon each call on ContactCenterSim.eval(). If the implemented simulator uses sequential sampling, the number of steps (replications or batches) simulated is random. By default, the first call to ContactCenterSim.eval() determines the number of simulated steps while each subsequent call to ContactCenterSim.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 ContactCenterSim.eval().

Specified by:
getSeqSampEachEval in interface ContactCenterSim
Returns:
the value of the indicator.

setSeqSampEachEval

public void setSeqSampEachEval(boolean seqSamp)
Description copied from interface: ContactCenterSim
Sets the indicator for sequential sampling on each eval to seqSamp.

Specified by:
setSeqSampEachEval in interface ContactCenterSim
Parameters:
seqSamp - the new value of the indicator.

getCompletedSteps

public int getCompletedSteps()
Description copied from interface: ContactCenterSim
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.

Specified by:
getCompletedSteps in interface ContactCenterSim
Returns:
the number of completed steps.

getConfidenceInterval

public DoubleMatrix2D[] getConfidenceInterval(PerformanceMeasureType m,
                                              double level)
Description copied from interface: ContactCenterSim
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.

Specified by:
getConfidenceInterval in interface ContactCenterSim
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.

getMatrixOfStatProbes

public MatrixOfStatProbes<?> getMatrixOfStatProbes(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getMatrixOfStatProbes in interface ContactCenterSim
Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of statistical probes.

getMatrixOfTallies

public MatrixOfTallies<?> getMatrixOfTallies(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getMatrixOfTallies in interface ContactCenterSim
Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of tallies.

getMatrixOfFunctionOfMultipleMeansTallies

public MatrixOfFunctionOfMultipleMeansTallies<?> getMatrixOfFunctionOfMultipleMeansTallies(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getMatrixOfFunctionOfMultipleMeansTallies in interface ContactCenterSim
Parameters:
m - the group of performance measures of interest.
Returns:
the matrix of function of multiple means tallies.

getMax

public DoubleMatrix2D getMax(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getMax in interface ContactCenterSim
Parameters:
m - the queried group of performance measures.
Returns:
the matrix of maxima.

getMin

public DoubleMatrix2D getMin(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getMin in interface ContactCenterSim
Parameters:
m - the queried group of performance measures.
Returns:
the matrix of minima.

getVariance

public DoubleMatrix2D getVariance(PerformanceMeasureType m)
Description copied from interface: ContactCenterSim
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.

Specified by:
getVariance in interface ContactCenterSim
Parameters:
m - the queried group of performance measures.
Returns:
the matrix of sample variances.

newSeeds

public void newSeeds()
Description copied from interface: ContactCenterSim
Changes the seeds of the random number generators used during the simulation. When calling ContactCenterSim.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.

Specified by:
newSeeds in interface ContactCenterSim

resetNextSubstream

public void resetNextSubstream()
Description copied from interface: ContactCenterSim
Calls RandomStream.resetNextSubstream() for all random streams used by the simulator.

Specified by:
resetNextSubstream in interface ContactCenterSim

resetStartStream

public void resetStartStream()
Description copied from interface: ContactCenterSim
Calls RandomStream.resetStartStream() for all random streams used by the simulator.

Specified by:
resetStartStream in interface ContactCenterSim

resetStartSubstream

public void resetStartSubstream()
Description copied from interface: ContactCenterSim
Calls RandomStream.resetStartSubstream() for all random streams used by the simulator.

Specified by:
resetStartSubstream in interface ContactCenterSim

setAutoResetStartStream

public void setAutoResetStartStream(boolean r)
Description copied from interface: ContactCenterSim
Sets the automatic reset start stream indicator to r.

Specified by:
setAutoResetStartStream in interface ContactCenterSim
Parameters:
r - the new value of the indicator.
See Also:
ContactCenterSim.getAutoResetStartStream()

formatStatistics

public String formatStatistics()
Description copied from interface: ContactCenterEval
Formats information about every performance measure after ContactCenterEval.eval() is called. It can be simulation statistics, information about the steps of an approximation algorithm, or simply the values of all performance measures. This method should call ContactCenterEval.getEvalInfo() to obtain general information about the evaluation and incorporate the information into the returned string. For each entry in the map, the method should add a key: value line in the string. Then, the method appends the performance measures to the returned string. The PerformanceMeasureFormatText class can be used to convert matrices of performance measures into strings. If the evaluation was not triggered by calling ContactCenterEval.eval() before this method is called, an IllegalStateException is thrown. If no statistical information is available even after the evaluation, this method should return an empty string instead of throwing an exception.

Specified by:
formatStatistics in interface ContactCenterEval
Overrides:
formatStatistics in class ContactCenterEvalResults
Returns:
a string containing a statistical report.

formatStatisticsLaTeX

public String formatStatisticsLaTeX()
Description copied from interface: ContactCenterEval
Formats and returns a statistical report that can be included into a LATEX document. This is similar to ContactCenterEval.formatStatistics(), except the generated report is in LATEX rather than plain text.

Specified by:
formatStatisticsLaTeX in interface ContactCenterEval
Overrides:
formatStatisticsLaTeX in class ContactCenterEvalResults
Returns:
the formatted report.

formatStatisticsExcel

public boolean formatStatisticsExcel(WritableWorkbook wb)
Description copied from interface: ContactCenterEval
Constructs and returns an JExcel API workbook containing the results of the evaluation, and appends the contents of the generated report to the workbook wb. This method may add multiple sheets, e.g., for general and detailed information. This method should add the information in the map returned by ContactCenterEval.getEvalInfo() to a sheet in the workbook. This method returns true if and only if the given workbook was modified.

One can then customize the returned workbook as needed. The method WritableWorkbook.write() can be used to export the workbook to an output stream. This can be used to create files that can be opened directly by Microsoft Excel for results analysis and reporting. Excel documents can also be opened by open source software such as OpenOffice.org, KOffice, etc.

Specified by:
formatStatisticsExcel in interface ContactCenterEval
Overrides:
formatStatisticsExcel in class ContactCenterEvalResults
Parameters:
wb - the workbook to append report to.
Returns:
true if and only if the given workbook was modified.

check

public void check()
Overrides:
check in class ContactCenterEvalResults

getConfidenceLevel

public double getConfidenceLevel()
Description copied from interface: ContactCenterSim
Returns the confidence level of the intervals output by ContactCenterEval.formatStatistics(). The initial confidence level is implementation-specific, and usually set by a constructor.

Specified by:
getConfidenceLevel in interface ContactCenterSim
Returns:
the level of confidence for the intervals.

setConfidenceLevel

public void setConfidenceLevel(double level)
Description copied from interface: ContactCenterSim
Sets the level of confidence for the intervals output by ContactCenterEval.formatStatistics() to level.

Specified by:
setConfidenceLevel in interface ContactCenterSim
Parameters:
level - the level of confidence of the intervals.

createParams

public ContactCenterSimResultsParams createParams()
Description copied from class: ContactCenterEvalResults
Creates a parameter object that can be marshalled using JAXB from this object, and copies its evaluation results..

Overrides:
createParams in class ContactCenterEvalResults
Returns:
the parameter object containing results.

ContactCenters
V. 0.9.9.

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