• No results found

Detailed Modeling and Terminating Statistical Analysis Chapter 5 (from KSS 01)

N/A
N/A
Protected

Academic year: 2021

Share "Detailed Modeling and Terminating Statistical Analysis Chapter 5 (from KSS 01)"

Copied!
88
0
0

Loading.... (view fulltext now)

Full text

(1)

Detailed Modeling and

Terminating Statistical Analysis

Chapter 5

(from KSS’01)

(2)

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

(3)

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)

(4)

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)

(5)

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)

(6)

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

(7)

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)

(8)

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)

(9)

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

(10)

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

(11)
(12)

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)

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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)

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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)

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

Technical Support Calls Submodel

Logic for servicing technical support calls

One entry point

(36)

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

(37)

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

(38)

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

(39)

Returned Tech Calls Submodel

Logic for returned tech calls

(40)

Submodel Logic

Check for returned call – Decide module

If no returned call is needed

ƒ Dispose of entity

If a returned call is needed

ƒ Entity Type set to Returned Call – Assign module

ƒ Delay for response time – Delay module

ƒ Direct by product type

– N-way by Condition based on attribute Product Type

ƒ 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

Note use of “==” to check for equality.

(41)

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

(42)

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

(43)

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

(44)

Order-Status Calls Submodel

Logic for order-status calls

One entry point, no exit point

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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-four-hours 8 through 15)

(57)

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

(58)

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,

(59)

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

(60)

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

(61)

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)

(62)

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

(63)

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 Æ

(64)

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 …

(65)

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

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

Half Width and Number of Replications

Prefer smaller confidence intervals —

precision

Notation:

Confidence interval:

Half-width =

Can’t control t or s

Must increase n — how much?

Want this to be “small,” say < h where h is prespecified

(73)

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

ƒ Get

Easier but different approximation:

s = sample standard

deviation from “initial” number n0 of replications

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

(74)

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

(75)

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

(76)

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

(77)

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

(78)

Compare Means via the Output Analyzer

(cont’d.)

Results:

Confidence interval on difference misses 0, so

conclude that there is a (statistically) significant

difference

(79)

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

(80)

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

(81)

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

(82)

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)

(83)

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

(84)

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

(85)

The scenarios just considered with PAN are just 7

of many, many possibilities

Try to find input-control values that minimize

Total Cost while keeping Percent Busy < 5%

Formulate as an optimization problem:

Minimize Total Cost

Subject to 26 ≤ Trunk Lines ≤ 50

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%

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

Searching for an Optimal Alternative

with OptQuest

An output requirement, not an input constraint

Objective function is the simulation model

Contractual obligation, space limitation

Space limitation Nobody’s fired

(86)

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

(87)

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

(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

References

Related documents

Applications of L-Proline enhanced water fluxes, water conductivity, relative water content and stomatal conductance of rose cut stems in comparison to untreated plants,

The Strategic Planning Process April 2008 Foundation degree Honours degree Higher level NVQs (e.g. CPD) Work Professional qualifications Voluntary/community activity

Using the CEAP process in this manner, members of a community – or different communities perhaps sharing certain natural resources – work together to identify priority

In this paper, Value Focused Thinking and multinomial analysis has been used to propose three dimensions of effective information security governance. A clear understanding

This paper addresses the issue concerning state’s control over the activities of remote sensing (RS) satellites that can surveil its territory, as well as other states territories,

Participation in the award of procurement contracts, grants and other award procedures for actions financed under the CIR for IPA II for the benefit of third parties shall be open to

SABC will need to be notified in the event of my death and my TV licence account will need to be cancelled. My TV licence

Bias establishes the operating point ( Q-point ) of a transistor amplifier; the ac signal.. moves above