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.server
Class GroupVolumeStatMeasureMatrix

    java.lang.Object
      umontreal.iro.lecuyer.contactcenters.server.GroupVolumeStat
          umontreal.iro.lecuyer.contactcenters.server.GroupVolumeStatMeasureMatrix

All Implemented Interfaces:
  Cloneable, MeasureMatrix

    public class GroupVolumeStatMeasureMatrix

extends GroupVolumeStat
implements MeasureMatrix

Agent group statistical collector implementing `MeasureMatrix`. This class extends `GroupVolumeStat` and implements the `MeasureMatrix` interface and defines measures for the service, idle, working, and total volumes. The service volume corresponds to the integral of the number of busy agents [i](t) obtained by `AgentGroup.getNumBusyAgents()`. The idle volume is the integral of the number of idle agents [i](t) over the simulation time. This is obtained using `AgentGroup.getNumIdleAgents()`. The working volume is the integral of the number of working agents, [i](t) + [i](t) over the simulation time, obtained by `AgentGroup.getNumBusyAgents()`, and `AgentGroup.getNumFreeAgents()`. The total volume corresponds to the integral of the number of agents (Ni(t) + [i](t))dt = ([i](t) + [i](t))dt over the simulation time. This quantity is given by the sum of the accumulates returned by the methods `AgentGroup.getNumAgents()` and `AgentGroup.getNumGhostAgents()`. These quantities can be used to compute the agent group's occupancy ratio, which is the ratio of the service volume and total volume, or the ratio of the service volume over the working volume.

This class can be given the number of contact types K to track for computing [i, k](t) dt. If K > 1, the measure 0≤k < K represents the integral of the number of busy agents serving contacts of type k over the simulation time. Measures K through K + 3 represents respectively the service, idle, working, and total volumes.

When K = 1, the measure 0 corresponds to the service volume, the measure 1, to the idle volume, and the measure 2 is the working volume, and measure 3 is the total volume.

Since this measure matrix supports only one period, it must be combined with `IntegralMeasureMatrix` for one to get the measures for each period.

Constructor Summary
`GroupVolumeStatMeasureMatrix(AgentGroup group)` Constructs a new agent-group volume statistical probe observing the agent group `group` and only computing aggregate statistics.
`GroupVolumeStatMeasureMatrix(AgentGroup group, int numTypes)` Constructs a new agent-group volume statistical probe observing the agent group `group`, and supporting `numTypes` contact types.
`GroupVolumeStatMeasureMatrix(Simulator sim, AgentGroup group)` Equivalent to `GroupVolumeStatMeasureMatrix(AgentGroup)`, using the given simulator `sim` for creating internal probes.
`GroupVolumeStatMeasureMatrix(Simulator sim, AgentGroup group, int numTypes)` Equivalent to `GroupVolumeStatMeasureMatrix(AgentGroup,int)`, using the given simulator `sim` for creating internal probes.

Method Summary
`static MeasureSet` | `getIdleVolumeMeasureSet(MeasureMatrix[] vcalc)` Returns a measure set regrouping the idle volumes for several agent groups and computing the sum.
`double` | `getMeasure(int i, int p)` Returns the measure corresponding to the index `i` and period `p`.
`int` | `getNumMeasures()` Returns the number of measures calculated by the implementation of this interface.
`int` | `getNumPeriods()` Returns the number of periods stored into this matrix of measures.
`static MeasureSet` | `getServiceVolumeMeasureSet(MeasureMatrix[] vcalc)` Returns a measure set regrouping the service volumes for several agent groups and computing the sum.
`static MeasureSet` | `getServiceVolumeMeasureSet(MeasureMatrix[] vcalc, int numTypes)` Returns a measure set regrouping the service volumes stored in `vcalc` for `numTypes` contact types.
`static MeasureSet` | `getTotalVolumeMeasureSet(MeasureMatrix[] vcalc)` Returns a measure set regrouping the total volumes for several agent groups.
`static MeasureSet` | `getTotalVolumeMeasureSet(MeasureMatrix[] vcalc, int numTypes)` Returns a measure set regrouping the total volumes stored in `vcalc`, with each total volume repeated `numTypes` times.
`static MeasureSet` | `getWorkingVolumeMeasureSet(MeasureMatrix[] vcalc)` Returns a measure set regrouping the working volumes for several agent groups.
`static MeasureSet` | `getWorkingVolumeMeasureSet(MeasureMatrix[] vcalc, int numTypes)` Returns a measure set regrouping the working volumes stored in `vcalc`, with each working volume repeated `numTypes` times.
`void` | `regroupPeriods(int x)` Increases the length of stored periods by regrouping them.
`void` | `setNumMeasures(int nm)` Throws an `UnsupportedOperationException`.
`void` | `setNumPeriods(int np)` Throws an `UnsupportedOperationException`.

