45
Simulation Modeling Workshop Modeling Deterministic and Probabilistic Behavior Using Monte Carlo Simulation INTRODUCTION A modeler may encounter situations where the construction of an analytic model is infeasible due to the complexity of the situation. In instances where the behavior cannot be modeled analytically, or data collected directly, the modeler might simulate the behavior indirectly, and then test various alternatives to estimate how each affects the behavior. Data can then be collected to determine which alternative is best. Monte Carlo simulation is a common simulation method that a modeler can use, usually with the aid of a computer. The proliferation of computers in today's society, both in the academic and business worlds, makes Monte Carlo simulation very attractive. It is imperative that students understand, as a minimum, how to use and interpret Monte Carlo simulations as a modeling tool. There are many forms of simulation ranging from building scale models such as those used by scientists or designers in experimentation to various types of computer simulations. One preferred type of simulation is the Monte Carlo simulation. Monte Carlo simulation deals with the use of random numbers.

Simulation Modeling Workshop

Embed Size (px)

DESCRIPTION

simulation for dummies

Citation preview

Page 1: Simulation Modeling Workshop

Simulation Modeling Workshop Modeling Deterministic and Probabilistic Behavior Using Monte Carlo Simulation

INTRODUCTION

A modeler may encounter situations where the construction of an analytic model is

infeasible due to the complexity of the situation. In instances where the behavior cannot be

modeled analytically, or data collected directly, the modeler might simulate the behavior

indirectly, and then test various alternatives to estimate how each affects the behavior. Data can

then be collected to determine which alternative is best. Monte Carlo simulation is a common

simulation method that a modeler can use, usually with the aid of a computer. The proliferation

of computers in today's society, both in the academic and business worlds, makes Monte Carlo

simulation very attractive. It is imperative that students understand, as a minimum, how to use

and interpret Monte Carlo simulations as a modeling tool.

There are many forms of simulation ranging from building scale models such as those

used by scientists or designers in experimentation to various types of computer simulations. One

preferred type of simulation is the Monte Carlo simulation. Monte Carlo simulation deals with

the use of random numbers. There are many serious mathematical concerns associated with the

construction and interpretation of Monte Carlo simulations. Here we are concerned only with

reinforcing the techniques of simulations with these random variables.

A principal advantage of Monte Carlo simulation is the ease with which it can be used to

approximate the behavior of very complex systems. Often, simplifying assumptions must be

made in order to reduce this complex system into a manageable model. Within the environment

forced upon the system, the modeler attempts to represent the real system as closely as possible.

This system is probably a stochastic system; however, simulation can allow either a deterministic

or stochastic approach, see Figure 1. We will concentrate on the stochastic modeling approach to

deterministic behavior.

Page 2: Simulation Modeling Workshop

Real World System Mathematical Model

Figure 1. System versus model relationship

Typically, a high-level simulation language such as C++, JAVA, FORTRAN, SLAM,

PROLOG, STELLA, SIMAN or GPSS is used as the tool to teach or develop simulations. Here

we will use EXCEL to simulate some simple modeling scenarios.

Our emphasis is two-fold. First, we want you to think in terms of an algorithm, not a

specific language. Second, we want you to understand that MORE is better in Monte Carlo

simulations. The "MORE is better" rule is based on the “Law of Large Numbers” where

probabilities are assigned to events in accordance with their limiting relative frequencies.

MONTE CARLO SIMULATION

A Monte Carlo simulation model is a model that uses random numbers to simulate

behavior of a situation. Using either a known probability distribution (such as uniform,

exponential, or normal) or an empirical probability distribution, a modeler assigns a behavior to a

specific range of random numbers. The behavior returned from the random number generated is

then used in analyzing the problem. For example, if a modeler is simulating the tossing of a fair

Deterministic Deterministic

Stochastic Stochastic

Page 3: Simulation Modeling Workshop

coin using a uniform random number generator that gives numbers in the range 0 £ x < 1, he or

she may assign all numbers less than 0.5 to be a "head" while numbers from 0.5 to 1 are "tails".

We simplify the important part in figure 2.

Figure 2. Relationship between random numbers and outcomes

A Monte Carlo simulation can be used to model either stochastic or deterministic

behavior. It is possible to use a Monte Carlo simulation to determine the area under a curve (a

deterministic problem) or stochastic behavior like the probability of winning in Craps (a

stochastic problem). In this chapter we work introduce both a deterministic problem and a

stochastic problem. We discuss how to create algorithms to solve both. We will start with the

deterministic simulation modeling.

RANDOM NUMBER GENERATORS

Using random numbers is of paramount importance in running Monte Carlo simulations;

therefore it is imperative that a good random number generator is used. In particular, a modeler

must have a method of generating U(0,1) random numbers, that is numbers that are uniformly

distributed between 0 and 1. All other distributions, known and empirical, can be derived from

the U(0,1) distribution. At the graduate level, a lot of class time is spent on the theory behind

Generate Random Numbers

Assignment of random numbers to specific events

Events cause specific outcomes

Page 4: Simulation Modeling Workshop

good and bad random number generators, and the tests that can be made on them. More and more

is being learned about what makes up a "true" random number generator and what does not. At

the undergraduate level, this is not necessary provided the students have access to either random

