|
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.contactcenters.dialer.ThresholdDialerPolicy
umontreal.iro.lecuyer.contactcenters.dialer.BadContactMismatchRatesDialerPolicy
public class BadContactMismatchRatesDialerPolicy
Represents a threshold-based dialer's policy taking bad contact and mismatch
rates into account for dialing, as used in Deslaurier's blend call center
model [9]. This dialer's policy needs to be informed about the
contact center's activity through two methods:
notifyInboundContact(Contact,boolean)
, and
notifyOutboundContact(Contact,boolean)
. When an inbound contact is
processed (served, abandoned, or blocked) by the contact center, the
notifyInboundContact(Contact,boolean)
method needs to be called.
When an outbound contact is processed, the
notifyOutboundContact(Contact,boolean)
method must be called. For
both contact types, the user has to indicate this dialer's policy if the
processed contact must be considered as good or bad. Usually, a good
inbound contact is a contact meeting some service level requirements, e.g.,
having waited less than a certain time in queue. An outbound contact can be
considered as good if it is not a mismatch.
When the dialer's policy is asked a number of calls to make, it gets the
total number of free agents (t) in a test set. If this number is
smaller than a given minimum
st, no call is made. Otherwise,
the dialer looks at the rate of bad inbound contacts in the last p periods
of duration d. If this rate is smaller than or equal to a threshold
si, the dialer's policy evaluates
(t), the number of free
agents in a target set. If this number is smaller than
sd, no call is made. Otherwise, the base number of calls to
dial
n =
{
Math.round
(
κ(t))+ c - a, 0} is computed. Then, if the rate of bad
outbound contacts in the p last periods of duration d is smaller than or
equal to a threshold
so, 2n calls are made. Otherwise, n
calls are made.
Constructor Summary | |
---|---|
BadContactMismatchRatesDialerPolicy(DialerList list,
AgentGroupSet testSet,
AgentGroupSet targetSet,
int minFreeTest,
int minFreeTarget,
double maxBadContactRate,
double mismatchRateThresh,
int numCheckedPeriods,
double checkedPeriodDuration)
This is the same as the constructor BadContactMismatchRatesDialerPolicy(DialerList,AgentGroupSet,AgentGroupSet,int,int,double,int,double,double,int,double)
, with κ = 1 and c = 0. |
|
BadContactMismatchRatesDialerPolicy(DialerList list,
AgentGroupSet testSet,
AgentGroupSet targetSet,
int minFreeTest,
int minFreeTarget,
double kappa,
int c,
double maxBadContactRate,
double mismatchRateThresh,
int numCheckedPeriods,
double checkedPeriodDuration)
Constructs a new bad contact/mismatch rates dialer's policy with the dialer list list, test set testSet, target set targetSet. |
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. |
double |
getCheckedPeriodDuration()
Returns the duration d of the checked periods. |
double |
getCurrentBadContactRate()
Gets the current bad contact rate as used by getNumDials(umontreal.iro.lecuyer.contactcenters.dialer.Dialer) . |
double |
getCurrentMismatchRate()
Returns the current mismatch rate as used by getNumDials(umontreal.iro.lecuyer.contactcenters.dialer.Dialer) . |
SumMatrixSW |
getInBadContactsSumMatrix()
Returns the matrix of sums counting the number of bad inbound contacts notified to this dialing policy. |
SumMatrixSW |
getInTotalSumMatrix()
Returns the matrix of sums counting the total number of inbound contacts notified to this dialing policy. |
double |
getMaxBadContactRate()
Returns the maximal rate of bad contacts si for this dialer's policy. |
double |
getMismatchRateThresh()
Returns the threshold on the mismatch rate so for this dialer's policy. |
SumMatrixSW |
getMismatchSumMatrix()
Returns the matrix of sums counting the number of mismatches notified to this dialing policy. |
int |
getNumCheckedPeriods()
Returns the number of checked periods p for this dialer's policy. |
int |
getNumDials(Dialer dialer)
Returns the number of calls the dialer should try to make simultaneously at the current simulation time. |
SumMatrixSW |
getOutTotalSumMatrix()
Returns the matrix of sums counting the total number of outbound contacts for this dialing policy. |
void |
init(Dialer dialer)
Initializes this dialer's policy for a new simulation replication. |
void |
notifyInboundContact(Contact contact,
boolean bad)
Notify a processed inbound contact to this dialer's policy. |
void |
notifyOutboundContact(Contact contact,
boolean m)
Notifies an outbound contact to this dialer policy. |
void |
setCheckedPeriodDuration(double checkedPeriodDuration)
Sets the duration of the checked periods to checkedPeriodDuration. |
void |
setMaxBadContactRate(double maxBadContactRate)
Sets the maximal rate of bad contacts for this dialer's policy to maxBadContactRate. |
void |
setMismatchRateThresh(double mismatchRateThresh)
Sets the threshold on the mismatch rate to mismatchRateThresh. |
void |
setNumCheckedPeriods(int numCheckedPeriods)
Sets the number of checked periods to numCheckedPeriods. |
Methods inherited from class umontreal.iro.lecuyer.contactcenters.dialer.ThresholdDialerPolicy |
---|
getC, getDialerList, getKappa, getMinFreeAgentsTarget, getMinFreeAgentsTest, getTargetSet, getTestSet, setC, setDialerList, setKappa, setMinFreeAgentsTarget, setMinFreeAgentsTest, setTargetSet, setTestSet, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public BadContactMismatchRatesDialerPolicy(DialerList list, AgentGroupSet testSet, AgentGroupSet targetSet, int minFreeTest, int minFreeTarget, double maxBadContactRate, double mismatchRateThresh, int numCheckedPeriods, double checkedPeriodDuration)
BadContactMismatchRatesDialerPolicy(DialerList,AgentGroupSet,AgentGroupSet,int,int,double,int,double,double,int,double)
, with κ = 1 and c = 0.
list
- the dialer list from which to get contacts.testSet
- the test agent group set.targetSet
- the target agent group set.minFreeTest
- the minimal number of free agents in the test set.minFreeTarget
- the minimal number of free agents in the target set.maxBadContactRate
- the maximal rate of bad contacts.mismatchRateThresh
- the mismatch rate threshold.numCheckedPeriods
- the number of checked periods p.checkedPeriodDuration
- the duration d of checked periods.
NullPointerException
- if list, testSet or targetSet are
null.
IllegalArgumentException
- if a threshold on the number of agents, the number of
checked periods or the duration of checked periods are
negative, or a rate is negative or greater than 1.public BadContactMismatchRatesDialerPolicy(DialerList list, AgentGroupSet testSet, AgentGroupSet targetSet, int minFreeTest, int minFreeTarget, double kappa, int c, double maxBadContactRate, double mismatchRateThresh, int numCheckedPeriods, double checkedPeriodDuration)
list
- the dialer list from which to get contacts.testSet
- the test agent group set.targetSet
- the target agent group set.minFreeTest
- the minimal number of free agents in the test set.minFreeTarget
- the minimal number of free agents in the target set.kappa
- the κ multiplicative constant.c
- the c additive constant.maxBadContactRate
- the maximal rate of bad contacts.mismatchRateThresh
- the mismatch rate threshold.numCheckedPeriods
- the number of checked periods p.checkedPeriodDuration
- the duration d of checked periods.
NullPointerException
- if list, testSet or targetSet are
null.
IllegalArgumentException
- if a threshold on the number of agents, the number of
checked periods or the duration of checked periods are
negative, or a rate is negative or greater than 1.Method Detail |
---|
public double getMaxBadContactRate()
public void setMaxBadContactRate(double maxBadContactRate)
maxBadContactRate
- the new rate of bad contacts.
IllegalArgumentException
- if maxBadContactRate is smaller than 0 or greater
than 1.public double getMismatchRateThresh()
public void setMismatchRateThresh(double mismatchRateThresh)
mismatchRateThresh
- the threshold on the mismatch rate.
IllegalArgumentException
- if mismatchRateThresh is smaller than 0 or greater
than 1.public int getNumCheckedPeriods()
public void setNumCheckedPeriods(int numCheckedPeriods)
numCheckedPeriods
- the number of checked periods.
IllegalArgumentException
- if numCheckedPeriods is negative or 0.public double getCheckedPeriodDuration()
public void setCheckedPeriodDuration(double checkedPeriodDuration)
checkedPeriodDuration
- the duration of the checked periods.
IllegalArgumentException
- if checkedPeriodDuration is negative or 0.public void init(Dialer dialer)
DialerPolicy
init
in interface DialerPolicy
init
in class ThresholdDialerPolicy
dialer
- the dialer which initialized
this policy.public void dialerStarted(Dialer dialer)
DialerPolicy
dialerStarted
in interface DialerPolicy
dialerStarted
in class ThresholdDialerPolicy
dialer
- the started dialer.public void dialerStopped(Dialer dialer)
DialerPolicy
dialerStopped
in interface DialerPolicy
dialerStopped
in class ThresholdDialerPolicy
dialer
- the stopped dialer.public double getCurrentBadContactRate()
getNumDials(umontreal.iro.lecuyer.contactcenters.dialer.Dialer)
.
public double getCurrentMismatchRate()
getNumDials(umontreal.iro.lecuyer.contactcenters.dialer.Dialer)
.
public void notifyInboundContact(Contact contact, boolean bad)
contact
- the notified contact.bad
- true if a bad contact is notified, false if a
good contact is notified.public void notifyOutboundContact(Contact contact, boolean m)
contact
- the notified contact.m
- true if the notified contact is a mismatch,
false otherwise.public int getNumDials(Dialer dialer)
DialerPolicy
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.
getNumDials
in interface DialerPolicy
getNumDials
in class ThresholdDialerPolicy
dialer
- the triggered dialer.
public SumMatrixSW getInBadContactsSumMatrix()
public SumMatrixSW getInTotalSumMatrix()
public SumMatrixSW getMismatchSumMatrix()
public SumMatrixSW getOutTotalSumMatrix()
|
ContactCenters V. 0.9.9. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |