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 * *