ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.server
Class GroupVolumeStatMeasureMatrix

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.server.GroupVolumeStat
      extended by 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 $ \Nb$[i](t) obtained by AgentGroup.getNumBusyAgents(). The idle volume is the integral of the number of idle agents $ \Ni$[i](t) over the simulation time. This is obtained using AgentGroup.getNumIdleAgents(). The working volume is the integral of the number of working agents, $ \Nb$[i](t) + $ \Nf$[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 $ \htint_{0}^{T}$(Ni(t) + $ \Ng$[i](t))dt = $ \htint_{0}^{T}$($ \Nb$[i](t) + $ \Ni$[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 $ \htint_{0}^{T}$$ \Nb$[i, k](tdt. 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.

ContactCenters
V. 0.9.9.

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