Introduction To Arena: Dave Goldsman
Introduction To Arena: Dave Goldsman
Dave Goldsman
Georgia Tech
Atlanta, GA, USA
[email protected]
www.isye.gatech.edu/~sman
5/21/2010 DG,SHK,BLN 1
Overview
We now move to the design and
analysis of dynamic systems that evolve
through time.
We’ll use Arena, from Rockwell
Software, which is one of several
popular “discrete-event” simulation
software packages.
5/21/2010 DG,SHK,BLN 2
Some Definitions
A system is a collection of interacting entities (e.g., people, machines).
5/21/2010 DG,SHK,BLN 5
Arena World View
Arena takes the process interaction
world view.
Entities flow through a network of
modules that describe their logical
behavior.
We describe the network by developing
a process flowchart.
5/21/2010 DG,SHK,BLN 6
Flowchart Approach
E xit Facility
0
B roken Items R epair Inspect Ok?
Tr e
u
0
0 0
0 False
5/21/2010 DG,SHK,BLN 7
About modules…
Arena contains a very large number of
modules that are organized into panels.
The panels are structured from high level to
low level concepts:
Basic Process
Advanced Process & Advanced Transfer
Blocks & Elements (a programming language)
Our goal is not to learn lots of modules, but
rather to understand concepts that allow us
to learn new modules as needed.
5/21/2010 DG,SHK,BLN 8
Entities
Entities are dynamic
elements that pass
through the system.
Entities are
1: Kyle
2: Shepard
distinguished by 3: basketball
information, 3: baseball
paperwork, etc.
5/21/2010 DG,SHK,BLN 9
More on Entities
Entities must be
Created to get them
into the model, and
are Disposed when 1: 948
2: 22.765
they leave. 3: 0
Unfortunately,
attributes must be
numerical values.
5/21/2010 DG,SHK,BLN 10
Queueing
Entities queue when they need processing.
In Arena…
An entity tries to Seize a Resource.
The time the entity uses the resource is the Delay.
If the resource is not available, the entity waits in
a Queue.
The entity Releases the resource when processing
is complete.
5/21/2010 DG,SHK,BLN 11
Resources
Resources have…
A Name (up to you)
A Capacity (number of identical units of
this resource; think # of servers).
And can have a Schedule (how many
available when).
And Resources can be animated.
5/21/2010 DG,SHK,BLN 12
More on Resources
Resources are automatically defined by some
modules (e.g., Process)
Resources can be defined manually, and the
properties of all resources are changed, via
the Resources spreadsheet on the Basic
Process panel.
There is also a Schedule spreadsheet for
specifying Resource schedules.
5/21/2010 DG,SHK,BLN 13
More on Queues
Queues are created automatically by
some modules (e.g., Process), and can
be defined manually.
Properties of a queue, including the
ranking rule, are defined via the Queue
spreadsheet.
First-in or Last-in first out
Lowest or Highest attribute value first
5/21/2010 DG,SHK,BLN 14
Basic Process Modules
Push (possibly) batches of
entities into the model with a
(possibly) random time between.
Models Queue-Seize-Delay-
Release of Resource, or any part
of this (like pure Delay).
Make decisions about where to
go next based on conditions or
chance.
Take entities out of the model
and (perhaps) record statistics.
5/21/2010 DG,SHK,BLN 15
Basic Process Modules
Assign values (especially
Assign 1 Attributes) when an entity
passes through.
Record information when
Record 1
entities pass through, typically
statistics on entities.
Combine multiple entities into a
single entity.
5/21/2010 DG,SHK,BLN 16
Example
The decision is “2-
Create item entities; way by chance”
note that “Random” with 90% chance
time between of being “true.” E xit Facility
0
means Exponential
0
B roken Items R epair Inspect Ok?
Tr e
u
0
0 0
0 False
5/21/2010 DG,SHK,BLN 17
Basic Animation
Entity movement (via module
connections) and queues are
automatically animated.
The entity movement does not
correspond to the passage of simulated
time.
Later we will learn how to animate
transportation delays.
5/21/2010 DG,SHK,BLN 18
Entity Animation
The Entity spreadsheet allows you to change
the entity picture for each entity type.
The Entity Type is a name, usually given
when the entity is created.
Create: Entity Type: Items
An Assign module can be used to change the
entity Type or Picture as it moves through the
model.
5/21/2010 DG,SHK,BLN 19
Queue Animation
The default queue is the
sideways T.
The queue symbol can
be dragged anywhere,
or reoriented. To lengthen the queue
Often need to make the symbol, select it, grab the
end, and pull.
queue picture longer
(which has no effect on
queue capacity).
5/21/2010 DG,SHK,BLN 20
Resource Animation
Clicking the resource
button lets you add a
resource picture.
You select pictures for
the Busy, Idle, Inactive
and Failed states.
The Identifier must be
the name of a resource
already in the model
(e.g., defined by a
Process)
5/21/2010 DG,SHK,BLN 21
Delays
Arena gives a default distribution for time
between creations (“Random” = Expo) and
delay (“Triangular”).
If we want to put in a different distribution,
we select “Expression” and enter the
appropriate Arena function, such as WEIB,
POIS, etc.
We often get the expressions from the Input
Analyzer.
5/21/2010 DG,SHK,BLN 22
Seize-Delay-Release
Seize-Delay-Release need not be done
in a single Process.
One Process may be used to Queue and
Seize the resource, a number of other
modules may represent the processing,
and yet another Process may finally
Release the resource.
5/21/2010 DG,SHK,BLN 23
Example
Use a Seize-Delay (with
delay 0) here to get a Use a Delay-Release
Cart resource (with delay 0) to free
up the Cart resource
5/21/2010 DG,SHK,BLN 24
Internal Variables
Arena keeps a number of internal
variables continually updated.
These variables are useful for making
choices in a Decide module, displaying
in animated plots, or for recording
statistics.
The basic syntax is Name.Quantity
5/21/2010 DG,SHK,BLN 25
Basic Process Variables
Create Assign
Name.NumberOut Name.NumberOut
Process Batch
Name.NumberIn Name.NumberOut
Name.NumberOut Separate
Name.WIP Name.NumberOut Orig
Name.NumberOut Dup
Name.WaitTime
Record
Decide Name.NumberOut
Name.NumberOut True
Name.NumberOut False Dispose
Name.NumberOut
5/21/2010 DG,SHK,BLN 26
Example
5/21/2010 DG,SHK,BLN 27
Simulated Time
The simulation keeps its own internal
clock that jumps forward from event
time to event time.
The time on the simulation clock is
accessible through the Arena variable
TNOW.
TNOW is useful for marking entities or
making time-based decisions.
5/21/2010 DG,SHK,BLN 28
Batch and Split
Entities are processed in a batch of size two and then
the system split entities that were combined.
5/21/2010 DG,SHK,BLN 29
If one chooses “Permanent” as Type,
batched entities will never be split.
5/21/2010 DG,SHK,BLN 30
Demos
Single-Server Queue
Multiple Arrival Streams
Call Center
Manufacturing Cell
Immunization Clinic
Pandemic Influenza Model
5/21/2010 DG,SHK,BLN 31