0% found this document useful (0 votes)
81 views

Simulation With Arena Chapter 2 - Fundamental Simulation Concepts Slide 1 of 46

This document provides an overview of fundamental concepts for simulation modeling. It describes the key components of a simulation model, including entities, attributes, variables, resources, queues, and statistical accumulators. It also outlines the event-scheduling approach used in simulation, where the model state is updated as discrete events occur in time. As an example, it details a simple processing system to be modeled, involving parts arriving for service at a machine. The key events of arrival and departure are described, along with how they would update the model state and performance measures. Finally, it outlines how the simple system could be simulated manually, step-by-step, to demonstrate the simulation methodology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
81 views

Simulation With Arena Chapter 2 - Fundamental Simulation Concepts Slide 1 of 46

This document provides an overview of fundamental concepts for simulation modeling. It describes the key components of a simulation model, including entities, attributes, variables, resources, queues, and statistical accumulators. It also outlines the event-scheduling approach used in simulation, where the model state is updated as discrete events occur in time. As an example, it details a simple processing system to be modeled, involving parts arriving for service at a machine. The key events of arrival and departure are described, along with how they would update the model state and performance measures. Finally, it outlines how the simple system could be simulated manually, step-by-step, to demonstrate the simulation methodology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 46

Fundamental Simulation

Concepts
Chapter 2

What Well Do ...

Underlying ideas, methods, and issues in


simulation
Software-independent (setting up for Arena)
Centered around an example of a simple
processing system

Decompose the problem


Terminology
Simulation by hand
Some basic statistical issues
Overview of a simulation study

The System:
A Simple Processing System
Machine
(Server)
Arriving
Blank Parts

Queue (FIFO)

General intent:

Departing
Finished Parts
Part in Service

Estimate expected production


Waiting time in queue, queue length, proportion of time
machine is busy

Time units

Can use different units in different places must declare


Be careful to check the units when specifying inputs
Declare base time units for internal calculations, outputs
Be reasonable (interpretation, roundoff error)

Model Specifics

Initially (time 0) empty and idle


Base time units: minutes
Input data (assume given for now ), in minutes:
Part Number
1
2
3
4
5
6
7
8
9
10
11
.
.

Arrival Time
0.00
1.73
3.08
3.79
4.41
18.69
19.39
34.91
38.06
39.82
40.82
.
.

Interarrival Time
1.73
1.35
0.71
0.62
14.28
0.70
15.52
3.15
1.76
1.00
.
.
.

Service Time
2.90
1.76
3.39
4.52
4.46
4.36
2.07
3.36
2.37
5.38
.
.
.

Stop when 20 minutes of (simulated) time have


passed

Goals of the Study:


Output Performance Measures

Total production of parts over the run (P)


Average waiting time of parts in queue:
N

WQi

i 1

N = no. of parts completing queue wait


WQi = waiting time in queue of ith part
Know: WQ1 = 0 (why?)
N > 1 (why?)

Maximum waiting time of parts in queue:


max WQi
i 1,...,N

Goals of the Study:


Output Performance Measures (contd.)

Time-average number of parts in queue:


20
0 Q(t ) dt

Q(t) = number of parts in queue


at time t
20
max Q (t )
Maximum number of parts in queue: 0t 20
Average and maximum total time in system of
parts (a.k.a. cycle time):
P

TSi

i 1

max TSi

i 1,...,P

TSi = time in system of part i

Goals of the Study:


Output Performance Measures (contd.)

Utilization of the machine (proportion of time


busy)

20
0 B(t ) dt

20

1 if the machine is busy at time t


B(t )
0 if the machine is idle at time t

Many others possible (information overload?)

Analysis Options

Educated guessing

Average interarrival time = 4.08 minutes


Average service time = 3.46 minutes
So (on average) parts are being processed faster than they
arrive

System has a chance of operating in a stable way in the long run,


i.e., might not explode
If all interarrivals and service times were exactly at their mean, there
would never be a queue
But the data clearly exhibit variability, so a queue could form

If wed had average interarrival < average service time, and


this persisted, then queue would explode
Truth between these extremes
Guessing has its limits

