Transcript SimExample

SIMULATION
EXAMPLES
Simulation Examples
Monte-Carlo (Static) Simulation




Estimating profit on a sale promotion
Newsvendor Problem
Estimating the value of p
Approximating Integrals
Dynamic System Simulation

Queueing systems
M/U/1
G/G/1

Inventory systems
Periodic Review, Order-up-to-Level inventory control
Estimating p value
X, Y ~ uniform (0,1)
p
Pr( X  Y  1) 
4
1
2
p/4
0
2
Estimate p value by simulation
1
1,
00
0
2,
00
0
5,
00
0
10
,0
00
20
,0
00
50
,0
0
10 0
0,
00
20 0
0,
00
50 0
0,
00
1,
00 0
0,
2, 000
00
0,
00
5,
00 0
0
10 ,00
0
,0
00
,0
00
Estimate
Convergence to p
Point Estimates for Pi
3.30
3.25
3.20
3.15
3.10
3.05
3.00
2.95
2.90
Replications
Approximating Integrals
Consider the integral
b
   g ( x)dx
a
Making the substitution
y=
we get
where
x- a
b- a
dy =
dx
b- a
1
1
0
0
   g a  (b  a) y (b  a)dy   h( y)dy
h( y)  (b  a) g a  (b  a) y 
Approximating Integrals
Let Y ~ uniform(0,1)

1

0
E[h(Y )]   h( y) fY ( y)dy  h( y)dy  
Approximate the integral by simulation
3x  1
1 x  2 dx
3
Queueing systems
Entities
Calling
Population
……
Server
Waiting Line (Queue)
Finite vs
Infinite
One line vs
Multiple lines
One server vs
multiple server
Queueing examples
System
Entity
Server
Hospital
Patient
Doctor, Nurse
Manufacturing
Customer order
Machine
Food Store
Purchased grocery
Cashier
Bank
Client
Clerk
Computer
Job
CPU or disk
Communication Link
Data Package
Data Channel
Characteristics
Interarrival and Service Times




Exponential (M)
Deterministic (D)
Erlang (E)
General (G)
Queue discipline



First Come/In First Served/Out (FCFS/FIFO)
Last Come/In First Served/Out (LCFS/LIFO)
Earliest Due Date (EDD)
System Capacity
Number of Servers
Analysis Methods
Queueing Theory (Analytical)
Simulation
Performance Measures







Average Waiting Time
Maximum Waiting Time
Average Number of Entities in the System
Maximum Number of Entities in the System
Server Utilization
Average System Time
Maximum System Time
Events
Arrival Event – entry of a unit into the system
Departure Event – completion of service on a unit
Failure Event – server failure
Repair Event – server repair
Arrival Event
Arrival event
Schedule next arrival
Increase number in the system
Make server busy
NO
B(t)=1
Is
server
busy?
YES
L(t)=L(t)+1
Increase entity number
in queue
Q(t)=Q(t)+1
Set service time &
schedule departure
Service Completion Event
Departure event
Decrease number in system
Decrease number in
queue
Q(t)=Q(t)-1
Set service time &
scheduled departure for
entity in service
NO
Is
queue
empty?
L(t)=L(t)-1
YES
Make server idle
B(t)=0
Simulation by Hand
System
Clock
Number of
completed waiting
times in queue
Total of
waiting times in queue
B(t)
Q(t)
Arrival times of
custs. in queue
Area under
Q(t)
Event calendar
Area under
B(t)
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
0
5
2
1
0
Run simulation for 20
minutes to find
• Average
Waiting Time
10
15
• Average Queue Length
• Average Utilization
10
15
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, ...
20
20
t = 0.00, Initialize
System
Number of
completed waiting
times in queue
0
Clock
B(t)
Q(t)
0.00
0
0
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
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
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
1
0
0.00
0.00
0.00
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 1.73, Arrival of Part 2
System
2
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
[1, 2.90,
Dep]
(1.73) [3, 3.08,
Arr]
[–, 20.00,
End]
Area under
Area under
Q(t)
B(t)
1.73
1
1
0.00
0.00
1.73
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
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
0
1.17
1.17
2.90
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 3.08, Arrival of Part 3
System
3
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
[4, 3.79,
Arr]
(3.08) [2, 4.66,
Dep]
[–, 20.00,
End]
Area under
Area under
Q(t)
B(t)
3.08
1
1
1.17
1.17
3.08
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 3.79, Arrival of Part 4
System
4
3
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
[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
2
1.17
1.88
3.79
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 4.41, Arrival of Part 5
System
5
4
3
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
[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
3
1.17
3.12
4.41
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 4.66, Departure of Part 2
System
5
4
3
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
1
2
2.75
3.87
4.66
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 8.05, Departure of Part 3
System
5
4
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
1
1
7.01
10.65
8.05
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 12.57, Departure of Part 4
System
5
Number of
completed waiting
times in queue
5
Clock
B(t)
Q(t)
12.57
1
0
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
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 17.03, Departure of Part 5
System
Number of
completed waiting
times in queue
5
Clock
B(t)
Q(t)
17.03
0
0
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
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 18.69, Arrival of Part 6
System
6
Number of
completed waiting
times in queue
6
Clock
B(t)
Q(t)
18.69
1
0
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
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 19.39, Arrival of Part 7
System
7
6
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
1
1
15.17
15.17
17.73
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
t = 20.00, The End
System
7
6
Number of
completed waiting
times in queue
6
Clock
B(t)
Q(t)
20.00
1
1
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
4
Q(t) graph
3
2
1
0
B(t) graph
0
5
10
15
20
0
5
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, ...
Finishing Up
Average waiting time in queue:
T otalof waiting timesin queue 15.17

 2.53 minutesper part
No.of waiting timesin 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 (dimensionless)
Final clock value
20
Complete Record of the Hand
Simulation
Inventory systems
When to order?
How much to order?
Costs



Holding Cost
Ordering Cost
Shortage Cost
Performance Measures


Total Cost
Total Profit
Elements of Inventory Systems
Entity

Commodity
Events



Demand
Inventory Review
Order Arrival (Replenishment)
Occur simultaneously
when lead time is zero
Elements of Inventory Systems
State Variables



Inventory level
Time to next review
Time to next replenishment
Input




Demand
Lead Times
Cost Info (holding, shortage, and ordering costs)
Inventory Policy Parameters (Decision Variables)
Output



Total Costs
Average Inventory
Number of Shortages
Demand Event
Demand Event
Generate demand size
Decrement inventory
Schedule the next
demand event
D(t)
I(t) = I(t) - D(t)
Order Arrival Event
Order Arrival
Event
Increment Inventory
I(t) = I(t) + Q
Inventory Review Event
Inventory
review event
Determine Q
Determine lead-time
Schedule the next
order arrival &
review events
Order-Up-To-Level, Periodic
Review (M,N) Policy
M is fixed, N is fixed, Q varies
(M,N) Policy Example
Review period N=5 days, Order-up-to level M=11 units
Beginning inventory = 3 units
8 units scheduled to arrive in two days
Holding cost h = $1 per unit per day
Shortage cost s = $2 per unit per day
Ordering cost K = $10 per order Order arrival
1
2
3
Question: based on 5 cycles of simulation, calculate



Average ending units in inventory
The number of days shortage condition existed
Total cost
t
INPUT DATA
1. Demand Distribution
Demand
Probability
0
1
2
3
4
0.10
0.25
0.35
0.21
0.09
Cumulative
Probability
0.10
0.35
0.70
0.91
1.00
RD
Assignment
01-10
11-35
36-70
71-91
92-00
Cumulative
Probability
0.6
0.9
1.0
RD
Assignment
1-6
7-9
0
2. Lead Time Distribution
Lead Time
Probability
1
2
3
0.6
0.3
0.1
Simulation Table
Average Ending Unit sin Invent ory:
Number of Short age Days: 2
T ot alCost : 88h  6 s  5K  150
88
 3.52
25
HOW TO OPTIMIZE (M & N?)
Z
Simulation
Optimization
N
M
Z
Z1
M
Z2
Z = objective function = f (cost, end. Inv., ...)
TRY DIFFERENT M, N VALUES
N
*
*