Title: Lab 01 Fundamentals SE 405 Discrete Event Simulation
1Lab 01Fundamentals SE 405Discrete Event
Simulation
2Lab Objectives
- Introduction to Simulation
- Needs
- Uses etc.
- Understanding Manual Simulation
3Introduction
- Background
- Here the process or facility under consideration
is called system - Simulation is imitating the (dynamic behavior of)
real world system (as compared to static models)
using computer programs to study the behavior of
the system under study - In order to study it there are set of assumptions
on how a system works
4Introduction
- Background
- These assumptions take the form of mathematical
or logical relationships which constitutes
simulation model - Simulation models are numeric (Not analytic) in
order to estimates (presents error or
approximation)
5Introduction
- Applications
- Designing and analyzing manufacturing system
- Determining ordering policies for an inventory
system - Evaluating designs for service operations e.g.,
Banks, post office and hospital customer
in-service-out operations
6Introduction
- Definitions
- System Collection of entities interacting to
achieve a common objective or logical end - State (of a system) collection of variables
within a system to describe a system at a
particular time. (Number of customer in bank
queue) - Discrete / Continues systems
- Model Representation of actual system
7Introduction
- Definitions
- Analytic Solution vs Simulation (Numeric)
- Static Models vs Dynamic Simulation
- Deterministic (output determined) vs Stochastic
Simulations (output unknown or random) - Events (ei Time of occurrence of the ith event)
Any change in system (Part arrival, service
complete etc.) - Events Lists (e0, e1, e2, )
8Manual SimulationWhat Well Do ...
- Understanding simulation through example
- Software-independent
- 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
9The SystemA Simple Single server Queuing Model
Machine (Server)
Arriving Blank Parts
Departing Finished Parts
5
8
4
6
7
Queue (FIFO)
Part in Process
- General intent
- Estimate expected production
- Time in queue, queue length, proportion of time
machine is busy - Time units arbitrary, but
- Be consistent (simulation doesnt know)
- Be reasonable (interpretation, roundoff error)
10Model Specifics
- Initially (time 0) empty and idle
- Time units minutes
- Interarrival times An (n1,2,3) 6.84, 2.4, 2.7,
- Service times Sn (n1,2,3) 4.58, 2.96, 5.86,
- Stop Criteria
- Stop when customer/part number 10
- Stop when 15 minutes of (simulated) time have
passed
11Model Specifics
- Si time that a server actually spend serving
ith customer - Di delay in queue of the ith customer
- ti time of arrival of the ith customer t0??
- ci ti Di Si time that ith customer
completes service and departs - Stop Criteria
- Stop when customer/part number 10 has
- Stop when 15 minutes of (simulated) time have
passed
12Model Specifics
e0 e1
e2 e3
e4
0 t1
t2 c1
c2
A1 A2
A3
S1 S2
13Goals of the StudyOutput Performance Measures
- Total production of parts over the run (P)
- Average waiting time (or delay) of parts in
queue - Maximum waiting time of parts in queue
N no. of parts completing queue wait Di
waiting time in queue of ith part Know D1 0
(why?) N gt 1 (why?)
14Goals of the StudyOutput Performance Measures
(contd.)
- Time-average number of parts in queue
- Maximum number of parts in queue
- Average and maximum flowtime of parts (time in
system, a.k.a. cycle time)
t
Q(t) number of parts in queue at time t
t
Fi flowtime of ith part
15Goals of the StudyOutput Performance Measures
(contd.)
- Utilization of the machine (proportion of time
busy) - Many others possible (information overload?)
t
t
16Simulation Dynamics The Event-Scheduling World
View
- Identify characteristic events change state
- Decide on logic to effect state changes for each
event type, observe statistics - Keep a simulation clock, future event calendar
- Jump from one event to the next, process, observe
statistics, update event calendar - Stopping rule
- Usually done with general-purpose programming
language (C, FORTRAN, etc.)
17Events for Simple Processing System
- Arrival of new part to the 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 time in queue (0) - Else (machine is busy)
- Put part at end of queue, Increase queue-length
variable - Schedule the next arrival event
18Events for Simple Processing System (contd.)
- Departure (when a service is completed)
- Increment number-produced stat accumulator
- Compute tally flowtime (now - time of arrival)
- Update time-persistent statistics
- If queue is non-empty
- Take first part out of queue, compute tally its
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)
19Events for Simple Processing System (contd.)
- The End
- Update time-persistent statistics (to end of the
simulation) - Compute final output performance measures using
current 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
20Specifics for Simple Processing System
- Simulation clock (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)
21Simulation 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
22Simulation by HandSetup
23Simulation by HandInitialize at t 0.00
3
2
1
t
0
24Simulation by HandArrival of Part 1 at t 0.00
1
25Simulation by HandDeparture of Part 1 at t
4.58
26Simulation by HandArrival of Part 2 at t 6.84
27Simulation by HandArrival of Part 3 at t 9.24
2
3
28Simulation by HandDeparture of Part 2 at t
9.80
3
29Simulation by HandArrival of Part 4 at t 11.94
3
4
30Simulation by HandArrival of Part 5 at t 14.53
3
4
5
31Simulation by HandThe End at t 15.00
32Simulation by HandFinishing Up
- Time-average number in queue
- Server utilization
33Complete Record of the Hand Simulation