XML Schema "ccmsk.xsd"
Target Namespace:
http://www.iro.umontreal.ca/lecuyer/contactcenters/msk
Components:
global element, 121 local elements, 35 complexTypes, 11 simpleTypes, 2 element groups
Schema Location:
/u/simardr/java/contactcenters/source/umontreal/iro/lecuyer/schemas/ccmsk.xsd, see XML source
Imports Schemas (3):
cc.xsd [src], ccapp.xsd [src], ssj.xsd [src]
Annotation
Defines types for the parameters of the blend/multi-skill call center simulator. The main complex type defined in this schema is CallCenterParams which represents the whole call center. An element of this type with name MSKCCParams is also defined in this schema.
All Element Summary
agent (type ccmsk:AgentParams) Specifies the individual agents composing the group, with a particular schedule and attributes for each agent.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
agentGroup (type ccmsk:AgentGroupParams) Determines the parameters for each agent group.
Type:
Content:
complex, 12 attributes, 15 elements
Defined:
locally at 1 location
agentGroupInfo (type ccmsk:DialerAgentGroupParams) Describes the agent groups attached to the dialer, and how the dialer's policy moves agents from inbound groups to outbound groups.
Type:
Content:
complex, 7 attributes, 4 elements
Defined:
locally at 1 location
agentGroupRanks (type ssj:doubleList) Determines the vector of ranks used for selecting an agent group at a given stage of routing.
Type:
Content:
simple
Defined:
locally at 1 location
agentGroupRanksFunc (type ssj:Named) Represents a user-defined function computing ranks.
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
agentGroupRanksRel (type ssj:doubleList) Determines the vector of ranks used for selecting an agent group at a given stage of routing relative to the previously used vector.
Type:
Content:
simple
Defined:
locally at 1 location
agentGroupSegment (type ccmsk:SegmentParams) Similar to inboundTypeSegment for agent groups.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
all (type ccmsk:ConditionParamsList) Verifies that all the contained conditions apply.
Type:
Content:
complex, 10 elements
Defined:
locally at 1 location
arrivalProcess (type ccmsk:ArrivalProcessParams) Gives the parameters of a detached arrival process that can generate calls of several types.
Type:
Content:
complex, 15 attributes, 16 elements
Defined:
locally at 2 locations
arrivalRates (type cc:MultiPeriodGenParams) Determines the probability distribution for the arrival rate of each period of the horizon.
Type:
Content:
complex, 6 attributes, 4 elements
Defined:
locally at 1 location
arrivals (type ssj:nonNegativeDoubleList) Determines the parameters specific to the arrival process being used.
Type:
Content:
simple
Defined:
locally at 1 location
arvGen (type ssj:RandomVariateGenParams) Determines the random variate generator used to generate the total number of arrivals for each replication, when the type attribute is set to DIRICHLET.
Type:
Content:
simple, 6 attributes
Defined:
locally at 1 location
busyCostPeriod (type ssj:nonNegativeDoubleList) Determines the cost of one busy agent per time unit during individual main period.
Type:
Content:
simple
Defined:
locally at 1 location
busyGen (type ssj:RandomVariateGenParams) Determines the parameters of the random variate generator used to generate the busyness factor for increased variability of this arrival process.
Type:
Content:
simple, 6 attributes
Defined:
locally at 1 location
busynessGen (type ssj:RandomVariateGenParams) Determines the parameters of the random variate generator used to generate the busyness factor for increased variability of arrival processes.
Type:
Content:
simple, 6 attributes
Defined:
locally at 1 location
call (type ccmsk:ProducedCallTypeParams) Determines calls produced by this source.
Type:
Content:
complex, 2 attributes, 1 element
Defined:
locally at 1 location
callTypeRouting (type ccmsk:CallTypeRoutingParams) Describes the routing logic used for a specific call type by the OVERFLOWANDPRIORITY routing policy.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
callTypeSegment (type ccmsk:SegmentParams) Similar to inboundTypeSegment for all call types, inbound or outbound.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
case (type ccmsk:RoutingCaseParams) Describes a case by a condition, and vectors of ranks used if the condition applies.
Type:
Content:
complex, 16 elements
Defined:
locally at 1 location
ccmsk:MSKCCParams Main element representing parameters of a call center.
Type:
Content:
complex, 16 attributes, 17 elements
Used:
never
conferenceTime (type ccmsk:ServiceTimeParams) Determines the distribution of the conference times for calls of this type.
Type:
Content:
complex, 8 attributes, 4 elements
Defined:
locally at 1 location
copulaSigma (type ssj:DoubleArray) Determines the correlation matrix used by the Gamma-Poisson doubly stochastic arrival process with correlared Gamma rates.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
custom (type ssj:Named) Represents a user-defined condition.
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
data (type ssj:IntArray) Determines the data used to estimate the parameters of the arrival process.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
default (type ccmsk:DefaultCaseParams) Describes the default case with vectors of ranks used if no case applies.
Type:
Content:
complex, 6 elements
Defined:
locally at 1 location
defaultArrivalProcess (type ccmsk:ArrivalProcessParams) Select the type of arrival process used by default in all the arrival processes for the cases when it is not specified.
Type:
Content:
complex, 15 attributes, 16 elements
Defined:
locally at 1 location
delaysGT (type ssj:NonNegativeDurationArray) Determines the matrix of delays giving, for each (agent group, contact type) pair, the minimal delay a contact of the corresponding type must wait to be accepted for possible service by an agent in the corresponding group.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
dialer (type ccmsk:DialerParams) Gives the parameters of a detached dialer that can generate calls of several types.
Type:
Content:
complex, 17 attributes, 7 elements
Defined:
locally at 2 locations
dialerLimit (type ccmsk:DialerLimitParams) Determines limits on the number of calls that can be dialed during a given time interval.
Type:
Content:
complex, 3 attributes, 1 element
Defined:
locally at 1 location
disconnectTime (type cc:MultiPeriodGenParams) Determines the probability distribution of the time an agent remains unavailable at the end of a service if it disconnects.
Type:
Content:
complex, 6 attributes, 4 elements
Defined:
locally at 1 location
either (type ccmsk:ConditionParamsList) Verifies that at least one of the contained conditions applies.
Type:
Content:
complex, 10 elements
Defined:
locally at 1 location
expectedWaitingTimeThresh (type ssj:nonNegativeDurationList) Determines the minimal expected waiting time for a customer to be offered the option to be called back.
Type:
Content:
simple
Defined:
locally at 1 location
expectedWaitingTimesMult (type ssj:nonNegativeDoubleList) Determines the factor multiplying the expected waiting time when determining how long a customer will wait in virtual queue before it is called back.
Type:
Content:
simple
Defined:
locally at 1 location
failTime (type cc:MultiPeriodGenParams) Similar to reachTime for the dialing delay necessary for a dialed call to fail.
Type:
Content:
complex, 6 attributes, 4 elements
Defined:
locally at 1 location
fracBusyAgents (type ccmsk:TwoIndicesWithTypesParams) Compares the fraction of busy agents in group with index given by the first attribute with that of the agent group identified by the second attribute.
Type:
Content:
empty, 5 attributes
Defined:
locally at 1 location
fracBusyAgentsThresh (type ccmsk:IndexThreshWithTypeParams) Compares the fraction of busy agents in group with index given by the index attribute with the threshold given by the threshold attribute.
Type:
Content:
empty, 4 attributes
Defined:
locally at 1 location
groupToTypeMap (type ssj:IntArray) Determines the group-to-type map routing table.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
idleCostPeriod (type ssj:nonNegativeDoubleList) Determines the cost of one idle agent per time unit during individual main period.
Type:
Content:
simple
Defined:
locally at 1 location
inboundGroup (type ccmsk:AgentGroupIndex) Gives the index of an agent group accepting inbound calls, along with a probability of selection for the agent group.
Type:
Content:
empty, 2 attributes
Defined:
locally at 1 location
inboundType (type ccmsk:InboundTypeParams) Determines the parameters for each inbound call type.
Type:
Content:
complex, 10 attributes, 21 elements
Defined:
locally at 1 location
inboundTypeSegment (type ccmsk:SegmentParams) Defines a segment regrouping several inbound call types, for statistical collecting.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
incidenceMatrixGT (type ssj:BooleanArray) Determines the group-to-type incidence matrix for this router.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
incidenceMatrixTG (type ssj:BooleanArray) Determines the type-to-group incidence matrix for this router.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
lambdas (type ssj:nonNegativeDoubleList) Determines the values of the arrival rate at each time given by times, when the arrival process is based on a time-varying arrival rate.
Type:
Content:
simple
Defined:
locally at 1 location
maxAgentsPeriod (type ssj:nonNegativeIntList) Determines the maximal number of agents that can be present in this group during each period.
Type:
Content:
simple
Defined:
locally at 1 location
minAgentsPeriod (type ssj:nonNegativeIntList) Similar to maxAgentsPeriod for the minimal number of agents in the group.
Type:
Content:
simple
Defined:
locally at 1 location
minFreeAgentsTarget (type ssj:nonNegativeIntList) Determines, for each main period, the total minimal number of free agents needed in the target set for performing outbound calls.
Type:
Content:
simple
Defined:
locally at 1 location
minFreeAgentsTest (type ssj:nonNegativeIntList) Determines, for each main period, the total minimal number of free agents needed in the test set for the dialer to perform outbound calls.
Type:
Content:
simple
Defined:
locally at 1 location
nortaGamma (type ssj:positiveDoubleList) Determines the first parameters used for the marginal negative binomials, for the NORTA-driven arrival process.
Type:
Content:
simple
Defined:
locally at 1 location
nortaP (type ssj:double01iList) Determines the second parameters used for the marginal negative binomials, for the NORTA-driven arrival process.
Type:
Content:
simple
Defined:
locally at 1 location
nortaSigma (type ssj:DoubleArray) Determines the correlation matrix used by the NORTA-driven arrival process.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
numAgents (type ssj:nonNegativeIntList) Gives the number of agents for each shift of this schedule.
Type:
Content:
simple
Defined:
locally at 1 location
numAgentsData (type ssj:IntArray) Gives the vectors of agents for different days assumed i.i.d.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
numAgentsData (type ssj:intList) Gives the number of agents observed during a certain number of i.i.d.\ days, on this schedule shift.
Type:
Content:
simple
Defined:
locally at 1 location
numFreeAgents (type ccmsk:TwoIndicesParams) Compares the number of free agents in group with index given by the first attribute with that of the agent group identified by the second attribute.
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
numFreeAgentsThresh (type ccmsk:IndexThreshIntParams) Compares the number of free agents in group with index given by the index attribute with the threshold given by the threshold attribute.
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
outboundGroup (type ccmsk:AgentGroupIndex) Gives the index of an agent group accepting outbound calls, along with a probability of selection for the agent group.
Type:
Content:
empty, 2 attributes
Defined:
locally at 1 location
outboundType (type ccmsk:OutboundTypeParams) Determines the parameters for each outbound call type.
Type:
Content:
complex, 11 attributes, 26 elements
Defined:
locally at 1 location
outboundTypeSegment (type ccmsk:SegmentParams) Similar to inboundTypeSegment for outbound call types.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
patienceTime (type cc:MultiPeriodGenParams) Determines the distribution and random variate generator for the patience times of calls of this type.
Type:
Content:
complex, 6 attributes, 4 elements
Defined:
locally at 1 location
patienceTimesMultCallBack (type ssj:nonNegativeDoubleList) Determines the patience time multiplier for customers in the virtual queue but joining the regular queue because there is no agent at the time they are called back.
Type:
Content:
simple
Defined:
locally at 1 location
patienceTimesMultNoVirtualQueue (type ssj:nonNegativeDoubleList) Determines the multiplier for the patience time of customers refusing to join the virtual queue.
Type:
Content:
simple
Defined:
locally at 1 location
perUseCostPeriod (type ssj:nonNegativeDoubleList) Determines the cost incurred when an agent in this group starts a service during individual main period.
Type:
Content:
simple
Defined:
locally at 1 location
periodSegment (type ccmsk:SegmentParams) Similar to inboundTypeSegment for main periods.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
poissonGammaRate (type ssj:nonNegativeDoubleList) Determines the arrival rate parameters for the Poisson-gamma arrival process.
Type:
Content:
simple
Defined:
locally at 1 location
poissonGammaShape (type ssj:nonNegativeDoubleList) Determines the shape parameters for the Poisson-gamma arrival process.
Type:
Content:
simple
Defined:
locally at 1 location
preServiceTimeNoConf (type ccmsk:ServiceTimeParams) Determines the distribution of the pre-service times for calls of this type.
Type:
Content:
complex, 8 attributes, 4 elements
Defined:
locally at 1 location
previewTime (type ccmsk:ServiceTimeParams) Determines the distribution of the preview times for calls of this type.
Type:
Content:
complex, 8 attributes, 4 elements
Defined:
locally at 1 location
probAbandon (type ssj:double01iList) Determines the probability of immediate abandonment, for each main period.
Type:
Content:
simple
Defined:
locally at 1 location
probAgents (type ssj:nonNegativeDoubleList) Determines the presence probability for each agent in the group and each main period.
Type:
Content:
simple
Defined:
locally at 2 locations
probDisconnect (type ssj:double01iList) Determines the probability that an agent of this group becomes unavailable (temporarily disconnects) for a random time after it has served a call, for each main period.
Type:
Content:
simple
Defined:
locally at 1 location
probPeriod (type ssj:double01iList) Determines the probability for a call of the specified type to be produced by the associated call source, for each main period.
Type:
Content:
simple
Defined:
locally at 1 location
probRPC (type ssj:double01iList) Determines the probability of right party connect after a customer is reached by the dialer, for each main period.
Type:
Content:
simple
Defined:
locally at 1 location
probReach (type ssj:double01iList) Determines the probability of reaching a customer (right party connect) when dialing, for each main period.
Type:
Content:
simple
Defined:
locally at 1 location
probTransfer (type ssj:DoubleArray) Gives a I x P matrix of probabilities of transfer.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
probTransferWait (type ssj:DoubleArray) Gives a I x P matrix of probabilities that the primary agent in group i waits until the transferred call arrived during main period p reaches a secondary agent or abandons, before the primary agent gets free.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
probVirtualQueue (type ssj:double01iList) Determines the probability that a customer accepts to join the virtual queue, and be called back at a later time, provided that the customer is offered the option to be called back.
Type:
Content:
simple
Defined:
locally at 1 location
probVirtualQueueCallBack (type ssj:double01iList) Determines the probability of success when calling back a customer in the virtual queue.
Type:
Content:
simple
Defined:
locally at 1 location
properties (type ssj:PropertiesParams) Defines properties for the described model.
Type:
Content:
complex, 14 elements
Defined:
locally at 2 locations
queueRanks (type ssj:doubleList) Determines the vector of ranks used for deciding in which waiting queues a call not served immediately goes in.
Type:
Content:
simple
Defined:
locally at 1 location
queueRanksFunc (type ssj:Named) Similar to agentGroupRanksFunc for ranks associated with waiting queues.
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
queueRanksRel (type ssj:doubleList) Similar to agentGroupRanksRel for priorities of queues.
Type:
Content:
simple
Defined:
locally at 1 location
queueSizeThresh (type ccmsk:IndexThreshIntWithTypeParams) Compares the waiting queue with index given by the index attribute with the threshold given by the threshold attribute using the relationship given by the rel attribute.
Type:
Content:
empty, 4 attributes
Defined:
locally at 1 location
queueSizes (type ccmsk:TwoIndicesWithTypesParams) Compares the waiting queue with index given by the first attribute with the waiting queue identified by the second attribute using the relationship given by the rel attribute.
Type:
Content:
empty, 5 attributes
Defined:
locally at 1 location
queueWeights (type ssj:nonNegativeDoubleList) Determines the weight of each waiting queue q attached to the router.
Type:
Content:
simple
Defined:
locally at 1 location
ranksGT (type ssj:DoubleArray) Determines the group-to-type matrix of ranks used for contact selection by some routing policies.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
ranksGTUpdate (type ccmsk:DoubleArrayWithMinWaitingTime) Determines the matrix of ranks used for contact selection by some routing policies, for contacts having waited at least the given minimal waiting time.
Type:
Content:
complex, 1 attribute, 1 element
Defined:
locally at 1 location
ranksTG (type ssj:DoubleArray) Determines the type-to-group matrix of ranks used for agent selection by some routing policies.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
reachTime (type cc:MultiPeriodGenParams) Determines the distribution and random variate generator for the time to reach a customer after dialing starts for that customer.
Type:
Content:
complex, 6 attributes, 4 elements
Defined:
locally at 1 location
requiredEmptyGroupsInOut (type ssj:nonNegativeIntList) Gives the list of agent groups that must be empty, i.e. contain no busy or idle agent, for inbound agents in this virtual group to become outbound agents.
Type:
Content:
simple
Defined:
locally at 1 location
requiredEmptyGroupsOutIn (type ssj:nonNegativeIntList) Similar to requiredEmptyGroupsInOut for outbound-to-inbound moves.
Type:
Content:
simple
Defined:
locally at 1 location
router (type ccmsk:RouterParams) Determines the parameters of the router used to assign calls to agents.
Type:
Content:
complex, 12 attributes, 17 elements
Defined:
locally at 1 location
routingTableSources (type ccmsk:RoutingTableSources) Determines how missing routing tables are constructed from given information.
Type:
Content:
empty, 6 attributes
Defined:
locally at 1 location
schedule (type ccmsk:AgentGroupScheduleParams) Determines the schedule of the agents in this group.
Type:
Content:
complex, 5 elements
Defined:
locally at 1 location
serviceLevel (type ccapp:ServiceLevelParams) Determines the acceptable waiting times used to estimate performance measures based on the service level.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
serviceTime (type ccmsk:ServiceTimeParams) Determines the distribution of the service times for calls of this type.
Type:
Content:
complex, 8 attributes, 4 elements
Defined:
locally at 1 location
serviceTimesMult (type ssj:positiveDoubleList) Determines the factor multiplying the service time when an agent in this group is serving a contact of a specific type.
Type:
Content:
simple
Defined:
locally at 1 location
serviceTimesMultCallBack (type ssj:DoubleArray) Determines the service time multiplier for customers called back.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
serviceTimesMultNoVirtualQueue (type ssj:DoubleArray) Determines the multiplier for the service time of customers refusing to join the virtual queue.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
serviceTimesMultTransfer (type ssj:DoubleArray) Determines the service time multiplier for customers transferred to another agent after the service.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
shift (type ccmsk:ScheduleShiftParams) Defines shifts that can be used in schedules of agents.
Type:
Content:
complex, 4 attributes, 2 elements
Defined:
locally at 3 locations
shiftMatrix (type ssj:BooleanArray) Determines the default matrix of shifts for the schedule of agents.
Type:
Content:
complex, 1 element
Defined:
locally at 2 locations
shiftPart (type ccmsk:ShiftPartParams) Determines the parts of the shift.
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
skillCounts (type ssj:nonNegativeIntList) Determines the skill count for each agent group.
Type:
Content:
simple
Defined:
locally at 1 location
sourceToggleTime (type ccmsk:TimeIntervalParams) Determines the simulation times at which the call source is enabled.
Type:
Content:
empty, 2 attributes
Defined:
locally at 1 location
staffing (type ssj:nonNegativeIntList) Determines the staffing vector giving the number of available agents during each main period.
Type:
Content:
simple
Defined:
locally at 1 location
staffingData (type ssj:IntArray) Gives the staffing vector for different days assumed i.i.d.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
stage (type ccmsk:RoutingStageParams) Describes a specific stage of the routing, for a particular call type.
Type:
Content:
complex, 1 attribute, 2 elements
Defined:
locally at 1 location
stat (type ccmsk:StatConditionParams) Establishes a condition on statistics concerning a given type of performance measure.
Type:
Content:
complex, 3 attributes, 2 elements
Defined:
locally at 1 location
statWithStat (type ccmsk:TwoIndicesParams) Compares statistics given by indices first and second, using the relationship given by rel.
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
statWithThresh (type ccmsk:IndexThreshParams) Compares a statistic with index given by the index attribute with a constant given by threshold attribute, using the relationship given by the rel attribute.
Type:
Content:
empty, 3 attributes
Defined:
locally at 1 location
targetFracAgents (type ssj:double01iList) Determines the desired fraction of the total number of agents in all groups that serve contacts of each type.
Type:
Content:
simple
Defined:
locally at 1 location
targetQueueRatio (type ssj:nonNegativeDoubleList) Determines the target queue ratio used by queue-ratio overflow router.
Type:
Content:
simple
Defined:
locally at 1 location
times (type ssj:nonNegativeDurationList) Determines the times at which the arrival rate is specified, for some Poisson process with a time-varying arrival rate.
Type:
Content:
simple
Defined:
locally at 1 location
transferTarget (type ccmsk:ProducedCallTypeParams) Determines the possible type identifiers of the new (virtual) call which is created when a call is transferred by an agent to another agent.
Type:
Content:
complex, 2 attributes, 1 element
Defined:
locally at 1 location
transferTime (type ccmsk:ServiceTimeParams) Determines the distribution of the transfer times for calls of this type.
Type:
Content:
complex, 8 attributes, 4 elements
Defined:
locally at 1 location
typeToGroupMap (type ssj:IntArray) Determines the type-to-group map routing table.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
types (type ssj:nonNegativeIntList) Gives the list of call types for which this limit applies.
Type:
Content:
simple
Defined:
locally at 1 location
values (type embedded) Determines the content of the segment, i.e., the indices of the components included in it.
Type:
Content:
simple
Defined:
locally at 1 location
weightPeriod (type ssj:nonNegativeDoubleList) Determines the weight of this call type during individual main period.
Type:
Content:
simple
Defined:
locally at 2 locations
weightsGT (type ssj:DoubleArray) Determines the group-to-type matrix of weights used for contact selection by some routing policies.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
weightsTG (type ssj:DoubleArray) Determines the type-to-group matrix of weights used for agent selection by some routing policies.
Type:
Content:
complex, 1 element
Defined:
locally at 1 location
Complex Type Summary
ccmsk:AgentGroupIndex Gives the index of an agent group with a probability that the agent group is selected.
Content:
empty, 2 attributes
Includes:
definitions of 2 attributes
Used:
ccmsk:AgentGroupParams Contains the parameters for an agent group in a blend/multi-skill call center.
Content:
complex, 12 attributes, 15 elements
Includes:
definitions of 11 attributes and 14 elements
Used:
ccmsk:AgentGroupScheduleParams Represents the schedule of agents in a specific group.
Content:
complex, 5 elements
Includes:
definitions of 5 elements
Used:
ccmsk:AgentParams Defines parameters for an individual agent.
Content:
complex, 1 attribute, 2 elements
Includes:
definition of 1 element
Used:
ccmsk:ArrivalProcessParams Represents the parameters for an arrival process producing inbound calls.
Content:
complex, 15 attributes, 16 elements
Includes:
definitions of 12 attributes and 13 elements
Used:
ccmsk:CallCenterParams Specifies the common as well as call-type specific parameters for a blend and multi-skill call center model.
Content:
complex, 16 attributes, 17 elements
Includes:
definitions of 16 attributes and 17 elements
Used:
ccmsk:CallSourceParams Defines the parameters for a call source generating inbound or outbound calls, possibly of more than one types.
Content:
complex, 3 attributes, 3 elements
Includes:
definitions of 2 attributes and 2 elements
Used:
ccmsk:CallTypeParams Represents the parameters common for inbound and outbound call types, used by blend/multi-skill call center models.
Content:
complex, 10 attributes, 20 elements
Includes:
definitions of 9 attributes and 19 elements
Used:
ccmsk:CallTypeRoutingParams Describes the routing logic for a specific call type by a sequence of stages defined by a minimal waiting time, and functions generating vectors of ranks.
Content:
complex, 1 element
Includes:
definition of 1 element
Used:
ccmsk:ConditionParams Represents a condition on the state of a call center.
Content:
complex, 10 elements
Used:
ccmsk:ConditionParamsList Represents a list of conditions.
Content:
complex, 10 elements
Used:
ccmsk:DefaultCaseParams Contains the vectors of ranks used by default, if no other case applies for a given routing stage.
Content:
complex, 6 elements
Used:
ccmsk:DialerAgentGroupParams Provides information about a virtual agent group containing inbound and outbound groups, and managed by a dialer.
Content:
complex, 7 attributes, 4 elements
Includes:
definitions of 7 attributes and 4 elements
Used:
ccmsk:DialerLimitParams Determines parameters of a limit imposed on the number of dialed calls during a given time interval.
Content:
complex, 3 attributes, 1 element
Includes:
definitions of 1 attribute and 1 element
Used:
ccmsk:DialerParams Parameters for the dialer, for blend/multi-skill call center.
Content:
complex, 17 attributes, 7 elements
Includes:
definitions of 14 attributes and 4 elements
Used:
ccmsk:DoubleArrayWithMinWaitingTime Represents a 2D array with an associated minimal waiting time.
Content:
complex, 1 attribute, 1 element
Includes:
definition of 1 attribute
Used:
ccmsk:InboundTypeParams Defines the parameters for an inbound call type, for blend/multi-skill call center.
Content:
complex, 10 attributes, 21 elements
Includes:
definition of 1 element
Used:
ccmsk:IndexThreshIntParams Same as IndexThreshParams but the threshold is an integer.
Content:
empty, 3 attributes
Includes:
definitions of 3 attributes
Used:
ccmsk:IndexThreshIntWithTypeParams Contains the parameters for a condition comparing an indexed quantity with a fixed integer threshold, possibly for a specific call type.
Content:
empty, 4 attributes
Includes:
definition of 1 attribute
Used:
ccmsk:IndexThreshParams Contains the parameters for a condition comparing an indexed quantity, e.g., the service level for a given call type, with a fixed threshold.
Content:
empty, 3 attributes
Includes:
definitions of 3 attributes
Used:
ccmsk:IndexThreshWithTypeParams Contains the parameters for a condition comparing an indexed quantity with a fixed threshold, possibly for a specific call type.
Content:
empty, 4 attributes
Includes:
definition of 1 attribute
Used:
ccmsk:OutboundTypeParams Defines the parameters for an outbound call type, for blend/multi-skill call center.
Content:
complex, 11 attributes, 26 elements
Includes:
definitions of 1 attribute and 6 elements
Used:
ccmsk:ProducedCallTypeParams Determines the parameters of a call type produced by a call source.
Content:
complex, 2 attributes, 1 element
Includes:
definitions of 2 attributes and 1 element
Used:
ccmsk:RouterParams Represents the router's parameters for a blend/multi-skill call center.
Content:
complex, 12 attributes, 17 elements
Includes:
definitions of 12 attributes and 17 elements
Used:
ccmsk:RoutingCaseParams Represents a case inside a routing stage, and described using a routing condition along with vectors of ranks.
Content:
complex, 16 elements
Used:
ccmsk:RoutingStageParams Describes a specific stage of routing for a particular call type by using a waiting time, and a sequence of cases.
Content:
complex, 1 attribute, 2 elements
Includes:
definitions of 1 attribute and 2 elements
Used:
ccmsk:RoutingTableSources Determines how missing routing information can be inferred from alternative data structures.
Content:
empty, 6 attributes
Includes:
definitions of 6 attributes
Used:
ccmsk:ScheduleShiftParams Defines a shift in the schedule of an agent group.
Content:
complex, 4 attributes, 2 elements
Includes:
definitions of 4 attributes and 2 elements
Used:
ccmsk:SegmentParams Gives parameters for a segment which is defined here as a group of contact types, agent groups, or main periods.
Content:
complex, 1 attribute, 2 elements
Includes:
definition of 1 element
Used:
ccmsk:ServiceTimeParams Represents parameters for service times.
Content:
complex, 8 attributes, 4 elements
Includes:
definitions of 2 attributes
Used:
ccmsk:ShiftPartParams Defines a part of a shift in the schedule of an agent group.
Content:
empty, 3 attributes
Includes:
definition of 1 attribute
Used:
ccmsk:StatConditionParams Regroups the parameters for a condition on statistics collected during some time intervals.
Content:
complex, 3 attributes, 2 elements
Includes:
definitions of 3 attributes and 2 elements
Used:
ccmsk:TimeIntervalParams Represents a time interval specified by a starting and an ending time.
Content:
empty, 2 attributes
Includes:
definitions of 2 attributes
Used:
ccmsk:TwoIndicesParams Contains the parameters for a condition comparing two indexed quantities, e.g., the size of two specific queues in a model.
Content:
empty, 3 attributes
Includes:
definitions of 3 attributes
Used:
ccmsk:TwoIndicesWithTypesParams Contains the parameters for a condition comparing two index quantities possibly for specific call types.
Content:
empty, 5 attributes
Includes:
definitions of 2 attributes
Used:
Simple Type Summary
ccmsk:AgentSelectionScore Parameter indicating how the agent selection score is computed by agents' preference-based routers.
Used:
ccmsk:ContactSelectionScore Parameter indicating how the contact selection score is computed by agents' preference-based routers.
Used:
ccmsk:CorrelationFit Parameter selecting the algorithm used to compute the correlation matrix in the Poisson gamma rate arrival process.
Used:
ccmsk:GammaShapeEstimatorType Parameter selecting the method used to estimate the shape parameter in the Poisson gamma arrival process.
Used:
ccmsk:GroupToTypeMapSource Possible structures from which the missing group-to-type map can be inferred if it is needed by a routing policy.
Used:
ccmsk:IncidenceMatrixGTSource Possible structures from which the missing group-to-type incidence matrix can be inferred if it is needed by a routing policy.
Used:
ccmsk:IncidenceMatrixTGSource Possible structures from which the missing type-to-group incidence matrix can be inferred if it is needed by a routing policy.
Used:
ccmsk:RanksGTSource Possible structures from which the missing group-to-type matrix of ranks can be inferred if it is needed by a routing policy.
Used:
ccmsk:RanksTGSource Possible structures from which the missing type-to-group matrix of ranks can be inferred if it is needed by a routing policy.
Used:
ccmsk:Relationship Represents a relationship between two quantities.
Used:
ccmsk:TypeToGroupMapSource Possible structures from which the missing type-to-group map can be inferred if it is needed by a routing policy.
Used:
Element Group Summary
ccmsk:Conditions
Content:
10 elements
Includes:
definitions of 10 elements
Used:
ccmsk:VectorsOfRanks
Content:
6 elements
Includes:
definitions of 6 elements
Used:
XML Source
<?xml version="1.0"?>
<xsd:schema elementFormDefault="unqualified" jxb:version="2.0" targetNamespace="http://www.iro.umontreal.ca/lecuyer/contactcenters/msk" xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://www.iro.umontreal.ca/lecuyer/contactcenters" xmlns:ccapp="http://www.iro.umontreal.ca/lecuyer/contactcenters/app" xmlns:ccmsk="http://www.iro.umontreal.ca/lecuyer/contactcenters/msk" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:ssj="http://www.iro.umontreal.ca/lecuyer/ssj" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
Defines types for the parameters of the blend/multi-skill call
center simulator. The main complex type defined in this schema
is
<tt>CallCenterParams</tt>
which represents the whole call center. An element of this type
with name
<tt>MSKCCParams</tt>
is also defined in this schema.
<b/>
</xsd:documentation>
<xsd:appinfo>
<jxb:globalBindings enableFailFastCheck="true" optionalProperty="isSet"/>
<jxb:schemaBindings>
<jxb:package name="umontreal.iro.lecuyer.contactcenters.msk.params">
<jxb:javadoc>
<![CDATA[
Defines types for the parameters of the
blend/multi-skill call center simulator.
This package contains JAXB-derived classes for XML namespace
<tt>http://www.iro.umontreal.ca/lecuyer/contactcenters/msk</tt>.
]]>
</jxb:javadoc>
</jxb:package>
</jxb:schemaBindings>
</xsd:appinfo>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>
Specifies the common as well as call-type specific
parameters for a blend and multi-skill call center model.
These include random variate generators for service times,
patience times and arrivals as well as information on the
routing. This complex type defines attributes for encoding
the simple information such as the number and duration of
main periods in the model, the default time unit, etc.
Nested elements are used for more complex information such
as the description of a call type, an agent group, and
routing parameters.
</xsd:documentation>
<!-- <xsd:appinfo>
<jxb:class>
<jxb:javadoc>Specifies the common as well as call-type
specific parameters for a blend and multi-skill call
center.</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
-->
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Defines properties for the described model. Properties
can be used to add user information for describing the
parameter file, or parameters used by programs
extending the simulator.
</xsd:documentation>
</xsd:annotation>
<xsd:key name="CCPUniquePropertyName">
<xsd:selector xpath="*"/>
<xsd:field xpath="@name"/>
</xsd:key>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the parameters of the random variate
generator used to generate the busyness factor for
increased variability of arrival processes. At the
beginning of each replication, if this element is
present, a new busyness factor is generated from the
given distribution, and is assumed to correspond to
the global busyness of the day. If the generated factor is
smaller than 1, the day is less busy than usual. If it
is greater than 1, it is more busy than usual. Every
base arrival rate of inbound calls is multiplied by
this busyness factor to obtain the rates being used
for the day. If this element is omitted, the busyness
factor is deterministic and always equals 1.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="defaultArrivalProcess"/>
</xsd:appinfo>
<xsd:documentation>
Select the type of arrival process used by default in all
the arrival processes for the cases when it is not specified.
This is to make tests with different models and many types
of call processes.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="inboundTypes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the parameters for each inbound call type.
The kth element in the parameter file corresponds to
the kth inbound call type in the model.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="arrivalProcesses"/>
</xsd:appinfo>
<xsd:documentation>
Gives the parameters of a detached arrival process
that can generate calls of several types. In contrast,
attached arrival processes are described by
<tt>arrivalProcess</tt>
elements inside
<tt>inboundType</tt>
elements, and generate calls of a single type.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="outboundTypes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the parameters for each outbound call type.
The kth occurrence of this element in the parameter
file describes the kth outbound call type in the
model. If
<i>Ki</i>
is the number of inbound call types, the kth outbound
call type corresponds to the (
<i>Ki</i>
+ k)th call type.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="dialers"/>
</xsd:appinfo>
<xsd:documentation>
Gives the parameters of a detached dialer that can
generate calls of several types. In contrast, an
attached dialer which is described by a
<tt>dialer</tt>
element inside an
<tt>outboundType</tt>
element, can generate calls of a single type.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="agentGroups"/>
</xsd:appinfo>
<xsd:documentation>
Determines the parameters for each agent group. The
ith occurrence of this element in a parameter file
corresponds to the ith agent group in the model.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the default matrix of shifts for the
schedule of agents. Element
<tt>(j, p)</tt>
of this matrix is set to
<tt>true</tt>
or 1 if agents on the shift
<tt>j</tt>
can serve calls during main period
<tt>p.</tt>
This matrix is used when an agent group specifies a
vector of agents per shift without a matrix of shifts,
i.e., when a
<tt>schedule</tt>
element of an agent group contains a
<tt>numAgents</tt>
child without a matching
<tt>shiftMatrix</tt>
child.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Defines shifts that can be used in schedules of
agents. Each shift defined here must have an
<tt>id</tt>
attribute to be referred in the schedule local to an
agent group. As opposed to
<tt>shiftMatrix,</tt>
shifts defined by this element are not used
automatically in agent groups; they must be referred
to explicitly in agent groups.
</xsd:documentation>
<xsd:appinfo>
<jxb:property name="shifts"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the parameters of the router used to assign
calls to agents.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="serviceLevelParams"/>
</xsd:appinfo>
<xsd:documentation>
Determines the acceptable waiting times used to
estimate performance measures based on the service
level.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="inboundTypeSegments"/>
</xsd:appinfo>
<xsd:documentation>
Defines a segment regrouping several inbound call
types, for statistical collecting. The kth occurrence
of this element defines the kth segment of inbound
types.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="outboundTypeSegments"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>inboundTypeSegment</tt>
for outbound call types.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="callTypeSegments"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>inboundTypeSegment</tt>
for all call types, inbound or outbound.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="agentGroupSegments"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>inboundTypeSegment</tt>
for agent groups.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="periodSegments"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>inboundTypeSegment</tt>
for main periods.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the default time unit used when no unit is
given in parameters for random variate generators. This
also defines the meaning, for the simulator, of one
simulation time unit as well as the time unit used to
format results such as average waiting times.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the maximal queue capacity at any time during
the simulation. If a call cannot be served immediately
while the total number of queued calls corresponds to
this capacity, the new call is blocked. The queue
capacity is set to infinity if this attribute is omitted.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the number of main periods of the model. This
sets the number of periods for which parameters are
specified, and the number of periods composing the finite
horizon for a simulation with independent replications.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the duration of each main period. This
parameter, along with the
<tt>numPeriods</tt>
attribute, determines the length of the finite horizon
for simulation with independent replications, and is also
used for normalizing performance measures corresponding
to rates.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the starting date of the simulation. This
corresponds to the date of the day which the model
intends to simulate, and is used only for reporting. If
this parameter is not specified, the current date is
used.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the time at which the first main period
begins. This parameter is used for reporting, and does
not influence the simulation. It defaults to midnight if
unspecified.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which the number of arrivals
generated by all arrival processes is multiplied. This
multiplier is used to change the total call volume
without modifiying the parameters of each single arrival
process. The default value of this attribute is 1, which
results in no change to the call volume.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the multiplier applied to each generated
patience time. This parameter can be used to globally
change the patience time for all call types, and defaults
to 1 if unspecified.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each service time is
multiplied. This parameter can be used to globally change
service times for each call type. Its default value is 1,
which results in no service time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each conference time is
multiplied. This parameter can be used to globally change
conference times for each call type. Its default value is
1, which results in no conference time perturbation. The
conference time is defined as the time spent by a primary
agent with a secondary agent during a call transfer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each pre-service time is
multiplied. This parameter can be used to globally change
pre-service times for each call type. Its default value
is 1, which results in no pre-service time perturbation.
This pre-service time is the time spent by a secondary
agent with a caller if no conference with the primary
agent occurs after a call transfer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each transfer time is
multiplied. This parameter can be used to globally change
transfer times for each call type. Its default value is
1, which results in no transfer time perturbation. The
transfer time is the delay necessary for an agent to
contact another agent for call transfer.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each preview time is
multiplied. This parameter can be used to globally change
preview times for each outbound call type. Its default
value is 1, which results in no preview time
perturbation. The preview time is the delay necessary for
an agent to figure out if an outbound call is a right
party connect.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the schedules specified using the
<tt>schedule</tt>
or
<tt>agent</tt>
elements of each agent group need to be converted to
staffing vectors internally. This conversion is necessary
if one plans to alter the staffing directly, without
taking account of scheduling. This attribute sets the
default value of
<tt>convertSchedulesToStaffing</tt>
for all agent groups. One can override this attribute for
a specific agent group by setting the corresponding
<tt>convertScheduleToStaffing</tt>
in the element
<tt>agentGroup.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the multiplier applied to each staffing vector
of agent groups. The number of agents in a period or a
shift is multiplied by this constant as well as a
constant local to the agent group, and rounded to the
nearest integer. By default, this attribute is set to 1,
which results in no staffing perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the class name of the waiting time predictor
when virtual queues are used. The value of this attribute
should correspond to the name of a class implementing the
<tt>WaitingTimePredictor</tt>
interface from package
<tt>umontreal.iro.lecuyer.contactcenters.expdelay.</tt>
The class name can be fully qualified, or relative to the
package
<tt>umontreal.iro.lecuyer.contactcenters.expdelay.</tt>
The default predictor uses the last observed waiting time
as a prediction of the waiting time.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents the parameters common for inbound and outbound
call types, used by blend/multi-skill call center models.
These include, in particular, a name used in reports,
properties which can be used by programs extending the
simulator, the distribution of the patience and service
times, parameters for call transfers, and parameters for
call backs, etc. The name is set using the
<tt>name</tt>
attribute while properties are set using the
<tt>properties</tt>
element.
<p>
The required elements to enable call transfers for a
given call type is
<tt>probTransfer</tt>
and
<tt>transferTarget.</tt>
The needed elements and attributes for enabling call
backs is
<tt>probVirtualQueue,</tt>
<tt>expectedWaitingTimeThresh,</tt>
and
<tt>virtualQueueTargetType.</tt>
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents the parameters common for inbound and
outbound call types, used by blend/multi-skill call
center models.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:Named">
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the weight of this call type during
individual main period. If this element contains
a single value, the value is used for all main
periods. If this element is omitted, the weight
for any period is the value given by the
attribute
<tt>weight.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability of immediate
abandonment, for each main period. If this array
is omitted, balking does not occur. If this
array contains a single element, the given
probability of balking is used for all periods.
Otherwise, a probability is needed for each main
period in the model.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the distribution and random variate
generator for the patience times of calls of
this type. If this element is not specified, the
patience times are infinite. If, in addition,
the probabilities of balking, given by
<tt>probAbandon,</tt>
are also 0, or if
<tt>probAbandon</tt>
is omitted, this results in disabled abandonment
for this call type.
<p>
Each generated patience time is multiplied by
a local factor given by the
<tt>mult</tt>
attribute, and by a global factor given by
the
<tt>patienceTimesMult</tt>
attribute in
<tt>MSKCCParams.</tt>
Both multipliers default to 1.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="serviceTimes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the distribution of the service times
for calls of this type. Each occurrence of this
element with the
<tt>group</tt>
attribute set specifies the service times of
calls of this type, if served by an agent in a
specific group. If the
<tt>group</tt>
attribute is omitted in a
<tt>serviceTime</tt>
element, this gives the default service time
used if no group-specific service time is given.
Although this element can appear more than once
for a single call type, each occurrence of this
element must have a
<tt>group</tt>
attribute with a different value, possibly with
one occurrence omitting the
<tt>group</tt>
attribute.
<p>
Each generated service time is multiplied by
a local factor given by the
<tt>mult</tt>
attribute, a call-type specific factor given
by
<tt>serviceTimesMult,</tt>
and a global factor given by
<tt>serviceTimesMult</tt>
attribute from
<tt>MSKCCParams.</tt>
All these multipliers default to 1.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="conferenceTimes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the distribution of the conference
times for calls of this type. Conference times
are specified in a way similar to service times
(see the preceding element
<tt>serviceTime),</tt>
but they are used only when an agent transferred
a call to another agent. This conference time
represents the time spent by the primary agent
with the secondary agent, and adds up to the
regular service time. The multipliers for
conference times are applied in a way similar to
service times, except that the attribute name
for the multipliers is
<tt>conferenceTimesMult.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="preServiceTimesNoConf"/>
</xsd:appinfo>
<xsd:documentation>
Determines the distribution of the pre-service
times for calls of this type. Pre-service times
are specified in a way similar to service times
(see the preceding element
<tt>serviceTime),</tt>
but they are used only when an agent transferred
a call to another agent, and did not wait to
talk with the secondary agent. This pre-service
time represents the time spent by the caller
with the secondary agent explaining its problem.
and adds up to the regular service time. The
multipliers for pre-service times are applied in
a way similar to service times, except that the
attribute name for the multipliers is
<tt>preServiceTimesNoConfMult.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the service time multiplier for
customers transferred to another agent after the
service. This multiplier affects the service
time with the primary agent, before the call
transfer occurs, and is applied in addition to
the regular service time multiplier given by the
<tt>serviceTimesMult</tt>
attribute. The given 2D array corresponds to a
<i>I x P</i>
matrix giving a multiplier for each agent group
and main period. If this 2D array contains a
single value, the given value is used for all
agent groups and main periods. If the array
contains a single row or column, the row or
column is repeated as needed. If this element is
omitted, the default multiplier of 1 is used.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="transferTimes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the distribution of the transfer
times for calls of this type. A transfer time
occurs when an agent transfers a call to another
agent. It can represent, e.g., the delay needed
to dial a phone number. If this element is
omitted, no transfer delay occurs during a
transfer. The multipliers for transfer times are
applied in a way similar to service times,
except that the attribute name for the
multipliers is
<tt>transferTimesMult.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Gives a
<i>I x P</i>
matrix of probabilities of transfer. Each
element
<i>(i, p)</i>
of this matrix gives the probability an agent in
group
<i>i</i>
transfers a call arrived during period
<i>p</i>
to another agent. If this element is omitted, a
default probability of transfer of 0 is assumed,
i.e., there is no transfer of calls of the
described type to any secondary agents. If this
2D array contains a single element, the given
probability is used for all agent groups, and
all main periods. If the array contains a single
row or column, the row or column is repeated as
needed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Gives a
<i>I x P</i>
matrix of probabilities that the primary agent
in group
<i>i</i>
waits until the transferred call arrived during
main period
<i>p</i>
reaches a secondary agent or abandons, before
the primary agent gets free. If this element is
omitted, a default probability of waiting of 0
is assumed, i.e., the primary agent is always
freed after the call is transferred. If this 2D
array contains a single element, the given
probability is used for all agent groups, and
all main periods. If the array contains a single
row or column, the row or column is repeated as
needed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the possible type identifiers of the
new (virtual) call which is created when a call
is transferred by an agent to another agent.
Each occurrence of this element also assiciates
a probability of transfer with each call type.
If this element is omitted, no call transfer can
occur for the described call type.
</xsd:documentation>
<xsd:appinfo>
<jxb:property name="transferTargets"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the minimal expected waiting time for
a customer to be offered the option to be called
back. If this array contains a single value, the
given value is used for all main periods.
Otherwise, value
<i>p</i>
of the array gives a threshold for main period
<i>p.</i>
If the array is omitted, the default threshold
of infinity is used, which disables call backs
for this call type.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the factor multiplying the expected
waiting time when determining how long a
customer will wait in virtual queue before it is
called back. The time spent in virtual queue is
W*m, where W is the expected waiting time, and m
is the multiplier. If this array contains a
single value, the given value is used for all
main periods. Otherwise, value
<i>p</i>
of the array gives a multiplier for main period
<i>p.</i>
If the array is omitted, the default multiplier
of 1 is used.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability that a customer
accepts to join the virtual queue, and be called
back at a later time, provided that the customer
is offered the option to be called back. If this
array contains a single value, the given value
is used for all main periods. Otherwise, value
<i>p</i>
of the array gives the probability for main
period
<i>p.</i>
If the array is omitted, the default probability
of 0 is used, which disables virtual queueing.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability of success when
calling back a customer in the virtual queue.
When the call back succeeds, the customer is
sent to an agent, or to another waiting queue if
no agent is available. If this array contains a
single value, the given value is used for all
main periods. Otherwise, value
<i>p</i>
of the array gives the probability for main
period
<i>p.</i>
If the array is omitted, the default probability
of 1 is used.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the multiplier for the patience time
of customers refusing to join the virtual queue.
If this array contains a single value, the given
value is used for all main periods. Otherwise,
value
<i>p</i>
of the array gives the multiplier for main
period
<i>p.</i>
If the array is omitted, the default multiplier
of 1 is used.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the patience time multiplier for
customers in the virtual queue but joining the
regular queue because there is no agent at the
time they are called back. If this array
contains a single value, the given value is used
for all main periods. Otherwise, value
<i>p</i>
of the array gives the multiplier for main
period
<i>p.</i>
If the array is omitted, the default multiplier
of 1 is used.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the multiplier for the service time
of customers refusing to join the virtual queue.
This element determines a
<i>I x P</i>
matrix giving the multiplier for each agent
group and main period. If this matrix contains a
single value, the given value is used for all
agent groups and main periods. If the matrix
contains a single row or column, the row or
column is duplicated as needed. If this element
is omitted, the default multiplier of 1 is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the service time multiplier for
customers called back. If this matrix contains a
single value, the given value is used for all
main periods. If the matrix contains a single
row or column, the row or column is duplicated
as needed. If this element is omitted, the
default multiplier of 1 is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the weight associated with this call
type. The weight, which measures the importance of
this call type relative to the others, can be used
by some routing policies, and optimization
algorithms.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each service time is
multiplied. This parameter can be used to globally
change service times for this call type. Its
default value is 1, which results in no service
time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each conference time
is multiplied. This parameter can be used to
globally change conference times for this call
type. Its default value is 1, which results in no
conference time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each pre-service
time is multiplied. This parameter can be used to
globally change pre-service times for this call
type. Its default value is 1, which results in no
pre-service time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each transfer time
is multiplied. This parameter can be used to
globally change transfer times for this call type.
Its default value is 1, which results in no
transfer time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the target call type for transfer
takes the presence of agents in agent groups into
account when determining the type of a new call.
When this attribute is set to
<tt>true,</tt>
each time a call of the described type is
transferred to another agent group, the probability
of occurrence for target call type
<tt>k'</tt>
is reset to 0 if no idle or busy agents capable of
serving calls of type
<tt>k'</tt>
is present. Probabilities for other call types are
divided by the sum of remaining probabilities.
Consequently, the target call type for transfer is
<tt>k'</tt>
only if such calls can be routed to an agent,
possibly after some waiting time. However, this
check imposes additional overhead for every
processed call. When this attribute is disabled,
the call may be transferred to agent group even if
no connected agent can serve it.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Initial default waiting time used for virtual queueing. This value
is used to initialize the expected waiting time for the
<tt>k</tt>
previous contacts before the first contact at the
beginning of the day. In order to predict the expected waiting
time for new contacts, one uses the average of the waiting time
of the
<tt>k</tt>
previous contacts (see windowSizeVQ).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Number of previous contacts used to predict the expected waiting
time for virtual queueing. If this parameter is
<tt>k</tt>
,
then the average of the waiting time of the
<tt>k</tt>
previous
contacts is used as the expected waiting time predictor for new
contacts. By default, the window size is 1, i.e., only the waiting
time of the last contact is used to predict the
expected waiting time for new arrivals.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the target call type identifier for
virtual queueing. When a call is sent to a virtual
queue for later callback, its type is switched to a
different virtual type in order to have separate
routing logic and statistics for calls waiting in
virtual queue. Omitting the virtual call type index
for a call type disables virtual queueing for that
call type.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents parameters for service times. This extends the
parameters of a random variate generator over multiple
periods with a
<tt>group</tt>
attribute or an
<tt>agent</tt>
attribute
used to specify on which agent group or on which agent
the service times apply. For now, it is either the group or the agent
that is used, or neither.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents parameters for service times.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="cc:MultiPeriodGenParams">
<xsd:annotation>
<xsd:documentation>
Gives the index of the agent group for which the
service time generator is concerned. If the group and the agent
are omitted, service times apply to any agent.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Gives the index of the agent for which the
service time generator is concerned. If the agent and
the group are omitted, service times apply to any agent.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines the parameters for an inbound call type, for
blend/multi-skill call center. This type inherits all
elements and attributes describing a call type, and defines
an additional element for attaching an arrival process to an
inbound call type.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines the parameters for an inbound call type, for
blend/multi-skill call center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:CallTypeParams">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the parameters of the arrival process for
this inbound call type. The given arrival
process generates only calls of the described
type.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines the parameters for an outbound call type, for
blend/multi-skill call center. This type inherits all
elements and attributes common to all call types, and adds
several elements and attributes for, e.g., the probability
that a dialed outbound call succeeds, distributions for
dialing delays, an attached dialer, etc.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines the parameters for an outbound call type, for
blend/multi-skill call center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:CallTypeParams">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the probability of reaching a
customer (right party connect) when dialing, for
each main period. This array of double-precision
values must contain one value in
<tt>[0, 1]</tt>
for each main period, or a single value. If it
contains a single value, this value is used for
all periods.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the distribution and random variate
generator for the time to reach a customer after
dialing starts for that customer. This defaults
to a discrete probability distribution returning
0 with probability 1, if unspecified, i.e., no
dialing delay.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Similar to
<tt>reachTime</tt>
for the dialing delay necessary for a dialed
call to fail.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability of right party
connect after a customer is reached by the
dialer, for each main period. This array of
double-precision values must contain one value
in
<tt>[0, 1]</tt>
for each main period, or a single value. If it
contains a single value, this value is used for
all periods. If it is omitted or empty, a
probability of 1 is assumed for each period.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="previewTimes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the distribution of the preview times
for calls of this type. The preview time is used
to determine if the right customer has been
reached by the dialer, and is added to the
service time if right party connect occurs. If a
call is a wrong party connect, this gives the
time the agent is busy (the service time is
unused). The probability that a call is a right
party connect can be adjusted using
<tt>probRPC.</tt>
Omitting this element results in all preview
times to be 0.
<p>
This element works in a way similar to
<tt>serviceTime</tt>
except that preview times are generated for
outbound calls only. Moreover, the
multipliers for preview times are applied in
a way similar to service times, except that
the attribute name for the multipliers is
<tt>previewTimesMult.</tt>
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Gives the parameters of the dialer for this
outbound call type. The given dialer generates
calls of the described type only.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the factor by which each preview time is
multiplied. This parameter can be used to globally
change preview times for this call type. Its
default value is 1, which results in no preview
time perturbation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines the parameters for a call source generating inbound
or outbound calls, possibly of more than one types. Call
sources generating inbound calls are arrival processes while
sources producing outbound calls are dialers. A call source
can have two kinds of parents: a call center or a call type.
When a source is a child of a call type, it is linked to
that particular call type, and can generate calls of that
type only. On the other hand, if a call source is bound to
the call center, it can possibly generate calls of more than
one types. In the latter case,
<tt>call</tt>
elements are used to assign probabilities to call types. The
type of any new call is then generated randomly, using the
given probability distribution, and independently of other
calls.
<p>
The name assigned to the call source using the
<tt>name</tt>
attribute is not used by default, but it could be useful
for debugging. The additional user-defined properties,
set using the
<tt>properties</tt>
element, are also ignored, but they can be used by custom
arrival processes and dialing policies.
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines the parameters for a call source generating
inbound or outbound calls, possibly of more than one
type.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:Named">
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="sourceToggleTimes"/>
</xsd:appinfo>
<xsd:documentation>
Determines the simulation times at which the
call source is enabled. Each occurrence of this
element represents a time interval during which
the call source is enabled, i.e., produces
calls. If this element is omitted, the call
source is enabled from the beginning of the
first main period to the end of the last main
period. This element is ignored if the
<tt>sourceEnabled</tt>
attribute is set to
<tt>false.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="producedCallTypes"/>
</xsd:appinfo>
<xsd:documentation>
Determines calls produced by this source. If the
described call source is not attached to a
specific call type, it generates calls of type
<i>k</i>
with probability
<i>
p
<sub>k</sub>
</i>
. One can use
<tt>call</tt>
child elements to determine the call types
generated by the source, along with the
probabilities of each call type to be generated.
If the given probabilities do not sum to 1, the
values of
<i>
p
<sub>k</sub>
</i>
are obtained by dividing the given probabilities
by their sums. This element is not allowed if
the call source is attached to a call type,
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines if the source producing calls of this
type is active, i.e., if it produces calls. If this
parameter is
<tt>true,</tt>
the call source is always active when performing a
steady-state simulation. For simulation on a finite
horizon, the activity of the call source can be
influenced by
<tt>sourceToggleTime</tt>
elements. If this attribute is
<tt>false,</tt>
no call is generated by this source during the
simulation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the call source takes the presence of
agents in agent groups into account when
determining the type of a new call. This attribute
applies for call sources producing calls of
multiple types, and works as follows. When it is
set to
<tt>true,</tt>
each time the call source produces a new call, it
resets the probability of occurrence for call type
<tt>k</tt>
to 0 if no idle or busy agents capable of serving
calls of type
<tt>k</tt>
is present. Probabilities for other call types are
divided by the sum of remaining probabilities.
Consequently, the call source produces a call of
type
<tt>k</tt>
only if it can be routed to an agent, possibly
after some waiting time. However, this check
imposes additional overhead for each generated
call. When this attribute is disabled, the call
source may produce a call even if no connected
agent can serve it.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents a time interval specified by a starting and an
ending time.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents a time interval specified by a starting and
an ending time.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Determines the parameters of a call type produced by a call
source. The required attribute
<tt>type</tt>
is used to give the index of the produced call typ while the
attribute
<tt>probability</tt>
can be used to set the probability that a call of the given
type is produced. Alternatively, one can use
<tt>probPeriod</tt>
to give a period-specific probability.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Determines the parameters of a call type produced by a
call source.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the probability for a call of the specified
type to be produced by the associated call source, for
each main period. This element overrides the
<tt>probability</tt>
attribute, and accepts an array of values on the [0,
1] interval. If the array contains a single element,
it is used for all periods.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the index of the call type generated by the source.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Gives the probability for the call type to be generated
by the source. The default probability is 1.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents the parameters for an arrival process producing
inbound calls. This includes the type of the arrival process
set by the
<tt>type</tt>
attribute as well as additional parameters specific to the
chosen type. The most commonly used element is
<tt>arrivals</tt>
which assign arrival rates or expected number of arrivals to
each main period.
<p>
Most arrival processes are influenced by a busyness
factor which change the arrival rates. In particular, for
Poisson-based arrival processes, the busyness factor
simply multiplies the arrival rates. For other arrival
processes, the generated number of arrivals is multiplied
by the factor, and the result is rounded to the nearest
integer. This factor is the product of a random variate
common to all inbound call types, a multiplier specific
to the arrival process and given by the
<tt>arrivalsMult</tt>
attribute, and a global multiplier given by the
<tt>arrivalsMult</tt>
attribute in
<tt>MSKCCParams.</tt>
The random busyness factor follows the distribution given
by the
<tt>busynessGen</tt>
element in
<tt>MSKCCParams.</tt>
By default, all the multipliers are 1, and the random
variate follows a degenerate distribution assigning
probability 1 to the constant 1.
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents the parameters for an inbound call arrival
process, for blend/multi-skill call center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:CallSourceParams">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the parameters of the random variate
generator used to generate the busyness factor for
increased variability of this arrival process.
If this element is
present, a new busyness factor is generated from the
given distribution, and corresponds to
the busyness factor for the day. If the generated factor is
smaller than 1, the day is less busy than usual for this type of
arrivals. If it
is greater than 1, it is more busy than usual. The
base arrival rate of this type of inbound calls is multiplied by
this busyness factor to obtain the rates being used.
If this element is omitted, the busyness
factor is deterministic and always equals 1.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>
Determines the data used to estimate the
parameters of the arrival process. This matrix
of integers must contain one row for each
observation and one column for each main period.
Each element of the matrix represents the number
of arrivals observed on a specific day during a
given period. Parameter estimation is used
automatically if this element is given. Note
that only some arrival processes support
parameter estimation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the random variate generator used
to generate the total number of arrivals for
each replication, when the
<tt>type</tt>
attribute is set to
<tt>DIRICHLET.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the parameters specific to the
arrival process being used. The effect of
this array of double-precision values depends
on the chosen arrival process type. For the
Poisson process with piecewise-constant
arrival rates, it contains
<i>
lambda
<sub>p</sub>
</i>
while for Dirichlet, it contains
<i>
alpha
<sub>p</sub>
</i>
.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the shape parameters for the
Poisson-gamma arrival process. This array
must contain one parameter per main period,
or a single value which is used for all
periods.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the arrival rate parameters for the
Poisson-gamma arrival process. This array
must contain one parameter per main period,
or a single value to be used for all periods.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the correlation matrix used by the Gamma-Poisson doubly stochastic arrival process with correlared Gamma rates.
This parameter requires a
<i>P x P</i>
symmetric and positive-definite matrix, if
it is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the probability distribution for the
arrival rate of each period of the horizon. This
is used only for the Poisson arrival process
with randomized arrival rates.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the correlation matrix used by the
NORTA-driven arrival process. This parameter
requires a
<i>P x P</i>
symmetric and positive-definite matrix, if
NORTA is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the first parameters used for the
marginal negative binomials, for the
NORTA-driven arrival process. If the arrival
process is NORTA-driven, this array is
required to contain
<i>P</i>
elements.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the second parameters used for the
marginal negative binomials, for the
NORTA-driven arrival process. If the arrival
process is NORTA-driven, this array is
required to contain
<i>P</i>
elements.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the times at which the arrival
rate is specified, for some Poisson process
with a time-varying arrival rate.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the values of the arrival rate at
each time given by
<tt>times,</tt>
when the arrival process is based on a
time-varying arrival rate. Depending on the
arrival process, this array must have the
same length
<i>L</i>
as
<tt>times,</tt>
or contain
<i>L-1</i>
values.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Determines the type of arrival process to generate
calls from. Any enum constant in the Java class
<tt>ArrivalProcessType</tt>
from package
<tt>umontreal.iro.lecuyer.contactcenters.app</tt>
is accepted as a value for this attribute.
Moreover, custom simulation programs or Java
archives may define additional types of arrival
processes; see the
<tt>ArrivalProcessFactory</tt>
class from package
<tt>
umontreal.iro.lecuyer.contactcenters.msk.spi
</tt>
for more information about this.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines how base arrival rates are interpreted
for arrival processes arising as Poisson processes.
More specifically, if this attribute is set to
<tt>true,</tt>
arrival rates are interpreted as the expected
number of arrivals during a time interval. In this
case, the arrival rates given by the user or
generated randomly are internally divided by the
length of interval. This gives normalized arrival
rates relative to the default simulation time unit.
Most of the times, the intervals correspond to main
periods, but they are user-defined if the
<tt>type</tt>
attribute is set to
<tt>PIECEWISECONSTANTPOISSONINT.</tt>
On the other hand, if this attribute is set to
<tt>false,</tt>
the simulator assumes that the arrival rates are
relative to one simulation time unit so no
normalization is performed. For example, when a
Poisson process with piecewise-constant arrival
rates has normalized parameters,
<tt>
lambda
<sub>p</sub>
</tt>
indicates the average number of arrivals during
simulation period
<tt>p</tt>
instead of the average number of arrivals per
simulation time unit.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the parameters for the distribution
of the busyness factor must be estimated with the
parameters of the arrival process. If this
attribute is set to
<tt>true,</tt>
the probability distribution of the busyness factor
is set with the estimated parameters. This
estimation affects how the arrivals are modeled and
is not supported for all arrival processes. The
busyness factor generated from the estimated
distribution also affects the arrival processes for
all other inbound calls. If the attribute is
<tt>false</tt>
(the default), only the parameters of the arrival
process are estimated. This option has no effect if
the
<tt>data</tt>
child element is not specified, and it can be set
only for a single arrival process in the parameter
file.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the smoothing factor for the spline
representing the arrival rate. If this
double-precision parameter is unspecified, it
defaults to 1, which results in an interpolating
spline. See the description of the
<tt>CUBICSPLINE</tt>
arrival process for more information on the role of
this factor.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines how to compute the sigma correlation matrix for the
gamma norta rate arrival process.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
This option allows to select between estimators of the shape parameter
in case of the Poisson gamma arrival process.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Regulates the smoothness of the solution in the estimation of the
gamma shape parameters for the Poisson gamma arrival process.
When it is 1 there is no smoothing and shape parameters are assumed
to be independent across sub-periods. This parameter is used only
when
<tt>gammaShapeEstimatorType</tt>
is
<tt>SPLINESHAPE</tt>
.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
The number of iterations in the optimization routine that estimate the gamma
shape parameters in the Poisson gamma arrival process. The value recommended
is 200 when
<tt>gammaShapeEstimatorType</tt>
is
<tt>SINGLESHAPE</tt>
,
and 1000 when
<tt>gammaShapeEstimatorType</tt>
is
<tt>SPLINESHAPE</tt>
.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Sets the number of subperiods that are used to average the MME estimate in
the Poisson gamma arrival process.
Without averaging, the MME estimates are too noisy.
If we want no averaging, we can set
<tt>movingWindowSize</tt>
= 1.
The parameter is used only when
<tt>gammaShapeEstimatorType</tt>
is
<tt>SPLINESHAPE</tt>
.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
This is the number of Monte Carlo samples used in the estimation
of the parameters by the maximum likelihood method
for the gamma distribution of the busyness factors.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the lower bound for the variance of busyness
obtained from the gamma distribution. When the variance
obtained from the estimated parameters is smaller than this
bound, then the distribution is set to a constant and
the variance is 0. See the description of the
<tt>estimateBusyness</tt>
for related information on
the role of this factor.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the local multiplier of the arrival
process. Any arrival process can be represented as
a counting process
<i>{A(t), t&gt;0}</i>
where
<i>A(t)</i>
gives the number of arrivals during time interval
<i>[0, t].</i>
If multipliers are used, the arrival process
becomes
<i>{</i>
round
<i>(MA(t)), t&gt;0},</i>
where round(.) rounds its argument to the nearest
integer. The multiplier
<i>M</i>
is determined by multiplying this parameter with
the global
<i>arrivalsMult</i>
attribute. This can be used to alter the call
volume without modifying the detailed parameters of
the arrival processes.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Parameters for the dialer, for blend/multi-skill call
center. This includes the type of the dialer as well as
additional parameters specific to the chosen type.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Parameters for the dialer, for blend/multi-skill call
center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:CallSourceParams">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines, for each main period, the total
minimal number of free agents needed in the test
set for the dialer to perform outbound calls. If
this array contains a single element, the
element is repeated for all main periods. This
array of integers defaults to an array of 0's.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines, for each main period, the total
minimal number of free agents needed in the
target set for performing outbound calls. If
this array contains a single element, the
element is repeated for all main periods. This
array of integers defaults to an array of 1's.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines limits on the number of calls that
can be dialed during a given time interval. Each
occurrence of this element assigns a limit to a
time interval. The limit may concern a subset of
call types, or all call types.
For example, using limits, one can impose a
maximum of 50
outbound calls of a type 1 during the morning,
no more than
75 outbound calls of type 2 during the afternoon,
25 outbound calls of any type between noon and 1pm, etc.
We say that a limit applies at time
<tt>t</tt>
if
<tt>t</tt>
is in the limit's interval.
A limit applies for call type
<tt>k</tt>
at time
<tt>t</tt>
if
<tt>t</tt>
is in the limit's interval, and
<tt>k</tt>
is
in the limit's call types.
If no limit applies at time
<tt>t</tt>
for a given call type
<tt>k,</tt>
the dialer can produce an unbounded number of calls of that type at
time
<tt>t</tt>
.
<p>
More specifically, when an outbound call is produced, the dialer
assigns a weight to each outbound call type by using
the probability of each call type set by
<tt>call</tt>
elements.
Call types that cannot be produced by the dialer get weight 0.
If the dialer produces calls of a single type, a weight of 1
is given to this call type, and a weight of 0 is assigned to the other
types. The dialer then
checks
the limits that apply.
For each limit that are attained, i.e., for which the number of
dialed calls correspond to the limit, the weights of the
concerned call types are reset to 0.
The call type is then generated randomly by fixing
probabilities proportional to the remaining weights,
and the number of dialed calls is updated for each limit.
Note that the given limits affect only this dialer.
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Describes the agent groups attached to the
dialer, and how the dialer's policy moves agents
from inbound groups to outbound groups. Each
occurrence of this element defiens one virtual
agent group used by the dialer. This element has
an effect only if the dialer's policy is set to
<tt>AGENTSMOVE.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="dialerPolicy" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>
Determines the dialer's policy type being used. Any
enum constant in the Java class
<tt>DialerPolicyType</tt>
from package
<tt>umontreal.iro.lecuyer.contactcenters.app</tt>
is accepted as a value for this attribute.
Moreover, custom simulation programs or Java
archives may define additional dialer's policies;
see the
<tt>DialerPolicyFactory</tt>
class from package
<tt>
umontreal.iro.lecuyer.contactcenters.msk.spi
</tt>
for more information about this.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if mismatches are dropped or queued. If
this attribute is set to
<tt>true,</tt>
any call produced by this dialer has a probability
of balking set to 1. This results in any call not
served immediately, which are denoted mismatches,
being lost.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the dialer should prevent mismatches.
When this attribute is set to
<tt>true,</tt>
the dialer stops in-progress dialing if the number
of free agents in the test set or target sets falls
below the minimum given by
<tt>minFreeAgentsTest</tt>
and
<tt>minFreeAgentsTarget.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the multiplicative constant used by some
dialing policies to compute the number of calls to
try.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the additive constant used by some
dialing policies to compute the number of calls to
try.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the maximum admitted fraction of calls
waiting more than the acceptable waiting time. This
parameter is used by some dialing policies only.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the threshold on the mismatch rate used
by some dialing policies.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the number of testing periods used by
dialing policies taking cumulative statistics
(service level, mismatch rate, etc.) into account
for taking their decisions.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the duration of the testing periods used
by some dialing policies taking cumulative
statistics into account.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the 0-based index of the service-level
information matrix used if the dialing policy in
use takes service level (or acceptable waiting
time) into account for its decisions.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the outbound-to-inbound threshold for
the service level. When the service level goes
below this threshold, the dialer starts moving
agents from outbound groups to inbound groups. This
parameter is used by the
<tt>AGENTSMOVE</tt>
dialer's policy only.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the inbound-to-outbound threshold for
the service level. When the service level goes
above this threshold, the dialer starts moving
agents from inbound groups to outbound groups. This
parameter is used by the
<tt>AGENTSMOVE</tt>
dialer's policy only.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the dialer subtracts the number of
calls for which dialing is in progress from the
number of calls to dial. When dial delays are large
enough for the dialer to start often while phone
numbers are being composed, the agents of the call
center might receive too many calls to serve, which
results in a large number of mismatches. If this
attribute is set to
<tt>true</tt>
(the default), the dialer will take into account
the number of calls for which dialing is in
progress while determining the number of additional
calls to dial.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines whether the dialer can use the routing
matrix to take its decisions. Usually, a dialer's
policy composes a global number of calls, and lets
the call source associated with the dialer
distribute them using a fixed user-defined
distribution. The
<tt>probability</tt>
attribute of
<tt>call</tt>
elements can be used to control these
probabilities. However, this scheme might lead to a
lot of mismatches as agents might not be able to
serve every possible call. This attribute can
therefore be used to indicate that these complex
policies may use the router's matrix to determine
which call types can be assigned to which agent
groups. When this attribute is set and the used
policy takes it into account, the types of
generated calls become proportional to the number
of free agents in each managed group. For now, only
the
<tt>AGENTSMOVE</tt>
dialer policy uses this attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Determines parameters of a limit imposed on the number of
dialed calls during a given time interval. This element is a
time interval which accepts an additional
<tt>value</tt>
giving the value of the limit, and a
<tt>types</tt>
child giving a set of call type identifiers on which the
limit applies.
See the
<tt>dialerLimit</tt>
element for information on how
the limits are used by the dialer.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:TimeIntervalParams">
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="0"/>
</xsd:appinfo>
<xsd:documentation>
Gives the list of call types for which this
limit applies. If this element is omitted or
empty, the limit applies to all call types.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the value of the limit, i.e., the maximal number of
call of concerned types during the limit's time interval.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Gives the index of an agent group with a probability that
the agent group is selected. The index is given by the
<tt>index</tt>
attribute while the probability is set up using the
<tt>probability</tt>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Provides information about a virtual agent group containing
inbound and outbound groups, and managed by a dialer.
Elements of this type are used by the
<tt>AGENTSMOVE</tt>
dialer's policy only.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Provides information about a virtual agent group
containing inbound and outbound groups, and managed by
a dialer.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the index of an agent group accepting inbound
calls, along with a probability of selection for the
agent group.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Gives the index of an agent group accepting outbound
calls, along with a probability of selection for the
agent group.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Gives the list of agent groups that must be empty,
i.e. contain no busy or idle agent, for inbound agents
in this virtual group to become outbound agents. If
this element is omitted or contains an empty list, no
agent group needs to be empty for inbound-to-outbound
moves to be possible.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>requiredEmptyGroupsInOut</tt>
for outbound-to-inbound moves.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<!-- <xsd:attribute name="inboundGroup" type="ssj:nonNegativeInt" use="required">
<xsd:annotation>
<xsd:documentation>
Gives the index of the agent group whose agents process inbound calls.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="outboundGroup" type="ssj:nonNegativeInt" use="required">
<xsd:annotation>
<xsd:documentation>
Gives the index of the agent group whose agents process outbound calls.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
-->
<xsd:annotation>
<xsd:documentation>
Gives the minimal delay between two outbound-to-inbound
moves.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Gives the minimal time an agent must remain in the
inbound group before it can be transfered into the
outbound group.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Gives the minimal time an agent must remain in the
outbound group before it can be transfered into the
inbound group.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Gives the minimal delay between two inbound-to-outbound
moves.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Returns the minimal idle time of an agent serving inbound
calls before it can serve outbound calls.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Returns the minimal number of idle agents in the inbound
groups attached to this virtual group for
inbound-to-outbound moves to be allowed.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Returns the maximum number of idle agents the outbound
groups attached to this virtual group may contain when
inbound-to-outbound moves are allowed.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for an agent group in a
blend/multi-skill call center. Each agent group requires a
staffing or a schedule to set up the number of agents at any
time during the simulation. The staffing is specified using
a
<tt>staffing</tt>
element while the
<tt>schedule</tt>
element must be used for a schedule. The number of agents
during each main period or assigned to each shift of a
schedule is also multiplied by the product of a local factor
given by the
<tt>agentsMult</tt>
attribute, and a global factor given by the attribute with
the same name in
<tt>MSKCCParams,</tt>
and rounded to the nearest integer.
<p>
The name assigned assigned by the
<tt>name</tt>
attribute is used for reporting while the properties set
by the
<tt>properties</tt>
element can be used by programs extending the simulator.
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Contains the parameters for an agent group in a
blend/multi-skill call center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:Named">
<xsd:sequence>
<xsd:choice maxOccurs="1" minOccurs="0">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the staffing vector giving the
number of available agents during each
main period. If this array contains a
single element, the specified staffing is
used for all periods. This array of
positive integers defaults to an array of
0's if no schedule is given.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the presence probability for
each agent in the group and each main
period. When this element is set, for each
simulated replication, the number of
agents in period
<tt>p</tt>
is a binomial random variate with
parameters given by the number of agents
in
<tt>staffing</tt>
and the probability in this element. The
number of agents is independent for each
group and period. If this element is
omitted or empty, a default probability of
1 is assumed. If it contains a single
element, the given probability is used for
every main period. Otherwise, the element
must contain one probability for each main
period.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the staffing vector for different days
assumed i.i.d. When this element is used, the
number of agents in each period is a binomial
random variable, and the parameters of this
binomial, for each main period, are estimated
using maximum likelihood. If this element is
used, it must contain a $D\times P$ matrix,
where $D$ is the number of observed staffing
vectors, and $P$ is the number of main
periods.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the schedule of the agents in this
group. The schedule defines a set of shifts
agents in this group can work on, each shift
being composed of time intervals.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Specifies the individual agents composing the
group, with a particular schedule and
attributes for each agent. Note that by
default, defining agents this way is
equivalent (but more verbose) than using the
<tt>schedule</tt>
element. However, custom simulation code and
future versions of the simulator may use
agent-specific properties to influence
service, routing, etc.
</xsd:documentation>
<xsd:appinfo>
<jxb:property name="agents"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:annotation>
<xsd:documentation>
Determines the factor multiplying the service
time when an agent in this group is serving a
contact of a specific type. Service time
multipliers may be used to model the fact that
agents are more efficient when serving some
contact types, without specifying a service time
distribution for each (contact type, agent
group) combination.
<p>
Note that specifying a service time for a
(contact type, agent group) combination using
the
<tt>group</tt>
attribute of the
<tt>serviceTime</tt>
element does not cancel the effect of service
time multipliers given by this element.
</p>
<p>
This array of
<i>K</i>
double-precision values provides a multiplier
for each contact type. If the array is
unspecified, service times are set to 1.
</p>
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability that an agent of this
group becomes unavailable (temporarily
disconnects) for a random time after it has
served a call, for each main period. This array
of double-precision values must contain values
in
<tt>[0, 1].</tt>
If it contains a single element, the given
probability is used for all main periods. If it
is not specified (the default), agents do not
become temporarily unavailable after services.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the probability distribution of the
time an agent remains unavailable at the end of
a service if it disconnects. If this parameter
is omitted, agents disconnect for a duration of
0 time units; this results in disabling this
aspect of the model.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the maximal number of agents that can
be present in this group during each period.
This array is not used during simulation, but it
can be used to constrain the optimization. If it
contains a single value, the value is used for
all main periods. If it is omitted, but the
maximal number of agents is required, the value
stored in the attribute
<tt>maxAgents</tt>
is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>maxAgentsPeriod</tt>
for the minimal number of agents in the group.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the cost of one idle agent per time
unit during individual main period. If this
element contains a single value, the value is
used for all main periods. If this element is
omitted, the idle cost for any period is the
value given by the attribute
<tt>idleCost.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the cost of one busy agent per time
unit during individual main period. If this
element contains a single value, the value is
used for all main periods. If this element is
omitted, the busy cost for any period is the
value given by the attribute
<tt>busyCost.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the cost incurred when an agent in
this group starts a service during individual
main period. If this element contains a single
value, the value is used for all main periods.
If this element is omitted, the per-use cost for
any period is the value given by the attribute
<tt>perUseCost.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the weight of this agent group during
individual main period. If this element contains
a single value, the value is used for all main
periods. If this element is omitted, the weight
for any period is the value given by the
attribute
<tt>weight.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the weight of this agent group. This
weight, which measures the importance of this agent
group compared to other groups, can be used by some
routing policies or optimization algorithms.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the maximal number of agents allowed in
this group. This is not used during simulation, but
this can be used as a constraint during
optimization. If this attribute is omitted, the
maximal number of agents is infinite.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Similar to
<tt>maxNumAgents</tt>
for the minimal number of agents.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the cost per simulation time unit of an
idle agent in this agent group.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the cost per simulation time unit of a
busy agent in this agent group.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the cost incurred each time an agent in
this group starts a service.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the agents' efficiency factor. This
corresponds to the proportion of free agents over
the total number of agents when no agent is busy.
This defaults to 1, i.e., all the available agents
can serve calls.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the skill count for this agent group.
This corresponds to the true number of call types
agents in this group can serve. A missing value
indicates that the skill count should be determined
by the router.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="detailed" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Determines if a detailed agent group, representing
each agent by an individual entity, is needed for
the simulation. If this attribute is not set, a
detailed agent group is used only if agents can
disconnect after service terminations, or if a
<tt>schedule</tt>
element is used. Note that setting this attribute
to
<tt>false</tt>
might prevent the usage of some routing policies.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the schedules specified using the
<tt>schedule</tt>
or
<tt>agent</tt>
elements need to be converted to staffing vectors
internally. This conversion is necessary if one
plans to alter the staffing directly, without
taking account of scheduling.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the local multiplier for this agent
group. The number of agents during each period or
during each shift, depending on how the agents are
specified in this group, is multiplied by
<i>M</i>
and rounded to the nearest integer before they are
used by simulation. The value of
<i>M</i>
is obtained by multiplying the local multiplier by
the global
<i>agentsMult</i>
attribute. This can be used to alter the staffing
of a call center without modifying the number of
agents in each period or each shift manually. This
parameter has no effect if individual agents are
defined for this group.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents the schedule of agents in a specific group. A
schedule is defined either by a set of shifts represented by
a sequence of
<tt>shift</tt>
child element, or by the combination of a matrix given by
the
<tt>shiftMatrix</tt>
element with a vector given by
<tt>numAgents.</tt>
In the latter format, the matrix describes the shifts while
the vector sets the number of agents scheduled on each
shift.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents the schedule of agents in a specific group.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:choice>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the available shifts for this schedule.
Each occurrence of this element defines a shift as
a set of time intervals not necessarily
corresponding to period boundaries, and assigns a
certain number of agents to the shifts. This is the
most general syntax for giving shifts, but often,
the matrix of shifts given by
<tt>shiftMatrix</tt>
is sufficient for specifying shifts.
</xsd:documentation>
<xsd:appinfo>
<jxb:property name="shifts"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the matrix of shifts for this schedule.
Element
<tt>(j, p)</tt>
of this matrix is set to
<tt>true</tt>
if agents on the shift
<tt>j</tt>
can serve calls during main period
<tt>p.</tt>
If this matrix is omitted and no
<tt>shift</tt>
element is given, the default matrix of shifts
stored in the call center parameters'
<tt>shiftMatrix</tt>
element is used.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Gives the number of agents for each shift of
this schedule. The length of the given array
must correspond to the number of shifts,
i.e., the number of rows in the matrix of
shifts.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the presence probability for each
agent on the shifts of this schedule. When
this element is set, for each simulated
replication, the number of agents in each
shift
<tt>j</tt>
is a binomial random variate with parameters
given by the number of agents in
<tt>numAgents</tt>
and the probability in this element. The
number of agents is independent for each
group and shift. If this element is omitted
or empty, a default probability of 1 is
assumed. If it contains a single element, the
given probability is used for every shift of
this schedule. Otherwise, the element must
contain one probability for each shift of the
schedule.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives the vectors of agents for different days
assumed i.i.d. When this element is used, the
number of agents in each shift is a binomial
random variable, and the parameters of this
binomial, for each shift, are estimated using
maximum likelihood. If this element is used, it
must contain a $D\times J$ matrix, where $D$ is
the number of observed staffing vectors, and $J$
is the number of shifts.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines parameters for an individual agent. This element can
be used to assign a name, properties, and a shift to the
agent. The properties, which are ignored by default, might
be used by custom simulation code to influence the routing,
the service of calls, etc.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines parameters for an individual agent.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:Named">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Specifies the shift this agent is working on.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines a shift in the schedule of an agent group. A shift
contains
<tt>shiftPart</tt>
elements, corresponding to time intervals during which
agents work, have a break, lunch, etc. Alternatively, a
shift element in a
<tt>schedule</tt>
element of an agent group might refer to a shift defined
elsewhere in the document using the
<tt>xref</tt>
attribute.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines a shift in the schedule of an agent group.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the parts of the shift. A part specifies a
starting time, an ending time, and a type. At least
one occurrence of this element is required if the
<tt>xref</tt>
attribute is unset while this element is not allowed
if the
<tt>xref</tt>
attribute is set. Note that the time intervals for
shift parts must not overlap.
</xsd:documentation>
<xsd:appinfo>
<jxb:property name="shiftParts"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Gives the number of agents observed during a certain
number of i.i.d.\ days, on this schedule shift. Ths
number of agents on the shift is then a binomial
random variable with parameters estimated using
maximum likehood. Attributes
<tt>numAgents</tt>
and
<tt>probAgents</tt>
override this element. This element is allowed only
when this element is a child of a
<tt>schedule</tt>
element.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID">
<xsd:annotation>
<xsd:documentation>
Gives the identifier of this shift. This attribute is
required if this element is a child of
<tt>MSKCCParams.</tt>
Any shift with this attribute can be referred by another
shift by setting its
<tt>xref</tt>
attribute to the same value.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="xref" type="xsd:IDREF">
<xsd:annotation>
<xsd:documentation>
Gives the identifier of another
<tt>shift</tt>
element providing the shift parts. The value of this
attribute must correspond to the value of the
<tt>id</tt>
attribute for another shift in the document. When
<tt>xref</tt>
is used, the only other allowed attribute is
<tt>numAgents</tt>
and no child element is permitted.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the number of agents working on this shift.
This attribute is allowed only when this element is a
child of a
<tt>schedule</tt>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the probability that any given agent on this
shift is present and available to serve calls. The
default probability if this attribute is omitted is 1.
This attribute is allowed only when this element is a
child of a
<tt>schedule</tt>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Defines a part of a shift in the schedule of an agent group.
A part is specified using a starting time, an ending time,
and a type.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Defines the part of a shift in the schedule of an
agent group.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:TimeIntervalParams">
<xsd:annotation>
<xsd:documentation>
Determines the type of this part. The type can be
any string, but agents will process calls during
the part of the shift only if the type is
<tt>Working.</tt>
Any other type name results in agents not working
during the corresponding time interval. Custom
simulation code and future versions of the
simulator might define other part types.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents the router's parameters for a blend/multi-skill
call center. The
<tt>routerPolicy</tt>
attribute, which gives the name of the routing policy, is
the only element being always required for the router's
parameters. However, depending on the selected policy, some
other parameters become mandatory. For example, to use queue
priority, one needs at least a type-to-group or a
group-to-type maps. Parameters not used by the selected
routing policy are ignored.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents the router's parameters for a
blend/multi-skill call center.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Gives properties associated with the router. The
current version of the simulator ignores these
properties, but custom routing policies might use
them.
</xsd:documentation>
</xsd:annotation>
<xsd:key name="UniquePropertyName">
<xsd:selector xpath="*"/>
<xsd:field xpath="@name"/>
</xsd:key>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the type-to-group map routing table. The
usage of this 2D array of integers depends on the
selected routing policy. Each row corresponds to a
call type, and contains an ordered list of agent
groups.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the group-to-type map routing table. The
usage of this 2D array of integers depends on the
selected routing policy. Each row corresponds to an
agent group, and contains an ordered list of call
types.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the type-to-group matrix of ranks used for
agent selection by some routing policies. This matrix
has one row per call type and one column per agent
group. Element
<ii>(k,i)</ii>
of the matrix sets the priority assigned to agents in
group
<i>i</i>
by calls of type
<i>k.</i>
An infinite value indicates that no new call of type
<i>k</i>
can be sent to agents in group
<i>i.</i>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the group-to-type matrix of ranks used for
contact selection by some routing policies. This
matrix has one row for each agent group, and one
column for each call type. Element
<i>(i,k)</i>
of the matrix sets the priority agents in group
<i>i</i>
give to queued calls of type
<i>k.</i>
An infinite value indicates that no queued call of
type
<i>k</i>
can be served by agents in group
<i>i</i>
becoming free.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the matrix of ranks used for contact
selection by some routing policies, for contacts
having waited at least the given minimal waiting time.
Using one or more occurrences of this element in
combination with the
<tt>ranksGT</tt>
element can be used to change priority over time with
some routing policies. In the current version of the
simulator, this element is used only by the
<tt>AGENTSPREFWITHDELAYS</tt>
policy.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the type-to-group matrix of weights used
for agent selection by some routing policies. This
matrix has a format similar to
<tt>ranksTG</tt>
but gives weights instead of priorities.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the group-to-type matrix of weights used
for contact selection by some routing policies. This
matrix has a format similar to
<tt>ranksGT</tt>
but gives weights instead of priorities.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the matrix of delays giving, for each
(agent group, contact type) pair, the minimal delay a
contact of the corresponding type must wait to be
accepted for possible service by an agent in the
corresponding group. The matrix has a format similar
to
<tt>ranksGT</tt>
with delays instead of ranks. This element is used
only by the
<tt>AGENTSPREFWITHDELAYS</tt>
policy.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the type-to-group incidence matrix for this
router. This matrix of booleans has dimensions
<i>K x I</i>
and its element
<i>(k, i)</i>
is
<tt>true</tt>
if and only if new contacts of type
<i>k</i>
can be routed to agents in group
<i>i</i>
during agent selection. This matrix is not used in the
current routing policies, but other routing matrices
can be produced from it with the help of the
<tt>routingTableSources</tt>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the group-to-type incidence matrix for this
router. This matrix of booleans has dimensions
<i>I x K</i>
and its element
<i>(i, k)</i>
is
<tt>true</tt>
if and only if contacts of type
<i>k</i>
can be routed to agents in group
<i>i</i>
during contact selection. This matrix is not used in
the current routing policies, but other routing
matrices can be produced from it with the help of the
<tt>routingTableSources</tt>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the weight of each waiting queue
<i>q</i>
attached to the router. This array of double-precision
values is used by the longest weighted waiting time
policy, and this policy assigns a waiting queue for
each type of contact. The length of the given array
must therefore correspond to the number of call types.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="0"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the skill count for each agent group. If
this vector is needed but unspecified, the skill count
is obtained by checking the
<tt>skillCount</tt>
attributes of agent groups. If no such attribute
exists, the skill count is inferred by counting the
number of call types agents in the concerned group can
serve.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="0"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the desired fraction of the total number of
agents in all groups that serve contacts of each type.
If the total number of agents at time
<i>t</i>
is
<i>N(t),</i>
and
<i>n[k]</i>
is the element
<i>k</i>
of the returned array, the desired number of agents
serving calls of type
<i>k</i>
is
<i>n[k]N(t).</i>
This element is not used by any routing policy in the
current version of the simulator.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="0"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines the target queue ratio used by queue-ratio
overflow router. This element requires a number for
each agent group in the model, since the queue-ratio
routing policy assigns a waiting queue to each agent
group.
</xsd:documentation>
<xsd:appinfo>
<jxb:property collectionType="0"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Determines how missing routing tables are constructed
from given information. If this element is omitted, an
error occurs if the routing policy requires a missing
routing table. Otherwise, the information is
constructed according to the specified attributes.
Note that the construction logic can detect cycles, so
for example setting both
<tt>ranksTG</tt>
to
<tt>ranksGT</tt>
and
<tt>ranksGT</tt>
to
<tt>ranksTG</tt>
will result in an error rather than an infinite loop
if no matrix of ranks is given.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Describes the routing logic used for a specific call type by the
<tt>OVERFLOWANDPRIORITY</tt>
routing policy.
When the latter policy is used, the router needs an occurrence
of this element for any call type in the model.
The other policies ignore
any occurrence of this element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the router's policy used by the call center.
Any enum constant in the Java class
<tt>RouterPolicyType</tt>
from package
<tt>umontreal.iro.lecuyer.contactcenters.app</tt>
is accepted as a value for this attribute. Moreover,
custom simulation programs or Java archives may define
additional router's policies; see the
<tt>RouterFactory</tt>
class from package
<tt>umontreal.iro.lecuyer.contactcenters.msk.spi</tt>
for more information about this.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the overflow delay used by the
local-specialist routing policy, the default value being
0. This time duration is ignored by any routing policy,
except local-specialist.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the status of the overflow transfer mode used
by the agents' preference-based router with delays, or
the queue-ratio overflow router. This attribute has no
effect if the router's policy is not agents'
preference-based with delays or queue-ratio overflow. See
the documentation of these policies for more information
about this mode.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the agents' preference-based router with
delays uses a single-pass agent selection based on the
longest waiting time rather than multiple-passes
selection giving priority to calls with minimal delays.
This attribute has no effect if the router's policy is
not agents' preference-based with delays. See the
documentation of the agents' preference-based policy with
delays for more information about this option.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the number of testing periods for routing
policies basing their decisions on the system state
during a certain time in the past. This element is not
used by any routing policy in the current version of the
simulator.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the duration of testing periods for routing
policies basing their decisions on the system state
during a certain time in the past. This element is not
used by any routing policy in the current version of the
simulator.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines the threshold on the queue size used by
certain routing policies. This element is not used by any
routing policy in the current version of the simulator.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if contacts can be sent to multiple waiting
queues. This boolean indicator is used by the queue-ratio
overflow policy only.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the agent selection is randomized. This
boolean attribute has no effect for routing policies
other than agents' preference-based, agents'
preference-based with delays, and local-specialists.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines if the contact selection is randomized. This
boolean attribute has no effect for routing policies
other than agents' preference-based, agents'
preference-based with delays, and local-specialists.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines how scores for agent selection are computed.
This score is used only for policies based on agents'
preferences.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
<xsd:documentation>
Determines how scores for contact selection are computed.
This score is used only for policies based on agents'
preferences.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents a 2D array with an associated minimal waiting
time.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Represents a 2D array with an associated minimal
waiting time.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:DoubleArray">
<xsd:annotation>
<xsd:documentation>
Gives the minimal waiting time associated with the
2D array.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Parameter indicating how the agent selection score is
computed by agents' preference-based routers.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WEIGHTONLY">
<xsd:annotation>
<xsd:documentation>
The score for an agent group
<i>i</i>
for contact type
<i>k</i>
corresponds to the weight
<i>w</i>
<sub>TG</sub>
<i>(k, i).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="NUMFREEAGENTS">
<xsd:annotation>
<xsd:documentation>
The score corresponds to the number of free agents in
group
<i>i</i>
multiplied by the weight
<i>w</i>
<sub>TG</sub>
<i>(k, i).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="LONGESTIDLETIME">
<xsd:annotation>
<xsd:documentation>
The score corresponds to the longest idle time of
agents in group
<i>i</i>
multiplied by the weight
<i>w</i>
<sub>TG</sub>
<i>(k, i).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Parameter indicating how the contact selection score is
computed by agents' preference-based routers.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WEIGHTONLY">
<xsd:annotation>
<xsd:documentation>
The score for an agent group
<i>i</i>
for contact type
<i>k</i>
corresponds to the weight
<i>w</i>
<sub>GT</sub>
<i>(i, k).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="QUEUESIZE">
<xsd:annotation>
<xsd:documentation>
The score corresponds to the number of contacts in
queue multiplied by
<i>w</i>
<sub>GT</sub>
<i>(i, k).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="LONGESTWAITINGTIME">
<xsd:annotation>
<xsd:documentation>
The score corresponds to the longest waiting time of
the queued contact of type
<i>k</i>
multiplied by the weight
<i>w</i>
<sub>GT</sub>
<i>(i, k).</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing type-to-group map
can be inferred if it is needed by a routing policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixTG">
<xsd:annotation>
<xsd:documentation>
For each row
<i>k</i>
of the incidence matrix, the method creates a row in
the type-to-group map with a column containing value
<i>i</i>
for each
<i>i</i>
for which the value at position
<i>(k,i)</i>
is
<tt>true</tt>
in the incidence matrix. This gives lists of agent
groups sorted in increasing order of group identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksTG">
<xsd:annotation>
<xsd:documentation>
For each contact type, a list of agent groups sorted
in increasing order of group identifier is first
obtained by enumerating the groups with finite ranks.
Each row of the resulting type-to-group map is then
sorted in rank-increasing order. Agent groups sharing
the same rank are sorted in increasing order of group
identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksTGAndRegions">
<xsd:annotation>
<xsd:documentation>
Similar to
<tt>ranksTG</tt>
but also takes account of region identifiers
associated with contact types and agent groups. A
region identifier is set up by using a string property
named
<tt>region</tt>
and whose value corresponds to the identifier. Sorting
gives precedence to local assignments, i.e., the list
of agent groups for each contact type
<i>k</i>
contains all agent groups in the same region as
<i>k</i>
before any other group.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="groupToTypeMap">
<xsd:annotation>
<xsd:documentation>
For each contact type
<i>k,</i>
this strategy constructs an ordered list containing
all agent groups referring to it in the group-to-type
map, sorted in increasing order of group identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing group-to-type map
can be inferred if it is needed by a routing policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixGT">
<xsd:annotation>
<xsd:documentation>
For each row
<i>i</i>
of the incidence matrix, this strategy creates a row
in the group-to-type map with a column having a value
<i>k</i>
for each
<tt>true</tt>
value at position
<i>(i, k)</i>
in the incidence matrix. This gives lists of contact
types sorted in increasing order of type identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksGT">
<xsd:annotation>
<xsd:documentation>
For each agent group, a list of contact types sorted
in increasing order of type identifier is first
obtained by enumerating the types with finite ranks.
Each row of the resulting group-to-type map is then
sorted in rank-increasing order. Contact types sharing
the same rank are sorted in increasing order of type
identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksGTAndRegions">
<xsd:annotation>
<xsd:documentation>
Similar to
<tt>ranksGT</tt>
but also takes account of region identifiers
associated with contact types and agent groups. A
region identifier is set up by using a string property
named
<tt>region</tt>
and whose value corresponds to the identifier. Sorting
gives precedence to local assignments, i.e., the list
of contact types for each agent group
<i>i</i>
contains all contact types in the same region as
<i>i</i>
before any other type.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="typeToGroupMap">
<xsd:annotation>
<xsd:documentation>
For each agent group
<i>i,</i>
this method constructs a list containing all contact
types referring to it in the type-to-group map, sorted
in increasing order of type identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing type-to-group
matrix of ranks can be inferred if it is needed by a routing
policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixTG">
<xsd:annotation>
<xsd:documentation>
For each agent group
<i>i,</i>
and each contact type
<i>k,</i>
this strategy sets the rank to infinity if the
corresponding element in the incidence matrix is
<tt>false.</tt>
Otherwise, it sets the rank to 1.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="incidenceMatrixTGAndSkillCounts">
<xsd:annotation>
<xsd:documentation>
For each agent group
<i>i,</i>
and each contact type
<i>k,</i>
this strategy sets the rank to infinity if the
corresponding element in the incidence matrix is
<tt>false.</tt>
Otherwise, it sets the rank to the skill count for
agent group
<i>i.</i>
The skill count is determined using, in this order,
the
<tt>skillCounts</tt>
element in the parameters of the router, the
<tt>skillCount</tt>
attribute of the agent groups, or the number of
contact types that can be served by agents in group
<i>i.</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksGT">
<xsd:annotation>
<xsd:documentation>
Obtained the type-to-group matrix of ranks by
transposing the group-to-type matrix of ranks.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="typeToGroupMap">
<xsd:annotation>
<xsd:documentation>
For each non-negative
<i>
i
<sub>k,j</sub>
</i>
in the type-to-group map, the rank of contact type
<i>k</i>
for agent group
<i>
i
<sub>k,j</sub>
</i>
is set to
<i>j.</i>
If an agent group does not appear in the list of
<i>k,</i>
the associated rank is infinite.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing group-to-type
matrix of ranks can be inferred if it is needed by a routing
policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixGT">
<xsd:annotation>
<xsd:documentation>
For each contact type
<i>k,</i>
and each agent group
<i>i,</i>
this strategy sets the rank to infinity if the
corresponding element in the incidence matrix is
<tt>false.</tt>
Otherwise, it sets the rank to 1.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="incidenceMatrixGTAndSkillCounts">
<xsd:annotation>
<xsd:documentation>
For each contact type
<i>k,</i>
and each agent group
<i>i,</i>
this strategy sets the rank to infinity if the
corresponding element in the incidence matrix is
<tt>false.</tt>
Otherwise, it sets the rank to the skill count for
agent group
<i>i.</i>
The skill count is determined using, in this order,
the
<tt>skillCounts</tt>
element in the parameters of the router, the
<tt>skillCount</tt>
attribute of the agent groups, or the number of
contact types that can be served by agents in group
<i>i.</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksTG">
<xsd:annotation>
<xsd:documentation>
Obtained the group-to-type matrix of ranks by
transposing the type-to-group matrix of ranks.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="groupToTypeMap">
<xsd:annotation>
<xsd:documentation>
For each non-negative
<i>
k
<sub>i,j</sub>
</i>
in the group-to-type map, the rank of agent group
<i>i</i>
for contact type
<i>
k
<sub>i,j</sub>
</i>
is set to
<i>j.</i>
If a contact type does not appear in the list of
<i>i,</i>
the associated rank is infinite.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing type-to-group
incidence matrix can be inferred if it is needed by a
routing policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixGT">
<xsd:annotation>
<xsd:documentation>
Constructs the type-to-group incidence matrix by
transposing the group-to-type matrix.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksTG">
<xsd:annotation>
<xsd:documentation>
Creates an incidence matrix by setting each element
<i>(k,i)</i>
to
<tt>true</tt>
if and only if the corresopnding rank is finite.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="typeToGroupMap">
<xsd:annotation>
<xsd:documentation>
Element
<i>(k,i)</i>
of the incidence matrix is
<tt>true</tt>
if and only agent group
<i>i</i>
is included in the list for contact type
<i>k.</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Possible structures from which the missing group-to-type
incidence matrix can be inferred if it is needed by a
routing policy.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="incidenceMatrixTG">
<xsd:annotation>
<xsd:documentation>
Constructs the group-to-type incidence matrix by
transposing the type-to-group matrix.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ranksGT">
<xsd:annotation>
<xsd:documentation>
Creates an incidence matrix by setting each element
<i>(i,k)</i>
to
<tt>true</tt>
if and only if the corresopnding rank is finite.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="groupToTypeMap">
<xsd:annotation>
<xsd:documentation>
Element
<i>(i,k)</i>
of the incidence matrix is
<tt>true</tt>
if and only contact type
<i>k</i>
is included in the list for agent group
<i>i.</i>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Parameter selecting the algorithm used to compute the correlation matrix
in the Poisson gamma rate arrival process.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="FULLCORRELATION">
<xsd:annotation>
<xsd:documentation>
Uses the estimated copula correlation matrix for the
Gamma-Poisson NORTA model for rates.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MARKOVLINEARFIT">
<xsd:annotation>
<xsd:documentation>
Fits the general linear model
<i>r_j = a b^j + c</i>
to the
estimated copula correlation matrix for the Gamma-Poisson
NORTA model for rates.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MARKOVSINGLERHO">
<xsd:annotation>
<xsd:documentation>
Fits the single
<tt>rho</tt>
Markov linear model
<i>r_j = b^j</i>
to the estimated copula correlation matrix for the
Gamma-Poisson NORTA model for rates.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Parameter selecting the method used to estimate the shape parameter
in the Poisson gamma arrival process.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SINGLESHAPE">
<xsd:annotation>
<xsd:documentation>
The gamma shape parameters are assumed to have the same value
across sub-periods.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="SPLINESHAPE">
<xsd:annotation>
<xsd:documentation>
A smoothing spline is used to enforce smoothness of gamma shape
parameters from one sub-period to another.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Determines how missing routing information can be inferred
from alternative data structures. Often, a missing routing
data structure can be created several ways. For example, the
type-to-group map may be constructed using the group-to-type
map, a matrix of ranks, etc. However, some algorithms
destroy or guess information, which can lead to incorrect
results. If this element is given without any attribute, the
default most common constructions are used: a missing matrix
of ranks or incidence matrix is obtained by transposing the
given complementary matrix. Other mappings can be given by
setting attributes in this element.
</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Describes the routing logic for a specific call type by a
sequence of stages defined by a minimal waiting time, and
functions generating vectors of ranks.
Elements of this type are used to encode the parameters
of the
<tt>OVERFLOWANDPRIORITY</tt>
routing policy only.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Describes a specific stage of the routing, for
a particular call type.
The sequence of
<tt>stage</tt>
elements
should given in non-decreasing
order of minimal waiting time.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Describes a specific stage of routing for a particular call type by
using a waiting time, and a sequence of cases.
The waiting time is given by the attribute
<tt>waitingTime</tt>
while the sequence of cases
is set up by
<tt>case</tt>
elements optionnally followed
by a
<tt>default</tt>
element.
The routing policy checks each condition given by
the cases in the specified
order, and takes the vectors of ranks corresponding
to the first case that applies.
If no case applies, the vectors given in the default
case are used.
If no case applies and no
<tt>default</tt>
element is given,
the stage has no effect.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Describes a case by a condition, and vectors
of ranks used if the condition applies.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Describes the default case with vectors of ranks
used if no case applies.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the minimal time a call must spent in queue
before this stage of the routing occurs.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0">
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the vector of ranks used for selecting
an agent group at a given stage of routing.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the vector of ranks used for selecting
an agent group at a given stage of routing relative to the
previously used vector.
When a relative vector of ranks is used, the rank for an agent group
is determined by adding the previous rank to the given value.
If the previous rank is infinite, only the given value is used.
If the given value is infinite, the rank becomes infinite as well.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Represents a user-defined function computing ranks.
The
<tt>name</tt>
attribute gives the name of
a class implementing
the
<tt>RankFunction</tt>
interface from package
<tt>umontreal.iro.lecuyer.contactcenters.router</tt>
.
Eight signatures of constructors are looked for, in that order:
<tt>(CallCenter, int, Map),</tt>
<tt>(CallCenter, int),</tt>
<tt>(CallCenter, Map),</tt>
<tt>(int, Map),</tt>
<tt>(CallCenter),</tt>
<tt>(Map),</tt>
<tt>(int),</tt>
and
<tt>()</tt>
(no argument).
The first matching constructor is used to create the function object.
The
<tt>CallCenter</tt>
class comes from package
<tt>umontreal.iro.lecuyer.contactcenters.msk.model,</tt>
the integer corresponds to the index of the call type, and
the map comes from
<tt>java.util.</tt>
<p>
If the constructor accepts a map,
it is given a map whose
keys are of type
<tt>String</tt>
and values
are of type
<tt>Object.</tt>
The given map is
filled with
the properties parsed from the
<tt>prpoerties</tt>
child element.
This can be used to pass parameters to custom rank functions.
</p>
<p>
Some rank functions require complex state information, such
as statistics observed during
some time periods.
In such cases, mechanisms need to be initialized at the beginning
of simulation steps, and started during time intervals the rank function is used.
For this, the rank function object might implement
the
<tt>Initializable</tt>
and
<tt>ToggleElement</tt>
interfaces in package
<tt>umontreal.iro.lecuyer.contactcenters.</tt>
At the beginning of each step, the simulator calls
<tt>init()</tt>
on each initializable rank function, then
<tt>start()</tt>
for each function implementing
<tt>ToggleElement.</tt>
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:choice minOccurs="0">
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Determines the vector of ranks used for deciding
in which waiting queues a call not served immediately goes in.
This element is optional; if it is omitted, the vector of ranks for
queueing is obtained using
<tt>agentGroupRanks</tt>
or
<tt>agentGroupRanksRel.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:appinfo>
<jxb:property collectionType="indexed"/>
</xsd:appinfo>
<xsd:documentation>
Similar to
<tt>agentGroupRanksRel</tt>
for
priorities of queues.
This element is optional; if it is omitted, the vector of ranks for
queueing is obtained using
<tt>agentGroupRanks</tt>
or
<tt>agentGroupRanksRel.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Similar to
<tt>agentGroupRanksFunc</tt>
for ranks associated with waiting queues.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<xsd:annotation>
<xsd:documentation>
Contains the vectors of ranks used by default, if
no other case applies for a given routing stage.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="ccmsk:VectorsOfRanks"/>
</xsd:sequence>
</xsd:complexType>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>
Verifies that at least one of the contained conditions applies.
This corresponds to an ``or'' operation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Verifies that all the contained conditions apply.
This corresponds to an ``and'' operation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the waiting queue with index
given by the
<tt>first</tt>
attribute with
the waiting queue identified by the
<tt>second</tt>
attribute using the
relationship given by the
<tt>rel</tt>
attribute.
If the
<tt>firstType</tt>
attribute is given,
the number of calls of the given type in the first queue
is used rather than the total number of calls.
The
<tt>secondType</tt>
attribute has a similar behavior,
for the second queue.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the waiting queue with index
given by the
<tt>index</tt>
attribute with
the threshold given by the
<tt>threshold</tt>
attribute using the
relationship given by the
<tt>rel</tt>
attribute.
If the
<tt>type</tt>
attribute is given as well,
the number of calls of the given type is compared
rather than the total number of calls in the queue.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the number of free agents in group with index
given by the
<tt>first</tt>
attribute with
that of the agent group identified by the
<tt>second</tt>
attribute.
The comparison is performed using the
relationship given by the
<tt>rel</tt>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the number of free agents in group with index
given by the
<tt>index</tt>
attribute with
the threshold given by the
<tt>threshold</tt>
attribute.
The comparison is performed using the
relationship given by the
<tt>rel</tt>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the fraction of busy agents in group with index
given by the
<tt>first</tt>
attribute with
that of the agent group identified by the
<tt>second</tt>
attribute.
Fractions are computed relative to the total number
of agents in the group, and
the comparison is performed using the
relationship given by the
<tt>rel</tt>
attribute.
If the
<tt>firstType</tt>
attribute is given,
the fraction of busy agents in the first group
serving calls of the given
type is used for comparison.
Similarly, the fraction of busy agents of a given type
in the second group is
used if the
<tt>secondType</tt>
attribute is set.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares the fraction of busy agents in group with index
given by the
<tt>index</tt>
attribute with
the threshold given by the
<tt>threshold</tt>
attribute.
The fraction is computed relative to the total number of agents in
the group, and
the comparison is performed using the
relationship given by the
<tt>rel</tt>
attribute.
Moreover, if the
<tt>type</tt>
attribute is set,
the fraction of busy agents serving calls of a specific type is
used rather than the fraction of all busy agents.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Establishes a condition on statistics concerning
a given type of performance measure.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Represents a user-defined condition.
The
<tt>name</tt>
attribute gives the name of
a class implementing
the
<tt>Condition</tt>
interface from package
<tt>
umontreal.iro.lecuyer.contactcenters.msk.conditions
</tt>
.
Eight signatures of constructors are looked for, in that order:
<tt>(CallCenter, int, Map),</tt>
<tt>(CallCenter, int),</tt>
<tt>(CallCenter, Map),</tt>
<tt>(int, Map),</tt>
<tt>(CallCenter),</tt>
<tt>(Map),</tt>
<tt>(int),</tt>
and
<tt>()</tt>
(no argument).
The first matching constructor is used to create the function object.
The
<tt>CallCenter</tt>
class comes from package
<tt>umontreal.iro.lecuyer.contactcenters.msk.model,</tt>
the integer corresponds to the index of the call type, and
the map comes from
<tt>java.util.</tt>
<p>
If the constructor accepts a map,
it is given a map whose
keys are of type
<tt>String</tt>
and values
are of type
<tt>Object.</tt>
The given map is
filled with
the properties parsed from the
<tt>prpoerties</tt>
child element.
This can be used to pass parameters to custom conditions.
</p>
<p>
Some conditions require complex state information, such
as statistics observed during
some time periods.
In such cases, mechanisms need to be initialized at the beginning
of simulation steps, and started during time intervals the condition is used.
For this, the condition object might implement
the
<tt>Initializable</tt>
and
<tt>ToggleElement</tt>
interfaces in package
<tt>umontreal.iro.lecuyer.contactcenters.</tt>
At the beginning of each step, the simulator calls
<tt>init()</tt>
on each initializable condition, then
<tt>start()</tt>
for each condition implementing
<tt>ToggleElement.</tt>
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:group>
<xsd:annotation>
<xsd:documentation>
Represents a list of conditions.
An element of this type is used to construct
<tt>either</tt>
or
<tt>all</tt>
conditions.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group maxOccurs="unbounded" minOccurs="1" ref="ccmsk:Conditions"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents a relationship between two quantities.
This is used to describe conditions comparing
quantities such as the queue size, number of free agents,
or statistics.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SMALLER"/>
<xsd:enumeration value="SMALLEROREQUAL"/>
<xsd:enumeration value="EQUAL"/>
<xsd:enumeration value="GREATEROREQUAL"/>
<xsd:enumeration value="GREATER"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for a condition comparing
two indexed quantities, e.g., the size of two specific
queues in a model.
The compared indices are given using the
<tt>first</tt>
and
<tt>second</tt>
attributes, while
the checked relationship is described by
the
<tt>rel</tt>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for a condition comparing
two index quantities possibly for
specific call types.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:TwoIndicesParams">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for a condition comparing
an indexed quantity, e.g., the service level for a given
call type, with a fixed threshold.
The index for the quantity to be compared is given by
the
<tt>index</tt>
attribute while the threshold is set up
using the
<tt>threshold</tt>
attribute.
The
<tt>rel</tt>
attribute describes how
the indexed quantity is compared with the threshold.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="threshold" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for a condition comparing
an indexed quantity with a fixed threshold,
possibly for a specific
call type.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:IndexThreshParams">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Same as
<tt>IndexThreshParams</tt>
but the threshold
is an integer.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="threshold" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Contains the parameters for a condition comparing
an indexed quantity with a fixed integer threshold,
possibly for a specific
call type.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:IndexThreshIntParams">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Regroups the parameters for a condition on statistics
collected during some time intervals.
The a
<tt>measure</tt>
attribute indicates the name of a
type of performance measure on which the condition applies.
The condition checks statistics of the appropriate type
during a certain number of intervals given by the
<tt>numCheckedPeriods</tt>
attribute.
The length of the intervals is set up using
the
<tt>checkedPeriodDuration</tt>
attribute.
Each statistics has an index whose meaning depends on the type of
performance measure.
For example, if service level is selected by setting
<tt>measure</tt>
to
<tt>SERVICELEVEL,</tt>
the
index corresponds to a call type.
The conditions on the collected statistics are
given using elements.
For the overall condition to to true, each
condition set up by child elements must apply.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:choice maxOccurs="unbounded" minOccurs="1">
<xsd:annotation>
<xsd:documentation>
Compares a statistic with index
given by the
<tt>index</tt>
attribute
with a constant given by
<tt>threshold</tt>
attribute, using the relationship given by
the
<tt>rel</tt>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
<xsd:documentation>
Compares statistics given by indices
<tt>first</tt>
and
<tt>second</tt>
, using
the relationship given by
<tt>rel.</tt>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="measure" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents a condition on the state of a call center.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="ccmsk:Conditions"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Represents a case inside a routing stage, and described
using a routing condition along with vectors of ranks.
If the vectors of ranks are omitted, no changes to priorities
are performed if the condition applies.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ccmsk:ConditionParams">
<xsd:sequence>
<xsd:group maxOccurs="1" minOccurs="0" ref="ccmsk:VectorsOfRanks"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Gives parameters for a segment which is defined here as a
group of contact types, agent groups, or main periods. When
managing a complex model with many call types and agent
groups, a common pratice is to regroup the elements into
segments for easier analysis and reporting. In that context,
elements of a segment share a common property such as the
originating region, location, spoken language, part of day,
day of week, etc. Each segment has an optional name which is
used in statistical reports, zero or more properties, and a
list of indices corresponding to the members of the formed
group. The simulator supports segments that regroup inbound
call types, outbound call types, call types (inbound or
outbound), agent groups, and main periods. Segments are
specified using elements in
<tt>MSKCCParams.</tt>
They have no impact on simulation, only on reports.
</xsd:documentation>
<xsd:appinfo>
<jxb:class>
<jxb:javadoc>
Gives parameters for a segment which is defined here
as a group of contact types, agent groups, or main
periods.
</jxb:javadoc>
</jxb:class>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ssj:Named">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>
Determines the content of the segment, i.e., the
indices of the components included in it. The
allowed range for the indices depends on the
type of segment described.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:list itemType="ssj:nonNegativeInt"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
Main element representing parameters of a call center.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:schema>

XML Schema documentation generated with DocFlex/XML (Kit) v1.6.8
DocFlex/XML (Kit) is a freeware edition of DocFlex/XML, which is a powerful template-driven documentation and report generator from any data stored in XML files. Based on an innovative technology developed by FILIGRIS WORKS, this new tool offers virtuoso data querying and formatting capabilities not found in anything else!
Need to convert your XML data into a clear nice-looking documentation or reports? Web-ready hypertext HTML or printable MS Word / OpenOffice.org friendly RTF? DocFlex/XML may be a cheap, quick and effective solution exactly for this task!
Have questions? Not sure how to use it? Just send us e-mail to contact@filigris.com and we are always happy to help you! See also our services at www.filigris.com