ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.dialer
Class AgentsMoveDialerPolicy.AgentGroupInfo

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.dialer.AgentsMoveDialerPolicy.AgentGroupInfo
Enclosing class:
AgentsMoveDialerPolicy

public static class AgentsMoveDialerPolicy.AgentGroupInfo
extends Object

Represents a virtual agent group j for the AgentsMoveDialerPolicy. This class encapsulates information about inbound and outbound groups in the virtual group as well as thresholds, probabilities, and delays. It also implements methods to transfer agents from groups to groups.


Constructor Summary
AgentsMoveDialerPolicy.AgentGroupInfo(AgentGroup[] inboundGroups, double[] inboundGroupProbs, AgentGroup[] outboundGroups, double[] outboundGroupProbs, RandomStream stream)
          Constructs a new virtual agent group containing all inbound agent groups int inboundGroups, and all outbound agent groups in outboundGroups.
 
Method Summary
 double getDelayInIn()
          Returns the value of $ \dII$[j], which defaults to 0.
 double getDelayInOut()
          Returns the value of $ \dIO$[j], which defaults to 0.
 double getDelayOutIn()
          Returns the value of $ \dOI$[j], which defaults to 0.
 double getDelayOutOut()
          Returns the value of $ \dOO$[j], which defaults to 0.
 double[] getInboundGroupProbs()
          Returns the probabilities pj, i of selection for each inbound agent group.
 AgentGroup[] getInboundGroups()
          Returns the inbound agent group associated with this information object.
 int getMaximumIdleOutboundAgents()
          Returns the value of Mj, which defaults to 0.
 int getMinimumIdleInboundAgents()
          Returns the value of mj, which defaults to 0.
 double getMinimumIdleTime()
          Returns the value of tj, which defaults to 0.
 int getNumInOutMoves()
           
 int getNumOutInMoves()
           
 double[] getOutboundGroupProbs()
          Returns the probabilities pj, i of selection for each outbound agent group.
 AgentGroup[] getOutboundGroups()
          Returns the outbound agent group associated with this information object.
 void init()
          Initializes both agent groups, and resets the fields storing the last time moves happened.
 void makeAllInbound()
          Moves all outbound agents to the inbound group.
 void makeInboundIfNoOut()
           
 void setDelayInIn(double delayInIn)
          Sets the value of $ \dII$[j] to delayInIn.
 void setDelayInOut(double delayInOut)
          Sets the value of $ \dIO$[j] to delayInOut.
 void setDelayOutIn(double delayOutIn)
          Sets the value of $ \dOI$[j] to delayOutIn.
 void setDelayOutOut(double delayOutOut)
          Sets the value of $ \dOO$[j] to delayOutOut.
 void setMaximumIdleOutboundAgents(int maximumIdleAgents)
          Sets the value of Mj to maximumIdleAgents.
 void setMinimumIdleInboundAgents(int minimumIdleAgents)
          Sets the value of mj to minimumIdleAgents.
 void setMinimumIdleTime(double minimumIdleTime)
          Sets the value of tj to minimumIdleTime.
 void setRequiredEmptyGroupsInOut(AgentGroup[] groups)
           
 void setRequiredEmptyGroupsOutIn(AgentGroup[] groups)
           
 Simulator simulator()
           
 void startInboundToOutbound()
          Starts the process moving inbound agents to outbound for the agent groups associated with this object.
 void startOutboundToInbound()
          Similar to startInboundToOutbound(), for the outbound-to-inbound process.
 void stopInboundToOutbound()
          Stops the process moving inbound agents to the outbound group.
 void stopOutboundToInbound()
          Similar to stopInboundToOutbound(), for the outbound-to-inbound process.
 void transferToInbound(int n)
          Transfers n agents from the outbound groups of this object to its inbound group.
 boolean transferToInbound(int idxOut, Agent agent)
          Transfers the agent agent to a randomly-chosen inbound agent group.
 void transferToOutbound(int n)
          Transfers n agents from the inbound groups of this object to its outbound group.
 boolean transferToOutbound(int idxIn, Agent agent)
          Transfers the agent agent to a randomly-chosen outbound agent group.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AgentsMoveDialerPolicy.AgentGroupInfo

public AgentsMoveDialerPolicy.AgentGroupInfo(AgentGroup[] inboundGroups,
                                             double[] inboundGroupProbs,
                                             AgentGroup[] outboundGroups,
                                             double[] outboundGroupProbs,
                                             RandomStream stream)
Constructs a new virtual agent group containing all inbound agent groups int inboundGroups, and all outbound agent groups in outboundGroups. The arrays inboundGroupProbs and outboundGroupProbs contain probabilities pj, i of selection of agent groups as targets for transfers. The random stream stream is used to generated random numbers for permutations, and for selecting target agent groups during transfers.

Parameters:
inboundGroups - the inbound agent group.
inboundGroupProbs - the probabilities of selection for each inbound agent group when performing transfers.
outboundGroups - the outbound agent group.
outboundGroupProbs - the probabilities of selection for each outbound agent group when performing transfers.
Method Detail

