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.ctmc
Class CallCenterCTMCKIWithQueues

    java.lang.Object
      umontreal.iro.lecuyer.contactcenters.ctmc.CallCenterCTMCKI
          umontreal.iro.lecuyer.contactcenters.ctmc.CallCenterCTMCKIWithQueues

All Implemented Interfaces:
  Cloneable, CallCenterCTMC, CallCenterCTMCWithQueues

    public class CallCenterCTMCKIWithQueues

extends CallCenterCTMCKI
implements CallCenterCTMCWithQueues

Extends the CTMC model for multiple call types and agent groups with information on queued calls.

Constructor Summary
`CallCenterCTMCKIWithQueues(double[] lambda, double[] lambdaBound, double[][] mu, double[][] muBound, int[] numAgents, int[] maxNumAgents, double[] rho, double[] nu, double[] nuBound, int queueCapacity, int maxQueueCapacity, AgentGroupSelector[] ags, WaitingQueueSelector[] wqs, boolean needsInServiceContactMix, int[][] thresholds)`

Method Summary
`CallCenterCTMCKIWithQueues` | `clone()` Returns an independent copy of this call center CTMC.
`void` | `generateAbandonment(int k, int kpos, int np, int nf)` Generates the abandonment of the `kpos`th contact of type `k`.
`void` | `generateArrival(int k, int np, int nf)` Generates the arrival of a contact of type `k` being blocked or balking.
`void` | `generateArrivalQueued(int k, int np, int nf)` Generates the arrival of a contact of type `k`, and adds the new contact to the waiting queue.
`void` | `generateArrivalServed(int k, int i, int np, int nf)` Generates the arrival of a contact of type `k` served by an agent in group `i`.
`void` | `generateEndService(int k, int i, int kp, int np, int nf)` Generates the end of the service for a contact of type `k` served by an agent in group `i`, and assigns the `kpos`th queued contact of type `kp` to the free agent.
`int` | `getLastWaitingTime(int k)` ?eturns waiting time of the last contact of type `k` having entered service, or abandoned.
`int` | `getLongestWaitingTime(int k)` Returns the longest waiting time among all contacts of type `k`.
`void` | `init(CallCenterCTMC ctmc)` Initializes the state of this CTMC with the state of the other CTMC `ctmc`.
`void` | `initEmpty()` Initializes the system to an empty call center, and resets the counter giving the number of transitions done to 0.
`TransitionType` | `nextState(double u)` Generates the next state of the CTMC randomly from the current state, using the given uniform `u`, and changes the current state to this new state.
`TransitionType` | `nextStateInt(int rv)` Similar to `CallCenterCTMC.nextState(double)`, except that the given random variate `v` is uniformly distributed over [0, 231 - 1].
`boolean` | `selectContact(int i)` Selects a new queued contact for a free agent in group `i`, and returns a boolean indicator determining if a contact could be selected.

Methods inherited from class umontreal.iro.lecuyer.contactcenters.ctmc.CallCenterCTMCKI
`createEvent, createEventF, equalsState, generateEndService, generateFalseTransition, getArrivalRate, getArrivalRate, getJumpRate, getLastSelectedAgentGroup, getLastSelectedContact, getLastSelectedContactType, getLastSelectedQueuedContactType, getLastTransitionType, getMaxArrivalRate, getMaxArrivalRate, getMaxNumAgents, getMaxNumAgents, getMaxNumAgentsArray, getMaxPatienceRate, getMaxQueueCapacity, getMaxServiceRate, getNextTransition, getNextTransitionInt, getNumAgentGroups, getNumAgents, getNumAgents, getNumAgentsArray, getNumContactsInQueue, getNumContactsInQueue, getNumContactsInService, getNumContactsInService, getNumContactsInServiceI, getNumContactsInServiceK, getNumContactTypes, getNumFollowingFalseTransitions, getNumPrecedingFalseTransitions, getNumStateThresh, getNumTransitionsDone, getPatienceRate, getProbBalking, getQueueCapacity, getRanksGT, getRanksTG, getServiceRate, getStateThresh, getStateThresholds, getTargetNumTransitions, hashCodeState, setArrivalRate, setArrivalRates, setMaxArrivalRate, setMaxArrivalRates, setMaxNumAgents, setMaxNumAgents, setMaxPatienceRate, setMaxQueueCapacity, setMaxServiceRate, setNumAgents, setNumAgents, setPatienceRate, setProbBalking, setQueueCapacity, setServiceRate, setStateThresholds, setTargetNumTransitions, toString`

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

