|
ContactCenters V. 0.9.9. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectumontreal.iro.lecuyer.xmlbind.NamedInfo
umontreal.iro.lecuyer.contactcenters.msk.model.AgentGroupManager
public class AgentGroupManager
Manages an agent group in the call center model. This class implements the mechanisms necessary to construct the agent group, and to update its state during the simulation. It also manages agent disconnection if it is enabled.
By default, this agent group manager sets the number of
agents in the managed group to 0, and does not change it
during simulation.
However, subclasses such as AgentGroupManagerWithStaffing
can override the init()
method in order to set and
update the number of agents.
Constructor Summary | |
---|---|
AgentGroupManager(CallCenter cc,
AgentGroupParams par,
int i)
Constructs a new agent group manager for the call center cc, agent group i, and based on agent group parameters par. |
Method Summary | |
---|---|
void |
connectToRouter(Router router)
Connects the managed agent group to the router router by using the Router.setAgentGroup(int,AgentGroup)
method. |
static AgentGroupManager |
create(CallCenter cc,
AgentGroupParams par,
int i)
Constructs and returns a new agent group manager for call center cc, agent group with index i, and parameters par. |
protected AgentGroup |
createAgentGroup(AgentGroupParams par,
int i)
Constructs and returns the ith agent group for this call center. |
static boolean |
estimateParameters(AgentGroupParams par)
Estimates parameters relative to the agent group described by par. |
AgentGroup |
getAgentGroup()
Returns a reference to the managed agent group. |
double |
getAgentsMult()
Returns the factor by which the number of agents in the managed group given in parameter file is multiplied. |
double |
getBusyCost()
Returns the cost of a busy agent in the managed group during one simulation time unit. |
double |
getBusyCost(int mp)
Returns the cost of a busy agent managed by this group during main period mp, during one simulation time unit. |
CallCenter |
getCallCenter()
Returns a reference to the call center containing this agent group manager. |
MultiPeriodGen |
getDisconnectTimeGen()
Returns the random variate generator used for disconnect times. |
int[] |
getEffectiveStaffing()
Returns the staffing determining the effective number of agents in the managed group for each main period in the model. |
int |
getEffectiveStaffing(int mp)
Returns element mp of the array that would be returned by getEffectiveStaffing() . |
double |
getIdleCost()
Returns the cost of an idle agent in the managed group during one simulation time unit. |
double |
getIdleCost(int mp)
Returns the cost of an idle agent managed by this group during main period mp, during one simulation time unit. |
int |
getMaxAgents()
Returns the maximal number of agents in the managed group. |
int |
getMaxAgents(int mp)
Returns the maximal number of agents in the managed group during main period mp. |
int |
getMinAgents()
Returns the minimal number of agents in the managed group. |
int |
getMinAgents(int mp)
Returns the minimal number of agents in the managed group during main period mp. |
double |
getPerUseCost()
Returns the cost incurred each time an agent in the managed group starts the service of a call. |
double |
getPerUseCost(int mp)
Returns the cost incurred each time an agent in the managed group starts a service during main period mp. |
double[] |
getProbDisconnect()
Returns an array giving the probabilities of disconnection, for each main period. |
double |
getProbDisconnect(int mp)
Returns the probability that an agent ending a service during main period mp disconnects for a random time. |
RandomStream |
getProbDisconnectStream()
Returns the random stream used to test if an agent disconnects after the end of a service. |
AgentGroupSchedule |
getSchedule()
Returns the schedule associated with the managed agent group. |
int |
getSkillCount()
Returns the skill count associated with the managed agent group, or Integer.MAX_VALUE if no skill count was set explicitly by
the user. |
int[] |
getStaffing()
Returns the raw staffing of the managed agent group. |
int |
getStaffing(int mp)
Returns element mp of the array that would be returned by getStaffing() . |
double |
getWeight()
Returns the weight associated with the managed agent group. |
double |
getWeight(int mp)
Returns the weight of the managed agent group during main period mp. |
void |
init()
Calls init on the managed agent group. |
void |
setAgentsMult(double mult)
Sets the multiplier of the managed agent group to mult. |
void |
setProbDisconnectStream(RandomStream dpStream)
Sets the random stream used to test if an agents disconnects after the end of a service to dpStream. |
protected void |
setSchedule(AgentGroupSchedule schedule)
|
Methods inherited from class umontreal.iro.lecuyer.xmlbind.NamedInfo |
---|
getName, getProperties, getStringProperties |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AgentGroupManager(CallCenter cc, AgentGroupParams par, int i) throws AgentGroupCreationException
cc
- the call center model.par
- the parameters of the agent group to be managed.i
- the index of the agent group.
AgentGroupCreationException
- if an error occurs
while constructing the agent group manager, or the
associated agent group.Method Detail |
---|
public double getAgentsMult()
AgentGroupManagerWithStaffing.setStaffing(int[])
.
public void setAgentsMult(double mult)
mult
- the new multiplier.public void connectToRouter(Router router)
Router.setAgentGroup(int,AgentGroup)
method.
If agent disconnection is enabled, this method also ensures
that the listener handling disconnections is notified of
events related to the agent group before the router.
router
- the router the agent group is connected to.public double getWeight()
public int getSkillCount()
Integer.MAX_VALUE
if no skill count was set explicitly by
the user.
This method is mainly for internal use;
the recommended way to obtain the skill count is by using
RouterManager.getSkillCount(int)
after
RouterManager.initSkillCounts(RouterParams)
was called.
public double getIdleCost()
public double getBusyCost()
public double getPerUseCost()
public double getIdleCost(int mp)
getIdleCost()
if no per-period cost were given by the user
in parameter file.
mp
- the index of the tested main period.
public double getBusyCost(int mp)
getBusyCost()
if no per-period cost were given by the user
in parameter file.
mp
- the index of the tested main period.
public double getPerUseCost(int mp)
getPerUseCost()
if no
per-period costs were given in parameter file.
mp
- the index of the tested main period.
public double getWeight(int mp)
getWeight()
.
mp
- the index of the tested main period.
public int getMaxAgents()
public int getMinAgents()
public int getMaxAgents(int mp)
getMaxAgents()
if no per-period maximum number of agents were given
in parameter file.
mp
- the index of the tested main period.
public int getMinAgents(int mp)
getMinAgents()
if no per-period minimum number of agents were given
in parameter file.
mp
- the index of the tested main period.
public static AgentGroupManager create(CallCenter cc, AgentGroupParams par, int i) throws AgentGroupCreationException
AgentGroupManagerWithStaffing
is created.
If the parameters contain a schedule, an instance of
AgentGroupManagerWithSchedule
is constructed.
If the parameters contain information about individual agents,
an AgentGroupManagerWithAgents
object is created.
Otherwise, a plain AgentGroupManager
object is
created.
The created object can, depending on parameters, be converted
to an instance of AgentGroupManagerWithStaffing
.
The constructed (or converted) object is returned.
cc
- the call center model.par
- the parameters of the agent group to be managed.i
- the index of the agent group.
AgentGroupCreationException
- if an error occurs
while constructing the agent group manager, or the
associated agent group.protected AgentGroup createAgentGroup(AgentGroupParams par, int i) throws AgentGroupCreationException
AgentGroup
or
DetailedAgentGroup
instance, depending on the
return value of the
AgentGroupParams.isDetailed()
method.
i
- the agent group index.
AgentGroupCreationException
public CallCenter getCallCenter()
public RandomStream getProbDisconnectStream()
public void setProbDisconnectStream(RandomStream dpStream)
public MultiPeriodGen getDisconnectTimeGen()
public AgentGroup getAgentGroup()
public double[] getProbDisconnect()
public double getProbDisconnect(int mp)
public void init()
public int[] getStaffing()
This method is mainly for internal use;
the getEffectiveStaffing()
method should be used instead to take multipliers into
account.
The default behavior of this method is to return an array of 0's.
public int getStaffing(int mp)
getStaffing()
.
As with getStaffing()
, this method is for
internal use.
The method getEffectiveStaffing(int)
should be used instead.
mp
- the index of the tested main period.
public int[] getEffectiveStaffing()
getStaffing()
, and
multiplies each element of the returned array
by m*mi, where m is determined by
CallCenter.getAgentsMult()
and
mi is given by getAgentsMult()
.
The resulting numbers are rounded to the nearest integers, and
stored in the array being returned.
public int getEffectiveStaffing(int mp)
getEffectiveStaffing()
.
mp
- the index of the tested main period.
public AgentGroupSchedule getSchedule()
AgentGroupManagerWithSchedule
.
If this object is an instance of AgentGroupManagerWithStaffing
converted from an instance with schedule, this returns the schedule
of the original agent group manager with schedule.
Otherwise, this method returns null.
protected void setSchedule(AgentGroupSchedule schedule)
public static boolean estimateParameters(AgentGroupParams par) throws DistributionCreationException
AgentGroupSchedule.estimateParameters(AgentGroupScheduleParams)
to complete parameter estimation.
par
- the parameters of the agent group.
DistributionCreationException
- if an error
occurs during parameter estimation.
|
ContactCenters V. 0.9.9. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |