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

Lecture 2 Fundamental Simulation Concepts

Uploaded by

ceren.akcay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Lecture 2 Fundamental Simulation Concepts

Uploaded by

ceren.akcay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 69

Fundamental

Simulation
Concepts

Chapter 2

Last revision March 9, 2014

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 1


What We’ll Do ...
• Underlying ideas, methods, and issues in
simulation
• Software (setting up for Arena)
• Example of a simple processing system
▪ Decompose problem
▪ Terminology
▪ Simulation by hand
▪ Some basic statistical issues
• Spreadsheet simulation
▪ Simple static, dynamic models
• Overview of a simulation study
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 2
The System:
A Simple Processing System
Machine
(Server)
Arriving Departing
7 6 5 4
Blank Parts Finished Parts
Queue (FIFO) Part in Service
• General intent:
▪ 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 units when specifying inputs
▪ Declare base time units for internal calculations, outputs
▪ Be reasonable (interpretation, roundoff error)
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 3
Model Specifics
• Initially (time 0) empty and idle
• Base time units: minutes
• Input data (assume given for now …), in minutes:
Part Number Arrival Time Interarrival Time Service Time
1 0.00 1.73 2.90
2 1.73 1.35 1.76
3 3.08 0.71 3.39
4 3.79 0.62 4.52
5 4.41 14.28 4.46
6 18.69 0.70 4.36
7 19.39 15.52 2.07
8 34.91 3.15 3.36
9 38.06 1.76 2.37
10 39.82 1.00 5.38
11 40.82 . .
. . . .
. . . .
• Stop when 20 minutes of (simulated) time have
passed
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 4
Goals of Study:
Output Performance Measures
• Total production of parts over run (P)
• Average waiting time of parts in queue:
N N = no. of parts completing queue wait
 WQi WQi = waiting time in queue of ith part
i =1
Know: WQ1 = 0 (why?)
N
N > 1 (why?)
• Maximum waiting time of parts in queue:
max WQi
i =1,...,N

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 5


Goals of Study:
Output Performance Measures (cont’d.)
• Time-average number of parts in queue:
𝟐𝟎
‫)𝒕(𝑸 𝟎׬‬ 𝒅𝒕 Q(t) = number of parts in queue
𝟐𝟎 at time t
• Maximum number of parts in queue: max Q (t )
0t 20
• Average and maximum total time in system of
parts (a.k.a. cycle time):
P
TSi
i =1 , TSi = time in system of part i
max TSi
P i =1,...,P

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 6


Goals of Study:
Output Performance Measures (cont’d.)
• Utilization of machine (proportion of time busy)
𝟐𝟎
‫)𝒕(𝑩 𝟎׬‬ 𝒅𝒕 𝟏 if machine is busy at time 𝒕
, 𝑩(𝒕) = ൝
𝟐𝟎 𝟎 if machine is idle at time 𝒕

• Many others possible (information overload?)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 7


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 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 data clearly exhibit variability, so a queue could form
▪ If we’d had average interarrival < average service time, and
this persisted, then queue would explode
▪ Truth — between these extremes
▪ Guessing has its limits …
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 8
Analysis Options (cont’d.)
• Queueing theory
▪ Requires additional assumptions about 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
S2  A = E(interarrival time)
,
 A − S S = E(service time)
▪ Problems: validity, estimating means, time frame
▪ Often useful as first-cut approximation

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 9


Mechanistic Simulation
• Individual operations (arrivals, service times) will
occur exactly as in reality
• Movements, changes occur at right “times,” in
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
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 10
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
– Our model: entities are parts
▪ Can have “fake” entities for modeling “tricks”
– Breakdown demon, break angel
Though Arena has built-in ways to model these examples directly
▪ Usually have multiple realizations floating around
▪ Can have different types of entities concurrently
▪ Usually, identifying types of entities is first thing to do in
building model
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 11
Pieces of a Simulation Model (cont’d.)
• 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

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 12


Pieces of a Simulation Model (cont’d.)
• (Global) Variables
▪ Reflects a characteristic of 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 there’s only one copy for whole
model
▪ Not tied to entities
▪ Entities can access, change variables
▪ Writing on wall (rewriteable)
▪ Some built-in by Arena, you can define others

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 13


Pieces of a Simulation Model (cont’d.)
• Resources
▪ What entities compete for
– People
– Equipment
– Space
▪ 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
– Seats at a table in a restaurant
– Identical ticketing agents at an airline counter
▪ Number of units of resource can be changed during
simulation

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 14


Pieces of a Simulation Model (cont’d.)
• Queues
▪ Place for entities to wait when they can’t move on (maybe
since 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 that’s
already full
▪ Usually watch length of a queue, waiting time in it

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 15


Pieces of a Simulation Model (cont’d.)
• Statistical accumulators
▪ Variables that “watch” what’s happening
▪ Depend on output performance measures desired
▪ “Passive” in model — don’t participate, just watch
▪ Many are automatic in Arena, but some you may have to
set up and maintain during simulation
▪ At end of simulation, used to compute final output
performance measures

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 16


Pieces of a Simulation Model (cont’d.)
• Statistical accumulators for simple processing
system
▪ Number of parts produced so far
▪ Total of waiting times spent in queue so far
▪ No. of parts that have gone through queue
▪ Max time in queue we’ve seen so far
▪ Total of times spent in system
▪ Max time in system we’ve 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 17


Simulation Dynamics:
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++, Java, Matlab, FORTRAN, etc.)
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 18
Events for the
Simple Processing System
• Arrival of a new part to system
▪ Update time-persistent statistical accumulators (from last
event to now)
– Area under Q(t)
– Max of Q(t)
– Area under B(t)
▪ “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):
– Put part at end of queue, increase queue-length variable
▪ Schedule next arrival event
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 19
Events for the
Simple Processing System (cont’d.)
• 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 machine idle (Note: there will be no departure event
scheduled on future events calendar, which is as desired)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 20