Methods inherited from class umontreal.iro.lecuyer.contactcenters.server.GroupVolumeStat
`clone, getAgentGroup, getNumContactTypes, getStatNumAgents, getStatNumBusyAgents, getStatNumBusyAgents, getStatNumFreeAgents, getStatNumGhostAgents, getStatNumIdleAgents, init, setAgentGroup, setSimulator, toString`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface umontreal.iro.lecuyer.stat.mperiods.MeasureMatrix
`init`

Constructor Detail

### GroupVolumeStatMeasureMatrix

    public GroupVolumeStatMeasureMatrix(AgentGroup group)

  Constructs a new agent-group volume statistical probe observing the agent group `group` and only computing aggregate statistics. This is equivalent to `GroupVolumeStat` `(group, 0)`.

  Parameters:
    `group` - the observed agent group.

### GroupVolumeStatMeasureMatrix

    public GroupVolumeStatMeasureMatrix(Simulator sim,
                                        AgentGroup group)

  Equivalent to `GroupVolumeStatMeasureMatrix(AgentGroup)`, using the given simulator `sim` for creating internal probes.

### GroupVolumeStatMeasureMatrix

    public GroupVolumeStatMeasureMatrix(AgentGroup group,
                                        int numTypes)

  Constructs a new agent-group volume statistical probe observing the agent group `group`, and supporting `numTypes` contact types.

  Parameters:
    `group` - the observed agent group.
    `numTypes` - the number of contact types.
  Throws:
    `IllegalArgumentException` - if `numTypes` is negative.

### GroupVolumeStatMeasureMatrix

    public GroupVolumeStatMeasureMatrix(Simulator sim,
                                        AgentGroup group,
                                        int numTypes)

  Equivalent to `GroupVolumeStatMeasureMatrix(AgentGroup,int)`, using the given simulator `sim` for creating internal probes.

Method Detail

### getNumMeasures

    public int getNumMeasures()

  Description copied from interface: `MeasureMatrix`
  Returns the number of measures calculated by the implementation of this interface.

  Specified by:
    `getNumMeasures` in interface `MeasureMatrix`
  Returns:
    the number of computed values.

### setNumMeasures

    public void setNumMeasures(int nm)

  Throws an `UnsupportedOperationException`.

  Specified by:
    `setNumMeasures` in interface `MeasureMatrix`
  Parameters:
    `nm` - the new number of measures.
  Throws:
    `UnsupportedOperationException` - if this method is called.

### getNumPeriods

    public int getNumPeriods()

  Description copied from interface: `MeasureMatrix`
  Returns the number of periods stored into this matrix of measures.

  Specified by:
    `getNumPeriods` in interface `MeasureMatrix`
  Returns:
    the number of stored periods.

### setNumPeriods

    public void setNumPeriods(int np)

  Throws an `UnsupportedOperationException`.

  Specified by:
    `setNumPeriods` in interface `MeasureMatrix`
  Parameters:
    `np` - the new number of periods.
  Throws:
    `UnsupportedOperationException` - if this method is called.

### getMeasure

    public double getMeasure(int i,
                             int p)

  Description copied from interface: `MeasureMatrix`
  Returns the measure corresponding to the index `i` and period `p`.

  Specified by:
    `getMeasure` in interface `MeasureMatrix`
  Parameters:
    `i` - the index of the measure.
    `p` - the period of the measure.
  Returns:
    the corresponding value.

