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 / Examples
Activity 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 windows
Independent 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 system
Utilization / 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

Object / Description / Important parameters / Creating a record
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 / % Utilization
Teller 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 / % Down
Teller Waiting Line / 2 / 4.66 / 78.10 / 17.24 / 0

Results: Location state Single

Name / Scheduled Time (HR) / % Operation / % Setup / % Idle / % Waiting / % Blocked / % Down
Teller Window / 2 / 98.30 / 0 / 1.70 / 0 / 0 / 0

Results: Failed arrivals

Entity Name / Location Name / Total Failed
Customer / 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 / % Blocked
Customer / 0 / 65.0 / 17.9 / 17.2

Summary of average results:

Lobby
Total 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 / % Utilization
Door / 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 / % Down
Desks / 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 / % Down
Door / 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 Failed
Customer / 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 / % Blocked
Customer / 0 / 5.35 / 85.59 / 9.05

Summary of average results:

Lobby
Total 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, ,