Ch1: Introduction to:
SIMULATION
What is Simulation
• A method to model (represent), observe, and analyze real-
world systems on a computer. Why? Because systems are:
– Complex
– Stochastic
– Dynamic
• Mimic (imitate) system behavior over time
• The Goal is understanding system behavior, answering
what-if questions, designing new systems, and improving
performance of existing systems.
2
System vs. Its Model
• Simplification
Real System • Abstraction Model
• Assumptions
3
Model Classification
• Physical (prototypes) Simulation types:
• Analytical
(mathematical) • Discrete (DES)
• Computer
(Monte Carlo • Continuous
Simulation)
4
Typical Uses of Simulation
• Manufacturing Applications
• Material Handling Systems (AGVs, Forklifts,
Conveyors, Storage systems, etc.)
• Project Management (Construction Engineering)
• Logistics and Supply Chain applications
• Transportation (Traffic, Airports, Ports, etc.)
• Healthcare clinics and systems
• Banks and financial operations
• Computer Systems and Communication Networks
• Restaurants and catering
5
System Elements
• Entities (Attributes)
• Activities (tasks and operations)
• Resources (Manpower, machines, etc.)
• Logic (Events, Flow, State Variables)
• Data (specifications, time, cost, etc.)
6
Model Building Process
• Problem formulation and objectives
• Conceptual modeling
• Data collection
• Model translation (construction)
• Model verification
• Model validation
• Setup of simulation experiments
• Output analysis
• Recommendations/reporting
• Implementation
7
Simulating Queuing Systems
Example 1: A Simple Workstation
• Consider a single workstation, known in queueing theory as the
M/M/1 queue, where
• there is a machine with an infinite buffer in front of it
• jobs arrive randomly and wait in the buffer while the machine is busy
• jobs are processed by the machine and then leave the system
• job inter-arrival times are exponentially distributed with mean 30 minutes
• job processing times are exponentially distributed with mean 24 minutes
ARENA model:
Create 1 Process 1 Dispose 1
0 0
0
8
Simulation Objects and Actions
• Simulating the above workstation calls for the following actions:
• jobs are created, one at a time, according to their arrival distribution
• if the machine is busy processing another job, then the arriving job is
queued in the buffer
• when a job advances to the head of the buffer, it seizes the machine for
processing once it becomes available, and holds it for a time period,
sampled from its processing-time distribution
• on process completion, the job departs the machine and is removed from
the system
• Simulation objects and their actions and interactions
• are modeled by Arena modules
• parameterized by associated dialog boxes
9
Create Module
• The Create module generates a stream of arrivals of Arena
entities (jobs, people, messages, etc.)
Dialog box for a Create module
10
Create Module (Cont.)
• The Type pull-down menu for the Time Between Arrivals field
offers the following options:
• Random (exponential inter-arrival times with mean given in the Value
field)
• Schedule (allows the user to create arrival schedules using the Schedule
module from the Basic Process template panel
• Constant (specifies fixed inter arrival times)
• Expression (any type of inter-arrival time pattern specified by an Arena
expression, including Arena distributions)
11
Process Module
• The Process module processes (serves) Arena entities
Dialog box for a Process module
12
Process Module (Cont.)
• The Action field option, selected from the pull-down menu,
is Seize Delay Release, which stands for a sequence of
SEIZE, DELAY and RELEASE SIMAN blocks
• SEIZE and RELEASE blocks are used to model contention for a resource
possessing a capacity (e.g., machines)
• when resource capacity is exhausted, the entities contending for the
resource must wait until the resource is released
• thus, the SEIZE block operates like a gate between entities and a resource
• the processing (holding) time of a resource (called Machine in the example)
by an entity is specified via a DELAY block within the Process module
13
Dispose Module
• The Dispose module implements an entity “sunset” mechanism
• entities that enter it are simply discarded
14
Arena Simulation Results
• The end-result of a simulation run is a set of requisite statistics,
referred to as run results, such as
• mean waiting times
• buffer content probabilities
• resource utilization
• Arena provides a considerable number of default statistics
in a report that is automatically generated at the end of a
simulation run in Arena reports
• Additional statistics can be obtained by adding statistics
collection modules in the model, such as
• Record (Basic Process template panel)
• Statistic (Advanced Process template panel)
15
Example: a Resources Report
Resources statistics from a single replication
of the simple workstation model
16
Example: a Queues Report
Queues statistics from a single replication
of the simple workstation model
17
Example: Two Processes in Series
• Consider a manufacturing network of two workstations in series,
consisting of an assembly workstation followed by a painting
workstation, where
• jobs arrive at the assembly station with exponentially distributed inter-arrival
times of mean 8 hours
• the assembly process always has all the raw materials necessary to carry out
the assembly operation
• the assembly time is uniformly distributed between 2 and 6 hours
• after the process is completed, a quality control test is performed, and past
data reveal that 15% of the jobs fail the test and go back to the assembly
operation for rework
• jobs that pass the test proceed to the painting operation that takes 3 hours
for each unit
• We are interested in
• simulating the system for 100,000 hours
• estimating process utilizations, average job waiting times and average
job flow times (the elapsed time for a job from start to finish)
Altiok / Melamed Simulation
18
Modeling and Analysis with
Arena
The Arena Model
0 True
Quality Check
Assembly
Arrival Time
0 0 False
Painting
Job Arrivals 0
Completed
Flow Time
0
Arena manufacturing model of assembly and painting processes in series
Altiok / Melamed Simulation
19
Modeling and Analysis with
Arena
Assign Module
• The Assign module is used by entities to assign values to attributes
• the dialog box below assigns an arrival time to a job attribute
Dialog boxes for an Assign module
Altiok / Melamed Simulation
20
Modeling and Analysis with
Arena
Decide Module
• The Decide module is used by entities to make branching decisions,
based on chance or the truth/falsity of prescribed conditions
• the dialog box below makes a two-way probabilistic branching decision
Dialog box for a Decide module
Altiok / Melamed Simulation
21
Modeling and Analysis with
Arena
Record Module
• The Record module is used by entities to collect statistics
• the dialog box below tallies job flow times
Dialog box for a Record module
Altiok / Melamed Simulation
22
Modeling and Analysis with
Arena
Resources Report
Altiok / Melamed Simulation
23
Modeling and Analysis with
Arena
Queues Report
Altiok / Melamed Simulation
24
Modeling and Analysis with
Arena
User Specified Report
Altiok / Melamed Simulation
25
Modeling and Analysis with
Arena