Slides Prepared by JOHN S. LOUCKS St. Edward’s University © 2004 Thomson/South-Western Slide 1 Chapter 15 Simulation Advantages and Disadvantages of Using Simulation Modeling Random Variables and Pseudo-Random Numbers Time Increments Simulation Languages Validation and Statistical Considerations Examples © 2004 Thomson/South-Western Slide 2 Simulation Simulation is one of the most frequently employed management science techniques. It is typically used to model random processes that are too complex to be solved by analytical methods. © 2004 Thomson/South-Western Slide 3 Advantages of Simulation Among the advantages of simulation is the ability to gain insights into the model solution which may be impossible to attain through other techniques. Also, once the simulation has been developed, it provides a convenient experimental laboratory to perform “what if” and sensitivity analysis. © 2004 Thomson/South-Western Slide 4 Disadvantages of Simulation A large amount of time may be required to develop the simulation. There is no guarantee that the solution obtained will actually be optimal. Simulation is, in effect, a trial and error method of comparing different policy inputs. It does not determine whether some input which was not considered could have provided a better solution for the model. © 2004 Thomson/South-Western Slide 5 Simulation Modeling One begins a simulation by developing a mathematical statement of the problem. The model should be realistic yet solvable within the speed and storage constraints of the computer system being used. Input values for the model as well as probability estimates for the random variables must then be determined. © 2004 Thomson/South-Western Slide 6 Random Variables Random variable values are utilized in the model through a technique known as Monte Carlo simulation. The mapping is done in such a way that the likelihood that a particular number is chosen is the same as the probability that the corresponding value of the random variable occurs. © 2004 Thomson/South-Western Slide 7 Pseudo-Random Numbers Because a computer program generates random numbers for the mapping according to some formula, the numbers are not truly generated in a random fashion. However, using standard statistical tests, the numbers can be shown to appear to be drawn from a random process. These numbers are called pseudo-random numbers. © 2004 Thomson/South-Western Slide 8 Time Increments In a fixed-time simulation model, time periods are incremented by a fixed amount. For each time period a different set of data from the input sequence is used to calculate the effects on the model. In a next-event simulation model, time periods are not fixed but are determined by the data values from the input sequence. © 2004 Thomson/South-Western Slide 9 Simulation Programs The computer program that performs the simulation is called a simulator. Flowcharts can be useful in writing such a program. While this program can be written in any general purpose language (e.g. BASIC, FORTRAN, C++, etc.) special languages which reduce the amount of code which must be written to perform the simulation have been developed. Special simulation languages include SIMSCRIPT, SPSS, DYNAMO, and SLAM. © 2004 Thomson/South-Western Slide 10 Model Verification/Validation Verification/validation of both the model and the method used by the computer to carry out the calculations is extremely important. Models which do not reflect real world behavior cannot be expected to generate meaningful results. Likewise, errors in programming can result in nonsensical results. © 2004 Thomson/South-Western Slide 11 Model Verification/Validation Validation is generally done by having an expert review the model and the computer code for errors. Ideally, the simulation should be run using actual past data. Predictions from the simulation model should be compared with historical results. © 2004 Thomson/South-Western Slide 12 Experimental Design Experimental design is an important consideration in the simulation process. Issues such as the length of time of the simulation and the treatment of initial data outputs from the model must be addressed prior to collecting and analyzing output data. Normally one is interested in results for the steady state (long run) operation of the system being modeled. The initial data inputs to the simulation generally represent a start-up period for the process and it may be important that the data outputs for this start-up period be neglected for predicting this long run behavior. © 2004 Thomson/South-Western Slide 13 Experimental Design For each policy under consideration by the decision maker, the simulation is run by considering a long sequence of input data values (given by a pseudorandom number generator). Whenever possible, different policies should be compared by using the same sequence of input data. © 2004 Thomson/South-Western Slide 14 Example: Dynogen, Inc. The price change of shares of Dynogen, Inc. has been observed over the past 50 trades. The frequency distribution is as follows: Price Change -3/8 -1/4 -1/8 0 +1/8 +1/4 +3/8 +1/2 © 2004 Thomson/South-Western Number of Trades 4 2 8 20 10 3 2 1 Total = 50 Slide 15 Example: Dynogen, Inc. Relative Frequency Distribution and Random Number Mapping Price Change Relative Frequency Random Numbers -3/8 .08 00 - 07 -1/4 .04 08 - 11 -1/8 .16 12 - 27 0 .40 28 - 67 +1/8 .20 to random 68 - 87 numbers in Assign this +1/4 .06 this range 88 - 93 +3/8 .04 94 - 97 +1/2 .02 98 - 99 Total 1.00 © 2004 Thomson/South-Western Slide 16 Example: Dynogen, Inc. If the current price per share of Dynogen is 23, use random numbers to simulate the price per share over the next 10 trades. Use the following stream of random numbers: 21, 84, 07, 30, 94, 57, 57, 19, 84, 84 © 2004 Thomson/South-Western Slide 17 Example: Dynogen, Inc. Simulation Worksheet Trade Random Number Number 1 21 2 84 3 07 4 30 5 94 6 57 7 57 8 19 9 84 10 84 © 2004 Thomson/South-Western Price Change -1/8 +1/8 -3/8 0 +3/8 0 0 -1/8 +1/8 +1/8 Stock Price 22 7/8 23 22 5/8 22 5/8 23 23 23 22 7/8 23 23 1/8 Slide 18 Example: Dynogen, Inc. Spreadsheet for Stock Price Simulation A B 1 Lower Upper 2 Random Random 3 Number Number 4 0.00 0.08 5 0.08 0.12 6 0.12 0.28 7 0.28 0.68 8 0.68 0.88 9 0.88 0.94 10 0.94 0.98 11 0.98 1.00 12 C Price Change -0.375 -0.250 -0.125 0.000 0.125 0.250 0.375 0.500 The look-up table named, say, “StockChng”. © 2004 Thomson/South-Western D Trade Number 1 2 3 4 5 6 7 8 9 10 E Price Change 0.125 0.375 0.000 0.000 0.000 0.000 0.125 0.125 0.000 0.125 F Stock Price 23.125 23.500 23.500 23.500 23.500 23.500 23.625 23.750 23.750 23.875 A random number is compared to the table, to choose a price change Slide 19 Example: Dynogen, Inc. “StockChng” Spreadsheet for Stock Price Simulation A B 1 Lower Upper 2 Random Random 3 Number Number 4 0.00 0.08 5 0.08 0.12 6 0.12 0.28 7 0.28 0.68 8 0.68 0.88 9 0.88 0.94 10 0.94 0.98 11 0.98 1.00 12 C Price Change -0.375 -0.250 -0.125 0.000 0.125 0.250 0.375 0.500 D Trade Number 1 2 3 4 5 6 7 8 9 10 E Price Change 0.125 0.375 0.000 0.000 0.000 0.000 0.125 0.125 0.000 0.125 F Stock Price 23.125 23.500 23.500 23.500 23.500 23.500 23.625 23.750 23.750 23.875 The formula, “=VLOOKUP(INT(100*RAND()),StockChng,3)”, in this cell had RAND() return a number between 0.68 and 0.88. © 2004 Thomson/South-Western Slide 20 Example: Dynogen, Inc. Theoretical Results and Observed Results Based on the probability distribution, the expected price change per trade can be calculated by: (.08)(-3/8) + (.04)(-1/4) + (.16)(-1/8) + (.40)(0) + (.20)(1/8) + (.06)(1/4) + (.04)(3/8) + (.02)(1/2) = +.005 The expected price change for 10 trades is (10)(.005) = .05. Hence, the expected stock price after 10 trades is 23 + .05 = 23.05. Compare this ending price with the spreadsheet simulation and “manual” simulation results on the previous slides: 23.875 and 23 1/8. © 2004 Thomson/South-Western Slide 21 Example: Mark Off’s Process Mark Off is a specialist at repairing large metalcutting machines that use laser technology. His repair territory consists of the cities of Austin, San Antonio, and Houston. His day-to-day repair assignment locations can be modeled as a Markov process. The transition matrix is shown on the next slide. © 2004 Thomson/South-Western Slide 22 Example: Mark Off’s Process This Day’s Location Austin San Antonio Houston Next Day's Location Austin San Antonio Houston .60 .20 .15 .15 .75 .05 .25 .05 .80 If Mark’s in Austin today, chances are 60% that he’ll be in Austin tomorrow. If Mark’s in Houston today, chances are 5% that he’ll be in San Antonio tomorrow. © 2004 Thomson/South-Western Slide 23 Example: Mark Off’s Process Random Number Mappings Currently in Currently in Currently in Austin San Antonio Houston Next-Day Random Next-Day Random Next-Day Random Location Numbers Location Numbers Location Numbers Austin 00 - 59 Austin 00 - 19 Austin 00 - 14 San Ant. 60 - 74 San Ant. 20 - 94 San Ant. 15 - 19 Houston 75 - 99 Houston 95 - 99 Houston 20 - 99 © 2004 Thomson/South-Western Slide 24 Example: Mark Off’s Process Assume Mark is currently in Houston. Simulate where Mark will be over the next 16 days. What percentage of time will Mark be in each of the three cities? Use the following random numbers: 93, 63, 26, 16, 21, 26, 70, 55, 72, 89, 49, 64, 91, 02, 52, 69 © 2004 Thomson/South-Western Slide 25 Example: Mark Off’s Process Simulation Worktable Starting in Houston Random N.Day's Random Day Number Location Day Number 1 93 Houston 9 72 2 63 Houston 10 89 3 26 Houston 11 49 4 16 San Ant. 12 64 5 21 San Ant. 13 91 6 26 San Ant. 14 02 7 70 San Ant. 15 52 8 55 San Ant. 16 69 N.Day's Location San Ant. San Ant. San Ant. San Ant. San Ant. Austin Austin San Ant. In Houston, 20 ≤ r ≤ 99 Houston © 2004 Thomson/South-Western Slide 26 Example: Mark Off’s Process Repeat the simulation with Mark currently in Austin. Use the following random numbers: 13, 08, 60, 13, 68, 40, 40, 27, 23, 64, 36, 56, 25, 88, 18, 74 Compare the percentages with those found with Mark starting in Houston. © 2004 Thomson/South-Western Slide 27 Example: Mark Off’s Process Simulation Worksheet Starting in Austin Random Day's Random Day Number Location Day Number 1 13 Austin 9 23 2 08 Austin 10 64 3 60 San Ant. 11 36 4 13 Austin 12 56 5 68 San Ant. 13 25 6 40 San Ant. 14 88 7 40 San Ant. 15 18 8 27 San Ant. 16 74 © 2004 Thomson/South-Western Day's Location San Ant. San Ant. San Ant. San Ant. San Ant. San Ant. Austin San Ant. Slide 28 Example: Mark Off’s Process Simulation Summary Starting in Houston Austin = 2/16 = 12.50% San Antonio = 11/16 = 68.75% Houston = 3/16 = 18.75% Starting in Austin Austin = 4/16 = 25% San Antonio = 12/16 = 75% Houston = 0/16 = 0% © 2004 Thomson/South-Western Slide 29 Example: Mark Off’s Process Partial Spreadsheet w/Variable Look-up Table A B 1 2 Aus. 3 LRN URN 6 0.00 0.60 7 0.60 0.75 8 0.75 1.00 9 C D E F G Current Location S.A. NDL LRN URN NDL LRN Aus. 0.00 0.20 Aus. 0.00 S.A. 0.20 0.95 S.A. 0.15 Hou. 0.95 1.00 Hou. 0.20 H I Hou. URN 0.15 0.20 1.00 NDL Aus. S.A. Hou. URN = Upper Random Number LRN = Lower Random Number NDL = Next-Day Location © 2004 Thomson/South-Western Slide 30 Example: Mark Off’s Process Partial Spreadsheet with Simulation Table 11 12 13 14 15 16 17 18 19 A B Current Location Aus. S.A. S.A. S.A. S.A. S.A. S.A. C D E F Random Next-Day Number Location 0.64 S.A. 0.33 S.A. 0.87 S.A. 0.61 S.A. 0.30 S.A. 0.45 S.A. 0.71 S.A. =IF(A13=$A$2,VLOOKUP(C13,$A$6:$C$8,3), IF(A13=$D$2,VLOOKUP(C13,$D$6:$F$8,3), VLOOKUP(C13,$G$6:$I$8,3))) © 2004 Thomson/South-Western Slide 31 Example: Wayne International Airport Wayne International Airport primarily serves domestic air traffic. Occasionally, however, a chartered plane from abroad will arrive with passengers bound for Wayne's two great amusement parks, Algorithmland and Giffith's Cherry Preserve. Whenever an international plane arrives at the airport the two customs inspectors on duty set up operations to process the passengers. © 2004 Thomson/South-Western Slide 32 Example: Wayne International Airport Incoming passengers must first have their passports and visas checked. This is handled by one inspector. The time required to check a passenger's passports and visas can be described by the probability distribution on the next slide. © 2004 Thomson/South-Western Slide 33 Example: Wayne International Airport Time Required to Check a Passenger's Passport and Visa 20 seconds 40 seconds 60 seconds 80 seconds © 2004 Thomson/South-Western Probability .20 .40 .30 .10 Slide 34 Example: Wayne International Airport After having their passports and visas checked, the passengers next proceed to the second customs official who does baggage inspections. Passengers form a single waiting line with the official inspecting baggage on a first come, first served basis. The time required for baggage inspection follows the probability distribution shown on the next slide. © 2004 Thomson/South-Western Slide 35 Example: Wayne International Airport Time Required For Baggage Inspection No Time 1 minute 2 minutes 3 minutes © 2004 Thomson/South-Western Probability .25 .60 .10 .05 Slide 36 Example: Wayne International Airport Random Number Mapping Time Required to Check a Passenger's Passport and Visa 20 seconds 40 seconds 60 seconds 80 seconds © 2004 Thomson/South-Western Probability .20 .40 .30 .10 Random Numbers 00 - 19 20 - 59 60 - 89 90 - 99 Slide 37 Example: Wayne International Airport Random Number Mapping Time Required For Baggage Inspection No Time 1 minute 2 minutes 3 minutes © 2004 Thomson/South-Western Probability .25 .60 .10 .05 Random Numbers 00 - 24 25 - 84 85 - 94 95 - 99 Slide 38 Example: Wayne International Airport Next-Event Simulation Records For each passenger the following information must be recorded: • When his service begins at the passport control inspection • The length of time for this service • When his service begins at the baggage inspection • The length of time for this service © 2004 Thomson/South-Western Slide 39 Example: Wayne International Airport Time Relationships Time a passenger begins service by the passport inspector = (Time the previous passenger started passport service) + (Time of previous passenger's passport service) © 2004 Thomson/South-Western Slide 40 Example: Wayne International Airport Time Relationships Time a passenger begins service by the baggage inspector ( If passenger does not wait in line for baggage inspection) = (Time passenger completes service with the passport control inspector) (If the passenger does wait in line for baggage inspection) = (Time previous passenger completes service with the baggage inspector) © 2004 Thomson/South-Western Slide 41 Example: Wayne International Airport Time Relationships Time a customer completes service at the baggage inspector = (Time customer begins service with baggage inspector) + (Time required for baggage inspection) © 2004 Thomson/South-Western Slide 42 Example: Wayne International Airport A chartered plane from abroad lands at Wayne Airport with 80 passengers. Simulate the processing of the first 10 passengers through customs. Use the following random numbers: For passport control: 93, 63, 26, 16, 21, 26, 70, 55, 72, 89 For baggage inspection: 13, 08, 60, 13, 68, 40, 40, 27, 23, 64 © 2004 Thomson/South-Western Slide 43 Example: Wayne International Airport Simulation Worksheet (partial) Passport Control Baggage Inspections Pass. Time Rand. Service Time Time Rand. Service Time Num Begin Num. Time End Begin Num. Time End 1 2 3 4 5 0:00 1:20 2:20 3:00 3:20 93 63 26 16 21 1:20 1:00 :40 :20 :40 1:20 2:20 3:00 3:20 4:00 1:20 2:20 3:00 4:00 4:00 13 08 60 13 68 0:00 0:00 1:00 0:00 1:00 1:20 2:20 4:00 4:00 5:00 Must wait 40 seconds. © 2004 Thomson/South-Western Slide 44 Example: Wayne International Airport Simulation Worksheet (continued) Passport Control Baggage Inspections Pass. Time Rand. Service Time Time Rand. Service Time Num Begin Num. Time End Begin Num. Time End 6 7 8 9 10 4:00 4:40 5:40 6:20 7:20 26 70 55 72 89 :40 1:00 :40 1:00 1:00 © 2004 Thomson/South-Western 4:40 5:40 6:20 7:20 8:20 5:00 6:00 7:00 8:00 8:20 40 40 27 23 64 1:00 1:00 1:00 0:00 1:00 6:00 7:00 8:00 8:00 9:20 Slide 45 Example: Wayne International Airport Explanation For example, passenger 1 begins being served by the passport control inspector immediately. His service time is 1:20 (80 seconds) at which time he goes immediately to the baggage inspector who waves him through without inspection. Passenger 2 begins service with passport inspector 1:20 minutes (80 seconds) after arriving there (as this is when passenger 1 is finished) and requires 1:00 minute (60 seconds) for passport inspection. He is waved through baggage inspection as well. This process continues in this manner. © 2004 Thomson/South-Western Slide 46 Example: Wayne International Airport Question How long will it take for the first 10 passengers to clear customs? Answer Passenger 10 clears customs after 9 minutes and 20 seconds. © 2004 Thomson/South-Western Slide 47 Example: Wayne International Airport Question What is the average length of time a customer waits before having his bags inspected after he clears passport control? How is this estimate biased? © 2004 Thomson/South-Western Slide 48 Example: Wayne International Airport Answer For each passenger calculate his waiting time: (Baggage Inspection Begins) - (Passport Control Ends) = 0+0+0+40+0+20+20+40+40+0 = 120 seconds. 120/10 = 12 seconds per passenger This is a biased estimate because we assume that the simulation began with the system empty. Thus, the results tend to underestimate the average waiting time. © 2004 Thomson/South-Western Slide 49 General algorithm Initial model set up Probabilistic inputs Controllable inputs Model Controllable inputs Random generation of probab. inputs Model processing Next random number Recording results N End? Y Concluding analysis © 2004 Thomson/South-Western Slide 50 Covered in the text: Risk analysis • Simulated probabilistic inputs: costs & demands Inventory simulation • Simulated probabilistic input: demand Waiting line simulation • Simulated probabilistic input: inter-arrival time & service time © 2004 Thomson/South-Western Slide 51 Comments What-if analysis (as a warm-up) • Establish limit values of all probabilistic inputs • Select the worst-case and best-case scenario • Choose appropriate decisions for each • Calculate bottom-line for both marginal cases © 2004 Thomson/South-Western Slide 52 Comments (cont’d) Random data generation • Look-up table vs. probab. distribution function • Finite vs. discrete vs. continuous • Symmetric vs. asymmetric (one-sided) Excel functions • =IF(T1=N1, VLOOKUP( RAND(), U1:W4, 4), VLOOKUP( RAND(), X1:Z4, 4)) • T1 = Table choice, N1 = Table name, for: U1:W4 & X1:Z4 = 3 4 look-up tables (min,max,val) • = A1 + RAND()*(B1 – A1) : uniform p.d. • A1 = minimum, B1 = maximum • = NORMINV( RAND(), M1, S1) : normal p.d. • M1 = mean, S1 = standard deviation © 2004 Thomson/South-Western Slide 53 End of Chapter 15 © 2004 Thomson/South-Western Slide 54