You are on page 1of 88

Detailed Modeling and

Terminating Statistical Analysis


Chapter 5

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
– Can also be referenced by original name, independent of set
 Technical-support staff requires sets
– 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
– Sales staff
– 11 technical support staff
– Trunk Line (single resource with 26 units)
 Enter Schedule Name for all but Trunk Line
– 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
– Charity, Noah, Molly, Anna, Sammy
 Product 2
– Tierney, Sean, Emma, Anna, Sammy
 Product 3
– 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
– Product 1 Call, Product 2 Call, Product 3 Call
 Returned Time
– 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 Note use of “==”
– N-way by Condition based on attribute Product Type 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
– Expression Returned Tech Time
 Release tech person and trunk line – Release module
 Record returned time – Record module
– 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 order-
status 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 model-
state 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 four-
hour 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
– Named Larrys, Moes, and Curlys, respectively
– Each paid $14/hr * 20 hrs/week = $280/week (variable LMC cost)
 Variable New Tech All
– 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 cross-
replication 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 = Want this to be “small,” say


< h where h is prespecified

• Can’t control t or s
• Must increase n — how much?

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:


n grows
quadratically
as h
h0 = half width from decreases.
“initial” number n0 of
replications

Simulation with Arena 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
– Chosen from Variables and Resource capacities – think ahead
– You fill in specific numerical values
 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
– 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
 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

Simulation with Arena 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 Objective function is the simulation model
Subject to 26  Trunk Lines  50 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 six-
dimensional 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

You might also like