ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.app
Enum RouterPolicyType

java.lang.Object
  extended by java.lang.Enum<RouterPolicyType>
      extended by umontreal.iro.lecuyer.contactcenters.app.RouterPolicyType
All Implemented Interfaces:
Serializable, Comparable<RouterPolicyType>

public enum RouterPolicyType
extends Enum<RouterPolicyType>

Represents the type of router's policies supported by blend/multi-skill call center simulations. This policy determines how the router assigns an agent to incoming calls and how free agents look for queued calls.


Enum Constant Summary
AGENTSPREF
          Agents' preference-based routing policy.
AGENTSPREFWITHDELAYS
          Agents' preference-based routing policy with delays.
EXPDELAY
          Routing policy using expected delay to select agent groups.
LOCALSPEC
          Local-specialist routing policy.
LONGESTQUEUEFIRST
          Longest queue first routing policy.
LONGESTWEIGHTEDWAITINGTIME
          Longest weighted waiting time router policy.
OVERFLOWANDPRIORITY
          Routing policy based on overflow and priority.
QUEUEATLASTGROUP
          Queue at last group routing policy.
QUEUEPRIORITY
          Queue priority routing policy.
QUEUERATIOOVERFLOW
          Overflow routing policy using queue ratio.
SINGLEFIFOQUEUE
          Single FIFO queue router policy.
 
Method Summary
 String toString()
           
static RouterPolicyType valueOf(String name)
          Returns the enum constant of this type with the specified name.
static RouterPolicyType[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

QUEUEPRIORITY

public static final RouterPolicyType QUEUEPRIORITY
Queue priority routing policy. See QueuePriorityRouter for more information.

This routing policy requires a type-to-group and a group-to-type maps.


QUEUEATLASTGROUP

public static final RouterPolicyType QUEUEATLASTGROUP
Queue at last group routing policy. See QueueAtLastGroupRouter for more information.

This routing policy requires a type-to-group map only.


LONGESTQUEUEFIRST

public static final RouterPolicyType LONGESTQUEUEFIRST
Longest queue first routing policy. See LongestQueueFirstRouter for more information.

This routing policy requires a type-to-group and a group-to-type maps. Since the group-to-type map is used as a tie breaker only, it is not as important as with the queue priority routing policy, but it must be specified as well.


SINGLEFIFOQUEUE

public static final RouterPolicyType SINGLEFIFOQUEUE
Single FIFO queue router policy. See SingleFIFOQueueRouter for more information.

This routing policy requires a type-to-group and a group-to-type maps. Since the group-to-type map is used as a tie breaker only, it is not as important as with the queue priority routing policy, but it must be specified as well.


LONGESTWEIGHTEDWAITINGTIME

public static final RouterPolicyType LONGESTWEIGHTEDWAITINGTIME
Longest weighted waiting time router policy. See LongestWeightedWaitingTimeRouter for more information.

This routing policy requires a type-to-group, a group-to-type maps, and an array of weights. Since the group-to-type map is used as a tie breaker only, it is not as important as with the queue priority routing policy, but it must be specified as well.


AGENTSPREF

public static final RouterPolicyType AGENTSPREF
Agents' preference-based routing policy. See AgentsPrefRouter for more information.


AGENTSPREFWITHDELAYS

public static final RouterPolicyType AGENTSPREFWITHDELAYS
Agents' preference-based routing policy with delays. See AgentsPrefRouterWithDelays for more information.


LOCALSPEC

public static final RouterPolicyType LOCALSPEC
Local-specialist routing policy. See LocalSpecRouter for more information.

To use this router, one must specify contact type and agent group names containing a region name. If available, this router uses the matrices of ranks to select agents and waiting queues.


QUEUERATIOOVERFLOW

public static final RouterPolicyType QUEUERATIOOVERFLOW
Overflow routing policy using queue ratio. See QueueRatioOverflowRouter for more information.

This routing policy requires a contacts-to-agents matrix of ranks.


EXPDELAY

public static final RouterPolicyType EXPDELAY
Routing policy using expected delay to select agent groups. See ExpDelayRouter for more information.

This routing policy requires a contacts-to-agents weights matrix.


OVERFLOWANDPRIORITY

public static final RouterPolicyType OVERFLOWANDPRIORITY
Routing policy based on overflow and priority. See OverflowAndPriorityRouter for more information.

The fk, j and gk, j functions are defined using sequences of triplets (Ck, j, l, Ak, j, l, Qk, j, l), where Ck, j, l represents a condition, and Ak, j, l and Qk, j, l are vectors. First, the condition Ck, j, 0 is checked. If it is true, Ak, j, 0 is used as the vector of ranks for agent groups, and Qk, j, 0 is used to set up priorities for queues. Otherwise, the condition Ck, j, 1 is checked, and the corresponding vectors Ak, j, 1, and Qk, j, 1 are used if the condition is true. This check continues for other conditions Ck, j, 2, Ck, j, 3,…, until a true condition is found, or the list of cases is exhausted. If a condition Ck, j, l applies, and no vectors of ranks are associated with this condition, the last vectors of ranks are preserved, i.e., the jth routing stage has no effect. If the list of cases is exhausted without finding an applicable condition, a default set of vectors of ranks is used. If no such default vectors are given, the routing stage j has no effect.

A vector of ranks can also be set relatively to the preceding vector. When a relative vector is used, the ranks are summed with the previous ranks, which allows to update ranks rather than overriding them. This can be useful to accumulate the effect of several conditions at different stages of routing, e.g., increase priority at queue 1 depending on its size, decrease priority at queue 2 depending on the number of free agents, etc.

This policy requires a script for each call type in the parameter file for the call center. Such a script is set up by a callTypeRouting element. Such an element contains one ore more stage children describing the stages of routing. A stage element has an attribute waitingTime giving the waiting time wk, j as well as a sequence of case elements for the cases, and a default element for the default vectors of ranks. See the complex type CallTypeRoutingParams, in the HTML documentation of the XML Schema for the complete syntax of routing parameters, including how to encode conditions.

Method Detail

values

public static RouterPolicyType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (RouterPolicyType c : RouterPolicyType.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static RouterPolicyType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

toString

public String toString()
Overrides:
toString in class Enum<RouterPolicyType>

ContactCenters
V. 0.9.9.

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