ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.dialer
Class ThresholdDialerPolicy

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.dialer.ThresholdDialerPolicy
All Implemented Interfaces:
DialerPolicy
Direct Known Subclasses:
BadContactMismatchRatesDialerPolicy

public class ThresholdDialerPolicy
extends Object
implements DialerPolicy

Represents a threshold-based dialing policy selecting the number of calls to try based on the number of free agents in certain groups. Before trying to make calls, the policy determines the total number of free agents $ \Ntf$(t) in a test set of agent groups. If the number of free agents is greater than or equal to st, the policy counts the total number $ \Ndf$(t) of free agents in a target set of agent groups which may differ from the test set. If $ \Ndf$(t)≥sd, the dialer tries to make $ \htmax${Math.round ( κ$ \Ndf$(t))+ c - a, 0} calls, where κ$ \RR$ and c$ \NN$ are predefined numbers. The constant a is the result of Dialer.getNumActionEvents() if Dialer.isUsingNumActionsEvents() returns true, or 0 otherwise. Any parameter used by this policy can be changed at any time during the simulation.


Constructor Summary
ThresholdDialerPolicy(DialerList list, AgentGroupSet testGroups, AgentGroupSet targetGroups, int minFreeTest, double kappa, int c)
          Equivalent to int,int,double,int) ThresholdDialerPolicy (list, testGroups, targetGroups, minFreeTest, 1, kappa, c).
ThresholdDialerPolicy(DialerList list, AgentGroupSet testGroups, AgentGroupSet targetGroups, int minFreeTest, int minFreeTarget, double kappa, int c)
          Constructs a new dialer's policy with dialer list list, test set testGroups, and target set targetGroups.
 
Method Summary
 void dialerStarted(Dialer dialer)
          This method is called when the dialer using this policy is started.
 void dialerStopped(Dialer dialer)
          This method is called when the dialer using this policy is stopped.
 int getC()
          Returns the current value of the additive constant c for this policy.
 DialerList getDialerList(Dialer dialer)
          Returns the dialer list from which contacts have to be removed from, at the current simulation time.
 double getKappa()
          Returns the current value of the multiplicative constant κ for this policy.
 int getMinFreeAgentsTarget()
          Returns the minimal number of free agents sd in the target set to try outbound calls.
 int getMinFreeAgentsTest()
          Returns the minimal number of free agents st in the test set to try outbound calls.
 int getNumDials(Dialer dialer)
          Returns the number of calls the dialer should try to make simultaneously at the current simulation time.
 AgentGroupSet getTargetSet()
          Returns the current target set of agent groups.
 AgentGroupSet getTestSet()
          Returns the current test set of agent groups.
 void init(Dialer dialer)
          Initializes this dialer's policy for a new simulation replication.
 void setC(int c)
          Sets the additive constant c to c for this dialer's policy.
 void setDialerList(DialerList list)
          Sets the currently used dialer list to list.
 void setKappa(double kappa)
          Sets the multiplicative constant κ to kappa for this dialer policy.
 void setMinFreeAgentsTarget(int minFreeTarget)
          Sets the minimal number of free agents in the target set to minFreeTarget.
 void setMinFreeAgentsTest(int minFreeTest)
          Sets the minimal number of free agents in the test set to minFreeTest.
 void setTargetSet(AgentGroupSet targetGroups)
          Sets the target set of agent groups to targetGroups.
 void setTestSet(AgentGroupSet testGroups)
          Sets the test set of agent groups to testGroups.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ThresholdDialerPolicy

public ThresholdDialerPolicy(DialerList list,
                             AgentGroupSet testGroups,
                             AgentGroupSet targetGroups,
                             int minFreeTest,
                             int minFreeTarget,
                             double kappa,
                             int c)
Constructs a new dialer's policy with dialer list list, test set testGroups, and target set targetGroups. The free agents threshold for the test set is set to minFreeTest, the threshold is set to minFreeTarget for the target set, the multiplicative constant is set to kappa, and the additive constant to c.

Parameters:
list - the dialer list being used.
testGroups - the test set of agent groups.
targetGroups - the target set of agent groups.
minFreeTest - the (inclusive) minimum number of free agents in the test set.
minFreeTarget - the (inclusive) minimum number of free agents in the target set.
kappa - the multiplicative constant.
c - the additive constant.
Throws:
NullPointerException - if list, testGroups, or targetGroups are null.
IllegalArgumentException - if the free agents threshold is negative.

ThresholdDialerPolicy

public ThresholdDialerPolicy(DialerList list,
                             AgentGroupSet testGroups,
                             AgentGroupSet targetGroups,
                             int minFreeTest,
                             double kappa,
                             int c)