setRequiredEmptyGroupsInOut

public void setRequiredEmptyGroupsInOut(AgentGroup[] groups)

setRequiredEmptyGroupsOutIn

public void setRequiredEmptyGroupsOutIn(AgentGroup[] groups)

simulator

public Simulator simulator()

getNumInOutMoves

public int getNumInOutMoves()

getNumOutInMoves

public int getNumOutInMoves()

getDelayInIn

public double getDelayInIn()
Returns the value of $ \dII$[j], which defaults to 0.


setDelayInIn

public void setDelayInIn(double delayInIn)
Sets the value of $ \dII$[j] to delayInIn.


getDelayInOut

public double getDelayInOut()
Returns the value of $ \dIO$[j], which defaults to 0.


setDelayInOut

public void setDelayInOut(double delayInOut)
Sets the value of $ \dIO$[j] to delayInOut.


getDelayOutIn

public double getDelayOutIn()
Returns the value of $ \dOI$[j], which defaults to 0.


setDelayOutIn

public void setDelayOutIn(double delayOutIn)
Sets the value of $ \dOI$[j] to delayOutIn.


getDelayOutOut

public double getDelayOutOut()
Returns the value of $ \dOO$[j], which defaults to 0.


setDelayOutOut

public void setDelayOutOut(double delayOutOut)
Sets the value of $ \dOO$[j] to delayOutOut.


getInboundGroups

public AgentGroup[] getInboundGroups()
Returns the inbound agent group associated with this information object.


getOutboundGroups

public AgentGroup[] getOutboundGroups()
Returns the outbound agent group associated with this information object.


getMaximumIdleOutboundAgents

public int getMaximumIdleOutboundAgents()
Returns the value of Mj, which defaults to 0.


setMaximumIdleOutboundAgents

public void setMaximumIdleOutboundAgents(int maximumIdleAgents)
Sets the value of Mj to maximumIdleAgents.


getMinimumIdleInboundAgents

public int getMinimumIdleInboundAgents()
Returns the value of mj, which defaults to 0.


setMinimumIdleInboundAgents

public void setMinimumIdleInboundAgents(int minimumIdleAgents)
Sets the value of mj to minimumIdleAgents.


getMinimumIdleTime

public double getMinimumIdleTime()
Returns the value of tj, which defaults to 0.


setMinimumIdleTime

public void setMinimumIdleTime(double minimumIdleTime)
Sets the value of tj to minimumIdleTime.


getInboundGroupProbs

public double[] getInboundGroupProbs()
Returns the probabilities pj, i of selection for each inbound agent group. Element k of the returned array corresponds to the probability associated with agent group k in the array returned by getInboundGroups().

Returns:
the probability of selection for inbound agent groups.

getOutboundGroupProbs

public double[] getOutboundGroupProbs()
Returns the probabilities pj, i of selection for each outbound agent group. Element k of the returned array corresponds to the probability associated with agent group k in the array returned by getOutboundGroups().

Returns:
the probability of selection for outbound agent groups.

transferToInbound

public void transferToInbound(int n)
Transfers n agents from the outbound groups of this object to its inbound group. For each transfer, the order of outbound agent groups is chosen randomly to avoid an outbound group having priority over the others.

Parameters:
n - the number of agents to transfer.

transferToOutbound

public void transferToOutbound(int n)
Transfers n agents from the inbound groups of this object to its outbound group. For each transfer, the order of inbound agent groups is chosen randomly to avoid an inbound group having priority over the others.

Parameters:
n - the number of agents to transfer.

transferToInbound

public boolean transferToInbound(int idxOut,
                                 Agent agent)
Transfers the agent agent to a randomly-chosen inbound agent group.

Parameters:
agent - the agent to transfer.

transferToOutbound

public boolean transferToOutbound(int idxIn,
                                  Agent agent)
Transfers the agent agent to a randomly-chosen outbound agent group.

Parameters:
agent - the agent to transfer.

startInboundToOutbound

public void startInboundToOutbound()
Starts the process moving inbound agents to outbound for the agent groups associated with this object. This method does nothing if the moving process is already started.


stopInboundToOutbound

public void stopInboundToOutbound()
Stops the process moving inbound agents to the outbound group.


makeInboundIfNoOut

public void makeInboundIfNoOut()

startOutboundToInbound

public void startOutboundToInbound()
Similar to startInboundToOutbound(), for the outbound-to-inbound process.


stopOutboundToInbound

public void stopOutboundToInbound()
Similar to stopInboundToOutbound(), for the outbound-to-inbound process.


makeAllInbound

public void makeAllInbound()
Moves all outbound agents to the inbound group. Any busy outbound agent is marked to be moved after its on-going service if finished.


init

public void init()
Initializes both agent groups, and resets the fields storing the last time moves happened.


ContactCenters
V. 0.9.9.

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