Discrete Event Simulation using Promodel
Discrete event simulation is the imitation of a dynamic system using computer model in order to evaluate and improve system performance. Simulation provides a virtual method for doing system experimentation.
Typical applications of simulation include:
· Work-flow planning / · Cost reduction· Capacity planning / · Productivity improvement
· Cycle time reduction / · Production scheduling
· Staff and resource planning / · Line balancing
· Bottleneck analysis / · Batch size optimization
· Inventory reduction / · Layout analysis
· Throughput analysis / · Maintenance scheduling
Simulation analysis is appropriate if the following hold:
· Decisions are operational in nature
· Process is well defined and repetitive in nature
· Activities and events are interdependent and variable
· The cost of simulation analysis does not exceed potential cost reduction
· Cost of simulation analysis does not exceed experimentation on the actual system
Benefits of Simulation approach
· Captures system interdependencies
· Accounts for variability in the process
· Is versatile enough to model both manufacturing and service processes
· Shows behavior over time
· Is less costly, time consuming, and disruptive than experimenting on the actual system
· Provides information on multiple performance measures
· Provides results that are easy to understand and communicate
· Runs in compressed time
· Forces attention to detail in a process
Simulation procedure
Step 1: Define objective, scope, and requirements
Step 2: Collect and analyze system data
Step 3: Build and validate model
Step 4: Conduct experiments
Step 5: Analyze results and develop recommendations
Simulation system elements
Entities, activities, resources, and controls.
Entities / Items processed through the system / · Human/animate (customers, patients, passenger, etc.)· Inanimate (Parts, documents, etc.)
· Intangible (calls, e-mail, etc.)
Activities / Tasks performed in the system either directly or indirectly on the entities. Activities consume time and use resources / · Entity processing (check-in, treatment, inspection, fabrication, etc.)
· Entity/resource movement (ride elevator, forklift travel, etc.)
· Resource adjustment (Machine setups)
· Maintenance & repair
Resources / May be required for performing activities. Have characteristics such as, capacity, speed, cycle time, reliability, etc. / · Human/animate (operator, doctors, etc.)
· Inanimate (equipment, tooling, etc.)
· Intangible (information, power, etc.)
Controls / Controls how, when, and where activities are performed / · Production routing sequence
· Work schedules
· Task prioritization
System variability
Type of variability / ExamplesActivity times / Service time, repair time
Event arrivals / Time between customer arrivals, time between failure
Quantities / Order quantity, batch size, number of workers absent
Decisions / Customer routing, accept/reject part, join queue
Random behavior
Discrete distribution / Finite number of possible values (number of items in a lot, number of members in a group, etc.Continuous distribution / A range of values such as a time between arrivals, service time, travel distance, etc.
System variables
Decision variables / Controllable variables, such as number of machines, number of windowsIndependent variable / Service time, processing time
Response variables / Variables that measure the system performance (metrics)
System performance metrics (Response variables)
Flow time / Average time it takes for an entity to be processed through the systemUtilization / Percentage of time resources are in productive use
Waiting time / Time spent waiting
Queue/inventory levels / Number of customers waiting or parts in storage
Throughput / Number of customers served, no. of parts produced
Promodel objects
Entities / Anything the model can process, such as parts, customers, patients. / With “New” checked, click a graphic .
Locations / Fixed place where entities are routed for processing, waiting, decision making, or some other activity. / Capacity and number of units / With “New” checked, click a graphic icon and click anywhere in the layout. For a waiting line double click the icon, change object type to “Queue” and set other parameters.
Arrival / Arrival parameters for the entities / Arrival location, number of objects per arrival, total number of arrivals, frequency / · Click header “Entity” and select the arrival entity.
· Click header “Location” and select the location for arrival.
· Type INF for “Occurrences” indicating no limit for number of arrivals during the simulation.
· Enter inter-arrival time parameter for “Frequency”. E.g. for exponential time with mean 2 minutes, enter e(2) min.
Processing / Process routing for an entity / Process
Entity, Location, and operation / · Click header “Entity” and select an entity for processing.
· Click header “Location” and select a location.
· Click header “Operation” and type operation logic.
E.g.: wait N(2.4,.5) min
Routing
Output, Destination, Rule / · Click header “Output” and select an entity for output
· Click header “Destination” and select a location
· Click header “Rule” and set up one or more rules for routing the entity.
· Click below the last row to create alternative routing
Example 1: Bank with one teller; Arrival of customers follows exponential distribution with an average of one customer every 2 minutes. Service time follows normal distribution with an average of 2.4 minutes and a standard deviation of .5 minutes. Waiting line is limited to 7 customers. Simulate the operation from 11 a.m. to 1 p.m. Let the warm-up period be 2 hours.
Flowchart
Entity record:
Location records
If the location is a queue, change “Queuing for output” to FIFO under the “Rules” tab.
Arrival record
Process and Routing
Routing for Customer from Teller_Waiting_Line
Routing for Customer from Teller
Command: File/View text or File/Print Text
********************************************************************************
* Formatted Listing of Model: *
* P:\public_html\583\Notes\ProModel\Models\BankTeller-1.MOD *
********************************************************************************
* Locations *
********************************************************************************
Name Cap Units Stats Rules Cost
------
Teller_Waiting_Line 7 1 Time Series Oldest, FIFO,
Teller_Window 1 1 Time Series Oldest, , First
********************************************************************************
* Entities *
********************************************************************************
Name Speed (fpm) Stats Cost
------
Customer 150 Time Series
********************************************************************************
* Processing *
********************************************************************************
Process Routing
Entity Location Operation Blk Output Destination Rule Move Logic
------
Customer Teller_Waiting_Line 1 Customer Teller_Window FIRST 1
Customer Teller_Window Wait N(2.4,.5) min
1 Customer EXIT FIRST 1
********************************************************************************
* Arrivals *
********************************************************************************
Entity Location Qty Each First Time Occurrences Frequency Logic
------
Customer Teller_Waiting_Line 1 INF e(2) min
Simulation options
Results: Locations
Name / Scheduled Time (HR) / Capacity / Total Entries / Avg Time Per Entry (MIN) / Avg Contents / Maximum Contents / Current Contents / % UtilizationTeller Waiting Line / 2 / 7 / 54.23 / 10.43 / 4.72 / 7 / 5.03 / 67.49
Teller Window / 2 / 1 / 50.20 / 2.35 / 0.98 / 1 / 0.97 / 98.30
Results: Location state Multi
Name / Scheduled Time (HR) / % Empty / % Part Occupied / % Full / % DownTeller Waiting Line / 2 / 4.66 / 78.10 / 17.24 / 0
Results: Location state Single
Name / Scheduled Time (HR) / % Operation / % Setup / % Idle / % Waiting / % Blocked / % DownTeller Window / 2 / 98.30 / 0 / 1.70 / 0 / 0 / 0
Results: Failed arrivals
Entity Name / Location Name / Total FailedCustomer / Teller Waiting Line / 9.6
Results: Entity Activity
Name / Total Exits / Current Qty In System / Avg Time In System (MIN) / Avg Time In Move Logic (MIN) / Avg Time Waiting (MIN) / Avg Time In Operation (MIN) / Avg Time Blocked (MIN)Customer / 49.23 / 6 / 13.80 / 0.00 / 9.09 / 2.40 / 2.32
Results: Entity States
Name / % In Move Logic / % Waiting / % In Operation / % BlockedCustomer / 0 / 65.0 / 17.9 / 17.2
Summary of average results:
LobbyTotal number of customers served = / 49.23
Average wait time for exited customers (minutes) = / 9.09 + 2.32 = 11.41 minutes
Average length of waiting line = / 4.72 customers
Average wait time for all customers including ones still in the bank (minutes) = / 10.43 minutes
% of time waiting line is empty = / 4.66%
% of time waiting line is full = / 17.24%
Utilization of teller windows / 98.3%
Service Level
Total customer arrivals = Total entries at the waiting line + Failed arrivals = 54.23 + 9.60 = 63.83
Service level = Total entries at the waiting line /Total customer arrivals = (54.23/63.83) x 100 = 84.96%
Example 2: Same bank as before, but with two tellers and 40% of arriving customers first sit at a desk and fill out forms. Time to fill forms takes between 2.5 and 5.5 minutes. Assume total customers in the bank cannot exceed 13.
Flowchart
********************************************************************************
* Locations *
********************************************************************************
Name Cap Units Stats Rules Cost
------
Door 1 1 Time Series Oldest, ,
Desks 3 1 Time Series Oldest, , First
Teller_Waiting_Line 7 1 Time Series Oldest, FIFO,
Teller_Window 1 2 Time Series Oldest, , First
Teller_Window.1 1 1 Time Series Oldest, ,
Teller_Window.2 1 1 Time Series Oldest, ,
********************************************************************************
* Entities *
********************************************************************************
Name Speed (fpm) Stats Cost
------
Customer 150 Time Series
********************************************************************************
* Processing *
********************************************************************************
Process Routing
Entity Location Operation Blk Output Destination Rule Move Logic
------
Customer Door 1 Customer Teller_Waiting_Line 0.600000 1
Customer Desks 0.400000
Customer Desks WAIT U(4, 1.5) min
1 Customer Teller_Waiting_Line FIRST 1
Customer Teller_Waiting_Line 1 Customer Teller_Window FIRST 1
Customer Teller_Window Wait N(2.4,.5) min
1 Customer EXIT FIRST 1
********************************************************************************
* Arrivals *
********************************************************************************
Entity Location Qty Each First Time Occurrences Frequency Logic
------
Customer Door 1 0 INF e(2) min
Results: Locations
Name / Scheduled Time (HR) / Capacity / Total Entries / Avg Time Per Entry (MIN) / Avg Contents / Maximum Contents / Current Contents / % UtilizationDoor / 2 / 1 / 61.43 / 0.02 / 0.01 / 1.00 / 0.00 / 0.86
Desks / 2 / 3 / 26.50 / 3.85 / 0.85 / 3.00 / 0.93 / 28.32
Teller Waiting Line / 2 / 7 / 61.50 / 0.70 / 0.38 / 3.53 / 0.20 / 5.38
Teller Window.1 / 2 / 1 / 34.90 / 2.34 / 0.68 / 1.00 / 0.70 / 68.00
Teller Window.2 / 2 / 1 / 27.47 / 2.36 / 0.54 / 1.00 / 0.47 / 54.04
Teller Window / 4 / 2 / 62.37 / 2.35 / 0.61 / 2.00 / 1.17 / 61.02
Results: Location state Multi
Name / Scheduled Time (HR) / % Empty / % Part Occupied / % Full / % DownDesks / 2 / 42.68 / 51.68 / 5.64 / 0.00
Teller Waiting Line / 2 / 77.33 / 22.67 / 0.00 / 0.00
Results: Location state Single
Name / Scheduled Time (HR) / % Operation / % Setup / % Idle / % Waiting / % Blocked / % DownDoor / 2 / 0 / 0 / 99.14 / 0 / 0.86 / 0
Teller Window.1 / 2 / 68.00 / 0 / 32.00 / 0 / 0 / 0
Teller Window.2 / 2 / 54.04 / 0 / 45.96 / 0 / 0 / 0
Teller Window / 4 / 61.02 / 0 / 38.98 / 0 / 0 / 0
Results: Failed arrivals
Entity Name / Location Name / Total FailedCustomer / Door / 0.6
Results: Entity Activity
Name / Total Exits / Current Qty In System / Avg Time In System (MIN) / Avg Time In Move Logic (MIN) / Avg Time Waiting (MIN) / Avg Time In Operation (MIN) / Avg Time Blocked (MIN)Customer / 61.20 / 2.30 / 4.76 / 0.00 / 0.27 / 4.05 / 0.44
Results: Entity States
Name / % In Move Logic / % Waiting / % In Operation / % BlockedCustomer / 0 / 5.35 / 85.59 / 9.05
Summary of average results:
LobbyTotal number of customers served = / 61.20
Average wait time for exited customers (minutes) = / 0.27 + 0.44 = 0.71 minutes
Average length of waiting line = / 0.38 + .01 = .39 customers
Average wait time for all customers including ones still in the bank (minutes) = / 0.70 + 0.02 = 0.72 minutes
% of time waiting line is empty = / 77.33%
% of time waiting line is full = / 0%
% of time desks are empty = / 42.68%
% of time desks are full = / 5.64%
Utilization of teller windows: Window # 1 = 68.0%, Window #2 = 54.04%, Overall = 61.02%
Service Level
Total customer arrivals = Total entries at the door + Failed arrivals = 61.43 + 0.60 = 62.03
Service level = Total entries at the door/Total customer arrivals = (61.43/62.03) x 100 = 99.0%
Example 3: Same bank as in example 2, but with an ATM and a drive-thru window. The waiting line for ATM is limited to 3 customers. For customers arriving at the lobby, assume 40%-40%-20% for customer directly joining the queue, sit down to fill forms and joining the ATM waiting line, respectively. The time to complete the ATM transaction follows normal distribution with mean = 2 minutes, and standard deviation =.5 minutes.
For the drive-through line, cars arrive according to exponential distribution with a mean of 5 minutes. Service time for drive-thru window is triangular with minimum of 1 minutes, mode of 2 minutes and maximum of 5 minutes. There are only two tellers serving the two teller windows inside the lobby of the bank and the drive-through window. Also, assume only three cars can wait in line for drive-thru service.
In addition to other statistics, track the number of customers in the bank also.
Flowchart
********************************************************************************
* Locations *
********************************************************************************
Name Cap Units Stats Rules Cost
------
Door 1 1 Time Series Oldest, ,
Desk 3 1 Time Series Oldest, , First
Teller_Waiting_Line 7 1 Time Series Oldest, FIFO,
Teller_window 1 2 Time Series Oldest, , First
Teller_window.1 1 1 Time Series Oldest, ,
Teller_window.2 1 1 Time Series Oldest, ,
ATM_Line 3 1 Time Series Oldest, FIFO,
ATM 1 1 Time Series Oldest, ,