Analysis Options (contd.)

Queueing theory

Requires additional assumptions about the model


Popular, simple model: M/M/1 queue

Interarrival times ~ exponential


Service times ~ exponential, indep. of interarrivals
Must have E(service) < E(interarrival)
Steady-state (long-run, forever)
Exact analytic results; e.g., average waiting time in queue is
A E(interarrival time)
S2
,
S E(service time)
A S

Problems: validity, estimating means, time frame


Often useful as first-cut approximation

Mechanistic Simulation
Individual operations (arrivals, service times) will

occur exactly as in reality


Movements, changes occur at the right time, in
the right order
Different pieces interact
Install observers to get output performance
measures
Concrete, brute-force analysis approach
Nothing mysterious or subtle

But a lot of details, bookkeeping


Simulation software keeps track of things for you

Pieces of a Simulation Model

Entities

Players that move around, change status, affect and are


affected by other entities
Dynamic objects get created, move around, leave
(maybe)
Usually represent real things

Can have fake entities for modeling tricks

Our model: entities are the parts


Breakdown demon, break angel

Usually have multiple realizations floating around


Can have different types of entities concurrently
Usually, identifying the types of entities is the first thing to
do in building a model

Pieces of a Simulation Model (contd.)

Attributes

Characteristic of all entities: describe, differentiate


All entities have same attribute slots but different values
for different entities, for example:

Time of arrival
Due date
Priority
Color

Attribute value tied to a specific entity


Like local (to entities) variables
Some automatic in Arena, some you define

Pieces of a Simulation Model (contd.)

(Global) Variables

Reflects a characteristic of the whole model, not of specific


entities
Used for many different kinds of things

Travel time between all station pairs


Number of parts in system
Simulation clock (built-in Arena variable)

Name, value of which theres only one copy for the whole
model
Not tied to entities
Entities can access, change variables
Writing on the wall
Some built-in by Arena, you can define others

Pieces of a Simulation Model (contd.)

Resources

What entities compete for

Entity seizes a resource, uses it, releases it


Think of a resource being assigned to an entity, rather than
an entity belonging to a resource
A resource can have several units of capacity

People
Equipment
Space

Seats at a table in a restaurant


Identical ticketing agents at an airline counter

Number of units of resource can be changed during the


simulation

Pieces of a Simulation Model (contd.)

Queues

Place for entities to wait when they cant move on (maybe


since the resource they want to seize is not available)
Have names, often tied to a corresponding resource
Can have a finite capacity to model limited space have
to model what to do if an entity shows up to a queue thats
already full
Usually watch the length of a queue, waiting time in it

Pieces of a Simulation Model (contd.)

Statistical accumulators

Variables that watch whats happening


Depend on output performance measures desired
Passive in model dont participate, just watch
Many are automatic in Arena, but some you may have to
set up and maintain during the simulation
At end of simulation, used to compute final output
performance measures

Pieces of a Simulation Model (contd.)

Statistical accumulators for the simple


processing system

Number of parts produced so far


Total of the waiting times spent in queue so far
No. of parts that have gone through the queue
Max time in queue weve seen so far
Total of times spent in system
Max time in system weve seen so far
Area so far under queue-length curve Q(t)
Max of Q(t) so far
Area so far under server-busy curve B(t)

Simulation Dynamics:
The Event-Scheduling World View

Identify characteristic events


Decide on logic for each type of event to

Effect state changes for each event type


Observe statistics
Update times of future events (maybe of this type, other
types)

Keep a simulation clock, future event calendar


Jump from one event to the next, process,
observe statistics, update event calendar
Must specify an appropriate stopping rule
Usually done with general-purpose programming
language (C, FORTRAN, etc.)

Events for the


Simple Processing System
Arrival of a new part to the system

Update time-persistent statistical accumulators (from last


event to now)

Mark arriving part with current time (use later)


If machine is idle:

Start processing (schedule departure), Make machine busy, Tally


waiting time in queue (0)

Else (machine is busy):

Area under Q(t)


Max of Q(t)
Area under B(t)

Put part at end of queue, increase queue-length variable

Schedule the next arrival event

Events for the