numbers or a good algorithm for generating pseudo-random numbers.

Additionally, most computer languages now use good pseudo-random number generators

(although this has not always been the case - the old RANDU generator distributed by IBM was

statistically unsound). These good generators use the recursive sequence

where a, c, and m determine the statistical quality of the generator. Since we do not discuss the

testing of random number generators in our course, we "trust" the generators provided by our

software packages. Serious study of simulation must, of course, include a study of random

number generators since a bad generator will provide output from which a modeler may make

poor conclusions.

EXCEL has several choices to generate random numbers.

RAND

Returns an evenly distributed random real number greater than or equal to 0 and less than 1. A new random real number is returned every time the worksheet is calculated.

Syntax

RAND( )

Remarks

← To generate a random real number between a and b, use:

RAND()*(b-a)+a

← If you want to use RAND to generate a random number but don't want the numbers to change every time the cell is calculated, you can enter =RAND() in the formula bar, and then press F9 to change the formula to a random number.

Page 5: Simulation Modeling Workshop

Example

The example may be easier to understand if you copy it to a blank worksheet.

How to copy an example

1. .

 

123

A BFormula Description (Result)

=RAND() A random number between 0 and 1 (varies)

=RAND()*100A random number greater than or equal to 0 but less than 100 (varies)

Examples=Rand() =rand()*100

0.79505492.04806

RANDBETWEEN

Returns a random integer number between the numbers you specify. A new random integer number is returned every time the worksheet is calculated.

Syntax

RANDBETWEEN(bottom,top)

Bottom   is the smallest integer RANDBETWEEN will return.

Top   is the largest integer RANDBETWEEN will return.

Example

1.

 

123

A BFormula Description (Result)

=RANDBETWEEN(1,100)

Random number between 1 and 100 (varies)

=RANDBETWEEN(-1,1)

Random number between -1 and 1 (varies)

Page 6: Simulation Modeling Workshop

Introduction to Monte Carlo simulationApplies to: Microsoft Office Excel 2003

 Applies to

Microsoft Office Excel 2003

This article was adapted from Microsoft Excel Data Analysis and Business Modeling by Wayne L. Winston. Visit Microsoft Learning to learn more about this book.

This classroom-style book was developed from a series of presentations by Wayne Winston, a well known statistician and business professor who specializes in creative, practical applications of Excel. So be prepared — you may need to put your thinking cap on.

In this article

Who uses Monte Carlo simulation?

What happens when I enter =RAND()   in a cell?

How can I simulate values of a discrete random variable?

How can I simulate values of a normal random variable?

How should a greeting card company determine how many cards to produce?

     The impact of risk on our decision

     Confidence interval for mean profit

Problems

Sample files  You can download the sample files that relate to excerpts from Microsoft Excel Data Analysis

and Business Modeling from Microsoft Office Online. This article uses the files RandDemo.xls,

Discretesim.xls, NormalSim.xls, and Valentine.xls.

We would like to be able to accurately estimate the probabilities of uncertain events. For example, what is

the probability that a new product’s cash flows will have a positive net present value (NPV)? What is the

Page 7: Simulation Modeling Workshop

riskiness of our investment portfolio? Monte Carlo simulation enables us to model situations that present

uncertainty and play them out thousands of times on a computer.

Note   The name Monte Carlo simulation comes from the fact that during the 1930s and 1940s, many

computer simulations were performed to estimate the probability that the chain reaction needed for the atom

bomb would work successfully. The physicists involved in this work were big fans of gambling, so they gave

the simulations the code name Monte Carlo.

Who uses Monte Carlo simulation?

Many companies use Monte Carlo simulation as an important tool for decision-making. Here are some

examples.

General Motors, Procter and Gamble, and Eli Lilly use simulation to estimate both the average

return and the riskiness of new products. At GM, this information is used by CEO Rick Waggoner to

determine the products that come to market.

GM uses simulation for activities such as forecasting net income for the corporation, predicting

structural costs and purchasing costs, determining its susceptibility to different kinds of risk (such as

interest rate changes and exchange rate fluctuations).

Lilly uses simulation to determine the optimal plant capacity that should be built for each drug.

Wall Street firms use simulation to price complex financial derivatives and determine the Value

at RISK (VAR) of their investment portfolios.

Procter and Gamble uses simulation to model and optimally hedge foreign exchange risk.

Sears uses simulation to determine how many units of each product line should be ordered from

suppliers — for example, how many pairs of Dockers should be ordered this year.

Simulation can be used to value "real options," such as the value of an option to expand,

contract, or postpone a project.

Financial planners use Monte Carlo simulation to determine optimal investment strategies for

their clients’ retirement.

What happens when I enter =RAND() in a cell?

When you enter the formula =RAND() in a cell, you get a number that is equally likely to assume any value

between 0 and 1. Thus, around 25 percent of the time, you should get a number less than or equal to .25;

Page 8: Simulation Modeling Workshop

around 10 percent of the time you should get a number that is at least .90, and so on. To see how the RAND

function works, take a look at the file RandDemo.xls, shown in the following figure.

Note   When you open the file RandDemo.xls, you will not see the same random numbers shown in the

previous figure. The RAND function always recalculates the numbers it generates when a spreadsheet is

