910 likes | 1.31k Views
Detailed Modeling and Terminating Statistical Analysis. Chapter 5. 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
E N D
Detailed Modeling and Terminating Statistical Analysis Chapter 5 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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: Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 ... Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Technical-Support Staff Schedules Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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) Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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) Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 … Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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) Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Technical Support Calls Submodel • Logic for servicing technical support calls • One entry point • One exit point – follow-up calls Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Returned Tech Calls Submodel • Logic for returned tech calls • One entry point, no exit points Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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. Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
Order-Status Calls Submodel • Logic for order-status calls • One entry point, no exit point • Shared queue used when sales person required Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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 Chapter 5 – Detailed Modeling and Terminating Statistical Analysis
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. Chapter 5 – Detailed Modeling and Terminating Statistical Analysis