Simple Processing System (contd.)

Departure (when a service is completed)

Increment number-produced stat accumulator


Compute & tally time in system (now - time of arrival)
Update time-persistent statistics (as in arrival event)
If queue is non-empty:

Take first part out of queue, compute & tally its waiting time in
queue, begin service (schedule departure event)

Else (queue is empty):

Make the machine idle (Note: there will be no departure event


scheduled on the future events calendar, which is as desired)

Events for the


Simple Processing System (contd.)

The End

Update time-persistent statistics (to end of the simulation)


Compute final output performance measures using current
(= final) values of statistical accumulators

After each event, the event calendars top record


is removed to see what time it is, what to do
Also must initialize everything

Some Additional Specifics for the


Simple Processing System

Simulation clock variable (internal in Arena)


Event calendar: List of event records:

[Entity No., Event Time, Event Type]


Keep ranked in increasing order on Event Time
Next event always in top record
Initially, schedule first Arrival, The End (Dep.?)

State variables: describe current status

Server status B(t) = 1 for busy, 0 for idle


Number of customers in queue Q(t)
Times of arrival of each customer now in queue (a list of
random length)

Simulation by Hand

Manually track state variables, statistical


accumulators
Use given interarrival, service times
Keep track of event calendar
Lurch clock from one event to the next
Will omit times in system, max computations
here (see text for complete details)

Simulation by Hand:
Setup
System

Clock

B(t)

Q(t)

Number of
completed waiting
times in queue

Total of
waiting times in queue

Arrival times of
custs. in queue

Area under
Q(t)

Event calendar

Area under
B(t)

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 0.00, Initialize
System

Number of
completed waiting
times in queue
0

Clock

B(t)

Q(t)

0.00

Arrival times of
Event calendar
custs. in queue
[1, 0.00,
Arr]
<empty> [, 20.00,
End]

Total of
waiting times in queue

Area under
Q(t)

Area under
B(t)

0.00

0.00

0.00

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 0.00, Arrival of Part 1
System

1
Number of
completed waiting
times in queue
1

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[2, 1.73,
Arr]
<empty> [1, 2.90,
Dep]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

0.00

0.00

0.00

0.00

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 1.73, Arrival of Part 2
System

Number of
completed waiting
times in queue
1

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[1, 2.90,
Dep]
(1.73) [3, 3.08,
Arr]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

1.73

0.00

0.00

1.73

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 2.90, Departure of Part 1
System

2
Number of
completed waiting
times in queue
2

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[3, 3.08,
Arr]
<empty> [2, 4.66,
Dep]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

2.90

1.17

1.17

2.90

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 3.08, Arrival of Part 3
System

Number of
completed waiting
times in queue
2

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[4, 3.79,
Arr]
(3.08) [2, 4.66,
Dep]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

3.08

1.17

1.17

3.08

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 3.79, Arrival of Part 4
System

Number of
completed waiting
times in queue
2

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[5, 4.41,
Arr]
(3.79, 3.08) [2, 4.66,
Dep]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

3.79

1.17

1.88

3.79

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 4.41, Arrival of Part 5
System

Number of
completed waiting
times in queue
2

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[2, 4.66,
Dep]
(4.41, 3.79, 3.08) [6, 18.69,
Arr]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

4.41

1.17

3.12

4.41

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 4.66, Departure of Part 2
System

Number of
completed waiting
times in queue
3

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[3, 8.05,
Dep]
(4.41, 3.79) [6, 18.69,
Arr]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

4.66

2.75

3.87

4.66

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 8.05, Departure of Part 3
System

Number of
completed waiting
times in queue
4

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[4, 12.57,
Dep]
(4.41) [6, 18.69,
Arr]
[, 20.00,
End]
Area under
Area under
Q(t)
B(t)

8.05

7.01

10.65

8.05

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 12.57, Departure of Part 4
System

5
Number of
completed waiting
times in queue
5

Clock

B(t)

Q(t)

12.57

Arrival times of
custs. in queue

Total of
waiting times in queue

Area under
Q(t)

15.17

15.17