Events for the
Simple Processing System (cont’d.)
• The End
▪ Update time-persistent statistics (to end of simulation)
▪ Compute final output performance measures using current
(= final) values of statistical accumulators
• After each event, event calendar’s top record is
removed to see what time it is, what to do
• Also must initialize everything

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 21


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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 22


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 next
• Will omit times in system, “max” computations
here (see text for complete details)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 23


Simulation by Hand:
Setup
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 24


Simulation by Hand:
t = 0.00, Initialize
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [1, 0.00, Arr]
0.00 0 0 <empty> [–, 20.00, End]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
0 0.00 0.00 0.00

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 25


Simulation by Hand:
t = 0.00, Arrival of Part 1
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [2, 1.73, Arr]
1 0.00 1 0 <empty> [1, 2.90, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
1 0.00 0.00 0.00

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 26


Simulation by Hand:
t = 1.73, Arrival of Part 2
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [1, 2.90, Dep]
2 1 1.73 1 1 (1.73) [3, 3.08, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
1 0.00 0.00 1.73

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 27


Simulation by Hand:
t = 2.90, Departure of Part 1
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [3, 3.08, Arr]
2 2.90 1 0 <empty> [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.17 2.90

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 28


Simulation by Hand:
t = 3.08, Arrival of Part 3
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [4, 3.79, Arr]
3 2 3.08 1 1 (3.08) [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.17 3.08

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 29


Simulation by Hand:
t = 3.79, Arrival of Part 4
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [5, 4.41, Arr]
4 3 2 3.79 1 2 (3.79, 3.08) [2, 4.66, Dep]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 1.88 3.79

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 30


Simulation by Hand:
t = 4.41, Arrival of Part 5
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [2, 4.66, Dep]
5 4 3 2 4.41 1 3 (4.41, 3.79, 3.08) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
2 1.17 3.12 4.41

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 31


Simulation by Hand:
t = 4.66, Departure of Part 2
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [3, 8.05, Dep]
5 4 3 4.66 1 2 (4.41, 3.79) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
3 2.75 3.87 4.66

4
3
Q(t) graph
2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 32


Simulation by Hand:
t = 8.05, Departure of Part 3
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [4, 12.57, Dep]
5 4 8.05 1 1 (4.41) [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
4 7.01 10.65 8.05

4
3
Q(t) graph
2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 33


Simulation by Hand:
t = 12.57, Departure of Part 4
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [5, 17.03, Dep]
5 12.57 1 0 () [6, 18.69, Arr]
[–, 20.00, End]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
5 15.17 15.17 12.57

4
3
Q(t) graph
2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 34


Simulation by Hand:
t = 17.03, Departure of Part 5
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [6, 18.69, Arr]
17.03 0 0 () [–, 20.00, End]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
5 15.17 15.17 17.03

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 35


Simulation by Hand:
t = 18.69, Arrival of Part 6
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [7, 19.39, Arr]
6 18.69 1 0 () [–, 20.00, End]
[6, 23.05, Dep]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.17 17.03

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 36


Simulation by Hand:
t = 19.39, Arrival of Part 7
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [–, 20.00, End]
7 6 19.39 1 1 (19.39) [6, 23.05, Dep]
[8, 34.91, Arr]
Number of Total of Area under Area under
completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.17 17.73

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 37


Simulation by Hand:
t = 20.00, The End
System Clock B(t) Q(t) Arrival times of Event calendar
custs. in queue [6, 23.05, Dep]
7 6 20.00 1 1 (19.39) [8, 34.91, Arr]

Number of Total of Area under Area under


completed waiting waiting times in queue Q(t) B(t)
times in queue
6 15.17 15.78 18.34

4
3
Q(t) graph 2
1
0
0 5 10 15 20
2
B(t) graph 1
0
0 5 10 15 20

Time (Minutes)
Interarrival times 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 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 of drill press:
Area under B(t ) curve 18.34
= = 0.92 (dimension less)
Final clock value 20

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 39


Complete Record of the
Hand Simulation

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 40


Event-Scheduling Logic via
Programming
• Clearly well suited to standard programming
language (C, C++, Java, etc.)
• 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 with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 41
Simulation Dynamics:
Process-Interaction World View
• Identify characteristic entities in 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
• View normally taken by Arena
▪ Arena translates your model description into a program in
SIMAN simulation language for execution

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 42


Randomness in Simulation
• Above was just one “replication” — a sample of
size one (not worth much)
• Made a total of five replications (IID):

Substantial variability
across replications

• Confidence intervals for expected values:


▪ In general, X  tn −1,1− / 2s / n (normality assumption?)
▪ For expected total production, 3.80  (2.776)(1.64 / 5 )
3.80  2.04 Precision?
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 43
Comparing Alternatives
• Usually, simulation is used for more than just a
single model “configuration”
• Often want to compare alternatives, select or
search for best (via some criterion)
• Simple processing system: What would happen
if arrival rate doubled?
▪ Cut interarrival times in half
▪ Rerun model for double-time arrivals
▪ Make five replications

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 44


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
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 45
Manual Simulation Using Event Scheduling
(Banks et al. Chapter 3)
• Example 3.5 (The Dump Truck Problem)
▪ Six dump trucks haul coal from a mine to the railroad.
▪ Each truck is loaded by one of the two loaders. (FIFO)
▪ After a loading, the truck moves to the scale to be weighed. (FIFO)
▪ After being weighed, the truck travels to the railroad, unloads and returns to the
loader queue.
▪ The purpose of the simulation is to estimate the loader and scale utilizations.

Traveling

Loading

Scale

Loading Weighing
queue queue
First-Come First-Come
First-Served First-Served

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 46


Manual Simulation Using Event Scheduling (2)

▪ The distributions of loading time, weighing


time, and travel time are given in Tables
3.3, 3.4, and 3.5, respectively.

▪ The activity times sampled from


corresponding distributions and are taken
from the following list as needed:

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 47


Manual Simulation Using Event Scheduling (3)

• Example 3.5 – Model components:


▪ System state [LQ(t), L(t), WQ(t), W(t)]
– LQ(t) = number of trucks in loader queue
– L(t) = number of trucks (0, 1, or 2) being loaded
– WQ(t) = number of trucks in weigh queue
– W(t) = number of trucks (0 or 1) being weighed, all at simulation time t
▪ Event notices:
– (ALQ, t, DTi ), dump truck i arrives at loader queue (ALQ) at time t
– (EL, t, DTi), dump truck i ends loading (EL) at time t
– (EW, t, DTi), dump truck i ends weighing (EW) at time t
▪ Entities: The six dump trucks (DT1, … , DT6)
▪ Lists:
– Loader queue (FIFO)
– Weigh queue (FIFO)
▪ Activities: Loading time, weighing time, and travel time
▪ Delays: Delay at loader queue, and delay at scale

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 48


Manual Simulation Using Event Scheduling (4)

• Example 3.5 (Cont.)


▪ It has been assumed that five of the trucks are at the loaders and one is at the
scale at time 0.

Loading Time 10 5 5 10 15 10 10
Weighing Time 12 12 12 16 12 16
Travel Time 60 100 40 40 80

System State Lists Cum. Stat.s


Clock
(t) Loading Weighing
LQ(t) L(t) WQ(t) W(t) Event List BL BS
Queue Queue
0 3 2 0 1 DT4 (EL, 5, DT3)
DT5 (EL, 10, DT2)
DT6 (EW, 12, DT1)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 49


Loading Time 10 5 5 10 15 10 10
Weighing Time 12 12 12 16 12 16
Travel Time 60 100 40 40 80

System State Lists Cum. Stat.s


Clock
(t) Loading Weighing
LQ(t) L(t) WQ(t) W(t) Event List BL BS
Queue Queue
0 3 2 0 1 DT4 (EL, 5, DT3) 0 0
DT5 (EL, 10, DT2)
DT6 (EW, 12, DT1)
5 2 2 1 1 DT5 DT3 (EL, 10, DT2) 10 5
DT6 (EL, 10, DT4)
(EW, 12, DT1)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 50


Loading Time 10 5 5 10 15 10 10
Weighing Time 12 12 12 16 12 16
Travel Time 60 100 40 40 80

System State Lists Cum. Stat.s


Clock
(t) Loading Weighing
LQ(t) L(t) WQ(t) W(t) Event List BL BS
Queue Queue
0 3 2 0 1 DT4 (EL, 5, DT3) 0 0
DT5 (EL, 10, DT2)
DT6 (EW, 12, DT1)
5 2 2 1 1 DT5 DT3 (EL, 10, DT2) 10 5
DT6 (EL, 10, DT4)
(EW, 12, DT1)
10 1 2 2 1 DT6 DT3 (EL, 10, DT4) 20 10
DT2 (EW, 12, DT1)
(EL, 20, DT5)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 51


Loading Time 10 5 5 10 15 10 10
Weighing Time 12 12 12 16 12 16
Travel Time 60 100 40 40 80

System State Lists Cum. Stat.s


Clock
(t) Loading Weighing
LQ(t) L(t) WQ(t) W(t) Event List BL BS
Queue Queue
0 3 2 0 1 DT4 (EL, 5, DT3) 0 0
DT5 (EL, 10, DT2)
DT6 (EW, 12, DT1)
5 2 2 1 1 DT5 DT3 (EL, 10, DT2) 10 5
DT6 (EL, 10, DT4)
(EW, 12, DT1)
10 1 2 2 1 DT6 DT3 (EL, 10, DT4) 20 10
DT2 (EW, 12, DT1)
(EL, 20, DT5)
10 0 2 3 1 DT3 (EW, 12, DT1) 20 10
DT2 (EL, 20, DT5)
DT4 (EL, 25, DT6)

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 52


Loading Time 10 5 5 10 15 10 10
Weighing Time 12 12 12 16 12 16
Travel Time 60 100 40 40 80

System State Lists Cum. Stat.s


Clock
(t) Loading Weighing
LQ(t) L(t) WQ(t) W(t) Event List BL BS
Queue Queue
0 3 2 0 1 DT4 (EL, 5, DT3) 0 0
DT5 (EL, 10, DT2)
DT6 (EW, 12, DT1)
5 2 2 1 1 DT5 DT3 (EL, 10, DT2) 10 5
DT6 (EL, 10, DT4)
(EW, 12, DT1)
10 1 2 2 1 DT6 DT3 (EL, 10, DT4) 20 10
DT2 (EW, 12, DT1)
(EL, 20, DT5)
10 0 2 3 1 DT3 (EW, 12, DT1) 20 10
DT2 (EL, 20, DT5)
DT4 (EL, 25, DT6)
12 0 2 2 1 DT2 (EL, 20, DT5) 24 12
DT4 (EW, 24, DT3)
(EL, 25, DT6)
(ALQ, 72, DT1)
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 53
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 54
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 55
Manual Simulation Using Event Scheduling (5)

• Example 3.5 (Cont.)


▪ This logic for the occurrence of the end-loading event
– When an end-loading (EL) event occurs, say for truck j at time t , other events may
be triggered.
– If the scale is idle [W(t)=0], truck j begins weighing and an end-weighing event (EW)
is scheduled on the FEL.
– Otherwise, truck j joins the weigh queue.
– If at this time there is another truck waiting for a loader, it will be removed from the
loader queue and will begin loading by the scheduling of an end-loading event (EL)
on the FEL.
▪ In order to estimate the loader and scale utilizations, two cumulative statistics
are maintained:
– BL = total busy time of both loaders from time 0 to time t
– BS = total busy time of the scale from time 0 to time t

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 56


Manual Simulation Using Event Scheduling (6)

• Example 3.5 (Cont.)


▪ The utilizations are estimated as follows:

49/2
▪ Average loader utilization = = 0.32
76

76
▪ Average scale utilization = 76 = 1.00

▪ These estimates cannot be regarded as accurate estimates of the long-run


“steady-state” utilizations of the loader and scale.
▪ A considerably longer simulation would be needed to reduce the effect of the
assumed conditions at time 0 (five of the six trucks at the loaders) and to realize
accurate estimates.

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 57


Simulating with Spreadsheets:
Introduction
• Popular, ubiquitous tool
• Can use for simple simulation models
▪ Typically, only static models
– Risk analysis, financial/investment scenarios
▪ Only (very) simplest of dynamic models
• Two examples
▪ Newsvendor problem (static)
▪ Waiting times in single-server queue (dynamic)
– Special recursion valid only in this case

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 58


Simulating with Spreadsheets:
Newsvendor Problem – Setup
• Rupert sells daily newspapers on street
▪ Rupert buys for c = $0.55 each, sells for r = $1.00 each
• Each morning, Rupert buys q copies
▪ q is a fixed number, same every day
• Demand during a day: D = max (X, 0)
▪ X ~ normal ( = 135.7, s = 27.1), from historical data
▪ X rounds X to nearest integer
• If D  q, satisfy all demand, and q – D  0 left over,
sell for scrap at s = $0.03 each
• If D > q, sells out (sells all q copies), no scrap
▪ But missed out on D – q > 0 sales
• What should q be?
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 59
Simulating with Spreadsheets:
Newsvendor Problem – Formulation
• Choose q to maximize expected profit per day
▪ q too small – sell out, miss $0.45 profit per paper
▪ q too big – have left over, scrap at a loss of $0.52 per paper
• Classic operations-research problem
▪ Many versions, variants, extensions, applications
▪ Much research on exact solution in certain cases
▪ But easy to simulate, even in a spreadsheet
• Profit in a day, as a function of q:
W(q) = r min (D, q) + s max (q – D, 0) – cq
Sales revenue Scrap revenue Cost
▪ W(q) is a random variable – profit varies from day to day
• Maximize E(W(q)) over nonnegative integers q
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 60
Simulating with Spreadsheets:
Newsvendor Problem – Simulation
• Set trial value of q, generate demand D, compute
profit for that day
▪ Then repeat this for many days independently, average to
estimate E(W(q))
– Also get confidence interval, estimate of P(loss), histogram of W(q)
▪ Try for a range of values of q
• Need to generate demand D = max (X, 0)
▪ So need to generate X ~ normal ( = 135.7, s = 27.1)
▪ (Much) ahead – Sec. 12.2, generating random variates
▪ In this case, generate X = F-1,s(U)
U is a random number distributed uniformly on [0, 1] (Sec. 12.1)
F,s is cumulative distribution function of normal (, s) distribution

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 61


Simulating with Spreadsheets:
Newsvendor Problem – Excel
• File Newsvendor.xls
• Input parameters in cells B4 – B8 (blue)
• Trial values for q in row 2 (pink)
• Day number (1, 2, ..., 30) in column D
• Demands in column E for each day:
= MAX(ROUND(NORMINV(RAND(), $B$7, $B$8), 0), 0)
Rounding F -1 U(0, 1)  s
function random number

RAND() is “volatile” X ~ normal (, s)


so regenerates on Round to
any edit, or F9 key $ pins down following nearest
MAX 2nd
column or row when integer
argument
copying formula
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 62
Simulating with Spreadsheets:
Newsvendor Problem – Excel (cont’d.)
• For each q:
▪ “Sold” column: number of papers sold that day
▪ “Scrap” column: number of papers scrapped that day
▪ “Profit” column: profit (+, –, 0) that day
▪ Placement of “$” in formulas to facilitate copying
• At bottom of “Profit” columns (green):
▪ Average profit over 30 days
▪ Half-width of 95% confidence interval on E(W(q))
– Value 2.045 is upper 0.975 critical point of t distribution with 29 d.f.
– Plot confidence intervals as “I-beams” on left edge
▪ Estimate of P(W(q) < 0)
– Uses COUNTIF function
• Histograms of W(q) at bottom
▪ Vertical red line at 0, separates profits, losses
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 63
Simulating with Spreadsheets:
Newsvendor Problem – Results
• Fine point – used same daily demands (column E)
for each day, across all trial values of q
▪ Would have been valid to generate them independently
▪ Why is it better to use same demands for all q?
• Results
▪ Best q is about 140, maybe a little less
▪ Randomness in all results (tap F9 key)
– All demands, profits, graphics change
– Confidence-interval, histogram plots change
– Reminder that these are random outputs, random plots
▪ Higher q  more variability in profit
– Histograms at bottom are wider for larger q
– Higher chance of both large profits, but higher chance of loss, too
– Risk/return tradeoff can be quantified – risk taker vs. risk-averse
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 64
Simulating with Spreadsheets:
Single-Server Queue – Setup
• Like hand simulation, but:
▪ Interarrival times ~ exponential with mean 1/l = 1.6 min.
▪ Service times ~ uniform on [a, b] = [0.27, 2.29] min.
▪ Stop when 50th waiting time in queue is observed
– i.e., when 50th customer begins service, not exits system
• Watch waiting times in queue WQ1, WQ2, ..., WQ50
▪ Important – not watching anything else, unlike before
• Si = service time of customer i,
Ai = interarrival time between custs. i – 1 and i
• Lindley’s recursion (1952): Initialize WQ1 = 0,
WQi = max (WQi – 1 + Si – 1 – Ai, 0), i = 2, 3, ...
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 65
Simulating with Spreadsheets:
Single-Server Queue – Simulation
• Need to generate random variates: let U ~ U[0, 1]
▪ Exponential (mean 1/l): Ai = –(1/l) ln(1 – U)
▪ Uniform on [a, b]: Si = a + (b – a) U
• File MU1.xls
• Input parameters in cells B4 – B6 (blue)
▪ Some theoretical outputs in cells B8 – B10
• Customer number (i = 1, 2, ..., 50) in column D
• Five IID replications (three columns for each)
▪ IA = interarrival times, S = service times
▪ WQ = waiting times in queue (plot, thin curves)
– First one initialized to 0, remainder use Lindley’s recursion
Curves rise from 0, variation increases toward right
– Creates positive autocorrelation down WQ columns
Curves have less abrupt jumps than if WQi’s were independent
Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 66
Simulating with Spreadsheets:
Single-Server Queue – Results
• Column averages (green)
▪ Average interarrival, service times close to expectations
▪ Average WQi within each replication
– Not too far from steady-state expectation
– Considerable variation
– Many are below it (why?)
• Cross-replication (by customer) averages (green)
▪ Column T, thick line in plot to dampen noise
• Why no sample variance, histograms of WQi’s?
▪ Could have computed both, as in newsvendor; two issues:
– Nonstationarity – what is a “typical” WQi here?
– Autocorrelation – biases variance estimate, may bias histogram if
run is not “long enough”

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 67


Simulating with Spreadsheets:
Recap
• Popular for static models
▪ Add-ins – @RISK, Crystal Ball
• Inadequate tool for dynamic simulations if there’s
any complexity
▪ Extremely easy to simulate single-server queue in Arena –
Chapter 3 main example
▪ Can build very complex dynamic models with Arena – most
of rest of book

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 68


Overview of a Simulation Study
• Understand system
• Be clear about goals
• Formulate model representation
• Translate into modeling software
• Verify “program”
• Validate model
• Design experiments
• Make runs
• Analyze, get insight, document results

Simulation with Arena, 6th ed. Chapter 2 – Fundamental Simulation Concepts 69

You might also like