opened or new information is entered in the spreadsheet.

I copied from cell C3 to C4:C402 the formula =RAND(). I named the range C3:C402 Data. Then, in column

F, I tracked the average of the 400 random numbers (cell F2) and used the COUNTIF function to determine

the fractions that are between 0 and .25, .25 and .50, .50 and .75 and .75 and 1. When you press the F9

key, the random numbers are recalculated. Notice that the average of the 400 numbers is always near .5

and that around 25 percent of the results are in each interval of .25. These results are consistent with the

definition of a random number. Also note that the values generated by RAND in different cells are

independent. For example, if the random number generated in cell C3 is a large number (say .99), this tells

us nothing about the values of the other random numbers generated.

How can I simulate values of a discrete random variable?

Suppose the demand for a calendar is governed by the following discrete random

variable.

Demand

Probability

10,000 .10

20,000 .35

40,000 .3

60,000 .25

Page 9: Simulation Modeling Workshop

How can we have Excel play out, or simulate, this demand for calendars many times?

The trick is to associate each possible value of the RAND function with a possible

demand for calendars. The following assignment ensures that a demand of 10,000 will

occur 10 percent of the time, and so on.

Demand Random Number Assigned

10,000 Less than .10

20,000 Greater than or equal to .10, and less than .45

40,000 Greater than or equal to .45, and less than .75.

60,000 Greater than or equal to .75.

To see a simulation of demand, look at the file Discretesim.xls, shown in the following figure.

The key to our simulation is to use a random number to key a lookup from the table range F2:G5 (named

lookup). Random numbers greater than or equal to 0 and less than .10 will yield a demand of 10,000;

random numbers greater than or equal to .10 and less than .45 will yield a demand of 20,000; random

numbers greater than or equal to .45 and less than .75 will yield a demand of 40,000; and random numbers

greater than or equal to .75 will yield a demand of 60,000. I generated 400 random numbers by copying from

C3 to C4:C402 the formula RAND(). Then I generated 400 trials or iterations of calendar demand by copying

from B3 to B4:B402 the formula VLOOKUP(C3,lookup,2). This formula ensures that any random number

less than .10 generates a demand of 10,000; any random number between .10 and .45 generates a demand

of 20,000, and so on. In the cell range F8:F11, I used the COUNTIF function to determine the fraction of our

Page 10: Simulation Modeling Workshop

400 iterations yielding each demand. Note that whenever you press F9 to recalculate the random numbers,

the simulated probabilities are close to our assumed demand probabilities.

How can I simulate values of a normal random variable?

If you enter into any cell the formula NORMINV(rand(), mu , sigma), you will generate a simulated value of a

normal random variable having a mean mu and standard deviation sigma. I’ve illustrated this procedure in

the file NormalSim.xls, shown in the following figure.

Let’s suppose we want to simulate 400 trials or iterations for a normal random variable with a mean of

40,000 and a standard deviation of 10,000. (I entered these values in cells E1 and E2 and named these

cells mean and sigma, respectively.) Copying the formula =RAND() from C4 to C5:C403 generates 400

different random numbers. Copying from B4 to B5:B403 the formula NORMINV(C4,mean,sigma) generates

400 different trial values from a normal random variable with a mean of 40,000 and a standard deviation of

10,000. When we press the F9 key to recalculate the random numbers, the mean remains close to 40,000

and the standard deviation close to 10,000.

Essentially, for a random number x, the formula NORMINV(p, mu , sigma) generates the pth percentile of a

normal random variable with a mean mu and a standard deviation sigma. For example, the random

number .8466 in cell C13 generates in cell B13 approximately the 85th percentile of a normal random

variable with a mean of 40,000 and a standard deviation of 10,000.

How should a greeting card company determine how many cards to produce?

Page 11: Simulation Modeling Workshop

In this section, I’ll show how Monte Carlo simulation can be used as a tool to help

businesses make better decisions. Suppose that the demand for a Valentine’s Day card is

governed by the following discrete random variable:

Demand

Probability

10,000 .10

20,000 .35

40,000 .3

60,000 .25

The greeting card sells for $4.00, and the variable cost of producing each card is $1.50. Leftover cards must

be disposed of at a cost of $0.20 per card. How many cards should be printed?

Basically, we simulate each possible production quantity (10,000, 20,000, 40,000 or 60,000) many times

(say, 1,000 iterations). Then we determine which order quantity yields the maximum average profit over the

1,000 iterations. You can find the work for this section in the file Valentine.xls, shown in the following figure.

I’ve assigned the range names in cells B1:B11 to cells C1:C11. I’ve assigned the cell range G3:H6 the name

lookup. Our sales price and cost parameters are entered in cells C4:C6.

I then enter a trial production quantity (40,000 in this example) in cell C1. Next I create a random number in

cell C2 with the formula =RAND(). As previously described, I simulate demand for the card in cell C3 with

the formula VLOOKUP(rand,lookup,2). (In the VLOOKUP formula, rand is the cell name assigned to cell C3,

not the RAND function.)

The number of units sold is the smaller of our production quantity and demand. In cell C8, I compute our

revenue with the formula MIN(produced,demand)*unit_price. In cell C9, I compute total production cost with

the formula produced*unit_prod_cost.

Page 12: Simulation Modeling Workshop

