You are here

Simulation and the Monte Carlo Method

Reuven Y. Rubisntein and Dirk P. Kroese
Publication Date: 
Number of Pages: 
Wiley Series in Probability and Statistics
BLL Rating: 

The Basic Library List Committee suggests that undergraduate mathematics libraries consider this book for acquisition.

[Reviewed by
William J. Satzer
, on

This third edition of a well-known textbook on Monte Carlo methods follows a second edition from 2008 and adds two new chapters, new exercises and revised versions of three chapters. The second edition was reviewed here.

The book was designed for use by undergraduates in the sciences and engineering. The authors suggest that readers need a basic mathematical background that includes an elementary course in probability and statistics. They say of the new edition that it “gives a fully updated and comprehensive account of the major topics in Monte Carlo simulation.”

The idea of Monte Carlo simulations is usually attributed to Ulam, von Neumann and Metropolis, who developed the approach in the mid to late 1940s while working on nuclear weapons at Los Alamos. The method is computationally intensive, so it became practical as the computer age began and its use has expanded as computational power and resources have grown. Monte Carlo methods continue to be used extensively in physics but now are employed very broadly in engineering, science, business and finance.

This new edition offers an opportunity to take another look at the book and consider more carefully what it offers and to whom. The two new chapters introduce new advanced methods and thus continue the trend of the second edition by pushing to include more state-of-the-art techniques.

The first four chapters introduce the basic ideas of discrete event simulation using Monte Carlo techniques. The authors quickly review basic probability, provide methods for generating random numbers with several prescribed distributions, introduce the notion of discrete event simulation, and then describe statistical analysis of simulation results. This is the core of the book and the most useful for those new to the field. The authors move quickly through the topics. While there are examples, they generally do not have much elaboration.

The next three chapters explore important related topics, including minimizing the variance of the simulation output and doing sensitivity analyses. One of the main approaches to variance reduction involves importance sampling, and the authors consider several approaches to this. The final three chapters take up more advanced topics. The two new chapters consider splitting methods and stochastic enumeration. Splitting methods use sequential sampling to decompose a hard estimation problem into several easier small ones. Stochastic enumeration studies tree search and tree counting.

My main concern with this book is that it is not well matched to students and readers new to the subject. The introductory parts handle some subjects very nicely, but the examples are too abbreviated and much of the needed “how to” is missing. The book would benefit from at least one extended example of a Monte Carlo simulation carried through from beginning to end with subsequent analysis. Students using the book are also going to need more than the elementary probability and statistics that the authors recommend. The Fischer information matrix and entropy, for example, are usually not part of an elementary course.

The second major part of the book tends more toward a survey of more advanced techniques. While more expert readers will appreciate it, the value for novices is not so clear.

I have had occasion to develop and use Monte Carlo simulations several times in many different contexts. Most often the goal was to characterize the performance of a large system, often with a hundred or more variables. Sometimes the analysis was intended to evaluate a design before it was implemented, sometimes to identify critical parameters for existing operational systems, and sometimes to estimate the cost of manufacturing a product. If I (when new to the subject) had tried to use the current book to learn what I needed to know, I would have been rather frustrated.

The first part of this book might profitably be used in an introductory course provided the instructor took time to fill in details and flesh out the examples. As a whole the text seems best suited for more experienced readers looking to review the subject or experts looking for new techniques.

Readers might consider Monte Carlo Methods by Kalos and Whitlock as an alternative textbook. Although it tends to focus more on physics applications, its pace is more deliberate, its examples more elaborate, and it takes up some of the important “how to” questions that the current book does not.

Bill Satzer ( was a senior intellectual property scientist at 3M Company. His training is in dynamical systems and particularly celestial mechanics; his current interests are broadly in applied mathematics and the teaching of mathematics.

Preface xiii

Acknowledgments xvii

1 Preliminaries 1

1.1 Introduction 1

1.2 Random Experiments 1

1.3 Conditional Probability and Independence 2

1.4 Random Variables and Probability Distributions 4

1.5 Some Important Distributions 5

1.6 Expectation 6

1.7 Joint Distributions 7

1.8 Functions of Random Variables 11

1.9 Transforms 14

1.10 Jointly Normal Random Variables 15

1.11 Limit Theorems 16

1.12 Poisson Processes 17

1.13 Markov Processes 19

1.14 Gaussian Processes 27

1.15 Information 28

1.16 Convex Optimization and Duality 34

Problems 41

References 46

2 Random Number, Random Variable, and Stochastic Process Generation 49

2.1 Introduction 49

2.2 Random Number Generation 49

2.3 Random Variable Generation 55

2.4 Generating from Commonly Used Distributions 62

2.5 Random Vector Generation 70

2.6 Generating Poisson Processes 75

2.7 Generating Markov Chains and Markov Jump Processes 77

2.8 Generating Gaussian Processes 80

2.9 Generating Diffusion Processes 81

2.10 Generating Random Permutations 83

Problems 85

References 89

3 Simulation of Discrete-Event Systems 91

3.1 Introduction 91

3.2 Simulation Models 92

3.3 Simulation Clock and Event List for DEDS 95

3.4 Discrete-Event Simulation 97

Problems 103

References 106

4 Statistical Analysis of Discrete-Event Systems 107

4.1 Introduction 107

4.2 Estimators and Confidence Intervals 108

4.3 Static Simulation Models 110

4.4 Dynamic Simulation Models 112

4.5 Bootstrap Method 126

Problems 127

References 130

5 Controlling the Variance 133

5.1 Introduction 133

5.2 Common and Antithetic Random Variables 134

5.3 Control Variables 137

5.4 Conditional Monte Carlo 139

5.5 Stratified Sampling 144

5.6 Multilevel Monte Carlo 146

5.7 Importance Sampling 149

5.8 Sequential Importance Sampling 159

5.9 Sequential Importance Resampling 165

5.10 Nonlinear Filtering for Hidden Markov Models 167

5.11 Transform Likelihood Ratio Method 171

5.12 Preventing the Degeneracy of Importance Sampling 174

Problems 179

References 184

6 Markov Chain Monte Carlo 187

6.1 Introduction 187

6.2 Metropolis–Hastings Algorithm 188

6.3 Hit-and-Run Sampler 193

6.4 Gibbs Sampler 194

6.5 Ising and Potts Models 197

6.6 Bayesian Statistics 200

6.7 Other Markov Samplers 202

6.8 Simulated Annealing 208

6.9 Perfect Sampling 212

Problems 214

References 219

7 Sensitivity Analysis and Monte Carlo Optimization 221

7.1 Introduction 221

7.2 Score Function Method for Sensitivity Analysis of DESS 224

7.3 Simulation-Based Optimization of DESS 231

7.4 Sensitivity Analysis of DEDS 246

Problems 252

References 255

8 Cross-Entropy Method 257

8.1 Introduction 257

8.2 Estimation of Rare-Event Probabilities 258

8.3 CE Method for Optimization 272

8.4 Max-Cut Problem 276

8.5 Partition Problem 282

8.6 Traveling Salesman Problem 283

8.7 Continuous Optimization 291

8.8 Noisy Optimization 292

8.9 MinxEnt Method 294

Problems 298

References 303

9 Splitting Method 307

9.1 Introduction 307

9.2 Counting Self-Avoiding Walks via Splitting 308

9.3 Splitting with a Fixed Splitting Factor 310

9.4 Splitting with a Fixed Effort 313

9.5 Generalized Splitting 314

9.6 Adaptive Splitting 318

9.7 Application of Splitting to Network Reliability 321

9.8 Applications to Counting 322

9.9 Case Studies for Counting with Splitting 325

9.10 Splitting as a Sampling Method 337

9.11 Splitting for Optimization 340

Problems 344

References 348

10 Stochastic Enumeration Method 351

10.1 Introduction 351

10.2 Tree Search and Tree Counting 352

10.3 Knuth’s Algorithm for Estimating the Cost of a Tree 355

10.4 Stochastic Enumeration 357

10.5 Application of SE to Counting 360

10.6 Application of SE to Network Reliability 368

Problems 373

References 375

Appendix 377

A.1 Cholesky Square Root Method 377

A.2 Exact Sampling from a Conditional Bernoulli Distribution 378

A.3 Exponential Families 379

A.4 Sensitivity Analysis 382

A.4.1 Convexity Results 383

A.4.2 Monotonicity Results 384

A.5 A Simple CE Algorithm for Optimizing the Peaks Function 385

A.6 Discrete-Time Kalman Filter 385

A.7 Bernoulli Disruption Problem 387

A.8 Complexity 389

A.8.1 Complexity of Rare-Event Algorithms 389

A.8.2 Complexity of Randomized Algorithms: FPRAS and FPAUS 390

A.8.3 SATs in CNF 394

A.8.4 Complexity of Stochastic Programming Problems 395

Problems 402

References 403

Abbreviations and Acronyms 405

List of Symbols 407

Index 409