public class LossDelayApprox extends AbstractContactCenterEval implements ContactCenterEval
The type of approximation are : service level for each call type and for the entire call center, the occupancy for each agent groups, the blocking probability at each agent group, etc.
The basic steps to approximate a call center are :
1) Create a new object LossDelayApprox
with its parameter files.
2) Call eval()
.
To change the current period (if multi-period) :
1) Call setEvalOption(umontreal.iro.lecuyer.contactcenters.app.EvalOptionType, java.lang.Object)
with option type EvalOptionType.CURRENTPERIOD
and the period index as an Integer
object. The first period starts at index 0.
To change the staffing of the current period :
1) Call setEvalOption(umontreal.iro.lecuyer.contactcenters.app.EvalOptionType, java.lang.Object)
with option type EvalOptionType.STAFFINGVECTOR
and the new staffing as int[].
Note : Changing the period or the staffing will clear the previous evaluation results. However, if the user changed to the same current period, nothing is changed.
Note : All results are returned as a single period call center. Even if the matrix is supposed to support multiple periods, LD only returns the results of period p as period 0.
The available performance measures are :
PerformanceMeasureType.SERVICELEVEL
,
PerformanceMeasureType.RATEOFSERVICES
,
PerformanceMeasureType.OCCUPANCY
,
PerformanceMeasureType.SERVEDRATES
,
PerformanceMeasureType.ABANDONMENTRATIO
and
PerformanceMeasureType.RATEOFABANDONMENT
.
Note: This implementation will not modify the call center model used to
extract the parameters.
For example, changing the staffing vector by calling
the method java.lang.Object)
will only change the staffing vector used in this approximation algorithm object and
it will not change the call center model object
CallCenter
,
nor the parameter model CallCenterParams
.
Modifier and Type | Class and Description |
---|---|
class |
LossDelayApprox.LDResults
This class contains the results returned by the Loss-Delay approximation.
|
Modifier and Type | Field and Description |
---|---|
static PerformanceMeasureType[] |
perfMeasureTypes
The list of available measures of performance.
|
Constructor and Description |
---|
LossDelayApprox(CallCenter cc,
LossDelayParams ldParams)
Constructs a new approximator for the call center defined in mskParams
and with ldParams parameter for the approximation.
|
LossDelayApprox(CallCenterParams mskParams,
LossDelayParams ldParams)
Constructs a new approximator for the call center defined in mskParams
and with ldParams parameter for the approximation.
|
Modifier and Type | Method and Description |
---|---|
LossDelayApprox.LDResults |
approximate()
Approximates current period with the Loss Delay algorithm
and returns the results in a LD results object.
|
void |
eval() |
String |
getAgentGroupName(int i) |
String |
getContactTypeName(int i) |
TimeUnit |
getDefaultUnit() |
Object |
getEvalOption(EvalOptionType option) |
EvalOptionType[] |
getEvalOptions() |
long |
getLDEvalCount()
Returns the number of evaluation calls to this LossDelayApprox object.
|
long |
getNonConvergentCount()
Returns the number of evaluations was non-convergent with this LossDelayApprox object.
|
int |
getNumActiveAgentGroups()
Return the number of active agent groups for the current period.
|
int |
getNumActiveCallTypes()
Return the number of active call type of the current period.
|
int |
getNumAgentGroups() |
int |
getNumContactTypes() |
int |
getNumInContactTypes() |
int |
getNumMainPeriods() |
int |
getNumMatricesOfAWT() |
int |
getNumOutContactTypes() |
int |
getNumWaitingQueues()
Returns the total number of wait queues (total number of agent
groups that can have a wait queue) for the last evaluation.
|
DoubleMatrix2D |
getPerformanceMeasure(PerformanceMeasureType pmt) |
PerformanceMeasureType[] |
getPerformanceMeasures() |
LossDelayApprox.LDResults |
getResults()
Returns the results of the approximation in the
LossDelayApprox.LDResults data
structure of the last evaluation. |
int |
getSumSkillCount()
Return the sum of skill count.
|
String |
getWaitingQueueName(int i)
Returns the name of the wait queue with index i for
the last evaluation.
|
boolean |
hasEvalOption(EvalOptionType option) |
boolean |
hasPerformanceMeasure(PerformanceMeasureType pmt) |
boolean |
isVerbose() |
static void |
main(String[] args)
Execute the Loss-Delay approximation on the given call center model.
|
void |
reset()
Resets the Loss Delay approximator to the state right before
calling
eval() . |
boolean |
seemsUnstable() |
void |
setAbsErrorTolerance(double tol)
Set manually the maximum absolute error tolerance when
testing the convergence.
|
void |
setEvalOption(EvalOptionType option,
Object value) |
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
public static final PerformanceMeasureType[] perfMeasureTypes
public LossDelayApprox(CallCenterParams mskParams, LossDelayParams ldParams)
mskParams
- the parameters of the multi skill call center.ldParams
- the parameters of the approximation.public LossDelayApprox(CallCenter cc, LossDelayParams ldParams)
cc
- the parameters model of the multi skill call center.ldParams
- the parameters of the approximation.public static void main(String[] args) throws Exception
args
- the user must specify the call center model parameters and the Loss-delay
parameters.Exception
public LossDelayApprox.LDResults approximate()
LossDelayApprox.LDResults
class.public LossDelayApprox.LDResults getResults()
LossDelayApprox.LDResults
data
structure of the last evaluation.public void setAbsErrorTolerance(double tol)
tol
- the new error tolerancepublic void eval()
eval
in interface ContactCenterEval
public int getNumAgentGroups()
getNumAgentGroups
in interface ContactCenterInfo
public int getNumContactTypes()
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
i
- the index of the wait queue.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()
getEvalOptions
in interface ContactCenterEval
public Object getEvalOption(EvalOptionType option)
getEvalOption
in interface ContactCenterEval
public boolean hasEvalOption(EvalOptionType option)
hasEvalOption
in interface ContactCenterEval
public void setEvalOption(EvalOptionType option, Object value)
setEvalOption
in interface ContactCenterEval
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()
eval()
.
The period is set to the current period value given by
LossDelayParams.currentPeriod
.reset
in interface ContactCenterEval
public long getNonConvergentCount()
public long getLDEvalCount()
public int getNumActiveCallTypes()
public int getNumActiveAgentGroups()
public int getSumSkillCount()