Methods inherited from interface umontreal.iro.lecuyer.contactcenters.ctmc.CallCenterCTMC
`equalsState, generateEndService, generateFalseTransition, getArrivalRate, getArrivalRate, getJumpRate, getLastSelectedAgentGroup, getLastSelectedContact, getLastSelectedContactType, getLastSelectedQueuedContactType, getLastTransitionType, getMaxArrivalRate, getMaxArrivalRate, getMaxNumAgents, getMaxNumAgents, getMaxNumAgentsArray, getMaxPatienceRate, getMaxQueueCapacity, getMaxServiceRate, getNextTransition, getNextTransitionInt, getNumAgentGroups, getNumAgents, getNumAgents, getNumAgentsArray, getNumContactsInQueue, getNumContactsInQueue, getNumContactsInService, getNumContactsInService, getNumContactsInServiceI, getNumContactsInServiceK, getNumContactTypes, getNumFollowingFalseTransitions, getNumPrecedingFalseTransitions, getNumStateThresh, getNumTransitionsDone, getPatienceRate, getProbBalking, getQueueCapacity, getRanksGT, getRanksTG, getServiceRate, getStateThresh, getStateThresholds, getTargetNumTransitions, hashCodeState, setArrivalRate, setArrivalRates, setMaxArrivalRate, setMaxArrivalRates, setMaxNumAgents, setMaxNumAgents, setMaxPatienceRate, setMaxQueueCapacity, setMaxServiceRate, setNumAgents, setNumAgents, setPatienceRate, setProbBalking, setQueueCapacity, setServiceRate, setStateThresholds, setTargetNumTransitions`

Constructor Detail

### CallCenterCTMCKIWithQueues

    public CallCenterCTMCKIWithQueues(double[] lambda,
                                      double[] lambdaBound,
                                      double[][] mu,
                                      double[][] muBound,
                                      int[] numAgents,
                                      int[] maxNumAgents,
                                      double[] rho,
                                      double[] nu,
                                      double[] nuBound,
                                      int queueCapacity,
                                      int maxQueueCapacity,
                                      AgentGroupSelector[] ags,
                                      WaitingQueueSelector[] wqs,
                                      boolean needsInServiceContactMix,
                                      int[][] thresholds)

Method Detail

### getLastWaitingTime

    public int getLastWaitingTime(int k)

  Description copied from interface: `CallCenterCTMCWithQueues`
  ?eturns waiting time of the last contact of type `k` having entered service, or abandoned. If no such contact exists, this method returns 0.

  Specified by:
    `getLastWaitingTime` in interface `CallCenterCTMCWithQueues`
  Parameters:
    `k` - the queried tppe of contact.
  Returns:
    the last waiting time.

### getLongestWaitingTime

    public int getLongestWaitingTime(int k)

  Description copied from interface: `CallCenterCTMCWithQueues`
  Returns the longest waiting time among all contacts of type `k`. This returns 0 if no contact of type `k` is waiting in queue.

  Specified by:
    `getLongestWaitingTime` in interface `CallCenterCTMCWithQueues`
  Parameters:
    `k` - the queried contact type.
  Returns:
    the longest waiting time.

### init

    public void init(CallCenterCTMC ctmc)

  Description copied from interface: `CallCenterCTMC`
  Initializes the state of this CTMC with the state of the other CTMC `ctmc`. The parameters of this CTMC, e.g., arrival rates, service rates, etc., are unchanged while the state is set to the state of the given CTMC. This method throws an `IllegalArgumentException` if the given CTMC is incompatible with this CTMC, e.g., the number of contact types or agent groups differ.

  Specified by:
    `init` in interface `CallCenterCTMC`
  Overrides:
    `init` in class `CallCenterCTMCKI`
  Parameters:
    `ctmc` - the CTMC to initialize the state from.

### initEmpty

    public void initEmpty()

  Description copied from interface: `CallCenterCTMC`
  Initializes the system to an empty call center, and resets the counter giving the number of transitions done to 0.

  Specified by:
    `initEmpty` in interface `CallCenterCTMC`
  Overrides:
    `initEmpty` in class `CallCenterCTMCKI`

### selectContact

    public boolean selectContact(int i)

  Description copied from interface: `CallCenterCTMC`
  Selects a new queued contact for a free agent in group `i`, and returns a boolean indicator determining if a contact could be selected. After this method returns `true`, the method `CallCenterCTMC.getLastSelectedAgentGroup()` returns the value of `i` while `CallCenterCTMC.getLastSelectedQueuedContactType()` returns the type of the contact assigned to the free agent. This method can be used, e.g., when agents are added in some groups during a simulation.

  Specified by:
    `selectContact` in interface `CallCenterCTMC`
  Overrides:
    `selectContact` in class `CallCenterCTMCKI`
  Parameters:
    `i` - the agent group index.
  Returns:
    determines whether a contact is removed from a queue.

