Overview | Package | Class | Tree | Deprecated | Index | Help
| ContactCenters V. 0.9.9.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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.

Overview | Package | Class | Tree | Deprecated | Index | Help
| ContactCenters V. 0.9.9.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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