### regroupPeriods

    public void regroupPeriods(int x)

  Description copied from interface: `MeasureMatrix`
  Increases the length of stored periods by regrouping them. If this method is supported, for `p = 0`, ..., `MeasureMatrix.getNumPeriods()``/x - 1`, it sums the values for periods `xp`, ...,`xp+x-1`, and stores the results in period `p` whose length will be `x` times the length of original periods. If the number of periods is not a multiple of `x`, an additional period is used to contain the remaining sums of values. The unused periods are zeroed for future use. This method can be useful for memory management when using batch means to estimate steady-state performance measures.

  Specified by:
    `regroupPeriods` in interface `MeasureMatrix`
  Parameters:
    `x` - the number of periods per group.

### getServiceVolumeMeasureSet

    public static MeasureSet getServiceVolumeMeasureSet(MeasureMatrix[] vcalc)

  Returns a measure set regrouping the service volumes for several agent groups and computing the sum. Row `r` of the resulting matrix corresponds to the service volume stored in `vcalc[r]`, and the last row contains the sum of the service volumes.

  Parameters:
    `vcalc` - the agent group volume matrices.
  Returns:
    the service volume measure set.

### getServiceVolumeMeasureSet

    public static MeasureSet getServiceVolumeMeasureSet(MeasureMatrix[] vcalc,
                                                        int numTypes)

  Returns a measure set regrouping the service volumes stored in `vcalc` for `numTypes` contact types. Row `numTypes*i + k` of the resulting measure set corresponds to the integral of the number of busy agents in group `i` serving contacts of type `k`. If the measure set is computing the sum row (the default), row `numTypes*vcalc.length + k` gives the integral of the total number of agents serving contacts with type `k`.

  Parameters:
    `vcalc` - the agent group volume matrices.
    `numTypes` - the number of contact types.
  Returns:
    the service volume measure set.

### getIdleVolumeMeasureSet

    public static MeasureSet getIdleVolumeMeasureSet(MeasureMatrix[] vcalc)

  Returns a measure set regrouping the idle volumes for several agent groups and computing the sum. Row `r` of the resulting matrix corresponds to the idle volume stored in `vcalc[r]`, and the last row contains the sum of the idle volumes.

  Parameters:
    `vcalc` - the agent group volume matrices.
  Returns:
    the idle volume measure set.

### getWorkingVolumeMeasureSet

    public static MeasureSet getWorkingVolumeMeasureSet(MeasureMatrix[] vcalc)

  Returns a measure set regrouping the working volumes for several agent groups. Row `r` of the resulting matrix corresponds to the working volume stored in `vcalc[r]`, and the last row contains the sum of the working volumes.

  Parameters:
    `vcalc` - the agent group volume matrices.
  Returns:
    the working volume measure set.

### getWorkingVolumeMeasureSet

    public static MeasureSet getWorkingVolumeMeasureSet(MeasureMatrix[] vcalc,
                                                        int numTypes)

  Returns a measure set regrouping the working volumes stored in `vcalc`, with each working volume repeated `numTypes` times. This is used to create a measure set matching with `int)` to compute per-contact type agent's occupancy ratios. If the measure set is computing the sum rows (the default), the last `numTypes` rows contain the sum of the working volumes for all agents.

  Parameters:
    `vcalc` - the agent group volume matrices.
    `numTypes` - the number of contact types.
  Returns:
    the working volume measure set.

### getTotalVolumeMeasureSet

    public static MeasureSet getTotalVolumeMeasureSet(MeasureMatrix[] vcalc)

  Returns a measure set regrouping the total volumes for several agent groups. Row `r` of the resulting matrix corresponds to the total volume stored in `vcalc[r]`, and the last row contains the sum of the total volumes.

  Parameters:
    `vcalc` - the agent group volume matrices.
  Returns:
    the total volume measure set.

### getTotalVolumeMeasureSet

    public static MeasureSet getTotalVolumeMeasureSet(MeasureMatrix[] vcalc,
                                                      int numTypes)

  Returns a measure set regrouping the total volumes stored in `vcalc`, with each total volume repeated `numTypes` times. This is used to create a measure set matching with `getServiceVolumeMeasureSet(MeasureMatrix[],int)` to compute per-contact type agent's occupancy ratios. If the measure set is computing the sum rows (the default), the last `numTypes` rows contain the sum of the total volumes for all agents.

  Parameters:
    `vcalc` - the agent group volume matrices.
    `numTypes` - the number of contact types.
  Returns:
    the total volume measure set.

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.