If we produce more cards than are demanded, the number of units left over equals production minus

demand; otherwise no units are left over. We compute our disposal cost in cell C10 with the formula

unit_disp_cost*IF(produced>demand,produced-demand,0). Finally, in cell C11, we compute our profit as

revenue-total_var_cost-total_disposing_cost.

We would like an efficient way to press F9 many (say 1,000 times) for each production quantity and tally up

our expected profit for each production quantity. This situation is one in which a two-way data table comes to

our rescue. The data table I used in this example is shown in the following figure.

In the cell range A16:A1015, I entered the numbers 1-1000 (corresponding to our 1,000 trials). One easy

way to create these values is to enter a 1 in cell A16, select the cell, and then, on the Edit menu, click Fill

Series. In the Series dialog box, shown in the following figure, enter a step value of 1 and a stop value of

1000. Under Series in, click Columns, and then click OK. The numbers 1 through 1000 will be entered

automatically in column A, starting in cell A16.

Page 13: Simulation Modeling Workshop

Next we enter our possible production quantities (10,000, 20,000, 40,000, 60,000) in cells B15:E15. We

want to calculate profit for each trial number (1 through 1,000) and each production quantity. We refer to the

formula for profit (calculated in cell C11) in the upper left cell of our data table (A15) by entering =C11.

We are now ready to trick Excel into simulating 1,000 iterations of demand for each production quantity.

Select the table range (A15:E1014), and then click Table on the Data menu. To set up a two-way data

table, we select any blank cell (we chose cell I14) as our column input cell and choose our production

quantity (cell C1) as the row input cell. When you click OK, Excel simulates 1,000 demand values for each

order quantity.

To illustrate why this works, consider the values placed by the data table in the cell range C16:C1015. For

each of these cells, Excel will use a value of 20,000 in cell C1. In C16, the column input cell value of 1 is

placed in a blank cell and the random number in cell C2 recalculates. The corresponding profit is then

recorded in cell C16. Then the column cell input value of 2 is placed in a blank cell, and the random number

in C2 again recalculates. The corresponding profit is entered in cell C17.

By copying from cell B13 to C13:E13 the formula AVERAGE(B16:B1015), we compute average simulated

profit for each production quantity. By copying the formula STDEV (B16:B1015) from cell B14 to C14:E14,

we compute the standard deviation of our simulated profits for each order quantity. Each time we press F9,

1,000 iterations of demand are simulated for each order quantity. Producing 40,000 cards always yields the

largest expected profit. Therefore, it appears as if producing 40,000 cards is the proper decision.

The impact of risk on our decision

If we produce 20,000 cards instead of 40,000 cards, our expected profit drops approximately 22 percent, but

our risk (as measured by the standard deviation of profit) drops almost 73 percent. Therefore, if we are

Page 14: Simulation Modeling Workshop

extremely risk averse, producing 20,000 cards might be the right decision. By the way, producing 10,000

cards always has a standard deviation of zero cards because if we produce 10,000 cards, we will always sell

all of them and have none left over.

Note  In this worksheet, I set the Calculation option to Automatic Except For Tables. (See the

Calculation tab on the Options dialog box.) This setting ensures that our data table will not recalculate

unless we press F9, which is a good idea because a large data table will slow down your work if it

recalculates every time you type something into your spreadsheet. Note that in this example, whenever you

press F9, the mean profit will change. This happens because each time you press F9 a different sequence

of 1,000 random numbers is used to generate demands for each order quantity.

Confidence interval for mean profit

A natural question to ask in this situation is "Into what interval are we 95 percent sure the true mean profit

will fall?" This interval is called the 95 percent confidence interval for mean profit. A 95 percent confidence

interval for the mean of any simulation output is computed by the following formula.

In cell J11, I computed the lower limit for the 95 percent confidence interval on mean profit when 40,000

calendars are produced with the formula D13-1.96*D14/SQRT(1000). In cell J12, I computed the upper limit

for our 95 percent confidence interval with the formula D13+1.96*D14/SQRT(1000). These calculations are

shown in the following figure.

Page 15: Simulation Modeling Workshop

We are 95 percent sure that our mean profit when 40,000 calendars are ordered is between $53,860 and

$59,934.

Problems

1. A GMC dealer believes that demand for 2005 Envoys will be normally distributed with a mean of

200 and standard deviation of 30. His cost of receiving an Envoy is $25,000, and he sells an Envoy for

$40,000. Half of all leftover Envoys can be sold for $30,000. He is considering ordering 200, 220, 240,

260, 280, or 300 Envoys. How many should he order?

2. A small supermarket is trying to determine how many copies of People magazine they should

order each week. They believe their demand for People is governed by the following discrete

random variable.

Demand

Probability

15 .10

20 .20

25 .30

30 .25

35 .15

3. The supermarket pays $1.00 for each copy of People and sells each copy for $1.95. They can

return each unsold copy of People for $0.50. How many copies of People should the store order?

Page 16: Simulation Modeling Workshop

PROBABILITY AND MONTE CARLO SIMULATION

Using Deterministic Behavior

One of the keys to good Monte Carlo simulation is an understanding of the axioms of

probability. Probability is a long-term average. For example, if the probability of an event