Event calendar
[5, 17.03,
Dep]
() [6, 18.69,
Arr]
[, 20.00,
End]
Area under
B(t)
12.57

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 17.03, Departure of Part 5
System

Number of
completed waiting
times in queue
5

Clock

B(t)

Q(t)

17.03

Arrival times of
custs. in queue
()

Event calendar
[6, 18.69,
Arr]
[, 20.00,
End]

Total of
waiting times in queue

Area under
Q(t)

Area under
B(t)

15.17

15.17

17.03

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 18.69, Arrival of Part 6
System

6
Number of
completed waiting
times in queue
6

Clock

B(t)

Q(t)

18.69

Arrival times of
custs. in queue
()

Total of
waiting times in queue

Area under
Q(t)

Event calendar
[7, 19.39,
Arr]
[, 20.00,
End]
[6, 23.05,
Dep]
Area under
B(t)

15.17

15.17

17.03

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 19.39, Arrival of Part 7
System

Number of
completed waiting
times in queue
6

Clock

B(t)

Q(t)

Total of
waiting times in queue

Arrival times of
Event calendar
custs. in queue
[, 20.00,
End]
(19.39) [6, 23.05,
Dep]
[8, 34.91,
Arr]
Area under
Area under
Q(t)
B(t)

19.39

15.17

15.17

17.73

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
t = 20.00, The End
System

Number of
completed waiting
times in queue
6

Clock

B(t)

Q(t)

20.00

Arrival times of
Event calendar
custs. in queue
[6, 23.05,
Dep]
(19.39) [8, 34.91,
Arr]

Total of
waiting times in queue

Area under
Q(t)

Area under
B(t)

15.17

15.78

18.34

Q(t) graph

3
2
1
0

B(t) graph

10

15

20

10

15

20

2
1
0

Interarrival times

Time (Minutes)
1.73, 1.35, 0.71, 0.62, 14.28, 0.70, 15.52, 3.15, 1.76, 1.00, ...

Service times

2.90, 1.76, 3.39, 4.52, 4.46, 4.36, 2.07, 3.36, 2.37, 5.38, ...

Simulation by Hand:
Finishing Up

Average waiting time in queue:


Total of times in queue 15.17

2.53 minutes per part


No. of times in queue
6

Time-average number in queue:


Area under Q(t ) curve 15.78

0.79 part
Final clock value
20

Utilization
press:18.34
Area underofB(drill
t ) curve

0.92 (dimension less)


Final clock value
20

Complete Record of the Hand


Simulation

Event-Scheduling Logic via


Programming

Clearly well suited to standard programming


Often use utility libraries for:

List processing
Random-number generation
Random-variate generation
Statistics collection
Event-list and clock management
Summary and output

Main program ties it together, executes events in


order

Simulation Dynamics: The ProcessInteraction World View

Identify characteristic entities in the system


Multiple copies of entities co-exist, interact,
compete
Code is non-procedural
Tell a story about what happens to a typical
entity
May have many types of entities, fake entities
for things like machine breakdowns
Usually requires special simulation software

Underneath, still executed as event-scheduling

The view normally taken by Arena

Randomness in Simulation
The above was just one replication a sample of

size one (not worth much)


Made a total of five replications:

Note
substantial
variability
across
replications

values:
Confidence intervals
X tn 1,1for
/ n
/ 2sexpected

In general,
For expected total production,

3.80 (2.776)(1.64 / 5 )
3.80 2.04

Comparing Alternatives

Usually, simulation is used for more than just a


single model configuration
Often want to compare alternatives, select or
search for the best (via some criterion)
Simple processing system: What would happen
if the arrival rate were to double?

Cut interarrival times in half


Rerun the model for double-time arrivals
Make five replications

Results: Original vs. Double-Time


Arrivals

Original circles
Double-time triangles
Replication 1 filled in
Replications 2-5 hollow
Note variability
Danger of making
decisions based on one
(first) replication
Hard to see if there are
really differences
Need: Statistical analysis
of simulation output data

Overview of a Simulation Study

Understand the system


Be clear about the goals
Formulate the model representation
Translate into modeling software
Verify program
Validate model
Design experiments
Make runs
Analyze, get insight, document results

You might also like