ContactCenters
V. 0.9.9.

Package umontreal.iro.lecuyer.contactcenters.server

Manages the simulation of the contact's service process.

See:
          Description

Interface Summary
AgentGroupListener Represents an agent-group listener which is notified when the number of agents in a group is modified or when a service starts or ends.
AgentListener Represents an agent listener being notified when the state of an individual agent changes.
 

Class Summary
AfterContactTimeGenerator Value generator for the after-contact time of contacts.
Agent Represents an individual agent in a detailed agent group.
AgentGroup Represents a group i of agents capable of serving some types of contacts.
AgentGroupSet Represents a set of agent groups for which it is possible to get the total number of members.
AgentGroupState Represents the state of an agent group, i.e., the contacts being served at a specific simulation time.
AgentState Represents the state of an agent in a group.
ContactTimeGenerator Value generator for the communication times of contacts.
DetailedAgentGroup Extends the AgentGroup class for a detailed agent group, where individual agents can be differentiated.
DetailedAgentGroupState Represents the state of a detailed agent group.
EndServiceEvent Represents the simulation event for a contact's end of service.
EndServiceEventDetailed Represents the end-service event for a detailed agent group.
GroupVolumeStat Computes statistics for a specific agent group.
GroupVolumeStatMeasureMatrix Agent group statistical collector implementing MeasureMatrix.
RestoreAgentsEvent Represents an event that restores the state of busy and ghost agents after the service of contacts are started, during state restoration.
SetNumAgentsEvent Represents a simulation that sets the number of agents and agents' efficiency in an agent group.
StartServiceEvent Represents an event that restarts the service of a contact.
 

Package umontreal.iro.lecuyer.contactcenters.server Description

Manages the simulation of the contact's service process. The purpose of the contact center is to offer some service which is provided by a pool of servers or agents sharing the same skills.

An agent group i, represented by an instance of AgentGroup, contains Ni(t)∈$ \NN$ members at simulation time t. Among these agents, $ \Ni$[i](t) are idle, and $ \Nb$[i](t) are busy. Only $ \Nf$[i](t)≤$ \Ni$[i](t) agents are available to serve new contacts.

The service of a contact is divided in two steps. After communicating with a customer (first step), an agent can perform after-contact work (second step), e.g., update an account, take some notes, etc. After the first step, the contact may exit the system, or be transferred to another agent. However, the agent becomes free only after the second step (if any) is over.

By default, for better efficiency, an agent group does not contain an object for each agent, preventing the simulator from differentiating them. Individual agents can of course be simulated by creating groups with a single member, but regrouping the agents can be useful for more efficient routing. The subclass DetailedAgentGroup offers an implementation where each individual agent is a separate object with its own characteristics. Each such agent can be added to or removed from a group at any time during a simulation.

This package also provides helper classes to assign service times to contacts and compute the integrals of the number of agents over simulation time.


ContactCenters
V. 0.9.9.

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