public class KooleTalimApprox extends AbstractContactCenterEval implements ContactCenterEval
This approximation model can only estimate one period at a time. The available results are : occupancy for each agent group, the blocking rate, blocking probability, service level, delay probability and average waiting time. Only the aggregated results (over all call types) are available for the service level, delay probability and average waiting time.
The available performance measures are :
PerformanceMeasureType.SERVICELEVEL
(aggregated only),
PerformanceMeasureType.DELAYRATIO
(aggregated only)
PerformanceMeasureType.RATEOFBLOCKING
,
PerformanceMeasureType.BLOCKRATIO
,
PerformanceMeasureType.OCCUPANCY
,
PerformanceMeasureType.SERVEDRATES
,
PerformanceMeasureType.RATEOFSERVICES
and
PerformanceMeasureType.WAITINGTIME
(aggregated only).
General Usage : Use eval()
to evaluate and
getPerformanceMeasure(umontreal.iro.lecuyer.contactcenters.app.PerformanceMeasureType)
to retrieve the results.
Modifier and Type | Class and Description |
---|---|
class |
KooleTalimApprox.Network
This class is used to build the routing data structures that will be used
by the Koole-Talim approximation.
|
Modifier and Type | Field and Description |
---|---|
protected double |
agg_loss
The aggregated expected number of calls blocked.
|
protected double |
agg_lossPr
The aggregated probability of calls blocked.
|
protected double[] |
arrivalRates
The vector of arrival rates.
|
protected CallCenter |
cc
The call center model.
|
protected double[] |
cl_loss
The expected number of calls blocked.
|
protected double[] |
cl_lossPr
The blocking (or instant abandonment) probability for each call type.
|
protected int |
currentPeriod
The period of the call center to evaluate.
|
protected double |
delayProb
The aggregated delay probability.
|
protected double |
EW
The expected waiting time.
|
protected double[][] |
infl
Contains the inflow call rate of each call type that enters
a group, where the indexes are [call type][group]
|
protected double[][] |
inload
The inflow load between agent stations.
|
protected KooleTalimParams |
ktp
The Koole-Talim approximation parameters.
|
protected KooleTalimApprox.Network |
net
The ordering of the agents for the approximation.
|
protected int[] |
numAgents
The staffing vector and its length must be equal to
the number of agent groups.
|
protected int |
numGroups
Number of agent groups.
|
protected int |
numIteration
Saves the number of iterations needed for the last evaluation.
|
protected int |
numTypes
Number of call types.
|
protected double[] |
occu
Agent occupancy ratio for each group.
|
protected double[] |
pb
The blocking probability at each agent group station.
|
static PerformanceMeasureType[] |
perfMeasureTypes
The performance measures available with this approximation.
|
protected boolean |
seemsUnstable
Tell is the call center is unstable (not in steady-state and cannot compute the service level).
|
protected double[][] |
serviceRates
The matrix of service rates with indexes [call type][group]
|
protected double[] |
sk_load
The load of the calls that arrives at each group station.
|
protected double |
SL
The aggregated service level.
|
protected boolean |
verbose
Choose to print to screen
|
Constructor and Description |
---|
KooleTalimApprox(CallCenter cc,
KooleTalimParams ktp)
Initializes the KooleTalim approximator and builds the routing.
|
KooleTalimApprox(CallCenterParams mskccp,
KooleTalimParams ktp)
Initializes the KooleTalim approximator and builds the routing.
|
Modifier and Type | Method and Description |
---|---|
void |
approximate()
Approximates the blocking probability for each agent group per call type
and also the occupancy for each agent group.
|
void |
delayPerfMeasures(double AWT)
Approximates the service level and the mean wait time.
|
void |
eval() |
void |
findLossProbability()
Computes the loss probability per agents group and the loss rate.
|
String |
getAgentGroupName(int i) |
String |
getContactTypeName(int i) |
TimeUnit |
getDefaultUnit() |
Object |
getEvalOption(EvalOptionType option)
This method returns the staffing vector or the period to evaluate.
|
EvalOptionType[] |
getEvalOptions()
The only available options are:
EvalOptionType.STAFFINGVECTOR
and EvalOptionType.CURRENTPERIOD . |
int |
getNumAgentGroups() |
int |
getNumContactTypes()
Get the number of call types (includes call types with 0 volume).
|
int |
getNumInContactTypes() |
int |
getNumMainPeriods()
This always returns 1, because the approximation only evaluates only 1 period at a time.
|
int |
getNumMatricesOfAWT() |
int |
getNumOutContactTypes()
This function will always return 0, because the approximation
assumes no outbound calls.
|
int |
getNumWaitingQueues() |
DoubleMatrix2D |
getPerformanceMeasure(PerformanceMeasureType pmt) |
PerformanceMeasureType[] |
getPerformanceMeasures() |
String |
getWaitingQueueName(int i)
This will always return null, because there are no
waiting queues in this approximation.
|
boolean |
hasEvalOption(EvalOptionType option) |
boolean |
hasPerformanceMeasure(PerformanceMeasureType pmt) |
boolean |
isVerbose() |
static void |
main(String[] args)
Evaluates the performance of the call center for the current period with
the staffing defined in the call center parameter file.
|
void |
reset()
Resets the data according to the current period and changed the staffing to
the selected period.
|
void |
reset(CallCenter cc,
KooleTalimParams ktp)
Reset the call center with new parameters.
|
void |
reset(CallCenterParams mskccp,
KooleTalimParams ktp)
Reset the call center with new parameters.
|
boolean |
seemsUnstable()
Returns true if the approximation finds the model
is not in steady-state, and it cannot compute the service level.
|
void |
setEvalOption(EvalOptionType option,
Object value)
The only available options are:
EvalOptionType.STAFFINGVECTOR
and EvalOptionType.CURRENTPERIOD . |
void |
setVerbose(boolean v) |
formatStatistics, formatStatisticsExcel, formatStatisticsLaTeX, getEvalInfo, getReportParams, setReportParams
getAgentGroupProperties, getAgentGroupSegmentName, getAgentGroupSegmentProperties, getContactTypeProperties, getContactTypeSegmentName, getContactTypeSegmentProperties, getInContactTypeSegmentName, getInContactTypeSegmentProperties, getMainPeriodName, getMainPeriodSegmentName, getMatrixOfAWTName, getNumAgentGroupSegments, getNumAgentGroupsWithSegments, getNumContactTypeSegments, getNumContactTypesWithSegments, getNumInContactTypeSegments, getNumInContactTypesWithSegments, getNumMainPeriodSegments, getNumMainPeriodsWithSegments, getNumOutContactTypeSegments, getNumOutContactTypesWithSegments, getNumWaitingQueueSegments, getNumWaitingQueuesWithSegments, getOutContactTypeSegmentName, getOutContactTypeSegmentProperties, getWaitingQueueProperties, getWaitingQueueSegmentName, getWaitingQueueSegmentProperties
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
formatStatistics, formatStatisticsExcel, formatStatisticsLaTeX, getEvalInfo, getReportParams, setReportParams
getAgentGroupProperties, getAgentGroupSegmentName, getAgentGroupSegmentProperties, getContactTypeProperties, getContactTypeSegmentName, getContactTypeSegmentProperties, getInContactTypeSegmentName, getInContactTypeSegmentProperties, getMainPeriodName, getMainPeriodSegmentName, getMatrixOfAWTName, getNumAgentGroupSegments, getNumAgentGroupsWithSegments, getNumContactTypeSegments, getNumContactTypesWithSegments, getNumInContactTypeSegments, getNumInContactTypesWithSegments, getNumMainPeriodSegments, getNumMainPeriodsWithSegments, getNumOutContactTypeSegments, getNumOutContactTypesWithSegments, getNumWaitingQueueSegments, getNumWaitingQueuesWithSegments, getOutContactTypeSegmentName, getOutContactTypeSegmentProperties, getWaitingQueueProperties, getWaitingQueueSegmentName, getWaitingQueueSegmentProperties
protected CallCenter cc
protected KooleTalimParams ktp
protected int numIteration
protected KooleTalimApprox.Network net
protected int[] numAgents
setEvalOption(umontreal.iro.lecuyer.contactcenters.app.EvalOptionType, java.lang.Object)
.protected int currentPeriod
setEvalOption(umontreal.iro.lecuyer.contactcenters.app.EvalOptionType, java.lang.Object)
.protected int numTypes
protected int numGroups
protected double[] arrivalRates
protected double[][] serviceRates
protected double[][] infl
protected double[] pb
protected double[] occu
protected double SL
protected double delayProb
protected double EW
protected double[][] inload
protected double[] sk_load
protected double[] cl_lossPr
protected double[] cl_loss
arrivalRates
with the probability of blocking cl_lossPr
.protected double agg_loss
protected double agg_lossPr
protected boolean verbose
protected boolean seemsUnstable
public static final PerformanceMeasureType[] perfMeasureTypes
public KooleTalimApprox(CallCenterParams mskccp, KooleTalimParams ktp)
mskccp
- the parameters for the call center.ktp
- the parameters for the KooleTalim approximator.public KooleTalimApprox(CallCenter cc, KooleTalimParams ktp)
cc
- the call center parameters.ktp
- the parameters for the KooleTalim approximator.public static void main(String[] args) throws Exception
Exception
public void approximate()
public void findLossProbability()
approximate()
.public void delayPerfMeasures(double AWT)
AWT
- the acceptable waiting time.public void eval()
eval
in interface ContactCenterEval
public int getNumAgentGroups()
getNumAgentGroups
in interface ContactCenterInfo
public int getNumContactTypes()
getNumInContactTypes()
since the approximation assumes only inbound calls.getNumContactTypes
in interface ContactCenterInfo
public int getNumInContactTypes()
getNumInContactTypes
in interface ContactCenterInfo
public int getNumOutContactTypes()
getNumOutContactTypes
in interface ContactCenterInfo
public int getNumMainPeriods()
getNumMainPeriods
in interface ContactCenterInfo
public int getNumWaitingQueues()
getNumWaitingQueues
in interface ContactCenterInfo
public String getWaitingQueueName(int i)
getWaitingQueueName
in interface ContactCenterInfo
getWaitingQueueName
in class AbstractContactCenterInfo
public String getAgentGroupName(int i)
getAgentGroupName
in interface ContactCenterInfo
getAgentGroupName
in class AbstractContactCenterInfo
public String getContactTypeName(int i)
getContactTypeName
in interface ContactCenterInfo
getContactTypeName
in class AbstractContactCenterInfo
public boolean seemsUnstable()
seemsUnstable
in interface ContactCenterEval
public boolean isVerbose()
isVerbose
in interface ContactCenterEval
isVerbose
in class AbstractContactCenterEval
public void setVerbose(boolean v)
setVerbose
in interface ContactCenterEval
setVerbose
in class AbstractContactCenterEval
public TimeUnit getDefaultUnit()
getDefaultUnit
in interface ContactCenterInfo
public int getNumMatricesOfAWT()
getNumMatricesOfAWT
in interface ContactCenterInfo
public EvalOptionType[] getEvalOptions()
EvalOptionType.STAFFINGVECTOR
and EvalOptionType.CURRENTPERIOD
.getEvalOptions
in interface ContactCenterEval
public Object getEvalOption(EvalOptionType option)
getEvalOption
in interface ContactCenterEval
option
- the possible choices are EvalOptionType.STAFFINGVECTOR
and EvalOptionType.CURRENTPERIOD
.NoSuchElementException
.public boolean hasEvalOption(EvalOptionType option)
hasEvalOption
in interface ContactCenterEval
public void setEvalOption(EvalOptionType option, Object value)
EvalOptionType.STAFFINGVECTOR
and EvalOptionType.CURRENTPERIOD
.setEvalOption
in interface ContactCenterEval
option
- must be EvalOptionType.STAFFINGVECTOR
or EvalOptionType.CURRENTPERIOD
.value
- the new value.public PerformanceMeasureType[] getPerformanceMeasures()
getPerformanceMeasures
in interface ContactCenterEval
public boolean hasPerformanceMeasure(PerformanceMeasureType pmt)
hasPerformanceMeasure
in interface ContactCenterEval
public DoubleMatrix2D getPerformanceMeasure(PerformanceMeasureType pmt)
getPerformanceMeasure
in interface ContactCenterEval
public void reset(CallCenterParams mskccp, KooleTalimParams ktp)
mskccp
- The parameters for the multi-skill center.ktp
- The parameters for the Koole-Talim approximation.public void reset(CallCenter cc, KooleTalimParams ktp)
cc
- The parameters model for the multi-skill center.ktp
- The parameters for the Koole-Talim approximation.public void reset()
setEvalOption(umontreal.iro.lecuyer.contactcenters.app.EvalOptionType, java.lang.Object)
).reset
in interface ContactCenterEval