public class RandomizedSearchParams extends Object
RandomizedSearch
.Modifier and Type | Field and Description |
---|---|
double |
costThresProportion
Criteria for selecting the multi-start candidates for correction by simulation.
|
int |
currentPeriod
Set the period to optimize.
|
double |
delta
This parameter controls the maximum number of solution candidates to
test at each iteration of the randomized search (remove or switch).
|
boolean |
findInitialStaffing
If set to
true , then the program will
generate automatically the initial staffing using the methods
double, int) with parameters
initSLTarget and lowestCostRatio . |
double[] |
initSLTarget
This parameter is used to generate the initial staffing of the search.
|
double[] |
lowestCostRatio
For each call type, this represents the proportion of inflow calls
that goes to the cheapest agent group that can serve it.
|
int |
maxCand
This parameter and parameter delta control the maximum number of solution
candidates to test at each iteration during the randomized search.
|
int |
maxRSCPUsec
The maximum CPU time limit (in seconds) for the randomized search phase.
|
int |
numSimCorrection
The maximum number of solution candidates for the correction by simulation.
|
double |
opGlobalTargetSL
The global service level (SL) target used by the main methods
of
RandomizedSearch when
testing the feasibility of the solution and if
the parameter useLDTargetSL is true . |
double[] |
opTargetSL
The service level (SL) target for each call type used by the
main methods of
RandomizedSearch when
testing the feasibility of the solution and if
the parameter useLDTargetSL is true . |
long[] |
randomSeeds
Sets the seeds of the random stream used by the optimizer (these may affect indirectly the
simulator).
|
RandomizedSearch.SearchMode |
searchMode
Selects to execute the randomized search by mixing the remove and switch methods together
RandomizedSearch.switchAgents(int[]) , or by searching sequentially by applying the
remove, then the switch methods RandomizedSearch.removeAgents(int[]) and RandomizedSearch.switchAgents(int[]) . |
SimCorrector.SimFeasiblePriority |
simFeasiblePriority
Sets the priority in the getSimFeasible procedure, defined
by
SimCorrector.SimFeasiblePriority . |
double |
skillCost
The premium cost of an agent group for each additional skill above 1.
|
boolean |
useBusyCost
Chooses whether to use the
busyCost parameter from the call
center parameters or the skillCost parameter for the per agent cost. |
boolean |
useLDTargetSL
If
true the main methods of RandomizedSearch
(get feasible, remove and switch procedures) will use the
service level targets defined by
opGlobalTargetSL and opTargetSL . |
boolean |
useSimRemove
Set to
true to use the remove procedure SimCorrector.removeAgents(int[])
during the correction with simulation. |
boolean |
useSimSwitch
Set to
true to use the switch procedure SimCorrector.switchAgents(int[])
during the correction with simulation. |
boolean |
verbose
Chooses whether to print the algorithm to screen or not.
|
Constructor and Description |
---|
RandomizedSearchParams() |
Modifier and Type | Method and Description |
---|---|
List<Double> |
getInitSLTarget()
Returns the list service level (SL) targets to be used during the initialization
of the randomized search.
|
List<Double> |
getLowestCostRatio()
Returns the list of ratios for
lowestCostRatio . |
List<Double> |
getOpTargetSL()
Returns a list of service level targets for each call type
to be used during the randomized search (but not the correction by simulation).
|
List<Long> |
getRandomSeeds()
Returns the list of random seeds as
Long . |
void |
setInitSLTarget(List<Double> l)
Sets the list of service level (SL) targets for
the initialization of the randomized search.
|
void |
setLowestCostRatio(List<Double> l)
Sets the list of ratios of call volumes to be sent to the lowest
cost agent groups.
|
void |
setOpTargetSL(List<Double> l)
Sets the service level targets for each call type to be
used in the main method of
RandomizedSearch , but not
during the correction by simulation. |
void |
setRandomSeeds(List<Long> l)
Sets the seeds of the random stream, usually an array of 6
long for
MRG32k3a . |
public int currentPeriod
public int maxCand
int, double, int[], int)
,
double, int[], int)
or
int, double, int[], int)
,
the number of test candidates at the that iteration will be restricted to:
1 <SPAN CLASS="MATH"><</SPAN>= maxCand
.public double delta
int, double, int[], int)
,
int, double, int[], int)
or double, int[], int)
,
the number of test candidates at the that iteration will be restricted to:
This parameter allows the user to limit the CPU time of the methods.
public boolean findInitialStaffing
true
, then the program will
generate automatically the initial staffing using the methods
double, int)
with parameters
initSLTarget
and lowestCostRatio
.
If set to false
, then the program will use the staffing defined
in the call center parameter file as the initial solution.
We suggest to set this parameter to true
.public RandomizedSearch.SearchMode searchMode
RandomizedSearch.switchAgents(int[])
, or by searching sequentially by applying the
remove, then the switch methods RandomizedSearch.removeAgents(int[])
and RandomizedSearch.switchAgents(int[])
.
For the mix method, the user must enter the value: MIX_REMOVE_SWITCH
.
For the sequential method, the user must enter the value: SEQ_REMOVE_SWITCH
.public boolean useSimRemove
true
to use the remove procedure SimCorrector.removeAgents(int[])
during the correction with simulation.
We suggest to set to true
.public boolean useSimSwitch
true
to use the switch procedure SimCorrector.switchAgents(int[])
during the correction with simulation.public boolean useLDTargetSL
true
the main methods of RandomizedSearch
(get feasible, remove and switch procedures) will use the
service level targets defined by
opGlobalTargetSL
and opTargetSL
.
If false
, then the service level targets defined
in the call center parameters will be used.
Note that this does not affect on the correction by simulation SimCorrector
.public double opGlobalTargetSL
RandomizedSearch
when
testing the feasibility of the solution and if
the parameter useLDTargetSL
is true
.
This does not affect the correction by simulation of SimCorrector
.public SimCorrector.SimFeasiblePriority simFeasiblePriority
SimCorrector.SimFeasiblePriority
.
Set GLOBAL
: to satisfy the global service level (SL) first, or
Set CALLTYPES
: to satisfy the call type SL first.public boolean useBusyCost
busyCost
parameter from the call
center parameters or the skillCost
parameter for the per agent cost.
Set to true
to use the busyCost
parameter,
obtained with AgentGroupManager.getBusyCost()
.
Set to false
to use skillCost
to compute the
per agent cost.public double skillCost
useBusyCost
is set to false
.
This value is used to compute the per agent cost which is equal to:
public int maxRSCPUsec
public int numSimCorrection
initSLTarget.length
× lowestCostRatio.length
.public double costThresProportion
public boolean verbose
public double[] opTargetSL
RandomizedSearch
when
testing the feasibility of the solution and if
the parameter useLDTargetSL
is true
.
Each SL target must be between 0 and 1, inclusively.
This does not affect the correction by simulation of SimCorrector
.public double[] lowestCostRatio
This parameter corresponds to the parameter β in Section 4 of the paper.
public double[] initSLTarget
initSLTarget
.
Setting multiple values triggers a multi-start.
Each value should be between 0 and 1, inclusively.
We suggest a value around the global SL target.
This parameter corresponds to ξ in Section 4 of the paper.
public long[] randomSeeds
MRG32k3a
, which needs 6
long
. If null
, then it uses the default seeds.public List<Double> getOpTargetSL()
opTargetSL
is null
, then
this method returns an empty list (non-null list though).
A new list is created each time (deep copy).public void setOpTargetSL(List<Double> l)
RandomizedSearch
, but not
during the correction by simulation.
Each value must be between 0 and 1, inclusively.l
- the list containing the service level targets
for the randomized searchpublic List<Double> getLowestCostRatio()
lowestCostRatio
.
If the parameter lowestCostRatio
is null
,
this returns an empty list.public void setLowestCostRatio(List<Double> l)
l
- the list containing the service level targets
for the initializationpublic List<Double> getInitSLTarget()
initSLTarget
is null
,
this returns an empty list.public void setInitSLTarget(List<Double> l)
l
- the list containing the service level targets
for the initializationpublic List<Long> getRandomSeeds()
Long
.
If the parameter randomSeeds
is null
,
this returns an empty list.