public class AgentGroupsOrdering extends Object
Partition the routing network into strong connectivity components algorithm is taken from "The Design and Analysis of Computer Algorithms" by Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, published by Addison-Wesley Publishing Company, year 1974, Addison-Wesley series in computer science and information processing, ISBN 0-201-00029-6.
This algorithm is called Kosaraju's algorithm, as credited by the authors.
Constructor and Description |
---|
AgentGroupsOrdering() |
Modifier and Type | Method and Description |
---|---|
static List<Integer>[] |
getAdjacencyLists(CallCenter cc)
Builds the adjacency list of each agent group.
|
static List<Integer>[] |
getAdjacencyLists(CallCenter cc,
int[] staffing)
Builds the adjacency list of each agent group, excluding groups with zero agents.
|
static List<Set<Integer>> |
getOrder(CallCenter cc)
Find an evaluation order of the partition into strong
connectivity component of the agent groups.
|
static List<Set<Integer>> |
getOrder(CallCenter cc,
int[] staffing)
Find an evaluation order of the partition into strong
connectivity component of the agent groups, for groups
with at least one agent.
|
static Set<Set<Integer>> |
getPartition(CallCenter cc)
Partition the agent groups in the routing network into strong
connectivity component sets or set of size 1 otherwise (not
part of a strong connectivity component).
|
static Set<Set<Integer>> |
getPartition(CallCenter cc,
int[] staffing)
Partition the agent groups in the routing network into strong
connectivity component sets or set of size 1 otherwise (not
part of a strong connectivity component) for groups
with at least one agent.
|
static void |
main(String[] args)
Prints the partition of the agent groups in strongly connected components
(could be 1 group).
|
public static void main(String[] args) throws Exception
Exception
public static Set<Set<Integer>> getPartition(CallCenter cc)
cc
- call center model parameters to retrieve the Type-to-Group routing map.public static Set<Set<Integer>> getPartition(CallCenter cc, int[] staffing)
cc
- call center model parameters to retrieve the Type-to-Group routing map.staffing
- vector containing the number of agents in each group.
Agent groups with zero agents are ignored. Pass null to include every group.public static List<Set<Integer>> getOrder(CallCenter cc)
cc
- call center model parameters to retrieve the Type-to-Group routing map.public static List<Set<Integer>> getOrder(CallCenter cc, int[] staffing)
cc
- call center model parameters to retrieve the Type-to-Group routing map.staffing
- vector containing the number of agents in each group.
Agent groups with zero agents are ignored. Pass null to include every group.public static List<Integer>[] getAdjacencyLists(CallCenter cc)
cc
- call center model parameters to retrieve the Type-to-Group routing map.public static List<Integer>[] getAdjacencyLists(CallCenter cc, int[] staffing)
cc
- call center model parameters to retrieve the Type-to-Group routing map.staffing
- vector containing the number of agents in each group.