Вы находитесь на странице: 1из 88

Detailed Modeling and Terminating Statistical Analysis

Chapter 5 (from KSS01)

Simulation with Arena

Chapter 5 Detailed Modeling and Terminating Statistical Analysis

Slide 1 of 88

What Well 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


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 2 of 88

Simulation with Arena

What Well Do ... (contd.)


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 Technical support? (76% of callers choose this) Sales information? (16%) Order-status inquiry? (8%)

Answered call gets recording asking


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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 5 of 88

Simulation with Arena

Technical Support Calls (contd.)


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, its carried over to the next day
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 6 of 88

Simulation with Arena

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 Data on rate (calls per hour) for each half-hour period:

Call arrival rate varies substantially over the day


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 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) 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 12 of 88

Nonstationary arrival process


Balking

Simulation with Arena

New Modeling Issues (contd.)


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 Groups of similar objects Can be referenced by a common set name and index (1, 2, 3, ) into the set

Sets

Can also be referenced by original name, independent of set An object can be a member of more than one set
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 13 of 88

Technical-support staff requires sets

Sets data module

Simulation with Arena

New Modeling Issues (contd.)


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 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

User-defined Expressions

Defined in Expression data module (Advanced Process panel)


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 14 of 88

Simulation with Arena

New Modeling Issues (contd.)


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 Automatic time and cost information for entities

Costing

Wait, value-added, non-value-added, transfer, other

You must enter cost information Entity and Resource data modules
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 15 of 88

Simulation with Arena

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) Initial conditions are not always well defined No defined stopping condition (theoretically infinite) Interested in system response over the long run Start at 8 AM and end at 7 PM

Steady-State

Call-center model

Some Technical support calls are held over, but not many well ignore this aspect (sort of fixed below)

Treat the system as terminating (sort of see below)


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 18 of 88

Simulation with Arena

Arena Modeling Panels


Basic Process panel

Highest level of modeling More detailed (and different) modeling capabilities Material-handling, entity-movement capabilities 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 19 of 88

Advanced Process panel


Advanced Transfer panel


Blocks, Elements panels


Simulation with Arena

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

Well 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) For resources on a Schedule, use Ignore option for Schedule Rule to ensure correct cross-day modeling details in book

Enter Schedule Name for all but Trunk Line

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 Tierney, Sean, Emma, Anna, Sammy Shelley, Jenny, Christie, Molly, Anna, Sammy

Product 2

Product 3

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 24 of 88

Simulation with Arena

Sets Data (contd.)


Develop two Tally sets

Tech Calls

Product 1 Call, Product 2 Call, Product 3 Call Return 1 Call, Return 2 Call, Return 3 Call

Returned Time

Sets used to collect statistics by product type 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)
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 25 of 88

Develop a Counter set


Simulation with Arena

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 well use six submodels

Define (right-click, then Properties)


Name Number of entry, exit points (could be 0 if theres 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 27 of 88

Simulation with Arena

Time Period Counter Submodel


Increments the time period counter No entry or exit points interacts via Variables,
not flow

Create Counter Entity Create module


Assign Period Assign module


Simulation with Arena

Time Between Arrivals 660 minutes (constant) Initialize Period variable value to zero
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 28 of 88

Time Period Counter Submodel (contd.)


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 2-Way by Condition Determine if there are still more periods in this day (i.e., if Period < 22)

Check Period Decide module


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


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 30 of 88

Simulation with Arena

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 Count balked call Increment Busy Per Period counter Dispose of call

Else (all trunk lines are busy)


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 (contd.)


Assign arrival time Assign module

Use Arena variable TNOW = current simulation clock Used Delay module from Blocks panel Be careful of units no choice here (uses Base Time Units) Use N-way by Chance option Enter probabilities as percents (0 100) Assign entity type to call type Three modules
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 33 of 88

Delay for Recording Delay module


Direct call Decide module


Assign call type Assign module


Simulation with Arena

Develop Submodel (contd.)


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 N-way by Chance Seize module Advanced Process panel Request from appropriate set for product type Preferred order within the set

Determine product type Decide module


Seize technical support person


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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 36 of 88

Simulation with Arena

Submodel Logic (contd.)


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 Use value from expression Tech Time 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 37 of 88

Delay for call Delay module


Release tech-support person and trunk line


Simulation with Arena

Submodel Logic (contd.)


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?) 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 38 of 88

Record tech line time Record module


Simulation with Arena

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 Entity Type set to Returned Call Assign module Delay for response time Delay module Direct by product type

If a returned call is needed


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


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 40 of 88

Simulation with Arena

Submodel Logic (contd.)


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 orderstatus calls requiring more than just the automated response
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 42 of 88

Simulation with Arena

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 calls 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 Elapsed time from calls arrival to system up to now

Record call Record module


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, cant be


detected without trying to run options on Run Interaction toolbar or on Run menu Only mention capabilities here; see text for details
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 46 of 88

Simulation with Arena

Finding and Fixing Model Errors (contd.)


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 (contd.)


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 (contd.)


Created digital clock by hand (details in text)

Why not ready-made animated clocks? We didnt reset the system state between replications, so internal clock just keeps increasing

Resource and queue animations Just for realism doesnt 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 (contd.)


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 Number of available trunk lines Number of available salespeople Number of sales calls in progress
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 51 of 88