Equivalent to int,int,double,int) ThresholdDialerPolicy (list, testGroups, targetGroups, minFreeTest, 1, kappa, c).

Method Detail

getDialerList

public DialerList getDialerList(Dialer dialer)
Description copied from interface: DialerPolicy
Returns the dialer list from which contacts have to be removed from, at the current simulation time. This list should not be stored into another object since it could be constructed dynamically when DialerPolicy.getNumDials(Dialer) is called.

Specified by:
getDialerList in interface DialerPolicy
Parameters:
dialer - the dialer for which the dialer list is required.
Returns:
the associated dialer list.

setDialerList

public void setDialerList(DialerList list)
Sets the currently used dialer list to list.

Parameters:
list - the new dialer list.
Throws:
NullPointerException - if list is null.

getMinFreeAgentsTest

public int getMinFreeAgentsTest()
Returns the minimal number of free agents st in the test set to try outbound calls.

Returns:
the minimal number of free agents in the test set to dial.

setMinFreeAgentsTest

public void setMinFreeAgentsTest(int minFreeTest)
Sets the minimal number of free agents in the test set to minFreeTest.

Parameters:
minFreeTest - the new minimal number of free agents in the test set.
Throws:
IllegalArgumentException - if minFreeTest is negative.

getMinFreeAgentsTarget

public int getMinFreeAgentsTarget()
Returns the minimal number of free agents sd in the target set to try outbound calls.

Returns:
the minimal number of free agents in the target set to dial.

setMinFreeAgentsTarget

public void setMinFreeAgentsTarget(int minFreeTarget)
Sets the minimal number of free agents in the target set to minFreeTarget.

Parameters:
minFreeTarget - the new minimal number of free agents in the target set.
Throws:
IllegalArgumentException - if minFreeTarget is negative.

getKappa

public double getKappa()
Returns the current value of the multiplicative constant κ for this policy.

Returns:
the multiplicative constant.

setKappa

public void setKappa(double kappa)
Sets the multiplicative constant κ to kappa for this dialer policy.

Parameters:
kappa - the new multiplicative constant.

getC

public int getC()
Returns the current value of the additive constant c for this policy.

Returns:
the additive constant.

setC

public void setC(int c)
Sets the additive constant c to c for this dialer's policy.

Parameters:
c - the new additive constant.

getTestSet

public AgentGroupSet getTestSet()
Returns the current test set of agent groups.

Returns:
the test set of agent groups.

setTestSet

public void setTestSet(AgentGroupSet testGroups)
Sets the test set of agent groups to testGroups.

Parameters:
testGroups - the new test set of agent groups.
Throws:
NullPointerException - if testGroups is null.

getTargetSet

public AgentGroupSet getTargetSet()
Returns the current target set of agent groups.

Returns:
the target set of agent groups.

setTargetSet

public void setTargetSet(AgentGroupSet targetGroups)
Sets the target set of agent groups to targetGroups.

Parameters:
targetGroups - the new target set of agent groups.
Throws:
NullPointerException - if targetGroups is null.

init

public void init(Dialer dialer)
Description copied from interface: DialerPolicy
Initializes this dialer's policy for a new simulation replication. This method can be used, for example, to clear data structures containing information about a preceding simulation. This method should also clear the associated dialer list when appropriate.

Specified by:
init in interface DialerPolicy
Parameters:
dialer - the dialer which initialized this policy.

dialerStarted

public void dialerStarted(Dialer dialer)
Description copied from interface: DialerPolicy
This method is called when the dialer using this policy is started.

Specified by:
dialerStarted in interface DialerPolicy
Parameters:
dialer - the started dialer.

dialerStopped

public void dialerStopped(Dialer dialer)
Description copied from interface: DialerPolicy
This method is called when the dialer using this policy is stopped.

Specified by:
dialerStopped in interface DialerPolicy
Parameters:
dialer - the stopped dialer.

getNumDials

public int getNumDials(Dialer dialer)
Description copied from interface: DialerPolicy
Returns the number of calls the dialer should try to make simultaneously at the current simulation time.

If Dialer.isUsingNumActionsEvents() returns true, this method must take into account the current number of action events while determining the additional number of calls to dial. In the simplest and most common cases, the method subtracts the result of Dialer.getNumActionEvents() to the number of calls to dial. However, in some cases, it might be necessary to use Dialer.getNumActionEvents(int) to get the number of action events for each contact type individually.

Specified by:
getNumDials in interface DialerPolicy
Parameters:
dialer - the triggered dialer.
Returns:
the number of calls the dialer should try to make.

toString

public String toString()
Overrides:
toString in class Object

ContactCenters
V. 0.9.9.

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