occurring is 1/5, then the meaning is "that in the long term, the chance of the event happening is

1/5=0.2" and not that it will occur exactly 1 out of every 5 trials.

SIMULATION EXAMPLES

Let’s consider the following one of the follwoing deterministic examples.

a. Compute the area under the curve from .

b. Compute the area under a curve that cannot be integrated via calculus..

We will present algorithms for their models as well as produce output to analyze. These

algorithms are critical to the understanding of simulation as a mathematical modeling tool.

Here is a generic framework for an algorithm. This framework includes Inputs, Outputs, and the

steps required to achieve the desired output.

Deterministic Example

Consider the area under the curve: from . A graphical illustration is

provided in Figure 3.

Page 17: Simulation Modeling Workshop

Figure 3. Graph of from

The algorithm for determining the area under a nonnegative curve between [a,b] is described in

figure 4.

INPUT The total number of random points, N. The nonnegative function, f(x),

the interval for x [a,b] and an interval for y [0,M] where M > max

f(x),a<x<b.

OUTPUT The approximate area under the curve, f(x) over the interval [a,b]

Step 1. Specify the function, f(x) and set all counters at 0

Step 2. For i from 1 to N do step 3-5

Step 3. Calculate random coordinates in the rectangular region:

a<xi<b, 0<yi<M

Step 4. Calculate f(xi)

Page 18: Simulation Modeling Workshop

Step 5. Compare f(xi) and yi . If yi <f(xi) then increment counter by 1.

Otherwise, do not increment counter.

Step 6. Estimate the area by

Stop

Figure 4. Algorithm for Area Under a Nonnegative Curve

We begin with an easy function, such as , over the interval [0, 2]. We can easily

integrate the function and find the answer.

Now they are ready to approximate the area by Monte Carlo simulation. The simulation only

approximates the solution. We increase the number of trials attempting to get closer to the value.

We present the results in Table 1. Recall, we introduced the randomness into the procedure with

the Monte Carlo simulation area algorithm. We provide graphical output as well so that the

algorithm may be seen as a process. In our graphical output, each generated coordinate (xi,yi) is a

point on the graph. Points are randomly generated in our intervals [a,b] for x and [0,M] for y. The

curve for the function, f(x), is overlayed with the points.

Calculated the area under a curve.

First, let’s view the graphical out puts from run with N=100 and N=5000.

Page 19: Simulation Modeling Workshop

Figure 5. Graphical Output with N=100, Area estimate is 4.48

Figure 6. Graphical Output with N=5000, Area estimate is 4.1056

Number of Trials Approximate Area Percent Error

100 4.48 12%

Page 20: Simulation Modeling Workshop

500 3.872 3.2%1000 4.32 8%

5000 4.1056 2.64%

10,000 4.136 3.4%

Table 1: Summary of Output for the Area under x3 from 0 to 2.

We need to stress that in modeling deterministic behavior with stochastic features, we have

introduced the randomness into the problem (not nature). Although more runs is better, it is not

true that the as we increase the number of trials, N, the solution becomes closer to reality. It

is generally true that more runs is better than a small number of runs (16% was the worst by

almost an order of magnitude and that occurred at N=100).

Example 2: Area under the curve for a nonnegative function where we cannot integrate to find a closed from answer.

We modify the algorithm to compute the area under the curve for the function e x xx2

cos( )

over the interval [0,1.4]. We provide the complete step-by-step algorithm, your formulas, and the

final output for runs of 50, 100,500, and 1000 trials.

Page 21: Simulation Modeling Workshop

Figure 7. Plot of f(x) from [0,1.40].

We provide one graphical output from our program in Figure 5.8 with N=2000. Since this

function has no closed from solution, we used Simpson’s Method to obtain a numerical solution

to:

d

0

1.4

e( )x2

( )cos x x x

The numerical integration solution is 1.448293361.

Page 22: Simulation Modeling Workshop

Figure 8. Graphical output of simulation, N=2000, with approximate Area as 1.4112

The percent error for this run is only 0 .927%.

Generally, though not uniformly, the percent errors become smaller as the number of points, N< is increased.

Exercises1. Use Monte Carlo simulation to approximate the area under the curve, f(x) =

1 + sin x over the interval .

2. Use Monte Carlo simulation to approximate the area under the curve, f(x) =

x.5 over the interval .

Page 23: Simulation Modeling Workshop

3. Use Monte Carlo simulation to approximate the area under the curve, f(x) =

over the interval .

4. How would you modify question 3 to obtain an approximation to ?

PROBABILITY AND MONTE CARLO SIMULATION Using Probabilistic Behavior

Let’s consider the following probabilistic examples.

a. Compute the probability of getting a "head" or "tail” if you flip a fair coin.b. Compute the probability of rolling a number from 1 to 6 rolling a fair dice.

Example: Flip a Fair Coin

AlgorithmInput: The number of trials, NOutput: The probability of a head or a tail

Step 1: Initialize counters to 0.Step 2: For I=1, 2, …, N do

Step 3. Generate a random number, x, U(0,1)Step 4 If 0<x<.5 Increment Heads, H=H+1 otherwise T=T+1

Step 5: Output H/N and T/N the probabilities for heads and tails.

Roll of a Fair Die

