Arena Call Center slides

advertisement
Detailed Modeling and
Terminating Statistical Analysis
Chapter 5
(from KSS’01)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 1 of 88
What We’ll Do ...
• Explore lower-level modeling constructs
• Model 5-1: A generic call-center system
ƒ
ƒ
Nonstationary arrival process
Balking, three-way decisions, sets, variables, expressions,
submodels, and costing
• Debugging
• Model 5-2: Animating the call center model
ƒ
Plots, global pictures, and storages
• Model 5-3: The model with overall performance
measures
ƒ
Run conditions, model size and speed, overall performance
measures
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 2 of 88
What We’ll Do ... (cont’d.)
• Statistical analysis of simulation output
(terminating systems)
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Time frame of simulations
Strategy for data collection and analysis
Confidence intervals
Comparing two alternatives
Comparing many alternatives via the Arena Process
Analyzer (PAN)
Searching for and optimal alternative with OptQuest
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 3 of 88
Generic Call Center
(Model 5-1)
• Single telephone number, 26 trunk lines
ƒ
If all 26 lines busy, caller gets busy signal and goes away
• Answered call gets recording asking …
ƒ
ƒ
ƒ
Technical support? (76% of callers choose this)
Sales information? (16%)
Order-status inquiry? (8%)
• Time for caller to choose ~ UNIF (0.1, 0.6)
• All times are in minutes in this model
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 4 of 88
Technical Support Calls
• Get second recording asking …
ƒ
ƒ
ƒ
Product type 1? (25% of tech support callers choose this)
Product type 2? (34%)
Product type 3? (41%)
• Recording and choosing takes UNIF(0.1, 0.5)
• If a qualified tech-support person is available for
•
•
•
chosen product, call routed for immediate service
If not, call placed in (electronic) queue, subjected
to annoying rock music
All tech support conversations ~ TRIA (3, 6, 18)
When call done, customer exits system
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 5 of 88
Technical Support Calls (cont’d.)
• 4% of tech support calls need further assistance
after completion of their call
ƒ
ƒ
ƒ
ƒ
ƒ
Questions forwarded to another tech group that prepares a
response; time to prepare this response ~ EXPO (60)
Response sent back to the same tech-support person who
took the original call
This person calls the customer back and talks, which lasts
TRIA (2, 4, 9)
These calls require one of the 26 trunk lines and take
priority over incoming calls
If return call not completed on same day, it’s carried over to
the next day
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 6 of 88
Sales Calls
• Call automatically routed to sales staff
• Sales staff is separate from tech-support staff
• If a sales-staff person is available, call gets
•
•
•
immediate service
If not, call placed in (electronic) queue, treated to
soothing new-age space music
All sales conversations ~ TRIA (4, 15, 45)
When call done, customer exits system
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 7 of 88
Order-Status Calls
•
•
•
•
Automatically handled by phone system — no people
No limit on number handled at a time (but still limited
by the 26 trunk lines)
Time for “conversation” ~ TRIA (2, 3, 4)
After call, 15% take option to talk to a real person (the
rest exit the system)
ƒ
ƒ
ƒ
ƒ
These calls are routed to sales staff
Have same priority as incoming sales calls
Conversation durations ~ TRIA (3, 5, 10)
Then exit the system
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 8 of 88
Call Arrivals
• Calls accepted from 8 AM until 6 PM
• Some staff available until 7 PM
ƒ
ƒ
•
Incoming calls shut out after 6 PM
But all calls that entered before 6 PM are answered
Call arrival rate varies substantially over the day
ƒ
Data on rate (calls per hour) for each half-hour period:
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 9 of 88
Staffing
• Sales staff: 7 people with staggered schedules
ƒ
ƒ
3 on duty for first 90 minutes (notation: 3@90)
Then 7@90, 6@90, 7@60, 6@120, 7@120, 4@90
• Tech support staff: 11 people variously qualified
for the three different product lines
ƒ
ƒ
ƒ
ƒ
Work eight-hour days plus 30 minutes off for lunch
Some people only qualified on one line
Some people qualified on two or maybe all three lines
Detailed staffing description and schedule ...
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 10 of 88
Technical-Support Staff Schedules
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 11 of 88
New Modeling Issues
• This is a service (not manufacturing) system
ƒ
But can use same modeling capabilities
• Nonstationary arrival process
ƒ
ƒ
ƒ
Arrivals occur one at a time and are independent of one
another
Average rate varies over time (would be constant for a
stationary Poisson process)
Built into Create module (beware of popular-but-wrong
methods … details in book)
• Balking
ƒ
ƒ
ƒ
Required because there are only 26 trunk lines
Entity arrives at queue, which is full (capacity is 0 here)
Entity departs from system – count these
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 12 of 88
New Modeling Issues (cont’d.)
• Three-way decisions
ƒ
Entity or call can go to one of three places in model based
on call type
–
ƒ
Similarly, tech-support calls can go to one of three places based on
product type
Capability available in Decide module
• Sets
ƒ
ƒ
Groups of similar objects
Can be referenced by a common set name and index (1, 2,
3, …) into the set
–
ƒ
Technical-support staff requires sets
–
ƒ
Can also be referenced by original name, independent of set
An object can be a member of more than one set
Sets data module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 13 of 88
New Modeling Issues (cont’d.)
• Variables and Expressions
ƒ
ƒ
ƒ
Can be referenced in model by name
Can be one- or two-dimensional arrays, indexed by one or
two integers
User-defined Variables
–
–
–
ƒ
Store some numerical value (not a formula)
Can be initialized in Variable data module
Can be used, reassigned during the simulation run by any entity
User-defined Expressions
–
–
–
A name defined by a mathematical expression
This name can be references anywhere in the model
Can use constants, Variables, Attributes, system state variables,
values from distribution – connected via mathematical operations
Can use Expression Builder to help define
–
Defined in Expression data module (Advanced Process panel)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 14 of 88
New Modeling Issues (cont’d.)
• Submodels
ƒ
Partition simulation model into several smaller submodels
–
ƒ
ƒ
ƒ
ƒ
Can link them together, more manageable pieces
Just like a normal model view within a submodel
Submodels can also contain further submodels, etc. –
hierarchical structure
Submodels can be externally connected to other modules
or submodels
Navigate panel in Project Bar shows submodels, under
Top-Level Model
• Costing
ƒ
Automatic time and cost information for entities
–
ƒ
Wait, value-added, non-value-added, transfer, other
You must enter cost information – Entity and Resource
data modules
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 15 of 88
Key Output Performance Measures
• Count balks — no. of attempted incoming calls
sent away due to all 26 trunk lines being busy
ƒ
•
•
•
•
•
Will not model reneging — customers in queue leaving the system if
they get sick of waiting
Total time in system, by customer type
Time waiting for a real person, by customer type
Contact time, by customer type
Number of calls waiting, by customer type
Personnel utilization
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 16 of 88
Animation Requirements
• No entity movement to animate here
• Can still display queues
• To see how well staffing matches up with load,
craft appropriate plots vs. time
ƒ
ƒ
ƒ
Number of calls balked
Lengths of queues
Number of idle staff
• Strategy to improve performance — alter the
staffing schedule, see if it produces a better
matchup of the plots
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 17 of 88
System or Simulation Type
• Terminating
ƒ
ƒ
Known starting and stopping conditions – part of model
Time frame is known (and finite)
• Steady-State
ƒ
ƒ
ƒ
Initial conditions are not always well defined
No defined stopping condition (theoretically infinite)
Interested in system response over the long run
• Call-center model
ƒ
Start at 8 AM and end at 7 PM
–
ƒ
Some Technical support calls are held over, but not many – we’ll
ignore this aspect (sort of … fixed below)
Treat the system as terminating (sort of … see below)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 18 of 88
Arena Modeling Panels
• Basic Process panel
ƒ
Highest level of modeling
• Advanced Process panel
ƒ
More detailed (and different) modeling capabilities
• Advanced Transfer panel
ƒ
Material-handling, entity-movement capabilities
• Blocks, Elements panels
ƒ
ƒ
ƒ
Lowest level of modeling capabilities – the underlying
SIMAN simulation language itself
Other panels are created using modules from these panels
Occasionally needed, but not very often
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 19 of 88
Building the Model
• Defining the Data
• Submodel Creation
• Divide model in sections or submodels
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Increment the Time Period
Create Arrivals and Direct to Service
Technical Support Calls
Technical Support Returned Calls
Sales Calls
Order-Status calls
• We’ll discuss each of these in turn …
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 20 of 88
Simulation Replication Data
• Project replication parameters
ƒ
ƒ
ƒ
Run/Setup dialog – Replication Parameters tab
10 Replications of 11 hours each
Four options for Initialization Between Replications:
–
Initialize system (yes), initialize statistics (yes)
10 independent and identical replications – no calls carried over
Reports for each day separately
–
Initialize system (yes), initialize statistics (no)
10 independent and identical replications – no calls carried over
Cumulative summary reports (day 1, days 1-2, days 1-3, …, days 1-10)
–
Initialize system (no), initialize statistics (yes): Selected
10 continuous days – calls carried over
Reports are by replication (day)
–
Initialize system (no), initialize statistics (no)
10 continuous days – calls carried over
Cumulative summary reports
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 21 of 88
Schedule Data
• Schedules
ƒ
ƒ
Enter into Schedule data module
13 schedules required
–
–
–
ƒ
ƒ
One for each of the 11 technical-support people
One for the sales staff overall
The arrival process (Type = Arrival, not Capacity)
Use Graphical schedule editor (initially)
Use Edit via Dialog (or Edit via Spreadsheet) if you need
trailing zeros in the capacity to fill out the cycling time
window
–
We need this in this model due to not Initializing System between
replications … see book for details
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 22 of 88
Resource Data
• Define resources
ƒ
ƒ
Use Resource data module
13 resources
–
–
–
ƒ
Enter Schedule Name for all but Trunk Line
–
ƒ
Sales staff
11 technical support staff
Trunk Line (single resource with 26 units)
For resources on a Schedule, use Ignore option for Schedule Rule
to ensure correct cross-day modeling … details in book
Add hourly wage under costing data
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 23 of 88
Sets Data
• Use Set data module (Basic Process panel)
• Develop three Resource sets for technical
support staff
ƒ
Product 1
–
ƒ
Product 2
–
ƒ
ƒ
Tierney, Sean, Emma, Anna, Sammy
Product 3
–
ƒ
Charity, Noah, Molly, Anna, Sammy
Shelley, Jenny, Christie, Molly, Anna, Sammy
Note that Anna and Sammy are in all three sets
Consistently listed the more versatile staff at the end of the
list in each set … “save” them … discussed later
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 24 of 88
Sets Data (cont’d.)
• Develop two Tally sets
ƒ
Tech Calls
–
ƒ
Returned Time
–
ƒ
Product 1 Call, Product 2 Call, Product 3 Call
Return 1 Call, Return 2 Call, Return 3 Call
Sets used to collect statistics by product type
• Develop a Counter set
ƒ
ƒ
ƒ
Keep track of number of balks per half-hour period
22 counters – one for each half-hour period
First defined 22 counters in Statistic data module
(Advanced Process panel)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 25 of 88
Variables and Expressions Data
• Variables
ƒ
Use Variable data module to define thee variables
–
–
–
–
Period (the current time period)
Busy Per Period (busy signals in current time period)
Per Period Balk (total balks for last completed time period)
Note – explicit use of Variables module is required only if you want
a Variable to have a non-zero initial value
• Expressions
ƒ
Use Expression data module to define three expressions
–
–
–
Returned Tech Time, for duration of returned tech-support calls:
TRIA(2, 4, 9)
Tech Time, for duration of tech-support calls : TRIA(3, 6, 18)
Available 1, Available 2, and Available 3
Sum of currently available, but idle, resources by product type, for staffing plots
Use Expression Builder … details in book, model
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 26 of 88
Submodel Creation
• Object/Submodel/Add Submodel menu option to
create a submodel … we’ll use six submodels
ƒ
Define (right-click, then Properties)
–
–
ƒ
Name
Number of entry, exit points (could be 0 if there’s no flow interaction)
Move between submodels: Navigate panel, Named Views,
or mouse
–
–
Double-click on a submodel to open it
When in a submodel, right-click in an empty place, then Close
Submodel, to go up
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 27 of 88
Time Period Counter Submodel
• Increments the time period counter
• No entry or exit points – interacts via Variables,
not flow
• Create Counter Entity – Create module
ƒ
Time Between Arrivals – 660 minutes (constant)
• Assign Period – Assign module
ƒ
Initialize Period variable value to zero
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 28 of 88
Time Period Counter Submodel (cont’d.)
• Assign Variables – Assign module
ƒ
ƒ
ƒ
Increment Period variable for the next half-hour period
Assign Per Period Balk to Busy Per Period variable
value (number of calls balked during previous half hour)
Set Busy Per Period variable to zero to start balk
counting during the half hour starting now
• Check Period – Decide module
ƒ
ƒ
2-Way by Condition
Determine if there are still more periods in this day (i.e., if
Period < 22)
–
–
Yes: Delay for a half hour – Delay module, then loop back
No: Dispose of entity – Dispose module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 29 of 88
Create and Direct Arrivals Submodel
•
•
•
Creates arrivals, checks for available trunk line, and
directs to appropriate type of service
No entry points
Three exit points
ƒ
Tech Call, Sales Call, Order Status Call
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 30 of 88
Submodel Logic
• Create arriving calls
ƒ
If a trunk line is available – seize one
–
Assign Arrival Time attribute (for use downstream)
–
Delay to listen to recording
Determine call type
Direct call and assign entity type
–
–
ƒ
Else (all trunk lines are busy)
–
Count balked call
Increment Busy Per Period counter
–
Dispose of call
–
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 31 of 88
Develop Submodel
• Create arriving calls – Create module
ƒ
Time Between Arrivals
–
–
Type: Schedule
Schedule Name: Arrival Schedule
Was defined when we defined the data for the model
• Check for available trunk line
ƒ
ƒ
Queue/Seize module combination (Blocks panel)
Set queue capacity to zero
–
–
If trunk line available, resource seized in following Seize module
If no truck line available, entity will automatically balk
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 32 of 88
Develop Submodel (cont’d.)
• Assign arrival time – Assign module
ƒ
Use Arena variable TNOW = current simulation clock
• Delay for Recording – Delay module
ƒ
ƒ
Used Delay module from Blocks panel
Be careful of units – no choice here (uses Base Time Units)
• Direct call – Decide module
ƒ
ƒ
Use N-way by Chance option
Enter probabilities as percents (0 – 100)
• Assign call type – Assign module
ƒ
ƒ
Assign entity type to call type
Three modules
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 33 of 88
Develop Submodel (cont’d.)
• Balking entities
ƒ
Count balked call – Record module
–
Record into counter set Busy Lines
Set index is the variable Period
ƒ
ƒ
Increment Busy Per Period variable – Assign module
Dispose of balked call call – Dispose module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 34 of 88
Technical Support Calls Submodel
• Logic for servicing technical support calls
• One entry point
• One exit point – follow-up calls
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 35 of 88
Submodel Logic
• Delay to listen to recording – Delay module
ƒ
UNIF(0.1, 0.5) minutes
• Determine product type – Decide module
ƒ
N-way by Chance
• Seize technical support person
ƒ
ƒ
ƒ
Seize module – Advanced Process panel
Request from appropriate set for product type
Preferred order within the set
–
ƒ
Save more versatile employees for other things
Save set index (particular tech-support person) in attribute
Tech Agent Index
–
In case returned tech call is needed – get same tech-support person
to call customer back
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 36 of 88
Submodel Logic (cont’d.)
• Save product type and call start time – Assign
module
ƒ
ƒ
Save type (1, 2, or 3) in attribute Product Type
Assign value from TNOW to attribute Call Start
• Delay for call – Delay module
ƒ
Use value from expression Tech Time
• Release tech-support person and trunk line
ƒ
ƒ
ƒ
Release module – Advanced Process panel
Use set index in attribute Tech Agent Index to release
the particular tech-support person assigned from set
Release the seized unit of Trunk Line resource
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 37 of 88
Submodel Logic (cont’d.)
• Record call and line time – Record module
ƒ
ƒ
ƒ
ƒ
Time Interval type
Tally set Tech Calls
Set index Product Type
Records only the time spent during the tech-support
conversation (necessary?)
• Record tech line time – Record module
ƒ
ƒ
ƒ
ƒ
Time Interval type
Tally Tech Support Line Time (not a Tally set)
Use Arrival Time attribute set when call first arrived, so
this records the total time in the system so far
Direct to exit point
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 38 of 88
Returned Tech Calls Submodel
• Logic for returned tech calls
• One entry point, no exit points
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 39 of 88
Submodel Logic
• Check for returned call – Decide module
• If no returned call is needed
ƒ
Dispose of entity
• If a returned call is needed
ƒ
ƒ
ƒ
Entity Type set to Returned Call – Assign module
Delay for response time – Delay module
Direct by product type
–
ƒ
N-way by Condition based on attribute Product Type
Note use of “==”
to check for
equality.
Seize tech-support person and trunk line
–
Seize module: Seize specific member of appropriate Resource set
Use Set Index Tech Agent Index attribute
–
Seize Trunk Line
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 40 of 88
Submodel Logic (cont’d.)
ƒ
Delay for call time – Delay module
–
ƒ
ƒ
Release tech person and trunk line – Release module
Record returned time – Record module
–
–
ƒ
Expression Returned Tech Time
Use beginning-time attribute Arrival Time, defined when call first
arrived, so this records total time in system
Use Tally Set Return Time indexed by Product Type
Dispose of entity – Dispose module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 41 of 88
Sales Calls Submodel
• Logic for sales calls
• One entry point, no exit points
• Uses a Shared Queue
ƒ
ƒ
Single queue
Shared by two or more seize activities
–
In this case, the “real” incoming sales calls, as well as those orderstatus calls requiring more than just the automated response
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 42 of 88
Submodel Logic
• Seize sales person – Seize module
ƒ
Shared queue declared in Queue data module
• Delay for call – Delay module
• Release sales person and Trunk Line – Release
•
module
Record call time – Record module
ƒ
Records elapsed time from call’s original arrival until now
• Dispose of entity - Dispose module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 43 of 88
Order-Status Calls Submodel
• Logic for order-status calls
• One entry point, no exit point
• Shared queue used when sales person required
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 44 of 88
Submodel Logic
• Delay for call – Delay module
• Decide if Sales person required – Decide module
• If sales person is required
ƒ
ƒ
ƒ
Seize sales person – Seize module, shared queue
Follow-up delay – Delay module
Release sales person – Release module
• Record call – Record module
ƒ
Elapsed time from call’s arrival to system up to now
• Release trunk line – Release Module
• Dispose of entity – Dispose module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 45 of 88
Finding and Fixing Model Errors
• Arena picks up “simple” errors in Check phase,
and leads you to them via Find and Edit buttons
in Errors/Warnings windows
ƒ
ƒ
ƒ
ƒ
Undefined variables, attributes, resources
Unconnected modules
Duplicate module names
Typos
• Other kinds of errors are more complex, can’t be
•
detected without trying to run — options on Run
Interaction toolbar or on Run menu
Only mention capabilities here; see text for
details
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 46 of 88
Finding and Fixing Model Errors (cont’d.)
• Run Controller — Command-driven window to
•
•
•
control, display details about model operation
and underlying SIMAN code
Trace — Follow active modules, selected
variables
Highlight active module – highlights the active
module during the simulation run
Layers – gives control over what you see during
the simulation run
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 47 of 88
Finding and Fixing Model Errors (cont’d.)
• Break on Module; Break — stop run when entity
•
•
hits a selected module, at a specific time, or when
a selected entity is about to become active
Watch — select expressions to display in a
window as model runs
Look at reports when model is running or paused
ƒ
Remember to close reports windows
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 48 of 88
Model 5-2: Animating the Model
• No “normal” entity animation — just plots,
•
queues, a few other “data” animations
Plots (all vs. time on horizontal axis)
ƒ
ƒ
ƒ
ƒ
Queue lengths (as in earlier models)
Balks per period — reason for variable Per Period Balk
Number of tech support people available for each product
type — reason for the “Available” expressions defined in
Expressions module
With multiple plots, configure first one, then copy/edit for
others to get consistent look and feel; snap to grid to align
• Variable animations for Period and Day
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 49 of 88
Animating the Model (cont’d.)
• Created digital clock “by hand” (details in text)
ƒ
Why not ready-made animated clocks? We didn’t reset the
system state between replications, so internal clock just
keeps increasing
• Resource and queue animations
• Just for realism — doesn’t add any analysis value
• Resource button from Animate toolbar
ƒ
Take pictures from libraries (.plb files), different states
• Queue button from Animate toolbar
• Add various text annotations, boxes, etc.
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 50 of 88
Animating the Model (cont’d.)
• Storages for further animation
ƒ
Requires using Delay modules from Blocks panel, not
Advanced Process panel
–
We did this only for the delay listening to the first recorded message
ƒ
Enter a Storage name in the Blocks Delay module
(Message 1)
ƒ
Storage button from Animate Transfer toolbar
• Animated variables
ƒ
ƒ
ƒ
Number of available trunk lines
Number of available salespeople
Number of sales calls in progress
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 51 of 88
Model 5-3: Model for Analysis with
Overall Performance Measure
• Modify the call-center model for intensive study
ƒ
ƒ
ƒ
ƒ
Different run conditions – to allow valid statistical analysis
Smaller size – to continue to fit in academic version and
make room for other enhancements
Faster – to allow for extensive analysis
New overall performance measures to consider both
resource costs and customer-oriented performance
• Base on Model 5-1 rather than Model 5-2 since
the latter adds only animation and we’re now
crunching numbers
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 52 of 88
Run Conditions
• Want valid terminating statistical analysis
ƒ
New replications must start independently with no modelstate carry-over
• Run/Setup/Replication Parameters
ƒ
Check “Initialize System Between Replications”
–
ƒ
ƒ
ƒ
Still check “Initialize Statistics Between Replications”
Get truly independent and identically distributed replications
Unreturned tech-support follow-up calls lost – unrealistic
Compromise – redefine a “replication” to be a five-day work
week … Monday-Thursday returned tech-support calls
carried over, Friday-night ones lost
–
Run/Setup/Replication Parameters: Replication Length = 5 Days,
specify 11 Hours Per Day
• Run/Run Control – Batch Run (No Animation)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 53 of 88
Slimming Down and Speeding Up
• Academic version places several different kinds
of limits on model “size”
ƒ
ƒ
ƒ
Max of 150 concurrent entities … though millions could
pass through … this limit is not a problem here
Max of 150 “module instances” … includes flowchart
modules, and each entry (line) in data modules … this limit
is a problem
Also need room to add new output performance measures
• Reduce number of module instances
ƒ
Eliminate many statistical accumulators … included getting
rid of lines in data modules, entire flowchart modules, and
unchecking stat-collection boxes … details in book
• This also increased speed by factor of 3 to 4
ƒ
Important since this model will be exercised intensively
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 54 of 88
Overall Performance Measures
• Form an overall cost measure – reduce, minimize
ƒ
What controllable input parameters affect cost? How?
• Two components to cost
ƒ
ƒ
Due to staffing and resources – tangible, measurable
Due to poor customer service – intangible, hard to measure
• Staffing and resource costs
ƒ
Hourly salaries: $18 for sales, $16 to $20 for tech-support
depending on training (see Resource data module)
–
ƒ
Salaries paid whenever person is on duty, whether busy or not
Get current weekly payroll of $13,110 = Staff Cost
variable
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 55 of 88
Generalize for More Staff
• Try to improve service via more staff
ƒ
ƒ
Will certainly increase staff cost
Try to improve customer service to make it worthwhile
• Base-model results – worst staffing shortfalls are
•
between 11:30AM and 3:30PM
Add sales and tech-support staff for that fourhour period (half-hours 8 through 15)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 56 of 88
Additional Sales Staff
•
Add variable New Sales to be the number of additional
salespersons to add in periods 8-15
ƒ
ƒ
Define in Variable data module
Use in Schedule data module (under Sales Schedule) … add to
number of sales staff in base model in periods 8-15
–
•
Must use Edit via Dialog or Spreadsheet since Graphical Schedule Editor
cannot handle Variables
Cost for each new salesperson: $15/hour
ƒ
ƒ
ƒ
Each will work 20 hours/week, so cost $300/week
Variable New Sales Cost set to 300
Additional cost is (New Sales) * (New Sales Cost), used in
Expression for for new resource cost (New Res Cost)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 57 of 88
Additional Tech-Support Staff
• Possibly add new tech-support staff for products
1, 2, 3 (only), and for all products
ƒ
Variables New Tech 1, New Tech 2, New Tech 3
–
–
ƒ
Variable New Tech All
–
–
ƒ
ƒ
ƒ
Named Larrys, Moes, and Curlys, respectively
Each paid $14/hr * 20 hrs/week = $280/week (variable LMC cost)
Named Hermanns
Each paid $17/hr * 20 hrs/week = $340/week (variable Her cost)
Resource data module – define resources Larry, Moe,
Curly, Hermann … and hourly costs for them (not used)
Set data module – add Larry, Moe, Curly, Hermann to
appropriate resource sets
Schedule data module – add Larry, Moe, Curly,
Hermann schedules … can’t use Graphical Schedule Editor
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 58 of 88
Changing the Number of Trunk Lines
• Each trunk line costs a flat $89/week, including all
•
•
•
calls (even long-distance)
Is 26 the right number?
To change it, just edit the Capacity entry in the
Resource data module
Add variable Line Cost to be $89, multiply by
number of trunk lines (MR(Trunk Line)) to get
weekly cost of trunk lines
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 59 of 88
Total New Resource Cost
• Define an Expression called New Res Cost:
New Sales * New Sales Cost
+ (New Tech 1 + New Tech 2 + New Tech 3) * LMC Cost
+ New Tech All * Her Cost
+ Line Cost * MR(Trunk Line)
• Does not depend on what happens during
•
simulation … used only at end in Statistic module
Does not include cost of the base-model human
staff (sales, tech-support) … viewed as sunk, and
constant for all variants of staffing changes
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 60 of 88
Costs for Putting Customers on Hold
• Impute a cost for making customers wait on hold
ƒ
ƒ
ƒ
Trade off against resource costs
Use model to understand, improve, optimize this tradeoff
Such customer-dissatisfaction costs are hard to quantify
• People have a “tolerance” for holding
ƒ
ƒ
ƒ
Tech-support calls: 3 minutes (variable Tolerance Tech)
Sales calls: 1 min. (Tolerance Sales)
Order-status calls: 2 min. (Tolerance Order Status)
• Beyond the tolerance point, system incurs cost of
ƒ
ƒ
ƒ
Tech-support calls: $1.67/min. (variable TWT Cost)
Sales calls: $3.72/min. (SWT Cost)
Order-status calls: $1.58/min. (OSWT Cost)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 61 of 88
Costs for Putting Customers on Hold
(cont’d.)
• Accumulate “excess” waiting time (time past
tolerance) for each call type
ƒ
ƒ
Assign module when call is done
Use built-in Arena attribute ENTITY.WAITTIME
–
–
ƒ
Accumulates total of times in queues as entity goes along, and
other “Wait”-allocated times … but there are none upstream in this
model so this attribute will have the waiting time on hold
Requires that Costing box be checked in Run/Setup/Project
Parameters
Variable Excess Tech Wait Time accumulates via
adding in for each tech-support call
MAX( ENTITY.WAITTIME
ƒ
ƒ
- Tolerance Tech, 0 )
At end of run, multiply Tech Wait Time by TWT Cost
Similarly for Sales, Order-Status calls
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 62 of 88
Total Cost
• Adding together all the costs, get the overall
economic (cost) performance measure
Total Cost = New Res Cost
+
+
+
+
Excess Sales Wait Time * SWT Cost
Excess Status Wait Time * OSWT Cost
Excess Tech Wait Time * TWT Cost
Staff Cost
• This is defined in Statistic data module
ƒ
ƒ
Type = Output – already being computed, just report it
In Category Overview Report, get via User Specified Æ
Other Æ Output
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 63 of 88
Percent-Busy Requirement
• Above cost performance measure ignores calls
balked away due to no trunk line … busy signal
ƒ
ƒ
ƒ
Clearly, undesirable – very hard to put a cost on it
Instead, have a strong goal to limit this to no more than 5%
of incoming calls … a model configuration not satisfying
this will be deemed unacceptable no matter how attractive
(low) the cost may be
Like a constraint except it’s on an output, not an input …
call it a requirement
• Compute via two Record modules in arrival
submodel to count incoming and balked calls …
and Percent Busy line in Statistic module
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 64 of 88
Aside – Generality of Models
• We could have done a lot of things in very
different ways in this model
ƒ
ƒ
Using Arena’s costing functions more and doing fewer of
our own external calculations
Reparameterize using only “primitive” parameters (e.g.,
hourly wage rates) and programming Arena to do the
calculations
• How much of this you do depends on model’s
•
intended use and users
Tradeoff between generality (elegance?) vs. time
spent building the model
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 65 of 88
Results
• Base case (no more people, 26 trunk lines)
ƒ
ƒ
Total cost (for the week) = $34K
Percent busy signals = 11% (unacceptable)
• Added one resource unit for each type
ƒ
New Sales, New Tech 1, New Tech 2, New Tech 3,
New Tech All, and go to 27 trunk lines
ƒ
Total cost (for the week) = $28K
–
ƒ
Added resources reduced customer waiting time by more than
enough to cover their cost
Percent busy signals = 3% (acceptable)
–
Extra trunk line, plus added resources to move calls through
• Is the modification truly and reliably better???
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 66 of 88
Statistical Analysis of Output from
Terminating Simulations
• Random input leads to random output (RIRO)
• Run a simulation (once) — what does it mean?
ƒ
ƒ
Was this run “typical” or not?
Variability from run to run (of the same model)?
• Need statistical analysis of output data
ƒ
ƒ
ƒ
From a single model configuration
Compare two or more different configurations
Search for an optimal configuration
• Statistical analysis of output is often ignored
ƒ
ƒ
This is a big mistake – no idea of precision of results
Not hard or time-consuming to do this – it just takes a little
planning and thought, then some (cheap) computer time
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 67 of 88
Time Frame of Simulations
• Terminating: Specific starting, stopping
conditions
ƒ
Run length will be well-defined (and finite)
• Steady-state: Long-run (technically forever)
ƒ
ƒ
•
•
•
•
Theoretically, initial conditions don’t matter (but practically
they usually do)
Not clear how to terminate a simulation run
This is really a question of intent of the study
Has major impact on how output analysis is done
Sometimes it’s not clear which is appropriate
Here: Terminating (steady-state in Section 6.3)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 68 of 88
Strategy for Data Collection and
Analysis
• For terminating case, make IID replications
ƒ
ƒ
Run/Setup/Replication Parameters: Number of
Replications field
Check both boxes for Initialize Between Replications
• Separate results for each replication – Category
by Replication report
ƒ
Model 5-3, base case, 10 replications
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 69 of 88
Strategy for Data Collection and
Analysis (cont’d.)
• Category Overview report will have some
•
statistical-analysis results of the output across
the replications
How many replications?
ƒ
ƒ
ƒ
Trial and error (now)
Approximate number for acceptable precision (below)
Sequential sampling (Chapter 11)
• Turn off animation altogether for max speed
ƒ
Run/Run Control/Batch Run (No Animation)
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 70 of 88
Confidence Intervals for
Terminating Systems
• Using formulas in Chapter 2, viewing the crossreplication summary outputs as the basic data:
• Possibly most useful part – 95% confidence
•
interval on expected values
This information (except standard deviation) is in
Category Overview report
ƒ
ƒ
If > 1 replication specified, Arena uses cross-replication
data as above
Other confidence levels, graphics – Output Analyzer
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 71 of 88
Half Width and Number of Replications
• Prefer smaller confidence intervals — precision
• Notation:
• Confidence interval:
• Half-width =
• Can’t control t or s
• Must increase n — how much?
Want this to be “small,” say
< h where h is prespecified
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 72 of 88
Half Width and Number of Replications
(cont’d.)
• Set half-width = h, solve for
• Not really solved for n (t, s depend on n)
• Approximation:
ƒ
ƒ
ƒ
Replace t by z, corresponding normal critical value
Pretend that current s will hold for larger samples
s = sample standard
Get
deviation from “initial”
number n0 of replications
• Easier but different approximation:
h0 = half width from
“initial” number n0 of
replications
Simulation with Arena
n grows
quadratically
as h
decreases.
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 73 of 88
Interpretation of Confidence Intervals
• Interval with random (data-dependent) endpoints
that’s supposed to have stated probability of
containing, or covering, the expected valued
ƒ
ƒ
“Target” expected value is a fixed, but unknown, number
Expected value = average of infinite number of replications
• Not an interval that contains, say, 95% of the data
ƒ
That’s a prediction interval … useful too, but different
• Usual formulas assume normally-distributed data
ƒ
ƒ
ƒ
ƒ
Never true in simulation
Might be approximately true if output is an average, rather
than an extreme
Central limit theorem
Issues of robustness, coverage, precision – details in book
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 74 of 88
Comparing Two Alternatives
• Usually, want to compare alternative system
•
configurations, layouts, scenarios, sensitivity
analysis … here just two alternatives
Base case of Model 5-3, vs. adding one resource
unit for each type
ƒ
ƒ
New Sales, New Tech 1, New Tech 2, New Tech 3,
New Tech All, and go to 27 trunk lines
Earlier, one run of each suggested big differences … real?
• Reasonable but not-quite-right idea: Make
confidence intervals on expected outputs from
each alternative, see if they overlap
ƒ
Doesn’t allow for a precise, efficient statistical conclusion
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 75 of 88
Compare Means via the Output Analyzer
• Output Analyzer is a separate application that
operates on .dat files produced by Arena
ƒ
ƒ
Not installed by default from book CD – need custom install
Launch separately from Windows, not from Arena
• To save output values (Expressions) of entries in
Statistic data module (Type = Output) – enter
filename.dat in Output File column
ƒ
ƒ
ƒ
Just did for Total Cost, not Percent Busy
Will overwrite this file name next time … either change the
name here or out in Windows before the next run
.dat files are binary … can only be read by Output Analyzer
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 76 of 88
Compare Means via the Output Analyzer
(cont’d.)
• Start Output Analyzer, open a new data group
ƒ
ƒ
ƒ
Basically, a list of .dat files of current interest
Can save data group for later use – .dgr file extension
Add button to select (Open) .dat files for the data group
• Analyze/Compare Means menu option
ƒ
ƒ
ƒ
Add data files … “A” and “B” for the two alternative
Select “Lumped” for Replications field
Title, confidence level, accept Pared-t Test, Scale Display
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 77 of 88
Compare Means via the Output Analyzer
(cont’d.)
• Results:
• Confidence interval on difference misses 0, so
conclude that there is a (statistically) significant
difference
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 78 of 88
Evaluating Many Alternatives with the
Process Analyzer (PAN)
• With (many) more than two alternatives to
compare, two problems are
ƒ
ƒ
Simple mechanics of making the possibly many parameter
changes, making the runs, keeping track of the many
output files
Statistical methods for drawing reliable and useful
conclusions
• Process Analyzer (PAN) addresses these
• PAN operates on program (.p) files – produced
•
•
when .doe file is run (or just checked)
Start PAN from Arena (Tools/Process Analyzer) or
via Windows
PAN runs on its own, separate from Arena
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 79 of 88
PAN Scenarios
• A scenario in PAN is a combination of:
ƒ
ƒ
A program (.p) file
Set of input controls that you choose
–
–
ƒ
Set of output responses that you choose
–
–
ƒ
Chosen from automatic Arena outputs or your own Variables
Values initially empty … to be filled in after run(s)
To create a new scenario in PAN, double-click where
indicated, get Scenario Properties dialog
–
–
–
ƒ
Chosen from Variables and Resource capacities – think ahead
You fill in specific numerical values
Specify Name, Tool Tip Text, .p file, controls, responses
Values of controls initially as in the model, but you can change them
in PAN – this is the real utility of PAN
Can duplicate (right-click, Duplicate) scenarios, then edit for a new
one
Think of a scenario as a row
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 80 of 88
PAN Projects and Runs
• A project in PAN is a collection of scenarios
ƒ
ƒ
ƒ
ƒ
Program files can be the same .p file, or .p files from
different model .doe files
Controls, responses can be the same or differ across
scenarios in a project – usually will be mostly the same
Think of a project as a collection of scenario rows – a table
Can save as a PAN (.pan extension) file
• Select scenarios in project to run (maybe all)
• PAN runs selected models with specified controls
• PAN fills in output-response values in table
ƒ
Equivalent to setting up, running them all “by hand” but
much easier, faster, less error-prone
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 81 of 88
Running Model 5-3 with PAN
• Scenarios
ƒ
ƒ
ƒ
ƒ
ƒ
Base case (no additional resources)
Imagine $1200/week to spend on each additional resource
type, one at a time (no mixed enhancements)
7 scenarios in all (details in book)
Select all to run (click on left of row, Ctrl-Click or Shift-Click
for more)
To execute, or Run/Go or F5
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 82 of 88
Statistical Comparisons with PAN
• Model 5-3 alternatives were made with 10
replications each
ƒ
Better than one replication, but what about statistical
validity of comparisons, selection of “the best”?
• Select Total Cost column, Insert/Chart (or
or
right-click on column, then Insert Chart)
ƒ
ƒ
ƒ
Chart Type: Box and Whisker
Next, Total Cost; Next defaults
Next, Identify Best Scenarios
–
–
Smaller is Better, Error Tolerance = 0 (not the default)
Show Best Scenarios; Finish
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 83 of 88
Statistical Comparisons with PAN (cont’d.)
•
•
Vertical boxes: 95%
confidence
intervals
Red scenarios
statistically
significantly better
than blues
ƒ
ƒ
ƒ
Simulation with Arena
More precisely, red
scenarios are 95%
sure to contain the
best one
Narrow down red set
– more replications,
or Error Tolerance > 0
More details in book
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 84 of 88
Searching for an Optimal Alternative
with OptQuest
• The scenarios just considered with PAN are just 7
•
•
of many, many possibilities
Try to find input-control values that minimize
Total Cost while keeping Percent Busy < 5%
Formulate as an optimization problem:
Minimize
Total Cost
Subject to
26 ≤ Trunk Lines ≤ 50
Objective function is the simulation model
Contractual obligation, space limitation
Nobody’s fired
New Sales, New Tech 1, New Tech 2, New Tech 3, New Tech All ≥ 0
Space limitation
New Sales + New Tech 1 + New Tech 2 + New Tech 3 + New Tech All ≤ 15
Percent Busy < 5%
ƒ
ƒ
An output requirement, not an input constraint
Reasonable starting place – best acceptable scenario so
far: Add 3 New Tech All
Where to go from here? Explore all of feasible sixdimensional space exhaustively? No.
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 85 of 88
OptQuest
• OptQuest searches intelligently for an optimum
ƒ
Like PAN, OptQuest
–
–
–
ƒ
Runs as a separate application … can be launched from Arena
“Takes over” the running of your model
Asks that you identify the input controls and the output (just one)
response objective
Unlike PAN, OptQuest
–
–
–
–
Asks that you specify constraints on the input controls
Asks that you specify requirements on outputs
Decides itself what input-control-value combinations to try
Uses internal heuristic algorithms to decide how to change the input
controls to move toward an optimum configuration
• You specify stopping criterion for the search
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 86 of 88
Using OptQuest
• Tools/OptQuest for Arena
• New session (File/New or Ctrl+N or )
ƒ
Make sure the desired model window is active
• Select controls – Variables, Resource levels
ƒ
ƒ
ƒ
Trunk Line, New Tech 1, 2, 3, and New Tech All
Bounds: 26 ≤ Trunk Line ≤ 50, others between 0 and 15
Type is Discrete for all, Input Step Size 1
• Constraints – enter
New Sales + New Tech 1 + New Tech 2 + New Tech 3 + New Tech All <= 15
• Objective and Requirement
ƒ
ƒ
ƒ
Total Cost Response – Select Minimize Objective
Percent Busy Response – Select Requirement, enter 5 for
Upper Bound
Reorder
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 87 of 88
Using OptQuest (cont’d.)
• Options window – computational limits,
procedures
ƒ
ƒ
ƒ
Time tab – accept Run for 10 minutes default
Precision tab – vary number of replications from 3 to 10
Preferences tab – various settings (accept defaults)
• Can revisit Controls, Constraints, Objective and
•
•
•
Requirements, or Options windows via
Run via wizard (first time through a new project),
or Run/Start or
Open View/Status and Solutions and
View/Performance Graph to watch progress
Can’t absolutely guarantee a true optimum
ƒ
Usually finds far better configuration than possible by hand
Simulation with Arena
Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Slide 88 of 88
Download