### nextState

    public TransitionType nextState(double u)

  Description copied from interface: `CallCenterCTMC`
  Generates the next state of the CTMC randomly from the current state, using the given uniform `u`, and changes the current state to this new state. The method then returns the type of transition being generated. Depending on the transition type, additional information about the selected contact type or agent group can be obtained using `CallCenterCTMC.getLastSelectedContactType()`, `CallCenterCTMC.getLastSelectedQueuedContactType()`, or `CallCenterCTMC.getLastSelectedAgentGroup()`.

  Specified by:
    `nextState` in interface `CallCenterCTMC`
  Overrides:
    `nextState` in class `CallCenterCTMCKI`
  Parameters:
    `u` - the uniform used to generate the new state.
  Returns:
    the type of the generated transition.

### nextStateInt

    public TransitionType nextStateInt(int rv)

  Description copied from interface: `CallCenterCTMC`
  Similar to `CallCenterCTMC.nextState(double)`, except that the given random variate `v` is uniformly distributed over [0, 231 - 1].

  Specified by:
    `nextStateInt` in interface `CallCenterCTMC`
  Overrides:
    `nextStateInt` in class `CallCenterCTMCKI`
  Parameters:
    `rv` - the uniform random integer.
  Returns:
    the type of the generated transition.

### generateAbandonment

    public void generateAbandonment(int k,
                                    int kpos,
                                    int np,
                                    int nf)

  Description copied from interface: `CallCenterCTMC`
  Generates the abandonment of the `kpos`th contact of type `k`. This method throws an `IllegalStateException` if `kpos` is negative or greater than or equal to the number of queued contacts of type `k`.

  Specified by:
    `generateAbandonment` in interface `CallCenterCTMC`
  Overrides:
    `generateAbandonment` in class `CallCenterCTMCKI`
  Parameters:
    `k` - the contact type.
    `kpos` - the position of the contact in queue.
    `np` - the number of false transitions preceding the main transition.
    `nf` - the number of false transitions following the main transition.

### generateArrivalQueued

    public void generateArrivalQueued(int k,
                                      int np,
                                      int nf)

  Description copied from interface: `CallCenterCTMC`
  Generates the arrival of a contact of type `k`, and adds the new contact to the waiting queue. This method throws an `IllegalStateException` if the queue is full before the arrival.

  Specified by:
    `generateArrivalQueued` in interface `CallCenterCTMC`
  Overrides:
    `generateArrivalQueued` in class `CallCenterCTMCKI`
  Parameters:
    `k` - the type of the new contact.
    `np` - the number of false transitions preceding the main transition.
    `nf` - the number of false transitions following the main transition.

### generateArrivalServed

    public void generateArrivalServed(int k,
                                      int i,
                                      int np,
                                      int nf)

  Description copied from interface: `CallCenterCTMC`
  Generates the arrival of a contact of type `k` served by an agent in group `i`. If all agents are busy in group `i`, this method throws an `IllegalStateException`.

  Specified by:
    `generateArrivalServed` in interface `CallCenterCTMC`
  Overrides:
    `generateArrivalServed` in class `CallCenterCTMCKI`
  Parameters:
    `k` - the contact type.
    `i` - the agent group.
    `np` - the number of false transitions preceding the main transition.
    `nf` - the number of false transitions following the main transition.

### generateArrival

    public void generateArrival(int k,
                                int np,
                                int nf)

  Description copied from interface: `CallCenterCTMC`
  Generates the arrival of a contact of type `k` being blocked or balking.

  Specified by:
    `generateArrival` in interface `CallCenterCTMC`
  Overrides:
    `generateArrival` in class `CallCenterCTMCKI`
  Parameters:
    `k` - the type of the arrival.
    `np` - the number of false transitions preceding the main transition.
    `nf` - the number of false transitions following the main transition.

### generateEndService

    public void generateEndService(int k,
                                   int i,
                                   int kp,
                                   int np,
                                   int nf)

  Description copied from interface: `CallCenterCTMC`
  Generates the end of the service for a contact of type `k` served by an agent in group `i`, and assigns the `kpos`th queued contact of type `kp` to the free agent. If no contact of type `k` are in service by agents in group `i`, this method throws an `IllegalStateException`.

  Specified by:
    `generateEndService` in interface `CallCenterCTMC`
  Overrides:
    `generateEndService` in class `CallCenterCTMCKI`
  Parameters:
    `k` - the type of the contact ending service.
    `i` - the group of the agent ending service.
    `kp` - the type of the dequeued contact.
    `np` - the number of false transitions preceding the main transition.
    `nf` - the number of false transitions following the main transition.

### clone

    public CallCenterCTMCKIWithQueues clone()

  Description copied from interface: `CallCenterCTMC`
  Returns an independent copy of this call center CTMC. In particular, calling `CallCenterCTMC.nextState(double)` on the returned CTMC should not affect the state of any other CTMC.

  Specified by:
    `clone` in interface `CallCenterCTMC`
  Overrides:
    `clone` in class `CallCenterCTMCKI`
  Returns:
    the clone of the chain.

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.