Rolling a fair die adds the additional process of multiple assignments (6 for a six sided die). The probability will be theNumber of occurrences of each number/ total number of trails

INPUT: Number of rollsOutput: Probability of getting a {1,2,3,4,5,6}

Step 1 Initialize all counters (Counter1 through Counter 6) to 0Step 2 For i=1,2…n do steps 3 and 4

Step 3. Obtain a random number j from Integers (1,6)Step 4 Increment the counter for the value of j so

Counter j = Counter j + 1Step 5. Calculate the probability of each roll {1,2,3,4,5,6} by

Counter j / nStep 6 Output probabilitiesStep 7 Stop

Page 24: Simulation Modeling Workshop

The expected probability is 1/6 or 0.1667. We note that as the number of trials increases

the closer our probabilities are to the expected long run values. We use the

randbewteen(1,6) function in excel. It returns a random integer between 1 and 6 based on

equally likely probabilities.

Projects

1. BLACKJACK: Construct and perform a Monte Carlo simulation of Blackjack (also called

``21''). The rules of Blackjack are as follows:

Most casinos use six or eight decks of cards when playing this game to inhibit ``card counters.''

You will use two decks of cards in your simulation (104 cards total). There are only two players,

you and the dealer. Each player receives two cards to begin play. The cards are worth their face

value for 2-10, 10 for face cards (Jack, Queen, and King), and either 1 or 11 points for Aces. The

object of the game is to obtain a total as close to 21 as possible WITHOUT GOING OVER

(called ``busted'') so that your total is more than the dealer's. If the first two cards total 21 (Ace-

10 or Ace-face card), this is called ``blackjack'' and is an automatic winner (unless both you and

the dealer have blackjack, in which case it is a tie, or ``push,'' and your bet remains on the table).

Winning via blackjack pays you 3 to 2, or 1.5 to 1 (a 1-dollar bet reaps \$1.50 and you don't lose

the 1 dollar you bet).

If neither you nor the dealer has blackjack, you (the player) can take as many cards as you want,

one at a time, to try to get as close to 21 as possible. If you go over 21, you lose, and the game

ends. Once you are satisfied with your score, you ``stand.'' The dealer then draws cards according

to the following rules:

Page 25: Simulation Modeling Workshop

The dealer stands on 17, 18, 19, 20, or 21. The dealer must draw a card if the total is 16 or

less. The dealer always counts aces as 11 unless it causes him or her to bust, in which case it

is counted as a one. For example, an ace-six combo for the dealer is 17, not 7 (the dealer has

no option) and the dealer must stand on 17. However, if the dealer has an Ace-four (for 15)

and draws a King, then the new total is 15, because the Ace reverts to its value of 1 (so as

not to go over 21.) The dealer would then draw another card.

If the dealer goes over 21, you win (even your bet money; you gain \$1 for every \$1 you bet). If

the dealer's total exceeds your total, you lose all the money you bet. If the dealer's total equals

your total, it is a ``push'' (no money exchanges hands; you don't lose your bet, but neither do you

gain any money).

What makes the game exciting in a casino, is that the dealer's original two cards are one up, one

down, so you do not know the dealer's total and must ``play the odds'' based upon the one card

showing. You do not need to incorporate this twist into your simulation for this project. Here's

what you are required to do:

Run through 12 sets of 2 decks playing the game. You have an unlimited bankroll (don't

you wish!) and bet $2 on each hand. Each time the 2 decks run out, the hand in play

continues with 2 fresh decks (104 cards). At that point record your standing (plus or minus

X dollars). Then start again at 0 for the next deck. So your output will be the 12 results

from playing each of the 12 decks, which you can then average or total to determine your

overall performance.

What about YOUR strategy? That's up to you! But here's the catch...you will assume that

you can see NEITHER of the dealer's cards (so you have no idea what cards the dealer has).

Page 26: Simulation Modeling Workshop

Choose a strategy to play, and then play it throughout the entire simulation. (Blackjack

enthusiasts can consider implementing doubling down and splitting pairs into their

simulation, but this is not necessary.)

Provide your instructor with the simulation algorithm, computer code, and output results

from each of the 12 decks.

2. DARTS: Construct and perform a Monte Carlo Simulation of a darts game. The rules are:

Dart Board Area Points

Bulleye 50

Yellow Ring 25

Blue Ring 16

Red Ring 10

Whie Ring 5

From the origin (the center of the bullseye) the radius of each ring is:

Ring Thickness (in) Distance to outer ring edge

from the origin (in)

Bullseye 1 1

Yellow 1.5 2.5

Blue 2.5 5

Red 3 8

White 4 12

The board has a radius of 1 foot (12'').

Page 27: Simulation Modeling Workshop

Make an assumption about the distribution of how the darts hit on the board. Then compare your

assumption to using appropriate areas. Write an algorithm, and code it in the computer language

of your choice. Run 1000 simulations to determine the mean score for throwing 5 darts. Also,

determine which ring has the highest expected value (point value times the probability of hitting

that ring).

3. CRAPS: Construct and perform a Monte Carlo Simulation of the popular casino game of craps.

The rules are as follows:

There are two basic bets in craps, PASS and DON'T PASS. In the PASS bet you wager that the

shooter (the person throwing the dice) will win; in the DON'T PASS bet, you wager that the