Animated variables

Simulation with Arena

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 were 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 Check Initialize System Between Replications

Run/Setup/Replication Parameters

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


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 53 of 88

Run/Run Control Batch Run (No Animation)


Simulation with Arena

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 Eliminate many statistical accumulators included getting rid of lines in data modules, entire flowchart modules, and unchecking stat-collection boxes details in book Important since this model will be exercised intensively
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 54 of 88

Reduce number of module instances This also increased speed by factor of 3 to 4



Simulation with Arena

Overall Performance Measures


Form an overall cost measure reduce, minimize

What controllable input parameters affect cost? How? Due to staffing and resources tangible, measurable Due to poor customer service intangible, hard to measure Hourly salaries: $18 for sales, $16 to $20 for tech-support depending on training (see Resource data module)

Two components to cost


Staffing and resource costs


Salaries paid whenever person is on duty, whether busy or not

Get current weekly payroll of $13,110 = Staff Cost variable


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 55 of 88

Simulation with Arena

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


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)

Variable New Tech All


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 cant use Graphical Schedule Editor
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 58 of 88

Simulation with Arena

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 Tech-support calls: 3 minutes (variable Tolerance Tech) Sales calls: 1 min. (Tolerance Sales) Order-status calls: 2 min. (Tolerance Order Status) Tech-support calls: $1.67/min. (variable TWT Cost) Sales calls: $3.72/min. (SWT Cost) Order-status calls: $1.58/min. (OSWT Cost)
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 61 of 88

People have a tolerance for holding


Beyond the tolerance point, system incurs cost of


Simulation with Arena

Costs for Putting Customers on Hold


(contd.)

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 62 of 88

Simulation with Arena

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 its 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 Arenas 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 models


intended use and users Tradeoff between generality (elegance?) vs. time spent building the model
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 65 of 88

Simulation with Arena

Results
Base case (no more people, 26 trunk lines)

Total cost (for the week) = $34K Percent busy signals = 11% (unacceptable) 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 one resource unit for each type


Added resources reduced customer waiting time by more than enough to cover their cost Extra trunk line, plus added resources to move calls through

Percent busy signals = 3% (acceptable)

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)? From a single model configuration Compare two or more different configurations Search for an optimal configuration 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 67 of 88

Need statistical analysis of output data


Statistical analysis of output is often ignored


Simulation with Arena

Time Frame of Simulations


Terminating: Specific starting, stopping
conditions

Run length will be well-defined (and finite) Theoretically, initial conditions dont matter (but practically they usually do) Not clear how to terminate a simulation run

Steady-state: Long-run (technically forever)


This is really a question of intent of the study Has major impact on how output analysis is done Sometimes its not clear which is appropriate Here: Terminating (steady-state in Section 6.3)
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 68 of 88

Simulation with Arena

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 (contd.)


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) Run/Run Control/Batch Run (No Animation)

Turn off animation altogether for max speed


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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 71 of 88

Simulation with Arena

Half Width and Number of Replications


Prefer smaller confidence intervals precision Notation:

Confidence interval: Half-width = Cant control t or s Must increase n how much?


Simulation with Arena Want this to be small, say < h where h is prespecified

Chapter 5 Detailed Modeling and Terminating Statistical Analysis

Slide 72 of 88

Half Width and Number of Replications


(contd.)

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 n grows quadratically as h decreases.

Easier but different approximation:


h0 = half width from 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
thats 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 Thats a prediction interval useful too, but different 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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 74 of 88

Not an interval that contains, say, 95% of the data


Usual formulas assume normally-distributed data


Simulation with Arena

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

Doesnt allow for a precise, efficient statistical conclusion


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 75 of 88

Simulation with Arena

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 76 of 88

Simulation with Arena

Compare Means via the Output Analyzer


(contd.)

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 Add data files A and B for the two alternative Select Lumped for Replications field Title, confidence level, accept Pared-t Test, Scale Display

Analyze/Compare Means menu option


Simulation with Arena

Chapter 5 Detailed Modeling and Terminating Statistical Analysis

Slide 77 of 88

Compare Means via the Output Analyzer


(contd.)

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 79 of 88

Simulation with Arena

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 Chosen from automatic Arena outputs or your own Variables Values initially empty to be filled in after run(s)

Set of output responses that you choose


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


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 80 of 88

Simulation with Arena

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 81 of 88

Simulation with Arena

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


right-click on column, then Insert Chart)

or

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 (contd.)



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
Slide 84 of 88

Simulation with Arena

Chapter 5 Detailed Modeling and Terminating Statistical Analysis

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 Subject to
Nobodys fired Space limitation

Total Cost

Objective function is the simulation model Contractual obligation, space limitation

26 Trunk Lines 50

New Sales, New Tech 1, New Tech 2, New Tech 3, New Tech All 0 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.
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 85 of 88

Simulation with Arena

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 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

Unlike PAN, OptQuest


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 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

Select controls Variables, Resource levels

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
Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 87 of 88

Simulation with Arena

Using OptQuest (contd.)


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 Cant absolutely guarantee a true optimum

Usually finds far better configuration than possible by hand


Chapter 5 Detailed Modeling and Terminating Statistical Analysis Slide 88 of 88

Simulation with Arena

Вам также может понравиться