shooter will lose. We will play by the rule that on an initial roll of 12 (``boxcars''), both PASS and

DON'T PASS bets are losers. Both are ``even-money'' bets.

Conduct of the game:

Roll a 7 or 11 on the first roll: Shooter WINS (PASS bets WIN and DON'T PASS bets lose). Roll

a 12 on the first roll: Shooter LOSES (``boxcars'', PASS AND DON'T PASS bets lose). Roll a 2

or 3 on the first roll: Shooter LOSES (PASS bets LOSE, DON'T PASS bets WIN). Roll

4,5,6,8,9,10 on the first roll: this becomes the ``point.'' The object then becomes to roll the

``point'' again before rolling a 7. The shooter continues to roll the dice until the point or a 7

appears. PASS bettors win if the shooter rolls the point again before rolling a 7. DON'T PASS

bettors win if the shooter rolls a 7 before rolling the point again.

Write an algorithm and code it in the computer language of your choice. Run the simulation to

estimate the probability of winning a PASS bet and the probability of winning a DON'T PASS

Page 28: Simulation Modeling Workshop

bet. Which is the better bet? As the number of trials increases, to what do the probabilities

converge?

4. HORSE RACE: Construct and perform a Monte Carlo Simulation of a horse race. You can be

creative here and use odds from the newspaper, or simulate the ``Mathematical Derby'' with

entries and odds below:

Entry Odds

Euler’s Folly 7-1

Leapin Leibnitz 5-1

Newton Lobell 9-1

Count Cauchy 12-1

Pumped Up Poisson 4-1

Loping L’Hopital 35-1

Steamin Stokes 15-1

Dancing Danzig 4-1

Construct and perform a Monte Carlo simulation of 1000 horse races. Which horse won

the most races? Which horse won the least races? Do these results surprise you? Provide the

tallies of how many races each horse won with your output.

5. ROULETTE: In American roulette, there are 38 spaces on the wheel, 0, 00, and 1 through 36.

Half the spaces numbered 1-36 are red, and half are black. The two spaces 0 and 00 are green.

Page 29: Simulation Modeling Workshop

Simulate the playing of 1000 games betting either red or black (which pay even money, 1:1).

Bet \$1 on each game and keep track of your earnings. What are THE earnings per game betting

red/black according to your simulation? 0What was your longest winning streak? Longest losing

streak?

Now simulate 1000 games betting green (pays 17:1, so if you win, you add \$17 to your kitty, and

if you lose, you lose \$1). What are your earnings per game betting green according to your

simulation? How does it differ from your earnings betting red/black? What was your longest

winning streak betting green? Longest losing streak? Which strategy do you recommend using,

and why?

6. THE PRICE IS RIGHT: On the popular TV game show ``The Price is Right,'' at the end

of each half hour, the three winning contestants face off in what is called the ``Showcase

Showdown.'' The game consists of spinning a large wheel with 20 spaces on which the

pointer can land, numbered from \$.05 to \$1.00 in 5 cent increments. The contestant who

has won the least amount of money at this point in the show spins first, followed by the one

who has won the next most, followed by the biggest winner for that half hour.

The objective of the game is to obtain as close to \$1.00 as possible without going over that

amount with a maximum of two spins. Naturally, if the first player does not go over, the other

two will use one or both spins in an attempt to overtake the leader.

But what of the person spinning first? If he or she is an expected value decision maker, how high

a value on the first spin does he or she need to not want a second spin? Remember, the person can

lose if

Page 30: Simulation Modeling Workshop

1) either of the other two players surpasses the player's total, or

2) the player spins again and goes over.

7. LET'S MAKE A DEAL: You are ``dressed to kill'' in your favorite costume and Monte Hall, the host, picks you out of the audience. You are offered the choice of three wallets. Two wallets contain a single \$50 bill, and the third contains a \$1000 bill. You choose one of the wallets, 1, 2, or 3. Monte, who knows which wallet contains the \$1000, then shows you one of the other two wallets, and this one is one of the two with \$50 inside. Monte does this purposely, because he must have at least one wallet with \$50 inside. If he has the \$1000 wallet, he shows you the \$50 one he holds. Otherwise, he just shows you one of his two \$50 wallets. Monte then asks you if you want to trade your choice for the one he's still holding. Should you trade?

Develop an algorithm and construct a computer simulation to support your answer.

Applied Simulation Models

In this section we present algorithm and Maple code for the following:

a. Simulate aircraft missile attack.

b. Given an empirical demand history, simulate the amount of gas a series of gas stations will need.

Example: Missile Attack

An analyst plans a missile strike using F-15 aircraft. The F-15 hold a maximum of 8 missiles. It is vital to ensure success of this attack early in the battle. Each aircraft has a probability of 0.5 of destroying the target, assuming it can get to the target through the air defense systems and then acquire the attack. The probability that a single F-15 will acquire a target is approximately 0.9. The target is protected by air-defense equipment with a probability of stopping the F-15 from either arriving to the target or acquiring the target of 0.40. How many F-15 are needed to have a successful mission assuming we need a 99% success rate?

Algorithm: MissilesINPUTS: N = number of F-15s

Page 31: Simulation Modeling Workshop

M= number of missiles firedP= probability the one F-15 can destroy the targetQ = probability the air-defense can disable the F-15

OUTPUT S = probability of mission success

Step 1. Initialize S=0Step 2 For I = 0 to M do

Step 3. P(i)=(1-(1-P)N-I

Step 4. B(i) = Binomial Distribution for (m,i,q)Step 5. Compute S = S + P(i) * B(i)

Step 6 Output SStep 7 StopWe run the simulation letting the number of F-15 vary and calculate the probability of success.We find that at the number of F-15 = 7 gives a P(s) = .99122.Actually any number of F-15 greater than 7 works. I would think the 10 F-15 yielding a P(s) = 0.999957 would suffice. Any more would be overkill.

Example: Gasoline Inventory SimulationBackground: You are a consultant to an owner of a chain of gasoline stations along a freeway. The owner wants to maximize their profits and meet consumer demand for gasoline. You decide to look at the following problem.

Problem Identification Statement: Minimize the average daily cost of delivering and storing sufficient gasoline at each station to meet consumer demand.

Assumptions: For an initial model, you consider that in the short run the average daily cost is a function of demand rate, storage costs, and delivery costs. You also assume that you need a model for the demand rate. You decide that historical date will assist you.

Demand:Number of gallons

Number of Occurrences (days)

1000-1099 101100-1199 201200-1299 501300-1399 1201400-1499 2001500-1599 2701600-1699 1801700-1799 801800-1899 401900-1999 30Total number of days = 1000

Model Formulation: We convert the number of days into probabilities by dividing by the total and we use the mid-point of the interval of demand for simplification.

Page 32: Simulation Modeling Workshop

Demand:Number of gallons

Probabilities

1000 .0101150 .0201250 .0501350 .1201450 .2001550 .2701650 .1801750 .0801850 .0402000 .030Total number of days = 1.000

Since cumulative probabilities will be more useful we convert to a CDF.

Demand:Number of gallons

Probabilities

1000 .0101150 .0301250 .0801350 .201450 .41550 .6701650 .8501750 .931850 .972000 1.0

We will use cubic splines, see Chapter 6, for a discussion of cubic splines to model the function for demand.

Inventory AlgorithmINPUTS: Q=delivery quantity in gallons

T = time between deliveries in daysD=delivery cost in dollars per deliveryS = storage costs in dollars per gallonsN = number of days in the simulation

OUTPUT: C = average daily cost

Step 1. Initialize: Inventory I = 0, and C=0Step 2. Begin the next cycle with a delivery

Page 33: Simulation Modeling Workshop

I = I + QC = C + D

Step 3. Simulate each day of the cycleFor i = 1,2,,….T do steps 4-6

Step 4. Generate a demand, qi. Use cubic splines to generate a demand based on a random CDF value xi.

Step 5. Update the inventory: I = I -qi

Step 6. Calculate the updated cost, C = C + s*I if the Inventory is positive. If the inventory is < 0 then set I =0 go to Step 7.Step 7. Return to Step 2 until the simulation cycle is completed.Step 8. Compute the average daily cost: C=C/nStep 9 Output CStop

The average cost is $5753.04 and the inventory on hand is 199,862.4518 gallons.

Exercises1. Modify the missile attack problem if the probability of S where only 0.95 and the

probability of F-15 being deterred by air defense were 0.3. Determine the number

of F-15 needed to complete the mission.

2. What if in the missile attack problem the F-15 were modified to carry 10 missiles?

What impact does that have on the number of F-15s needed?

3. Perform some sensitivity analysis on the gasoline inventory problem by

modifying the delivery to 11450 gallons per week. What impact does this have on

the average daily cost?

Projects

1. Tollbooths : Heavily-traveled toll roads such as the Garden State Parkway, Interstate 95,

possibly Interstate 73, and so forth, are multi-lane divided highways that are interrupted at

intervals by toll plazas. Because collecting tolls is usually unpopular, it is desirable to minimize

motorist annoyance by limiting the amount of traffic disruption caused by the toll plazas.

Page 34: Simulation Modeling Workshop

Commonly, a much larger number of tollbooths is provided than the number of travel lanes

entering the toll plaza. Upon entering the toll plaza, the flow of vehicles fans out to the larger

number of tollbooths, and when leaving the toll plaza, the flow of vehicles is required to squeeze

back down to a number of travel lanes equal to the number of travel lanes before the toll plaza.

Consequently, when traffic is heavy, congestion increases upon departure from the toll plaza.

When traffic is very heavy, congestion also builds at the entry to the toll plaza because of the time

required for each vehicle to pay the toll.

 

Construct a mathematical model to help you determine the optimal number of tollbooths to

deploy in a barrier-toll plaza. Explicitly, first consider the scenario where there is exactly one

tollbooth per incoming travel lane. Then consider multiple tollbooths per incoming lane. Under

what conditions is one tollbooth per lane more or less effective than the current practice? Note

that the definition of  "optimal" is up to you to determine.

2. Build a simulation to model a baseball game. Use your two favorite teams or favorite all-stars to play a regulation game.3. Build a simulation to model the NBA basketball playoffs.

4. Build a simulation to model surgical and recovery rooms for the hospital.

5. Build a simulation to model the registrar’s scheduling changes for students or final

exam schedules.